Windows Data Types
windows 2010. 5. 24. 12:06 |Windows Data Types
The data types supported by Microsoft® Windows® are used to define function return values, function and message parameters, and structure members. They define the size and meaning of these elements. For more information about the underlying C/C++ data types, see Data Type Ranges.
The following table contains the following types: character, integer, Boolean, pointer, and handle. The character, integer, and Boolean types are common to most C compilers. Most of the pointer-type names begin with a prefix of P or LP. Handles refer to a resource that has been loaded into memory.
For more information about handling 64-bit integers, see Large Integers.
Type | Description |
---|---|
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 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 |
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) |
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 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 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 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) |
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) |
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) |
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 This type is declared in WinNT.h as follows: #ifdef UNICODE |
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 This type is declared in WinNT.h as follows: #ifdef UNICODE |
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 This type is declared in WinNT.h as follows: #ifdef UNICODE |
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 |
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) |
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) |
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 This type is declared in WinNT.h as follows: #ifdef UNICODE |
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 |
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 This type is declared in WinNT.h as follows: #ifdef UNICODE |
TCHAR |
A WCHAR if This type is declared in WinNT.h as follows: #ifdef UNICODE |
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 |
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) |
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) |
ULONG_PTR |
Unsigned LONG_PTR. This type is declared in BaseTsd.h as follows: #if defined(_WIN64) |
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 |
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; |
Send comments about this topic to Microsoft
Build date: 3/27/2008
즐프하세요.
'windows' 카테고리의 다른 글
자동실행 레지스트리 경로 (0) | 2011.12.11 |
---|---|
IMAGE_THUNK_DATA32 (0) | 2010.05.24 |
PIMAGE_IMPORT_DESCRIPTOR (0) | 2010.05.24 |
WinNT.h (0) | 2010.05.24 |
GetModuleHandle과 LoadLibrary (0) | 2010.05.11 |