【问题标题】:Setting ProgID in IDE在 IDE 中设置 ProgID
【发布时间】:2010-12-04 01:42:20
【问题描述】:

我正在使用 C++ Builder XE 创建一个 COM 服务器。它的 ProgID 始终是“PROGRAMNAME.CLASSNAME”。

如何更改 ProgID?我想使用“COMPANYNAME.PROGRAMNAME.FUNCTIONALITY”。

一个德尔福的答案可能就足够了。

【问题讨论】:

    标签: delphi com c++builder


    【解决方案1】:

    覆盖工厂的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() 使用派生工厂。

    干杯,

    布鲁诺

    【讨论】:

    • 谢谢,将在接下来的一段时间内测试并标记答案是否正确。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-31
    • 1970-01-01
    相关资源
    最近更新 更多