Howdy all,

I'm throwing this here because it sorta spans all Windows programming in general.

What is a HWND?

I'm writing a Win32 framework, and I'm starting with GUI elements. Basically, I don't want to include Windows.h into the project from the get-go.. if I don't have to. This led me to wonder.. what can I declare a HWND as, without including either windows.h, or windef.h.

This lead me to..

http://msdn2.microsoft.com/en-us/library/aa383751.aspx

That is a list of basic Windows data types, and their declarations in their respective header files. If you move from HWND and connect the links.. this is what happens:

typedef HANDLE HWND;
typedef PVOID HANDLE;
typedef void *PVOID;

...so... a HWND is a void pointer? Isn't that a bit .. icky? If I declare a HWND as a void pointer.. will Windows just know what to do with it? Or am I missing something?

chem