2016-08-18 19 views
0

私は、ウィザードで生成されたATL Simple Objects(= COMオブジェクト)の束を持つATL DLLを持っています。 progid属性が自動的に各コクラスのために生成されるべきであると言っているようだこれらのATLシンプルオブジェクトに対してProgIdが生成されないのはなぜですか?

[ 
    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

IDLファイルには、インタフェースの多くとこのようなライブラリセクションが含まれています。しかし、私のレジストリには何もありません。 DLLは、各コンパイル時に完全に正常に登録され、問題なくCOMクライアントから使用できます。

progidが自動的に生成されないのはどうしてですか?

+1

これはATLシンプルオブジェクトウィザードのトラップです。 "短い名前"と入力すると、すべてのフィールドが自動的に入力され、誰もデフォルトを気にしません。 1つを除いて、右下隅に埋められています。うん。 –

答えて

0

私はドキュメントを誤解しているようですが、IDLコーカサスの場合、ProgIDは自動的に生成されません。残念な。

とにかく、それらを後で.rgsファイルに追加する方法については、hereで説明します。

関連する問題