inspectable.h 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. /*** Autogenerated by WIDL 7.7 from include/inspectable.idl - Do not edit ***/
  2. #ifdef _WIN32
  3. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  4. #define __REQUIRED_RPCNDR_H_VERSION__ 475
  5. #endif
  6. #include <rpc.h>
  7. #include <rpcndr.h>
  8. #endif
  9. #ifndef COM_NO_WINDOWS_H
  10. #include <windows.h>
  11. #include <ole2.h>
  12. #endif
  13. #ifndef __inspectable_h__
  14. #define __inspectable_h__
  15. /* Forward declarations */
  16. #ifndef __IInspectable_FWD_DEFINED__
  17. #define __IInspectable_FWD_DEFINED__
  18. typedef interface IInspectable IInspectable;
  19. #ifdef __cplusplus
  20. interface IInspectable;
  21. #endif /* __cplusplus */
  22. #endif
  23. /* Headers for imported files */
  24. #include <wtypes.h>
  25. #include <hstring.h>
  26. #include <unknwn.h>
  27. #ifdef __cplusplus
  28. extern "C" {
  29. #endif
  30. typedef enum TrustLevel {
  31. BaseTrust = 0,
  32. PartialTrust = 1,
  33. FullTrust = 2
  34. } TrustLevel;
  35. /*****************************************************************************
  36. * IInspectable interface
  37. */
  38. #ifndef __IInspectable_INTERFACE_DEFINED__
  39. #define __IInspectable_INTERFACE_DEFINED__
  40. DEFINE_GUID(IID_IInspectable, 0xaf86e2e0, 0xb12d, 0x4c6a, 0x9c,0x5a, 0xd7,0xaa,0x65,0x10,0x1e,0x90);
  41. #if defined(__cplusplus) && !defined(CINTERFACE)
  42. MIDL_INTERFACE("af86e2e0-b12d-4c6a-9c5a-d7aa65101e90")
  43. IInspectable : public IUnknown
  44. {
  45. virtual HRESULT STDMETHODCALLTYPE GetIids(
  46. ULONG *iidCount,
  47. IID **iids) = 0;
  48. virtual HRESULT STDMETHODCALLTYPE GetRuntimeClassName(
  49. HSTRING *className) = 0;
  50. virtual HRESULT STDMETHODCALLTYPE GetTrustLevel(
  51. TrustLevel *trustLevel) = 0;
  52. };
  53. #ifdef __CRT_UUID_DECL
  54. __CRT_UUID_DECL(IInspectable, 0xaf86e2e0, 0xb12d, 0x4c6a, 0x9c,0x5a, 0xd7,0xaa,0x65,0x10,0x1e,0x90)
  55. #endif
  56. #else
  57. typedef struct IInspectableVtbl {
  58. BEGIN_INTERFACE
  59. /*** IUnknown methods ***/
  60. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  61. IInspectable *This,
  62. REFIID riid,
  63. void **ppvObject);
  64. ULONG (STDMETHODCALLTYPE *AddRef)(
  65. IInspectable *This);
  66. ULONG (STDMETHODCALLTYPE *Release)(
  67. IInspectable *This);
  68. /*** IInspectable methods ***/
  69. HRESULT (STDMETHODCALLTYPE *GetIids)(
  70. IInspectable *This,
  71. ULONG *iidCount,
  72. IID **iids);
  73. HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
  74. IInspectable *This,
  75. HSTRING *className);
  76. HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
  77. IInspectable *This,
  78. TrustLevel *trustLevel);
  79. END_INTERFACE
  80. } IInspectableVtbl;
  81. interface IInspectable {
  82. CONST_VTBL IInspectableVtbl* lpVtbl;
  83. };
  84. #ifdef COBJMACROS
  85. #ifndef WIDL_C_INLINE_WRAPPERS
  86. /*** IUnknown methods ***/
  87. #define IInspectable_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  88. #define IInspectable_AddRef(This) (This)->lpVtbl->AddRef(This)
  89. #define IInspectable_Release(This) (This)->lpVtbl->Release(This)
  90. /*** IInspectable methods ***/
  91. #define IInspectable_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
  92. #define IInspectable_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
  93. #define IInspectable_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
  94. #else
  95. /*** IUnknown methods ***/
  96. static FORCEINLINE HRESULT IInspectable_QueryInterface(IInspectable* This,REFIID riid,void **ppvObject) {
  97. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  98. }
  99. static FORCEINLINE ULONG IInspectable_AddRef(IInspectable* This) {
  100. return This->lpVtbl->AddRef(This);
  101. }
  102. static FORCEINLINE ULONG IInspectable_Release(IInspectable* This) {
  103. return This->lpVtbl->Release(This);
  104. }
  105. /*** IInspectable methods ***/
  106. static FORCEINLINE HRESULT IInspectable_GetIids(IInspectable* This,ULONG *iidCount,IID **iids) {
  107. return This->lpVtbl->GetIids(This,iidCount,iids);
  108. }
  109. static FORCEINLINE HRESULT IInspectable_GetRuntimeClassName(IInspectable* This,HSTRING *className) {
  110. return This->lpVtbl->GetRuntimeClassName(This,className);
  111. }
  112. static FORCEINLINE HRESULT IInspectable_GetTrustLevel(IInspectable* This,TrustLevel *trustLevel) {
  113. return This->lpVtbl->GetTrustLevel(This,trustLevel);
  114. }
  115. #endif
  116. #endif
  117. #endif
  118. #endif /* __IInspectable_INTERFACE_DEFINED__ */
  119. #if !defined (CINTERFACE) && defined (__cplusplus)
  120. extern "C++" {
  121. template<typename T> void **IID_INS_ARGS_internal (T **p) {
  122. static_cast<IInspectable *> (*p);
  123. return reinterpret_cast<void **> (p);
  124. }
  125. }
  126. #define IID_INS_ARGS(P) __uuidof(**(P)), IID_INS_ARGS_internal(P)
  127. #endif
  128. /* Begin additional prototypes for all interfaces */
  129. ULONG __RPC_USER HSTRING_UserSize (ULONG *, ULONG, HSTRING *);
  130. unsigned char * __RPC_USER HSTRING_UserMarshal (ULONG *, unsigned char *, HSTRING *);
  131. unsigned char * __RPC_USER HSTRING_UserUnmarshal(ULONG *, unsigned char *, HSTRING *);
  132. void __RPC_USER HSTRING_UserFree (ULONG *, HSTRING *);
  133. /* End additional prototypes */
  134. #ifdef __cplusplus
  135. }
  136. #endif
  137. #endif /* __inspectable_h__ */