In this walkthrough, you will use the Visual Studio integrated development environment (IDE) and the various wizards to create the same ATL COM server.
To create a simple ATL COM server
- On the File menu, click New, and then click Project. - The New Project dialog box appears. 
- In the Project Types pane, click Visual C++, and in the Templates pane, click the ATL Project icon. 
- In the Name box, enter MyServer. 
- Click OK. - The ATL Project Wizard appears. 
- Click Finish to close the wizard and generate the project. - The result is an inproc ATL COM server without any server objects. 
- In Solution Explorer, right-click the MyServer project. 
- On the shortcut menu, click Properties. 
- Click on Linker. Change the Per-UserRedirection option to Yes. 
- Click OK. 
- On the Build menu, click Build Solution. - Building the project successfully registers the server with the operating system. 
To add and implement a server object
- In Solution Explorer, right-click the MyServer project 
- On the shortcut menu, click Add, and then click Add Class. - The Add Class dialog box appears. 
- In the Templates pane, click the ATL Simple Object item and click Open. - The ATL Simple Object Wizard appears. 
- In the Short Name text box, enter Object1. 
- Click Add to accept the remaining default values. 
- In Class View, right-click the IObject1 node. 
- On the shortcut menu, click Add, and then click Add Property. 
- For Property type, enter SHORT. 
- For Property name, enter GetANum. 
- Click Finish. 
- In the body of the get_GetANum method of CObject1, replace the comment with the following code: - *pVal= 101;
- On the Build menu, click Build Solution. 
To create the test client application
- In Solution Explorer, right-click the solution node and select Add, then select New Project. - The New Project dialog box appears. 
- In the Project Types pane, click Visual C++, and in the Templates pane, click the Win32 Project icon. 
- In the Name text box, enter COMTest. 
- Click OK. - The Win32 Application Wizard appears. 
- Click Application Settings and select Console application. 
- Click Finish to close the dialog box and generate the project. 
- In Solution Explorer, double-click the COMTest.cpp. 
- Replace the default code with the following: - #include "stdafx.h" #include <iostream> #include "atlbase.h" #import "..\MyServer\_MyServer.tlb" no_namespace using namespace std; struct OleCom { OleCom() { CoInitialize(NULL);} ~OleCom() { CoUninitialize(); } }olecom; int _tmain(int argc, _TCHAR* argv[]) { CComPtr<IUnknown> spUnknown; spUnknown.CoCreateInstance(__uuidof(CObject1)); CComPtr<IObject1> pI; spUnknown.QueryInterface(&pI); short res = 0; pI->get_GetANum(&res); cout << res << endl; return 0; }
- On the Build menu, click Build Solution. 
To run the test application
- At the command line, change to the COMTest\Debug directory. 
- Run the application by entering the following command: - comtest- You will see the integer value being printed.