unknwnbase.idl 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. cpp_quote("/**")
  2. cpp_quote(" * This file is part of the mingw-w64 runtime package.")
  3. cpp_quote(" * No warranty is given; refer to the file DISCLAIMER within this package.")
  4. cpp_quote(" */")
  5. cpp_quote("")
  6. cpp_quote("#include <winapifamily.h>")
  7. #if !defined (BUILDING_UNKNWN_IDL) && !defined (DO_NO_IMPORTS)
  8. cpp_quote("")
  9. import "wtypesbase.idl";
  10. #endif
  11. cpp_quote("")
  12. cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
  13. [local, object, uuid (00000000-0000-0000-C000-000000000046), pointer_default (unique)]
  14. interface IUnknown {
  15. typedef [unique] IUnknown *LPUNKNOWN;
  16. cpp_quote("")
  17. cpp_quote("#if defined(__cplusplus) && !defined(CINTERFACE)")
  18. cpp_quote("EXTERN_C const IID IID_IUnknown;")
  19. cpp_quote("")
  20. cpp_quote("extern \"C++\" {")
  21. cpp_quote(" MIDL_INTERFACE(\"00000000-0000-0000-C000-000000000046\")")
  22. cpp_quote(" IUnknown {")
  23. cpp_quote(" public:")
  24. cpp_quote(" BEGIN_INTERFACE")
  25. cpp_quote(" virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void **ppvObject) = 0;")
  26. cpp_quote(" virtual ULONG STDMETHODCALLTYPE AddRef(void) = 0;")
  27. cpp_quote(" virtual ULONG STDMETHODCALLTYPE Release(void) = 0;")
  28. cpp_quote("")
  29. cpp_quote(" template<class Q>")
  30. cpp_quote(" HRESULT STDMETHODCALLTYPE QueryInterface(Q **pp) {")
  31. cpp_quote(" return QueryInterface(__uuidof(Q), (void **)pp);")
  32. cpp_quote(" }")
  33. cpp_quote(" END_INTERFACE")
  34. cpp_quote(" };")
  35. cpp_quote("}")
  36. cpp_quote("__CRT_UUID_DECL(IUnknown, 0x00000000, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)")
  37. cpp_quote("#else")
  38. HRESULT QueryInterface ([in] REFIID riid,[out, iid_is (riid)] void **ppvObject);
  39. ULONG AddRef ();
  40. ULONG Release ();
  41. }
  42. cpp_quote("#endif")
  43. cpp_quote("HRESULT STDMETHODCALLTYPE IUnknown_QueryInterface_Proxy(IUnknown *This, REFIID riid, void **ppvObject);")
  44. cpp_quote("void __RPC_STUB IUnknown_QueryInterface_Stub(IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase);")
  45. cpp_quote("ULONG STDMETHODCALLTYPE IUnknown_AddRef_Proxy(IUnknown *This);")
  46. cpp_quote("void __RPC_STUB IUnknown_AddRef_Stub(IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase);")
  47. cpp_quote("ULONG STDMETHODCALLTYPE IUnknown_Release_Proxy(IUnknown *This);")
  48. cpp_quote("void __RPC_STUB IUnknown_Release_Stub(IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase);")
  49. cpp_quote("#endif")
  50. cpp_quote("")
  51. cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
  52. [local, object, uuid (000e0000-0000-0000-C000-000000000046), pointer_default (unique)]
  53. interface AsyncIUnknown : IUnknown {
  54. HRESULT Begin_QueryInterface ([in] REFIID riid);
  55. HRESULT Finish_QueryInterface ([out] void **ppvObject);
  56. HRESULT Begin_AddRef ();
  57. ULONG Finish_AddRef ();
  58. HRESULT Begin_Release ();
  59. ULONG Finish_Release ();
  60. }
  61. cpp_quote("#endif")
  62. cpp_quote("")
  63. cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
  64. [object, uuid (00000001-0000-0000-C000-000000000046), pointer_default (unique)]
  65. interface IClassFactory : IUnknown {
  66. typedef [unique] IClassFactory *LPCLASSFACTORY;
  67. cpp_quote("")
  68. [local] HRESULT CreateInstance ([in, unique] IUnknown *pUnkOuter,[in] REFIID riid,[out, iid_is (riid)] void **ppvObject);
  69. [call_as (CreateInstance)] HRESULT RemoteCreateInstance ([in] REFIID riid,[out, iid_is (riid)] IUnknown **ppvObject);
  70. [local] HRESULT LockServer ([in] BOOL fLock);
  71. [call_as (LockServer)] HRESULT __stdcall RemoteLockServer ([in] BOOL fLock);
  72. }
  73. cpp_quote("#endif")