| /** |
| * This file has no copyright assigned and is placed in the Public Domain. |
| * This file is part of the mingw-w64 runtime package. |
| * No warranty is given; refer to the file DISCLAIMER.PD within this package. |
| */ |
| |
| import "wtypes.idl"; |
| import "hstring.idl"; |
| import "unknwn.idl"; |
| |
| typedef enum TrustLevel { |
| BaseTrust = 0, |
| PartialTrust = 1, |
| FullTrust = 2 |
| } TrustLevel; |
| |
| [ |
| object, |
| uuid(af86e2e0-b12d-4c6a-9c5a-d7aa65101e90), |
| pointer_default(unique) |
| ] |
| interface IInspectable : IUnknown |
| { |
| HRESULT GetIids( |
| [out] ULONG *iidCount, |
| [out, size_is(*iidCount)] IID **iids); |
| |
| HRESULT GetRuntimeClassName( |
| [out] HSTRING *className); |
| |
| HRESULT GetTrustLevel( |
| [out] TrustLevel *trustLevel); |
| } |
| |
| cpp_quote("") |
| cpp_quote("#if !defined (CINTERFACE) && defined (__cplusplus)") |
| cpp_quote("extern \"C++\" {") |
| cpp_quote(" template<typename T> void **IID_INS_ARGS_internal (T **p) {") |
| cpp_quote(" static_cast<IInspectable *> (*p);") |
| cpp_quote(" return reinterpret_cast<void **> (p);") |
| cpp_quote(" }") |
| cpp_quote("}") |
| cpp_quote("") |
| cpp_quote("#define IID_INS_ARGS(P) __uuidof(**(P)), IID_INS_ARGS_internal(P)") |
| cpp_quote("#endif") |
| |