Moved some 16-bit functions from windows/cursoricon.c to
dlls/user/user16.c.
diff --git a/dlls/user/user16.c b/dlls/user/user16.c
index faf33bf..04b62bc 100644
--- a/dlls/user/user16.c
+++ b/dlls/user/user16.c
@@ -21,6 +21,90 @@
#include "wine/winuser16.h"
#include "winbase.h"
+/* handle to handle 16 conversions */
+#define HANDLE_16(h32) (LOWORD(h32))
+#define HBITMAP_16(h32) (LOWORD(h32))
+#define HCURSOR_16(h32) (LOWORD(h32))
+#define HICON_16(h32) (LOWORD(h32))
+
+/* handle16 to handle conversions */
+#define HANDLE_32(h16) ((HANDLE)(ULONG_PTR)(h16))
+#define HBRUSH_32(h16) ((HBRUSH)(ULONG_PTR)(h16))
+#define HCURSOR_32(h16) ((HCURSOR)(ULONG_PTR)(h16))
+#define HDC_32(h16) ((HDC)(ULONG_PTR)(h16))
+#define HICON_32(h16) ((HICON)(ULONG_PTR)(h16))
+#define HINSTANCE_32(h16) ((HINSTANCE)(ULONG_PTR)(h16))
+
+WORD WINAPI DestroyIcon32(HGLOBAL16, UINT16);
+
+
+/***********************************************************************
+ * SetCursor (USER.69)
+ */
+HCURSOR16 WINAPI SetCursor16(HCURSOR16 hCursor)
+{
+ return HCURSOR_16(SetCursor(HCURSOR_32(hCursor)));
+}
+
+/***********************************************************************
+ * ShowCursor (USER.71)
+ */
+INT16 WINAPI ShowCursor16(BOOL16 bShow)
+{
+ return ShowCursor(bShow);
+}
+
+/***********************************************************************
+ * DrawIcon (USER.84)
+ */
+BOOL16 WINAPI DrawIcon16(HDC16 hdc, INT16 x, INT16 y, HICON16 hIcon)
+{
+ return DrawIcon(HDC_32(hdc), x, y, HICON_32(hIcon));
+}
+
+/***********************************************************************
+ * IconSize (USER.86)
+ *
+ * See "Undocumented Windows". Used by W2.0 paint.exe.
+ */
+DWORD WINAPI IconSize16(void)
+{
+ return MAKELONG(GetSystemMetrics(SM_CYICON), GetSystemMetrics(SM_CXICON));
+}
+
+/***********************************************************************
+ * LoadCursor (USER.173)
+ */
+HCURSOR16 WINAPI LoadCursor16(HINSTANCE16 hInstance, LPCSTR name)
+{
+ return HCURSOR_16(LoadCursorA(HINSTANCE_32(hInstance), name));
+}
+
+
+/***********************************************************************
+ * LoadIcon (USER.174)
+ */
+HICON16 WINAPI LoadIcon16(HINSTANCE16 hInstance, LPCSTR name)
+{
+ return HICON_16(LoadIconA(HINSTANCE_32(hInstance), name));
+}
+
+/**********************************************************************
+ * LoadBitmap (USER.175)
+ */
+HBITMAP16 WINAPI LoadBitmap16(HINSTANCE16 hInstance, LPCSTR name)
+{
+ return HBITMAP_16(LoadBitmapA(HINSTANCE_32(hInstance), name));
+}
+
+/***********************************************************************
+ * GetCursor (USER.247)
+ */
+HCURSOR16 WINAPI GetCursor16(void)
+{
+ return HCURSOR_16(GetCursor());
+}
+
/***********************************************************************
* GlobalAddAtom (USER.268)
*/
@@ -52,3 +136,104 @@
{
return GlobalGetAtomNameA(nAtom, lpBuffer, nSize);
}
+
+/***********************************************************************
+ * LoadImage (USER.389)
+ *
+ */
+HANDLE16 WINAPI LoadImage16(HINSTANCE16 hinst, LPCSTR name, UINT16 type,
+ INT16 desiredx, INT16 desiredy, UINT16 loadflags)
+{
+ return HANDLE_16(LoadImageA(HINSTANCE_32(hinst), name, type, desiredx,
+ desiredy, loadflags));
+}
+
+/******************************************************************************
+ * CopyImage (USER.390) Creates new image and copies attributes to it
+ *
+ */
+HICON16 WINAPI CopyImage16(HANDLE16 hnd, UINT16 type, INT16 desiredx,
+ INT16 desiredy, UINT16 flags)
+{
+ return HICON_16(CopyImage(HANDLE_32(hnd), (UINT)type, (INT)desiredx,
+ (INT)desiredy, (UINT)flags));
+}
+
+/**********************************************************************
+ * DrawIconEx (USER.394)
+ */
+BOOL16 WINAPI DrawIconEx16(HDC16 hdc, INT16 xLeft, INT16 yTop, HICON16 hIcon,
+ INT16 cxWidth, INT16 cyWidth, UINT16 istep,
+ HBRUSH16 hbr, UINT16 flags)
+{
+ return DrawIconEx(HDC_32(hdc), xLeft, yTop, HICON_32(hIcon), cxWidth, cyWidth,
+ istep, HBRUSH_32(hbr), flags);
+}
+
+/**********************************************************************
+ * GetIconInfo (USER.395)
+ */
+BOOL16 WINAPI GetIconInfo16(HICON16 hIcon, LPICONINFO16 iconinfo)
+{
+ ICONINFO ii32;
+ BOOL16 ret = GetIconInfo(HICON_32(hIcon), &ii32);
+
+ iconinfo->fIcon = ii32.fIcon;
+ iconinfo->xHotspot = ii32.xHotspot;
+ iconinfo->yHotspot = ii32.yHotspot;
+ iconinfo->hbmMask = ii32.hbmMask;
+ iconinfo->hbmColor = ii32.hbmColor;
+ return ret;
+}
+
+/***********************************************************************
+ * CreateCursor (USER.406)
+ */
+HCURSOR16 WINAPI CreateCursor16(HINSTANCE16 hInstance,
+ INT16 xHotSpot, INT16 yHotSpot,
+ INT16 nWidth, INT16 nHeight,
+ LPCVOID lpANDbits, LPCVOID lpXORbits)
+{
+ CURSORICONINFO info;
+
+ info.ptHotSpot.x = xHotSpot;
+ info.ptHotSpot.y = yHotSpot;
+ info.nWidth = nWidth;
+ info.nHeight = nHeight;
+ info.nWidthBytes = 0;
+ info.bPlanes = 1;
+ info.bBitsPerPixel = 1;
+
+ return CreateCursorIconIndirect16(HINSTANCE_32(hInstance), &info, lpANDbits,
+ lpXORbits);
+}
+
+/**********************************************************************
+ * CreateIconFromResourceEx (USER.450)
+ *
+ * FIXME: not sure about exact parameter types
+ */
+HICON16 WINAPI CreateIconFromResourceEx16(LPBYTE bits, UINT16 cbSize,
+ BOOL16 bIcon, DWORD dwVersion,
+ INT16 width, INT16 height,
+ UINT16 cFlag)
+{
+ return HICON_16(CreateIconFromResourceEx(bits, cbSize, bIcon, dwVersion,
+ width, height, cFlag));
+}
+
+/***********************************************************************
+ * DestroyIcon (USER.457)
+ */
+BOOL16 WINAPI DestroyIcon16(HICON16 hIcon)
+{
+ return DestroyIcon32(hIcon, 0);
+}
+
+/***********************************************************************
+ * DestroyCursor (USER.458)
+ */
+BOOL16 WINAPI DestroyCursor16(HCURSOR16 hCursor)
+{
+ return DestroyIcon32(hCursor, 0);
+}
diff --git a/windows/cursoricon.c b/windows/cursoricon.c
index b581de6..14d8aa4 100644
--- a/windows/cursoricon.c
+++ b/windows/cursoricon.c
@@ -691,19 +691,6 @@
/**********************************************************************
- * CreateIconFromResourceEx (USER.450)
- *
- * FIXME: not sure about exact parameter types
- */
-HICON16 WINAPI CreateIconFromResourceEx16( LPBYTE bits, UINT16 cbSize, BOOL16 bIcon,
- DWORD dwVersion, INT16 width, INT16 height, UINT16 cFlag )
-{
- return CreateIconFromResourceEx(bits, cbSize, bIcon, dwVersion,
- width, height, cFlag);
-}
-
-
-/**********************************************************************
* CreateIconFromResource (USER32.@)
*/
HICON WINAPI CreateIconFromResource( LPBYTE bits, UINT cbSize,
@@ -986,49 +973,6 @@
/***********************************************************************
- * LoadCursor (USER.173)
- */
-HCURSOR16 WINAPI LoadCursor16( HINSTANCE16 hInstance, LPCSTR name )
-{
- return LoadCursorA( hInstance, name );
-}
-
-
-/***********************************************************************
- * LoadIcon (USER.174)
- */
-HICON16 WINAPI LoadIcon16( HINSTANCE16 hInstance, LPCSTR name )
-{
- return LoadIconA( hInstance, name );
-}
-
-
-/***********************************************************************
- * CreateCursor (USER.406)
- */
-HCURSOR16 WINAPI CreateCursor16( HINSTANCE16 hInstance,
- INT16 xHotSpot, INT16 yHotSpot,
- INT16 nWidth, INT16 nHeight,
- LPCVOID lpANDbits, LPCVOID lpXORbits )
-{
- CURSORICONINFO info;
-
- TRACE_(cursor)("%dx%d spot=%d,%d xor=%p and=%p\n",
- nWidth, nHeight, xHotSpot, yHotSpot, lpXORbits, lpANDbits);
-
- info.ptHotSpot.x = xHotSpot;
- info.ptHotSpot.y = yHotSpot;
- info.nWidth = nWidth;
- info.nHeight = nHeight;
- info.nWidthBytes = 0;
- info.bPlanes = 1;
- info.bBitsPerPixel = 1;
-
- return CreateCursorIconIndirect16( hInstance, &info, lpANDbits, lpXORbits );
-}
-
-
-/***********************************************************************
* CreateCursor (USER32.@)
*/
HCURSOR WINAPI CreateCursor( HINSTANCE hInstance,
@@ -1274,14 +1218,6 @@
}
/***********************************************************************
- * DestroyIcon (USER.457)
- */
-BOOL16 WINAPI DestroyIcon16( HICON16 hIcon )
-{
- return DestroyIcon32( hIcon, 0 );
-}
-
-/***********************************************************************
* DestroyIcon (USER32.@)
*/
BOOL WINAPI DestroyIcon( HICON hIcon )
@@ -1289,13 +1225,6 @@
return DestroyIcon32( hIcon, CID_WIN32 );
}
-/***********************************************************************
- * DestroyCursor (USER.458)
- */
-BOOL16 WINAPI DestroyCursor16( HCURSOR16 hCursor )
-{
- return DestroyIcon32( hCursor, 0 );
-}
/***********************************************************************
* DestroyCursor (USER32.@)
@@ -1307,15 +1236,6 @@
/***********************************************************************
- * DrawIcon (USER.84)
- */
-BOOL16 WINAPI DrawIcon16( HDC16 hdc, INT16 x, INT16 y, HICON16 hIcon )
-{
- return DrawIcon( hdc, x, y, hIcon );
-}
-
-
-/***********************************************************************
* DrawIcon (USER32.@)
*/
BOOL WINAPI DrawIcon( HDC hdc, INT x, INT y, HICON hIcon )
@@ -1352,18 +1272,6 @@
return TRUE;
}
-
-/***********************************************************************
- * IconSize (USER.86)
- *
- * See "Undocumented Windows". Used by W2.0 paint.exe.
- */
-DWORD WINAPI IconSize16( void )
-{
- return MAKELONG(GetSystemMetrics(SM_CYICON), GetSystemMetrics(SM_CXICON));
-}
-
-
/***********************************************************************
* DumpIcon (USER.459)
*/
@@ -1384,15 +1292,6 @@
/***********************************************************************
- * SetCursor (USER.69)
- */
-HCURSOR16 WINAPI SetCursor16( HCURSOR16 hCursor )
-{
- return (HCURSOR16)SetCursor( hCursor );
-}
-
-
-/***********************************************************************
* SetCursor (USER32.@)
* RETURNS:
* A handle to the previous cursor shape.
@@ -1415,16 +1314,6 @@
return hOldCursor;
}
-
-/***********************************************************************
- * ShowCursor (USER.71)
- */
-INT16 WINAPI ShowCursor16( BOOL16 bShow )
-{
- return ShowCursor( bShow );
-}
-
-
/***********************************************************************
* ShowCursor (USER32.@)
*/
@@ -1450,16 +1339,6 @@
return queue->cursor_count;
}
-
-/***********************************************************************
- * GetCursor (USER.247)
- */
-HCURSOR16 WINAPI GetCursor16(void)
-{
- return GetCursor();
-}
-
-
/***********************************************************************
* GetCursor (USER32.@)
*/
@@ -1724,22 +1603,6 @@
}
/**********************************************************************
- * GetIconInfo (USER.395)
- */
-BOOL16 WINAPI GetIconInfo16(HICON16 hIcon,LPICONINFO16 iconinfo)
-{
- ICONINFO ii32;
- BOOL16 ret = GetIconInfo((HICON)hIcon, &ii32);
-
- iconinfo->fIcon = ii32.fIcon;
- iconinfo->xHotspot = ii32.xHotspot;
- iconinfo->yHotspot = ii32.yHotspot;
- iconinfo->hbmMask = ii32.hbmMask;
- iconinfo->hbmColor = ii32.hbmColor;
- return ret;
-}
-
-/**********************************************************************
* GetIconInfo (USER32.@)
*/
BOOL WINAPI GetIconInfo(HICON hIcon,PICONINFO iconinfo) {
@@ -1826,19 +1689,6 @@
return hObj;
}
-
-/**********************************************************************
- * DrawIconEx (USER.394)
- */
-BOOL16 WINAPI DrawIconEx16 (HDC16 hdc, INT16 xLeft, INT16 yTop, HICON16 hIcon,
- INT16 cxWidth, INT16 cyWidth, UINT16 istep,
- HBRUSH16 hbr, UINT16 flags)
-{
- return DrawIconEx(hdc, xLeft, yTop, hIcon, cxWidth, cyWidth,
- istep, hbr, flags);
-}
-
-
/******************************************************************************
* DrawIconEx (USER32.@) Draws an icon or cursor on device context
*
@@ -2108,17 +1958,6 @@
return hbitmap;
}
-
-/***********************************************************************
- * LoadImage (USER.389)
- *
- */
-HANDLE16 WINAPI LoadImage16( HINSTANCE16 hinst, LPCSTR name, UINT16 type,
- INT16 desiredx, INT16 desiredy, UINT16 loadflags)
-{
- return LoadImageA( hinst, name, type, desiredx, desiredy, loadflags );
-}
-
/**********************************************************************
* LoadImageA (USER32.@)
*
@@ -2219,18 +2058,6 @@
return 0;
}
-
-/******************************************************************************
- * CopyImage (USER.390) Creates new image and copies attributes to it
- *
- */
-HICON16 WINAPI CopyImage16( HANDLE16 hnd, UINT16 type, INT16 desiredx,
- INT16 desiredy, UINT16 flags )
-{
- return (HICON16)CopyImage((HANDLE)hnd, (UINT)type, (INT)desiredx,
- (INT)desiredy, (UINT)flags);
-}
-
/******************************************************************************
* CopyImage (USER32.@) Creates new image and copies attributes to it
*
@@ -2302,11 +2129,3 @@
{
return LoadImageA( instance, name, IMAGE_BITMAP, 0, 0, 0 );
}
-
-/**********************************************************************
- * LoadBitmap (USER.175)
- */
-HBITMAP16 WINAPI LoadBitmap16( HINSTANCE16 instance, LPCSTR name )
-{
- return LoadBitmapA( instance, name );
-}