/////////////////////////////////////////////////////////////// // client.cpp - client for outprocMT // // // // Platform: Dell Dimension 9150, WinXP, SP2 // // Application: Demonstration for CSE775 - Distrib. Objs // // Authors: Eddon & Eddon, Inside Distributed COM, // // Microsoft Press, 1998 // // Modified: Jim Fawcett, Syracuse Univ, CST 2-187 // // (315) 443-3948, fawcett@ecs.syr.edu // /////////////////////////////////////////////////////////////// #define _WIN32_DCOM #include #include "Component\component.h" using namespace std; int main() { cout << "Client: Calling CoInitialize()" << endl; CoInitialize(NULL); DWORD ID = GetCurrentThreadId(); cout << "\n client STA thread ID is: " << ID << "\n\n"; IUnknown* pUnknown; ISum* pSum; cout << "Client: Calling CoCreateInstance() " << endl; HRESULT hr = CoCreateInstance( CLSID_InsideDCOM, NULL, CLSCTX_LOCAL_SERVER, IID_IUnknown, (void**)&pUnknown ); if(FAILED(hr)) { cout << "\n Call to CoCreateInstance failed\n\n"; return 1; } cout << "Client: Calling QueryInterface() for ISum on " << pUnknown << endl; hr = pUnknown->QueryInterface(IID_ISum, (void**)&pSum); if(FAILED(hr)) { cout << "QueryInterface FAILED" << "\n\n"; return 1; } cout << "Client: Calling Release() for pUnknown" << endl; hr = pUnknown->Release(); cout << "Client: pSum = " << pSum << endl; int sum; hr = pSum->Sum(4, 9, &sum); if(SUCCEEDED(hr)) cout << "Client: Calling Sum() return value is " << sum << endl; cout << "Client: Calling Release() for pSum" << endl; hr = pSum->Release(); cout << "Client: Calling CoUninitialize()" << endl; CoUninitialize(); return 0; }