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

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
    {
        interface IStorageItem;
    }
}
namespace Windows
{
    namespace Security
    {
        namespace EnterpriseData
        {
            typedef enum FileProtectionStatus FileProtectionStatus;

            interface IFileRevocationManagerStatics;

            runtimeclass FileRevocationManager;
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace Security
    {
        namespace EnterpriseData
        {
            declare
            {
                interface Windows.Foundation.IAsyncOperation<Windows.Security.EnterpriseData.FileProtectionStatus>;
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace Security
    {
        namespace EnterpriseData
        {
            [version(0x06030000)]
            enum FileProtectionStatus
            {
                Undetermined               = 0,
                Unprotected                = 1,
                Revoked                    = 2,
                Protected                  = 3,
                ProtectedByOtherUser       = 4,
                ProtectedToOtherEnterprise = 5,
                NotProtectable             = 6
            };

            [exclusiveto(Windows.Security.EnterpriseData.FileRevocationManager)]
            [uuid(256BBC3D-1C5D-4260-8C75-9144CFB78BA9)]
            [version(0x06030000)]
            interface IFileRevocationManagerStatics : IInspectable
            {
                HRESULT ProtectAsync([in] Windows.Storage.IStorageItem* storageItem, [in] HSTRING enterpriseIdentity, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Security.EnterpriseData.FileProtectionStatus>** operation);
                HRESULT CopyProtectionAsync([in] Windows.Storage.IStorageItem* sourceStorageItem, [in] Windows.Storage.IStorageItem* targetStorageItem, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
                HRESULT Revoke([in] HSTRING enterpriseIdentity);
                HRESULT GetStatusAsync([in] Windows.Storage.IStorageItem* storageItem, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Security.EnterpriseData.FileProtectionStatus>** operation);
            }

            [marshaling_behavior(agile)]
            [static(Windows.Security.EnterpriseData.IFileRevocationManagerStatics, 0x06030000)]
            [threading(both)]
            [version(0x06030000)]
            runtimeclass FileRevocationManager
            {
            }
        }
    }
}
