Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Изменение ProgID COM-сервера для соответствия названию компании и функциональности программы

Delphi , Технологии , COM и DCOM

Изменение ProgID COM-сервера в Delphi: руководство для разработчиков

При создании COM-сервера в среде C++ Builder XE, разработчики часто сталкиваются с проблемой, что ProgID, который генерируется по умолчанию, соответствует формату PROGRAMNAME.CLASSNAME. Это может быть неудобно, особенно если вы хотите, чтобы идентификатор программы соответствовал названию вашей компании и отражал функциональные особенности программы. В данном руководстве мы рассмотрим, как изменить ProgID COM-сервера, созданного в Delphi, на COMPANYNAME.PROGRAMNAME.FUNCTIONALITY.

Понимание ProgID

ProgID (Programmatic Identifier) - это уникальный идентификатор, используемый в Windows для идентификации компонентов, таких как COM-объекты. Он состоит из двух частей, разделенных точкой: название компании и название продукта или функциональности. Изменение ProgID позволяет более точно описать, кто является разработчиком и что представляет собой функциональность COM-объекта.

Изменение ProgID в Delphi

Чтобы изменить ProgID вашего COM-сервера, вам необходимо переопределить метод GetProgID фабрики объектов. Это можно сделать, создав новый класс, унаследованный от TCppComObjectFactory<T>, где T - это тип вашего COM-объекта. В новом классе переопределите метод GetProgID, возвращая нужную строку ProgID.

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-сервера, используйте созданный вами производный класс фабрики.

// Пример создания фабрики с использованием производного класса
TMyCppComObjectFactory<MyComClass> *Factory = new TMyCppComObjectFactory<MyComClass>(
  ComServerObject, ComClass, ClassID, ClassName, Description, Instancing, ThreadingModel);

Тестирование и подтверждение

После внесения изменений в код, важно провести тестирование COM-сервера, чтобы убедиться, что новый ProgID корректно отображается и функционирует как ожидается. При успешном тестировании вы можете подтвердить, что решение работает правильно.

Заключение

Изменение ProgID COM-сервера позволяет разработчикам более точно идентифицировать свои компоненты в системе Windows. С помощью переопределения метода GetProgID и создания нового производного класса фабрики, вы можете настроить ProgID в соответствии с вашими требованиями. Это руководство предоставляет базовые шаги для выполнения этой задачи в среде разработки Delphi.

Создано по материалам из источника по ссылке.

Это руководство описывает процесс изменения ProgID COM-сервера, созданного в среде Delphi, для того чтобы он соответствовал желаемому формату, включающему название компании и функциональные особенности программы.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: COM и DCOM ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2024-12-27 01:11:22/0.0033378601074219/0