1
我正在使用C++ Builder XE創建COM服務器。它的ProgID總是'PROGRAMNAME.CLASSNAME'。在IDE中設置ProgID
如何更改ProgID?我想使用'COMPANYNAME.PROGRAMNAME.FUNCTIONALITY'。
Delphi答案可能就足夠了。
我正在使用C++ Builder XE創建COM服務器。它的ProgID總是'PROGRAMNAME.CLASSNAME'。在IDE中設置ProgID
如何更改ProgID?我想使用'COMPANYNAME.PROGRAMNAME.FUNCTIONALITY'。
Delphi答案可能就足夠了。
覆蓋工廠的GetProgID方法。應遵循以下幾點:
template <typename T>
class TMyCppComObjectFactory : public TCppComObjectFactory<T>
{
protected:
System::UnicodeString __fastcall GetProgID()
{
return "Company.ProgName.Functionality";
}
public:
__fastcall TMyCppComObjectFactory(Comobj::TComServerObject* ComServer,
Comobj::TComClass ComClass,
const GUID &ClassID,
const System::String ClassName,
const System::String Description,
Comobj::TClassInstancing Instancing,
Comobj::TThreadingModel ThreadingModel) :
TCppComObjectFactory<T>(ComServer, ComClass, ClassID,
ClassName, Description,
Instancing, ThreadingModel)
{
}
};
然後讓COM服務器的createFactory()使用派生工廠。
乾杯,
布諾
感謝,將考驗在接下來的一段時間,標記的答案正確的,如果它的工作原理。 – 2011-01-06 22:21:45