mirror of
https://github.com/reactos/reactos.git
synced 2025-02-24 17:34:57 +00:00
NtUserSetWindowFNID is needed for supporting NtUserGetClassName bGetRealClass.
svn path=/trunk/; revision=33733
This commit is contained in:
parent
31335eaca5
commit
5cccc4e338
2 changed files with 61 additions and 10 deletions
|
@ -77,6 +77,7 @@ typedef struct _WINDOWCLASS
|
|||
INT ClsExtra;
|
||||
INT WndExtra;
|
||||
PVOID Dce;
|
||||
DWORD fnID;
|
||||
HINSTANCE hInstance;
|
||||
HANDLE hIcon; /* FIXME - Use pointer! */
|
||||
HANDLE hIconSm; /* FIXME - Use pointer! */
|
||||
|
@ -264,6 +265,32 @@ typedef struct _W32CLIENTINFO
|
|||
PW32THREADINFO GetW32ThreadInfo(VOID);
|
||||
PW32PROCESSINFO GetW32ProcessInfo(VOID);
|
||||
|
||||
// FNID's for NtUserSetWindowFNID
|
||||
#define FNID_BUTTON 0x02A1
|
||||
#define FNID_COMBOBOX 0x02A2
|
||||
#define FNID_COMBOLBOX 0x02A3
|
||||
#define FNID_DIALOG 0x02A4
|
||||
#define FNID_EDIT 0x02A5
|
||||
#define FNID_LISTBOX 0x02A6
|
||||
#define FNID_MDICLIENT 0x02A7
|
||||
#define FNID_STATIC 0x02A8
|
||||
#define FNID_IME 0x02A9
|
||||
|
||||
#define FNID_DESTROY 0x4000 // This is sent when WM_NCDESTROY or in the support routine.
|
||||
// Seen during WM_CREATE on error exit too.
|
||||
|
||||
// ICLS's for NtUserGetClassName FNID to ICLS
|
||||
#define ICLS_BUTTON 0
|
||||
#define ICLS_EDIT 1
|
||||
#define ICLS_STATIC 2
|
||||
#define ICLS_LISTBOX 3
|
||||
#define ICLS_COMBOBOX 5
|
||||
#define ICLS_MDICLIENT 6
|
||||
#define ICLS_COMBOLBOX 7
|
||||
#define ICLS_IME 15
|
||||
#define ICLS_DIALOG 17
|
||||
#define ICLS_END 31
|
||||
|
||||
DWORD
|
||||
NTAPI
|
||||
NtUserAssociateInputContext(
|
||||
|
@ -2186,11 +2213,11 @@ NtUserSetTimer
|
|||
TIMERPROC lpTimerFunc
|
||||
);
|
||||
|
||||
DWORD
|
||||
BOOL
|
||||
NTAPI
|
||||
NtUserSetWindowFNID(
|
||||
DWORD Unknown0,
|
||||
DWORD Unknown1);
|
||||
HWND hWnd,
|
||||
WORD fnID);
|
||||
|
||||
LONG
|
||||
NTAPI
|
||||
|
|
|
@ -4159,19 +4159,43 @@ CLEANUP:
|
|||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
* @implemented
|
||||
*/
|
||||
DWORD STDCALL
|
||||
NtUserSetWindowFNID(DWORD Unknown0,
|
||||
DWORD Unknown1)
|
||||
BOOL STDCALL
|
||||
NtUserSetWindowFNID(HWND hWnd,
|
||||
WORD fnID)
|
||||
{
|
||||
UNIMPLEMENTED
|
||||
PWINDOW_OBJECT Window;
|
||||
PWINDOW Wnd;
|
||||
DECLARE_RETURN(BOOL);
|
||||
|
||||
return 0;
|
||||
DPRINT("Enter NtUserSetWindowFNID\n");
|
||||
UserEnterExclusive();
|
||||
|
||||
if (!(Window = UserGetWindowObject(hWnd)))
|
||||
{
|
||||
RETURN( FALSE);
|
||||
}
|
||||
Wnd = Window->Wnd;
|
||||
|
||||
if (Wnd->Class)
|
||||
{ // From user land we only set these.
|
||||
if ((fnID != FNID_DESTROY) || ((fnID < FNID_BUTTON) && (fnID > FNID_IME)) )
|
||||
{
|
||||
RETURN( FALSE);
|
||||
}
|
||||
else
|
||||
Wnd->Class->fnID |= fnID;
|
||||
}
|
||||
RETURN( TRUE);
|
||||
|
||||
CLEANUP:
|
||||
DPRINT("Leave NtUserSetWindowFNID\n");
|
||||
UserLeave();
|
||||
END_CLEANUP;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
|
|
Loading…
Reference in a new issue