// utils.c #include "utils.h" #include "annotate.h" #include extern HINSTANCE hInst; L_INT L_EXPORT EXT_CALLBACK AnnDumpAllObjectsCallback (HANNOBJECT hObject, L_INT L_FAR * pUserData) { TCHAR szMsg[200]; L_UINT uObjectType; L_AnnGetType(hObject, &uObjectType); wsprintf(szMsg, TEXT("hObject[0x%x], nType[%d]\n"), hObject, uObjectType ); OutputDebugString(szMsg); return SUCCESS; } L_VOID AnnDumpAllObjects(HANNOBJECT hContainer) { OutputDebugString(TEXT("\n\nAnnDumpAllObjects\n")); L_AnnEnumerate(hContainer, AnnDumpAllObjectsCallback, NULL, ANNFLAG_RECURSE, NULL); } BOOL DebugClipCursor(CONST RECT *p) { #ifdef _DEBUG TCHAR szMsg[200]; static int nCount=0; if (p) wsprintf(szMsg, TEXT("[%d]DebugClipCursor: lpRect[%d,%d,%d,%d]\n"), nCount++, p->left, p->top, p->right, p->bottom); else wsprintf(szMsg, TEXT("[%d]DebugClipCursor: lpRect[NULL]\n"), nCount++); //OutputDebugString(szMsg); #endif return ClipCursor(p); } #define VIRTUAL_KEY_PRESSED(nKey) (0x10000000 & (nKey)) BOOL IsShiftKeyPressed() { BOOL bRet; SHORT nShiftKey = GetKeyState(VK_LSHIFT); bRet = VIRTUAL_KEY_PRESSED(nShiftKey) != 0; #ifdef _DEBUG { TCHAR szMsg[200]; static int nCount=0; wsprintf(szMsg, TEXT("[%d] nSHiftKey[%x] IsShiftKeyPressed: %s\n"), nCount++, nShiftKey, bRet ? TEXT("TRUE") : TEXT("FALSE")); OutputDebugString(szMsg); } #endif return bRet; } #define NUM_COLORS (8) COLORREF HandleColors[NUM_COLORS] = { RGB(0,0,0), RGB(255,0,0), RGB(0,255,0), RGB(0,0,255), RGB(255,255,0), RGB(255,0,255), RGB(0,255,255), RGB(255,255,255) }; L_INT L_EXPORT EXT_CALLBACK ColorAllNodesCallback(HANNOBJECT hObject, pANNHANDLEINFO pHandleInfo, L_VOID L_FAR * pUserData) { L_INT *pnCount = (L_INT *)pUserData; COLORREF cr = HandleColors[*pnCount % NUM_COLORS]; pHandleInfo->nShape = ANNHANDLE_SHAPE_CIRCLE; pHandleInfo->bVisible = TRUE; if (pHandleInfo->nType == ANNHANDLETYPE_DEFAULT_HANDLE) pHandleInfo->crFill = cr; else pHandleInfo->crFill = cr; (*pnCount)++; return SUCCESS_CHANGE; } L_VOID AnnDebugColorAllNodes(HANNOBJECT hObject) { L_INT nCount=0; L_AnnEnumerateHandles(hObject, ColorAllNodesCallback, &nCount); }