The Win32 HANDLE type under D2

Yao Gomez yao.gomez at
Sat Feb 4 11:40:34 PST 2012

On Saturday, 4 February 2012 at 19:32:26 UTC, Stewart Gordon 
> Under D1, has HANDLE it as a typedef of 
> void*.  While I forget whether they're actually pointers.  I 
> guess it fits given that the C headers define it as void* and 
> that handles are fundamentally different from pointers from an 
> app's point of view.
> Under D2, has it as an alias of void*.
> In the WindowsAPI bindings, the definition of HANDLE is 
> versioned to this effect.
> But there ought to be a better way of dealing with it.  Anyone 
> got any thoughts?  Are there any plans at the moment for the 
> future of the HANDLE type?
> Stewart.

Just use the Win32 API way when STRICT is defined:

  struct HANDLE__{ int unused; }
  alias HANDLE__* HANDLE;

for different handles, just create a template that creates 
different handles with different names:


  // struct HWND__{ int unused; }
  // alias HWND__* HWND;

More information about the Digitalmars-d mailing list