Implemented user32.dll.GetCursorInfo

Per Nystrom centaur at netmagic.net
Wed Aug 28 04:21:23 CDT 2002


Hi,

I'm a recent adopter of wine, running distribution wine-20020804 on Red
Hat 7.1.  One of my favorite apps that used to work on wine was recently
upgraded, and now it doesn't work anymore.  Using winedbg and following
the tips on the winehq website, I was able to track the (first) problem
down to an unimplemented function, user32.dll.GetCursorInfo.  I include
the diffs for the two files that I changed to implement it for your
evaluation, and hopefully inclusion in the code tree.

Unfortunately, I'm now getting a new unimplemented function error, and
this time it's for kernel32.dll.Heap32ListFirst.  I see in the
kernel32.spec file that none of the Heap32* functions have been
implemented, and I'm really not sure where to start with it.  I would like
to help in any way I can, but this looks a lot more complicated than my 
first project.  If anyone has done preliminary work on it, I'd really like 
to know about it; I've already searched the bug database and found nothing 
in there.  At the very least, can we add it to the tasklets or tasklist so 
that it has visibility?

Thanks and regards,
Per Nystrom

-- 
"When cryptography is outlawed, bayl bhgynjf jvyy unir cevinpl."
-------------- next part --------------
--- dlls/user/user32.spec.orig	Wed Jul 10 16:20:49 2002
+++ dlls/user/user32.spec	Wed Aug 28 02:01:48 2002
@@ -227,7 +227,7 @@
 @ stdcall GetClipboardOwner() GetClipboardOwner
 @ stdcall GetClipboardViewer() GetClipboardViewer
 @ stdcall GetCursor() GetCursor
-@ stub GetCursorInfo
+@ stdcall GetCursorInfo (ptr) GetCursorInfo
 @ stdcall GetCursorPos(ptr) GetCursorPos
 @ stdcall GetDC(long) GetDC
 @ stdcall GetDCEx(long long long) GetDCEx
-------------- next part --------------
--- windows/input.c.orig	Fri May 31 16:06:54 2002
+++ windows/input.c	Wed Aug 28 01:03:03 2002
@@ -75,6 +75,17 @@
 } KEYLP;
 
 
+/* Should be in windef.h, but clashes with poor implementation in display.c */
+/* The CURSORINFO structure */
+typedef struct
+{
+    DWORD cbSize;
+    DWORD flags;
+    HCURSOR hCursor;
+    POINT ptScreenPos;
+} CURSORINFO, *PCURSORINFO, *LPCURSORINFO;
+
+
 /***********************************************************************
  *           get_key_state
  */
@@ -472,6 +483,17 @@
     pt->x = PosX;
     pt->y = PosY;
     if (USER_Driver.pGetCursorPos) USER_Driver.pGetCursorPos( pt );
+    return 1;
+}
+
+
+/***********************************************************************
+ *		GetCursorInfo (USER32.@)
+ */
+BOOL WINAPI GetCursorInfo( PCURSORINFO pci )
+{
+    if (!pci) return 0;
+    GetCursorPos(&pci->ptScreenPos);
     return 1;
 }
 


More information about the wine-patches mailing list