ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/Daodan/MSYS2/mingw32/i686-w64-mingw32/include/inspectable.idl
Revision: 1166
Committed: Tue Oct 26 14:22:36 2021 UTC (4 years ago) by rossy
File size: 1204 byte(s)
Log Message:
Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File Contents

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