Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
8fc1fc49
Commit
8fc1fc49
authored
Feb 02, 2010
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
user: Add internal functions for cursor/icon 16<->32 conversion to replace the typecasting macros.
parent
3d55d143
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
41 additions
and
30 deletions
+41
-30
message.c
dlls/user.exe16/message.c
+7
-7
user.c
dlls/user.exe16/user.c
+24
-10
user_private.h
dlls/user.exe16/user_private.h
+3
-6
window.c
dlls/user.exe16/window.c
+7
-7
No files found.
dlls/user.exe16/message.c
View file @
8fc1fc49
...
...
@@ -2619,7 +2619,7 @@ static LRESULT static_proc16( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam,
HICON16
icon
=
LoadIcon16
(
HINSTANCE_16
(
cs
->
hInstance
),
cs
->
lpszName
);
if
(
!
icon
)
icon
=
LoadCursor16
(
HINSTANCE_16
(
cs
->
hInstance
),
cs
->
lpszName
);
if
(
icon
)
wow_handlers32
.
static_proc
(
hwnd
,
STM_SETIMAGE
,
IMAGE_ICON
,
(
LPARAM
)
HICON
_32
(
icon
),
FALSE
);
(
LPARAM
)
get_icon
_32
(
icon
),
FALSE
);
break
;
}
case
SS_BITMAP
:
...
...
@@ -2633,10 +2633,10 @@ static LRESULT static_proc16( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam,
return
ret
;
}
case
STM_SETICON16
:
wParam
=
(
WPARAM
)
HICON
_32
(
(
HICON16
)
wParam
);
wParam
=
(
WPARAM
)
get_icon
_32
(
(
HICON16
)
wParam
);
return
wow_handlers32
.
static_proc
(
hwnd
,
STM_SETICON
,
wParam
,
lParam
,
FALSE
);
case
STM_GETICON16
:
return
HICON_16
(
wow_handlers32
.
static_proc
(
hwnd
,
STM_GETICON
,
wParam
,
lParam
,
FALSE
));
return
get_icon_16
(
(
HICON
)
wow_handlers32
.
static_proc
(
hwnd
,
STM_GETICON
,
wParam
,
lParam
,
FALSE
));
default:
return
wow_handlers32
.
static_proc
(
hwnd
,
msg
,
wParam
,
lParam
,
unicode
);
}
...
...
@@ -2678,22 +2678,22 @@ static HICON alloc_icon_handle( unsigned int size )
{
HGLOBAL16
handle
=
GlobalAlloc16
(
GMEM_MOVEABLE
,
size
);
FarSetOwner16
(
handle
,
0
);
return
HICON_32
(
handle
)
;
return
(
HICON
)(
ULONG_PTR
)
handle
;
}
static
struct
tagCURSORICONINFO
*
get_icon_ptr
(
HICON
handle
)
{
return
GlobalLock16
(
HICON_16
(
handle
)
);
return
GlobalLock16
(
LOWORD
(
handle
)
);
}
static
void
release_icon_ptr
(
HICON
handle
,
struct
tagCURSORICONINFO
*
ptr
)
{
GlobalUnlock16
(
HICON_16
(
handle
)
);
GlobalUnlock16
(
LOWORD
(
handle
)
);
}
static
int
free_icon_handle
(
HICON
handle
)
{
return
GlobalFree16
(
HICON_16
(
handle
)
);
return
GlobalFree16
(
LOWORD
(
handle
)
);
}
...
...
dlls/user.exe16/user.c
View file @
8fc1fc49
...
...
@@ -289,6 +289,16 @@ static int free_icon_handle( HICON16 handle )
return
GlobalFree16
(
handle
);
}
HICON
get_icon_32
(
HICON16
icon16
)
{
return
(
HICON
)(
ULONG_PTR
)
icon16
;
}
HICON16
get_icon_16
(
HICON
icon
)
{
return
LOWORD
(
icon
);
}
static
void
add_shared_icon
(
HINSTANCE16
inst
,
HRSRC16
rsrc
,
HRSRC16
group
,
HICON16
icon
)
{
struct
cache_entry
*
cache
=
HeapAlloc
(
GetProcessHeap
(),
0
,
sizeof
(
*
cache
)
);
...
...
@@ -471,7 +481,7 @@ BOOL16 WINAPI AnyPopup16(void)
*/
HCURSOR16
WINAPI
SetCursor16
(
HCURSOR16
hCursor
)
{
return
HCURSOR_16
(
SetCursor
(
HCURSOR_32
(
hCursor
)
));
return
get_icon_16
(
SetCursor
(
get_icon_32
(
hCursor
)
));
}
...
...
@@ -673,7 +683,7 @@ INT16 WINAPI FrameRect16( HDC16 hdc, const RECT16 *rect16, HBRUSH16 hbrush )
*/
BOOL16
WINAPI
DrawIcon16
(
HDC16
hdc
,
INT16
x
,
INT16
y
,
HICON16
hIcon
)
{
return
DrawIcon
(
HDC_32
(
hdc
),
x
,
y
,
HICON_32
(
hIcon
)
);
return
DrawIcon
(
HDC_32
(
hdc
),
x
,
y
,
get_icon_32
(
hIcon
)
);
}
...
...
@@ -1453,7 +1463,7 @@ BOOL16 WINAPI ExitWindowsExec16( LPCSTR lpszExe, LPCSTR lpszParams )
*/
HCURSOR16
WINAPI
GetCursor16
(
void
)
{
return
HCURSOR_16
(
GetCursor
()
);
return
get_icon_16
(
GetCursor
()
);
}
...
...
@@ -1986,7 +1996,12 @@ HANDLE16 WINAPI LoadImage16(HINSTANCE16 hinst, LPCSTR name, UINT16 type, INT16 c
HRSRC16
hRsrc
,
hGroupRsrc
;
if
(
!
hinst
||
(
flags
&
LR_LOADFROMFILE
))
return
HICON_16
(
LoadImageA
(
0
,
name
,
type
,
cx
,
cy
,
flags
));
{
if
(
type
==
IMAGE_BITMAP
)
return
HBITMAP_16
(
LoadImageA
(
0
,
name
,
type
,
cx
,
cy
,
flags
));
else
return
get_icon_16
(
LoadImageA
(
0
,
name
,
type
,
cx
,
cy
,
flags
));
}
hinst
=
GetExePtr
(
hinst
);
...
...
@@ -2110,7 +2125,7 @@ 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
,
return
DrawIconEx
(
HDC_32
(
hdc
),
xLeft
,
yTop
,
get_icon
_32
(
hIcon
),
cxWidth
,
cyWidth
,
istep
,
HBRUSH_32
(
hbr
),
flags
);
}
...
...
@@ -2563,8 +2578,7 @@ HICON16 WINAPI CreateIconFromResourceEx16(LPBYTE bits, UINT16 cbSize,
INT16
width
,
INT16
height
,
UINT16
cFlag
)
{
return
HICON_16
(
CreateIconFromResourceEx
(
bits
,
cbSize
,
bIcon
,
dwVersion
,
width
,
height
,
cFlag
));
return
get_icon_16
(
CreateIconFromResourceEx
(
bits
,
cbSize
,
bIcon
,
dwVersion
,
width
,
height
,
cFlag
));
}
...
...
@@ -2722,7 +2736,7 @@ DWORD WINAPI DragObject16( HWND16 hwndScope, HWND16 hWnd, UINT16 wObj,
MSG
msg
;
LPDRAGINFO16
lpDragInfo
;
SEGPTR
spDragInfo
;
HCURSOR
hOldCursor
=
0
,
hBummer
=
0
;
HCURSOR
hOldCursor
=
0
,
hBummer
=
0
,
hCursor32
;
HGLOBAL16
hDragInfo
=
GlobalAlloc16
(
GMEM_SHARE
|
GMEM_ZEROINIT
,
2
*
sizeof
(
DRAGINFO16
));
HCURSOR
hCurrentCursor
=
0
;
HWND16
hCurrentWnd
=
0
;
...
...
@@ -2738,7 +2752,7 @@ DWORD WINAPI DragObject16( HWND16 hwndScope, HWND16 hWnd, UINT16 wObj,
return
0L
;
}
if
(
hCursor
)
hOldCursor
=
SetCursor
(
HCURSOR_32
(
hCursor
)
);
if
((
hCursor32
=
get_icon_32
(
hCursor
)))
SetCursor
(
hCursor32
);
lpDragInfo
->
hWnd
=
hWnd
;
lpDragInfo
->
hScope
=
0
;
...
...
@@ -2761,7 +2775,7 @@ DWORD WINAPI DragObject16( HWND16 hwndScope, HWND16 hWnd, UINT16 wObj,
/* update DRAGINFO struct */
if
(
DRAG_QueryUpdate16
(
WIN_Handle32
(
hwndScope
),
spDragInfo
)
>
0
)
hCurrentCursor
=
HCURSOR_32
(
hCursor
)
;
hCurrentCursor
=
hCursor32
;
else
{
hCurrentCursor
=
hBummer
;
...
...
dlls/user.exe16/user_private.h
View file @
8fc1fc49
...
...
@@ -117,14 +117,11 @@ typedef struct tagDIALOGINFO
#define DF_OWNERENABLED 0x0002
/* HANDLE16 <-> HANDLE conversions */
#define HCURSOR_16(h32) (LOWORD(h32))
#define HICON_16(h32) (LOWORD(h32))
#define HINSTANCE_16(h32) (LOWORD(h32))
#define HCURSOR_32(h16) ((HCURSOR)(ULONG_PTR)(h16))
#define HICON_32(h16) ((HICON)(ULONG_PTR)(h16))
#define HINSTANCE_32(h16) ((HINSTANCE)(ULONG_PTR)(h16))
#define HMODULE_32(h16) ((HMODULE)(ULONG_PTR)(h16))
extern
HICON16
get_icon_16
(
HICON
icon
)
DECLSPEC_HIDDEN
;
extern
HICON
get_icon_32
(
HICON16
icon16
)
DECLSPEC_HIDDEN
;
extern
DWORD
USER16_AlertableWait
DECLSPEC_HIDDEN
;
extern
WORD
USER_HeapSel
DECLSPEC_HIDDEN
;
...
...
dlls/user.exe16/window.c
View file @
8fc1fc49
...
...
@@ -1575,12 +1575,12 @@ ATOM WINAPI RegisterClassEx16( const WNDCLASSEX16 *wc )
wc32
.
cbClsExtra
=
wc
->
cbClsExtra
;
wc32
.
cbWndExtra
=
wc
->
cbWndExtra
;
wc32
.
hInstance
=
HINSTANCE_32
(
inst
);
wc32
.
hIcon
=
HICON
_32
(
wc
->
hIcon
);
wc32
.
hCursor
=
HCURSOR_32
(
wc
->
hCursor
);
wc32
.
hIcon
=
get_icon
_32
(
wc
->
hIcon
);
wc32
.
hCursor
=
get_icon_32
(
wc
->
hCursor
);
wc32
.
hbrBackground
=
HBRUSH_32
(
wc
->
hbrBackground
);
wc32
.
lpszMenuName
=
MapSL
(
wc
->
lpszMenuName
);
wc32
.
lpszClassName
=
MapSL
(
wc
->
lpszClassName
);
wc32
.
hIconSm
=
HICON
_32
(
wc
->
hIconSm
);
wc32
.
hIconSm
=
get_icon
_32
(
wc
->
hIconSm
);
atom
=
RegisterClassExA
(
&
wc32
);
if
((
class
=
HeapAlloc
(
GetProcessHeap
(),
0
,
sizeof
(
*
class
)
)))
{
...
...
@@ -1618,9 +1618,9 @@ BOOL16 WINAPI GetClassInfoEx16( HINSTANCE16 hInst16, SEGPTR name, WNDCLASSEX16 *
wc
->
cbClsExtra
=
wc32
.
cbClsExtra
;
wc
->
cbWndExtra
=
wc32
.
cbWndExtra
;
wc
->
hInstance
=
(
wc32
.
hInstance
==
user32_module
)
?
GetModuleHandle16
(
"user"
)
:
HINSTANCE_16
(
wc32
.
hInstance
);
wc
->
hIcon
=
HICON_16
(
wc32
.
hIcon
);
wc
->
hIconSm
=
HICON_16
(
wc32
.
hIconSm
);
wc
->
hCursor
=
HCURSOR_16
(
wc32
.
hCursor
);
wc
->
hIcon
=
get_icon_16
(
wc32
.
hIcon
);
wc
->
hIconSm
=
get_icon_16
(
wc32
.
hIconSm
);
wc
->
hCursor
=
get_icon_16
(
wc32
.
hCursor
);
wc
->
hbrBackground
=
HBRUSH_16
(
wc32
.
hbrBackground
);
wc
->
lpszClassName
=
0
;
wc
->
lpszMenuName
=
MapLS
(
wc32
.
lpszMenuName
);
/* FIXME: leak */
...
...
@@ -2048,7 +2048,7 @@ BOOL16 WINAPI DrawCaptionTemp16( HWND16 hwnd, HDC16 hdc, const RECT16 *rect,
}
return
DrawCaptionTempA
(
WIN_Handle32
(
hwnd
),
HDC_32
(
hdc
),
rect
?
&
rect32
:
NULL
,
HFONT_32
(
hFont
),
HICON
_32
(
hIcon
),
str
,
uFlags
&
0x1f
);
get_icon
_32
(
hIcon
),
str
,
uFlags
&
0x1f
);
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment