2016-08-18 2 views
0

Ich habe eine ATL-DLL mit einer Reihe von einfachen ATL-Objekten (= COM-Objekte), alle Assistenten generiert.Warum wird für diese einfachen ATL-Objekte keine ProgId generiert?

Die IDL-Datei enthält viele Schnittstellen und einen Bibliotheksabschnitt wie folgt aus:

[ 
    object, 
    uuid(00000000-0000-0000-0000-000000000000), 
    dual, 
    nonextensible, 
    pointer_default(unique) 
] 
interface IFoo : IDispatch{ 
    [id(1)] HRESULT FooMethod(); 
}; 
[ 
    uuid(00000000-0000-0000-0000-000000000000), 
    version(1.0), 
] 
library MyLib 
{ 
    importlib("stdole2.tlb"); 
    [ 
     uuid(00000000-0000-0000-0000-000000000000) 
    ] 
    coclass Foo 
    { 
     [default] interface IFoo; 
    }; 
} 

MSDN scheint zu sagen, dass ein progid Attribut sollte automatisch für jeden Co-Klasse erzeugt werden. In meiner Registrierung befinden sich jedoch keine. Die DLL wird ansonsten bei jeder Kompilierung ganz normal registriert und kann ohne Probleme von COM-Clients verwendet werden. Wie kann es passieren, dass progid s nicht automatisch generiert werden?

+1

Es ist ein Trap im ATL Simple Object Wizard. Sie geben den "Kurznamen" ein und alle Felder werden automatisch ausgefüllt, niemand kümmert sich um die Standardeinstellungen. Außer einem, in der unteren rechten Ecke vergraben. Jep. –

Antwort

0

Es scheint, ich habe die Dokumentation verwechselt und für IDL-Klassen die ProgID wird nicht automatisch generiert. Schade.

Wie auch immer, here wird erläutert, wie Sie sie zu den .rgs-Dateien später hinzufügen.

Verwandte Themen