AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Shell-Erweiterung zur Icon-Darstellung erstellen
Thema durchsuchen
Ansicht
Themen-Optionen

Shell-Erweiterung zur Icon-Darstellung erstellen

Ein Thema von xaromz · begonnen am 11. Mär 2007 · letzter Beitrag vom 13. Mär 2007
Antwort Antwort
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#1

Shell-Erweiterung zur Icon-Darstellung erstellen

  Alt 11. Mär 2007, 09:35
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 )?

Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#2

Re: Shell-Erweiterung zur Icon-Darstellung erstellen

  Alt 11. Mär 2007, 09:43
Da gibts noch nix (kostenloses) ausser für Kylix -> http://moddom.gmxhome.de/
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Shell-Erweiterung zur Icon-Darstellung erstellen

  Alt 11. Mär 2007, 10:06
Er will eine programmieren, turboPASCAL

MSDN-Library durchsuchenShell Extension sollte weiterhelfen.

Einen SVG-Viewer solltest du zum Beispiel auf torry.net finden.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#4

Re: Shell-Erweiterung zur Icon-Darstellung erstellen

  Alt 11. Mär 2007, 10:51
Hallo,
Zitat von DGL-luke:
Er will eine programmieren, turboPASCAL
Genau.
Zitat von DGL-luke:
MSDN-Library durchsuchenShell Extension sollte weiterhelfen.
Danke, schau ich mir an.
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 .

Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#5

Re: Shell-Erweiterung zur Icon-Darstellung erstellen

  Alt 12. Mär 2007, 08:42
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.
Angehängte Dateien
Dateityp: zip svgicon_215.zip (5,3 KB, 27x aufgerufen)
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#6

Re: Shell-Erweiterung zur Icon-Darstellung erstellen

  Alt 13. Mär 2007, 07:50
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 .

//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
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
Antwort Antwort


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 05:59 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