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

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "windowscontracts.idl";
import "Windows.Foundation.idl";

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        runtimeclass Uri;
    }
}
namespace Windows
{
    namespace System
    {
        namespace Profile
        {
            namespace SystemManufacturers
            {
                apicontract SystemManufacturersContract;

                interface IOemSupportInfo;

                interface ISmbiosInformationStatics;

                interface ISystemSupportDeviceInfo;

                interface ISystemSupportInfoStatics;

                interface ISystemSupportInfoStatics2;

                runtimeclass OemSupportInfo;

                runtimeclass SmbiosInformation;

                runtimeclass SystemSupportDeviceInfo;

                runtimeclass SystemSupportInfo;
            }
        }
    }
}

// Generic instantiations

// Type definition
namespace Windows
{
    namespace System
    {
        namespace Profile
        {
            namespace SystemManufacturers
            {
                [contractversion(3.0)]
                apicontract SystemManufacturersContract
                {
                }

                [contract(Windows.System.Profile.SystemManufacturers.SystemManufacturersContract, 2.0)]
                [exclusiveto(Windows.System.Profile.SystemManufacturers.OemSupportInfo)]
                [uuid(8D2EAE55-87EF-4266-86D0-C4AFBEB29BB9)]
                interface IOemSupportInfo : IInspectable
                {
                    [propget] HRESULT SupportLink([out] [retval] Windows.Foundation.Uri** value);
                    [propget] HRESULT SupportAppLink([out] [retval] Windows.Foundation.Uri** value);
                    [propget] HRESULT SupportProvider([out] [retval] HSTRING* value);
                }

                [contract(Windows.System.Profile.SystemManufacturers.SystemManufacturersContract, 1.0)]
                [exclusiveto(Windows.System.Profile.SystemManufacturers.SmbiosInformation)]
                [uuid(080CCA7C-637C-48C4-B728-F9273812DB8E)]
                interface ISmbiosInformationStatics : IInspectable
                {
                    [propget] HRESULT SerialNumber([out] [retval] HSTRING* value);
                }

                [contract(Windows.System.Profile.SystemManufacturers.SystemManufacturersContract, 3.0)]
                [exclusiveto(Windows.System.Profile.SystemManufacturers.SystemSupportDeviceInfo)]
                [uuid(05880B99-8247-441B-A996-A1784BAB79A8)]
                interface ISystemSupportDeviceInfo : IInspectable
                {
                    [propget] HRESULT OperatingSystem([out] [retval] HSTRING* value);
                    [propget] HRESULT FriendlyName([out] [retval] HSTRING* value);
                    [propget] HRESULT SystemManufacturer([out] [retval] HSTRING* value);
                    [propget] HRESULT SystemProductName([out] [retval] HSTRING* value);
                    [propget] HRESULT SystemSku([out] [retval] HSTRING* value);
                    [propget] HRESULT SystemHardwareVersion([out] [retval] HSTRING* value);
                    [propget] HRESULT SystemFirmwareVersion([out] [retval] HSTRING* value);
                }

                [contract(Windows.System.Profile.SystemManufacturers.SystemManufacturersContract, 2.0)]
                [exclusiveto(Windows.System.Profile.SystemManufacturers.SystemSupportInfo)]
                [uuid(EF750974-C422-45D7-A44D-5C1C0043A2B3)]
                interface ISystemSupportInfoStatics : IInspectable
                {
                    [propget] HRESULT LocalSystemEdition([out] [retval] HSTRING* value);
                    [propget] HRESULT OemSupportInfo([out] [retval] Windows.System.Profile.SystemManufacturers.OemSupportInfo** value);
                }

                [contract(Windows.System.Profile.SystemManufacturers.SystemManufacturersContract, 3.0)]
                [exclusiveto(Windows.System.Profile.SystemManufacturers.SystemSupportInfo)]
                [uuid(33F349A4-3FA1-4986-AA4B-057420455E6D)]
                interface ISystemSupportInfoStatics2 : IInspectable
                {
                    [propget] HRESULT LocalDeviceInfo([out] [retval] Windows.System.Profile.SystemManufacturers.SystemSupportDeviceInfo** value);
                }

                [contract(Windows.System.Profile.SystemManufacturers.SystemManufacturersContract, 2.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass OemSupportInfo
                {
                    [default] interface Windows.System.Profile.SystemManufacturers.IOemSupportInfo;
                }

                [contract(Windows.System.Profile.SystemManufacturers.SystemManufacturersContract, 1.0)]
                [marshaling_behavior(agile)]
                [static(Windows.System.Profile.SystemManufacturers.ISmbiosInformationStatics, Windows.System.Profile.SystemManufacturers.SystemManufacturersContract, 1.0)]
                runtimeclass SmbiosInformation
                {
                }

                [contract(Windows.System.Profile.SystemManufacturers.SystemManufacturersContract, 3.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass SystemSupportDeviceInfo
                {
                    [default] interface Windows.System.Profile.SystemManufacturers.ISystemSupportDeviceInfo;
                }

                [contract(Windows.System.Profile.SystemManufacturers.SystemManufacturersContract, 2.0)]
                [marshaling_behavior(agile)]
                [static(Windows.System.Profile.SystemManufacturers.ISystemSupportInfoStatics, Windows.System.Profile.SystemManufacturers.SystemManufacturersContract, 2.0)]
                [static(Windows.System.Profile.SystemManufacturers.ISystemSupportInfoStatics2, Windows.System.Profile.SystemManufacturers.SystemManufacturersContract, 3.0)]
                [threading(both)]
                runtimeclass SystemSupportInfo
                {
                }
            }
        }
    }
}
