LABRADOR Sample: Implements a Server with an Out-of-Proc Custom Interface and Compiler COM Support

This sample shows how to use ATL to implement an EXE server. The server allows creation of an object that supports two custom interfaces, defined in Labrador.idl. Compiler COM support is used to implement custom interfaces that perform nontrivial marshaling of a C-style array.

Compare this sample with the LABRADOR sample in the ATL directory.

Security noteSecurity Note

This sample code is intended to illustrate a concept, and it shows only the code that is relevant to that concept. It may not meet the security requirements for a specific environment, and it should not be used exactly as shown. We recommend that you add security and error-handling code to make your projects more secure and robust. Microsoft provides this sample code "AS IS" with no warranties.

To get samples and instructions for installing them:

To access samples from Visual Studio

  • On the Help menu, click Samples.

    By default, these samples are installed in drive:\Program Files\Microsoft Visual Studio 10.0\Samples\.

  • For the most recent version of this sample and a list of other samples, see Visual Studio Samples on the MSDN Web site.

To build and run this sample

  1. Open the solution labrador.sln.

  2. On the Build menu, click Build Solution. Note that a compiler warning will occur because this sample uses the obsolete ATL class CComModule. Refer to the ATL version of this sample to see how to use CAtlExeModule.

  3. Set labdriv as the startup project (right-click the project node and click Set as StartUp Project).

  4. On the Debug menu, click Start Without Debugging.

This sample demonstrates the following keywords:

#import; _com_ptr_t; _com_error