int allocated_handles;
} USER_HANDLE_TABLE, * PUSER_HANDLE_TABLE;
-typedef enum _USER_OBJECT_TYPE
+typedef enum _HANDLE_TYPE
{
- otFree = 0,
- otWindow,
- otMenu,
- otCursorIcon,
- otSMWP,
- otHook,
- otClipBoardData,
- otCallProc,
- otAccel,
- otDDEaccess,
- otDDEconv,
- otDDExact,
- otMonitor,
- otKBDlayout,
- otKBDfile,
- otEvent,
- otTimer,
- otInputContext,
- otHidData,
- otDeviceInfo,
- otTouchInput,
- otGestureInfo,
- USER_HANDLE_TYPE_COUNT
-} USER_OBJECT_TYPE;
+ TYPE_FREE = 0,
+ TYPE_WINDOW = 1,
+ TYPE_MENU = 2,
+ TYPE_CURSOR = 3,
+ TYPE_SETWINDOWPOS = 4,
+ TYPE_HOOK = 5,
+ TYPE_CLIPDATA = 6,
+ TYPE_CALLPROC = 7,
+ TYPE_ACCELTABLE = 8,
+ TYPE_DDEACCESS = 9,
+ TYPE_DDECONV = 10,
+ TYPE_DDEXACT = 11,
+ TYPE_MONITOR = 12,
+ TYPE_KBDLAYOUT = 13,
+ TYPE_KBDFILE = 14,
+ TYPE_WINEVENTHOOK = 15,
+ TYPE_TIMER = 16,
+ TYPE_INPUTCONTEXT = 17,
+ TYPE_HIDDATA = 18,
+ TYPE_DEVICEINFO = 19,
+ TYPE_TOUCHINPUTINFO = 20,
+ TYPE_GESTUREINFOOBJ = 21,
+ TYPE_CTYPES,
+ TYPE_GENERIC = 255
+} HANDLE_TYPE, *PHANDLE_TYPE;
typedef enum _USERTHREADINFOCLASS
{
BOOL fIncSerialNumber;
} SETCLIPBDATA, *PSETCLIPBDATA;
+// Used with NtUserSetCursorIconData, last parameter.
+typedef struct tagCURSORDATA
+{
+ LPWSTR lpName;
+ LPWSTR lpModName;
+ USHORT rt;
+ USHORT dummy;
+ ULONG CURSORF_flags;
+ SHORT xHotspot;
+ SHORT yHotspot;
+ HBITMAP hbmMask;
+ HBITMAP hbmColor;
+ HBITMAP hbmAlpha;
+ RECT rcBounds;
+ HBITMAP hbmUserAlpha; // Could be in W7U, not in W2k
+ ULONG bpp;
+ ULONG cx;
+ ULONG cy;
+ INT cpcur;
+ INT cicur;
+ struct tagCURSORDATA * aspcur;
+ DWORD * aicur;
+ INT * ajifRate;
+ INT iicur;
+} CURSORDATA, *PCURSORDATA; /* !dso CURSORDATA */
+
+// CURSORF_flags:
+#define CURSORF_FROMRESOURCE 0x0001
+#define CURSORF_GLOBAL 0x0002
+#define CURSORF_LRSHARED 0x0004
+#define CURSORF_ACON 0x0008
+#define CURSORF_WOWCLEANUP 0x0010
+#define CURSORF_ACONFRAME 0x0040
+#define CURSORF_SECRET 0x0080
+#define CURSORF_LINKED 0x0100
+#define CURSORF_CURRENT 0x0200
+
DWORD
NTAPI
NtUserAssociateInputContext(
BOOL
NTAPI
NtUserDestroyCursor(
- HANDLE Handle,
- DWORD Unknown);
+ _In_ HANDLE Handle,
+ _In_ BOOL bForce);
DWORD
NTAPI
HDC hDC,
HBRUSH hBrush);
-HICON
-NTAPI
-NtUserFindExistingCursorIcon(
- HMODULE hModule,
- HRSRC hRsrc,
- LONG cx,
- LONG cy);
-
HWND
NTAPI
NtUserFindWindowEx(
NtUserGetAsyncKeyState(
INT Key);
-DWORD
-NTAPI
+_Success_(return!=0)
+_At_(pustrName->Buffer, _Out_z_bytecap_post_bytecount_(pustrName->MaximumLength, return*2+2))
+ULONG
+APIENTRY
NtUserGetAtomName(
- ATOM nAtom,
- PUNICODE_STRING pBuffer);
+ _In_ ATOM atom,
+ _Inout_ PUNICODE_STRING pustrName);
UINT
NTAPI
DWORD idThread,
LPGUITHREADINFO lpgui);
+_Success_(return!=FALSE)
BOOL
NTAPI
NtUserGetIconInfo(
- HANDLE hCurIcon,
- PICONINFO IconInfo,
- PUNICODE_STRING lpInstName,
- PUNICODE_STRING lpResName,
- LPDWORD pbpp,
- BOOL bInternal);
+ _In_ HANDLE hCurIcon,
+ _Out_opt_ PICONINFO IconInfo,
+ _Inout_opt_ PUNICODE_STRING lpInstName,
+ _Inout_opt_ PUNICODE_STRING lpResName,
+ _Out_opt_ LPDWORD pbpp,
+ _In_ BOOL bInternal);
BOOL
NTAPI
NTAPI
NtUserSetCursorIconData(
_In_ HCURSOR hCursor,
- _In_ HINSTANCE hinst,
- _In_ HRSRC hrsrc,
- _In_ PICONINFO pii);
+ _In_ PUNICODE_STRING pustrModule,
+ _In_ PUNICODE_STRING puSrcName,
+ _In_ PCURSORDATA pCursorData);
+
+typedef struct _tagFINDEXISTINGCURICONPARAM
+{
+ BOOL bIcon;
+ LONG cx;
+ LONG cy;
+} FINDEXISTINGCURICONPARAM;
+
+HICON
+NTAPI
+NtUserFindExistingCursorIcon(
+ _In_ PUNICODE_STRING pustrModule,
+ _In_ PUNICODE_STRING pustrRsrc,
+ _In_ FINDEXISTINGCURICONPARAM* param);
#else
BOOL
NTAPI
HMODULE hModule,
HRSRC hRsrc,
HRSRC hGroupRsrc);
+
+HICON
+NTAPI
+NtUserFindExistingCursorIcon(
+ HMODULE hModule,
+ HRSRC hRsrc,
+ LONG cx,
+ LONG cy);
#endif
DWORD