AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Wie nutzt man ein Interface (IKnownFolderManager)
Thema durchsuchen
Ansicht
Themen-Optionen

Wie nutzt man ein Interface (IKnownFolderManager)

Ein Thema von p80286 · begonnen am 5. Nov 2013 · letzter Beitrag vom 6. Nov 2013
 
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#1

Wie nutzt man ein Interface (IKnownFolderManager)

  Alt 5. Nov 2013, 14:37
Hallo zusammen,
Um für die neueren Windowsversionen gerüstet zu sein, dachte ich es wäre gut das IKnownfolderManager-Interface zu nutzen.
dabei ist mir aufgefallen, daß ich überhaupt keine Ahnung habe, wie ein Interface richtig eingesetzt wird.
Aus dem was ich mir zusammengesucht habe habe ich dann die folgende Unit gebastelt.
Mein konkretes Problem ist daß
Zitat:
[DCC Fehler] Unit1.pas(24): E2065 Ungenügende Forward- oder External-Deklaration: 'TKnownFolderManager.FolderIdFromCsidl'
......
angemeckert wird. Da die Funktionen aber im Interface stecken, verstehe ich diese Fehlermeldung überhaupt nicht.

U.U. ist das überhaupt Blödsinn, dann wäre es schön wenn Ihr mir sagen könntet wie ich's richtig machen muß.

Delphi-Quellcode:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls
  ,activeX
  ,shlObj;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

  TKnownFolderManager = class(TInterfacedObject, IKnownFolderManager)
  public
    function FolderIdFromCsidl(nCsidl: Integer;
      var pfid: TKnownFolderID): HRESULT; stdcall;
    function FolderIdToCsidl(const rfid: TIID;
      var pnCsidl: Integer): HRESULT; stdcall;
    function GetFolderIds(ppKFId: array of TKnownFolderID;
      var pCount: UINT): HRESULT; stdcall;
    function GetFolder(const rfid: TIID;
      out ppkf: IKnownFolder): HRESULT; stdcall;
    function GetFolderByName(pszCanonicalName: LPCWSTR;
      out ppkf: IKnownFolder): HRESULT; stdcall;
    function RegisterFolder(const rfid: TIID;
      var pKFD: TKnownFolderDefinition): HRESULT; stdcall;
    function UnregisterFolder(const rfid: TIID): HRESULT; stdcall;
    function FindFolderFromPath(pszPath: LPCWSTR; mode: FFFP_MODE;
      out ppkf: IKnownFolder): HRESULT; stdcall;
    function FindFolderFromIDList(pidl: PItemIDList;
      out ppkf: IKnownFolder): HRESULT; stdcall;
    function Redirect(const rfid: TIID; hwnd: HWND; flags: TKFRedirectFlags;
      pszTargetPath: LPCWSTR; cFolders: UINT; var pExclusion: TKnownFolderID;
      var ppszError: LPWSTR): HRESULT; stdcall;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.Button1Click(Sender: TObject);

var
  io : TKnownFolderManager;
  count : Cardinal;
  vielefolder : array of TKnownFolderID;
  buffer : array [0..1024] of byte absolute vielefolder;
begin
  io:=TKnownFolderManager.Create;
  io.GetFolderIds(vielefolder,count);
  Memo1.Lines.Add(' Anz:'+inttostr(count));
end;
(hierfür verwende ich übrigens xe2)

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:22 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-2025 by Thomas Breitkreuz