Новый проект

Для ознакомления с возможностями MIDL создайте новый пустой проект типа Win32 DLL. Для этого:

  1. Дайте команду File > New > Project. В диалоге New Project выберите шаблон Win32 Project под именем MyComTLib и нажмите ОК. ,
  2. В окне Win32 Application Wizard откройте вкладку Application Settings, установите переключатель Application Type в положение DLL, включите флажок Empty Project и нажмите кнопку Finish.
  3. Дайте команду Project > Add New Item. В диалоге Add New Item выберите шаблон MIDI File(.idl), задайте имя файла MyComTLib.idl и нажмите кнопку Open.
  4. В окне редактора появится новый документ — заготовка описания СОМ-объек-та на языке MIDL Введите в него текст, приведенный ниже:

//====== Импорт библиотечных определений

import "oaidl.idl";

import "ocidl.idl";

//====== Уточненное описание интерфейса ISay

[

object, uuid(170368DO-85BE-43af-AE71-053F506657A2) ,

helpstring ("My Test DLL COM-server ISay")

]

interface ISay : lUnknown

{

HRESULT Say();

HRESULT SetWord([in]BSTR word);

}

//====== Описание библиотеки типов

[

uuid (0934DA90-608D-4107-9ECC-C7E828AD0928),

version (1.0),

helpstring ("My Test DLL COM-server Type Library")

]

library MyCom {

importlib("stdole32.tlb") ;

[uuid(9B865820-2FFA-lld5-98B4-OOE0293F01B2)]

//====== Описание класса реализации интерфейса

coclass CoSay

{

[default] interface ISay; };

};

Попробуйте откомпилировать новый файл описания интерфейса, используя клавиатурную комбинацию Ctrl+F7. Если на этом этапе возникнут ошибки, то проверьте настройку проекта View > Property Pages > MIDL > General > MkTy ре Lib Compatible (она должна быть в состоянии No) и повторите компиляцию. После успешного ее завершения просмотрите содержимое папки проекта. В ней должны появиться новые файлы: MyComTLib_h.h, MyComTLibJ.c, MyComTLib_p.c и dlldata.c. Эти файлы, как было сказано, помогают обеспечить взаимодействие клиента с сервером. В результате их компиляции и сборки будет сгенерирована DLL, в которой реализованы коды заглушек proxy/stub.

Для того чтобы двинуться дальше, вам необходимо взять некоторые файлы из папки МуСот с предыдущим проектом типа DLL.

  1. Скопируйте и вставьте в папку текущего проекта файлы MyCom.h, MyCom.cpp, MyCom.reg и MyCom.def, но не переносите файл interfaces.h.
  2. Подключите их к проекту. Замените в файле MyCom.cpp директиву #include"interfaces.h" па tinclude "MyComTLib_i . с", а в файл MyCom.h вставьте новую директиву #include "MyComTLibJi.h".
  3. Измените содержимое файла MyCom.def так, чтобы оно учитывало создание новой DLL:

MyComTLib.def : Declares the module parameters. LIBRARY "MYCOMTLIB.dll"

EXPORTS .

DllGetclassObject PRIVATE

DllCanUnloadNow PRIVATE

 

Используются технологии uCoz