// www.luigibianchi.com
// By Luigi Bianchi
//from MSDN (about 99% of the code)


HCURSOR GetCurrentCursorHandle() {     POINT pt;     HWND hWnd;            DWORD dwThreadID, dwCurrentThreadID;     HCURSOR hCursor = NULL;         // Find out which window owns the cursor     GetCursorPos(&pt);     hWnd = WindowFromPoint(pt);         // Get the thread ID for the cursor owner.     dwThreadID = GetWindowThreadProcessId(hWnd, NULL);         // Get the thread ID for the current thread     dwCurrentThreadID = GetCurrentThreadId();         // If the cursor owner is not us then we must attach to     // the other thread in so that we can use GetCursor() to     // return the correct hCursor     if (dwCurrentThreadID != dwThreadID) {         // Attach to the thread that owns the cursor         if (AttachThreadInput(dwCurrentThreadID, dwThreadID, TRUE)) {                         // Get the handle to the cursor             hCursor = GetCursor();                         // Detach from the thread that owns the cursor             AttachThreadInput(dwCurrentThreadID, dwThreadID, FALSE);         }     } else         hCursor = GetCursor();         return hCursor; } //my huge contribute!!! bool IsCurrentCursorIDC(LPCTSTR idc) {   return (GetCurrentCursorHandle() == LoadCursor(0, idc)); }

Copyright (2000), Luigi Bianchi
Last Update:
September 8, 2000