//
// Copyright (c) Microsoft Corporation. All rights reserved.
// 
//
// File generated by WinMDIDL version 8.00.0013
//

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "Windows.Foundation.idl";
// Additional imports to ensure that all required headers are included
cpp_quote("#if defined(__cplusplus)")
cpp_quote("}")
cpp_quote("#endif // defined(__cplusplus)")
cpp_quote("#include <Windows.Foundation.h>")
cpp_quote("#if defined(__cplusplus)")
cpp_quote("extern \"C\" {")
cpp_quote("#endif // defined(__cplusplus)")

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        namespace Metadata
        {
            typedef enum GCPressureAmount GCPressureAmount;

            interface IApiInformationStatics;

            runtimeclass ApiInformation;
        }
    }
}

// Generic instantiations

// Type definition
namespace Windows
{
    namespace Foundation
    {
        namespace Metadata
        {
            [version(0x06020000)]
            enum GCPressureAmount
            {
                Low    = 0,
                Medium = 1,
                High   = 2
            };

            [exclusiveto(Windows.Foundation.Metadata.ApiInformation)]
            [uuid(997439FE-F681-4A11-B416-C13A47E8BA36)]
            [version(0x0A000000)]
            interface IApiInformationStatics : IInspectable
            {
                HRESULT IsTypePresent([in] HSTRING typeName, [out] [retval] boolean* value);
                [overload("IsMethodPresent")] HRESULT IsMethodPresent([in] HSTRING typeName, [in] HSTRING methodName, [out] [retval] boolean* value);
                [overload("IsMethodPresent")] HRESULT IsMethodPresentWithArity([in] HSTRING typeName, [in] HSTRING methodName, [in] UINT32 inputParameterCount, [out] [retval] boolean* value);
                HRESULT IsEventPresent([in] HSTRING typeName, [in] HSTRING eventName, [out] [retval] boolean* value);
                HRESULT IsPropertyPresent([in] HSTRING typeName, [in] HSTRING propertyName, [out] [retval] boolean* value);
                HRESULT IsReadOnlyPropertyPresent([in] HSTRING typeName, [in] HSTRING propertyName, [out] [retval] boolean* value);
                HRESULT IsWriteablePropertyPresent([in] HSTRING typeName, [in] HSTRING propertyName, [out] [retval] boolean* value);
                HRESULT IsEnumNamedValuePresent([in] HSTRING enumTypeName, [in] HSTRING valueName, [out] [retval] boolean* value);
                [overload("IsApiContractPresent")] HRESULT IsApiContractPresentByMajor([in] HSTRING contractName, [in] UINT16 majorVersion, [out] [retval] boolean* value);
                [overload("IsApiContractPresent")] HRESULT IsApiContractPresentByMajorAndMinor([in] HSTRING contractName, [in] UINT16 majorVersion, [in] UINT16 minorVersion, [out] [retval] boolean* value);
            }

            [marshaling_behavior(agile)]
            [static(Windows.Foundation.Metadata.IApiInformationStatics, 0x0A000000)]
            [version(0x0A000000)]
            runtimeclass ApiInformation
            {
            }
        }
    }
}
