<b>Windows Data Types</b>
<b></b>
Windows資料類型
由微軟Windows作業系統所支援的各種資料類型是用來定義函數的傳回值、函數和消息的參數以及結構體成員(因為Win32程式是用C語言來編寫,是以沒有“類”這個概念)的。這些資料類型定義了上述元素的尺碼(在記憶體中的,也就是占用記憶體的位元組數)和含義。筆者以前一直不太注意這些東西,結果在程式設計時可謂步履維艱。不同類型的常/變量,在程式用扮演的角色相去甚遠,了解這些類型,對剖析程式的工作原理是非常有用的。今天又是周末,我把這些類型列出來,然後把它們的“原形”也找出來——是不是很像“照妖鏡”呀。
下面這張表裡包括這些類型:字元類型(character),整數類型(integer),邏輯值類型(布爾型,海峽那邊的兄弟們喜歡叫“布林型”,Boolean),指針類型(pointer),句柄型(handle)。其中,字元類型、整數類型和邏輯值(布爾)類型是C語言編譯器通用的,也就是與标準C語言一樣。大多數指針類型都是以<b>P</b>(Pointer)或者<b>LP</b>(Long Pointer)字首開頭。“句柄”是指被裝載進記憶體的一個資源(本質而言就是指一定範圍内的唯一編号)。
下面這張表是我結合MSDN裡的資料制作的,因為自己也是初學,做的還比較粗糙,請大家多多指正:)
本質類型
位元組數
定義過程(來曆)
含義
ATOM
unsigned short
2
unsigned short→WORD→ATOM
在Atom表中,一鍵(16位整數)一值(一個String)為一個Atom。
BOOL
int
*
int→BOOL
邏輯變量,布爾值 (取值為 TRUE 或 FALSE)
BOOLEAN
unsigned char
1
unsigned char→BYTE→BOOLEAN
BYTE
unsigned char→BYTE
位元組型,8位。
CALLBACK
__stdcall
調用
__stdcall→CALLBACK
回調函數的調用約定
CHAR
char
char→CHAR
8位Windows字元(ANSI)
COLORREF
unsigned long
4
unsigned long→DWORD→COLORREF
紅,綠,藍(RGB)值
CONST
const
關鍵字
const→CONST
常量
CRITICAL_SECTION
RTL_CRITICAL_SECTION結構體
?
RTL_CRITICAL_SECTION(結構)→CRITICAL_SECTION
Critical-section對象
DWORD
unsigned long→DWORD
32位無符号整數
DWORD_PTR
unsigned long→ULONG_PTR→DWORD_PTR(另有其它路徑)
略……(用處挺大,不過太長了)
DWORD32
unsigned int
unsigned int→DWORD32
DWORD64
unsigned __int64
8
unsigned __int64→DWORD64
64位無符号整數
FLOAT
float
float→FLOAT
浮點數變量
HACCEL
HACCEL__結構體指針
由DECLARE_HANDLE(name)宏定義的指向HACCEL__結構體的指針
快捷鍵清單的句柄
HANDLE
void *(一個位址)
void *→HANDLE
對象的句柄
HBITMAP
HBITMAP__結構體指針
由DECLARE_HANDLE(name)宏定義的指向HBITMAP__結構體的指針
位圖的句柄
HBRUSH
HBRUSH__結構體指針
由DECLARE_HANDLE(name)宏定義……
畫刷的句柄
HCONV
HCONV__結構體指針
動态資料交換(DDE)會話的句柄
HCONVLIST
HCONVLIST__結構體指針
動态資料交換(DDE)會話清單的句柄
HCURSOR
HICON__結構體指針
HICON__ *→HICON→HCURSOR
光标的句柄
HDC
HDC__結構體指針
裝置上下文(DC)的句柄
HDDEDATA
HDDEDATA__結構體指針
動态資料交換資料的句柄
HDESK
HDESK__結構體指針
桌面(Desktop)的句柄
HDROP
HDROP__結構體指針
Handle to an internal drop structure.
HDWP
void *→HANDLE→HDWP
Handle to a deferred window position structure.
HENHMETAFILE
HENHMETAFILE__結構體指針
增強圖元檔案的句柄
HFILE
int→HFILE
由OpenFile(而不是CreateFile)打開的檔案的句柄.
HFONT
HFONT__結構體指針
字型的句柄
HGDIOBJ
void near *
void NEAR *→HGDIOBJ
GDI對象的句柄
HGLOBAL
void *→HANDLE→HGLOBAL
全局記憶體塊的句柄
HHOOK
HHOOK__結構體指針
句子(hook)的句柄
HICON
圖示的句柄
HIMAGELIST
_IMAGELIST結構體指針
_IMAGELIST *→HIMAGELIST
圖檔清單的句柄
HIMC
HIMC__結構體指針
輸入上下文的句柄
HINSTANCE
HINSTANCE__結構體指針
執行個體的句柄
HKEY
HKEY__結構體指針
由DECLARE_HANDLE(name)宏定義……(另有一條路徑,一樣)
系統資料庫鍵的句柄
HKL
HKL__結構體指針
輸入點辨別符
HLOCAL
void *→HANDLE→HLOCAL
本地記憶體塊的句柄
HMENU
HMENU__結構體指針
菜單的句柄
HMETAFILE
HMETAFILE__結構體指針
圖元檔案的句柄
HMODULE
HINSTANCE__*→HINSTANCE→HMODULE
子產品的句柄。值由子產品的位置來決定。
HMONITOR
HMONITOR__結構體指針
顯示器的句柄
HPALETTE
HPALETTE__結構體指針
調色闆的句柄
HPEN
HPEN__結構體指針
畫(線)筆的句柄
HRGN
HRGN__結構體指針
區域的句柄
HRSRC
HRSRC__結構體指針
資源的句柄
HSZ
HSZ__結構體指針
動态資料交換(DDE)字元串的句柄
HWINSTA
HWINSTA__結構體指針
視窗狀态的句柄
HWND
HWND__結構體指針
視窗的句柄
接下表
本文轉自 水之真谛 51CTO部落格,原文連結:http://blog.51cto.com/liutiemeng/18905,如需轉載請自行聯系原作者