2009-12-23 20:01:37 +01:00
|
|
|
/*
|
|
|
|
* 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*);
|
2010-02-08 17:38:05 +01:00
|
|
|
void (*free_icon_param)(ULONG_PTR);
|
2009-12-23 20:01:37 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
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);
|
2010-02-08 17:38:05 +01:00
|
|
|
ULONG_PTR (*get_icon_param)(HICON);
|
|
|
|
ULONG_PTR (*set_icon_param)(HICON,ULONG_PTR);
|
2009-12-23 20:01:37 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
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;
|
|
|
|
|
2011-03-08 14:50:18 +01:00
|
|
|
extern void call_WH_CALLWNDPROC_hook( HWND16 hwnd, UINT16 msg, WPARAM16 wp, LPARAM lp ) DECLSPEC_HIDDEN;
|
2009-12-23 20:01:37 +01:00
|
|
|
|
|
|
|
#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))
|
2010-02-02 12:14:10 +01:00
|
|
|
|
|
|
|
extern HICON16 get_icon_16( HICON icon ) DECLSPEC_HIDDEN;
|
|
|
|
extern HICON get_icon_32( HICON16 icon16 ) DECLSPEC_HIDDEN;
|
2009-12-23 20:01:37 +01:00
|
|
|
|
|
|
|
extern DWORD USER16_AlertableWait DECLSPEC_HIDDEN;
|
|
|
|
extern WORD USER_HeapSel DECLSPEC_HIDDEN;
|
|
|
|
|
|
|
|
#endif /* __WINE_USER_PRIVATE_H */
|