Annotation of mstools/ole20/samples/ole2ui/dbgutil.c, revision 1.1.1.1

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: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.