Entwickler-Ecke

Windows API - Wie ging das nochmal mit der Verknüpfung???


Masterhawk - So 14.11.04 19:52
Titel: Wie ging das nochmal mit der Verknüpfung???
Juhuuu....ich hab ein Problem eine Verknüpfung zu erstellen. Ich habe mir vor kurzem eine Soure aus diesem Forum besorgt, aber hab den Thread nicht mehr gefunden....SORRY


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
function CreateLink(lpszPathObj,lpszPathLink, 
  lpszDesc: string):Boolean; 
var 
  psl: IShellLink; 
  ppf: IPersistFile; 

const 
  IID_IPersistFile: 
     TGUID = (D1:$0000010B
              D2:$0000
              D3:$0000
              D4:($C0,$00,$00,$00,$00,$00,$00,$46)); 
begin 
  result := False; 
  if SUCCEEDED(CoCreateInstance(CLSID_ShellLink, 
                                nil
                                CLSCTX_INPROC_SERVER, 
                                IID_IShellLinkA, 
                                psl)) then 
    begin 
      psl.SetPath(PChar(lpszPathObj)); 
      psl.SetDescription(PChar(lpszDesc)); 
      if SUCCEEDED(psl.QueryInterface(IID_IPersistFile, 
                   ppf)) then 
        begin 
          ppf.Save(StringToOLEStr(lpszPathLink),TRUE); 
          Result := true; 
          ppf._Release; //---> Runtime-Error wenn aktiv 
        end
    end
  psl._Release; // ---> Runtime-Error wenn aktiv 
end


//Aufruf: 
  if CreateLink('d:\Datei.exe''c:\Verknüpfung.exe''Verknüpfung'then 
    MessageDlg('Verknüpfung angelegt', mtInformation, [mbOk], 0);  

Benötigt wird die Unit ShlOBJ.


Soweit so gut aber mein Delphi sagt mir, dass er die folgenden Sachen nicht kennt, trotz Einbindung der ShlOBJ.dcu
IPersistFile
SUCCEEDED
CoCreateInstance

und noch ein paar mehr....Aber welche Unit muss ich einbinden, damit es läuft?????


Delete - Mo 15.11.04 14:04

Du bist sicher, dass das aus diesem Forum stammt? Was spricht dann gegen eine Stichwortsuche. Die Begriffe kennst du doch inzwischen. ;) Bei der FAQ-Suche nach Suche in: Delphi-Library "ISHELLLINK" gibt´s nur 3 Ergebnisse, und IMHO nennt z.B. Tino alle Units, die man braucht.


IngoD7 - Mo 15.11.04 14:27

Ist aus Delphi-Praxis; und dort wird weiter verwiesen auf Delphi-Treff.


Delete - Mo 15.11.04 14:38

Haarspalter! :mrgreen: Ich wollte damit ja nur sagen, dass es auch hier im DF was zu finden gibt.