Windows 資料類型

Windows 支援的資料類型是用來定義函式傳回值、函式和訊息參數,以及結構成員。 它們會定義這些專案的大小和意義。 如需基礎 C/C++ 資料類型的詳細資訊,請參閱 資料類型範圍

下表包含下列類型:字元、整數、布林值、指標和控制碼。 大部分 C 編譯器通用字元、整數和布林類型。 大部分的指標類型名稱開頭都是 P 或 LP 的前置詞。 控制碼是指已載入記憶體的資源。

如需處理 64 位整數的詳細資訊,請參閱 大型整數

資料類型 描述
APIENTRY 系統函式的呼叫慣例。
此類型會在 WinDef.h 中宣告,如下所示:
#define APIENTRY WINAPI
原子 Atom。 如需詳細資訊,請參閱 關於 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 指標精確度的不帶正負號 long 類型。 將指標轉換成長型別以執行指標算術時使用。 (也通常用於已擴充至 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值,請使用FAILED 和 SUCCEEDED宏。

此類型會在 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十進位。

此類型會在 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十進位。

此類型會在 BaseTsd.h 中宣告,如下所示:

typedef signed int INT32;

INT64

64 位元帶正負號的整數。 範圍是 -9223372036854775808到9223372036854775807十進位。

此類型會在 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

8 位 Windows (ANSI) 字元的常數 Null 終止字串指標。 如需詳細資訊,請參閱 字型使用的字元集

此類型會在 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

常數 Null 終止字串的指標,其為 16 位 Unicode 字元。 如需詳細資訊,請參閱 字型使用的字元集

此類型會在 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

8 位 Windows (ANSI) 字元之常數 Null 終止字串的指標。 如需詳細資訊,請參閱 字型所使用的字元集

此類型會在 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;

LCID

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

8 位 Windows (ANSI) 字元之 Null 終止字串的指標。 如需詳細資訊,請參閱 字型所使用的字元集

此類型會在 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

16 位 Unicode 字元之 Null 終止字串的指標。 如需詳細資訊,請參閱 字型所使用的字元集

此類型會在 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十進位。

此類型會在 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十進位。

此類型會在 BaseTsd.h 中宣告,如下所示:

typedef unsigned int UINT32;

UINT64

未簽署 的 INT64。 範圍是 0 到 18446744073709551615十進位。

此類型會在 BaseTsd.h 中宣告,如下所示:

typedef unsigned __int64 UINT64;

ULONG

未簽署 的 LONG。 範圍是 0 到 4294967295十進位。

此類型會在 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十進位。

此類型會在 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