Windows 数据类型

Windows 支持的数据类型用于定义函数返回值、函数和消息参数以及结构成员。 它们定义这些元素的大小和含义。 有关基础 C/C++ 数据类型的详细信息,请参阅 数据类型范围

下表包含以下类型:character、integer、Boolean、pointer 和 handle。 字符、整数和布尔类型是大多数 C 编译器通用的。 大多数指针类型名称以 P 或 LP 前缀开头。 句柄引用已加载到内存中的资源。

有关处理 64 位整数的详细信息,请参阅 大整数

数据类型 说明
APIENTRY 系统函数的调用约定。
此类型在 WinDef.h 中声明,如下所示:
#define APIENTRY WINAPI
原子 原子。 有关详细信息,请参阅 关于 Atom 表
此类型在 WinDef.h 中声明,如下所示:
typedef WORD ATOM;
Bool 布尔变量 (应为 TRUEFALSE) 。
此类型在 WinDef.h 中声明,如下所示:
typedef int BOOL;
布尔 布尔变量 (应为 TRUEFALSE) 。
此类型在 WinNT.h 中声明,如下所示:
typedef BYTE BOOLEAN;
字节 字节 (8 位) 。
此类型在 WinDef.h 中声明,如下所示:
typedef unsigned char BYTE;
回调 回调函数的调用约定。
此类型在 WinDef.h 中声明,如下所示:
#define CALLBACK __stdcall
CALLBACKWINAPIAPIENTRY 都用于定义具有__stdcall调用约定的函数。 Windows API 中的大多数函数都是使用 WINAPI 声明的。 你可能希望对实现的回调函数使用 CALLBACK ,以帮助将函数标识为回调函数。
CCHAR 8 位 Windows (ANSI) 字符。
此类型在 WinNT.h 中声明,如下所示:
typedef char CCHAR;
字符 8 位 Windows (ANSI) 字符。 有关详细信息,请参阅 字体使用的字符集
此类型在 WinNT.h 中声明,如下所示:
typedef char CHAR;
COLORREF 红色、绿色、蓝色 (RGB) 颜色值 (32 位) 。 有关此类型的信息,请参阅 COLORREF
此类型在 WinDef.h 中声明,如下所示:
typedef DWORD COLORREF;
常量 一个变量,其值在执行期间保持不变。
此类型在 WinDef.h 中声明,如下所示:
#define CONST const
Dword 32 位无符号整数。 范围为 0 到十进制4294967295。
此类型在 IntSafe.h 中声明,如下所示:
typedef unsigned long DWORD;
DWORDLONG 64 位无符号整数。 范围为 0 到十进制18446744073709551615。
此类型在 IntSafe.h 中声明,如下所示:
typedef unsigned __int64 DWORDLONG;
DWORD_PTR 指针精度的无符号长类型。 将指针强制转换为长类型以执行指针算术时使用。 (还通常用于在 64 位 Windows 中扩展到 64 位的常规 32 位参数。)
此类型在 BaseTsd.h 中声明,如下所示:
typedef ULONG_PTR DWORD_PTR;
DWORD32 32 位无符号整数。
此类型在 BaseTsd.h 中声明,如下所示:
typedef unsigned int DWORD32;
DWORD64 64 位无符号整数。
此类型在 BaseTsd.h 中声明,如下所示:
typedef unsigned __int64 DWORD64;
浮动 浮点变量。
此类型在 WinDef.h 中声明,如下所示:
typedef float FLOAT;
HACCEL 快捷键表的句柄。
此类型在 WinDef.h 中声明,如下所示:
typedef HANDLE HACCEL;
HALF_PTR 指针大小的一半。 在包含指针和两个小字段的结构中使用 。
此类型在 BaseTsd.h 中声明,如下所示:
C++
#ifdef _WIN64
 typedef int HALF_PTR;
#else
 typedef short HALF_PTR;
#endif
处理

对象的句柄。

此类型在 WinNT.h 中声明,如下所示:

typedef PVOID HANDLE;

HBITMAP

