Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#6

Re: COM Interface / pdfMachine

  Alt 16. Aug 2006, 13:37
Zitat von skyware:
als Wert im "extraButtonsComHandler" habe ich "HorizonPDFMachine.dll" eingetragen.
Das ist wohl nicht ganz richtig; du musst nicht den Namen der DLL, sondern die ClassId deiner Klasse eintragen.
Hier deine TLB-Datei (im IDL-format):
Code:
library HorizonPDFMachine
{
    // TLib :    // TLib : OLE Automation : {00020430-0000-0000-C000-000000000046}
    importlib("stdole2.tlb");

    // Forward declare all types defined in this typelib
    interface IPdfButton;

    [
      odl,
      uuid(569A5C4B-839E-4199-87DC-6385C39577E6),
      version(1.0),
      helpstring("Dispatch-Schnittstelle für PdfButton-Objekt"),
      dual,
      oleautomation
    ]
    interface IPdfButton : IDispatch {
        [id(0x00000001)]
        HRESULT clicked(
                        [in] BSTR buttonText,
                        [in] IDispatch* pdfMachineviewer);
    };

    [
      uuid(F557474E-27A7-44E7-8B04-263351DCA7BD),
      version(1.0),
      helpstring("PdfButton Objekt")
    ]
    coclass PdfButton {
        [default] interface IPdfButton;
    };
};
Deine Bibliothek heisst HorizonPDFMachine, deine CoClass heisst PdfButton
=> ClassID = 'HorizonPDFMachine.PdfButton'
Windows findet deine DLL über Einträge in der Registry/COM-Datenbank.
Dazu musst du sie aber registrieren mit RegSvr32.exe oder in Delphi mit Start->ActiveX Server eintragen
Andreas
  Mit Zitat antworten Zitat