unstubbed caret functions in win32k

svn path=/trunk/; revision=6330
This commit is contained in:
Thomas Bluemel 2003-10-15 20:48:19 +00:00
parent 2233f43d06
commit ba15abe412
5 changed files with 126 additions and 86 deletions

View file

@ -257,13 +257,13 @@ NtUserCreateAcceleratorTable(
LPACCEL Entries,
SIZE_T EntriesCount);
DWORD
BOOL
STDCALL
NtUserCreateCaret(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown2,
DWORD Unknown3);
HWND hWnd,
HBITMAP hBitmap,
int nWidth,
int nHeight);
HDESK
STDCALL
@ -571,14 +571,14 @@ STDCALL
NtUserGetAsyncKeyState(
DWORD Unknown0);
DWORD
UINT
STDCALL
NtUserGetCaretBlinkTime(VOID);
DWORD
BOOL
STDCALL
NtUserGetCaretPos(
DWORD Unknown0);
LPPOINT lpPoint);
DWORD STDCALL
NtUserGetClassInfo(HINSTANCE hInst,
@ -888,10 +888,10 @@ NtUserGetWOWClass(
DWORD Unknown0,
DWORD Unknown1);
DWORD
BOOL
STDCALL
NtUserHideCaret(
DWORD Unknown0);
HWND hWnd);
BOOL
STDCALL
@ -1599,10 +1599,10 @@ NtUserSetWinEventHook(
DWORD Unknown6,
DWORD Unknown7);
DWORD
BOOL
STDCALL
NtUserShowCaret(
DWORD Unknown0);
HWND hWnd);
DWORD
STDCALL

View file

@ -1,4 +1,4 @@
# $Id: makefile,v 1.78 2003/08/13 22:43:15 royce Exp $
# $Id: makefile,v 1.79 2003/10/15 20:48:19 weiden Exp $
PATH_TO_TOP = ../..
@ -48,7 +48,7 @@ MISC_OBJECTS = misc/driver.o misc/error.o misc/math.o misc/object.o
LDR_OBJECTS = ldr/loader.o
NTUSER_OBJECTS = ntuser/class.o ntuser/guicheck.o ntuser/hook.o \
NTUSER_OBJECTS = ntuser/caret.o ntuser/class.o ntuser/guicheck.o ntuser/hook.o \
ntuser/message.o ntuser/msgqueue.o ntuser/stubs.o \
ntuser/userobj.o ntuser/window.o ntuser/winsta.o ntuser/menu.o \
ntuser/input.o ntuser/keyboard.o ntuser/callback.o \

View file

@ -0,0 +1,71 @@
/* $Id: caret.c,v 1.1 2003/10/15 20:48:19 weiden Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* PURPOSE: Caret functions
* FILE: subsys/win32k/ntuser/caret.c
* PROGRAMER: Thomas Weidenmueller (w3seek@users.sourceforge.net)
* REVISION HISTORY:
* 10/15/2003 Created
*/
#include <win32k/win32k.h>
#include <internal/safe.h>
#include <include/error.h>
#include <include/window.h>
#define NDEBUG
#include <debug.h>
BOOL
STDCALL
NtUserCreateCaret(
HWND hWnd,
HBITMAP hBitmap,
int nWidth,
int nHeight)
{
UNIMPLEMENTED
return 0;
}
UINT
STDCALL
NtUserGetCaretBlinkTime(VOID)
{
UNIMPLEMENTED
return 0;
}
BOOL
STDCALL
NtUserGetCaretPos(
LPPOINT lpPoint)
{
UNIMPLEMENTED
return 0;
}
BOOL
STDCALL
NtUserHideCaret(
HWND hWnd)
{
UNIMPLEMENTED
return 0;
}
BOOL
STDCALL
NtUserShowCaret(
HWND hWnd)
{
UNIMPLEMENTED
return 0;
}

View file

