ATOM
Atom. For more information, see .
This type is declared in WinDef.h as follows:
typedef WORD ATOM;
BOOL
Boolean variable (should be TRUE or FALSE).
This type is declared in WinDef.h as follows:
typedef int BOOL;
BOOLEAN
Boolean variable (should be TRUE or FALSE).
This type is declared in WinNT.h as follows:
typedef BYTE BOOLEAN;
BYTE
Byte (8 bits).
This type is declared in WinDef.h as follows:
typedef unsigned char BYTE;
CALLBACK
Calling convention for callback functions.
This type is declared in WinDef.h as follows:
#define CALLBACK __stdcall
CHAR
8-bit Windows (ANSI) character. For more information, see .
This type is declared in WinNT.h as follows:
typedef char CHAR;
COLORREF
Red, green, blue (RGB) color value (32 bits). See for information on this type.
This type is declared in WinDef.h as follows:
typedef DWORD COLORREF;
CONST
Variable whose value is to remain constant during execution.
This type is declared in WinDef.h as follows:
#define CONST const
DWORD
32-bit unsigned integer. The range is 0 through 4294967295 decimal.
This type is declared in WinDef.h as follows:
typedef unsigned long DWORD;
DWORDLONG
64-bit unsigned integer. The range is 0 through 18446744073709551615 decimal.
This type is declared in WinNT.h as follows:
typedef ULONGLONG DWORDLONG;
DWORD_PTR
Unsigned long type for pointer precision. Use when casting a pointer to a long type to perform pointer arithmetic. (Also commonly used for general 32-bit parameters that have been extended to 64 bits in 64-bit Windows. )
This type is declared in BaseTsd.h as follows:
typedef ULONG_PTR DWORD_PTR;
DWORD32
32-bit unsigned integer.
This type is declared in BaseTsd.h as follows:
typedef unsigned int DWORD32;
DWORD64
64-bit unsigned integer.
This type is declared in BaseTsd.h as follows:
typedef unsigned __int64 DWORD64;
FLOAT
Floating-point variable.
This type is declared in WinDef.h as follows:
typedef float FLOAT;
HACCEL
Handle to an .
This type is declared in WinDef.h as follows:
typedef HANDLE HACCEL;
HALF_PTR
Half the size of a pointer. Use within a structure that contains a pointer and two small fields.
This type is declared in Basetsd.h as follows:
#ifdef _WIN64
typedef int HALF_PTR;
#else
typedef short HALF_PTR;
#endif
HANDLE
Handle to an object.
This type is declared in WinNT.h as follows:
typedef PVOID HANDLE;
HBITMAP
Handle to a .
This type is declared in WinDef.h as follows:
typedef HANDLE HBITMAP;
HBRUSH
Handle to a .
This type is declared in WinDef.h as follows:
typedef HANDLE HBRUSH;
HCOLORSPACE
Handle to a .
This type is declared in WinDef.h as follows:
#if(WINVER >= 0x0400)
typedef HANDLE HCOLORSPACE;
#endif
HCONV
Handle to a dynamic data exchange (DDE) conversation.
This type is declared in Ddeml.h as follows:
typedef HANDLE HCONV;
HCONVLIST
Handle to a DDE conversation list.
This type is declared in Ddeml.h as follows:
typedef HANDLE HCONVLIST;
HCURSOR
Handle to a .
This type is declared in WinDef.h as follows:
typedef HICON HCURSOR;
HDC
Handle to a (DC).
This type is declared in WinDef.h as follows:
typedef HANDLE HDC;
HDDEDATA
Handle to DDE data.
This type is declared in Ddeml.h as follows:
typedef HANDLE HDDEDATA;
HDESK
Handle to a .
This type is declared in WinDef.h as follows:
typedef HANDLE HDESK;
HDROP
Handle to an internal drop structure.
This type is declared in ShellApi.h as follows:
typedef HANDLE HDROP;
HDWP
Handle to a deferred window position structure.
This type is declared in WinUser.h as follows:
typedef HANDLE HDWP;
HENHMETAFILE
Handle to an .
This type is declared in WinDef.h as follows:
typedef HANDLE HENHMETAFILE;
HFILE
Handle to a file opened by , not .
This type is declared in WinDef.h as follows:
typedef int HFILE;
HFONT
Handle to a .
This type is declared in WinDef.h as follows:
typedef HANDLE HFONT;
HGDIOBJ
Handle to a GDI object.
This type is declared in WinDef.h as follows:
typedef HANDLE HGDIOBJ;
HGLOBAL
Handle to a global memory block.
This type is declared in WinDef.h as follows:
typedef HANDLE HGLOBAL;
HHOOK
Handle to a .
This type is declared in WinDef.h as follows:
typedef HANDLE HHOOK;
HICON
Handle to an .
This type is declared in WinDef.h as follows:
typedef HANDLE HICON;
HINSTANCE
Handle to an instance.
This type is declared in WinDef.h as follows:
typedef HANDLE HINSTANCE;
HKEY
Handle to a registry key.
This type is declared in WinDef.h as follows:
typedef HANDLE HKEY;
HKL
Input locale identifier.
This type is declared in WinDef.h as follows:
typedef HANDLE HKL;
HLOCAL
Handle to a local memory block.
This type is declared in WinDef.h as follows:
typedef HANDLE HLOCAL;
HMENU
Handle to a .
This type is declared in WinDef.h as follows:
typedef HANDLE HMENU;
HMETAFILE
Handle to a .
This type is declared in WinDef.h as follows:
typedef HANDLE HMETAFILE;
HMODULE
Handle to a module. The value is the base address of the module.
This type is declared in WinDef.h as follows:
typedef HINSTANCE HMODULE;
HMONITOR
Handle to a display monitor.
This type is declared in WinDef.h as follows:
if(WINVER >= 0x0500) typedef HANDLE HMONITOR;
HPALETTE
Handle to a .
This type is declared in WinDef.h as follows:
typedef HANDLE HPALETTE;
HPEN
Handle to a .
This type is declared in WinDef.h as follows:
typedef HANDLE HPEN;
HRESULT
Return code used by COM interfaces. For more information, see . To test an HRESULT value, use the and macros.
This type is declared in WinNT.h as follows:
typedef LONG HRESULT;
HRGN
Handle to a .
This type is declared in WinDef.h as follows:
typedef HANDLE HRGN;
HRSRC
Handle to a resource.
This type is declared in WinDef.h as follows:
typedef HANDLE HRSRC;
HSZ
Handle to a DDE string.
This type is declared in Ddeml.h as follows:
typedef HANDLE HSZ;
HWINSTA
Handle to a .
This type is declared in WinDef.h as follows:
typedef HANDLE WINSTA;
HWND
Handle to a .
This type is declared in WinDef.h as follows:
typedef HANDLE HWND;
INT
32-bit signed integer. The range is -2147483648 through 2147483647 decimal.
This type is declared in WinDef.h as follows:
typedef int INT;
INT_PTR
Signed integer type for pointer precision. Use when casting a pointer to an integer to perform pointer arithmetic.
This type is declared in BaseTsd.h as follows:
#if defined(_WIN64) 
typedef __int64 INT_PTR;
#else
typedef int INT_PTR;
#endif
INT32
32-bit signed integer. The range is -2147483648 through 2147483647 decimal.
This type is declared in BaseTsd.h as follows:
typedef signed int INT32;
INT64
64-bit signed integer. The range is –9223372036854775808 through 9223372036854775807 decimal.
This type is declared in BaseTsd.h as follows:
typedef signed __int64 INT64;
LANGID
Language identifier. For more information, see .
This type is declared in WinNT.h as follows:
typedef WORD LANGID;
LCID
Locale identifier. For more information, see .
This type is declared in WinNT.h as follows:
typedef DWORD LCID;
LCTYPE
Locale information type. For a list, see .
This type is declared in WinNls.h as follows:
typedef DWORD LCTYPE;
LGRPID
Language group identifier. For a list, see .
This type is declared in WinNls.h as follows:
typedef DWORD LGRPID;
LONG
32-bit signed integer. The range is –2147483648 through 2147483647 decimal.
This type is declared in WinNT.h as follows:
typedef long LONG;
LONGLONG
64-bit signed integer. The range is –9223372036854775808 through 9223372036854775807 decimal.
This type is declared in WinNT.h as follows:
#if !defined(_M_IX86)
typedef __int64 LONGLONG;
#else
typedef double LONGLONG;
#endif
LONG_PTR
Signed long type for pointer precision. Use when casting a pointer to a long to perform pointer arithmetic.
This type is declared in BaseTsd.h as follows:
#if defined(_WIN64)
typedef __int64 LONG_PTR;
#else
typedef long LONG_PTR;
#endif
LONG32
32-bit signed integer. The range is –2147483648 through 2147483647 decimal.
This type is declared in BaseTsd.h as follows:
typedef signed int LONG32;
LONG64
64-bit signed integer. The range is –9223372036854775808 through 9223372036854775807 decimal.
This type is declared in BaseTsd.h as follows:
typedef __int64 LONG64;
LPARAM
Message parameter.
This type is declared in WinDef.h as follows:
typedef LONG_PTR LPARAM;
LPBOOL
Pointer to a BOOL.
This type is declared in WinDef.h as follows:
typedef BOOL far *LPBOOL;
LPBYTE
Pointer to a BYTE.
This type is declared in WinDef.h as follows:
typedef BYTE far *LPBYTE;
LPCOLORREF
Pointer to a COLORREF value.
This type is declared in WinDef.h as follows:
typedef DWORD *LPCOLORREF;
LPCSTR
Pointer to a constant null-terminated string of 8-bit Windows (ANSI) characters. For more information, see .
This type is declared in WinNT.h as follows:
typedef __nullterminated CONST CHAR *LPCSTR;
LPCTSTR
An LPCWSTR if is defined, an LPCSTR otherwise.
This type is declared in WinNT.h as follows:
#ifdef UNICODE
typedef LPCWSTR LPCTSTR;
#else
typedef LPCSTR LPCTSTR;
#endif
LPCVOID
Pointer to a constant of any type.
This type is declared in WinDef.h as follows:
typedef CONST void *LPCVOID;
LPCWSTR
Pointer to a constant null-terminated string of 16-bit Unicode characters. For more information, see .
This type is declared in WinNT.h as follows:
typedef CONST WCHAR *LPCWSTR;
LPDWORD
Pointer to a DWORD.
This type is declared in WinDef.h as follows:
typedef DWORD *LPDWORD;
LPHANDLE
Pointer to a HANDLE.
This type is declared in WinDef.h as follows:
typedef HANDLE *LPHANDLE;
LPINT
Pointer to an INT.
This type is declared in WinDef.h as follows:
typedef int *LPINT;
LPLONG
Pointer to a LONG.
This type is declared in WinDef.h as follows:
typedef long *LPLONG;
LPSTR
Pointer to a null-terminated string of 8-bit Windows (ANSI) characters. For more information, see .
This type is declared in WinNT.h as follows:
typedef CHAR *LPSTR;
LPTSTR
An LPWSTR if is defined, an LPSTR otherwise.
This type is declared in WinNT.h as follows:
#ifdef UNICODE
typedef LPWSTR LPTSTR;
#else
typedef LPSTR LPTSTR;
#endif
LPVOID
Pointer to any type.
This type is declared in WinDef.h as follows:
typedef void *LPVOID;
LPWORD
Pointer to a WORD.
This type is declared in WinDef.h as follows:
typedef WORD *LPWORD;
LPWSTR
Pointer to a null-terminated string of 16-bit Unicode characters. For more information, see .
This type is declared in WinNT.h as follows:
typedef WCHAR *LPWSTR;
LRESULT
Signed result of message processing.
This type is declared in WinDef.h as follows:
typedef LONG_PTR LRESULT;
PBOOL
Pointer to a BOOL.
This type is declared in WinDef.h as follows:
typedef BOOL *PBOOL;
PBOOLEAN
Pointer to a BOOL.
This type is declared in WinNT.h as follows:
typedef BOOLEAN *PBOOLEAN;
PBYTE
Pointer to a BYTE.
This type is declared in WinDef.h as follows:
typedef BYTE *PBYTE;
PCHAR
Pointer to a CHAR.
This type is declared in WinNT.h as follows:
typedef CHAR *PCHAR;
PCSTR
Pointer to a constant null-terminated string of 8-bit Windows (ANSI) characters. For more information, see .
This type is declared in WinNT.h as follows:
typedef CONST CHAR *PCSTR;
PCTSTR
A PCWSTR if is defined, a PCSTR otherwise.
This type is declared in WinNT.h as follows:
#ifdef UNICODE
typedef LPCWSTR PCTSTR;
#else
typedef LPCSTR PCTSTR;
#endif
PCWSTR
Pointer to a constant null-terminated string of 16-bit Unicode characters. For more information, see .
This type is declared in WinNT.h as follows:
typedef CONST WCHAR *PCWSTR;
PDWORD
Pointer to a DWORD.
This type is declared in WinDef.h as follows:
typedef DWORD *PDWORD;
PDWORDLONG
Pointer to a DWORDLONG.
This type is declared in WinNT.h as follows:
typedef DWORDLONG *PDWORDLONG;
PDWORD_PTR
Pointer to a DWORD_PTR.
This type is declared in BaseTsd.h as follows:
typedef DWORD_PTR *PDWORD_PTR;
PDWORD32
Pointer to a DWORD32.
This type is declared in BaseTsd.h as follows:
typedef DWORD32 *PDWORD32;
PDWORD64
Pointer to a DWORD64.
This type is declared in BaseTsd.h as follows:
typedef DWORD64 *PDWORD64;
PFLOAT
Pointer to a FLOAT.
This type is declared in WinDef.h as follows:
typedef FLOAT *PFLOAT;
PHALF_PTR
Pointer to a HALF_PTR.
This type is declared in Basetsd.h as follows:
#ifdef _WIN64
typedef HALF_PTR *PHALF_PTR;
#else
typedef HALF_PTR *PHALF_PTR;
#endif
PHANDLE
Pointer to a HANDLE.
This type is declared in WinNT.h as follows:
typedef HANDLE *PHANDLE;
PHKEY
Pointer to an HKEY.
This type is declared in WinDef.h as follows:
typedef HKEY *PHKEY;
PINT
Pointer to an INT.
This type is declared in WinDef.h as follows:
typedef int *PINT;
PINT_PTR
Pointer to an INT_PTR.
This type is declared in BaseTsd.h as follows:
typedef INT_PTR *PINT_PTR;
PINT32
Pointer to an INT32.
This type is declared in BaseTsd.h as follows:
typedef INT32 *PINT32;
PINT64
Pointer to an INT64.
This type is declared in BaseTsd.h as follows:
typedef INT64 *PINT64;
PLCID
Pointer to an LCID.
This type is declared in WinNT.h as follows:
typedef PDWORD PLCID;
PLONG
Pointer to a LONG.
This type is declared in WinNT.h as follows:
typedef LONG *PLONG;
PLONGLONG
Pointer to a LONGLONG.
This type is declared in WinNT.h as follows:
typedef LONGLONG *PLONGLONG;
PLONG_PTR
Pointer to a LONG_PTR.
This type is declared in BaseTsd.h as follows:
typedef LONG_PTR *PLONG_PTR;
PLONG32
Pointer to a LONG32.
This type is declared in BaseTsd.h as follows:
typedef LONG32 *PLONG32;
PLONG64
Pointer to a LONG64.
This type is declared in BaseTsd.h as follows:
typedef LONG64 *PLONG64;
POINTER_32
32-bit pointer. On a 32-bit system, this is a native pointer. On a 64-bit system, this is a truncated 64-bit pointer.
This type is declared in BaseTsd.h as follows:
#if defined(_WIN64)
#define POINTER_32 __ptr32
#else
#define POINTER_32
#endif
POINTER_64
64-bit pointer. On a 64-bit system, this is a native pointer. On a 32-bit system, this is a sign-extended 32-bit pointer.
Note that it is not safe to assume the state of the high pointer bit.
This type is declared in BaseTsd.h as follows:
#if (_MSC_VER >= 1300)
#define POINTER_64 __ptr64
#else
#define POINTER_64
#endif
POINTER_SIGNED
A signed pointer.
This type is declared in BaseTsd.h as follows:
#define POINTER_SIGNED __sptr
POINTER_UNSIGNED
An unsigned pointer.
This type is declared in BaseTsd.h as follows:
#define POINTER_UNSIGNED __uptr
PSHORT
Pointer to a SHORT.
This type is declared in WinNT.h as follows:
typedef SHORT *PSHORT;
PSIZE_T
Pointer to a SIZE_T.
This type is declared in BaseTsd.h as follows:
typedef SIZE_T *PSIZE_T;
PSSIZE_T
Pointer to a SSIZE_T.
This type is declared in BaseTsd.h as follows:
typedef SSIZE_T *PSSIZE_T;
PSTR
Pointer to a null-terminated string of 8-bit Windows (ANSI) characters. For more information, see .
This type is declared in WinNT.h as follows:
typedef CHAR *PSTR;
PTBYTE
Pointer to a TBYTE.
This type is declared in WinNT.h as follows:
typedef TBYTE *PTBYTE;
PTCHAR
Pointer to a TCHAR.
This type is declared in WinNT.h as follows:
typedef TCHAR *PTCHAR;
PTSTR
A PWSTR if is defined, a PSTR otherwise.
This type is declared in WinNT.h as follows:
#ifdef UNICODE
typedef LPWSTR PTSTR;
#else typedef LPSTR PTSTR;
#endif
PUCHAR
Pointer to a UCHAR.
This type is declared in WinDef.h as follows:
typedef UCHAR *PUCHAR;
PUHALF_PTR
Pointer to a UHALF_PTR.
This type is declared in Basetsd.h as follows:
#ifdef _WIN64
typedef UHALF_PTR *PUHALF_PTR;
#else
typedef UHALF_PTR *PUHALF_PTR;
#endif
PUINT
Pointer to a UINT.
This type is declared in WinDef.h as follows:
typedef UINT *PUINT;
PUINT_PTR
Pointer to a UINT_PTR.
This type is declared in BaseTsd.h as follows:
typedef UINT_PTR *PUINT_PTR;
PUINT32
Pointer to a UINT32.
This type is declared in BaseTsd.h as follows:
typedef UINT32 *PUINT32;
PUINT64
Pointer to a UINT64.
This type is declared in BaseTsd.h as follows:
typedef UINT64 *PUINT64;
PULONG
Pointer to a ULONG.
This type is declared in WinDef.h as follows:
typedef ULONG *PULONG;
PULONGLONG
Pointer to a ULONGLONG.
This type is declared in WinDef.h as follows:
typedef ULONGLONG *PULONGLONG;
PULONG_PTR
Pointer to a ULONG_PTR.
This type is declared in BaseTsd.h as follows:
typedef ULONG_PTR *PULONG_PTR;
PULONG32
Pointer to a ULONG32.
This type is declared in BaseTsd.h as follows:
typedef ULONG32 *PULONG32;
PULONG64
Pointer to a ULONG64.
This type is declared in BaseTsd.h as follows:
typedef ULONG64 *PULONG64;
PUSHORT
Pointer to a USHORT.
This type is declared in WinDef.h as follows:
typedef USHORT *PUSHORT;
PVOID
Pointer to any type.
This type is declared in WinNT.h as follows:
typedef void *PVOID;
PWCHAR
Pointer to a WCHAR.
This type is declared in WinNT.h as follows:
typedef WCHAR *PWCHAR;
PWORD
Pointer to a WORD.
This type is declared in WinDef.h as follows:
typedef WORD *PWORD;
PWSTR
Pointer to a null- terminated string of 16-bit Unicode characters. For more information, see .
This type is declared in WinNT.h as follows:
typedef WCHAR *PWSTR;
SC_HANDLE
Handle to a service control manager database. For more information, see .
This type is declared in WinSvc.h as follows:
typedef HANDLE SC_HANDLE;
SC_LOCK
Lock to a service control manager database. For more information, see .
This type is declared in WinSvc.h as follows:
typedef LPVOID SC_LOCK;
SERVICE_STATUS_HANDLE
Handle to a service status value. For more information, see .
This type is declared in WinSvc.h as follows:
typedef HANDLE SERVICE_STATUS_HANDLE;
SHORT
A 16-bit integer. The range is –32768 through 32767 decimal.
This type is declared in WinNT.h as follows:
typedef short SHORT;
SIZE_T
The maximum number of bytes to which a pointer can point. Use for a count that must span the full range of a pointer.
This type is declared in BaseTsd.h as follows:
typedef ULONG_PTR SIZE_T;
SSIZE_T
Signed SIZE_T.
This type is declared in BaseTsd.h as follows:
typedef LONG_PTR SSIZE_T;
TBYTE
A WCHAR if is defined, a CHAR otherwise.
This type is declared in WinNT.h as follows:
#ifdef UNICODE
typedef WCHAR TBYTE;
#else
typedef unsigned char TBYTE;
#endif
TCHAR
A WCHAR if is defined, a CHAR otherwise.
This type is declared in WinNT.h as follows:
#ifdef UNICODE
typedef WCHAR TCHAR;
#else
typedef char TCHAR;
#endif
UCHAR
Unsigned CHAR.
This type is declared in WinDef.h as follows:
typedef unsigned char UCHAR;
UHALF_PTR
Unsigned HALF_PTR. Use within a structure that contains a pointer and two small fields.
This type is declared in Basetsd.h as follows:
#ifdef _WIN64
typedef unsigned int UHALF_PTR;
#else
typedef unsigned short UHALF_PTR;
#endif
UINT
Unsigned INT. The range is 0 through 4294967295 decimal.
This type is declared in WinDef.h as follows:
typedef unsigned int UINT;
UINT_PTR
Unsigned INT_PTR.
This type is declared in BaseTsd.h as follows:
#if defined(_WIN64)
typedef unsigned __int64 UINT_PTR;
#else
typedef unsigned int UINT_PTR;
#endif
UINT32
Unsigned INT32. The range is 0 through 4294967295 decimal.
This type is declared in BaseTsd.h as follows:
typedef unsigned int UINT32;
UINT64
Unsigned INT64. The range is 0 through 18446744073709551615 decimal.
This type is declared in BaseTsd.h as follows:
typedef usigned __int 64 UINT64;
ULONG
Unsigned LONG. The range is 0 through 4294967295 decimal.
This type is declared in WinDef.h as follows:
typedef unsigned long ULONG;
ULONGLONG
64-bit unsigned integer. The range is 0 through 18446744073709551615 decimal.
This type is declared in WinNT.h as follows:
#if !defined(_M_IX86)
typedef unsigned __int64 ULONGLONG;
#else
typedef double ULONGLONG;
#endif
ULONG_PTR
Unsigned LONG_PTR.
This type is declared in BaseTsd.h as follows:
#if defined(_WIN64)
typedef unsigned __int64 ULONG_PTR;
#else
typedef unsigned long ULONG_PTR;
#endif
ULONG32
Unsigned LONG32. The range is 0 through 4294967295 decimal.
This type is declared in BaseTsd.h as follows:
typedef unsigned int ULONG32;
ULONG64
Unsigned LONG64. The range is 0 through 18446744073709551615 decimal.
This type is declared in BaseTsd.h as follows:
typedef unsigned __int64 ULONG64;
UNICODE_STRING
A Unicode string.
This type is declared in Winternl.h as follows:
typedef struct _UNICODE_STRING {
USHORT Length;
USHORT MaximumLength;
PWSTR Buffer;
} UNICODE_STRING;
typedef UNICODE_STRING *PUNICODE_STRING;
typedef const UNICODE_STRING *PCUNICODE_STRING;
USHORT
Unsigned SHORT. The range is 0 through 65535 decimal.
This type is declared in WinDef.h as follows:
typedef unsigned short USHORT;
USN
Update sequence number (USN).
This type is declared in WinNT.h as follows:
typedef LONGLONG USN;
VOID
Any type.
This type is declared in WinNT.h as follows:
#define VOID void
WCHAR
16-bit Unicode character. For more information, see .
This type is declared in WinNT.h as follows:
typedef wchar_t WCHAR;
WINAPI
Calling convention for system functions.
This type is declared in WinDef.h as follows:
#define WINAPI __stdcall
WORD
16-bit unsigned integer. The range is 0 through 65535 decimal.
This type is declared in WinDef.h as follows:
typedef unsigned short WORD;
WPARAM
Message parameter.
This type is declared in WinDef.h as follows:
typedef UINT_PTR WPARAM;