2010-12-04 3 views
1

C++ Builder XE를 사용하여 COM 서버를 만들고 있습니다. ProgID는 항상 'PROGRAMNAME.CLASSNAME'입니다.IDE에서 ProgID 설정

어떻게 ProgID를 변경합니까? 'COMPANYNAME.PROGRAMNAME.FUNCTIONALITY'를 사용하고 싶습니다.

아마 델파이 대답이면 충분할 것입니다.

답변

2

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()를 가지고있다.

Bruneau

+0

감사

건배, 다음 동안 테스트하고 작동하는 경우 올바른으로 답을 표시합니다. –

관련 문제