Иллюстрированный самоучитель по Architecture .NET

Действующий клиент на основе модели компонентных объектов Microsoft (COM)

В целях сравнения (и, конечно, для тестирования компонента, построенного на основе модели компонентных объектов Microsoft (COM), до применения к нему утилиты Tlbimp.exe) ниже показано неуправляемое консольное клиентское приложение Win32.

Взгляните на этот пример, чтобы вспомнить один из способов функционирования клиента на основе модели компонентных объектов Microsoft (COM) и сравнить его код с кодом клиента, написанным на управляемом C++ на основе модели компонентных объектов Microsoft (СОМ). (Код на управляемом C++ будет приведен в следующем подразделе.)

Наш неуправляемый клиент на основе модели компонентных объектов Microsoft (СОМ) был создан с помощью Visual C++ 6.0 как консольное приложение Win32 (Win32 console application). Имеется также исполняемый (ЕХЕ) файл рабочей версии этой программы.

//LegacyCOMClient.срр
ttinclude <iostream.h>
#include <objbase.h>
#import "..\LegacyCOMServe\LegacyCOMServer.tlb" no_namespace named_guids
void main()
{
{
// вложенные фигурные скобки
// предотвращают исключение указателя (pointer exception)!
Colnitialize(NULL); // ПУСТОЙ УКАЗАТЕЛЬ
ILegacyCOMObjPtr pi(CLSID_LegacyCOMObj);
int i = pi › AddEmUp(3, 4);
cout << i << endl << flush;
}
CoUninitialize();
}

Выдача этого клиентского приложения, построенного на основе модели компонентных объектов Microsoft (COM), приведена ниже. Она получена в результате вызова интерфейсного метода AddEmUp, построенного на основе модели компонентных объектов Microsoft (COM). В качестве параметров методу передаются числа 3 и 4.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.