Шаг 30 - Регистрируем элемент

Вроде элемент создан. Только для того, чтобы скомпилировать проект осталось доделать некоторые мелочи. Например, для компиляции объявить библиотеку initguid.h в основном модуле.

//
// mycom.cpp
//

#include  "windows.h"
#include  "initguid.h"
#include  "ClassFactory.h"

......

Далее создать DEF файл, чтобы объявить экспортируемые функции:

;
; MyCOM.def  
;

LIBRARY       "MYCOM"
DESCRIPTION   'MYCOM  Windows  Dynamic  Link  Library'
EXPORTS     
	DllGetClassObject    PRIVATE
	DllCanUnloadNow      PRIVATE

Вот теперь можно сделать REG файл для того, чтобы поместить информацию о нашем элементе в системный реестр.

REGEDIT
HKEY_CLASSES_ROOT\My.Component.1       =  Step My Com
HKEY_CLASSES_ROOT\My.Component.1\CLSID = {3F5942E1-108B-11d4-B050-000001260696}
HKEY_CLASSES_ROOT\CLSID\{3F5942E1-108B-11d4-B050-000001260696} =  Step My Com
HKEY_CLASSES_ROOT\CLSID\{3F5942E1-108B-11d4-B050-000001260696}\ProgID = My.Component.1
HKEY_CLASSES_ROOT\CLSID\{3F5942E1-108B-11d4-B050-000001260696}\InprocServer32 = D:\PROJECT\MyCom\Debug\MyCom.dll

Смысл этих записей в том, что мы создаем в реестре раздел с именем My.Component.1 и присваиваем ему CLSID. О непосредсвенно по CLSID уже в дальнейшем мы даем разные атрибуты. Но главное здесь InprocServer32, именно он ответственнен за вызов DLL и создании класса. То есть за местонахождение сервера.

В минимальном виде COM элемент готов. В следующих шагах сделаем клинета !!!! Честное слово на то, чтобы это все понять я потратил целую неделю. Вообще-то на взгляд просто. В минимальном варианте.


Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.