Установка ProgID в IDE - PullRequest
       19

Установка ProgID в IDE

1 голос
/ 04 декабря 2010

Я создаю COM-сервер, используя C ++ Builder XE.Его ProgID всегда равен «PROGRAMNAME.CLASSNAME».

Как изменить ProgID?Я хочу использовать 'COMPANYNAME.PROGRAMNAME.FUNCTIONALITY'.

Вероятно, будет достаточно ответа Delphi.

1 Ответ

2 голосов
/ 05 декабря 2010

Переопределить 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)
  {
  }
};

Затем пусть createFactory () COM-сервера использует производную фабрику.

Cheers,

Bruneau

...