|
|
1.1 ! root 1: /************************************************************************* ! 2: ** ! 3: ** OLE 2.0 Common Utilities ! 4: ** ! 5: ** dbgutil.h ! 6: ** ! 7: ** This file contains file contains functions to support debug output. ! 8: ** ! 9: ** (c) Copyright Microsoft Corp. 1990 - 1992 All Rights Reserved ! 10: ** ! 11: *************************************************************************/ ! 12: ! 13: #define STRICT 1 ! 14: #include "ole2ui.h" ! 15: ! 16: static int s_nDbgIndent = 0; // indent level for debug message ! 17: #if defined( _DEBUG ) ! 18: static int s_nDbgLevel = 0; // default dbg level printed ! 19: #else ! 20: static int s_nDbgLevel = 0; // default dbg level printed ! 21: #endif ! 22: ! 23: STDAPI_(void) OleDbgPrint( ! 24: int nDbgLvl, ! 25: LPSTR lpszPrefix, ! 26: LPSTR lpszMsg, ! 27: int nIndent ! 28: ) ! 29: { ! 30: if (nDbgLvl <= s_nDbgLevel) ! 31: OleDbgPrintAlways(lpszPrefix, lpszMsg, nIndent); ! 32: } ! 33: ! 34: ! 35: STDAPI_(void) OleDbgPrintAlways(LPSTR lpszPrefix, LPSTR lpszMsg, int nIndent) ! 36: { ! 37: int i; ! 38: ! 39: if (nIndent < 0) ! 40: OleDbgIndent(nIndent); ! 41: ! 42: if (lpszPrefix && *lpszPrefix != '\0') { ! 43: OutputDebugString("| "); ! 44: for (i = 0; i < s_nDbgIndent; i++) ! 45: OutputDebugString("----"); ! 46: ! 47: OutputDebugString(lpszPrefix); ! 48: OutputDebugString(": "); ! 49: } ! 50: ! 51: OutputDebugString(lpszMsg); ! 52: if (nIndent > 0) ! 53: OleDbgIndent(nIndent); ! 54: } ! 55: ! 56: STDAPI_(void) OleDbgSetDbgLevel(int nDbgLvl) ! 57: { ! 58: s_nDbgLevel = nDbgLvl; ! 59: } ! 60: ! 61: STDAPI_(int) OleDbgGetDbgLevel( void ) ! 62: { ! 63: return s_nDbgLevel; ! 64: } ! 65: ! 66: STDAPI_(void) OleDbgIndent(int n) ! 67: { ! 68: switch (n) { ! 69: case -1: ! 70: s_nDbgIndent--; ! 71: break; ! 72: case 1: ! 73: s_nDbgIndent++; ! 74: break; ! 75: case -2: ! 76: s_nDbgIndent = 0; ! 77: break; ! 78: } ! 79: } ! 80: ! 81: ! 82: STDAPI_(void) OleDbgPrintRefCnt( ! 83: int nDbgLvl, ! 84: LPSTR lpszPrefix, ! 85: LPSTR lpszMsg, ! 86: LPVOID lpObj, ! 87: ULONG refcnt ! 88: ) ! 89: { ! 90: if (nDbgLvl <= s_nDbgLevel) ! 91: OleDbgPrintRefCntAlways(lpszPrefix, lpszMsg, lpObj, refcnt); ! 92: } ! 93: ! 94: ! 95: STDAPI_(void) OleDbgPrintRefCntAlways( ! 96: LPSTR lpszPrefix, ! 97: LPSTR lpszMsg, ! 98: LPVOID lpObj, ! 99: ULONG refcnt ! 100: ) ! 101: { ! 102: char szBuf[80]; ! 103: ! 104: wsprintf(szBuf, "[obj=(0x%lx) cnt=%ld] %s", lpObj, refcnt, lpszMsg); ! 105: OleDbgPrintAlways(lpszPrefix, szBuf, 0); ! 106: } ! 107: ! 108: ! 109: STDAPI_(void) OleDbgPrintRect( ! 110: int nDbgLvl, ! 111: LPSTR lpszPrefix, ! 112: LPSTR lpszMsg, ! 113: LPRECT lpRect ! 114: ) ! 115: { ! 116: if (nDbgLvl <= s_nDbgLevel) ! 117: OleDbgPrintRectAlways(lpszPrefix, lpszMsg, lpRect); ! 118: } ! 119: ! 120: ! 121: STDAPI_(void) OleDbgPrintRectAlways( ! 122: LPSTR lpszPrefix, ! 123: LPSTR lpszMsg, ! 124: LPRECT lpRect ! 125: ) ! 126: { ! 127: char szBuf[80]; ! 128: ! 129: wsprintf( ! 130: szBuf, ! 131: "%s: (%d,%d)-(%d,%d) %dx%d\r\n", ! 132: lpszMsg, ! 133: lpRect->left, ! 134: lpRect->top, ! 135: lpRect->right, ! 136: lpRect->bottom, ! 137: (lpRect->right-lpRect->left), ! 138: (lpRect->bottom-lpRect->top) ! 139: ); ! 140: OleDbgPrintAlways(lpszPrefix, szBuf, 0); ! 141: } ! 142: ! 143: ! 144: #define CASE_SCODE(sc) \ ! 145: case sc: \ ! 146: lstrcpy((LPSTR)szErrName, (LPSTR)#sc); \ ! 147: break; ! 148: ! 149: STDAPI_(void) OleDbgPrintScodeAlways(LPSTR lpszPrefix, LPSTR lpszMsg, SCODE sc) ! 150: { ! 151: char szBuf[256]; ! 152: char szErrName[40]; ! 153: ! 154: switch (sc) { ! 155: CASE_SCODE(RPC_E_SERVER_DIED) ! 156: ! 157: /* SCODE's defined in SCODE.H */ ! 158: CASE_SCODE(S_OK) ! 159: // same value as S_OK CASE_SCODE(S_TRUE) ! 160: CASE_SCODE(S_FALSE) ! 161: CASE_SCODE(E_UNEXPECTED) ! 162: CASE_SCODE(E_NOTIMPL) ! 163: CASE_SCODE(E_OUTOFMEMORY) ! 164: CASE_SCODE(E_INVALIDARG) ! 165: CASE_SCODE(E_NOINTERFACE) ! 166: CASE_SCODE(E_POINTER) ! 167: CASE_SCODE(E_HANDLE) ! 168: CASE_SCODE(E_ABORT) ! 169: CASE_SCODE(E_FAIL) ! 170: CASE_SCODE(E_ACCESSDENIED) ! 171: ! 172: /* SCODE's defined in DVOBJ.H */ ! 173: CASE_SCODE(DATA_E_FORMATETC) ! 174: // same as DATA_E_FORMATETC CASE_SCODE(DV_E_FORMATETC) ! 175: CASE_SCODE(DATA_S_SAMEFORMATETC) ! 176: CASE_SCODE(VIEW_E_DRAW) ! 177: // same as VIEW_E_DRAW CASE_SCODE(E_DRAW) ! 178: CASE_SCODE(VIEW_S_ALREADY_FROZEN) ! 179: CASE_SCODE(CACHE_E_NOCACHE_UPDATED) ! 180: CASE_SCODE(CACHE_S_FORMATETC_NOTSUPPORTED) ! 181: CASE_SCODE(CACHE_S_SAMECACHE) ! 182: CASE_SCODE(CACHE_S_SOMECACHES_NOTUPDATED) ! 183: ! 184: /* SCODE's defined in OLE2.H */ ! 185: CASE_SCODE(OLE_E_OLEVERB) ! 186: CASE_SCODE(OLE_E_ADVF) ! 187: CASE_SCODE(OLE_E_ENUM_NOMORE) ! 188: CASE_SCODE(OLE_E_ADVISENOTSUPPORTED) ! 189: CASE_SCODE(OLE_E_NOCONNECTION) ! 190: CASE_SCODE(OLE_E_NOTRUNNING) ! 191: CASE_SCODE(OLE_E_NOCACHE) ! 192: CASE_SCODE(OLE_E_BLANK) ! 193: CASE_SCODE(OLE_E_CLASSDIFF) ! 194: CASE_SCODE(OLE_E_CANT_GETMONIKER) ! 195: CASE_SCODE(OLE_E_CANT_BINDTOSOURCE) ! 196: CASE_SCODE(OLE_E_STATIC) ! 197: CASE_SCODE(OLE_E_PROMPTSAVECANCELLED) ! 198: CASE_SCODE(OLE_E_INVALIDRECT) ! 199: CASE_SCODE(OLE_E_WRONGCOMPOBJ) ! 200: CASE_SCODE(OLE_E_INVALIDHWND) ! 201: CASE_SCODE(DV_E_DVTARGETDEVICE) ! 202: CASE_SCODE(DV_E_STGMEDIUM) ! 203: CASE_SCODE(DV_E_STATDATA) ! 204: CASE_SCODE(DV_E_LINDEX) ! 205: CASE_SCODE(DV_E_TYMED) ! 206: CASE_SCODE(DV_E_CLIPFORMAT) ! 207: CASE_SCODE(DV_E_DVASPECT) ! 208: CASE_SCODE(DV_E_DVTARGETDEVICE_SIZE) ! 209: CASE_SCODE(DV_E_NOIVIEWOBJECT) ! 210: CASE_SCODE(OLE_S_STATIC) ! 211: CASE_SCODE(OLE_S_MAC_CLIPFORMAT) ! 212: CASE_SCODE(OLE_S_USEREG) ! 213: CASE_SCODE(CONVERT10_E_OLESTREAM_GET) ! 214: CASE_SCODE(CONVERT10_E_OLESTREAM_PUT) ! 215: CASE_SCODE(CONVERT10_E_OLESTREAM_FMT) ! 216: CASE_SCODE(CONVERT10_E_OLESTREAM_BITMAP_TO_DIB) ! 217: CASE_SCODE(CONVERT10_E_STG_FMT) ! 218: CASE_SCODE(CONVERT10_E_STG_NO_STD_STREAM) ! 219: CASE_SCODE(CONVERT10_E_STG_DIB_TO_BITMAP) ! 220: CASE_SCODE(CONVERT10_S_NO_PRESENTATION) ! 221: CASE_SCODE(CLIPBRD_E_CANT_OPEN) ! 222: CASE_SCODE(CLIPBRD_E_CANT_EMPTY) ! 223: CASE_SCODE(CLIPBRD_E_CANT_SET) ! 224: CASE_SCODE(CLIPBRD_E_BAD_DATA) ! 225: CASE_SCODE(CLIPBRD_E_CANT_CLOSE) ! 226: CASE_SCODE(DRAGDROP_E_NOTREGISTERED) ! 227: CASE_SCODE(DRAGDROP_E_ALREADYREGISTERED) ! 228: CASE_SCODE(DRAGDROP_E_INVALIDHWND) ! 229: CASE_SCODE(DRAGDROP_S_DROP) ! 230: CASE_SCODE(DRAGDROP_S_CANCEL) ! 231: CASE_SCODE(DRAGDROP_S_USEDEFAULTCURSORS) ! 232: CASE_SCODE(OLEOBJ_E_NOVERBS) ! 233: CASE_SCODE(OLEOBJ_S_INVALIDVERB) ! 234: CASE_SCODE(OLEOBJ_S_CANNOT_DOVERB_NOW) ! 235: CASE_SCODE(OLEOBJ_S_INVALIDHWND) ! 236: CASE_SCODE(INPLACE_E_NOTUNDOABLE) ! 237: CASE_SCODE(INPLACE_E_NOTOOLSPACE) ! 238: CASE_SCODE(INPLACE_S_TRUNCATED) ! 239: ! 240: /* SCODE's defined in STORAGE.H */ ! 241: CASE_SCODE(STG_E_INVALIDFUNCTION) ! 242: CASE_SCODE(STG_E_FILENOTFOUND) ! 243: CASE_SCODE(STG_E_PATHNOTFOUND) ! 244: CASE_SCODE(STG_E_TOOMANYOPENFILES) ! 245: CASE_SCODE(STG_E_ACCESSDENIED) ! 246: CASE_SCODE(STG_E_INVALIDHANDLE) ! 247: CASE_SCODE(STG_E_INSUFFICIENTMEMORY) ! 248: CASE_SCODE(STG_E_INVALIDPOINTER) ! 249: CASE_SCODE(STG_E_NOMOREFILES) ! 250: CASE_SCODE(STG_E_DISKISWRITEPROTECTED) ! 251: CASE_SCODE(STG_E_SEEKERROR) ! 252: CASE_SCODE(STG_E_WRITEFAULT) ! 253: CASE_SCODE(STG_E_READFAULT) ! 254: CASE_SCODE(STG_E_LOCKVIOLATION) ! 255: CASE_SCODE(STG_E_FILEALREADYEXISTS) ! 256: CASE_SCODE(STG_E_INVALIDPARAMETER) ! 257: CASE_SCODE(STG_E_MEDIUMFULL) ! 258: CASE_SCODE(STG_E_ABNORMALAPIEXIT) ! 259: CASE_SCODE(STG_E_INVALIDHEADER) ! 260: CASE_SCODE(STG_E_INVALIDNAME) ! 261: CASE_SCODE(STG_E_UNKNOWN) ! 262: CASE_SCODE(STG_E_UNIMPLEMENTEDFUNCTION) ! 263: CASE_SCODE(STG_E_INVALIDFLAG) ! 264: CASE_SCODE(STG_E_INUSE) ! 265: CASE_SCODE(STG_E_NOTCURRENT) ! 266: CASE_SCODE(STG_E_REVERTED) ! 267: CASE_SCODE(STG_E_CANTSAVE) ! 268: CASE_SCODE(STG_E_OLDFORMAT) ! 269: CASE_SCODE(STG_E_OLDDLL) ! 270: CASE_SCODE(STG_E_SHAREREQUIRED) ! 271: #if !defined( WIN32 ) ! 272: // BUGBUG32: scodes are not yet defined ! 273: CASE_SCODE(STG_E_NOTFILEBASEDSTORAGE) ! 274: CASE_SCODE(STG_E_EXTANTMARSHALLINGS) ! 275: #endif ! 276: CASE_SCODE(STG_S_CONVERTED) ! 277: ! 278: /* SCODE's defined in COMPOBJ.H */ ! 279: CASE_SCODE(CO_E_NOTINITIALIZED) ! 280: CASE_SCODE(CO_E_ALREADYINITIALIZED) ! 281: CASE_SCODE(CO_E_CANTDETERMINECLASS) ! 282: CASE_SCODE(CO_E_APPNOTFOUND) ! 283: CASE_SCODE(CO_E_APPSINGLEUSE) ! 284: CASE_SCODE(CO_E_ERRORINAPP) ! 285: CASE_SCODE(CO_E_DLLNOTFOUND) ! 286: CASE_SCODE(CO_E_ERRORINDLL) ! 287: CASE_SCODE(CO_E_WRONGOSFORAPP) ! 288: CASE_SCODE(CO_E_OBJNOTREG) ! 289: CASE_SCODE(CO_E_OBJISREG) ! 290: CASE_SCODE(CO_E_OBJNOTCONNECTED) ! 291: CASE_SCODE(CO_E_APPDIDNTREG) ! 292: CASE_SCODE(CO_E_CLASSSTRING) ! 293: CASE_SCODE(CO_E_IIDSTRING) ! 294: CASE_SCODE(CLASS_E_NOAGGREGATION) ! 295: CASE_SCODE(REGDB_E_READREGDB) ! 296: CASE_SCODE(REGDB_E_WRITEREGDB) ! 297: CASE_SCODE(REGDB_E_KEYMISSING) ! 298: CASE_SCODE(REGDB_E_INVALIDVALUE) ! 299: CASE_SCODE(REGDB_E_CLASSNOTREG) ! 300: CASE_SCODE(REGDB_E_IIDNOTREG) ! 301: CASE_SCODE(RPC_E_FIRST) ! 302: CASE_SCODE(RPC_E_CALL_REJECTED) ! 303: CASE_SCODE(RPC_E_CALL_CANCELED) ! 304: CASE_SCODE(RPC_E_CANTPOST_INSENDCALL) ! 305: CASE_SCODE(RPC_E_CANTCALLOUT_INASYNCCALL) ! 306: CASE_SCODE(RPC_E_CANTCALLOUT_INEXTERNALCALL) ! 307: CASE_SCODE(RPC_E_CONNECTION_TERMINATED) ! 308: // CASE_SCODE(RPC_E_SERVER_DIED) ! 309: CASE_SCODE(RPC_E_CLIENT_DIED) ! 310: CASE_SCODE(RPC_E_INVALID_DATAPACKET) ! 311: CASE_SCODE(RPC_E_CANTTRANSMIT_CALL) ! 312: CASE_SCODE(RPC_E_CLIENT_CANTMARSHAL_DATA) ! 313: CASE_SCODE(RPC_E_CLIENT_CANTUNMARSHAL_DATA) ! 314: CASE_SCODE(RPC_E_SERVER_CANTMARSHAL_DATA) ! 315: CASE_SCODE(RPC_E_SERVER_CANTUNMARSHAL_DATA) ! 316: CASE_SCODE(RPC_E_INVALID_DATA) ! 317: CASE_SCODE(RPC_E_INVALID_PARAMETER) ! 318: CASE_SCODE(RPC_E_UNEXPECTED) ! 319: ! 320: /* SCODE's defined in MONIKER.H */ ! 321: CASE_SCODE(MK_E_CONNECTMANUALLY) ! 322: CASE_SCODE(MK_E_EXCEEDEDDEADLINE) ! 323: CASE_SCODE(MK_E_NEEDGENERIC) ! 324: CASE_SCODE(MK_E_UNAVAILABLE) ! 325: CASE_SCODE(MK_E_SYNTAX) ! 326: CASE_SCODE(MK_E_NOOBJECT) ! 327: CASE_SCODE(MK_E_INVALIDEXTENSION) ! 328: CASE_SCODE(MK_E_INTERMEDIATEINTERFACENOTSUPPORTED) ! 329: CASE_SCODE(MK_E_NOTBINDABLE) ! 330: CASE_SCODE(MK_E_NOTBOUND) ! 331: CASE_SCODE(MK_E_CANTOPENFILE) ! 332: CASE_SCODE(MK_E_MUSTBOTHERUSER) ! 333: CASE_SCODE(MK_E_NOINVERSE) ! 334: CASE_SCODE(MK_E_NOSTORAGE) ! 335: CASE_SCODE(MK_S_US) ! 336: CASE_SCODE(MK_S_REDUCED_TO_SELF) ! 337: CASE_SCODE(MK_S_ME) ! 338: CASE_SCODE(MK_S_HIM) ! 339: CASE_SCODE(MK_S_MONIKERALREADYREGISTERED) ! 340: ! 341: default: ! 342: lstrcpy(szErrName, "UNKNOWN SCODE"); ! 343: } ! 344: ! 345: wsprintf(szBuf, "%s %s (0x%lx)\n", lpszMsg, (LPSTR)szErrName, sc); ! 346: OleDbgPrintAlways(lpszPrefix, szBuf, 0); ! 347: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.