在VC++6中使用右鍵轉至定義一步一步查看HWND
1、
1
HWND
2、
1
#ifndef WIN_INTERNAL
2
DECLARE_HANDLE (HWND); //<-這裡
3
DECLARE_HANDLE (HHOOK);
4
#ifdef WINABLE
5
DECLARE_HANDLE (HEVENT);
6
#endif
7
#endif
3、
01
#ifdef STRICT //#ifndef STRICT
02
//#define STRICT 1
03
//#endif
04
typedef void *HANDLE;
05
#define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name //<-這裡
06
#else
07
typedef PVOID HANDLE; //typedef void *PVOID;
08
#define DECLARE_HANDLE(name) typedef HANDLE name //<-這裡
09
#endif
10
typedef HANDLE *PHANDLE;
整理一下
struct HWND__ {
int unused ;
};
typedef struct HWND__ *HWND; www.2cto.com
所以HWND應該是一個 HWND__型指針,而HWND__是一個包含一個int型數據結構的結構體。
只有在STRICT未定義的情況下 HWND 才是一個void指針。
PS:不過STRICT未定義的情況還不太了解。