@ -1,4 +1,4 @@
/* $Id: stubs.c,v 1.29 2003/10/09 06:13:05 gvg Exp $
/* $Id: stubs.c,v 1.30 2003/10/15 20:48:19 weiden Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@ -214,19 +214,6 @@ NtUserCreateAcceleratorTable(
return 0;
}
DWORD
STDCALL
NtUserCreateCaret(
DWORD Unknown0,
DWORD Unknown1,
DWORD Unknown2,
DWORD Unknown3)
{
UNIMPLEMENTED
return 0;
}
DWORD
STDCALL
NtUserCreateLocalMemHandle(
@ -470,25 +457,6 @@ NtUserGetAsyncKeyState(
return 0;
}
DWORD
STDCALL
NtUserGetCaretBlinkTime(VOID)
{
UNIMPLEMENTED
return 0;
}
DWORD
STDCALL
NtUserGetCaretPos(
DWORD Unknown0)
{
UNIMPLEMENTED
return 0;
}
DWORD
STDCALL
NtUserGetClipboardData(
@ -711,16 +679,6 @@ NtUserGetUpdateRect(
return 0;
}
DWORD
STDCALL
NtUserHideCaret(
DWORD Unknown0)
{
UNIMPLEMENTED
return 0;
}
DWORD
STDCALL
NtUserImpersonateDdeClientWindow(
@ -1035,16 +993,6 @@ NtUserSetThreadState(
return 0;
}
DWORD
STDCALL
NtUserShowCaret(
DWORD Unknown0)
{
UNIMPLEMENTED
return 0;
}
DWORD
STDCALL
NtUserTrackMouseEvent(

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* $Id: window.c,v 1.112 2003/10/14 18:49:10 navaraf Exp $
/* $Id: window.c,v 1.113 2003/10/15 20:48:19 weiden Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@ -460,19 +460,19 @@ IntGetParent(PWINDOW_OBJECT Wnd)
}
HMENU FASTCALL
PMENU_OBJECT FASTCALL
IntGetSystemMenu(PWINDOW_OBJECT WindowObject, BOOL bRevert, BOOL RetMenu)
{
PMENU_OBJECT MenuObject, NewMenuObject;
PMENU_OBJECT MenuObject, NewMenuObject, ret = NULL;
PW32PROCESS W32Process;
HMENU NewMenu, ret = (HMENU)0;
HMENU NewMenu;
if(bRevert)
{
W32Process = PsGetWin32Process();
if(!W32Process->WindowStation)
return (HMENU)0;
return NULL;
if(WindowObject->SystemMenu)
{
@ -488,15 +488,15 @@ IntGetSystemMenu(PWINDOW_OBJECT WindowObject, BOOL bRevert, BOOL RetMenu)
/* clone system menu */
MenuObject = IntGetMenuObject(W32Process->WindowStation->SystemMenuTemplate);
if(!MenuObject)
return (HMENU)0;
return NULL;
NewMenuObject = IntCloneMenu(MenuObject);
if(NewMenuObject)
{
WindowObject->SystemMenu = NewMenuObject->Self;
NewMenuObject->IsSystemMenu = TRUE;
ret = NewMenuObject->Self;
IntReleaseMenuObject(NewMenuObject);
ret = NewMenuObject;
//IntReleaseMenuObject(NewMenuObject);
}
IntReleaseMenuObject(MenuObject);
}
@ -504,29 +504,29 @@ IntGetSystemMenu(PWINDOW_OBJECT WindowObject, BOOL bRevert, BOOL RetMenu)
{
NewMenu = IntLoadSysMenuTemplate();
if(!NewMenu)
return (HMENU)0;
return NULL;
MenuObject = IntGetMenuObject(NewMenu);
if(!MenuObject)
return (HMENU)0;
return NULL;
NewMenuObject = IntCloneMenu(MenuObject);
if(NewMenuObject)
{
WindowObject->SystemMenu = NewMenuObject->Self;
NewMenuObject->IsSystemMenu = TRUE;
ret = NewMenuObject->Self;
IntReleaseMenuObject(NewMenuObject);
ret = NewMenuObject;
//IntReleaseMenuObject(NewMenuObject);
}
IntDestroyMenuObject(MenuObject, FALSE, TRUE);
}
if(RetMenu)
return ret;
else
return (HMENU)0;
return NULL;
}
else
{
return WindowObject->SystemMenu;
return IntGetMenuObject((HMENU)WindowObject->SystemMenu);
}
}
@ -1185,6 +1185,13 @@ NtUserCreateWindowEx(DWORD dwExStyle,
DPRINT("1: Style is now %d\n", WindowObject->Style);
SystemMenu = IntGetSystemMenu(WindowObject, TRUE, TRUE);
if(SystemMenu)
{
WindowObject->SystemMenu = SystemMenu->Self;
IntReleaseMenuObject(SystemMenu);
}
else
WindowObject->SystemMenu = (HANDLE)0;
WindowObject->x = x;
WindowObject->y = y;
@ -1193,10 +1200,6 @@ NtUserCreateWindowEx(DWORD dwExStyle,
WindowObject->ContextHelpId = 0;
WindowObject->ParentHandle = hWndParent;
WindowObject->IDMenu = (UINT)hMenu;
if(SystemMenu)
WindowObject->SystemMenu = SystemMenu->Self;
else
WindowObject->SystemMenu = (HMENU)0;
WindowObject->Instance = hInstance;
WindowObject->Parameters = lpParam;
WindowObject->Self = Handle;
@ -1983,6 +1986,7 @@ NtUserGetSystemMenu(
{
HMENU res = (HMENU)0;
PWINDOW_OBJECT WindowObject;
PMENU_OBJECT MenuObject, SubMenuObject;
WindowObject = IntGetWindowObject((HWND)hWnd);
if(!WindowObject)
{
@ -1990,7 +1994,24 @@ NtUserGetSystemMenu(
return (HMENU)0;
}
res = IntGetSystemMenu(WindowObject, bRevert, FALSE);
MenuObject = IntGetSystemMenu(WindowObject, bRevert, FALSE);
if(MenuObject)
{
/* return the handle of the first submenu */
ExAcquireFastMutexUnsafe(&MenuObject->MenuItemsLock);
if(MenuObject->MenuItemList)
{
res = MenuObject->MenuItemList->hSubMenu;
/* test if submenu is a valid menu */
SubMenuObject = IntGetMenuObject(res);
if(SubMenuObject)
IntReleaseMenuObject(SubMenuObject);
else
res = (HMENU)0;
}
ExReleaseFastMutexUnsafe(&MenuObject->MenuItemsLock);
IntReleaseMenuObject(MenuObject);
}
IntReleaseWindowObject(WindowObject);
return res;