/////////////////////////////////////////////////////////////// // client.cpp - client for outproc1 // // // // Platform: Micron Dual Pentium 200, WinNT 4.0, SP3 // // Application: Demonstration for CSE791 - 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" void 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; CoCreateInstance( CLSID_InsideDCOM, NULL, CLSCTX_LOCAL_SERVER, IID_IUnknown, (void**)&pUnknown ); cout << "Client: Calling QueryInterface() for ISum on " << pUnknown << endl; HRESULT hr = pUnknown->QueryInterface(IID_ISum, (void**)&pSum); if(FAILED(hr)) cout << "QueryInterface FAILED" << endl; 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(); }