///////////////////////////////////////////////////////////////////// // client.cpp - Client for First ATL Demo, Spring 2008 // // // // Jim Fawcett, CST 4-187, (315)443-3948, jfawcett@twcny.rr.com // ///////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "../ATLDemoSp08/ATLDemoSp08_i.h" #include int _tmain(int argc, _TCHAR* argv[]) { std::cout << "\n First ATL Demonstration, Spring 2008"; std::cout << "\n ======================================\n"; ::CoInitialize(NULL); // create single-threaded apartment CComQIPtr pDemo; // construct smart interface pointer pDemo.CoCreateInstance(CLSID_Demo); // create instance of COM object, Demo CComBSTR str(L"CSE775 - Distributed Objects"); // create smart BSTR wrapper object HRESULT hr; if(pDemo) { hr = pDemo->putString(str); // invoke putString through IDemo COM interface if(!SUCCEEDED(hr)) // test for success { std::cout << "\n call to IDemo::putString(BSTR) failed\n\n"; return 1; } hr = pDemo->getString(&str); // invoke getString through IDemo COM interface if(!SUCCEEDED(hr)) // test for success { std::cout << "\n call to IDemo::getString(BSTR*) failed\n\n"; return 1; } std::wcout << "\n client received: " << str.Detach(); } // extract BSTR string, then deallocate storage std::cout << "\n\n"; return 0; }