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 /// Automatically imported and edited from the druntime module
10 /// core.sys.windows.unknwn for the auto-generated win32 package.
11 module win32.unknwn;
12 //version (Windows):
13 @system:
14 
15 import win32.objfwd, win32.windef, win32.wtypes;
16 import win32.basetyps;
17 
18 extern (Windows) {
19     void* MIDL_user_allocate(size_t);
20     void MIDL_user_free(void*);
21 }
22 
23 
24 extern (Windows) {
25 
26     interface IUnknown {
27         HRESULT QueryInterface(IID* riid, void** pvObject);
28         ULONG AddRef();
29         ULONG Release();
30     }
31 
32     alias IUnknown LPUNKNOWN;
33 
34     interface IClassFactory : IUnknown {
35         HRESULT CreateInstance(IUnknown UnkOuter, IID* riid, void** pvObject);
36         HRESULT LockServer(BOOL fLock);
37     }
38     alias IClassFactory LPCLASSFACTORY;
39 
40     /+
41     // These do not seem to be necessary (or desirable) for D.
42     HRESULT IUnknown_QueryInterface_Proxy(IUnknown,REFIID,void**);
43     ULONG IUnknown_AddRef_Proxy(IUnknown);
44     ULONG IUnknown_Release_Proxy(IUnknown);
45     HRESULT IClassFactory_RemoteCreateInstance_Proxy(IClassFactory,REFIID,IUnknown*);
46     HRESULT IClassFactory_RemoteLockServer_Proxy(IClassFactory,BOOL);
47     HRESULT IClassFactory_CreateInstance_Proxy(IClassFactory,IUnknown,REFIID,void**);
48     HRESULT IClassFactory_CreateInstance_Stub(IClassFactory,REFIID,IUnknown*);
49     HRESULT IClassFactory_LockServer_Proxy(IClassFactory,BOOL);
50     HRESULT IClassFactory_LockServer_Stub(IClassFactory,BOOL);
51 
52     void IUnknown_QueryInterface_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD);
53     void IUnknown_AddRef_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD);
54     void IUnknown_Release_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD);
55     void IClassFactory_RemoteCreateInstance_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD);
56     void IClassFactory_RemoteLockServer_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD);
57     +/
58 }