#include "priv.h" // Define some things for debug.h #define SZ_DEBUGINI "ccshell.ini" #define SZ_DEBUGSECTION "shlwapi" #define SZ_MODULE "SHLWAPI" #define DECLARE_DEBUG #include #ifdef DEBUG /* * macro for simplifying result to string translation, assumes result string * pointer pcsz */ #define STRING_CASE(val) case val: pcsz = TEXT(#val); break #if 0 // Debug value-to-string mapping functions /* Purpose: Return the string form of the clipboard format. Returns: pointer to a static string Cond: -- */ LPCTSTR Dbg_GetCFName( UINT ucf) { LPCTSTR pcsz; static TCHAR s_szCFName[MAX_PATH]; switch (ucf) { STRING_CASE(CF_TEXT); STRING_CASE(CF_BITMAP); STRING_CASE(CF_METAFILEPICT); STRING_CASE(CF_SYLK); STRING_CASE(CF_DIF); STRING_CASE(CF_TIFF); STRING_CASE(CF_OEMTEXT); STRING_CASE(CF_DIB); STRING_CASE(CF_PALETTE); STRING_CASE(CF_PENDATA); STRING_CASE(CF_RIFF); STRING_CASE(CF_WAVE); STRING_CASE(CF_UNICODETEXT); STRING_CASE(CF_ENHMETAFILE); STRING_CASE(CF_HDROP); STRING_CASE(CF_LOCALE); STRING_CASE(CF_MAX); STRING_CASE(CF_OWNERDISPLAY); STRING_CASE(CF_DSPTEXT); STRING_CASE(CF_DSPBITMAP); STRING_CASE(CF_DSPMETAFILEPICT); STRING_CASE(CF_DSPENHMETAFILE); default: if (! GetClipboardFormatName(ucf, s_szCFName, SIZECHARS(s_szCFName))) lstrcpy(s_szCFName, TEXT("UNKNOWN CLIPBOARD FORMAT")); pcsz = s_szCFName; break; } ASSERT(pcsz); return(pcsz); } LPCTSTR Dbg_GetHRESULTName( HRESULT hr) { LPCTSTR pcsz; static TCHAR s_rgchHRESULT[] = TEXT("0x12345678"); switch (hr) { STRING_CASE(S_OK); STRING_CASE(S_FALSE); STRING_CASE(DRAGDROP_S_CANCEL); STRING_CASE(DRAGDROP_S_DROP); STRING_CASE(DRAGDROP_S_USEDEFAULTCURSORS); STRING_CASE(E_UNEXPECTED); STRING_CASE(E_NOTIMPL); STRING_CASE(E_OUTOFMEMORY); STRING_CASE(E_INVALIDARG); STRING_CASE(E_NOINTERFACE); STRING_CASE(E_POINTER); STRING_CASE(E_HANDLE); STRING_CASE(E_ABORT); STRING_CASE(E_FAIL); STRING_CASE(E_ACCESSDENIED); STRING_CASE(CLASS_E_NOAGGREGATION); STRING_CASE(CO_E_NOTINITIALIZED); STRING_CASE(CO_E_ALREADYINITIALIZED); STRING_CASE(CO_E_INIT_ONLY_SINGLE_THREADED); STRING_CASE(DV_E_DVASPECT); STRING_CASE(DV_E_LINDEX); STRING_CASE(DV_E_TYMED); STRING_CASE(DV_E_FORMATETC); #ifdef __INTSHCUT_H__ STRING_CASE(E_FLAGS); STRING_CASE(URL_E_INVALID_SYNTAX); STRING_CASE(URL_E_UNREGISTERED_PROTOCOL); STRING_CASE(IS_E_EXEC_FAILED); STRING_CASE(E_FILE_NOT_FOUND); STRING_CASE(E_PATH_NOT_FOUND); #endif default: wsprintf(s_rgchHRESULT, TEXT("%#lx"), hr); pcsz = s_rgchHRESULT; break; } ASSERT(IS_VALID_STRING_PTR(pcsz, -1)); return(pcsz); } #define STRING_RIID(val) { &val, TEXT(#val) } struct { REFIID riid; LPCTSTR psz; } const c_mpriid[] = { STRING_RIID(IID_IUnknown), STRING_RIID(IID_IEnumUnknown), STRING_RIID(IID_IShellBrowser), STRING_RIID(IID_IShellView), STRING_RIID(IID_IContextMenu), STRING_RIID(IID_IShellFolder), STRING_RIID(IID_IShellExtInit), STRING_RIID(IID_IShellPropSheetExt), STRING_RIID(IID_IPersistFolder), STRING_RIID(IID_IExtractIcon), STRING_RIID(IID_IShellLink), STRING_RIID(IID_IDataObject), STRING_RIID(IID_IContextMenu2), STRING_RIID(IID_INewShortcutHook), STRING_RIID(IID_IPersist), STRING_RIID(IID_IPersistStream), STRING_RIID(IID_IUniformResourceLocator), }; LPCTSTR Dbg_GetREFIIDName( REFIID riid) { int i; for (i = 0; i < ARRAYSIZE(c_mpriid); i++) { if (IsEqualIID(riid, c_mpriid[i].riid)) return c_mpriid[i].psz; } return TEXT("Unknown REFIID"); } #endif #endif // DEBUG