Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Shell-Erweiterung zur Icon-Darstellung erstellen (https://www.delphipraxis.net/88165-shell-erweiterung-zur-icon-darstellung-erstellen.html)

xaromz 11. Mär 2007 09:35


Shell-Erweiterung zur Icon-Darstellung erstellen
 
Hallo,

ich möchte eine Shell-Erweiterung programmieren, die mir den Inhalt von SVG-Dateien als Icon anzeigt. Hat jemand damit Erfahrung und kann mir ein paar Hinweise geben (vielleich ein Link auf ein Tutorial :wink: )?

Gruß
xaromz

turboPASCAL 11. Mär 2007 09:43

Re: Shell-Erweiterung zur Icon-Darstellung erstellen
 
Da gibts noch nix (kostenloses) ausser für Kylix -> http://moddom.gmxhome.de/

DGL-luke 11. Mär 2007 10:06

Re: Shell-Erweiterung zur Icon-Darstellung erstellen
 
Er will eine programmieren, turboPASCAL ;-)

MSDN-Library durchsuchenShell Extension sollte weiterhelfen.

Einen SVG-Viewer solltest du zum Beispiel auf torry.net finden.

xaromz 11. Mär 2007 10:51

Re: Shell-Erweiterung zur Icon-Darstellung erstellen
 
Hallo,
Zitat:

Zitat von DGL-luke
Er will eine programmieren, turboPASCAL ;-)

Genau.
Zitat:

Zitat von DGL-luke
MSDN-Library durchsuchenShell Extension sollte weiterhelfen.

Danke, schau ich mir an.
Zitat:

Zitat von DGL-luke
Einen SVG-Viewer solltest du zum Beispiel auf torry.net finden.

IMHO gibt es nur einen vernünftigen SVG-Viewer für Delphi, und zwar den: http://www.delphipraxis.net/internal...ct.php?t=63918 :wink: .

Gruß
xaromz

xaromz 12. Mär 2007 08:42

Re: Shell-Erweiterung zur Icon-Darstellung erstellen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

so, jetzt bin ich soweit fertig mit meinem Code, habe aber immer noch ein Problem: Wenn ich mein COM-Objekt registriere (regsvr32 SVGIcon.dll), dann funktioniert zwar die Icondarstellung im Explorer, aber der Prozess regsvr32 bleibt hängen und kann nur noch im Taskmanager gekillt werden. Beim Entfernen genauso.

Ich hänge mal das Projekt dran (die SVG-Geschichten habe ich rausgenommen, die sind für das Problem irrelevant und stören nur).

Kann mir das jemand erklären? Noch besser: Hat jemand eine Lösung?

Gruß
xaromz

//Edit: Anhang aktualisiert, hatte die SVG-Sachen doch nicht rausgenommen.

xaromz 13. Mär 2007 07:50

Re: Shell-Erweiterung zur Icon-Darstellung erstellen
 
Hallo,

ich bin zwar bisher mit meinem Problem nicht weitergekommen, möchte nun aber ein zusätzliches Interface implementieren: IThumbnailProvider.
Leider ist dieses unter Delphi noch nicht verfügbar, deshalb muss ich es selbst übersetzen. Kann mir jemand sagen, ob das so stimmt:
Code:
typedef DWORD WTS_ALPHATYPE;

    MIDL_INTERFACE("e357fccd-a995-4576-b01f-234630154e96")
    IThumbnailProvider : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetThumbnail( 
            /* [in] */ UINT cx,
            /* [out] */ __RPC__deref_out_opt HBITMAP *phbmp,
            /* [out] */ __RPC__out WTS_ALPHATYPE *pdwAlpha) = 0;
       
    };
Delphi-Quellcode:
type
  WTS_ALPHATYPE = DWORD;

  IThumbnailProvider = interface(IUnknown)
  ['{e357fccd-a995-4576-b01f-234630154e96}']
    function GetThumbnail(cx: UInt; out phbmp: HBitmap;
      out pdwAlpha: WTS_ALPHATYPE): HRESULT; stdcall;
  end;
Und falls jemand mein anderes Problem lösen kann, bin ich auch nicht böse :stupid: .

//Edit: Das hier brauch ich auch noch:
Code:
    MIDL_INTERFACE("b824b49d-22ac-4161-ac8a-9916e8fa3f7f")
    IInitializeWithStream : public IUnknown
    {
    public:
        virtual /* [local] */ HRESULT STDMETHODCALLTYPE Initialize( 
            /* [in] */ IStream *pstream,
            /* [in] */ DWORD grfMode) = 0;
       
    };
Delphi-Quellcode:
  IInitializeWithStream = interface(IUnknown)
  ['{b824b49d-22ac-4161-ac8a-9916e8fa3f7f}']
    function Initialize(const pstream: IStream; grfMode: DWORD): HRESULT; stdcall;
  end;
Gruß
xaromz


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz