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

  • Live Event Date: May 6, 2014 @ 1:00 p.m. ET / 10:00 a.m. PT While you likely have very good reasons for remaining on WinXP after end of support -- an estimated 20-30% of worldwide devices still are -- the bottom line is your security risk is now significant. In the absence of security patches, attackers will certainly turn their attention to this new opportunity. Join Lumension Vice President Paul Zimski in this one-hour webcast to discuss risk and, more importantly, 5 pragmatic risk mitigation techniques …

  • Ever-increasing workloads and the challenge of containing costs leave companies conflicted by the need for increased processing capacity while limiting physical expansion. Migration to HP's new generation of increased-density rack-and-blade servers can address growing demands for compute capacity while reducing costly sprawl. Sponsored by: HP and Intel® Xeon® processors Intel, the Intel logo, and Xeon Inside are trademarks of Intel Corporation in the U.S. and/or other countries. HP is the sponsor …

Most Popular Programming Stories

More for Developers

Latest Developer Headlines

RSS Feeds