В целях сравнения (и, конечно, для тестирования компонента, построенного на основе модели компонентных объектов 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.