2016-08-18 139 views
0

我有一堆ATL簡單對象(= COM對象),所有嚮導生成的ATL DLL。爲什麼沒有爲這些ATL簡單對象生成ProgId?

IDL文件中包含大量的接口和圖書館部分像這樣:

[ 
    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似乎是說,一個progid屬性應爲每個組件類自動生成。但是,我的註冊表中沒有任何內容。在其他情況下,DLL可以在每個編譯中完全正常註冊,並且可以從COM客戶端使用,而不會出現任何問題

怎麼會發生progid不會自動生成?

+1

這是ATL簡單對象嚮導中的陷阱。你輸入「短名稱」,所有的字段都會自動填入,沒有人介意默認值。除了一個,埋在右下角。對。 –

回答

0

看來我錯誤的文檔和IDL coclasses的ProgID不會自動生成。太糟糕了。

無論如何,here是解釋如何將它們添加到.rgs文件。

相關問題