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

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "Windows.Foundation.idl";
import "Windows.Storage.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(__windows2Estorage_h__)")
cpp_quote("#include <Windows.Storage.h>")
cpp_quote("#endif // !defined(__windows2Estorage_h__)")
cpp_quote("#if defined(__cplusplus)")
cpp_quote("extern \"C\" {")
cpp_quote("#endif // defined(__cplusplus)")

// Forward Declare
namespace Windows
{
    namespace Storage
    {
        runtimeclass StorageFolder;
    }
}
namespace Windows
{
    namespace Devices
    {
        namespace Portable
        {
            typedef enum ServiceDeviceType ServiceDeviceType;

            interface IStorageDeviceStatics;

            interface IServiceDeviceStatics;

            runtimeclass StorageDevice;

            runtimeclass ServiceDevice;
        }
    }
}

// Generic instantiations

// Type definition
namespace Windows
{
    namespace Devices
    {
        namespace Portable
        {
            [version(0x06020000)]
            enum ServiceDeviceType
            {
                CalendarService     = 0,
                ContactsService     = 1,
                DeviceStatusService = 2,
                NotesService        = 3,
                RingtonesService    = 4,
                SmsService          = 5,
                TasksService        = 6
            };

            [uuid(5ECE44EE-1B23-4DD2-8652-BC164F003128)]
            [exclusiveto(Windows.Devices.Portable.StorageDevice)]
            [version(0x06020000)]
            interface IStorageDeviceStatics : IInspectable
            {
                HRESULT FromId([in] HSTRING interfaceId, [out] [retval] Windows.Storage.StorageFolder** deviceRoot);
                HRESULT GetDeviceSelector([out] [retval] HSTRING* selector);
            }

            [uuid(A88214E1-59C7-4A20-ABA6-9F6707937230)]
            [version(0x06020000)]
            [exclusiveto(Windows.Devices.Portable.ServiceDevice)]
            interface IServiceDeviceStatics : IInspectable
            {
                HRESULT GetDeviceSelector([in] Windows.Devices.Portable.ServiceDeviceType serviceType, [out] [retval] HSTRING* selector);
                HRESULT GetDeviceSelectorFromServiceId([in] GUID serviceId, [out] [retval] HSTRING* selector);
            }

            [threading(both)]
            [version(0x06020000)]
            [static(Windows.Devices.Portable.IStorageDeviceStatics, 0x06020000)]
            [marshaling_behavior(agile)]
            runtimeclass StorageDevice
            {
            }

            [version(0x06020000)]
            [static(Windows.Devices.Portable.IServiceDeviceStatics, 0x06020000)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass ServiceDevice
            {
            }
        }
    }
}
