| /* |
| * USER private definitions |
| * |
| * Copyright 1993, 2009 Alexandre Julliard |
| * |
| * This library is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU Lesser General Public |
| * License as published by the Free Software Foundation; either |
| * version 2.1 of the License, or (at your option) any later version. |
| * |
| * This library is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| * Lesser General Public License for more details. |
| * |
| * You should have received a copy of the GNU Lesser General Public |
| * License along with this library; if not, write to the Free Software |
| * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA |
| */ |
| |
| #ifndef __WINE_USER_PRIVATE_H |
| #define __WINE_USER_PRIVATE_H |
| |
| #include <stdarg.h> |
| #include "windef.h" |
| #include "winbase.h" |
| #include "wingdi.h" |
| #include "winuser.h" |
| #include "winreg.h" |
| #include "winternl.h" |
| #include "wine/windef16.h" |
| |
| /* Wow handlers */ |
| |
| /* the structures must match the corresponding ones in user32 */ |
| struct wow_handlers16 |
| { |
| LRESULT (*button_proc)(HWND,UINT,WPARAM,LPARAM,BOOL); |
| LRESULT (*combo_proc)(HWND,UINT,WPARAM,LPARAM,BOOL); |
| LRESULT (*edit_proc)(HWND,UINT,WPARAM,LPARAM,BOOL); |
| LRESULT (*listbox_proc)(HWND,UINT,WPARAM,LPARAM,BOOL); |
| LRESULT (*mdiclient_proc)(HWND,UINT,WPARAM,LPARAM,BOOL); |
| LRESULT (*scrollbar_proc)(HWND,UINT,WPARAM,LPARAM,BOOL); |
| LRESULT (*static_proc)(HWND,UINT,WPARAM,LPARAM,BOOL); |
| DWORD (*wait_message)(DWORD,const HANDLE*,DWORD,DWORD,DWORD); |
| HWND (*create_window)(CREATESTRUCTW*,LPCWSTR,HINSTANCE,BOOL); |
| LRESULT (*call_window_proc)(HWND,UINT,WPARAM,LPARAM,LRESULT*,void*); |
| LRESULT (*call_dialog_proc)(HWND,UINT,WPARAM,LPARAM,LRESULT*,void*); |
| void (*free_icon_param)(ULONG_PTR); |
| }; |
| |
| struct wow_handlers32 |
| { |
| LRESULT (*button_proc)(HWND,UINT,WPARAM,LPARAM,BOOL); |
| LRESULT (*combo_proc)(HWND,UINT,WPARAM,LPARAM,BOOL); |
| LRESULT (*edit_proc)(HWND,UINT,WPARAM,LPARAM,BOOL); |
| LRESULT (*listbox_proc)(HWND,UINT,WPARAM,LPARAM,BOOL); |
| LRESULT (*mdiclient_proc)(HWND,UINT,WPARAM,LPARAM,BOOL); |
| LRESULT (*scrollbar_proc)(HWND,UINT,WPARAM,LPARAM,BOOL); |
| LRESULT (*static_proc)(HWND,UINT,WPARAM,LPARAM,BOOL); |
| DWORD (*wait_message)(DWORD,const HANDLE*,DWORD,DWORD,DWORD); |
| HWND (*create_window)(CREATESTRUCTW*,LPCWSTR,HINSTANCE,BOOL); |
| HWND (*get_win_handle)(HWND); |
| WNDPROC (*alloc_winproc)(WNDPROC,BOOL); |
| struct tagDIALOGINFO *(*get_dialog_info)(HWND,BOOL); |
| INT (*dialog_box_loop)(HWND,HWND); |
| ULONG_PTR (*get_icon_param)(HICON); |
| ULONG_PTR (*set_icon_param)(HICON,ULONG_PTR); |
| }; |
| |
| extern struct wow_handlers32 wow_handlers32 DECLSPEC_HIDDEN; |
| |
| extern HWND create_window16(CREATESTRUCTW*,LPCWSTR,HINSTANCE,BOOL) DECLSPEC_HIDDEN; |
| extern void free_module_classes(HINSTANCE16) DECLSPEC_HIDDEN; |
| extern void register_wow_handlers(void) DECLSPEC_HIDDEN; |
| extern void WINAPI UserRegisterWowHandlers( const struct wow_handlers16 *new, |
| struct wow_handlers32 *orig ); |
| |
| static inline HWND WIN_Handle32( HWND16 hwnd16 ) |
| { |
| return wow_handlers32.get_win_handle( (HWND)(ULONG_PTR)hwnd16 ); |
| } |
| |
| typedef LRESULT (*winproc_callback_t)( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp, |
| LRESULT *result, void *arg ); |
| typedef LRESULT (*winproc_callback16_t)( HWND16 hwnd, UINT16 msg, WPARAM16 wp, LPARAM lp, |
| LRESULT *result, void *arg ); |
| |
| extern WNDPROC16 WINPROC_GetProc16( WNDPROC proc, BOOL unicode ) DECLSPEC_HIDDEN; |
| extern WNDPROC WINPROC_AllocProc16( WNDPROC16 func ) DECLSPEC_HIDDEN; |
| extern LRESULT WINPROC_CallProc16To32A( winproc_callback_t callback, HWND16 hwnd, UINT16 msg, |
| WPARAM16 wParam, LPARAM lParam, LRESULT *result, void *arg ) DECLSPEC_HIDDEN; |
| extern LRESULT WINPROC_CallProc32ATo16( winproc_callback16_t callback, HWND hwnd, UINT msg, |
| WPARAM wParam, LPARAM lParam, LRESULT *result, void *arg ) DECLSPEC_HIDDEN; |
| |
| extern void call_WH_CALLWNDPROC_hook( HWND16 hwnd, UINT16 msg, WPARAM16 wp, LPARAM lp ) DECLSPEC_HIDDEN; |
| |
| #define GET_WORD(ptr) (*(const WORD *)(ptr)) |
| #define GET_DWORD(ptr) (*(const DWORD *)(ptr)) |
| |
| #define WM_SYSTIMER 0x0118 |
| |
| /* Dialog info structure (must match the user32 one) */ |
| typedef struct tagDIALOGINFO |
| { |
| HWND hwndFocus; /* Current control with focus */ |
| HFONT hUserFont; /* Dialog font */ |
| HMENU hMenu; /* Dialog menu */ |
| UINT xBaseUnit; /* Dialog units (depends on the font) */ |
| UINT yBaseUnit; |
| INT idResult; /* EndDialog() result / default pushbutton ID */ |
| UINT flags; /* EndDialog() called for this dialog */ |
| } DIALOGINFO; |
| |
| #define DF_END 0x0001 |
| #define DF_OWNERENABLED 0x0002 |
| |
| /* HANDLE16 <-> HANDLE conversions */ |
| #define HINSTANCE_16(h32) (LOWORD(h32)) |
| #define HINSTANCE_32(h16) ((HINSTANCE)(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; |
| |
| #endif /* __WINE_USER_PRIVATE_H */ |