//+------------------------------------------------------------------------- // // Microsoft Windows // // Copyright (C) Microsoft Corporation, 1996 - 1999 // // File: dbgdef.h // // Contents: Defines for debug exports in crypt32 (crypt32d.lib) // // History: 17-Apr-96 kevinr created // 05-Sep-1997 pberkman added subsystem id's // //-------------------------------------------------------------------------- #ifndef DBGDEF_H #define DBGDEF_H #ifdef __cplusplus extern "C" { #endif #if (DBG) //-------------------------------------------------------------------------- // OSS and heap-checking //-------------------------------------------------------------------------- # include // To turn on heap checking (the whole nine yards) (slow): // set DEBUG_MASK=0x26 // To only check for leaks: // set DEBUG_MASK=0x20 # ifndef NO_OSS_DEBUG # include // To turn on OSS tracing (all encodes and decodes): // set OSS_DEBUG_MASK=0x02 // // To turn on OSS tracing of only decoder errors // set OSS_DEBUG_MASK=0x10 // // To send the OSS tracing output to a file: // set OSS_DEBUG_TRACEFILE= extern BOOL WINAPI DbgInitOSS( OssGlobal *pog); # endif // NO_OSS_DEBUG #endif // DBG // // 05-Sep-1997 pberkman: // // DEBUG_PRINT_MASK settings to turn on sub-system debugs // #define DBG_SS_CRYPT32 0x00000001 #define DBG_SS_TRUSTCOMMON 0x00010000 #define DBG_SS_TRUST 0x00020000 #define DBG_SS_TRUSTPROV 0x00040000 #define DBG_SS_SIP 0x00080000 #define DBG_SS_CATALOG 0x00100000 #define DBG_SS_SIGNING 0x00200000 #define DBG_SS_OFFSIGN 0x00400000 #define DBG_SS_CATDBSVC 0x00800000 #define DBG_SS_APP 0x10000000 typedef struct _DBG_SS_TAG { DWORD dwSS; const char *pszTag; // 7 characters! } DBG_SS_TAG; #define __DBG_SS_TAGS { \ DBG_SS_CRYPT32, "CRYPT32", \ DBG_SS_TRUSTCOMMON, "PKITRST", \ DBG_SS_TRUST, "WINTRST", \ DBG_SS_TRUSTPROV, "SOFTPUB", \ DBG_SS_CATALOG, "MSCAT32", \ DBG_SS_SIP, "MSSIP32", \ DBG_SS_SIGNING, "MSSGN32", \ DBG_SS_OFFSIGN, "OFFSIGN", \ DBG_SS_APP, "CONAPPL", \ DBG_SS_CATDBSVC, "CATDBSV", \ NULL, NULL \ } //-------------------------------------------------------------------------- // DBG_TRACE //-------------------------------------------------------------------------- #if DBG void DbgPrintf( DWORD dwSubSysId, LPCSTR lpFmt, ...); # define DBG_TRACE_EX(argFmt) DbgPrintf argFmt # define DBG_TRACE(argFmt) DBG_TRACE_EX((DBG_SS_CRYPT32,argFmt)) # define DBG_PRINTF(args) DbgPrintf args #else # define DBG_TRACE_EX(argFmt) # define DBG_TRACE(argFmt) # define DBG_PRINTF(args) #endif // DBG //-------------------------------------------------------------------------- // Error-handling //-------------------------------------------------------------------------- #ifndef ERROR_RETURN_LABEL #define ERROR_RETURN_LABEL ErrorReturn #endif #define TRACE_ERROR_EX(id,name) \ name##: \ DBG_TRACE_EX((id,"(" #name ":%s,%d)\n", __FILE__, __LINE__)); \ goto ERROR_RETURN_LABEL; #define SET_ERROR_EX(id,name,err) \ name##: \ SetLastError( (DWORD)(err)); \ DBG_TRACE_EX((id, "%s, %d\n " #name ": SetLastError " #err "\n", __FILE__, __LINE__)); \ goto ERROR_RETURN_LABEL; #define SET_ERROR_VAR_EX(id,name,err) \ name##: \ SetLastError( (DWORD)(err)); \ DBG_TRACE_EX((id, "%s, %d\n " #name ": SetLastError(0x%x)\n", __FILE__, __LINE__, (err))); \ goto ERROR_RETURN_LABEL; #define SET_HRESULT_EX(id,name,err) \ name##: \ hr = (HRESULT) (err); \ DBG_TRACE_EX((id, "%s, %d\n " #name ": hr = " #err "\n", __FILE__, __LINE__)); \ goto ERROR_RETURN_LABEL; #define SET_HRESULT_VAR_EX(id,name,err) \ name##: \ hr = (HRESULT) (err); \ DBG_TRACE_EX((id, "%s, %d\n " #name ": hr = 0x%x\n" , __FILE__, __LINE__, (hr))); \ goto ERROR_RETURN_LABEL; #define TRACE_HRESULT_EX(id,name) \ name##: \ DBG_TRACE_EX((id, "%s, %d\n " #name ": hr = 0x%x\n", __FILE__, __LINE__, (hr))); \ goto ERROR_RETURN_LABEL; #define SET_DWRESULT_EX(id,name,err) \ name##: \ dwResult = (DWORD) (err); \ DBG_TRACE_EX((id, "%s, %d\n " #name ": hr = " #err "\n", __FILE__, __LINE__)); \ goto ERROR_RETURN_LABEL; #define TRACE_ERROR(name) TRACE_ERROR_EX(DBG_SS_CRYPT32,name) #define SET_ERROR(name,err) SET_ERROR_EX(DBG_SS_CRYPT32,name,err) #define SET_ERROR_VAR(name,err) SET_ERROR_VAR_EX(DBG_SS_CRYPT32,name,err) #define SET_HRESULT(name,err) SET_HRESULT_EX(DBG_SS_CRYPT32,name,err) #define SET_HRESULT_VAR(name,err) SET_HRESULT_VAR_EX(DBG_SS_CRYPT32,name,err) #define TRACE_HRESULT(name) TRACE_HRESULT_EX(DBG_SS_CRYPT32,name) #define SET_DWRESULT(name,err) SET_DWRESULT_EX(DBG_SS_CRYPT32,name,err) #define _JumpCondition(condition, label) \ if (condition) \ { \ goto label; \ } \ else { } #define _JumpConditionWithExpr(condition, label, expr) \ if (condition) \ { \ expr; \ goto label; \ } \ else { } #ifdef __cplusplus } // balance of extern "C" #endif #endif // DBGDEF_H