mirror of
https://github.com/reactos/reactos.git
synced 2024-07-05 12:15:46 +00:00
Began work on message queue and default window procedure
svn path=/trunk/; revision=2504
This commit is contained in:
parent
a600e78a7a
commit
43b2190795
|
@ -2,7 +2,7 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
|
||||||
#define SIZE (128*1024*1024)
|
#define SIZE (65*1024*1024)
|
||||||
|
|
||||||
ULONG x[SIZE / 4096];
|
ULONG x[SIZE / 4096];
|
||||||
|
|
||||||
|
|
|
@ -531,3 +531,5 @@ NtUserWaitMessage 0
|
||||||
NtUserWin32PoolAllocationStats 6
|
NtUserWin32PoolAllocationStats 6
|
||||||
NtUserWindowFromPoint 2
|
NtUserWindowFromPoint 2
|
||||||
NtUserYieldTask 0
|
NtUserYieldTask 0
|
||||||
|
# ReactOS only system calls
|
||||||
|
NtUserAcquireOrReleaseInputOwnership 1
|
|
@ -318,8 +318,10 @@ typedef enum _SID_NAME_USE {
|
||||||
|
|
||||||
#define HIBYTE(w) ((BYTE) (((WORD) (w) >> 8) & 0xFF))
|
#define HIBYTE(w) ((BYTE) (((WORD) (w) >> 8) & 0xFF))
|
||||||
#define HIWORD(l) ((WORD) (((DWORD) (l) >> 16) & 0xFFFF))
|
#define HIWORD(l) ((WORD) (((DWORD) (l) >> 16) & 0xFFFF))
|
||||||
|
#define SHIWORD(l) ((INT16) (((DWORD) (l) >> 16) & 0xFFFF))
|
||||||
#define LOBYTE(w) ((BYTE) (w))
|
#define LOBYTE(w) ((BYTE) (w))
|
||||||
#define LOWORD(l) ((WORD) (l))
|
#define LOWORD(l) ((WORD) (l))
|
||||||
|
#define SLOWORD(l) ((INT16) (l))
|
||||||
#define MAKELONG(a, b) ((LONG) (((WORD) (a)) | ((DWORD) ((WORD) (b))) << 16))
|
#define MAKELONG(a, b) ((LONG) (((WORD) (a)) | ((DWORD) ((WORD) (b))) << 16))
|
||||||
#define MAKEWORD(a, b) ((WORD) (((BYTE) (a)) | ((WORD) ((BYTE) (b))) << 8))
|
#define MAKEWORD(a, b) ((WORD) (((BYTE) (a)) | ((WORD) ((BYTE) (b))) << 8))
|
||||||
|
|
||||||
|
|
|
@ -154,12 +154,14 @@ typedef struct _GDI_TEB_BATCH
|
||||||
ULONG Buffer[0x136];
|
ULONG Buffer[0x136];
|
||||||
} GDI_TEB_BATCH, *PGDI_TEB_BATCH;
|
} GDI_TEB_BATCH, *PGDI_TEB_BATCH;
|
||||||
|
|
||||||
// FIXME: Redundant definition of W32THREAD also in ntoskrnl\include\internal\ps.h
|
|
||||||
typedef struct _W32THREAD
|
typedef struct _W32THREAD
|
||||||
{
|
{
|
||||||
PVOID MessageQueue;
|
PVOID MessageQueue;
|
||||||
} __attribute__((packed)) W32THREAD, *PW32THREAD;
|
} __attribute__((packed)) W32THREAD, *PW32THREAD;
|
||||||
|
|
||||||
|
PW32THREAD STDCALL
|
||||||
|
PsGetWin32Thread(VOID);
|
||||||
|
|
||||||
typedef struct _TEB
|
typedef struct _TEB
|
||||||
{
|
{
|
||||||
NT_TIB Tib; // 00h
|
NT_TIB Tib; // 00h
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# $Id: makefile_rex,v 1.20 2001/08/21 20:13:07 chorns Exp $
|
# $Id: makefile_rex,v 1.21 2002/01/13 22:52:07 dwelch Exp $
|
||||||
|
|
||||||
PATH_TO_TOP = ../..
|
PATH_TO_TOP = ../..
|
||||||
|
|
||||||
|
@ -32,7 +32,8 @@ MISC_OBJECTS = \
|
||||||
WINDOWS_OBJECTS = \
|
WINDOWS_OBJECTS = \
|
||||||
windows/class.o \
|
windows/class.o \
|
||||||
windows/message.o \
|
windows/message.o \
|
||||||
windows/window.o
|
windows/window.o \
|
||||||
|
windows/defwnd.o
|
||||||
|
|
||||||
OBJECTS = \
|
OBJECTS = \
|
||||||
$(MISC_OBJECTS) \
|
$(MISC_OBJECTS) \
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $Id: window.c,v 1.2 2001/07/06 00:05:05 rex Exp $
|
/* $Id: window.c,v 1.3 2002/01/13 22:52:07 dwelch Exp $
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS user32.dll
|
* PROJECT: ReactOS user32.dll
|
||||||
|
@ -8,79 +8,67 @@
|
||||||
* UPDATE HISTORY:
|
* UPDATE HISTORY:
|
||||||
* 06-06-2001 CSH Created
|
* 06-06-2001 CSH Created
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* INCLUDES ******************************************************************/
|
||||||
|
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include <user32.h>
|
#include <user32.h>
|
||||||
#include <window.h>
|
#include <window.h>
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
|
/* FUNCTIONS *****************************************************************/
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
AdjustWindowRect(LPRECT lpRect,
|
||||||
AdjustWindowRect(
|
|
||||||
LPRECT lpRect,
|
|
||||||
DWORD dwStyle,
|
DWORD dwStyle,
|
||||||
WINBOOL bMenu)
|
WINBOOL bMenu)
|
||||||
{
|
{
|
||||||
return FALSE;
|
return(AdjustWindowRectEx(lpRect, dwStyle, bMenu, 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
AdjustWindowRectEx(LPRECT lpRect,
|
||||||
AdjustWindowRectEx(
|
|
||||||
LPRECT lpRect,
|
|
||||||
DWORD dwStyle,
|
DWORD dwStyle,
|
||||||
WINBOOL bMenu,
|
WINBOOL bMenu,
|
||||||
DWORD dwExStyle)
|
DWORD dwExStyle)
|
||||||
{
|
{
|
||||||
return FALSE;
|
return(FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
AllowSetForegroundWindow(DWORD dwProcessId)
|
||||||
AllowSetForegroundWindow(
|
|
||||||
DWORD dwProcessId)
|
|
||||||
{
|
{
|
||||||
return FALSE;
|
return(FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
AnimateWindow(HWND hwnd,
|
||||||
AnimateWindow(
|
|
||||||
HWND hwnd,
|
|
||||||
DWORD dwTime,
|
DWORD dwTime,
|
||||||
DWORD dwFlags)
|
DWORD dwFlags)
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
UINT
|
UINT STDCALL
|
||||||
STDCALL
|
ArrangeIconicWindows(HWND hWnd)
|
||||||
ArrangeIconicWindows(
|
|
||||||
HWND hWnd)
|
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
HDWP
|
HDWP STDCALL
|
||||||
STDCALL
|
BeginDeferWindowPos(int nNumWindows)
|
||||||
BeginDeferWindowPos(
|
|
||||||
int nNumWindows)
|
|
||||||
{
|
{
|
||||||
return (HDWP)0;
|
return (HDWP)0;
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
BringWindowToTop(HWND hWnd)
|
||||||
BringWindowToTop(
|
|
||||||
HWND hWnd)
|
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
WORD
|
WORD STDCALL
|
||||||
STDCALL
|
CascadeWindows(HWND hwndParent,
|
||||||
CascadeWindows(
|
|
||||||
HWND hwndParent,
|
|
||||||
UINT wHow,
|
UINT wHow,
|
||||||
CONST RECT *lpRect,
|
CONST RECT *lpRect,
|
||||||
UINT cKids,
|
UINT cKids,
|
||||||
|
@ -89,37 +77,29 @@ CascadeWindows(
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
HWND
|
HWND STDCALL
|
||||||
STDCALL
|
ChildWindowFromPoint(HWND hWndParent,
|
||||||
ChildWindowFromPoint(
|
|
||||||
HWND hWndParent,
|
|
||||||
POINT Point)
|
POINT Point)
|
||||||
{
|
{
|
||||||
return (HWND)0;
|
return (HWND)0;
|
||||||
}
|
}
|
||||||
|
|
||||||
HWND
|
HWND STDCALL
|
||||||
STDCALL
|
ChildWindowFromPointEx(HWND hwndParent,
|
||||||
ChildWindowFromPointEx(
|
|
||||||
HWND hwndParent,
|
|
||||||
POINT pt,
|
POINT pt,
|
||||||
UINT uFlags)
|
UINT uFlags)
|
||||||
{
|
{
|
||||||
return (HWND)0;
|
return (HWND)0;
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
CloseWindow(HWND hWnd)
|
||||||
CloseWindow(
|
|
||||||
HWND hWnd)
|
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
HWND
|
HWND STDCALL
|
||||||
STDCALL
|
CreateWindowExA(DWORD dwExStyle,
|
||||||
CreateWindowExA(
|
|
||||||
DWORD dwExStyle,
|
|
||||||
LPCSTR lpClassName,
|
LPCSTR lpClassName,
|
||||||
LPCSTR lpWindowName,
|
LPCSTR lpWindowName,
|
||||||
DWORD dwStyle,
|
DWORD dwStyle,
|
||||||
|
@ -136,26 +116,31 @@ CreateWindowExA(
|
||||||
UNICODE_STRING ClassName;
|
UNICODE_STRING ClassName;
|
||||||
HWND Handle;
|
HWND Handle;
|
||||||
|
|
||||||
if (IS_ATOM(lpClassName)) {
|
if (IS_ATOM(lpClassName))
|
||||||
|
{
|
||||||
RtlInitUnicodeString(&ClassName, NULL);
|
RtlInitUnicodeString(&ClassName, NULL);
|
||||||
ClassName.Buffer = (LPWSTR)lpClassName;
|
ClassName.Buffer = (LPWSTR)lpClassName;
|
||||||
} else {
|
}
|
||||||
if (!RtlCreateUnicodeStringFromAsciiz(&(ClassName), (PCSZ)lpClassName)) {
|
else
|
||||||
|
{
|
||||||
|
if (!RtlCreateUnicodeStringFromAsciiz(&(ClassName), (PCSZ)lpClassName))
|
||||||
|
{
|
||||||
SetLastError(ERROR_OUTOFMEMORY);
|
SetLastError(ERROR_OUTOFMEMORY);
|
||||||
return (HWND)0;
|
return (HWND)0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!RtlCreateUnicodeStringFromAsciiz(&WindowName, (PCSZ)lpWindowName)) {
|
if (!RtlCreateUnicodeStringFromAsciiz(&WindowName, (PCSZ)lpWindowName))
|
||||||
if (!IS_ATOM(lpClassName)) {
|
{
|
||||||
|
if (!IS_ATOM(lpClassName))
|
||||||
|
{
|
||||||
RtlFreeUnicodeString(&ClassName);
|
RtlFreeUnicodeString(&ClassName);
|
||||||
}
|
}
|
||||||
SetLastError(ERROR_OUTOFMEMORY);
|
SetLastError(ERROR_OUTOFMEMORY);
|
||||||
return (HWND)0;
|
return (HWND)0;
|
||||||
}
|
}
|
||||||
|
|
||||||
Handle = NtUserCreateWindowEx(
|
Handle = NtUserCreateWindowEx(dwExStyle,
|
||||||
dwExStyle,
|
|
||||||
&ClassName,
|
&ClassName,
|
||||||
&WindowName,
|
&WindowName,
|
||||||
dwStyle,
|
dwStyle,
|
||||||
|
@ -171,17 +156,16 @@ CreateWindowExA(
|
||||||
|
|
||||||
RtlFreeUnicodeString(&WindowName);
|
RtlFreeUnicodeString(&WindowName);
|
||||||
|
|
||||||
if (!IS_ATOM(lpClassName)) {
|
if (!IS_ATOM(lpClassName))
|
||||||
|
{
|
||||||
RtlFreeUnicodeString(&ClassName);
|
RtlFreeUnicodeString(&ClassName);
|
||||||
}
|
}
|
||||||
|
|
||||||
return Handle;
|
return Handle;
|
||||||
}
|
}
|
||||||
|
|
||||||
HWND
|
HWND STDCALL
|
||||||
STDCALL
|
CreateWindowExW(DWORD dwExStyle,
|
||||||
CreateWindowExW(
|
|
||||||
DWORD dwExStyle,
|
|
||||||
LPCWSTR lpClassName,
|
LPCWSTR lpClassName,
|
||||||
LPCWSTR lpWindowName,
|
LPCWSTR lpWindowName,
|
||||||
DWORD dwStyle,
|
DWORD dwStyle,
|
||||||
|
@ -198,17 +182,19 @@ CreateWindowExW(
|
||||||
UNICODE_STRING ClassName;
|
UNICODE_STRING ClassName;
|
||||||
HANDLE Handle;
|
HANDLE Handle;
|
||||||
|
|
||||||
if (IS_ATOM(lpClassName)) {
|
if (IS_ATOM(lpClassName))
|
||||||
|
{
|
||||||
RtlInitUnicodeString(&ClassName, NULL);
|
RtlInitUnicodeString(&ClassName, NULL);
|
||||||
ClassName.Buffer = (LPWSTR)lpClassName;
|
ClassName.Buffer = (LPWSTR)lpClassName;
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
RtlInitUnicodeString(&ClassName, lpClassName);
|
RtlInitUnicodeString(&ClassName, lpClassName);
|
||||||
}
|
}
|
||||||
|
|
||||||
RtlInitUnicodeString(&WindowName, lpWindowName);
|
RtlInitUnicodeString(&WindowName, lpWindowName);
|
||||||
|
|
||||||
Handle = NtUserCreateWindowEx(
|
Handle = NtUserCreateWindowEx(dwExStyle,
|
||||||
dwExStyle,
|
|
||||||
&ClassName,
|
&ClassName,
|
||||||
&WindowName,
|
&WindowName,
|
||||||
dwStyle,
|
dwStyle,
|
||||||
|
@ -225,10 +211,8 @@ CreateWindowExW(
|
||||||
return (HWND)Handle;
|
return (HWND)Handle;
|
||||||
}
|
}
|
||||||
|
|
||||||
HDWP
|
HDWP STDCALL
|
||||||
STDCALL
|
DeferWindowPos(HDWP hWinPosInfo,
|
||||||
DeferWindowPos(
|
|
||||||
HDWP hWinPosInfo,
|
|
||||||
HWND hWnd,
|
HWND hWnd,
|
||||||
HWND hWndInsertAfter,
|
HWND hWndInsertAfter,
|
||||||
int x,
|
int x,
|
||||||
|
@ -240,87 +224,42 @@ DeferWindowPos(
|
||||||
return (HDWP)0;
|
return (HDWP)0;
|
||||||
}
|
}
|
||||||
|
|
||||||
LRESULT
|
WINBOOL STDCALL
|
||||||
STDCALL
|
DestroyWindow(HWND hWnd)
|
||||||
DefWindowProcA(
|
|
||||||
HWND hWnd,
|
|
||||||
UINT Msg,
|
|
||||||
WPARAM wParam,
|
|
||||||
LPARAM lParam)
|
|
||||||
{
|
|
||||||
switch (Msg)
|
|
||||||
{
|
|
||||||
case WM_CREATE:
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
case WM_DESTROY:
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
default:
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
LRESULT
|
|
||||||
STDCALL
|
|
||||||
DefWindowProcW(
|
|
||||||
HWND hWnd,
|
|
||||||
UINT Msg,
|
|
||||||
WPARAM wParam,
|
|
||||||
LPARAM lParam)
|
|
||||||
{
|
|
||||||
return (LRESULT)0;
|
|
||||||
}
|
|
||||||
|
|
||||||
WINBOOL
|
|
||||||
STDCALL
|
|
||||||
DestroyWindow(
|
|
||||||
HWND hWnd)
|
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
EndDeferWindowPos(HDWP hWinPosInfo)
|
||||||
EndDeferWindowPos(
|
|
||||||
HDWP hWinPosInfo)
|
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
EnumChildWindows(HWND hWndParent,
|
||||||
EnumChildWindows(
|
|
||||||
HWND hWndParent,
|
|
||||||
ENUMWINDOWSPROC lpEnumFunc,
|
ENUMWINDOWSPROC lpEnumFunc,
|
||||||
LPARAM lParam)
|
LPARAM lParam)
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
EnumThreadWindows(DWORD dwThreadId,
|
||||||
EnumThreadWindows(
|
|
||||||
DWORD dwThreadId,
|
|
||||||
ENUMWINDOWSPROC lpfn,
|
ENUMWINDOWSPROC lpfn,
|
||||||
LPARAM lParam)
|
LPARAM lParam)
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
EnumWindows(ENUMWINDOWSPROC lpEnumFunc,
|
||||||
EnumWindows(
|
|
||||||
ENUMWINDOWSPROC lpEnumFunc,
|
|
||||||
LPARAM lParam)
|
LPARAM lParam)
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
HWND
|
HWND STDCALL
|
||||||
STDCALL
|
|
||||||
FindWindowA(LPCSTR lpClassName, LPCSTR lpWindowName)
|
FindWindowA(LPCSTR lpClassName, LPCSTR lpWindowName)
|
||||||
{
|
{
|
||||||
//FIXME: FindWindow does not search children, but FindWindowEx does.
|
//FIXME: FindWindow does not search children, but FindWindowEx does.
|
||||||
|
@ -328,10 +267,8 @@ FindWindowA(LPCSTR lpClassName, LPCSTR lpWindowName)
|
||||||
return FindWindowExA (NULL, NULL, lpClassName, lpWindowName);
|
return FindWindowExA (NULL, NULL, lpClassName, lpWindowName);
|
||||||
}
|
}
|
||||||
|
|
||||||
HWND
|
HWND STDCALL
|
||||||
STDCALL
|
FindWindowExA(HWND hwndParent,
|
||||||
FindWindowExA(
|
|
||||||
HWND hwndParent,
|
|
||||||
HWND hwndChildAfter,
|
HWND hwndChildAfter,
|
||||||
LPCSTR lpszClass,
|
LPCSTR lpszClass,
|
||||||
LPCSTR lpszWindow)
|
LPCSTR lpszWindow)
|
||||||
|
@ -339,8 +276,7 @@ FindWindowExA(
|
||||||
return (HWND)0;
|
return (HWND)0;
|
||||||
}
|
}
|
||||||
|
|
||||||
HWND
|
HWND STDCALL
|
||||||
STDCALL
|
|
||||||
FindWindowW(LPCWSTR lpClassName, LPCWSTR lpWindowName)
|
FindWindowW(LPCWSTR lpClassName, LPCWSTR lpWindowName)
|
||||||
{
|
{
|
||||||
//FIXME: FindWindow does not search children, but FindWindowEx does.
|
//FIXME: FindWindow does not search children, but FindWindowEx does.
|
||||||
|
@ -348,10 +284,8 @@ FindWindowW(LPCWSTR lpClassName, LPCWSTR lpWindowName)
|
||||||
return FindWindowExW (NULL, NULL, lpClassName, lpWindowName);
|
return FindWindowExW (NULL, NULL, lpClassName, lpWindowName);
|
||||||
}
|
}
|
||||||
|
|
||||||
HWND
|
HWND STDCALL
|
||||||
STDCALL
|
FindWindowExW(HWND hwndParent,
|
||||||
FindWindowExW(
|
|
||||||
HWND hwndParent,
|
|
||||||
HWND hwndChildAfter,
|
HWND hwndChildAfter,
|
||||||
LPCWSTR lpszClass,
|
LPCWSTR lpszClass,
|
||||||
LPCWSTR lpszWindow)
|
LPCWSTR lpszWindow)
|
||||||
|
@ -359,10 +293,8 @@ FindWindowExW(
|
||||||
return (HWND)0;
|
return (HWND)0;
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
GetAltTabInfo(HWND hwnd,
|
||||||
GetAltTabInfo(
|
|
||||||
HWND hwnd,
|
|
||||||
int iItem,
|
int iItem,
|
||||||
PALTTABINFO pati,
|
PALTTABINFO pati,
|
||||||
LPTSTR pszItemText,
|
LPTSTR pszItemText,
|
||||||
|
@ -371,10 +303,8 @@ GetAltTabInfo(
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
GetAltTabInfoA(HWND hwnd,
|
||||||
GetAltTabInfoA(
|
|
||||||
HWND hwnd,
|
|
||||||
int iItem,
|
int iItem,
|
||||||
PALTTABINFO pati,
|
PALTTABINFO pati,
|
||||||
LPSTR pszItemText,
|
LPSTR pszItemText,
|
||||||
|
@ -383,10 +313,8 @@ GetAltTabInfoA(
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
GetAltTabInfoW(HWND hwnd,
|
||||||
GetAltTabInfoW(
|
|
||||||
HWND hwnd,
|
|
||||||
int iItem,
|
int iItem,
|
||||||
PALTTABINFO pati,
|
PALTTABINFO pati,
|
||||||
LPWSTR pszItemText,
|
LPWSTR pszItemText,
|
||||||
|
@ -395,260 +323,202 @@ GetAltTabInfoW(
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
HWND
|
HWND STDCALL
|
||||||
STDCALL
|
GetAncestor(HWND hwnd,
|
||||||
GetAncestor(
|
|
||||||
HWND hwnd,
|
|
||||||
UINT gaFlags)
|
UINT gaFlags)
|
||||||
{
|
{
|
||||||
return (HWND)0;
|
return (HWND)0;
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
GetClientRect(HWND hWnd,
|
||||||
GetClientRect(
|
|
||||||
HWND hWnd,
|
|
||||||
LPRECT lpRect)
|
LPRECT lpRect)
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
HWND
|
HWND STDCALL
|
||||||
STDCALL
|
|
||||||
GetDesktopWindow(VOID)
|
GetDesktopWindow(VOID)
|
||||||
{
|
{
|
||||||
return (HWND)0;
|
return (HWND)0;
|
||||||
}
|
}
|
||||||
|
|
||||||
HWND
|
HWND STDCALL
|
||||||
STDCALL
|
|
||||||
GetForegroundWindow(VOID)
|
GetForegroundWindow(VOID)
|
||||||
{
|
{
|
||||||
return (HWND)0;
|
return (HWND)0;
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
GetGUIThreadInfo(DWORD idThread,
|
||||||
GetGUIThreadInfo(
|
|
||||||
DWORD idThread,
|
|
||||||
LPGUITHREADINFO lpgui)
|
LPGUITHREADINFO lpgui)
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
HWND
|
HWND STDCALL
|
||||||
STDCALL
|
GetLastActivePopup(HWND hWnd)
|
||||||
GetLastActivePopup(
|
|
||||||
HWND hWnd)
|
|
||||||
{
|
{
|
||||||
return (HWND)0;
|
return (HWND)0;
|
||||||
}
|
}
|
||||||
|
|
||||||
HWND
|
HWND STDCALL
|
||||||
STDCALL
|
GetParent(HWND hWnd)
|
||||||
GetParent(
|
|
||||||
HWND hWnd)
|
|
||||||
{
|
{
|
||||||
return (HWND)0;
|
return (HWND)0;
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
GetProcessDefaultLayout(DWORD *pdwDefaultLayout)
|
||||||
GetProcessDefaultLayout(
|
|
||||||
DWORD *pdwDefaultLayout)
|
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
GetTitleBarInfo(HWND hwnd,
|
||||||
GetTitleBarInfo(
|
|
||||||
HWND hwnd,
|
|
||||||
PTITLEBARINFO pti)
|
PTITLEBARINFO pti)
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
HWND
|
HWND STDCALL
|
||||||
STDCALL
|
GetTopWindow(HWND hWnd)
|
||||||
GetTopWindow(
|
|
||||||
HWND hWnd)
|
|
||||||
{
|
{
|
||||||
return (HWND)0;
|
return (HWND)0;
|
||||||
}
|
}
|
||||||
|
|
||||||
HWND
|
HWND STDCALL
|
||||||
STDCALL
|
GetWindow(HWND hWnd,
|
||||||
GetWindow(
|
|
||||||
HWND hWnd,
|
|
||||||
UINT uCmd)
|
UINT uCmd)
|
||||||
{
|
{
|
||||||
return (HWND)0;
|
return (HWND)0;
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
GetWindowInfo(HWND hwnd,
|
||||||
GetWindowInfo(
|
|
||||||
HWND hwnd,
|
|
||||||
PWINDOWINFO pwi)
|
PWINDOWINFO pwi)
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
UINT
|
UINT STDCALL
|
||||||
STDCALL
|
GetWindowModuleFileName(HWND hwnd,
|
||||||
GetWindowModuleFileName(
|
|
||||||
HWND hwnd,
|
|
||||||
LPSTR lpszFileName,
|
LPSTR lpszFileName,
|
||||||
UINT cchFileNameMax)
|
UINT cchFileNameMax)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
UINT
|
UINT STDCALL
|
||||||
STDCALL
|
GetWindowModuleFileNameA(HWND hwnd,
|
||||||
GetWindowModuleFileNameA(
|
|
||||||
HWND hwnd,
|
|
||||||
LPSTR lpszFileName,
|
LPSTR lpszFileName,
|
||||||
UINT cchFileNameMax)
|
UINT cchFileNameMax)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
UINT
|
UINT STDCALL
|
||||||
STDCALL
|
GetWindowModuleFileNameW(HWND hwnd,
|
||||||
GetWindowModuleFileNameW(
|
|
||||||
HWND hwnd,
|
|
||||||
LPWSTR lpszFileName,
|
LPWSTR lpszFileName,
|
||||||
UINT cchFileNameMax)
|
UINT cchFileNameMax)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
GetWindowPlacement(HWND hWnd,
|
||||||
GetWindowPlacement(
|
|
||||||
HWND hWnd,
|
|
||||||
WINDOWPLACEMENT *lpwndpl)
|
WINDOWPLACEMENT *lpwndpl)
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
GetWindowRect(HWND hWnd,
|
||||||
GetWindowRect(
|
|
||||||
HWND hWnd,
|
|
||||||
LPRECT lpRect)
|
LPRECT lpRect)
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int STDCALL
|
||||||
STDCALL
|
GetWindowTextA(HWND hWnd,
|
||||||
GetWindowTextA(
|
|
||||||
HWND hWnd,
|
|
||||||
LPSTR lpString,
|
LPSTR lpString,
|
||||||
int nMaxCount)
|
int nMaxCount)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int STDCALL
|
||||||
STDCALL
|
GetWindowTextLengthA(HWND hWnd)
|
||||||
GetWindowTextLengthA(
|
|
||||||
HWND hWnd)
|
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int STDCALL
|
||||||
STDCALL
|
GetWindowTextLengthW(HWND hWnd)
|
||||||
GetWindowTextLengthW(
|
|
||||||
HWND hWnd)
|
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int STDCALL
|
||||||
STDCALL
|
GetWindowTextW(HWND hWnd,
|
||||||
GetWindowTextW(
|
|
||||||
HWND hWnd,
|
|
||||||
LPWSTR lpString,
|
LPWSTR lpString,
|
||||||
int nMaxCount)
|
int nMaxCount)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
DWORD
|
DWORD STDCALL
|
||||||
STDCALL
|
GetWindowThreadProcessId(HWND hWnd,
|
||||||
GetWindowThreadProcessId(
|
|
||||||
HWND hWnd,
|
|
||||||
LPDWORD lpdwProcessId)
|
LPDWORD lpdwProcessId)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
IsChild(HWND hWndParent,
|
||||||
IsChild(
|
|
||||||
HWND hWndParent,
|
|
||||||
HWND hWnd)
|
HWND hWnd)
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
IsIconic(HWND hWnd)
|
||||||
IsIconic(
|
|
||||||
HWND hWnd)
|
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
IsWindow(HWND hWnd)
|
||||||
IsWindow(
|
|
||||||
HWND hWnd)
|
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
IsWindowUnicode(HWND hWnd)
|
||||||
IsWindowUnicode(
|
|
||||||
HWND hWnd)
|
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
IsWindowVisible(HWND hWnd)
|
||||||
IsWindowVisible(
|
|
||||||
HWND hWnd)
|
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
IsZoomed(HWND hWnd)
|
||||||
IsZoomed(
|
|
||||||
HWND hWnd)
|
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
LockSetForegroundWindow(UINT uLockCode)
|
||||||
LockSetForegroundWindow(
|
|
||||||
UINT uLockCode)
|
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
MoveWindow(HWND hWnd,
|
||||||
MoveWindow(
|
|
||||||
HWND hWnd,
|
|
||||||
int X,
|
int X,
|
||||||
int Y,
|
int Y,
|
||||||
int nWidth,
|
int nWidth,
|
||||||
|
@ -658,44 +528,35 @@ MoveWindow(
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
OpenIcon(HWND hWnd)
|
||||||
OpenIcon(
|
|
||||||
HWND hWnd)
|
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
HWND
|
HWND STDCALL
|
||||||
STDCALL
|
RealChildWindowFromPoint(HWND hwndParent,
|
||||||
RealChildWindowFromPoint(
|
|
||||||
HWND hwndParent,
|
|
||||||
POINT ptParentClientCoords)
|
POINT ptParentClientCoords)
|
||||||
{
|
{
|
||||||
return (HWND)0;
|
return (HWND)0;
|
||||||
}
|
}
|
||||||
|
|
||||||
UINT
|
UINT
|
||||||
RealGetWindowClass(
|
RealGetWindowClass(HWND hwnd,
|
||||||
HWND hwnd,
|
|
||||||
LPTSTR pszType,
|
LPTSTR pszType,
|
||||||
UINT cchType)
|
UINT cchType)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
SetForegroundWindow(HWND hWnd)
|
||||||
SetForegroundWindow(
|
|
||||||
HWND hWnd)
|
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
SetLayeredWindowAttributes(HWND hwnd,
|
||||||
SetLayeredWindowAttributes(
|
|
||||||
HWND hwnd,
|
|
||||||
COLORREF crKey,
|
COLORREF crKey,
|
||||||
BYTE bAlpha,
|
BYTE bAlpha,
|
||||||
DWORD dwFlags)
|
DWORD dwFlags)
|
||||||
|
@ -703,36 +564,28 @@ SetLayeredWindowAttributes(
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
HWND
|
HWND STDCALL
|
||||||
STDCALL
|
SetParent(HWND hWndChild,
|
||||||
SetParent(
|
|
||||||
HWND hWndChild,
|
|
||||||
HWND hWndNewParent)
|
HWND hWndNewParent)
|
||||||
{
|
{
|
||||||
return (HWND)0;
|
return (HWND)0;
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
SetProcessDefaultLayout(DWORD dwDefaultLayout)
|
||||||
SetProcessDefaultLayout(
|
|
||||||
DWORD dwDefaultLayout)
|
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
SetWindowPlacement(HWND hWnd,
|
||||||
SetWindowPlacement(
|
|
||||||
HWND hWnd,
|
|
||||||
CONST WINDOWPLACEMENT *lpwndpl)
|
CONST WINDOWPLACEMENT *lpwndpl)
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
SetWindowPos(HWND hWnd,
|
||||||
SetWindowPos(
|
|
||||||
HWND hWnd,
|
|
||||||
HWND hWndInsertAfter,
|
HWND hWndInsertAfter,
|
||||||
int X,
|
int X,
|
||||||
int Y,
|
int Y,
|
||||||
|
@ -743,55 +596,43 @@ SetWindowPos(
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
SetWindowTextA(HWND hWnd,
|
||||||
SetWindowTextA(
|
|
||||||
HWND hWnd,
|
|
||||||
LPCSTR lpString)
|
LPCSTR lpString)
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
SetWindowTextW(HWND hWnd,
|
||||||
SetWindowTextW(
|
|
||||||
HWND hWnd,
|
|
||||||
LPCWSTR lpString)
|
LPCWSTR lpString)
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
ShowOwnedPopups(HWND hWnd,
|
||||||
ShowOwnedPopups(
|
|
||||||
HWND hWnd,
|
|
||||||
WINBOOL fShow)
|
WINBOOL fShow)
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
ShowWindow(HWND hWnd,
|
||||||
ShowWindow(
|
|
||||||
HWND hWnd,
|
|
||||||
int nCmdShow)
|
int nCmdShow)
|
||||||
{
|
{
|
||||||
return NtUserShowWindow(hWnd, nCmdShow);
|
return NtUserShowWindow(hWnd, nCmdShow);
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
ShowWindowAsync(HWND hWnd,
|
||||||
ShowWindowAsync(
|
|
||||||
HWND hWnd,
|
|
||||||
int nCmdShow)
|
int nCmdShow)
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
WORD
|
WORD STDCALL
|
||||||
STDCALL
|
TileWindows(HWND hwndParent,
|
||||||
TileWindows(
|
|
||||||
HWND hwndParent,
|
|
||||||
UINT wHow,
|
UINT wHow,
|
||||||
CONST RECT *lpRect,
|
CONST RECT *lpRect,
|
||||||
UINT cKids,
|
UINT cKids,
|
||||||
|
@ -800,10 +641,8 @@ TileWindows(
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL
|
WINBOOL STDCALL
|
||||||
STDCALL
|
UpdateLayeredWindow(HWND hwnd,
|
||||||
UpdateLayeredWindow(
|
|
||||||
HWND hwnd,
|
|
||||||
HDC hdcDst,
|
HDC hdcDst,
|
||||||
POINT *pptDst,
|
POINT *pptDst,
|
||||||
SIZE *psize,
|
SIZE *psize,
|
||||||
|
@ -816,10 +655,8 @@ UpdateLayeredWindow(
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
HWND
|
HWND STDCALL
|
||||||
STDCALL
|
WindowFromPoint(POINT Point)
|
||||||
WindowFromPoint(
|
|
||||||
POINT Point)
|
|
||||||
{
|
{
|
||||||
return (HWND)0;
|
return (HWND)0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
; $Id: ntoskrnl.def,v 1.124 2002/01/13 22:02:30 ea Exp $
|
; $Id: ntoskrnl.def,v 1.125 2002/01/13 22:52:07 dwelch Exp $
|
||||||
;
|
;
|
||||||
; reactos/ntoskrnl/ntoskrnl.def
|
; reactos/ntoskrnl/ntoskrnl.def
|
||||||
;
|
;
|
||||||
|
@ -503,6 +503,7 @@ NlsMbOemCodePageTag DATA
|
||||||
NlsOemLeadByteInfo DATA
|
NlsOemLeadByteInfo DATA
|
||||||
NtAddAtom@8
|
NtAddAtom@8
|
||||||
NtAdjustPrivilegesToken@24
|
NtAdjustPrivilegesToken@24
|
||||||
|
NtAlertThread@4
|
||||||
NtAllocateLocallyUniqueId@4
|
NtAllocateLocallyUniqueId@4
|
||||||
NtAllocateUuids@12
|
NtAllocateUuids@12
|
||||||
NtAllocateVirtualMemory@24
|
NtAllocateVirtualMemory@24
|
||||||
|
@ -593,7 +594,7 @@ PsAssignImpersonationToken@8
|
||||||
PsCreateSystemProcess@12
|
PsCreateSystemProcess@12
|
||||||
PsCreateSystemThread@28
|
PsCreateSystemThread@28
|
||||||
PsCreateWin32Process@4
|
PsCreateWin32Process@4
|
||||||
PsDispatchThread@4
|
PsGetWin32Thread@0
|
||||||
PsEstablishWin32Callouts@24
|
PsEstablishWin32Callouts@24
|
||||||
PsGetCurrentProcessId@0
|
PsGetCurrentProcessId@0
|
||||||
PsGetCurrentThreadId@0
|
PsGetCurrentThreadId@0
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
; $Id: ntoskrnl.edf,v 1.110 2002/01/13 22:02:30 ea Exp $
|
; $Id: ntoskrnl.edf,v 1.111 2002/01/13 22:52:07 dwelch Exp $
|
||||||
;
|
;
|
||||||
; reactos/ntoskrnl/ntoskrnl.def
|
; reactos/ntoskrnl/ntoskrnl.def
|
||||||
;
|
;
|
||||||
|
@ -503,6 +503,7 @@ NlsMbOemCodePageTag DATA
|
||||||
NlsOemLeadByteInfo DATA
|
NlsOemLeadByteInfo DATA
|
||||||
NtAddAtom=NtAddAtom@8
|
NtAddAtom=NtAddAtom@8
|
||||||
NtAdjustPrivilegesToken=NtAdjustPrivilegesToken@24
|
NtAdjustPrivilegesToken=NtAdjustPrivilegesToken@24
|
||||||
|
NtAlertThread=NtAlertThread@4
|
||||||
NtAllocateLocallyUniqueId=NtAllocateLocallyUniqueId@4
|
NtAllocateLocallyUniqueId=NtAllocateLocallyUniqueId@4
|
||||||
NtAllocateUuids=NtAllocateUuids@12
|
NtAllocateUuids=NtAllocateUuids@12
|
||||||
NtAllocateVirtualMemory=NtAllocateVirtualMemory@24
|
NtAllocateVirtualMemory=NtAllocateVirtualMemory@24
|
||||||
|
@ -593,7 +594,7 @@ PsAssignImpersonationToken=PsAssignImpersonationToken@8
|
||||||
PsCreateSystemProcess=PsCreateSystemProcess@12
|
PsCreateSystemProcess=PsCreateSystemProcess@12
|
||||||
PsCreateSystemThread=PsCreateSystemThread@28
|
PsCreateSystemThread=PsCreateSystemThread@28
|
||||||
PsCreateWin32Process=PsCreateWin32Process@4
|
PsCreateWin32Process=PsCreateWin32Process@4
|
||||||
PsDispatchThread=PsDispatchThread@4
|
PsGetWin32Thread=PsGetWin32Thread@0
|
||||||
PsEstablishWin32Callouts=PsEstablishWin32Callouts@24
|
PsEstablishWin32Callouts=PsEstablishWin32Callouts@24
|
||||||
PsGetCurrentProcessId=PsGetCurrentProcessId@0
|
PsGetCurrentProcessId=PsGetCurrentProcessId@0
|
||||||
PsGetCurrentThreadId=PsGetCurrentThreadId@0
|
PsGetCurrentThreadId=PsGetCurrentThreadId@0
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $Id: thread.c,v 1.83 2002/01/08 00:49:01 dwelch Exp $
|
/* $Id: thread.c,v 1.84 2002/01/13 22:52:07 dwelch Exp $
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS kernel
|
* PROJECT: ReactOS kernel
|
||||||
|
@ -462,7 +462,6 @@ NtAlertResumeThread(IN HANDLE ThreadHandle,
|
||||||
|
|
||||||
NTSTATUS STDCALL NtAlertThread (IN HANDLE ThreadHandle)
|
NTSTATUS STDCALL NtAlertThread (IN HANDLE ThreadHandle)
|
||||||
{
|
{
|
||||||
#if 0
|
|
||||||
PETHREAD Thread;
|
PETHREAD Thread;
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
NTSTATUS ThreadStatus;
|
NTSTATUS ThreadStatus;
|
||||||
|
@ -483,8 +482,6 @@ NTSTATUS STDCALL NtAlertThread (IN HANDLE ThreadHandle)
|
||||||
|
|
||||||
ObDereferenceObject(Thread);
|
ObDereferenceObject(Thread);
|
||||||
return(STATUS_SUCCESS);
|
return(STATUS_SUCCESS);
|
||||||
#endif
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS STDCALL
|
NTSTATUS STDCALL
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
* along with this program; if not, write to the Free Software
|
* along with this program; if not, write to the Free Software
|
||||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
*/
|
*/
|
||||||
/* $Id: win32.c,v 1.1 2002/01/04 13:09:11 ekohl Exp $
|
/* $Id: win32.c,v 1.2 2002/01/13 22:52:07 dwelch Exp $
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS kernel
|
* PROJECT: ReactOS kernel
|
||||||
|
@ -38,9 +38,14 @@
|
||||||
|
|
||||||
static ULONG PspWin32ProcessSize = 0;
|
static ULONG PspWin32ProcessSize = 0;
|
||||||
|
|
||||||
|
|
||||||
/* FUNCTIONS ***************************************************************/
|
/* FUNCTIONS ***************************************************************/
|
||||||
|
|
||||||
|
PW32THREAD STDCALL
|
||||||
|
PsGetWin32Thread(VOID)
|
||||||
|
{
|
||||||
|
return(PsGetCurrentThread()->Win32Thread);
|
||||||
|
}
|
||||||
|
|
||||||
NTSTATUS STDCALL
|
NTSTATUS STDCALL
|
||||||
PsCreateWin32Process(PEPROCESS Process)
|
PsCreateWin32Process(PEPROCESS Process)
|
||||||
{
|
{
|
||||||
|
|
|
@ -10,8 +10,17 @@ PFN_DIB_PutPixel DIB_4BPP_PutPixel(PSURFOBJ SurfObj, LONG x, LONG y, ULONG c);
|
||||||
PFN_DIB_GetPixel DIB_4BPP_GetPixel(PSURFOBJ SurfObj, LONG x, LONG y);
|
PFN_DIB_GetPixel DIB_4BPP_GetPixel(PSURFOBJ SurfObj, LONG x, LONG y);
|
||||||
PFN_DIB_HLine DIB_4BPP_HLine(PSURFOBJ SurfObj, LONG x1, LONG x2, LONG y, ULONG c);
|
PFN_DIB_HLine DIB_4BPP_HLine(PSURFOBJ SurfObj, LONG x1, LONG x2, LONG y, ULONG c);
|
||||||
PFN_DIB_VLine DIB_4BPP_VLine(PSURFOBJ SurfObj, LONG x, LONG y1, LONG y2, ULONG c);
|
PFN_DIB_VLine DIB_4BPP_VLine(PSURFOBJ SurfObj, LONG x, LONG y1, LONG y2, ULONG c);
|
||||||
|
BOOLEAN DIB_To_4BPP_Bitblt( SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
||||||
|
SURFGDI *DestGDI, SURFGDI *SourceGDI,
|
||||||
|
PRECTL DestRect, POINTL *SourcePoint,
|
||||||
|
ULONG Delta, XLATEOBJ *ColorTranslation);
|
||||||
|
|
||||||
PFN_DIB_PutPixel DIB_24BPP_PutPixel(PSURFOBJ SurfObj, LONG x, LONG y, ULONG c);
|
PFN_DIB_PutPixel DIB_24BPP_PutPixel(PSURFOBJ SurfObj, LONG x, LONG y, ULONG c);
|
||||||
PFN_DIB_GetPixel DIB_24BPP_GetPixel(PSURFOBJ SurfObj, LONG x, LONG y);
|
PFN_DIB_GetPixel DIB_24BPP_GetPixel(PSURFOBJ SurfObj, LONG x, LONG y);
|
||||||
PFN_DIB_HLine DIB_24BPP_HLine(PSURFOBJ SurfObj, LONG x1, LONG x2, LONG y, ULONG c);
|
PFN_DIB_HLine DIB_24BPP_HLine(PSURFOBJ SurfObj, LONG x1, LONG x2, LONG y, ULONG c);
|
||||||
PFN_DIB_VLine DIB_24BPP_VLine(PSURFOBJ SurfObj, LONG x, LONG y1, LONG y2, ULONG c);
|
PFN_DIB_VLine DIB_24BPP_VLine(PSURFOBJ SurfObj, LONG x, LONG y1, LONG y2, ULONG
|
||||||
|
c);
|
||||||
|
BOOLEAN DIB_To_24BPP_Bitblt( SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
||||||
|
SURFGDI *DestGDI, SURFGDI *SourceGDI,
|
||||||
|
PRECTL DestRect, POINTL *SourcePoint,
|
||||||
|
ULONG Delta, XLATEOBJ *ColorTranslation);
|
||||||
|
|
|
@ -14,6 +14,11 @@
|
||||||
#include "brush.h"
|
#include "brush.h"
|
||||||
#include "enum.h"
|
#include "enum.h"
|
||||||
#include "objects.h"
|
#include "objects.h"
|
||||||
|
#include <include/mouse.h>
|
||||||
|
#include <include/object.h>
|
||||||
|
#include <include/dib.h>
|
||||||
|
#include <include/surface.h>
|
||||||
|
#include <include/copybits.h>
|
||||||
|
|
||||||
BOOL EngIntersectRect(PRECTL prcDst, PRECTL prcSrc1, PRECTL prcSrc2)
|
BOOL EngIntersectRect(PRECTL prcDst, PRECTL prcSrc1, PRECTL prcSrc2)
|
||||||
{
|
{
|
||||||
|
@ -96,7 +101,7 @@ BOOL EngBitBlt(SURFOBJ *Dest, SURFOBJ *Source,
|
||||||
hTemp = EngCreateBitmap(TempSize,
|
hTemp = EngCreateBitmap(TempSize,
|
||||||
DIB_GetDIBWidthBytes(DestRect->right - DestRect->left, BitsPerFormat(Dest->iBitmapFormat)),
|
DIB_GetDIBWidthBytes(DestRect->right - DestRect->left, BitsPerFormat(Dest->iBitmapFormat)),
|
||||||
Dest->iBitmapFormat, 0, NULL);
|
Dest->iBitmapFormat, 0, NULL);
|
||||||
TempSurf = (PSURFOBJ)AccessUserObject(hTemp);
|
TempSurf = (PSURFOBJ)AccessUserObject((ULONG)hTemp);
|
||||||
|
|
||||||
// FIXME: Skip creating a TempSurf if we have the same BPP and palette
|
// FIXME: Skip creating a TempSurf if we have the same BPP and palette
|
||||||
EngBitBlt(TempSurf, Source, NULL, NULL, ColorTranslation, &TempRect, SourcePoint, NULL, NULL, NULL, 0);
|
EngBitBlt(TempSurf, Source, NULL, NULL, ColorTranslation, &TempRect, SourcePoint, NULL, NULL, NULL, 0);
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
#include <ddk/ntddk.h>
|
#include <ddk/ntddk.h>
|
||||||
#include "objects.h"
|
#include "objects.h"
|
||||||
#include "clip.h"
|
#include "clip.h"
|
||||||
|
#include <include/object.h>
|
||||||
|
|
||||||
// FIXME: Complex clipping doesn't work
|
// FIXME: Complex clipping doesn't work
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,9 @@
|
||||||
#include "objects.h"
|
#include "objects.h"
|
||||||
#include "enum.h"
|
#include "enum.h"
|
||||||
#include "../dib/dib.h"
|
#include "../dib/dib.h"
|
||||||
|
#include <include/mouse.h>
|
||||||
|
#include <include/object.h>
|
||||||
|
#include <include/eng.h>
|
||||||
|
|
||||||
BOOLEAN CopyBitsCopy(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
BOOLEAN CopyBitsCopy(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
|
||||||
SURFGDI *DestGDI, SURFGDI *SourceGDI,
|
SURFGDI *DestGDI, SURFGDI *SourceGDI,
|
||||||
|
@ -108,7 +111,7 @@ BOOL EngCopyBits(SURFOBJ *Dest, SURFOBJ *Source,
|
||||||
// If CopyBits wasn't hooked, BitBlt must be
|
// If CopyBits wasn't hooked, BitBlt must be
|
||||||
ret = EngBitBlt(Dest, Source,
|
ret = EngBitBlt(Dest, Source,
|
||||||
NULL, Clip, ColorTranslation, DestRect, SourcePoint,
|
NULL, Clip, ColorTranslation, DestRect, SourcePoint,
|
||||||
NULL, NULL, NULL, NULL);
|
NULL, NULL, NULL, 0);
|
||||||
|
|
||||||
MouseSafetyOnDrawEnd(Source, SourceGDI);
|
MouseSafetyOnDrawEnd(Source, SourceGDI);
|
||||||
MouseSafetyOnDrawEnd(Dest, DestGDI);
|
MouseSafetyOnDrawEnd(Dest, DestGDI);
|
||||||
|
|
|
@ -15,7 +15,8 @@
|
||||||
|
|
||||||
BOOL FillSolid(SURFOBJ *Surface, PRECTL Dimensions, ULONG iColor)
|
BOOL FillSolid(SURFOBJ *Surface, PRECTL Dimensions, ULONG iColor)
|
||||||
{
|
{
|
||||||
ULONG x, y, LineWidth, leftOfBitmap;
|
LONG y;
|
||||||
|
ULONG x, LineWidth, leftOfBitmap;
|
||||||
SURFGDI *SurfaceGDI;
|
SURFGDI *SurfaceGDI;
|
||||||
|
|
||||||
SurfaceGDI = (SURFGDI*)AccessInternalObjectFromUserObject(Surface);
|
SurfaceGDI = (SURFGDI*)AccessInternalObjectFromUserObject(Surface);
|
||||||
|
|
|
@ -38,7 +38,7 @@ HPALETTE EngCreatePalette(ULONG Mode,
|
||||||
if(Mode==PAL_INDEXED)
|
if(Mode==PAL_INDEXED)
|
||||||
{
|
{
|
||||||
PalGDI->NumColors = NumColors;
|
PalGDI->NumColors = NumColors;
|
||||||
PalGDI->IndexedColors = Colors;
|
PalGDI->IndexedColors = (PULONG)Colors;
|
||||||
} else
|
} else
|
||||||
if(Mode==PAL_BITFIELDS)
|
if(Mode==PAL_BITFIELDS)
|
||||||
{
|
{
|
||||||
|
|
|
@ -177,7 +177,7 @@ BOOL EngAssociateSurface(HSURF Surface, HDEV Dev, ULONG Hooks)
|
||||||
// Hook up specified functions
|
// Hook up specified functions
|
||||||
if(Hooks & HOOK_BITBLT) SurfGDI->BitBlt = Dc->DriverFunctions.BitBlt;
|
if(Hooks & HOOK_BITBLT) SurfGDI->BitBlt = Dc->DriverFunctions.BitBlt;
|
||||||
if(Hooks & HOOK_TRANSPARENTBLT) SurfGDI->TransparentBlt = Dc->DriverFunctions.TransparentBlt;
|
if(Hooks & HOOK_TRANSPARENTBLT) SurfGDI->TransparentBlt = Dc->DriverFunctions.TransparentBlt;
|
||||||
if(Hooks & HOOK_STRETCHBLT) SurfGDI->StretchBlt = Dc->DriverFunctions.StretchBlt;
|
if(Hooks & HOOK_STRETCHBLT) SurfGDI->StretchBlt = (PFN_StretchBlt)Dc->DriverFunctions.StretchBlt;
|
||||||
if(Hooks & HOOK_TEXTOUT) SurfGDI->TextOut = Dc->DriverFunctions.TextOut;
|
if(Hooks & HOOK_TEXTOUT) SurfGDI->TextOut = Dc->DriverFunctions.TextOut;
|
||||||
if(Hooks & HOOK_PAINT) SurfGDI->Paint = Dc->DriverFunctions.Paint;
|
if(Hooks & HOOK_PAINT) SurfGDI->Paint = Dc->DriverFunctions.Paint;
|
||||||
if(Hooks & HOOK_STROKEPATH) SurfGDI->StrokePath = Dc->DriverFunctions.StrokePath;
|
if(Hooks & HOOK_STROKEPATH) SurfGDI->StrokePath = Dc->DriverFunctions.StrokePath;
|
||||||
|
@ -191,7 +191,7 @@ BOOL EngAssociateSurface(HSURF Surface, HDEV Dev, ULONG Hooks)
|
||||||
SurfGDI->CreateDeviceBitmap = Dc->DriverFunctions.CreateDeviceBitmap;
|
SurfGDI->CreateDeviceBitmap = Dc->DriverFunctions.CreateDeviceBitmap;
|
||||||
SurfGDI->SetPalette = Dc->DriverFunctions.SetPalette;
|
SurfGDI->SetPalette = Dc->DriverFunctions.SetPalette;
|
||||||
SurfGDI->MovePointer = Dc->DriverFunctions.MovePointer;
|
SurfGDI->MovePointer = Dc->DriverFunctions.MovePointer;
|
||||||
SurfGDI->SetPointerShape = Dc->DriverFunctions.SetPointerShape;
|
SurfGDI->SetPointerShape = (PFN_SetPointerShape)Dc->DriverFunctions.SetPointerShape;
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
#include <ddk/ntddk.h>
|
#include <ddk/ntddk.h>
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
GuiCheck(VOID);
|
W32kGuiCheck(VOID);
|
||||||
|
|
||||||
#endif /* __WIN32K_GUICHECK_H */
|
#endif /* __WIN32K_GUICHECK_H */
|
||||||
|
|
||||||
|
|
|
@ -11,48 +11,51 @@ typedef struct _USER_MESSAGE
|
||||||
|
|
||||||
typedef struct _USER_MESSAGE_QUEUE
|
typedef struct _USER_MESSAGE_QUEUE
|
||||||
{
|
{
|
||||||
LIST_ENTRY ListHead;
|
LIST_ENTRY SentMessagesListHead;
|
||||||
PFAST_MUTEX ListLock;
|
LIST_ENTRY PostedMessagesListHead;
|
||||||
|
LIST_ENTRY HardwareMessagesListHead;
|
||||||
|
FAST_MUTEX Lock;
|
||||||
|
BOOLEAN QuitPosted;
|
||||||
|
ULONG QuitExitCode;
|
||||||
|
KEVENT NewMessages;
|
||||||
|
ULONG QueueStatus;
|
||||||
|
HWND FocusWindow;
|
||||||
} USER_MESSAGE_QUEUE, *PUSER_MESSAGE_QUEUE;
|
} USER_MESSAGE_QUEUE, *PUSER_MESSAGE_QUEUE;
|
||||||
|
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
MsqInitializeMessage(
|
MsqInitializeMessage(PUSER_MESSAGE Message,
|
||||||
PUSER_MESSAGE Message,
|
|
||||||
LPMSG Msg);
|
LPMSG Msg);
|
||||||
|
|
||||||
PUSER_MESSAGE
|
PUSER_MESSAGE
|
||||||
MsqCreateMessage(
|
MsqCreateMessage(LPMSG Msg);
|
||||||
LPMSG Msg);
|
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
MsqDestroyMessage(
|
MsqDestroyMessage(PUSER_MESSAGE Message);
|
||||||
PUSER_MESSAGE Message);
|
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
MsqPostMessage(
|
MsqPostMessage(PUSER_MESSAGE_QUEUE MessageQueue,
|
||||||
PUSER_MESSAGE_QUEUE MessageQueue,
|
PUSER_MESSAGE Message,
|
||||||
PUSER_MESSAGE Message);
|
BOOLEAN Hardware);
|
||||||
|
BOOLEAN
|
||||||
BOOL
|
MsqFindMessage(IN PUSER_MESSAGE_QUEUE MessageQueue,
|
||||||
MsqRetrieveMessage(
|
IN BOOLEAN Hardware,
|
||||||
PUSER_MESSAGE_QUEUE MessageQueue,
|
IN BOOLEAN Remove,
|
||||||
PUSER_MESSAGE *Message);
|
IN HWND Wnd,
|
||||||
|
IN UINT MsgFilterLow,
|
||||||
|
IN UINT MsgFilterHigh,
|
||||||
|
OUT PUSER_MESSAGE* Message);
|
||||||
VOID
|
VOID
|
||||||
MsqInitializeMessageQueue(
|
MsqInitializeMessageQueue(PUSER_MESSAGE_QUEUE MessageQueue);
|
||||||
PUSER_MESSAGE_QUEUE MessageQueue);
|
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
MsqFreeMessageQueue(
|
MsqFreeMessageQueue(PUSER_MESSAGE_QUEUE MessageQueue);
|
||||||
PUSER_MESSAGE_QUEUE MessageQueue);
|
|
||||||
|
|
||||||
PUSER_MESSAGE_QUEUE
|
PUSER_MESSAGE_QUEUE
|
||||||
MsqCreateMessageQueue(VOID);
|
MsqCreateMessageQueue(VOID);
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
MsqDestroyMessageQueue(
|
MsqDestroyMessageQueue(PUSER_MESSAGE_QUEUE MessageQueue);
|
||||||
PUSER_MESSAGE_QUEUE MessageQueue);
|
PUSER_MESSAGE_QUEUE
|
||||||
|
MsqGetHardwareMessageQueue(VOID);
|
||||||
|
NTSTATUS
|
||||||
|
MsqWaitForNewMessage(PUSER_MESSAGE_QUEUE MessageQueue);
|
||||||
|
NTSTATUS
|
||||||
|
MsqInitializeImpl(VOID);
|
||||||
|
|
||||||
#endif /* __WIN32K_MSGQUEUE_H */
|
#endif /* __WIN32K_MSGQUEUE_H */
|
||||||
|
|
||||||
|
|
|
@ -102,6 +102,13 @@ VOID
|
||||||
ObmDestroyHandleTable(
|
ObmDestroyHandleTable(
|
||||||
PUSER_HANDLE_TABLE HandleTable);
|
PUSER_HANDLE_TABLE HandleTable);
|
||||||
|
|
||||||
|
PVOID AccessInternalObjectFromUserObject(PVOID UserObject);
|
||||||
|
PVOID AccessUserObject(ULONG Handle);
|
||||||
|
ULONG CreateGDIHandle(PVOID InternalObject, PVOID UserObject);
|
||||||
|
VOID FreeGDIHandle(ULONG Handle);
|
||||||
|
ULONG AccessHandleFromUserObject(PVOID UserObject);
|
||||||
|
PVOID AccessInternalObject(ULONG Handle);
|
||||||
|
|
||||||
#endif /* __WIN32K_OBJECT_H */
|
#endif /* __WIN32K_OBJECT_H */
|
||||||
|
|
||||||
/* EOF */
|
/* EOF */
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $Id: dllmain.c,v 1.21 2001/11/02 06:10:11 rex Exp $
|
/* $Id: dllmain.c,v 1.22 2002/01/13 22:52:08 dwelch Exp $
|
||||||
*
|
*
|
||||||
* Entry Point for win32k.sys
|
* Entry Point for win32k.sys
|
||||||
*/
|
*/
|
||||||
|
@ -71,6 +71,20 @@ DllMain (
|
||||||
return STATUS_UNSUCCESSFUL;
|
return STATUS_UNSUCCESSFUL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Status = InitInputImpl();
|
||||||
|
if (!NT_SUCCESS(Status))
|
||||||
|
{
|
||||||
|
DbgPrint("Failed to initialize input implementation.\n");
|
||||||
|
return(Status);
|
||||||
|
}
|
||||||
|
|
||||||
|
Status = MsqInitializeImpl();
|
||||||
|
if (!NT_SUCCESS(Status))
|
||||||
|
{
|
||||||
|
DbgPrint("Failed to initialize message queue implementation.\n");
|
||||||
|
return(Status);
|
||||||
|
}
|
||||||
|
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# $Id: makefile,v 1.40 2001/09/08 12:12:41 jfilby Exp $
|
# $Id: makefile,v 1.41 2002/01/13 22:52:08 dwelch Exp $
|
||||||
|
|
||||||
PATH_TO_TOP = ../..
|
PATH_TO_TOP = ../..
|
||||||
|
|
||||||
|
@ -13,24 +13,26 @@ TARGET_ENTRY = _DllMain@8
|
||||||
# from atheos appserver makefile
|
# from atheos appserver makefile
|
||||||
COPTS = -pipe -O3 -I./freetype/include -c -Wall
|
COPTS = -pipe -O3 -I./freetype/include -c -Wall
|
||||||
|
|
||||||
TARGET_CFLAGS = -I$(PATH_TO_TOP)/ntoskrnl/include -DUNICODE
|
TARGET_CFLAGS = -I$(PATH_TO_TOP)/ntoskrnl/include -DUNICODE -Wall
|
||||||
|
|
||||||
ENG_OBJECTS= eng/debug.o eng/mem.o eng/brush.o eng/bitblt.o eng/clip.o eng/copybits.o \
|
ENG_OBJECTS= eng/debug.o eng/mem.o eng/brush.o eng/bitblt.o eng/clip.o \
|
||||||
eng/device.o eng/handle.o eng/lineto.o eng/paint.o eng/palette.o \
|
eng/copybits.o eng/device.o eng/handle.o eng/lineto.o eng/paint.o \
|
||||||
eng/surface.o eng/xlate.o eng/transblt.o eng/mouse.o
|
eng/palette.o eng/surface.o eng/xlate.o eng/transblt.o eng/mouse.o
|
||||||
MAIN_OBJECTS = main/dllmain.o
|
MAIN_OBJECTS = main/dllmain.o
|
||||||
MISC_OBJECTS = misc/driver.o misc/error.o misc/math.o misc/object.o
|
MISC_OBJECTS = misc/driver.o misc/error.o misc/math.o misc/object.o
|
||||||
LDR_OBJECTS = ldr/loader.o
|
LDR_OBJECTS = ldr/loader.o
|
||||||
NTUSER_OBJECTS = ntuser/class.o ntuser/guicheck.o ntuser/hook.o \
|
NTUSER_OBJECTS = ntuser/class.o ntuser/guicheck.o ntuser/hook.o \
|
||||||
ntuser/message.o ntuser/msgqueue.o ntuser/stubs.o \
|
ntuser/message.o ntuser/msgqueue.o ntuser/stubs.o \
|
||||||
ntuser/userobj.o ntuser/window.o ntuser/winsta.o
|
ntuser/userobj.o ntuser/window.o ntuser/winsta.o \
|
||||||
|
ntuser/input.o
|
||||||
OBJECTS_OBJECTS = objects/bitmaps.o objects/brush.o objects/cliprgn.o \
|
OBJECTS_OBJECTS = objects/bitmaps.o objects/brush.o objects/cliprgn.o \
|
||||||
objects/color.o objects/coord.o objects/dc.o \
|
objects/color.o objects/coord.o objects/dc.o \
|
||||||
objects/fillshap.o objects/gdiobj.o objects/icm.o \
|
objects/fillshap.o objects/gdiobj.o objects/icm.o \
|
||||||
objects/line.o objects/metafile.o objects/paint.o \
|
objects/line.o objects/metafile.o objects/paint.o \
|
||||||
objects/path.o objects/pen.o objects/print.o \
|
objects/path.o objects/pen.o objects/print.o \
|
||||||
objects/region.o objects/text.o objects/wingl.o \
|
objects/region.o objects/text.o objects/wingl.o \
|
||||||
objects/bezier.o objects/objconv.o objects/dib.o objects/palette.o
|
objects/bezier.o objects/objconv.o objects/dib.o \
|
||||||
|
objects/palette.o
|
||||||
DIB_OBJECTS = dib/dib4bpp.o dib/dib24bpp.o
|
DIB_OBJECTS = dib/dib4bpp.o dib/dib24bpp.o
|
||||||
FREETYPE_OBJECTS = freetype/ctype.o freetype/grfont.o \
|
FREETYPE_OBJECTS = freetype/ctype.o freetype/grfont.o \
|
||||||
freetype/src/base/ftsystem.o freetype/src/base/ftdebug.o \
|
freetype/src/base/ftsystem.o freetype/src/base/ftdebug.o \
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $Id: class.c,v 1.2 2001/07/06 00:05:05 rex Exp $
|
/* $Id: class.c,v 1.3 2002/01/13 22:52:08 dwelch Exp $
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS kernel
|
* PROJECT: ReactOS kernel
|
||||||
|
@ -8,6 +8,8 @@
|
||||||
* REVISION HISTORY:
|
* REVISION HISTORY:
|
||||||
* 06-06-2001 CSH Created
|
* 06-06-2001 CSH Created
|
||||||
*/
|
*/
|
||||||
|
/* INCLUDES ******************************************************************/
|
||||||
|
|
||||||
#include <ddk/ntddk.h>
|
#include <ddk/ntddk.h>
|
||||||
#include <win32k/win32k.h>
|
#include <win32k/win32k.h>
|
||||||
#include <win32k/userobj.h>
|
#include <win32k/userobj.h>
|
||||||
|
@ -18,29 +20,32 @@
|
||||||
#define NDEBUG
|
#define NDEBUG
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
|
/* GLOBALS *******************************************************************/
|
||||||
|
|
||||||
/* List of system classes */
|
/* List of system classes */
|
||||||
static LIST_ENTRY SystemClassListHead;
|
static LIST_ENTRY SystemClassListHead;
|
||||||
static FAST_MUTEX SystemClassListLock;
|
static FAST_MUTEX SystemClassListLock;
|
||||||
|
|
||||||
|
/* FUNCTIONS *****************************************************************/
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
InitClassImpl(VOID)
|
InitClassImpl(VOID)
|
||||||
{
|
{
|
||||||
ExInitializeFastMutex(&SystemClassListLock);
|
ExInitializeFastMutex(&SystemClassListLock);
|
||||||
InitializeListHead(&SystemClassListHead);
|
InitializeListHead(&SystemClassListHead);
|
||||||
|
|
||||||
return STATUS_SUCCESS;
|
return(STATUS_SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
CleanupClassImpl(VOID)
|
CleanupClassImpl(VOID)
|
||||||
{
|
{
|
||||||
return STATUS_SUCCESS;
|
return(STATUS_SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
DWORD
|
DWORD
|
||||||
CliFindClassByName(
|
CliFindClassByName(PWNDCLASS_OBJECT* Class,
|
||||||
PWNDCLASS_OBJECT *Class,
|
|
||||||
LPWSTR ClassName,
|
LPWSTR ClassName,
|
||||||
PLIST_ENTRY ListHead)
|
PLIST_ENTRY ListHead)
|
||||||
{
|
{
|
||||||
|
@ -57,19 +62,18 @@ CliFindClassByName(
|
||||||
{
|
{
|
||||||
*Class = Current;
|
*Class = Current;
|
||||||
ExReleaseFastMutexUnsafe (&SystemClassListLock);
|
ExReleaseFastMutexUnsafe (&SystemClassListLock);
|
||||||
return STATUS_SUCCESS;
|
return(STATUS_SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
CurrentEntry = CurrentEntry->Flink;
|
CurrentEntry = CurrentEntry->Flink;
|
||||||
}
|
}
|
||||||
ExReleaseFastMutexUnsafe (&SystemClassListLock);
|
ExReleaseFastMutexUnsafe (&SystemClassListLock);
|
||||||
|
|
||||||
return STATUS_NOT_FOUND;
|
return(STATUS_NOT_FOUND);
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
CliReferenceClassByNameWinSta(
|
CliReferenceClassByNameWinSta(PWINSTATION_OBJECT WinStaObject,
|
||||||
PWINSTATION_OBJECT WinStaObject,
|
|
||||||
PWNDCLASS_OBJECT *Class,
|
PWNDCLASS_OBJECT *Class,
|
||||||
LPWSTR ClassName)
|
LPWSTR ClassName)
|
||||||
{
|
{
|
||||||
|
@ -84,12 +88,11 @@ CliReferenceClassByNameWinSta(
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
return CliFindClassByName(Class, ClassName, &SystemClassListHead);
|
return(CliFindClassByName(Class, ClassName, &SystemClassListHead));
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
ClassReferenceClassByName(
|
ClassReferenceClassByName(PWNDCLASS_OBJECT *Class,
|
||||||
PWNDCLASS_OBJECT *Class,
|
|
||||||
LPWSTR ClassName)
|
LPWSTR ClassName)
|
||||||
{
|
{
|
||||||
PWINSTATION_OBJECT WinStaObject;
|
PWINSTATION_OBJECT WinStaObject;
|
||||||
|
@ -97,11 +100,10 @@ ClassReferenceClassByName(
|
||||||
|
|
||||||
if (!ClassName)
|
if (!ClassName)
|
||||||
{
|
{
|
||||||
return STATUS_INVALID_PARAMETER;
|
return(STATUS_INVALID_PARAMETER);
|
||||||
}
|
}
|
||||||
|
|
||||||
Status = ValidateWindowStationHandle(
|
Status = ValidateWindowStationHandle(PROCESS_WINDOW_STATION(),
|
||||||
PROCESS_WINDOW_STATION(),
|
|
||||||
KernelMode,
|
KernelMode,
|
||||||
0,
|
0,
|
||||||
&WinStaObject);
|
&WinStaObject);
|
||||||
|
@ -109,11 +111,10 @@ ClassReferenceClassByName(
|
||||||
{
|
{
|
||||||
DPRINT("Validation of window station handle (0x%X) failed\n",
|
DPRINT("Validation of window station handle (0x%X) failed\n",
|
||||||
PROCESS_WINDOW_STATION());
|
PROCESS_WINDOW_STATION());
|
||||||
return STATUS_UNSUCCESSFUL;
|
return(STATUS_UNSUCCESSFUL);
|
||||||
}
|
}
|
||||||
|
|
||||||
Status = CliReferenceClassByNameWinSta(
|
Status = CliReferenceClassByNameWinSta(WinStaObject,
|
||||||
WinStaObject,
|
|
||||||
Class,
|
Class,
|
||||||
ClassName);
|
ClassName);
|
||||||
|
|
||||||
|
@ -123,8 +124,7 @@ ClassReferenceClassByName(
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
ClassReferenceClassByAtom(
|
ClassReferenceClassByAtom(PWNDCLASS_OBJECT *Class,
|
||||||
PWNDCLASS_OBJECT *Class,
|
|
||||||
RTL_ATOM ClassAtom)
|
RTL_ATOM ClassAtom)
|
||||||
{
|
{
|
||||||
PWINSTATION_OBJECT WinStaObject;
|
PWINSTATION_OBJECT WinStaObject;
|
||||||
|
@ -134,11 +134,10 @@ ClassReferenceClassByAtom(
|
||||||
|
|
||||||
if (!ClassAtom)
|
if (!ClassAtom)
|
||||||
{
|
{
|
||||||
return STATUS_INVALID_PARAMETER;
|
return(STATUS_INVALID_PARAMETER);
|
||||||
}
|
}
|
||||||
|
|
||||||
Status = ValidateWindowStationHandle(
|
Status = ValidateWindowStationHandle(PROCESS_WINDOW_STATION(),
|
||||||
PROCESS_WINDOW_STATION(),
|
|
||||||
KernelMode,
|
KernelMode,
|
||||||
0,
|
0,
|
||||||
&WinStaObject);
|
&WinStaObject);
|
||||||
|
@ -146,38 +145,36 @@ ClassReferenceClassByAtom(
|
||||||
{
|
{
|
||||||
DPRINT("Validation of window station handle (0x%X) failed\n",
|
DPRINT("Validation of window station handle (0x%X) failed\n",
|
||||||
PROCESS_WINDOW_STATION());
|
PROCESS_WINDOW_STATION());
|
||||||
return STATUS_UNSUCCESSFUL;
|
return(STATUS_UNSUCCESSFUL);
|
||||||
}
|
}
|
||||||
|
|
||||||
ClassNameLength = sizeof(ClassName);
|
ClassNameLength = sizeof(ClassName);
|
||||||
Status = RtlQueryAtomInAtomTable(
|
Status = RtlQueryAtomInAtomTable(WinStaObject->AtomTable,
|
||||||
WinStaObject->AtomTable,
|
|
||||||
ClassAtom,
|
ClassAtom,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
&ClassName[0],
|
&ClassName[0],
|
||||||
&ClassNameLength);
|
&ClassNameLength);
|
||||||
|
|
||||||
Status = CliReferenceClassByNameWinSta(
|
Status = CliReferenceClassByNameWinSta(WinStaObject,
|
||||||
WinStaObject,
|
|
||||||
Class,
|
Class,
|
||||||
&ClassName[0]);
|
&ClassName[0]);
|
||||||
|
|
||||||
ObDereferenceObject(WinStaObject);
|
ObDereferenceObject(WinStaObject);
|
||||||
|
|
||||||
return Status;
|
return(Status);
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
ClassReferenceClassByNameOrAtom(
|
ClassReferenceClassByNameOrAtom(PWNDCLASS_OBJECT *Class,
|
||||||
PWNDCLASS_OBJECT *Class,
|
|
||||||
LPWSTR ClassNameOrAtom)
|
LPWSTR ClassNameOrAtom)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
|
|
||||||
if (IS_ATOM(ClassNameOrAtom))
|
if (IS_ATOM(ClassNameOrAtom))
|
||||||
{
|
{
|
||||||
Status = ClassReferenceClassByAtom(Class, (RTL_ATOM)((ULONG_PTR)ClassNameOrAtom));
|
Status = ClassReferenceClassByAtom(Class,
|
||||||
|
(RTL_ATOM)((ULONG_PTR)ClassNameOrAtom));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -189,45 +186,38 @@ ClassReferenceClassByNameOrAtom(
|
||||||
SetLastNtError(Status);
|
SetLastNtError(Status);
|
||||||
}
|
}
|
||||||
|
|
||||||
return Status;
|
return(Status);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DWORD STDCALL
|
||||||
DWORD
|
NtUserGetClassInfo(DWORD Unknown0,
|
||||||
STDCALL
|
|
||||||
NtUserGetClassInfo(
|
|
||||||
DWORD Unknown0,
|
|
||||||
DWORD Unknown1,
|
DWORD Unknown1,
|
||||||
DWORD Unknown2,
|
DWORD Unknown2,
|
||||||
DWORD Unknown3,
|
DWORD Unknown3,
|
||||||
DWORD Unknown4)
|
DWORD Unknown4)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED
|
UNIMPLEMENTED;
|
||||||
|
|
||||||
return 0;
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
DWORD
|
DWORD STDCALL
|
||||||
STDCALL
|
NtUserGetClassName(DWORD Unknown0,
|
||||||
NtUserGetClassName(
|
|
||||||
DWORD Unknown0,
|
|
||||||
DWORD Unknown1,
|
DWORD Unknown1,
|
||||||
DWORD Unknown2)
|
DWORD Unknown2)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED
|
UNIMPLEMENTED;
|
||||||
|
|
||||||
return 0;
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
DWORD
|
DWORD STDCALL
|
||||||
STDCALL
|
NtUserGetWOWClass(DWORD Unknown0,
|
||||||
NtUserGetWOWClass(
|
|
||||||
DWORD Unknown0,
|
|
||||||
DWORD Unknown1)
|
DWORD Unknown1)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED
|
UNIMPLEMENTED;
|
||||||
|
|
||||||
return 0;
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -240,10 +230,8 @@ NtUserGetWOWClass(
|
||||||
* RETURNS:
|
* RETURNS:
|
||||||
* Atom identifying the new class
|
* Atom identifying the new class
|
||||||
*/
|
*/
|
||||||
RTL_ATOM
|
RTL_ATOM STDCALL
|
||||||
STDCALL
|
NtUserRegisterClassExWOW(LPWNDCLASSEX lpwcx,
|
||||||
NtUserRegisterClassExWOW(
|
|
||||||
LPWNDCLASSEX lpwcx,
|
|
||||||
BOOL bUnicodeClass,
|
BOOL bUnicodeClass,
|
||||||
DWORD Unknown2,
|
DWORD Unknown2,
|
||||||
DWORD Unknown3,
|
DWORD Unknown3,
|
||||||
|
@ -257,10 +245,10 @@ NtUserRegisterClassExWOW(
|
||||||
WORD objectSize;
|
WORD objectSize;
|
||||||
LPTSTR namePtr;
|
LPTSTR namePtr;
|
||||||
|
|
||||||
DPRINT("About to open window station handle (0x%X)\n", PROCESS_WINDOW_STATION());
|
DPRINT("About to open window station handle (0x%X)\n",
|
||||||
|
PROCESS_WINDOW_STATION());
|
||||||
|
|
||||||
Status = ValidateWindowStationHandle(
|
Status = ValidateWindowStationHandle(PROCESS_WINDOW_STATION(),
|
||||||
PROCESS_WINDOW_STATION(),
|
|
||||||
KernelMode,
|
KernelMode,
|
||||||
0,
|
0,
|
||||||
&WinStaObject);
|
&WinStaObject);
|
||||||
|
@ -268,11 +256,10 @@ NtUserRegisterClassExWOW(
|
||||||
{
|
{
|
||||||
DPRINT("Validation of window station handle (0x%X) failed\n",
|
DPRINT("Validation of window station handle (0x%X) failed\n",
|
||||||
PROCESS_WINDOW_STATION());
|
PROCESS_WINDOW_STATION());
|
||||||
return (RTL_ATOM)0;
|
return((RTL_ATOM)0);
|
||||||
}
|
}
|
||||||
|
|
||||||
Status = RtlAddAtomToAtomTable(
|
Status = RtlAddAtomToAtomTable(WinStaObject->AtomTable,
|
||||||
WinStaObject->AtomTable,
|
|
||||||
(LPWSTR)lpwcx->lpszClassName,
|
(LPWSTR)lpwcx->lpszClassName,
|
||||||
&Atom);
|
&Atom);
|
||||||
if (!NT_SUCCESS(Status))
|
if (!NT_SUCCESS(Status))
|
||||||
|
@ -282,7 +269,7 @@ NtUserRegisterClassExWOW(
|
||||||
lpwcx->lpszClassName);
|
lpwcx->lpszClassName);
|
||||||
SetLastNtError(Status);
|
SetLastNtError(Status);
|
||||||
|
|
||||||
return (RTL_ATOM) 0;
|
return((RTL_ATOM)0);
|
||||||
}
|
}
|
||||||
|
|
||||||
objectSize = sizeof(WNDCLASS_OBJECT) +
|
objectSize = sizeof(WNDCLASS_OBJECT) +
|
||||||
|
@ -296,7 +283,7 @@ NtUserRegisterClassExWOW(
|
||||||
DPRINT("Failed creating window class object\n");
|
DPRINT("Failed creating window class object\n");
|
||||||
SetLastNtError(STATUS_INSUFFICIENT_RESOURCES);
|
SetLastNtError(STATUS_INSUFFICIENT_RESOURCES);
|
||||||
|
|
||||||
return (RTL_ATOM) 0;
|
return((RTL_ATOM)0);
|
||||||
}
|
}
|
||||||
|
|
||||||
ClassObject->Class = *lpwcx;
|
ClassObject->Class = *lpwcx;
|
||||||
|
@ -323,44 +310,38 @@ NtUserRegisterClassExWOW(
|
||||||
|
|
||||||
ObDereferenceObject(WinStaObject);
|
ObDereferenceObject(WinStaObject);
|
||||||
|
|
||||||
return Atom;
|
return(Atom);
|
||||||
}
|
}
|
||||||
|
|
||||||
DWORD
|
DWORD STDCALL
|
||||||
STDCALL
|
NtUserSetClassLong(DWORD Unknown0,
|
||||||
NtUserSetClassLong(
|
|
||||||
DWORD Unknown0,
|
|
||||||
DWORD Unknown1,
|
DWORD Unknown1,
|
||||||
DWORD Unknown2,
|
DWORD Unknown2,
|
||||||
DWORD Unknown3)
|
DWORD Unknown3)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED
|
UNIMPLEMENTED;
|
||||||
|
|
||||||
return 0;
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
DWORD
|
DWORD STDCALL
|
||||||
STDCALL
|
NtUserSetClassWord(DWORD Unknown0,
|
||||||
NtUserSetClassWord(
|
|
||||||
DWORD Unknown0,
|
|
||||||
DWORD Unknown1,
|
DWORD Unknown1,
|
||||||
DWORD Unknown2)
|
DWORD Unknown2)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED
|
UNIMPLEMENTED;
|
||||||
|
|
||||||
return 0;
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
DWORD
|
DWORD STDCALL
|
||||||
STDCALL
|
NtUserUnregisterClass(DWORD Unknown0,
|
||||||
NtUserUnregisterClass(
|
|
||||||
DWORD Unknown0,
|
|
||||||
DWORD Unknown1,
|
DWORD Unknown1,
|
||||||
DWORD Unknown2)
|
DWORD Unknown2)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED
|
UNIMPLEMENTED;
|
||||||
|
|
||||||
return 0;
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* EOF */
|
/* EOF */
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $Id: guicheck.c,v 1.2 2001/07/04 20:40:24 chorns Exp $
|
/* $Id: guicheck.c,v 1.3 2002/01/13 22:52:08 dwelch Exp $
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS kernel
|
* PROJECT: ReactOS kernel
|
||||||
|
@ -12,7 +12,11 @@
|
||||||
* REVISION HISTORY:
|
* REVISION HISTORY:
|
||||||
* 06-06-2001 CSH Created
|
* 06-06-2001 CSH Created
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* INCLUDES ******************************************************************/
|
||||||
|
|
||||||
#include <ddk/ntddk.h>
|
#include <ddk/ntddk.h>
|
||||||
|
#include <napi/teb.h>
|
||||||
#include <win32k/win32k.h>
|
#include <win32k/win32k.h>
|
||||||
#include <include/guicheck.h>
|
#include <include/guicheck.h>
|
||||||
#include <include/msgqueue.h>
|
#include <include/msgqueue.h>
|
||||||
|
@ -20,14 +24,15 @@
|
||||||
#define NDEBUG
|
#define NDEBUG
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
|
/* FUNCTIONS *****************************************************************/
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
GuiCheck(VOID)
|
W32kGuiCheck(VOID)
|
||||||
{
|
{
|
||||||
/* if (NtCurrentTeb()->MessageQueue)
|
if (PsGetWin32Thread()->MessageQueue != NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
NtCurrentTeb()->MessageQueue = MsqCreateMessageQueue();*/
|
PsGetWin32Thread()->MessageQueue = MsqCreateMessageQueue();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* EOF */
|
/* EOF */
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $Id: message.c,v 1.2 2001/12/20 03:56:10 dwelch Exp $
|
/* $Id: message.c,v 1.3 2002/01/13 22:52:08 dwelch Exp $
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS kernel
|
* PROJECT: ReactOS kernel
|
||||||
|
@ -8,8 +8,13 @@
|
||||||
* REVISION HISTORY:
|
* REVISION HISTORY:
|
||||||
* 06-06-2001 CSH Created
|
* 06-06-2001 CSH Created
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* INCLUDES ******************************************************************/
|
||||||
|
|
||||||
#include <ddk/ntddk.h>
|
#include <ddk/ntddk.h>
|
||||||
#include <win32k/win32k.h>
|
#include <win32k/win32k.h>
|
||||||
|
#include <include/guicheck.h>
|
||||||
|
#include <include/msgqueue.h>
|
||||||
#include <include/window.h>
|
#include <include/window.h>
|
||||||
#include <include/class.h>
|
#include <include/class.h>
|
||||||
#include <include/error.h>
|
#include <include/error.h>
|
||||||
|
@ -19,26 +24,25 @@
|
||||||
#define NDEBUG
|
#define NDEBUG
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
|
/* FUNCTIONS *****************************************************************/
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
InitMessageImpl(VOID)
|
W32kInitMessageImpl(VOID)
|
||||||
{
|
{
|
||||||
return STATUS_SUCCESS;
|
return(STATUS_SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
CleanupMessageImpl(VOID)
|
W32kCleanupMessageImpl(VOID)
|
||||||
{
|
{
|
||||||
return STATUS_SUCCESS;
|
return(STATUS_SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
LRESULT
|
LRESULT STDCALL
|
||||||
STDCALL
|
NtUserDispatchMessage(LPMSG lpmsg)
|
||||||
NtUserDispatchMessage(
|
|
||||||
LPMSG lpmsg)
|
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED
|
UNIMPLEMENTED;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -48,8 +52,81 @@ NtUserGetMessage(LPMSG lpMsg,
|
||||||
HWND hWnd,
|
HWND hWnd,
|
||||||
UINT wMsgFilterMin,
|
UINT wMsgFilterMin,
|
||||||
UINT wMsgFilterMax)
|
UINT wMsgFilterMax)
|
||||||
|
/*
|
||||||
|
* FUNCTION: Get a message from the calling thread's message queue.
|
||||||
|
* ARGUMENTS:
|
||||||
|
* lpMsg - Pointer to the structure which receives the returned message.
|
||||||
|
* hWnd - Window whose messages are to be retrieved.
|
||||||
|
* wMsgFilterMin - Integer value of the lowest message value to be
|
||||||
|
* retrieved.
|
||||||
|
* wMsgFilterMax - Integer value of the highest message value to be
|
||||||
|
* retrieved.
|
||||||
|
*/
|
||||||
{
|
{
|
||||||
return FALSE;
|
PUSER_MESSAGE_QUEUE ThreadQueue;
|
||||||
|
BOOLEAN Present;
|
||||||
|
PUSER_MESSAGE Message;
|
||||||
|
NTSTATUS Status;
|
||||||
|
|
||||||
|
W32kGuiCheck();
|
||||||
|
|
||||||
|
ThreadQueue = (PUSER_MESSAGE_QUEUE)PsGetWin32Thread()->MessageQueue;
|
||||||
|
|
||||||
|
do
|
||||||
|
{
|
||||||
|
/* FIXME: Dispatch sent messages here. */
|
||||||
|
|
||||||
|
/* Now look for a quit message. */
|
||||||
|
/* FIXME: WINE checks the message number filter here. */
|
||||||
|
if (ThreadQueue->QuitPosted)
|
||||||
|
{
|
||||||
|
lpMsg->hwnd = hWnd;
|
||||||
|
lpMsg->message = WM_QUIT;
|
||||||
|
lpMsg->wParam = ThreadQueue->QuitExitCode;
|
||||||
|
lpMsg->lParam = 0;
|
||||||
|
ThreadQueue->QuitPosted = FALSE;
|
||||||
|
return(FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Now check for normal messages. */
|
||||||
|
Present = MsqFindMessage(ThreadQueue,
|
||||||
|
FALSE,
|
||||||
|
TRUE,
|
||||||
|
hWnd,
|
||||||
|
wMsgFilterMin,
|
||||||
|
wMsgFilterMax,
|
||||||
|
&Message);
|
||||||
|
if (Present)
|
||||||
|
{
|
||||||
|
RtlCopyMemory(lpMsg, &Message->Msg, sizeof(MSG));
|
||||||
|
ExFreePool(Message);
|
||||||
|
return(TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Check for hardware events. */
|
||||||
|
Present = MsqFindMessage(ThreadQueue,
|
||||||
|
TRUE,
|
||||||
|
TRUE,
|
||||||
|
hWnd,
|
||||||
|
wMsgFilterMin,
|
||||||
|
wMsgFilterMax,
|
||||||
|
&Message);
|
||||||
|
if (Present)
|
||||||
|
{
|
||||||
|
RtlCopyMemory(lpMsg, &Message->Msg, sizeof(MSG));
|
||||||
|
ExFreePool(Message);
|
||||||
|
return(TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* FIXME: Check for sent messages again. */
|
||||||
|
|
||||||
|
/* FIXME: Check for paint messages. */
|
||||||
|
|
||||||
|
/* Nothing found so far. Wait for new messages. */
|
||||||
|
Status = MsqWaitForNewMessages(ThreadQueue);
|
||||||
|
}
|
||||||
|
while (Status == STATUS_WAIT_0);
|
||||||
|
return((BOOLEAN)(-1));
|
||||||
}
|
}
|
||||||
|
|
||||||
DWORD
|
DWORD
|
||||||
|
@ -68,100 +145,85 @@ NtUserMessageCall(
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL
|
BOOL STDCALL
|
||||||
STDCALL
|
NtUserPeekMessage(LPMSG lpMsg,
|
||||||
NtUserPeekMessage(
|
|
||||||
LPMSG lpMsg,
|
|
||||||
HWND hWnd,
|
HWND hWnd,
|
||||||
UINT wMsgFilterMin,
|
UINT wMsgFilterMin,
|
||||||
UINT wMsgFilterMax,
|
UINT wMsgFilterMax,
|
||||||
UINT wRemoveMsg)
|
UINT wRemoveMsg)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED
|
UNIMPLEMENTED;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL
|
BOOL STDCALL
|
||||||
STDCALL
|
NtUserPostMessage(HWND hWnd,
|
||||||
NtUserPostMessage(
|
|
||||||
HWND hWnd,
|
|
||||||
UINT Msg,
|
UINT Msg,
|
||||||
WPARAM wParam,
|
WPARAM wParam,
|
||||||
LPARAM lParam)
|
LPARAM lParam)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED
|
UNIMPLEMENTED;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL
|
BOOL STDCALL
|
||||||
STDCALL
|
NtUserPostThreadMessage(DWORD idThread,
|
||||||
NtUserPostThreadMessage(
|
|
||||||
DWORD idThread,
|
|
||||||
UINT Msg,
|
UINT Msg,
|
||||||
WPARAM wParam,
|
WPARAM wParam,
|
||||||
LPARAM lParam)
|
LPARAM lParam)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED
|
UNIMPLEMENTED;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
DWORD
|
DWORD STDCALL
|
||||||
STDCALL
|
NtUserQuerySendMessage(DWORD Unknown0)
|
||||||
NtUserQuerySendMessage(
|
|
||||||
DWORD Unknown0)
|
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED
|
UNIMPLEMENTED;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL
|
BOOL STDCALL
|
||||||
STDCALL
|
NtUserSendMessageCallback(HWND hWnd,
|
||||||
NtUserSendMessageCallback(
|
|
||||||
HWND hWnd,
|
|
||||||
UINT Msg,
|
UINT Msg,
|
||||||
WPARAM wParam,
|
WPARAM wParam,
|
||||||
LPARAM lParam,
|
LPARAM lParam,
|
||||||
SENDASYNCPROC lpCallBack,
|
SENDASYNCPROC lpCallBack,
|
||||||
ULONG_PTR dwData)
|
ULONG_PTR dwData)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED
|
UNIMPLEMENTED;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL
|
BOOL STDCALL
|
||||||
STDCALL
|
NtUserSendNotifyMessage(HWND hWnd,
|
||||||
NtUserSendNotifyMessage(
|
|
||||||
HWND hWnd,
|
|
||||||
UINT Msg,
|
UINT Msg,
|
||||||
WPARAM wParam,
|
WPARAM wParam,
|
||||||
LPARAM lParam)
|
LPARAM lParam)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED
|
UNIMPLEMENTED;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL
|
BOOL STDCALL
|
||||||
STDCALL
|
NtUserTranslateMessage(LPMSG lpMsg,
|
||||||
NtUserTranslateMessage(
|
|
||||||
LPMSG lpMsg,
|
|
||||||
DWORD Unknown1)
|
DWORD Unknown1)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED
|
UNIMPLEMENTED;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL
|
BOOL STDCALL
|
||||||
STDCALL
|
|
||||||
NtUserWaitMessage(VOID)
|
NtUserWaitMessage(VOID)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED
|
UNIMPLEMENTED;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $Id: msgqueue.c,v 1.1 2001/06/12 17:50:29 chorns Exp $
|
/* $Id: msgqueue.c,v 1.2 2002/01/13 22:52:08 dwelch Exp $
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS kernel
|
* PROJECT: ReactOS kernel
|
||||||
|
@ -8,6 +8,9 @@
|
||||||
* REVISION HISTORY:
|
* REVISION HISTORY:
|
||||||
* 06-06-2001 CSH Created
|
* 06-06-2001 CSH Created
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* INCLUDES ******************************************************************/
|
||||||
|
|
||||||
#include <ddk/ntddk.h>
|
#include <ddk/ntddk.h>
|
||||||
#include <win32k/win32k.h>
|
#include <win32k/win32k.h>
|
||||||
#include <include/msgqueue.h>
|
#include <include/msgqueue.h>
|
||||||
|
@ -15,23 +18,48 @@
|
||||||
#define NDEBUG
|
#define NDEBUG
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
|
/* GLOBALS *******************************************************************/
|
||||||
|
|
||||||
|
static PUSER_MESSAGE_QUEUE CurrentFocusMessageQueue;
|
||||||
|
|
||||||
|
/* FUNCTIONS *****************************************************************/
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
MsqInitializeImpl(VOID)
|
||||||
|
{
|
||||||
|
CurrentFocusMessageQueue = NULL;
|
||||||
|
return(STATUS_SUCCESS);
|
||||||
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
MsqInitializeMessage(
|
MsqPostKeyboardMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||||
PUSER_MESSAGE Message,
|
{
|
||||||
|
MSG Msg;
|
||||||
|
PUSER_MESSAGE Message;
|
||||||
|
|
||||||
|
Msg.hwnd = CurrentFocusMessageQueue->FocusWindow;
|
||||||
|
Msg.message = uMsg;
|
||||||
|
Msg.wParam = wParam;
|
||||||
|
Msg.lParam = lParam;
|
||||||
|
/* FIXME: Initialize time and point. */
|
||||||
|
|
||||||
|
Message = MsqCreateMessage(&Msg);
|
||||||
|
MsqPostMessage(CurrentFocusMessageQueue, Message, TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
VOID
|
||||||
|
MsqInitializeMessage(PUSER_MESSAGE Message,
|
||||||
LPMSG Msg)
|
LPMSG Msg)
|
||||||
{
|
{
|
||||||
RtlMoveMemory(&Message->Msg, Msg, sizeof(MSG));
|
RtlMoveMemory(&Message->Msg, Msg, sizeof(MSG));
|
||||||
}
|
}
|
||||||
|
|
||||||
PUSER_MESSAGE
|
PUSER_MESSAGE
|
||||||
MsqCreateMessage(
|
MsqCreateMessage(LPMSG Msg)
|
||||||
LPMSG Msg)
|
|
||||||
{
|
{
|
||||||
PUSER_MESSAGE Message;
|
PUSER_MESSAGE Message;
|
||||||
|
|
||||||
Message = (PUSER_MESSAGE)ExAllocatePool(
|
Message = (PUSER_MESSAGE)ExAllocatePool(PagedPool, sizeof(USER_MESSAGE));
|
||||||
PagedPool, sizeof(USER_MESSAGE));
|
|
||||||
if (!Message)
|
if (!Message)
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -43,60 +71,124 @@ MsqCreateMessage(
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
MsqDestroyMessage(
|
MsqDestroyMessage(PUSER_MESSAGE Message)
|
||||||
PUSER_MESSAGE Message)
|
|
||||||
{
|
{
|
||||||
ExFreePool(Message);
|
ExFreePool(Message);
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
MsqPostMessage(
|
MsqPostMessage(PUSER_MESSAGE_QUEUE MessageQueue,
|
||||||
PUSER_MESSAGE_QUEUE MessageQueue,
|
PUSER_MESSAGE Message,
|
||||||
PUSER_MESSAGE Message)
|
BOOLEAN Hardware)
|
||||||
{
|
{
|
||||||
// FIXME: Grab lock
|
ExAcquireFastMutex(&MessageQueue->Lock);
|
||||||
InsertTailList(&MessageQueue->ListHead, &Message->ListEntry);
|
if (Hardware)
|
||||||
}
|
|
||||||
|
|
||||||
BOOL
|
|
||||||
MsqRetrieveMessage(
|
|
||||||
PUSER_MESSAGE_QUEUE MessageQueue,
|
|
||||||
PUSER_MESSAGE *Message)
|
|
||||||
{
|
{
|
||||||
PLIST_ENTRY CurrentEntry;
|
InsertTailList(&MessageQueue->HardwareMessagesListHead,
|
||||||
|
&Message->ListEntry);
|
||||||
// FIXME: Grab lock
|
|
||||||
if (!IsListEmpty(&MessageQueue->ListHead))
|
|
||||||
{
|
|
||||||
CurrentEntry = RemoveHeadList(&MessageQueue->ListHead);
|
|
||||||
*Message = CONTAINING_RECORD(CurrentEntry, USER_MESSAGE, ListEntry);
|
|
||||||
return TRUE;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return FALSE;
|
InsertTailList(&MessageQueue->PostedMessagesListHead,
|
||||||
|
&Message->ListEntry);
|
||||||
}
|
}
|
||||||
|
KeSetEvent(&MessageQueue->NewMessages, IO_NO_INCREMENT, FALSE);
|
||||||
|
ExReleaseFastMutex(&MessageQueue->Lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BOOLEAN
|
||||||
VOID
|
MsqFindMessage(IN PUSER_MESSAGE_QUEUE MessageQueue,
|
||||||
MsqInitializeMessageQueue(
|
IN BOOLEAN Hardware,
|
||||||
PUSER_MESSAGE_QUEUE MessageQueue)
|
IN BOOLEAN Remove,
|
||||||
|
IN HWND Wnd,
|
||||||
|
IN UINT MsgFilterLow,
|
||||||
|
IN UINT MsgFilterHigh,
|
||||||
|
OUT PUSER_MESSAGE* Message)
|
||||||
{
|
{
|
||||||
InitializeListHead(&MessageQueue->ListHead);
|
PLIST_ENTRY CurrentEntry;
|
||||||
ExInitializeFastMutex(MessageQueue->ListLock);
|
PUSER_MESSAGE CurrentMessage;
|
||||||
|
PLIST_ENTRY ListHead;
|
||||||
|
|
||||||
|
ExAcquireFastMutex(&MessageQueue->Lock);
|
||||||
|
if (Hardware)
|
||||||
|
{
|
||||||
|
CurrentEntry = MessageQueue->HardwareMessagesListHead.Flink;
|
||||||
|
ListHead = &MessageQueue->HardwareMessagesListHead;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
CurrentEntry = MessageQueue->PostedMessagesListHead.Flink;
|
||||||
|
ListHead = &MessageQueue->PostedMessagesListHead;
|
||||||
|
}
|
||||||
|
while (CurrentEntry != ListHead)
|
||||||
|
{
|
||||||
|
CurrentMessage = CONTAINING_RECORD(CurrentEntry, USER_MESSAGE,
|
||||||
|
ListEntry);
|
||||||
|
if ((Wnd == 0 || Wnd == CurrentMessage->Msg.hwnd) &&
|
||||||
|
((MsgFilterLow == 0 && MsgFilterHigh == 0) ||
|
||||||
|
(MsgFilterLow <= CurrentMessage->Msg.message &&
|
||||||
|
MsgFilterHigh >= CurrentMessage->Msg.message)))
|
||||||
|
{
|
||||||
|
if (Remove)
|
||||||
|
{
|
||||||
|
RemoveEntryList(&CurrentMessage->ListEntry);
|
||||||
|
}
|
||||||
|
ExReleaseFastMutex(&MessageQueue->Lock);
|
||||||
|
*Message = CurrentMessage;
|
||||||
|
return(TRUE);
|
||||||
|
}
|
||||||
|
CurrentEntry = CurrentEntry->Flink;
|
||||||
|
}
|
||||||
|
ExReleaseFastMutex(&MessageQueue->Lock);
|
||||||
|
return(FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
|
NTSTATUS
|
||||||
|
MsqWaitForNewMessages(PUSER_MESSAGE_QUEUE MessageQueue)
|
||||||
|
{
|
||||||
|
return(KeWaitForSingleObject(&MessageQueue->NewMessages,
|
||||||
|
0,
|
||||||
|
UserMode,
|
||||||
|
TRUE,
|
||||||
|
NULL));
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
MsqFreeMessageQueue(
|
MsqInitializeMessageQueue(PUSER_MESSAGE_QUEUE MessageQueue)
|
||||||
PUSER_MESSAGE_QUEUE MessageQueue)
|
|
||||||
{
|
{
|
||||||
PUSER_MESSAGE Message;
|
InitializeListHead(&MessageQueue->PostedMessagesListHead);
|
||||||
|
InitializeListHead(&MessageQueue->HardwareMessagesListHead);
|
||||||
|
InitializeListHead(&MessageQueue->SentMessagesListHead);
|
||||||
|
ExInitializeFastMutex(&MessageQueue->Lock);
|
||||||
|
MessageQueue->QuitPosted = FALSE;
|
||||||
|
MessageQueue->QuitExitCode = 0;
|
||||||
|
KeInitializeEvent(&MessageQueue->NewMessages, NotificationEvent, FALSE);
|
||||||
|
MessageQueue->QueueStatus = 0;
|
||||||
|
MessageQueue->FocusWindow = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
// FIXME: Grab lock
|
VOID
|
||||||
while (MsqRetrieveMessage(MessageQueue, &Message))
|
MsqFreeMessageQueue(PUSER_MESSAGE_QUEUE MessageQueue)
|
||||||
{
|
{
|
||||||
ExFreePool(Message);
|
PLIST_ENTRY CurrentEntry;
|
||||||
|
PUSER_MESSAGE CurrentMessage;
|
||||||
|
|
||||||
|
CurrentEntry = MessageQueue->PostedMessagesListHead.Flink;
|
||||||
|
while (CurrentEntry != &MessageQueue->PostedMessagesListHead)
|
||||||
|
{
|
||||||
|
CurrentMessage = CONTAINING_RECORD(CurrentEntry, USER_MESSAGE,
|
||||||
|
ListEntry);
|
||||||
|
CurrentEntry = CurrentEntry->Flink;
|
||||||
|
ExFreePool(CurrentMessage);
|
||||||
|
}
|
||||||
|
|
||||||
|
CurrentEntry = MessageQueue->HardwareMessagesListHead.Flink;
|
||||||
|
while (CurrentEntry != &MessageQueue->HardwareMessagesListHead)
|
||||||
|
{
|
||||||
|
CurrentMessage = CONTAINING_RECORD(CurrentEntry, USER_MESSAGE,
|
||||||
|
ListEntry);
|
||||||
|
CurrentEntry = CurrentEntry->Flink;
|
||||||
|
ExFreePool(CurrentMessage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -105,8 +197,8 @@ MsqCreateMessageQueue(VOID)
|
||||||
{
|
{
|
||||||
PUSER_MESSAGE_QUEUE MessageQueue;
|
PUSER_MESSAGE_QUEUE MessageQueue;
|
||||||
|
|
||||||
MessageQueue = (PUSER_MESSAGE_QUEUE)ExAllocatePool(
|
MessageQueue = (PUSER_MESSAGE_QUEUE)ExAllocatePool(PagedPool,
|
||||||
PagedPool, sizeof(USER_MESSAGE_QUEUE));
|
sizeof(USER_MESSAGE_QUEUE));
|
||||||
if (!MessageQueue)
|
if (!MessageQueue)
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -118,8 +210,7 @@ MsqCreateMessageQueue(VOID)
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
MsqDestroyMessageQueue(
|
MsqDestroyMessageQueue(PUSER_MESSAGE_QUEUE MessageQueue)
|
||||||
PUSER_MESSAGE_QUEUE MessageQueue)
|
|
||||||
{
|
{
|
||||||
MsqFreeMessageQueue(MessageQueue);
|
MsqFreeMessageQueue(MessageQueue);
|
||||||
ExFreePool(MessageQueue);
|
ExFreePool(MessageQueue);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $Id: window.c,v 1.3 2001/08/28 18:16:32 jfilby Exp $
|
/* $Id: window.c,v 1.4 2002/01/13 22:52:08 dwelch Exp $
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS kernel
|
* PROJECT: ReactOS kernel
|
||||||
|
@ -93,7 +93,7 @@ NtUserCreateWindowEx(
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
HANDLE Handle;
|
HANDLE Handle;
|
||||||
|
|
||||||
GuiCheck();
|
W32kGuiCheck();
|
||||||
|
|
||||||
Status = ClassReferenceClassByNameOrAtom(&ClassObject, lpClassName->Buffer);
|
Status = ClassReferenceClassByNameOrAtom(&ClassObject, lpClassName->Buffer);
|
||||||
if (!NT_SUCCESS(Status))
|
if (!NT_SUCCESS(Status))
|
||||||
|
@ -222,7 +222,7 @@ NtUserFindWindowEx(
|
||||||
PLIST_ENTRY currentEntry;
|
PLIST_ENTRY currentEntry;
|
||||||
PWNDCLASS_OBJECT classObject;
|
PWNDCLASS_OBJECT classObject;
|
||||||
|
|
||||||
GuiCheck();
|
W32kGuiCheck();
|
||||||
|
|
||||||
status = ClassReferenceClassByNameOrAtom(&classObject, ucClassName->Buffer);
|
status = ClassReferenceClassByNameOrAtom(&classObject, ucClassName->Buffer);
|
||||||
if (!NT_SUCCESS(status))
|
if (!NT_SUCCESS(status))
|
||||||
|
@ -567,7 +567,7 @@ NtUserShowWindow(
|
||||||
{
|
{
|
||||||
PWINDOW_OBJECT WindowObject;
|
PWINDOW_OBJECT WindowObject;
|
||||||
|
|
||||||
GuiCheck();
|
W32kGuiCheck();
|
||||||
|
|
||||||
WindowObject = USEROBJ_HandleToPtr (hWnd, UO_WINDOW_MAGIC);
|
WindowObject = USEROBJ_HandleToPtr (hWnd, UO_WINDOW_MAGIC);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue