Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Vorschaubild im Explorer für eigenes Dateiformat? (https://www.delphipraxis.net/69660-vorschaubild-im-explorer-fuer-eigenes-dateiformat.html)

MaOfDe 18. Mai 2006 10:13


Vorschaubild im Explorer für eigenes Dateiformat?
 
Hi,

programmiere zur Zeit einen Editor, dessen Erzeugnisse ich gerne über den Explorer anzeigen möchte, wie zum Beispiel in der Miniaturansicht oder die Vorschau im linken Rand. Ich hab leider nichts dazu in der DP gefunden, hat sich jemand schon mit sowas befasst?

Mfg

MaOfDe

Olli 21. Mai 2006 10:58

Re: Vorschaubild im Explorer für eigenes Dateiformat?
 
Ja, kann man mit COM. Genauer gesagt mit Shell Extensions. Die meisten Dokumentationen zum Thema gehen aber nur auf C++ ein. Mir ist der Name des Interfaces jetzt entfallen, ich werde aber mal nachschauen. Sollte ich es vergessen, bitte per PN erinnern!

sh17 22. Mai 2006 12:56

Re: Vorschaubild im Explorer für eigenes Dateiformat?
 
den Namen aber bitte mal hier posten.
Interessiert mich auch.

chaosben 22. Mai 2006 13:54

Re: Vorschaubild im Explorer für eigenes Dateiformat?
 
Ich poste einfach mal ein Stück Unit-Kopf von unserem Quickreport-Preview.

Delphi-Quellcode:
TQRPreview = class(TAutoObject, IQRPreview, IQueryInfo, IExtractImage, IPersistFile)
  private
  protected
    {IQueryInfo}
    function GetInfoTip(dwFlags: DWORD; var ppwszTip: PWideChar): HResult; stdcall;
    function GetInfoFlags(out pdwFlags: DWORD): HResult; stdcall;

    {IPersistFile}
    function IsDirty: HResult; stdcall;
    function Load(pszFileName: POleStr; dwMode: Longint): HResult; stdcall;
    function Save(pszFileName: POleStr; fRemember: BOOL): HResult; stdcall;
    function SaveCompleted(pszFileName: POleStr): HResult; stdcall;
    function GetCurFile(out pszFileName: POleStr): HResult; stdcall;
    function GetClassID(out classID: TCLSID): HResult; stdcall;

    {IExtractImage}
    function GetLocation(Buffer: POleStr;
                         BufferSize: DWORD;
                         var Priority: DWORD;
                         var Size: Windows.TSize;
                         ColorDepth: DWORD;
                         var Flags: DWORD): HResult; stdcall;
    function Extract(var BitmapHandle: HBITMAP): HResult; stdcall;
  public
    procedure Initialize; override;
    destructor Destroy; override;
  end;
Und das Ganze implementiert man in einem ComServer.

Olli 22. Mai 2006 14:28

Re: Vorschaubild im Explorer für eigenes Dateiformat?
 
IExtractImage ist der wichtige Teil dabei ;)

(IQRPreview ist vermutlich ein Interface von euch, chaosben?)

chaosben 22. Mai 2006 15:42

Re: Vorschaubild im Explorer für eigenes Dateiformat?
 
Zitat:

Zitat von Olli
IExtractImage ist der wichtige Teil dabei ;)

Ich stimme dir zu 99% zu. Mich dünkt aber, das IPersistFile auch einen Sinn hatte.
Zitat:

Zitat von Olli
(IQRPreview ist vermutlich ein Interface von euch, chaosben?)

Ja und nein. Dieses Interface wird automatisch angelegt, wenn man ein neues COM-Server Projekt beginnt. (Natürlich dann mit dem enstprechenden Namen :-D )


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:46 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