blob: afb5bcefe63372350a2ac3f9bba8b9471d36c8d5 [file] [log] [blame]
/*
* Win32 user functions
*
* Copyright 1995 Martin von Loewis
*/
/* This file contains only wrappers to existing Wine functions or trivial
stubs. 'Real' implementations go into context specific files */
#include <unistd.h>
#include <stdio.h>
#include <stdarg.h>
#include "windows.h"
#include "winerror.h"
#include "heap.h"
#include "xmalloc.h"
#include "handle32.h"
#include "struct32.h"
#include "string32.h"
#include "win.h"
#include "debug.h"
#include "stddebug.h"
/***********************************************************************
* GetMessageA (USER32.269)
*/
BOOL USER32_GetMessageA(MSG32* lpmsg,DWORD hwnd,DWORD min,DWORD max)
{
BOOL ret;
MSG16 *msg = SEGPTR_NEW(MSG16);
if (!msg) return 0;
ret=GetMessage(SEGPTR_GET(msg),(HWND)hwnd,min,max);
STRUCT32_MSG16to32(msg,lpmsg);
SEGPTR_FREE(msg);
return ret;
}
/***********************************************************************
* IsDialogMessageA (USER32.341)
*/
BOOL IsDialogMessage32A(DWORD hwnd, MSG32* lpmsg)
{
MSG16 msg;
STRUCT32_MSG32to16(lpmsg, &msg);
return IsDialogMessage(hwnd, &msg);
}
/***********************************************************************
* DispatchMessageA (USER32.140)
*/
LONG USER32_DispatchMessageA(MSG32* lpmsg)
{
MSG16 msg;
LONG ret;
STRUCT32_MSG32to16(lpmsg,&msg);
ret=DispatchMessage(&msg);
STRUCT32_MSG16to32(&msg,lpmsg);
return ret;
}
/***********************************************************************
* TranslateMessage (USER32.555)
*/
BOOL USER32_TranslateMessage(MSG32* lpmsg)
{
MSG16 msg;
STRUCT32_MSG32to16(lpmsg,&msg);
return TranslateMessage(&msg);
}
/***********************************************************************
* PeekMessageA
*/
BOOL32 PeekMessage32A( LPMSG32 lpmsg, HWND32 hwnd,
UINT32 min,UINT32 max,UINT32 wRemoveMsg)
{
MSG16 msg;
BOOL ret;
ret=PeekMessage16(&msg,hwnd,min,max,wRemoveMsg);
/* FIXME: should translate the message to Win32 */
STRUCT32_MSG16to32(&msg,lpmsg);
return ret;
}
/***********************************************************************
* PeekMessageW
*/
BOOL32 PeekMessage32W( LPMSG32 lpmsg, HWND32 hwnd,
UINT32 min,UINT32 max,UINT32 wRemoveMsg)
{
/* FIXME: Should perform Unicode translation on specific messages */
return PeekMessage32A(lpmsg,hwnd,min,max,wRemoveMsg);
}