位图的句柄。

此类型在 WinDef.h 中声明,如下所示:

typedef HANDLE HBITMAP;

HBRUSH

画笔的句柄。

此类型在 WinDef.h 中声明,如下所示:

typedef HANDLE HBRUSH;

HCOLORSPACE

颜色空间的句柄。

此类型在 WinDef.h 中声明,如下所示:

typedef HANDLE HCOLORSPACE;

HCONV

DDE) 会话 (动态数据交换的句柄。

此类型在 Ddeml.h 中声明,如下所示:

typedef HANDLE HCONV;

HCONVLIST

DDE 会话列表的句柄。

此类型在 Ddeml.h 中声明,如下所示:

typedef HANDLE HCONVLIST;

HCURSOR

游标的句柄。

此类型在 WinDef.h 中声明,如下所示:

typedef HICON HCURSOR;

HDC

设备上下文的句柄 (DC) 。

此类型在 WinDef.h 中声明,如下所示:

typedef HANDLE HDC;

HDDEDATA

DDE 数据的句柄。

此类型在 Ddeml.h 中声明,如下所示:

typedef HANDLE HDDEDATA;

HDESK

桌面的句柄。

此类型在 WinDef.h 中声明,如下所示:

typedef HANDLE HDESK;

HDROP

内部放置结构的句柄。

此类型在 ShellApi.h 中声明,如下所示:

typedef HANDLE HDROP;

HDWP

延迟窗口位置结构的句柄。

此类型在 WinUser.h 中声明,如下所示:

typedef HANDLE HDWP;

HENHMETAFILE

增强型图元文件的句柄

此类型在 WinDef.h 中声明,如下所示:

typedef HANDLE HENHMETAFILE;

HFILE

OpenFile 打开的文件的句柄,而不是 CreateFile

此类型在 WinDef.h 中声明,如下所示:

typedef int HFILE;

HFONT

字体的句柄。

此类型在 WinDef.h 中声明,如下所示:

typedef HANDLE HFONT;

HGDIOBJ

GDI 对象的句柄。

此类型在 WinDef.h 中声明,如下所示:

typedef HANDLE HGDIOBJ;

HGLOBAL

全局内存块的句柄。

此类型在 WinDef.h 中声明,如下所示:

typedef HANDLE HGLOBAL;

HHOOK

挂钩的句柄。

此类型在 WinDef.h 中声明,如下所示:

typedef HANDLE HHOOK;

HICON

图标的句柄。

此类型在 WinDef.h 中声明,如下所示:

typedef HANDLE HICON;

HINSTANCE

实例的句柄。 这是内存中模块的基址。

HMODULEHINSTANCE 目前相同,但在 16 位 Windows 中表示不同的内容。

此类型在 WinDef.h 中声明,如下所示:

typedef HANDLE HINSTANCE;

HKEY

注册表项的句柄。

此类型在 WinDef.h 中声明,如下所示:

typedef HANDLE HKEY;

HKL

输入区域设置标识符。

此类型在 WinDef.h 中声明,如下所示:

typedef HANDLE HKL;

HLOCAL

本地内存块的句柄。

此类型在 WinDef.h 中声明,如下所示:

typedef HANDLE HLOCAL;

HMENU

菜单的句柄。

此类型在 WinDef.h 中声明,如下所示:

typedef HANDLE HMENU;

HMETAFILE

图元文件句柄。

此类型在 WinDef.h 中声明,如下所示:

typedef HANDLE HMETAFILE;

HMODULE

模块的句柄。 这是内存中模块的基址。

HMODULEHINSTANCE 在当前版本的 Windows 中相同,但在 16 位 Windows 中表示不同的内容。

此类型在 WinDef.h 中声明,如下所示:

typedef HINSTANCE HMODULE;

HMONITOR

显示监视器的句柄。

此类型在 WinDef.h 中声明,如下所示:

if(WINVER >= 0x0500) typedef HANDLE HMONITOR;

HPALETTE

调色板的句柄。

此类型在 WinDef.h 中声明,如下所示:

typedef HANDLE HPALETTE;

HPEN

的句柄。

此类型在 WinDef.h 中声明,如下所示:

typedef HANDLE HPEN;

HRESULT

COM 接口使用的返回代码。 有关详细信息,请参阅 COM 错误代码的结构。 若要测试 HRESULT 值,请使用 FAILEDSUCCEEDED 宏。

此类型在 WinNT.h 中声明,如下所示:

typedef LONG HRESULT;

HRGN

区域的句柄。

此类型在 WinDef.h 中声明,如下所示:

typedef HANDLE HRGN;

HRSRC

资源的句柄。

此类型在 WinDef.h 中声明,如下所示:

typedef HANDLE HRSRC;

HSZ

DDE 字符串的句柄。

此类型在 Ddeml.h 中声明,如下所示:

typedef HANDLE HSZ;

HWINSTA

窗口工作站的句柄。

此类型在 WinDef.h 中声明,如下所示:

typedef HANDLE WINSTA;

HWND

窗口的句柄。

此类型在 WinDef.h 中声明,如下所示:

typedef HANDLE HWND;

Int

32 位带符号整数。 范围是 -2147483648 到 2147483647 decimal。

此类型在 WinDef.h 中声明,如下所示:

typedef int INT;

INT_PTR

指针精度的有符号整数类型。 在将指针强制转换为整数时使用 以执行指针算术。

此类型在 BaseTsd.h 中声明,如下所示:

C++
#if defined(_WIN64) 
 typedef __int64 INT_PTR; 
#else 
 typedef int INT_PTR;
#endif
INT8

8 位有符号整数。

此类型在 BaseTsd.h 中声明,如下所示:

typedef signed char INT8;

INT16

16 位带符号整数。

此类型在 BaseTsd.h 中声明,如下所示:

typedef signed short INT16;

INT32

32 位带符号整数。 范围是 -2147483648 到 2147483647 decimal。

此类型在 BaseTsd.h 中声明,如下所示:

typedef signed int INT32;

INT64

64 位带符号整数。 范围是 -9223372036854775808 到 9223372036854775807 decimal。

此类型在 BaseTsd.h 中声明,如下所示:

typedef signed __int64 INT64;

LANGID

语言标识符。 有关详细信息,请参阅 语言标识符

此类型在 WinNT.h 中声明,如下所示:

typedef WORD LANGID;

Lcid

区域设置标识符。 有关详细信息,请参阅 区域设置标识符

此类型在 WinNT.h 中声明,如下所示:

typedef DWORD LCID;

LCTYPE

区域设置信息类型。 有关列表,请参阅 区域设置信息常量

此类型在 WinNls.h 中声明,如下所示:

typedef DWORD LCTYPE;

LGRPID

语言组标识符。 有关列表,请参阅 EnumLanguageGroupLocales

此类型在 WinNls.h 中声明,如下所示:

typedef DWORD LGRPID;

32 位带符号整数。 范围为 -2147483648 到 2147483647 十进制。

此类型在 WinNT.h 中声明,如下所示:

typedef long LONG;

LONGLONG

64 位带符号整数。 范围为 -9223372036854775808 到 9223372036854775807 十进制。

此类型在 WinNT.h 中声明,如下所示:

C++
#if !defined(_M_IX86)
 typedef __int64 LONGLONG; 
#else
 typedef double LONGLONG;
#endif
LONG_PTR

指针精度的有符号长类型。 将指针强制转换为 long 以执行指针算术时使用。

此类型在 BaseTsd.h 中声明,如下所示:

C++
#if defined(_WIN64)
 typedef __int64 LONG_PTR; 
#else
 typedef long LONG_PTR;
#endif
LONG32

32 位带符号整数。 范围为 -2147483648 到 2147483647 十进制。

此类型在 BaseTsd.h 中声明,如下所示:

typedef signed int LONG32;

LONG64

64 位带符号整数。 范围为 -9223372036854775808 到 9223372036854775807 十进制。

此类型在 BaseTsd.h 中声明,如下所示:

typedef __int64 LONG64;

LPARAM

消息参数。

此类型在 WinDef.h 中声明,如下所示:

typedef LONG_PTR LPARAM;

LPBOOL

指向 BOOL 的指针。

此类型在 WinDef.h 中声明,如下所示:

typedef BOOL far *LPBOOL;

LPBYTE

指向 BYTE 的指针。

此类型在 WinDef.h 中声明,如下所示:

typedef BYTE far *LPBYTE;

LPCOLORREF

指向 COLORREF 值的指针。

此类型在 WinDef.h 中声明,如下所示:

typedef DWORD *LPCOLORREF;

LPCSTR

指向以 null 结尾的常量字符串的指针,该字符串由 8 位 Windows (ANSI) 字符。 有关详细信息,请参阅 字体使用的字符集

此类型在 WinNT.h 中声明,如下所示:

typedef __nullterminated CONST CHAR *LPCSTR;

LPCTSTR

如果定义了 UNICODE,则为 LPCWSTR,否则为 LPCSTR。 有关详细信息,请参阅 字符串的 Windows 数据类型

此类型在 WinNT.h 中声明,如下所示:

C++
#ifdef UNICODE
 typedef LPCWSTR LPCTSTR; 
#else
 typedef LPCSTR LPCTSTR;
#endif
LPCVOID

指向任何类型的常量的指针。

此类型在 WinDef.h 中声明,如下所示:

typedef CONST void *LPCVOID;

LPCWSTR

指向 16 位 Unicode 字符的以 null 结尾的常量字符串的指针。 有关详细信息,请参阅 字体使用的字符集

此类型在 WinNT.h 中声明,如下所示:

typedef CONST WCHAR *LPCWSTR;

LPDWORD

指向 DWORD 的指针。

此类型在 WinDef.h 中声明,如下所示:

typedef DWORD *LPDWORD;

LPHANDLE

指向 HANDLE 的指针。

此类型在 WinDef.h 中声明,如下所示:

typedef HANDLE *LPHANDLE;

LPINT

指向 INT 的指针。

此类型在 WinDef.h 中声明,如下所示:

typedef int *LPINT;

LPLONG

指向 LONG 的指针。

此类型在 WinDef.h 中声明,如下所示:

typedef long *LPLONG;

LPSTR

指向以 null 结尾的字符串的指针,该字符串由 8 位 Windows (ANSI) 字符。 有关详细信息,请参阅 字体使用的字符集

此类型在 WinNT.h 中声明,如下所示:

typedef CHAR *LPSTR;

LPTSTR

如果定义了 UNICODE,则为 LPWSTR;否则为 LPSTR。 有关详细信息,请参阅 字符串的 Windows 数据类型

此类型在 WinNT.h 中声明,如下所示:

C++
#ifdef UNICODE
 typedef LPWSTR LPTSTR;
#else
 typedef LPSTR LPTSTR;
#endif
LPVOID

指向任意类型的指针。

此类型在 WinDef.h 中声明,如下所示:

typedef void *LPVOID;

LPWORD

指向 WORD 的指针。

此类型在 WinDef.h 中声明,如下所示:

typedef WORD *LPWORD;

LPWSTR

指向以 null 结尾的 16 位 Unicode 字符字符串的指针。 有关详细信息,请参阅 字体使用的字符集

此类型在 WinNT.h 中声明,如下所示:

typedef WCHAR *LPWSTR;

LRESULT

消息处理的签名结果。

此类型在 WinDef.h 中声明,如下所示:

typedef LONG_PTR LRESULT;

PBOOL

指向 BOOL 的指针。

此类型在 WinDef.h 中声明,如下所示:

typedef BOOL *PBOOL;

PBOOLEAN

指向 BOOLEAN 的指针。

此类型在 WinNT.h 中声明,如下所示:

typedef BOOLEAN *PBOOLEAN;

PBYTE

指向 BYTE 的指针。

此类型在 WinDef.h 中声明,如下所示:

typedef BYTE *PBYTE;

PCHAR

指向 CHAR 的指针。

此类型在 WinNT.h 中声明,如下所示:

typedef CHAR *PCHAR;

PCSTR

指向以 null 结尾的常量字符串的指针,该字符串由 8 位 Windows (ANSI) 字符。 有关详细信息,请参阅 字体使用的字符集

此类型在 WinNT.h 中声明,如下所示:

typedef CONST CHAR *PCSTR;

PCTSTR

如果定义了 UNICODE,则为 PCWSTR,否则为 PCSTR。 有关详细信息,请参阅 字符串的 Windows 数据类型

此类型在 WinNT.h 中声明,如下所示:

C++
#ifdef UNICODE
 typedef LPCWSTR PCTSTR;
#else
 typedef LPCSTR PCTSTR;
#endif
PCWSTR

指向 16 位 Unicode 字符的以 null 结尾的常量字符串的指针。 有关详细信息,请参阅 字体使用的字符集

此类型在 WinNT.h 中声明,如下所示:

typedef CONST WCHAR *PCWSTR;

PDWORD

指向 DWORD 的指针。

此类型在 WinDef.h 中声明,如下所示:

typedef DWORD *PDWORD;

PDWORDLONG

指向 DWORDLONG 的指针。

此类型在 WinNT.h 中声明,如下所示:

typedef DWORDLONG *PDWORDLONG;

PDWORD_PTR

指向 DWORD_PTR的指针。

此类型在 BaseTsd.h 中声明,如下所示:

typedef DWORD_PTR *PDWORD_PTR;

PDWORD32

指向 DWORD32 的指针。

此类型在 BaseTsd.h 中声明,如下所示:

typedef DWORD32 *PDWORD32;

PDWORD64

指向 DWORD64 的指针。

此类型在 BaseTsd.h 中声明,如下所示:

typedef DWORD64 *PDWORD64;

PFLOAT

指向 FLOAT 的指针。

此类型在 WinDef.h 中声明,如下所示:

typedef FLOAT *PFLOAT;

PHALF_PTR

指向 HALF_PTR的指针。

此类型在 BaseTsd.h 中声明,如下所示:

C++
#ifdef _WIN64
 typedef HALF_PTR *PHALF_PTR;
#else
 typedef HALF_PTR *PHALF_PTR;
#endif
PHANDLE

指向 HANDLE 的指针。

此类型在 WinNT.h 中声明,如下所示:

typedef HANDLE *PHANDLE;

PHKEY

指向 HKEY 的指针。

此类型在 WinDef.h 中声明,如下所示:

typedef HKEY *PHKEY;

品脱

指向 INT 的指针。

此类型在 WinDef.h 中声明,如下所示:

typedef int *PINT;

PINT_PTR

指向 INT_PTR的指针。

此类型在 BaseTsd.h 中声明,如下所示:

typedef INT_PTR *PINT_PTR;

PINT8

指向 INT8 的指针。

此类型在 BaseTsd.h 中声明,如下所示:

typedef INT8 *PINT8;

PINT16

指向 INT16 的指针。

此类型在 BaseTsd.h 中声明,如下所示:

typedef INT16 *PINT16;

PINT32

指向 INT32 的指针。

此类型在 BaseTsd.h 中声明,如下所示:

typedef INT32 *PINT32;

PINT64

指向 INT64 的指针。

此类型在 BaseTsd.h 中声明,如下所示:

typedef INT64 *PINT64;

PLCID

指向 LCID 的指针。

此类型在 WinNT.h 中声明,如下所示:

typedef PDWORD PLCID;

PLONG

指向 LONG 的指针。

此类型在 WinNT.h 中声明,如下所示:

typedef LONG *PLONG;

PLONGLONG

指向 LONGLONG 的指针。

此类型在 WinNT.h 中声明,如下所示:

typedef LONGLONG *PLONGLONG;

PLONG_PTR

指向 LONG_PTR的指针。

此类型在 BaseTsd.h 中声明,如下所示:

typedef LONG_PTR *PLONG_PTR;

PLONG32

指向 LONG32 的指针。

此类型在 BaseTsd.h 中声明,如下所示:

typedef LONG32 *PLONG32;

PLONG64

指向 LONG64 的指针。

此类型在 BaseTsd.h 中声明,如下所示:

typedef LONG64 *PLONG64;

POINTER_32

32 位指针。 在 32 位系统上,这是一个本机指针。 在 64 位系统上,这是截断的 64 位指针。

此类型在 BaseTsd.h 中声明,如下所示:

C++
#if defined(_WIN64)
#define POINTER_32 __ptr32
#else
#define POINTER_32
#endif
POINTER_64

64 位指针。 在 64 位系统上,这是一个本机指针。 在 32 位系统上,这是一个符号扩展的 32 位指针。

请注意,假定高指针位的状态是不安全的。

此类型在 BaseTsd.h 中声明,如下所示:

C++
#if (_MSC_VER >= 1300)
#define POINTER_64 __ptr64
#else
#define POINTER_64
#endif
POINTER_SIGNED

有符号的指针。

此类型在 BaseTsd.h 中声明,如下所示:

#define POINTER_SIGNED __sptr

POINTER_UNSIGNED

无符号指针。

此类型在 BaseTsd.h 中声明,如下所示:

#define POINTER_UNSIGNED __uptr

PSHORT

指向 SHORT 的指针。

此类型在 WinNT.h 中声明,如下所示:

typedef SHORT *PSHORT;

PSIZE_T

指向 SIZE_T的指针。

此类型在 BaseTsd.h 中声明,如下所示:

typedef SIZE_T *PSIZE_T;

PSSIZE_T

指向 SSIZE_T的指针。

此类型在 BaseTsd.h 中声明,如下所示:

typedef SSIZE_T *PSSIZE_T;

PSTR

指向以 null 结尾的 8 位 Windows 字符串的指针, (ANSI) 字符。 有关详细信息,请参阅 字体使用的字符集

此类型在 WinNT.h 中声明,如下所示:

typedef CHAR *PSTR;

PTBYTE

指向 TBYTE 的指针。

此类型在 WinNT.h 中声明,如下所示:

typedef TBYTE *PTBYTE;

PTCHAR

指向 TCHAR 的指针。

此类型在 WinNT.h 中声明,如下所示:

typedef TCHAR *PTCHAR;

PTSTR

如果定义了 UNICODE,则为 PWSTR,否则为 PSTR。 有关详细信息,请参阅 字符串的 Windows 数据类型

此类型在 WinNT.h 中声明,如下所示:

C++
#ifdef UNICODE
 typedef LPWSTR PTSTR;
#else typedef LPSTR PTSTR;
#endif
PUCHAR

指向 UCHAR 的指针。

此类型在 WinDef.h 中声明,如下所示:

typedef UCHAR *PUCHAR;

PUHALF_PTR

指向 UHALF_PTR的指针。

此类型在 BaseTsd.h 中声明,如下所示:

C++
#ifdef _WIN64
 typedef UHALF_PTR *PUHALF_PTR;
#else
 typedef UHALF_PTR *PUHALF_PTR;
#endif
PUINT

指向 UINT 的指针。

此类型在 WinDef.h 中声明,如下所示:

typedef UINT *PUINT;

PUINT_PTR

指向 UINT_PTR的指针。

此类型在 BaseTsd.h 中声明,如下所示:

typedef UINT_PTR *PUINT_PTR;

PUINT8

指向 UINT8 的指针。

此类型在 BaseTsd.h 中声明,如下所示:

typedef UINT8 *PUINT8;

PUINT16

指向 UINT16 的指针。

此类型在 BaseTsd.h 中声明,如下所示:

typedef UINT16 *PUINT16;

PUINT32

指向 UINT32 的指针。

此类型在 BaseTsd.h 中声明,如下所示:

typedef UINT32 *PUINT32;

PUINT64

指向 UINT64 的指针。

此类型在 BaseTsd.h 中声明,如下所示:

typedef UINT64 *PUINT64;

PULONG

指向 ULONG 的指针。

此类型在 WinDef.h 中声明,如下所示:

typedef ULONG *PULONG;

PULONGLONG

指向 ULONGLONG 的指针。

此类型在 WinDef.h 中声明,如下所示:

typedef ULONGLONG *PULONGLONG;

PULONG_PTR

指向 ULONG_PTR的指针。

此类型在 BaseTsd.h 中声明,如下所示:

typedef ULONG_PTR *PULONG_PTR;

PULONG32

指向 ULONG32 的指针。

此类型在 BaseTsd.h 中声明,如下所示:

typedef ULONG32 *PULONG32;

PULONG64

指向 ULONG64 的指针。

此类型在 BaseTsd.h 中声明,如下所示:

typedef ULONG64 *PULONG64;

PUSHORT

指向 USHORT 的指针。

此类型在 WinDef.h 中声明,如下所示:

typedef USHORT *PUSHORT;

PVOID

指向任意类型的指针。

此类型在 WinNT.h 中声明,如下所示:

typedef void *PVOID;

PWCHAR

指向 WCHAR 的指针。

此类型在 WinNT.h 中声明,如下所示:

typedef WCHAR *PWCHAR;

PWORD

指向 WORD 的指针。

此类型在 WinDef.h 中声明,如下所示:

typedef WORD *PWORD;

PWSTR

指向以 null 结尾的 16 位 Unicode 字符字符串的指针。 有关详细信息,请参阅 字体使用的字符集

此类型在 WinNT.h 中声明,如下所示:

typedef WCHAR *PWSTR;

QWORD

64 位无符号整数。

此类型声明如下:

typedef unsigned __int64 QWORD;

SC_HANDLE

服务控制管理器数据库的句柄。 有关详细信息,请参阅 SCM 句柄

此类型在 WinSvc.h 中声明,如下所示:

typedef HANDLE SC_HANDLE;

SC_LOCK

服务控制管理器数据库的锁。 有关详细信息,请参阅 SCM 句柄

此类型在 WinSvc.h 中声明,如下所示:

typedef LPVOID SC_LOCK;

SERVICE_STATUS_HANDLE

服务状态值的句柄。 有关详细信息,请参阅 SCM 句柄

此类型在 WinSvc.h 中声明,如下所示:

typedef HANDLE SERVICE_STATUS_HANDLE;

16 位整数。 范围是 -32768 到 32767 十进制。

此类型在 WinNT.h 中声明,如下所示:

typedef short SHORT;

SIZE_T

指针可以指向的最大字节数。 对于必须跨越指针全范围的计数,请使用 。

此类型在 BaseTsd.h 中声明,如下所示:

typedef ULONG_PTR SIZE_T;

SSIZE_T

SIZE_T的签名版本。

此类型在 BaseTsd.h 中声明,如下所示:

typedef LONG_PTR SSIZE_T;

TBYTE

如果定义了 UNICODE,则为 WCHAR,否则为 CHAR

此类型在 WinNT.h 中声明,如下所示:

C++
#ifdef UNICODE
 typedef WCHAR TBYTE;
#else
 typedef unsigned char TBYTE;
#endif
TCHAR

如果定义了 UNICODE,则为 WCHAR,否则为 CHAR

此类型在 WinNT.h 中声明,如下所示:

C++
#ifdef UNICODE
 typedef WCHAR TCHAR;
#else
 typedef char TCHAR;
#endif
UCHAR

未签名 的 CHAR

此类型在 WinDef.h 中声明,如下所示:

typedef unsigned char UCHAR;

UHALF_PTR

无符号 HALF_PTR。 在包含指针和两个小字段的结构中使用。

此类型在 BaseTsd.h 中声明,如下所示:

C++
#ifdef _WIN64
 typedef unsigned int UHALF_PTR;
#else
 typedef unsigned short UHALF_PTR;
#endif
UINT

未签名 的 INT。 范围为 0 到 4294967295 decimal。

此类型在 WinDef.h 中声明,如下所示:

typedef unsigned int UINT;

UINT_PTR

无符号 INT_PTR

此类型在 BaseTsd.h 中声明,如下所示:

C++
#if defined(_WIN64)
 typedef unsigned __int64 UINT_PTR;
#else
 typedef unsigned int UINT_PTR;
#endif
UINT8

未签名 的 INT8

此类型在 BaseTsd.h 中声明,如下所示:

typedef unsigned char UINT8;

UINT16

未签名 的 INT16

此类型在 BaseTsd.h 中声明,如下所示:

typedef unsigned short UINT16;

UINT32

未签名 的 INT32。 范围为 0 到 4294967295 decimal。

此类型在 BaseTsd.h 中声明,如下所示:

typedef unsigned int UINT32;

UINT64

未签名 的 INT64。 范围是 0 到 18446744073709551615 十进制。

此类型在 BaseTsd.h 中声明,如下所示:

typedef unsigned __int64 UINT64;

ULONG

无符号 LONG。 范围为 0 到 4294967295 decimal。

此类型在 WinDef.h 中声明,如下所示:

typedef unsigned long ULONG;

ULONGLONG

64 位无符号整数。 范围是 0 到 18446744073709551615 十进制。

此类型在 WinNT.h 中声明,如下所示:

C++
#if !defined(_M_IX86)
 typedef unsigned __int64 ULONGLONG;
#else
 typedef double ULONGLONG;
#endif
ULONG_PTR

无符号 LONG_PTR

此类型在 BaseTsd.h 中声明,如下所示:

C++
#if defined(_WIN64)
 typedef unsigned __int64 ULONG_PTR;
#else
 typedef unsigned long ULONG_PTR;
#endif
ULONG32

无符号 LONG32。 范围为 0 到 4294967295 decimal。

此类型在 BaseTsd.h 中声明,如下所示:

typedef unsigned int ULONG32;

ULONG64

无符号 LONG64。 范围是 0 到 18446744073709551615 十进制。

此类型在 BaseTsd.h 中声明,如下所示:

typedef unsigned __int64 ULONG64;

UNICODE_STRING

一个 Unicode 字符串。

此类型在 Winternl.h 中声明,如下所示:

C++
typedef struct _UNICODE_STRING {
  USHORT  Length;
  USHORT  MaximumLength;
  PWSTR  Buffer;
} UNICODE_STRING;
typedef UNICODE_STRING *PUNICODE_STRING;
typedef const UNICODE_STRING *PCUNICODE_STRING;
USHORT

无符号 SHORT。 范围是 0 到 65535 十进制。

此类型在 WinDef.h 中声明,如下所示:

typedef unsigned short USHORT;

Usn

更新序列号 (USN) 。

此类型在 WinNT.h 中声明,如下所示:

typedef LONGLONG USN;

无效

任何类型。

此类型在 WinNT.h 中声明,如下所示:

#define VOID void

WCHAR

16 位 Unicode 字符。 有关详细信息,请参阅 字体使用的字符集

此类型在 WinNT.h 中声明,如下所示:

typedef wchar_t WCHAR;

WINAPI

系统函数的调用约定。

此类型在 WinDef.h 中声明,如下所示:

#define WINAPI __stdcall

CALLBACKWINAPIAPIENTRY 都用于定义具有__stdcall调用约定的函数。 Windows API 中的大多数函数都是使用 WINAPI 声明的。 你可能希望对实现的回调函数使用 CALLBACK 来帮助将函数标识为回调函数。

16 位无符号整数。 范围是 0 到 65535 十进制。

此类型在 WinDef.h 中声明,如下所示:

typedef unsigned short WORD;

WPARAM

消息参数。

此类型在 WinDef.h 中声明,如下所示:

typedef UINT_PTR WPARAM;

要求

要求
最低受支持的客户端
Windows XP [仅限桌面应用]
最低受支持的服务器
Windows Server 2003 [仅限桌面应用]
标头
BaseTsd.h;
WinDef.h;
WinNT.h