Architecture Net



         

Унаследованный компонент на основе модели компонентных объектов Microsoft (COM) - часть 2


2.gif


Рис. 15 2. Утилита Ildasm.exe показывает содержимое сборки упаковщика модели компонентных объектов Microsoft (COM)

import "oaidl.idl"; // импорт

import "ocidl.idl"; // импорт

[

object, // объект

uuid(7C82D19B-2B04-476B-AEC8-OABFD7A2E54B), dual, // двойной

helpstring("ILegacyCOMOb] Interface"), // Интерфейс

pointer_default(unique) // уникальный

]

interface ILegacyCOMOb] : IDispatch // интерфейс

{

[id(l), helpstring("method AddEmUp")] // идентификатор,

// метод

HRESULT AddEmUp([in] int i, [in] int ],

[out, retval] int *psum); }; [

uuid(5FBA2BCl-CD8B-4B20-AF94-4CA17714C9CO),

version(1.0), // версия

helpstring("LegacyCOMServer 1.0 Type Library") // Библиотека

// типов ] library LEGACYCOMSERVERLib // библиотека

{

importlib("stdole32.tlb"); importlib("stdole2.tlb");

[

uuid(EBAC6FDO-D55B-4BA6-B386-8B774255A87C) ,

helpstring("LegacyCOMObj Class") // Класс

]

coclass LegacyCOMObj

{

[default] interface ILegacyCOMObj;

// [заданный по умолчанию] интерфейс ILegacyCOMObj;

};

};

Вышеприведенный файл IDL является частью такого же проекта на основе библиотеки шаблонных классов ATL LegacyCOMServer, который содержит следующий код реализации для открытого метода AddEmUp интерфейса на основе модели компонентных объектов Microsoft (COM):

STDMETHODIMP CLegacyCOMObj::AddEmUp(int i, int j, int *psum)

{

// TODO: Add your implementation code here

// TODO: Добавьте ваш код реализации здесь

*psum = i + j;

return S_OK;

}

Когда построен вышеуказанный проект сервера на основе модели компонентных объектов Microsoft (COM), системный реестр будет автоматически обновлен на одном из шагов построения. Однако если вы инсталлируете проект сервера на другой машине, то там тоже придется его зарегистрировать. Это может быть выполнено из командной строки следующим образом:

Regsvr32 LegacyCOMServer.dll

Рабочая версия этой динамически подключаемой библиотеки (DLL), не зависящая от библиотеки шаблонных классов ATL во время выполнения, прилагается. Вы можете ее зарегистрировать при помощи пакетного файла reg.bat и отменить регистрацию посредством unreg. bat.

CompEbook.ru Железо, дизайн, обучение и другие




Содержание  Назад  Вперед