Migration Steps
- Include AtlBase.h file in StdAfx.h after AfxWin.h. This is to take advantage to declare a variable for CComModule. Because AtlWin.h file needs, _Module as variable of CComModule.
#include <atlbase.h> #include <objbase.h>
We have to keep extern because we are originally declaring variable in Application main file.
extern CComModule _Module;
Then include the remaining files which helps for an ATL Application. In the insert Object of ATL uses ATLHost.h which needs to compile atlcom.h as before.
#include <atlwin.h> #include <atlcom.h>
- In the StdAfx.cpp, Include AtlImpl.cpp file.
- In the main Application file, add the following
<font color=green>//originally declaring the CComModule variable</font> CComModule _Module;
Then, Add the following two lines, which are required to activate ATL Object Wizard, when you choose Insert ATLObject from Insert Menu.
BEGIN_OBJECT_MAP(ObjectMap) END_OBJECT_MAP()
- Initialize the CComModule variable with ObjectMap and with the current instance in the WinMain function
_Module.Init(ObjectMap, hInstance);
- Add the <ProjectName>.idl file into the project and add the library related code:
library TestLIB { }
- If you want to insert a dialog and want to show. Follow the above steps and declare the variable of ur dialog class and call DoModal with that variable (don’t forget to include dlg header file).
Additional Notes
This code has been tested with and works fine with the Windows CE environment.
References and Acknowledgments
- ATL Internals – Rector, Sells (My thanks to the Authors!)