Действующий клиент на основе модели компонентных объектов 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.