//
// 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";
import "Windows.Storage.idl";

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        interface IAsyncAction;
    }
}
namespace Windows
{
    namespace Storage
    {
        interface IStorageFile;

        interface IStorageFolder;

        typedef enum NameCollisionOption NameCollisionOption;

        runtimeclass StorageFile;
    }
}
namespace Windows
{
    namespace Media
    {
        namespace Playlists
        {
            apicontract PlaylistsContract;

            typedef enum PlaylistFormat PlaylistFormat;

            interface IPlaylist;

            interface IPlaylistStatics;

            runtimeclass Playlist;
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace Media
    {
        namespace Playlists
        {
            declare
            {
                interface Windows.Foundation.IAsyncOperation<Windows.Media.Playlists.Playlist*>;
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace Media
    {
        namespace Playlists
        {
            [contractversion(1.0)]
            apicontract PlaylistsContract
            {
            }

            [contract(Windows.Media.Playlists.PlaylistsContract, 1.0)]
            enum PlaylistFormat
            {
                WindowsMedia = 0,
                Zune         = 1,
                M3u          = 2
            };

            [contract(Windows.Media.Playlists.PlaylistsContract, 1.0)]
            [exclusiveto(Windows.Media.Playlists.Playlist)]
            [uuid(803736F5-CF44-4D97-83B3-7A089E9AB663)]
            interface IPlaylist : IInspectable
            {
                [propget] HRESULT Files([out] [retval] Windows.Foundation.Collections.IVector<Windows.Storage.StorageFile*>** value);
                HRESULT SaveAsync([out] [retval] Windows.Foundation.IAsyncAction** operation);
                [overload("SaveAsAsync")] HRESULT SaveAsAsync([in] Windows.Storage.IStorageFolder* saveLocation, [in] HSTRING desiredName, [in] Windows.Storage.NameCollisionOption option, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFile*>** operation);
                [overload("SaveAsAsync")] HRESULT SaveAsWithFormatAsync([in] Windows.Storage.IStorageFolder* saveLocation, [in] HSTRING desiredName, [in] Windows.Storage.NameCollisionOption option, [in] Windows.Media.Playlists.PlaylistFormat playlistFormat, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.StorageFile*>** operation);
            }

            [contract(Windows.Media.Playlists.PlaylistsContract, 1.0)]
            [exclusiveto(Windows.Media.Playlists.Playlist)]
            [uuid(C5C331CD-81F9-4FF3-95B9-70B6FF046B68)]
            interface IPlaylistStatics : IInspectable
            {
                HRESULT LoadAsync([in] Windows.Storage.IStorageFile* file, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Media.Playlists.Playlist*>** operation);
            }

            [activatable(Windows.Media.Playlists.PlaylistsContract, 1.0)]
            [contract(Windows.Media.Playlists.PlaylistsContract, 1.0)]
            [static(Windows.Media.Playlists.IPlaylistStatics, Windows.Media.Playlists.PlaylistsContract, 1.0)]
            [threading(both)]
            runtimeclass Playlist
            {
                [default] interface Windows.Media.Playlists.IPlaylist;
            }
        }
    }
}
