4 * Copyright 1996, 1997 Alexandre Julliard
5 * Copyright 1998 Ulrich Weigand
10 #include "wine/winuser16.h"
14 /* ### start build ### */
15 extern WORD CALLBACK THUNK_CallTo16_word_wl (FARPROC16,WORD,LONG);
16 extern WORD CALLBACK THUNK_CallTo16_word_wlw (FARPROC16,WORD,LONG,WORD);
17 extern WORD CALLBACK THUNK_CallTo16_word_wlwww(FARPROC16,WORD,LONG,WORD,WORD,WORD);
18 /* ### stop build ### */
21 /*******************************************************************
22 * EnumWindows (USER.54)
24 BOOL16 WINAPI EnumWindows16( WNDENUMPROC16 func, LPARAM lParam )
26 DECL_THUNK( thunk, func, THUNK_CallTo16_word_wl );
27 return EnumWindows( (WNDENUMPROC)&thunk, lParam );
31 /**********************************************************************
32 * EnumChildWindows (USER.55)
34 BOOL16 WINAPI EnumChildWindows16( HWND16 parent, WNDENUMPROC16 func, LPARAM lParam )
36 DECL_THUNK( thunk, func, THUNK_CallTo16_word_wl );
37 return EnumChildWindows( WIN_Handle32(parent), (WNDENUMPROC)&thunk, lParam );
41 /**********************************************************************
42 * EnumTaskWindows (USER.225)
44 BOOL16 WINAPI THUNK_EnumTaskWindows16( HTASK16 hTask, WNDENUMPROC16 func,
47 DECL_THUNK( thunk, func, THUNK_CallTo16_word_wl );
48 return EnumTaskWindows16( hTask, (WNDENUMPROC16)&thunk, lParam );
52 /***********************************************************************
55 INT16 WINAPI THUNK_EnumProps16( HWND16 hwnd, PROPENUMPROC16 func )
57 DECL_THUNK( thunk, func, THUNK_CallTo16_word_wlw );
58 return EnumProps16( hwnd, (PROPENUMPROC16)&thunk );
62 /***********************************************************************
63 * GrayString (USER.185)
65 BOOL16 WINAPI THUNK_GrayString16( HDC16 hdc, HBRUSH16 hbr,
66 GRAYSTRINGPROC16 func, LPARAM lParam,
67 INT16 cch, INT16 x, INT16 y,
70 DECL_THUNK( thunk, func, THUNK_CallTo16_word_wlw );
72 return GrayString16( hdc, hbr, NULL, lParam, cch, x, y, cx, cy );
74 return GrayString16( hdc, hbr, (GRAYSTRINGPROC16)&thunk, lParam, cch,
79 /**********************************************************************
80 * DrawState (USER.449)
82 BOOL16 WINAPI DrawState16( HDC16 hdc, HBRUSH16 hbr, DRAWSTATEPROC16 func, LPARAM ldata,
83 WPARAM16 wdata, INT16 x, INT16 y, INT16 cx, INT16 cy, UINT16 flags )
85 UINT opcode = flags & 0xf;
86 DECL_THUNK( thunk, func, THUNK_CallTo16_word_wlwww );
88 if (opcode == DST_TEXT || opcode == DST_PREFIXTEXT)
90 /* make sure DrawStateA doesn't try to use ldata as a pointer */
91 if (!wdata) wdata = strlen( MapSL(ldata) );
95 if (!GetTextExtentPoint32A( hdc, MapSL(ldata), wdata, &s )) return FALSE;
100 return DrawStateA( hdc, hbr, (DRAWSTATEPROC)&thunk, ldata, wdata, x, y, cx, cy, flags );