[2/2] user32: make wineserver calls to get and set window droptargets [try 2]

Damjan Jovanovic damjan.jov at gmail.com
Sat Feb 6 04:06:00 CST 2010


Changelog:
* user32: make wineserver calls to get and set window droptargets

Get and set the window drop targets from user32.dll, and not ole32.dll
like in try 1.

Damjan Jovanovic
-------------- next part --------------
diff --git a/dlls/user32/user32.spec b/dlls/user32/user32.spec
index 7f87a20..d713707 100644
--- a/dlls/user32/user32.spec
+++ b/dlls/user32/user32.spec
@@ -771,6 +771,9 @@
 @ stdcall wvsprintfA(ptr str ptr)
 @ stdcall wvsprintfW(ptr wstr ptr)
 
+@ cdecl wine_set_window_droptarget(long ptr long)
+@ cdecl wine_get_window_droptarget(long ptr long)
+
 ################################################################
 # Wine dll separation hacks, these will go away, don't use them
 #
diff --git a/dlls/user32/win.c b/dlls/user32/win.c
index acf70a3..4f8e842 100644
--- a/dlls/user32/win.c
+++ b/dlls/user32/win.c
@@ -3491,3 +3491,41 @@ LONG_PTR WINAPI SetWindowLongPtrA( HWND hwnd, INT offset, LONG_PTR newval )
 {
     return WIN_SetWindowLong( hwnd, offset, sizeof(LONG_PTR), newval, FALSE );
 }
+
+/*****************************************************************************
+ *              wine_set_window_droptarget (USER32.@) Not a Windows API
+ */
+NTSTATUS wine_set_window_droptarget(HWND hwnd, char *buffer, size_t size)
+{
+    NTSTATUS status;
+
+    SERVER_START_REQ( set_window_droptarget )
+    {
+        req->handle = wine_server_user_handle( hwnd );
+        wine_server_add_data( req, buffer, size );
+        status = wine_server_call( req );
+    }
+    SERVER_END_REQ;
+
+    return status;
+}
+
+/*****************************************************************************
+ *              wine_get_window_droptarget (USER32.@) Not a Windows API
+ */
+size_t wine_get_window_droptarget(HWND hwnd, char *buffer, size_t size)
+{
+    NTSTATUS status;
+    size_t replySize;
+
+    SERVER_START_REQ( get_window_droptarget )
+    {
+        req->handle = wine_server_user_handle( hwnd );
+        wine_server_set_reply( req, buffer, size );
+        status = wine_server_call( req );
+        replySize = wine_server_reply_size( req );
+    }
+    SERVER_END_REQ;
+
+    return replySize;
+}


More information about the wine-patches mailing list