句柄HWND数据类型
在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未定义的情况还不太了解。
作者:TMDJoJo