
MINIMAL

This sample implements a minimalistic DLL server, to show how DLL's developed with ATL
can be very small.
The sever has a single COM object, with one custom interface with one method.

HOW TO RUN IT:

Build MINIMAL.DLL. The DLL is NOT self registering, so you will have to use regedit to
merge the provided MNIMAL.REG file. This .reg file does not have a path specified under
the InProcServer32 key (i.e. InProcServer32 = minimal.dll): you will have either to 
modify the entry with a full path (e.g. InProcServer32 = c:\<your path>\minimal.dll) or have 
your DLL in the system path.
Open the MINDRIV project (a console app) in the minimal\mindriv
subdirectory, build and run from debugger or command line.


REMARKS:

This project does not make use of any OLD/IDL file to define the interfaces. Instead, it
shows how to define custom interface directly from C++ (see minimal.h).

The DLL server's size is reduced because:

* The DLL has no resources associated with it (i.e. no RC file)
* Threre is no registration code (it uses a separate REG file), and no 
  DllRegisterServer()/DllUnregisterServer() entry points.
* Uses #define _ATL_MIN_CRT and specifies DllMain as the entry point: CRTs are not linked in
* Exception handling is disabled.
* The project uses #define _ATL_NO_FORCE_LIBS and links in only the needed libraries 
  (to avoid UUID.LIB, in minimal.cpp we define the IID's ATL is using)
