COM/DCOM Exception Class

This article includes an updated SYSEX exception class. I would like to thank Dale Nagata for testing out the earlier version with an in-process server (something I had not done) and for pointing some nasty problems. The updated version includes fixes to these as well as some other enhancements.

The updated version now propagates error line number and file occurences in the source window as demonstrated above. It also includes some additional macros which you may or may not find useful. One of the issues pointed out by Dale was the inability of the previous version to display the correct module name in the source window when using an in-process server. The fix I decided on was to include an external global variable initialized as follows HINSTANCE g_hMODInstance=NULL which you can set in DLLMain.

#include "sysex.h"

BOOL WINAPI DllMain(HINSTANCE hInstance, 
                    DWORD dwReason, 
                    LPVOID /* lpReserved */)
{
 if (dwReason == DLL_PROCESS_ATTACH)
 {
  g_hMODInstance=hInstance;
  _Module.Init(ObjectMap, hInstance, &LIBID_SYSEXSERVERLib);
  DisableThreadLibraryCalls(hInstance);
 }
 else if (dwReason == DLL_PROCESS_DETACH)
 {
  g_hMODInstance=NULL;
  _Module.Term();
 }
 return TRUE;    // ok
}

I apologize for the delay in getting the fixes done. Please feel free to modify the code if you see fit.

Reg.

Downloads

Download demo project - 27 Kb
Download source - 5 Kb


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

  • Companies undertaking an IT project need to find the right balance between cost and functionality. It's important to start by determining whether to build a solution from scratch, buy an out-of-the-box solution, or a combination of both. In reality, most projects will require some system tailoring to meet business requirements. Decision-makers must understand how much software development is enough and craft a detailed implementation plan to ensure the project's success. This white paper examines the different …

  • Today, users, applications, and data exist in more places than ever before, creating an unprecedented challenge for IT. How can IT achieve the flexibility and agility it needs to offer multiple types of applications in multiple locations? To better serve business demands for information everywhere, enterprises must develop new strategies for optimizing multiple kinds of networks. Read this white paper to learn how hybrid networks provide an unprecedented level of network dynamism, enterprise agility, and the …

Most Popular Programming Stories

More for Developers

RSS Feeds

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