// 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