1/** 2 * This file has no copyright assigned and is placed in the Public Domain. 3 * This file is part of the mingw-w64 runtime package. 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package. 5 */ 6 7import "wtypes.idl"; 8import "hstring.idl"; 9import "unknwn.idl"; 10 11typedef enum TrustLevel { 12 BaseTrust = 0, 13 PartialTrust = 1, 14 FullTrust = 2 15} TrustLevel; 16 17[ 18 object, 19 uuid(af86e2e0-b12d-4c6a-9c5a-d7aa65101e90), 20 pointer_default(unique) 21] 22interface IInspectable : IUnknown 23{ 24 HRESULT GetIids( 25 [out] ULONG *iidCount, 26 [out, size_is(*iidCount)] IID **iids); 27 28 HRESULT GetRuntimeClassName( 29 [out] HSTRING *className); 30 31 HRESULT GetTrustLevel( 32 [out] TrustLevel *trustLevel); 33} 34 35cpp_quote("") 36cpp_quote("#if !defined (CINTERFACE) && defined (__cplusplus)") 37cpp_quote("extern \"C++\" {") 38cpp_quote(" template<typename T> void **IID_INS_ARGS_internal (T **p) {") 39cpp_quote(" static_cast<IInspectable *> (*p);") 40cpp_quote(" return reinterpret_cast<void **> (p);") 41cpp_quote(" }") 42cpp_quote("}") 43cpp_quote("") 44cpp_quote("#define IID_INS_ARGS(P) __uuidof(**(P)), IID_INS_ARGS_internal(P)") 45cpp_quote("#endif") 46 47