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