home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / dbmsg / mapi / checkers.frm / dbugit.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-04-11  |  7.1 KB  |  184 lines

  1.  
  2.  
  3. // --------------------------------------------------------------------------
  4. #define TraceTag     TRACEFUNC
  5. #define TraceError(_sz,_x)   TRACEFUNC(NULL,"ERROR: %s %08x",_sz,_x)
  6.  
  7. #define DoTagsDialog()
  8. #define TagRegister 0;
  9. #define RestoreDefaultDebugState()
  10.  
  11. #define tagNull      __LINE__,NULL
  12. #define tagUI        __LINE__,"ui"        
  13. #define tagUIOther   __LINE__,"uiother"
  14. #define tagMouse     __LINE__,"mouse"
  15. #define tagEngine    __LINE__,"engine"
  16. #define tagEngineMin __LINE__,"enginemin"
  17. #define tagForm      __LINE__,"form"
  18. #define tagFormFunc  __LINE__,"formfunc"
  19. #define tagFuncTriv  __LINE__,"functriv"
  20.  
  21.  
  22. #define AssertSz(_x,_sz) if (!(_x)) ASSERTFUNC(_sz,__LINE__,__FILE__,#_x);
  23. #define Assert(_x) AssertSz(_x,"assertion")
  24. #define ASSERTDATA
  25. #define pdebug
  26. #define stddbgmin NULL
  27. #define stddbg    NULL
  28.  
  29. #define NYI(_x) AssertSz(0,_x)
  30.  
  31.  
  32. // --------------------------------------------------------------------------
  33. #ifdef DEBUG
  34. void _cdecl TRACEFUNC(int line, char * tag, char * szFmt, ...)
  35. #ifdef DEBUG_CODE
  36. {
  37.     va_list valMarker;
  38.     static char rgch[1024];
  39.     static char szTraceNumber[32];
  40.     static char szLineNumber[32];
  41.     int  x,q;
  42.  
  43.     if (tag && 1 != GetPrivateProfileInt("tag",tag, 1, "c:\\trace.out")) return;
  44.  
  45.     va_start(valMarker, szFmt);
  46.     wvsprintf(rgch, szFmt, valMarker);
  47.     lstrcat(rgch,"                                                                                                                                                      ");
  48.     rgch[125] = '\0';
  49.     wsprintf(rgch + 125,"<<< (%5d) ",line);
  50.     if (tag) lstrcat(rgch,tag);
  51.     else lstrcat(rgch,"NULL");
  52.     va_end(valMarker);
  53.  
  54.     if (GetPrivateProfileInt ("trace", "trace", 0, "c:\\trace.out"))
  55.     {
  56.         // ----- how many traces have we output
  57.  
  58.         x = GetPrivateProfileInt ("trace", "last", 0, "c:\\trace.out");
  59.         ++x;
  60.         wsprintf(szTraceNumber,"%d",x);
  61.         WritePrivateProfileString ("trace", "last", szTraceNumber, "c:\\trace.out");
  62.  
  63.  
  64.         // ----- cat the file
  65.  
  66.         FILE *fp;
  67.         fp = fopen("c:\\trace.out", "a");
  68.         if (fp)
  69.         {
  70.             fprintf(fp,"%s",rgch);
  71.             fclose(fp);
  72.         }
  73.         else MessageBeep(0);
  74.  
  75.         // ----- debug break
  76.  
  77.         if (q=GetPrivateProfileInt ("trace", "break", 0, "c:\\trace.out"))
  78.         {
  79.             if (q == x || -1 == q)
  80.                 MessageBox(NULL,rgch,"TRACE TAG",MB_OK);
  81.         }
  82.  
  83.     }
  84. }
  85. #else
  86. ;
  87. #endif
  88.  
  89. void ASSERTFUNC(char *sz,int line,char *file,char* string)
  90. #ifdef DEBUG_CODE
  91. {
  92.     static char rgch[1024];
  93.     TraceTag(tagNull,"\n\nASSERTION FAILURE !!!");
  94.     MessageBeep(0);
  95.     wsprintf(rgch,"%s(%d) (%s)\n%s",file,line,string,sz);
  96.     TraceTag(tagNull,rgch);
  97.     MessageBox(NULL,rgch,"assertion failure",MB_TASKMODAL|MB_ABORTRETRYIGNORE);
  98. }
  99. #else
  100. ;
  101. #endif
  102. #ifndef IID_IPersistMessage
  103. #ifdef _WIN32
  104. #include <objbase.h>
  105. #else
  106. #include <compobj.h>
  107. #endif
  108. #include <mapiform.h>
  109. #else
  110. #pragma message("here we are now .. REFCLSID")
  111. #endif
  112. char *DumpCLSID(REFCLSID riid)
  113. #ifdef DEBUG_CODE
  114.     {
  115.     static char ach[44];
  116.     static char szName[256];
  117.  
  118.     szName[0] = '\0';
  119.  
  120. #ifdef _WIN32
  121.     if      (IsEqualIID(riid, IID_IUnknown            )) lstrcpy(szName,"IID_IUnknown           ");
  122.     else if (IsEqualIID(riid, IID_IClassFactory       )) lstrcpy(szName,"IID_IClassFactory      ");
  123.     else if (IsEqualIID(riid, IID_IMalloc             )) lstrcpy(szName,"IID_IMalloc            ");
  124.     else if (IsEqualIID(riid, IID_IMarshal            )) lstrcpy(szName,"IID_IMarshal           ");
  125.     else if (IsEqualIID(riid, IID_IRpcChannel         )) lstrcpy(szName,"IID_IRpcChannel        ");
  126.     else if (IsEqualIID(riid, IID_IRpcStub            )) lstrcpy(szName,"IID_IRpcStub           ");
  127.     else if (IsEqualIID(riid, IID_IStubManager        )) lstrcpy(szName,"IID_IStubManager       ");
  128.     else if (IsEqualIID(riid, IID_IRpcProxy           )) lstrcpy(szName,"IID_IRpcProxy          ");
  129.     else if (IsEqualIID(riid, IID_IProxyManager       )) lstrcpy(szName,"IID_IProxyManager      ");
  130.     else if (IsEqualIID(riid, IID_IPSFactory          )) lstrcpy(szName,"IID_IPSFactory         ");
  131.     else if (IsEqualIID(riid, IID_ILockBytes          )) lstrcpy(szName,"IID_ILockBytes         ");
  132.     else if (IsEqualIID(riid, IID_IStorage            )) lstrcpy(szName,"IID_IStorage           ");
  133.     else if (IsEqualIID(riid, IID_IStream             )) lstrcpy(szName,"IID_IStream            ");
  134.     else if (IsEqualIID(riid, IID_IEnumSTATSTG        )) lstrcpy(szName,"IID_IEnumSTATSTG       ");
  135.     else if (IsEqualIID(riid, IID_IBindCtx            )) lstrcpy(szName,"IID_IBindCtx           ");
  136.     else if (IsEqualIID(riid, IID_IMoniker            )) lstrcpy(szName,"IID_IMoniker           ");
  137.     else if (IsEqualIID(riid, IID_IRunningObjectTable )) lstrcpy(szName,"IID_IRunningObjectTable");
  138.     else if (IsEqualIID(riid, IID_IInternalMoniker    )) lstrcpy(szName,"IID_IInternalMoniker   ");
  139.     else if (IsEqualIID(riid, IID_IRootStorage        )) lstrcpy(szName,"IID_IRootStorage       ");
  140.     else if (IsEqualIID(riid, IID_IMessageFilter      )) lstrcpy(szName,"IID_IMessageFilter     ");
  141.     else if (IsEqualIID(riid, CLSID_StdMarshal        )) lstrcpy(szName,"CLSID_StdMarshal       ");
  142.     else if (IsEqualIID(riid, IID_IStdMarshalInfo     )) lstrcpy(szName,"IID_IStdMarshalInfo    ");
  143.     else if (IsEqualIID(riid, IID_IExternalConnection )) lstrcpy(szName,"IID_IExternalConnection");
  144.     else if (IsEqualIID(riid, IID_IPersistMessage     )) lstrcpy(szName,"IID_IPersistMessage    ");
  145.     else if (IsEqualIID(riid, IID_IMAPIMessageSite    )) lstrcpy(szName,"IID_IMAPIMessageSite   ");
  146.     else if (IsEqualIID(riid, IID_IMAPISession        )) lstrcpy(szName,"IID_IMAPISession       ");
  147.     else if (IsEqualIID(riid, IID_IMAPIViewContext    )) lstrcpy(szName,"IID_IMAPIViewContext   ");
  148.     else if (IsEqualIID(riid, IID_IMAPIViewAdviseSink )) lstrcpy(szName,"IID_IMAPIViewAdviseSink");
  149.     else if (IsEqualIID(riid, IID_IMAPIFormAdviseSink )) lstrcpy(szName,"IID_IMAPIFormAdviseSink");
  150.     else if (IsEqualIID(riid, IID_IMAPIFormInfo       )) lstrcpy(szName,"IID_IMAPIFormInfo      ");
  151.     else if (IsEqualIID(riid, IID_IMAPIFormMgr        )) lstrcpy(szName,"IID_IMAPIFormMgr       ");
  152.     else if (IsEqualIID(riid, IID_IMAPIFormContainer  )) lstrcpy(szName,"IID_IMAPIFormContainer ");
  153.     else if (IsEqualIID(riid, IID_IMAPIForm           )) lstrcpy(szName,"IID_IMAPIForm          ");
  154.     else                                                 lstrcpy(szName,"                       ");
  155. #endif
  156.  
  157.  
  158.     wsprintf(ach, "{%8.8lX-%4.4X-%4.4X-%2.2X%2.2X-%2.2X%2.2X%2.2X%2.2X%2.2X%2.2X} %s",
  159.         riid.Data1,
  160.         (int)riid.Data2,
  161.         (int)riid.Data3,
  162.         (int)riid.Data4[0],
  163.         (int)riid.Data4[1],
  164.         (int)riid.Data4[2],
  165.         (int)riid.Data4[3],
  166.         (int)riid.Data4[4],
  167.         (int)riid.Data4[5],
  168.         (int)riid.Data4[6],
  169.         (int)riid.Data4[7],
  170.         szName);
  171.     return ach;
  172.     }
  173. #else
  174. ;
  175. #endif
  176. #else
  177. #define TRACEFUNC   ;/##/
  178. //#define TRACEFUNC   
  179. #define ASSERTFUNC(_1,_2,_3,_4)
  180. #define DumpCLSID(_x) 0
  181. #endif
  182.  
  183.  
  184.