1 /**
2  * Windows API header module
3  *
4  * Translated from MinGW Windows headers
5  *
6  * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
7  * Source: $(DRUNTIMESRC core/sys/windows/_unknwn.d)
8  */
9 module core.sys.windows.unknwn;
10 version (Windows):
11 nothrow:
12 
13 import core.sys.windows.objfwd, core.sys.windows.windef, core.sys.windows.wtypes;
14 import core.sys.windows.basetyps;
15 
16 extern (Windows) {
17     void* MIDL_user_allocate(size_t);
18     void MIDL_user_free(void*);
19 }
20 
21 
22 extern (Windows) {
23 
24     interface IUnknown {
25         HRESULT QueryInterface(IID* riid, void** pvObject);
26         ULONG AddRef();
27         ULONG Release();
28     }
29 
30     alias IUnknown LPUNKNOWN;
31 
32     interface IClassFactory : IUnknown {
33         HRESULT CreateInstance(IUnknown UnkOuter, IID* riid, void** pvObject);
34         HRESULT LockServer(BOOL fLock);
35     }
36     alias IClassFactory LPCLASSFACTORY;
37 
38     /+
39     // These do not seem to be necessary (or desirable) for D.
40     HRESULT IUnknown_QueryInterface_Proxy(IUnknown,REFIID,void**);
41     ULONG IUnknown_AddRef_Proxy(IUnknown);
42     ULONG IUnknown_Release_Proxy(IUnknown);
43     HRESULT IClassFactory_RemoteCreateInstance_Proxy(IClassFactory,REFIID,IUnknown*);
44     HRESULT IClassFactory_RemoteLockServer_Proxy(IClassFactory,BOOL);
45     HRESULT IClassFactory_CreateInstance_Proxy(IClassFactory,IUnknown,REFIID,void**);
46     HRESULT IClassFactory_CreateInstance_Stub(IClassFactory,REFIID,IUnknown*);
47     HRESULT IClassFactory_LockServer_Proxy(IClassFactory,BOOL);
48     HRESULT IClassFactory_LockServer_Stub(IClassFactory,BOOL);
49 
50     void IUnknown_QueryInterface_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD);
51     void IUnknown_AddRef_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD);
52     void IUnknown_Release_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD);
53     void IClassFactory_RemoteCreateInstance_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD);
54     void IClassFactory_RemoteLockServer_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD);
55     +/
56 }