I use this code to get mouse position on screen and it\'s working. I also get cursor width and height. What I need is cursor icon in the moment I call function GetIconInfo.
the cursor informations are formatted like explained here : http://www.daubnet.com/en/file-format-cur
you have to get each pixel from each bit of the data buffer, and not from each byte, so 1 byte = 8 pixels. Also, be careful with some applications wich may have special sized cursors (not multiple of 8), like 26x23 In this case you'll have to ignore the last bits of each line. with a line of 26 pixels, you'll get 4 bytes, you'll read the first 3 bytes to get the 24 first pixels, and then read 2 bits of the 4th byte to get the last 2 pixels, and then ignore the last 6 bits before jumping to the next line.
CURSORINFO cursorInfo = { 0 };
cursorInfo.cbSize = sizeof(cursorInfo);
if (::GetCursorInfo(&cursorInfo))
{
ICONINFO ii = {0};
GetIconInfo(cursorInfo.hCursor, &ii);
DeleteObject(ii.hbmColor);
DeleteObject(ii.hbmMask);
::DrawIcon(memoryDC, cursorPos.x - ii.xHotspot, cursorPos.y - ii.yHotspot, cursorInfo.hCursor);
}