句柄HWND数据类型

2015-01-24 09:24:48 · 作者: · 浏览: 10

在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