C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 53 - ATL DECLARE_REGISTRY_RESOURCEID / ActiveX по шагам / Приложение

Шаг 53 - ATL DECLARE_REGISTRY_RESOURCEID

Данный макрос включается автоматически при создании объекта на основе ATL:

/////////////////////////////
// Ceee

class ATL_NO_VTABLE Ceee: 
public CComObjectRootEx,
public CComCoClass,
public IDispatchImpl
{
public:
Ceee()
{
}
DECLARE_REGISTRY_RESOURCEID(IDR_EEE)

Смысл этого макроса обновить системный реестр путем вызова функции UpdateRegistryFromResource():

#define DECLARE_REGISTRY_RESOURCE(x)\
static HRESULT WINAPI UpdateRegistry(BOOL bRegister)\
{\
return _Module.UpdateRegistryFromResource(_T(#x), bRegister);\
}

Эта функция использует идентификатор ресурса для обновления реестра. Вы можете найти этот идентификатор в ресурсах. Там записана информация для помещения в реестр.

53_1.gif (6958 b)

Данная методика применяется часто при работе с OLE. Например, если Вы создаете приложение сервер ActiveX, то там то же при запуске приложения производится обновления реестра:

// When a server application is launched stand-alone, it is a good idea
// to update the system registry in case it has been damaged.
m_server.UpdateRegistry(OAT_INPLACE_SERVER);
// Dispatch commands specified on the command line

Этот подход чрезвычайно грамотный на мой взгляд. Запустил приложение, а оно взяло и зарегистрировало компоненты. Именно такая возможность при запуске, а не только при инсталляции. И хотя здесь приложение регистрируем само себя, но не тяжело добавиться и регистрацию других.


| |
Автор Каев Артем.
[AD]