Annotation of mstools/ole20/samples/ole2ui/dbgutil.c, revision 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.