The Win32 HANDLE type under D2

2012-02-04 Thread Stewart Gordon
Under D1, std.c.windows.windows 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, core.sys.windows

Re: The Win32 HANDLE type under D2

2012-02-04 Thread Yao Gomez
On Saturday, 4 February 2012 at 19:32:26 UTC, Stewart Gordon wrote: Under D1, std.c.windows.windows 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 f

Re: The Win32 HANDLE type under D2

2012-02-05 Thread Zachary Lund
On 02/04/2012 01:32 PM, Stewart Gordon wrote: Under D1, std.c.windows.windows 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

Re: The Win32 HANDLE type under D2

2012-02-05 Thread Stewart Gordon
On 04/02/2012 19:40, Yao Gomez wrote: Just use the Win32 API way when STRICT is defined: --- struct HANDLE__{ int unused; } alias HANDLE__* HANDLE; Looking through MinGW, this is the code: #ifdef STRICT typedef void *HANDLE; #define DECLARE_HANDLE(n) typedef struct n##__{int i;}*n #else typ

Re: The Win32 HANDLE type under D2

2012-02-05 Thread Stewart Gordon
On 05/02/2012 16:13, Stewart Gordon wrote: but found that it allows implicit conversions between all handle types, not just up the hierarchy. Is this a bug? I was wrong - it doesn't allow an arbitrary handle to be passed to a function accepting a specific handle type, but it does allow arbit