Converting a Win32 Application to ATL

WEBINAR:
On-Demand

How to Boost Database Development Productivity on Linux, Docker, and Kubernetes with Microsoft SQL Server 2017


In the midst of all this publicity writing ATL-based applications, you will find little in the way of documentation on porting your legacy Win32 applications to ATL. Hopefully, these steps will ease that migration path.

Migration Steps

  1. 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>
    
  2. In the StdAfx.cpp, Include AtlImpl.cpp file.
  3. In the main Application file, add the following
    //originally declaring the CComModule variable
    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()
    
  4. Initialize the CComModule variable with ObjectMap and with the current instance in the WinMain function
    _Module.Init(ObjectMap, hInstance);
    
  5. Add the <ProjectName>.idl file into the project and add the library related code:
    library TestLIB
    {
    }
    
  6. 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!)


Comments

  • There are no comments yet. Be the first to comment!

Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • When it comes to storage, not all data is the same. Different data has very different performance and capacity requirements. With the explosion of unstructured data – 80% of data growth worldwide is unstructured data – the landscape has become even more complicated. Make sure you have what you need to handle all this data and store it appropriately. This brief, "Top 5 Reasons to Consider Veritas Access," describes how to manage your data, so it's easily accessible regardless of where it resides …

  • Using Internet of Things (IoT) technologies, colleges and universities are linking anything and everything to create new applications that elevate the campus experience. It's called a Smart Campus. And it's transforming campus life for students, faculty and visitors. When everything is connected, devices and applications can interact with users and with each other in ways that weren't possible before: digital classrooms, connected campus ID cards, connected lighting and building environmental systems and …

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date