Для создания COM-клиентов можно использовать различные среды разработки. Рассмотрим, как создавать контроллеры автоматизации в cреде Microsoft Developer Studio с помощью MFC. Создадим, например, при помощи средства MFC AppWizard (exe) проект приложения Cnt, основанного на диалоговой панели.
Затем в проект приложения-контроллера Cnt следует добавить специальный контроллерный класс, обеспечивающий работу приложения с COM-объектом. Для этого необходимо вызвать ClassWizard, нажать на кнопку “Add class…” и выбрать пункт “From a type library…”. В появившемся окне следует из каталога проекта сервера автоматизации выбрать файл SvrExe.tlb (или файл библиотеки типов другого COM-сервера). Сгенерированные мастером ClassWizard файлы SvrExe.cpp и SvrExe.h автоматически добавятся в проект контроллера автоматизации Cnt.
Для того, чтобы создать COM-объект сервера, необходимо сначала объявить объект obj контроллерного класса ISimpleMFC (того класса, который создал мастер ClassWizard по библиотеке типов сервера SvrExe.tlb), наследованного от класса ColeDispatchDriver.
Затем для объекта obj следует вызвать его метод CreateDispatch (метод его базового класса), который загружает серверную программу и получает указатель на интерфейс IDispatch COM-объекта (сохраняемый в переменной m_lpDispatch класса COleDispatchDriver):
… AfxOleInit(); // инициализация библиотек OLE BOOL result=obj.CreateDispatch("SvrExe.SimpleMFC"); if(result!=TRUE) AfxMessageBox("COM-object didn't create"); …
Для вызова методов COM-объекта, входящих в состав интерфейса ISimpleMFC, следует воспользоваться вызовами в следующем формате:
ТипВозвращаемогоЗначения ИмяПеременной=obj.ИмяМетода(Параметры);
например,
obj.Initialize(2L);