| 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 | 
  |