import "oaidl.idl"; // импорт
import "ocidl.idl"; // импорт
[
object, // объект
uuid(7C82D19B-2B04-476B-AEC8-OABFD7A2E54B), dual, // двойной
helpstring("ILegacyCOMOb] Interface"), // Интерфейс
pointer_default(unique) // уникальный
]
interface ILegacyCOMOb] : IDispatch // интерфейс
{
Вышеприведенный файл 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.