| 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 |  | 
 
 
 
 
 | 7 | import "wtypes.idl"; | 
 
 
 
 
 | 8 | import "hstring.idl"; | 
 
 
 
 
 | 9 | import "unknwn.idl"; | 
 
 
 
 
 | 10 |  | 
 
 
 
 
 | 11 | typedef 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 | ] | 
 
 
 
 
 | 22 | interface 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 |  | 
 
 
 
 
 | 35 | cpp_quote("") | 
 
 
 
 
 | 36 | cpp_quote("#if !defined (CINTERFACE) && defined (__cplusplus)") | 
 
 
 
 
 | 37 | cpp_quote("extern \"C++\" {") | 
 
 
 
 
 | 38 | cpp_quote("  template<typename T> void **IID_INS_ARGS_internal (T **p) {") | 
 
 
 
 
 | 39 | cpp_quote("    static_cast<IInspectable *> (*p);") | 
 
 
 
 
 | 40 | cpp_quote("    return reinterpret_cast<void **> (p);") | 
 
 
 
 
 | 41 | cpp_quote("  }") | 
 
 
 
 
 | 42 | cpp_quote("}") | 
 
 
 
 
 | 43 | cpp_quote("") | 
 
 
 
 
 | 44 | cpp_quote("#define IID_INS_ARGS(P) __uuidof(**(P)), IID_INS_ARGS_internal(P)") | 
 
 
 
 
 | 45 | cpp_quote("#endif") | 
 
 
 
 
 | 46 |  |