11 Stimmen

Win32: Registrierungseinträge für die Registrierung eines ActiveX-Steuerelements?

Ich muss den Code schreiben, der ausgeführt wird, wenn DllRegisterServer aufgerufen wird, d.h. wenn jemand aufruft:

regsvr32 myActiveX.ocx

Ich versuche, die endgültige Liste der erforderlichen Registrierungseinträge zu finden (und nicht nur das, was ich durch Durchforsten der Registrierung zusammenschustern kann).

Bislang haben meine Expeditionen Folgendes ergeben:

HKEY_CLASSES_ROOT
   \MyCoolLibrary.MyCoolControl
      \Clsid
         (default) = "{myClassId}"
   \CLSID
      \{myClassId}
         \Control
         \InprocServer32
            (default) = "c:\foo\myActiveX.ocx"
            ThreadingModel = "Apartment"
         \MiscStatus
            \1
               (default) = 205201
         \ProgID
            (default) = "MyCoolLibrary.MyCoolControl"
         \ToolboxBitmap32
            (default) = "c:\foo\myActiveX.ocx,1"
         \TypeLib
            (default) = "{myTypeLibraryGuid}"
         \Verb
            \0
               (default) = "Properties,0,2"
         \Version
            (default) = "1.0"
   \TypeLib
      \{myTypeLibraryGuid}
         \1.0
            (default) = "MyCoolLibrary.MyCoolControl"

Nun zu den Bedenken: - Was enthält der Ordner "Control"? Weist sein Vorhandensein auf ein Steuerelement hin? - Was bewirkt ein MiscStatus von 205201? Was würde 205202 stattdessen tun? - Was ist das Verb "Eigenschaften,0,2"? Wo befinden sich "Eigenschaften,0,0" und "Eigenschaften,0,1"?

Mit anderen Worten, ich suche nach den Dokumenten.

0voto

PhiLho Punkte 39496

Nebenbei bemerkt, wenn Sie experimentell sehen wollen, welche Schlüssel erzeugt werden: verwenden Sie Sysinternals' Prozess-Monitor wird die Aktivität in der Registrierung in Echtzeit erfasst, wenn Sie das Steuerelement registrieren.

-1voto

Bagelzone Ha'bonè Punkte 1182

Arbeiten Sie mit einem 64-Bit-Betriebssystem?

Wenn ja, schreiben Sie stattdessen an
HKEY_CLASSES_ROOT \CLSID\
sollten Sie schreiben an
HKEY_CLASSES_ROOT \Wow6432Node\CLSID\

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X