reactos/win32ss/user/ntuser/class.h
2018-12-11 12:30:59 +09:00

78 lines
1.8 KiB
C

#pragma once
#define IS_ATOM(x) \
(((ULONG_PTR)(x) > 0x0) && ((ULONG_PTR)(x) < 0x10000))
typedef struct _WNDPROC_INFO
{
WNDPROC WindowProc;
BOOL IsUnicode;
} WNDPROC_INFO, *PWNDPROC_INFO;
static __inline BOOL
IsCallProcHandle(IN WNDPROC lpWndProc)
{
/* FIXME: Check for 64-bit architectures... */
return ((ULONG_PTR)lpWndProc & 0xFFFF0000) == 0xFFFF0000;
}
BOOLEAN
DestroyCallProc(_Inout_ PVOID Object);
PCALLPROCDATA
CreateCallProc(IN PDESKTOP Desktop,
IN WNDPROC WndProc,
IN BOOL Unicode,
IN PPROCESSINFO pi);
BOOL
UserGetCallProcInfo(IN HANDLE hCallProc,
OUT PWNDPROC_INFO wpInfo);
void FASTCALL
DestroyProcessClasses(PPROCESSINFO Process );
VOID
IntDereferenceClass(IN OUT PCLS Class,
IN PDESKTOPINFO Desktop,
IN PPROCESSINFO pi);
PCLS
IntGetAndReferenceClass(PUNICODE_STRING ClassName, HINSTANCE hInstance, BOOL bDesktopThread);
BOOL FASTCALL UserRegisterSystemClasses(VOID);
VOID
UserAddCallProcToClass(IN OUT PCLS Class,
IN PCALLPROCDATA CallProc);
_Success_(return)
BOOL
NTAPI
IntGetAtomFromStringOrAtom(
_In_ PUNICODE_STRING ClassName,
_Out_ RTL_ATOM *Atom);
BOOL
IntCheckProcessDesktopClasses(IN PDESKTOP Desktop,
IN BOOL FreeOnFailure);
ULONG_PTR FASTCALL UserGetCPD(PVOID,GETCPD,ULONG_PTR);
_Must_inspect_result_
NTSTATUS
NTAPI
ProbeAndCaptureUnicodeStringOrAtom(
_Out_ _When_(return>=0, _At_(pustrOut->Buffer, _Post_ _Notnull_)) PUNICODE_STRING pustrOut,
__in_data_source(USER_MODE) _In_ PUNICODE_STRING pustrUnsafe);
BOOL FASTCALL LookupFnIdToiCls(int FnId, int *iCls);
INT
UserGetClassName(IN PCLS Class,
IN OUT PUNICODE_STRING ClassName,
IN RTL_ATOM Atom,
IN BOOL Ansi);
/* EOF */