cppwinrt/test/old_tests/Composable/Composable.idl

107 строки
3.5 KiB
Plaintext

import "Windows.Foundation.idl";
namespace Windows.Foundation.Metadata
{
[attributeusage(target_method, target_property)]
[attributename("noexcept2")]
attribute NoExceptionAttribute
{
}
}
namespace Composable
{
runtimeclass Base;
runtimeclass Derived;
[version(1.0), uuid(1B0CDE64-5FAF-4316-AF37-48C790329D32), exclusiveto(Base)]
interface IBase : IInspectable
{
HRESULT VirtualMethod([out, retval] HSTRING* value);
HRESULT CallOverridableMethod([out, retval] HSTRING* value);
HRESULT CallOverridableVirtualMethod([out, retval] HSTRING* value);
[noexcept2] HRESULT CallOverridableNoexceptMethod([out, retval] int* value);
[propget] HRESULT Name([out, retval] HSTRING* value);
};
[version(1.0), uuid(37AF44A4-8FC6-4BD8-A12F-D63ED119EF45), exclusiveto(Base)]
interface IBaseFactory : IInspectable
{
HRESULT CreateInstance([in] IInspectable* outer, [out] IInspectable** inner, [out][retval] Composable.Base** instance);
HRESULT CreateInstanceWithName([in] HSTRING name, [in] IInspectable* outer, [out] IInspectable** inner, [out][retval] Composable.Base** instance);
};
[version(1.0), uuid(A4DB9277-E6B7-4936-BF41-CDF042E278E2), exclusiveto(Base)]
interface IBaseOverrides : IInspectable
{
HRESULT OverridableMethod([out, retval] HSTRING* value);
HRESULT OverridableVirtualMethod([out, retval] HSTRING* value);
[noexcept2] HRESULT OverridableNoexceptMethod([out, retval] int* value);
};
[version(1.0), uuid(6EA77EAE-56BC-419D-AE70-211C1A631496), exclusiveto(Base)]
interface IBaseProtected : IInspectable
{
HRESULT ProtectedMethod([out, retval] int* value);
};
[version(1.0), uuid(5f3996e1-3cf7-4716-9a3d-11eb5d32caff), exclusiveto(Derived)]
interface IDerived : IInspectable
{
HRESULT CallProtectedMethod([out, retval] int* value);
};
[version(1.0), uuid(56dc2c28-edd1-4fa3-91e5-f63c3db47070), exclusiveto(Derived)]
interface IDerivedFactory : IInspectable
{
HRESULT CreateInstance([in] IInspectable* outer, [out] IInspectable** inner, [out][retval] Composable.Derived** instance);
HRESULT CreateInstanceWithName([in] HSTRING name, [in] IInspectable* outer, [out] IInspectable** inner, [out][retval] Composable.Derived** instance);
};
[composable(Composable.IBaseFactory, public, 1.0)]
[version(1.0)]
[threading(both)]
[marshaling_behavior(agile)]
runtimeclass Base
{
[default] interface IBase;
[overridable] interface Composable.IBaseOverrides;
[protected] interface Composable.IBaseProtected;
};
[composable(Composable.IDerivedFactory, public, 1.0)]
[version(1.0)]
[threading(both)]
[marshaling_behavior(agile)]
runtimeclass Derived : Base
{
[default] interface IDerived;
};
typedef enum TestStructCodeGenType TestStructCodeGenType;
typedef struct TestStructCodeGen TestStructCodeGen;
[version(1.0)]
enum TestStructCodeGenType
{
Auto = 0,
Pixel = 1,
Star = 2
};
[version(1.0)]
struct TestStructCodeGen
{
DOUBLE Value;
TestStructCodeGenType GridUnitType;
};
[version(1.0), uuid(9849e7b1-e906-4d32-a696-5df471b1727d)]
interface ITestStructCodeGen : IInspectable
{
HRESULT Test1([in] int a, [in] TestStructCodeGen b, [out,retval] DOUBLE* result);
HRESULT Test2([in] TestStructCodeGen b, [in] int a, [out, retval] DOUBLE* result);
};
}