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 }