Platform SDK: Windows API

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.

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.

Term Description
ATOM Atom. For more information, see Atoms.

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 Character Sets Used By Fonts.

This type is declared in Winnt.h as follows:

typedef char CHAR;

COLORREF Red, green, blue (RGB) color value (32 bits). See COLORREF 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.

This type is declared in Windef.h as follows:

typedef unsigned long DWORD;

DWORDLONG 64-bit unsigned integer.

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 accelerator table.

This type is declared in Windef.h as follows:

typedef HANDLE HACCEL;

HANDLE Handle to an object.

This type is declared in Winnt.h as follows:

typedef PVOID HANDLE;

HBITMAP Handle to a bitmap.

This type is declared in Windef.h as follows:

typedef HANDLE HBITMAP;

HBRUSH Handle to a brush.

This type is declared in Windef.h as follows:

typedef HANDLE HBRUSH;

HCOLORSPACE Handle to a color space.

This type is declared in Windef.h as follows:

if(WINVER >= 0x0400)
typedef HANDLE HCOLORSPACE;

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 cursor.

This type is declared in Windef.h as follows:

typedef HICON HCURSOR;

HDC Handle to a device context (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 desktop.

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 enhanced metafile.

This type is declared in Windef.h as follows:

typedef HANDLE HENHMETAFILE;

HFILE Handle to a file opened by OpenFile, not CreateFile.

This type is declared in Windef.h as follows:

typedef int HFILE;

HFONT Handle to a font.

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 hook.

This type is declared in Windef.h as follows:

typedef HANDLE HHOOK;

HICON Handle to an icon.

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 menu.

This type is declared in Windef.h as follows:

typedef HANDLE HMENU;

HMETAFILE Handle to a metafile.

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 palette.

This type is declared in Windef.h as follows:

typedef HANDLE HPALETTE;

HPEN Handle to a pen.

This type is declared in Windef.h as follows:

typedef HANDLE HPEN;

HRESULT Return code used by interfaces. It is zero upon success and nonzero to represent an error code or status information.

This type is declared in Winnt.h as follows:

typedef LONG HRESULT;

HRGN Handle to a region.

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 window station.

This type is declared in Windef.h as follows:

typedef HANDLE WINSTA;

HWND Handle to a window.

This type is declared in Windef.h as follows:

typedef HANDLE HWND;

INT 32-bit signed integer.

This type is declared in Windef.h as follows:

typedef int INT;

INT_PTR Signed integral 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;

INT32 32-bit signed integer.

This type is declared in Basetsd.h as follows:

typedef signed int INT32;

INT64 64-bit signed integer.

This type is declared in Basetsd.h as follows:

typedef signed __int64 INT64;

LANGID Language identifier. For more information, see Locales.

This type is declared in Winnt.h as follows:

typedef WORD LANGID;

LCID Locale identifier. For more information, see Locales.

This type is declared in Winnt.h as follows:

typedef DWORD LCID;

LCTYPE Locale information type. For a list, see Locale and Language Information.

This type is declared in Winnls.h as follows:

typedef DWORD LCTYPE;

LGRPID Language group identifier. For a list, see EnumLanguageGroupLocales.

This type is declared in Winnls.h as follows:

typedef DWORD LGRPID;

LONG 32-bit signed integer.

This type is declared in Winnt.h as follows:

typedef long LONG;

LONGLONG 64-bit signed integer.

This type is declared in Winnt.h as follows:

typedef __int64 LONGLONG;
#else
typedef double LONGLONG;

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;

LONG32 32-bit signed integer.

This type is declared in Basetsd.h as follows:

typedef signed int LONG32;

LONG64 64-bit signed integer.

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 *LPBOOL;

LPBYTE Pointer to a BYTE.

This type is declared in Windef.h as follows:

typedef BYTE *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 Character Sets Used By Fonts.

This type is declared in Winnt.h as follows:

typedef CONST CHAR *LPCSTR;

LPCTSTR An LPCWSTR if UNICODE is defined, an LPCSTR otherwise.

This type is declared in Winnt.h as follows:

#ifdef UNICODE
typedef LPCWSTR LPCTSTR;
#else
typedef LPCSTR LPCTSTR;

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 Character Sets Used By Fonts.

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 Character Sets Used By Fonts.

This type is declared in Winnt.h as follows:

typedef CHAR *LPSTR;

LPTSTR An LPWSTR if UNICODE is defined, an LPSTR otherwise.

This type is declared in Winnt.h as follows:

#ifdef UNICODE
typedef LPWSTR LPTSTR;
#else
typedef LPSTR LPTSTR;

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 Character Sets Used By Fonts.

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 Character Sets Used By Fonts.

This type is declared in Winnt.h as follows:

typedef CONST CHAR *PCSTR;

PCTSTR A PCWSTR if UNICODE is defined, a PCSTR otherwise.

This type is declared in Winnt.h as follows:

#ifdef UNICODE
typedef LPCWSTR PCTSTR;
#else
typedef LPCSTR PCTSTR;

PCWSTR Pointer to a constant null-terminated string of 16-bit Unicode characters. For more information, see Character Sets Used By Fonts.

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;

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 POINTER32

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.

This type is declared in Basetsd.h as follows:

#define POINTER_64 __ptr64

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 Character Sets Used By Fonts.

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 UNICODE is defined, a PSTR otherwise.

This type is declared in Winnt.h as follows:

#ifdef UNICODE
typedef LPWSTR PTSTR;
#else
typedef LPSTR PTSTR;

PUCHAR Pointer to a UCHAR.

This type is declared in Windef.h as follows:

typedef UCHAR *PUCHAR;

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 Character Sets Used By Fonts.

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 SCM Handles.

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 SCM Handles.

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 SCM Handles.

This type is declared in Winsvc.h as follows:

typedef HANDLE SERVICE_STATUS_HANDLE;

SHORT Short integer (16 bits).

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 UNICODE is defined, a CHAR otherwise.

This type is declared in Winnt.h as follows:

#ifdef UNICODE
typedef WCHAR TBYTE;
#else
typedef unsigned char TBYTE;

TCHAR A WCHAR if UNICODE is defined, a CHAR otherwise.

This type is declared in Winnt.h as follows:

#ifdef UNICODE
typedef WCHAR TCHAR;
#else
typedef char TCHAR;

UCHAR Unsigned CHAR.

This type is declared in Windef.h as follows:

typedef unsigned char UCHAR;

UINT Unsigned int.

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;

UINT32 Unsigned INT32.

This type is declared in Basetsd.h as follows:

typedef unsigned int 

UINT32;

UINT64 Unsigned INT64.

This type is declared in Basetsd.h as follows:

typedef usigned __int

64 UINT64;

ULONG Unsigned LONG.

This type is declared in Windef.h as follows:

typedef unsigned long 

ULONG;

ULONGLONG 64-bit unsigned integer.

This type is declared in Winnt.h as follows:

typedef unsigned __int64 ULONGLONG;
#else
typedef double ULONGLONG

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;

ULONG32 Unsigned LONG32.

This type is declared in Basetsd.h as follows:

typedef unsigned int ULONG32;

ULONG64 Unsigned LONG64.

This type is declared in Basetsd.h as follows:

typedef unsigned __int64 ULONG64;

USHORT Unsigned SHORT.

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 Character Sets Used By Fonts.

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.

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;

  
  Last updated: April 2004  |  What did you think of this topic?  |  Order a Platform SDK CD
  © 2004 Microsoft Corporation. All rights reserved. Terms of use.

 

posted on 2004-12-23 20:31  Laser.NET  阅读(736)  评论(0)    收藏  举报
无觅相关文章插件,快速提升流量