Hint for the 2nd idea:
-> APIs in USER32.DLL
HCURSOR GetCursor (VOID)
HCURSOR LoadCursor (HINSTANCE hinst, LPCTSTR lpszCursor)
First line puts the mouse cursor's handle in HCURSOR.
Second line loads the bitmap contained at offset "lpszCursor" of the file "hinst" ("hinst" is the win handle of the file).
In a standard icon file, "lpszCursor" has the following values:
IDC_ARROW= 32512& Arrow (duh!)
IDC_IBEAM= 32513& Text selection pointer
IDC_WAIT = 32514& Waiting
IDC_CROSS = 32515& Cross (duh again!)
IDC_UPARROW = 32516& Vertical arrow
IDC_SIZE = 32640& 4-ways arrows
IDC_ICON = 32641& Empty
IDC_SIZENWSE = 32642& 2-ways arrows NO-SE
IDC_SIZENESW = 32643& 2-ways arrows NE-SO
IDC_SIZEWE = 32644& 2-ways arrows O-E
IDC_SIZENS = 32645& 2-ways arrows N-S
IDC_SIZEALL = 32646& Same as IDC_SIZE
IDC_NO = 32648& Forbidding sign
IDC_APPSTARTING = 32650& Arrow + waiting
(Source:
http://www.secretswindows.com/ )
Hope it helps!
Ideas: memories of things which did not occur yet...