![]() |
Verknüpfung erstellen
Hallo,
ich weiß, dass dieses Them schon oft angesprochen wurde :), habe aber trotzdem eine Frage :?: : Wenn ich CreateLink ( ![]() bekomme ich die Fehlermeldung "Undefinierter Bezeichner 'IID_IPersistFile'". :wall: Liegt das an meiner Delphi-Version (Delphi 7 Enterprise) oder an der Uses-Liste (Windows, Messages, SysUtils, ActiveX, ShellAPI, ShlObj) oder woran :?: :?: :?: |
Re: Verknüpfung erstellen
auf
![]() |
Re: Verknüpfung erstellen
IID_IPersistFile ist in der Unit Ole2 (Rtl\Win\Ole2.pas) definiert.
|
Re: Verknüpfung erstellen
Hallo,
Danke! Kann man so was eigentlich auswendig lernen oder woher hast du das? |
Re: Verknüpfung erstellen
Sowas kann man auswendig :mrgreen:
Na ja, eigentlich hab ich die DelphiSources mit auf meinem USB-Stick (wenn ich das ganze Delphi schon nicht mitnehmen kann -.-'' ) und dann noch so'n winzigkleines Progrämmchen zum durchsuchen :zwinker: |
Re: Verknüpfung erstellen
kannst du mal den namen des progrämmchens nennen sowas könnt ich nämlich auch gebrauchen.
|
Re: Verknüpfung erstellen
Gehst in Delphi: Suchen > In Dateien Suchen ... > Wählst bei Bedingung "In Verzeichnissen" und dann bei "Optionen für Verzeichnisssuche" tippst ein: "C:\Programme\Borland\Delphi7\Source" und machst noch ein hackerl bei "Unterverzeichnisse durchsuchen" und los gehts. (Naja brauchst schon die Sources :P)
|
Re: Verknüpfung erstellen
Zitat:
@EDatabaseError: is'n unraltes, selbstgeschriebseltes Konsolenprogrammchen, welches alle (hatte noch keine Lust 'nen Filter einzubauen) Dateien im Programmverzeichnis und den Subverzeichnissen nach 'ner Zeichenfolge (Ansi- und WideString) durchsucht und das Ergebnis in 'ner .TXT, oder wenn man's über 'ne winzige .cmd (BatchFile) startet auch im DOS-Fenster ausgibt. dat paar KB-Kleine Teil liegt bei mir überall rum ... im DelphiSourceOrdner, im PSDK, bei den HeaderFiles ... halt wirklich überall :stupid: Denn die WindowsSuche funktioniert ja mal garnicht. hmmm ... klein ... hmmmm? ... ob ich das Teil map mit UPX bekannt machen sollte? :gruebel: |
Re: Verknüpfung erstellen
is egal obs Konsole oder Win32 ist. :stupid:
Wäre super wenn du mal was senden könntest |
Re: Verknüpfung erstellen
Wenn ich dann die Unit ole2 einbinde, krieg ich wieder jede Menge Fehlermeldungen:
Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen //in GetSpecialFolder Inkompatible Typen: 'Ole2.TGUID' und 'System.TGUID' //in CreateLink Inkompatible Typen: 'Ole2.TGUID' und 'System.TGUID' //in CreateLink Inkompatible Typen: 'System.TGUID' und 'Ole2.TGUID' //in CreateLink Worran liegt das schon wieder? (Hatte jetzt erst Zeit zum Testen) |
Re: Verknüpfung erstellen
Weiß hier keiner wie man solche Fehlermeldungen wegkriegt?
|
Re: Verknüpfung erstellen
Indem du die Version aus der CodeLib (
![]() Also u.A. nur ShlObj und ActiveX zusätzlich in den Uses, sprich, die Uses-Liste in deinem Beitrag ganz oben ist korrekt. |
Re: Verknüpfung erstellen
Im Notfall musst du die Variablen die du übergibst so definieren:
Delphi-Quellcode:
Es kann halt sein das wenn du nur TGUID hinschreibst Delphi das nächst beste TGUID holt und das dann eventuell das falsche ist ;)
var AGUID: Ole2.TGUID;
Gruß Neutral General |
Re: Verknüpfung erstellen
Und ich würde sagen, Ole2 ist hier fehl am Platz - sie wird sonst nirgendwo erwähnt. :gruebel:
|
Re: Verknüpfung erstellen
Brauche ich Ole2 nicht für IID_IPsersistFile?
|
Re: Verknüpfung erstellen
Zitat:
![]()
Code:
C:\Programme\Borland\Delphi7\Source>grep IID_IPersistFile *.* -d -c
File Rtl\Win\Ole2.pas: 2 lines match |
Re: Verknüpfung erstellen
Als nochmal: Nimm besser die Version hier aus der CodeLib. Da brauchst du Ole2 nicht! Und die funktioniert auch (getestet).
|
Re: Verknüpfung erstellen
@himitsu:
du kannst der windowssuche auch sagen, dass für andere Dateitype die plaintext-Suche verwendet werden soll. z.B. mit dem programm: ![]() was das Programm macht: es legt in der registry einen Schlüssel namens "PersistentHandler" an (unter dem datei-endungs-schlüssel) und weist dessen default-wert eine sog. ClassID zu (bei mir {5e941d80-bf96-11cd-b579-08002b30bfeb}) hinter dieser befindet sich der "Plain Text persistent handler", dahinter der "PlainTextFilter" und letztendlich läuft es über die query.dll ;) ganz ohne zusatzfilter :spin2: brauchst also nur die classID bei dir rausfinden (ist unter .txt) und einen entsprechenden schlüssel unter '.pas' anlegen :roll: gruß Frank |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz