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

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        namespace Collections
        {
            runtimeclass ValueSet;
        }
    }
}
namespace Windows
{
    namespace Foundation
    {
        typedef struct DateTime DateTime;

        interface IAsyncAction;

        interface IClosable;

        apicontract UniversalApiContract;
    }
}
namespace Windows
{
    namespace Security
    {
        namespace Cryptography
        {
            namespace Core
            {
                typedef enum CryptographicPublicKeyBlobType CryptographicPublicKeyBlobType;
            }
        }
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Streams
        {
            interface IBuffer;

            interface IRandomAccessStreamReference;
        }
    }
}
namespace Windows
{
    namespace Devices
    {
        namespace SmartCards
        {
            apicontract SmartCardBackgroundTriggerContract;

            apicontract SmartCardEmulatorContract;

            typedef enum SmartCardActivationPolicyChangeResult SmartCardActivationPolicyChangeResult;

            typedef enum SmartCardAppletIdGroupActivationPolicy SmartCardAppletIdGroupActivationPolicy;

            typedef enum SmartCardAutomaticResponseStatus SmartCardAutomaticResponseStatus;

            typedef enum SmartCardCryptogramAlgorithm SmartCardCryptogramAlgorithm;

            typedef enum SmartCardCryptogramGeneratorOperationStatus SmartCardCryptogramGeneratorOperationStatus;

            typedef enum SmartCardCryptogramMaterialPackageConfirmationResponseFormat SmartCardCryptogramMaterialPackageConfirmationResponseFormat;

            typedef enum SmartCardCryptogramMaterialPackageFormat SmartCardCryptogramMaterialPackageFormat;

            typedef enum SmartCardCryptogramMaterialProtectionMethod SmartCardCryptogramMaterialProtectionMethod;

            typedef enum SmartCardCryptogramMaterialType SmartCardCryptogramMaterialType;

            typedef enum SmartCardCryptogramPlacementOptions SmartCardCryptogramPlacementOptions;

            typedef enum SmartCardCryptogramStorageKeyAlgorithm SmartCardCryptogramStorageKeyAlgorithm;

            typedef enum SmartCardCryptogramStorageKeyCapabilities SmartCardCryptogramStorageKeyCapabilities;

            typedef enum SmartCardCryptographicKeyAttestationStatus SmartCardCryptographicKeyAttestationStatus;

            typedef enum SmartCardEmulationCategory SmartCardEmulationCategory;

            typedef enum SmartCardEmulationType SmartCardEmulationType;

            typedef enum SmartCardEmulatorConnectionDeactivatedReason SmartCardEmulatorConnectionDeactivatedReason;

            typedef enum SmartCardEmulatorConnectionSource SmartCardEmulatorConnectionSource;

            typedef enum SmartCardEmulatorEnablementPolicy SmartCardEmulatorEnablementPolicy;

            typedef enum SmartCardLaunchBehavior SmartCardLaunchBehavior;

            typedef enum SmartCardPinCharacterPolicyOption SmartCardPinCharacterPolicyOption;

            typedef enum SmartCardReaderKind SmartCardReaderKind;

            typedef enum SmartCardReaderStatus SmartCardReaderStatus;

            typedef enum SmartCardStatus SmartCardStatus;

            typedef enum SmartCardTriggerType SmartCardTriggerType;

            typedef enum SmartCardUnlockPromptingBehavior SmartCardUnlockPromptingBehavior;

            delegate SmartCardPinResetHandler;

            interface ICardAddedEventArgs;

            interface ICardRemovedEventArgs;

            interface IKnownSmartCardAppletIds;

            interface ISmartCard;

            interface ISmartCardAppletIdGroup;

            interface ISmartCardAppletIdGroup2;

            interface ISmartCardAppletIdGroupFactory;

            interface ISmartCardAppletIdGroupRegistration;

            interface ISmartCardAppletIdGroupRegistration2;

            interface ISmartCardAppletIdGroupStatics;

            interface ISmartCardAutomaticResponseApdu;

            interface ISmartCardAutomaticResponseApdu2;

            interface ISmartCardAutomaticResponseApdu3;

            interface ISmartCardAutomaticResponseApduFactory;

            interface ISmartCardChallengeContext;

            interface ISmartCardConnect;

            interface ISmartCardConnection;

            interface ISmartCardCryptogramGenerator;

            interface ISmartCardCryptogramGenerator2;

            interface ISmartCardCryptogramGeneratorStatics;

            interface ISmartCardCryptogramGeneratorStatics2;

            interface ISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult;

            interface ISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult;

            interface ISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult;

            interface ISmartCardCryptogramMaterialCharacteristics;

            interface ISmartCardCryptogramMaterialPackageCharacteristics;

            interface ISmartCardCryptogramMaterialPossessionProof;

            interface ISmartCardCryptogramPlacementStep;

            interface ISmartCardCryptogramStorageKeyCharacteristics;

            interface ISmartCardCryptogramStorageKeyInfo;

            interface ISmartCardCryptogramStorageKeyInfo2;

            interface ISmartCardEmulator;

            interface ISmartCardEmulator2;

            interface ISmartCardEmulatorApduReceivedEventArgs;

            interface ISmartCardEmulatorApduReceivedEventArgs2;

            interface ISmartCardEmulatorApduReceivedEventArgsWithCryptograms;

            interface ISmartCardEmulatorConnectionDeactivatedEventArgs;

            interface ISmartCardEmulatorConnectionProperties;

            interface ISmartCardEmulatorStatics;

            interface ISmartCardEmulatorStatics2;

            interface ISmartCardEmulatorStatics3;

            interface ISmartCardPinPolicy;

            interface ISmartCardPinResetDeferral;

            interface ISmartCardPinResetRequest;

            interface ISmartCardProvisioning;

            interface ISmartCardProvisioning2;

            interface ISmartCardProvisioningStatics;

            interface ISmartCardProvisioningStatics2;

            interface ISmartCardReader;

            interface ISmartCardReaderStatics;

            interface ISmartCardTriggerDetails;

            interface ISmartCardTriggerDetails2;

            interface ISmartCardTriggerDetails3;

            runtimeclass CardAddedEventArgs;

            runtimeclass CardRemovedEventArgs;

            runtimeclass KnownSmartCardAppletIds;

            runtimeclass SmartCard;

            runtimeclass SmartCardAppletIdGroup;

            runtimeclass SmartCardAppletIdGroupRegistration;

            runtimeclass SmartCardAutomaticResponseApdu;

            runtimeclass SmartCardChallengeContext;

            runtimeclass SmartCardConnection;

            runtimeclass SmartCardCryptogramGenerator;

            runtimeclass SmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult;

            runtimeclass SmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult;

            runtimeclass SmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult;

            runtimeclass SmartCardCryptogramMaterialCharacteristics;

            runtimeclass SmartCardCryptogramMaterialPackageCharacteristics;

            runtimeclass SmartCardCryptogramMaterialPossessionProof;

            runtimeclass SmartCardCryptogramPlacementStep;

            runtimeclass SmartCardCryptogramStorageKeyCharacteristics;

            runtimeclass SmartCardCryptogramStorageKeyInfo;

            runtimeclass SmartCardEmulator;

            runtimeclass SmartCardEmulatorApduReceivedEventArgs;

            runtimeclass SmartCardEmulatorConnectionDeactivatedEventArgs;

            runtimeclass SmartCardEmulatorConnectionProperties;

            runtimeclass SmartCardPinPolicy;

            runtimeclass SmartCardPinResetDeferral;

            runtimeclass SmartCardPinResetRequest;

            runtimeclass SmartCardProvisioning;

            runtimeclass SmartCardReader;

            runtimeclass SmartCardTriggerDetails;
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace Devices
    {
        namespace SmartCards
        {
            declare
            {
                interface Windows.Foundation.Collections.IIterable<Windows.Devices.SmartCards.SmartCard*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Devices.SmartCards.SmartCardAppletIdGroupRegistration*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Devices.SmartCards.SmartCardAutomaticResponseApdu*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Devices.SmartCards.SmartCardCryptogramAlgorithm>;

                interface Windows.Foundation.Collections.IIterable<Windows.Devices.SmartCards.SmartCardCryptogramMaterialCharacteristics*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Devices.SmartCards.SmartCardCryptogramMaterialPackageCharacteristics*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Devices.SmartCards.SmartCardCryptogramMaterialPackageConfirmationResponseFormat>;

                interface Windows.Foundation.Collections.IIterable<Windows.Devices.SmartCards.SmartCardCryptogramMaterialPackageFormat>;

                interface Windows.Foundation.Collections.IIterable<Windows.Devices.SmartCards.SmartCardCryptogramMaterialType>;

                interface Windows.Foundation.Collections.IIterable<Windows.Devices.SmartCards.SmartCardCryptogramPlacementStep*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyCapabilities>;

                interface Windows.Foundation.Collections.IIterable<Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyCharacteristics*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Devices.SmartCards.SmartCard*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Devices.SmartCards.SmartCardAppletIdGroupRegistration*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Devices.SmartCards.SmartCardAutomaticResponseApdu*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Devices.SmartCards.SmartCardCryptogramAlgorithm>;

                interface Windows.Foundation.Collections.IIterator<Windows.Devices.SmartCards.SmartCardCryptogramMaterialCharacteristics*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Devices.SmartCards.SmartCardCryptogramMaterialPackageCharacteristics*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Devices.SmartCards.SmartCardCryptogramMaterialPackageConfirmationResponseFormat>;

                interface Windows.Foundation.Collections.IIterator<Windows.Devices.SmartCards.SmartCardCryptogramMaterialPackageFormat>;

                interface Windows.Foundation.Collections.IIterator<Windows.Devices.SmartCards.SmartCardCryptogramMaterialType>;

                interface Windows.Foundation.Collections.IIterator<Windows.Devices.SmartCards.SmartCardCryptogramPlacementStep*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyCapabilities>;

                interface Windows.Foundation.Collections.IIterator<Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyCharacteristics*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Devices.SmartCards.SmartCard*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Devices.SmartCards.SmartCardAppletIdGroupRegistration*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Devices.SmartCards.SmartCardCryptogramAlgorithm>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Devices.SmartCards.SmartCardCryptogramMaterialCharacteristics*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Devices.SmartCards.SmartCardCryptogramMaterialPackageCharacteristics*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Devices.SmartCards.SmartCardCryptogramMaterialPackageConfirmationResponseFormat>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Devices.SmartCards.SmartCardCryptogramMaterialPackageFormat>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Devices.SmartCards.SmartCardCryptogramMaterialType>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyCapabilities>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyCharacteristics*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardActivationPolicyChangeResult>;

                interface Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardAppletIdGroupRegistration*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardChallengeContext*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardConnection*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardCryptogramGenerator*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardCryptogramGeneratorOperationStatus>;

                interface Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardCryptogramMaterialPossessionProof*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyInfo*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardEmulator*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardProvisioning*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardReader*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardReaderStatus>;

                interface Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardStatus>;

                interface Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Devices.SmartCards.SmartCard*>*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Devices.SmartCards.SmartCardAppletIdGroupRegistration*>*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Devices.SmartCards.SmartCardEmulator*, Windows.Devices.SmartCards.SmartCardEmulatorApduReceivedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Devices.SmartCards.SmartCardEmulator*, Windows.Devices.SmartCards.SmartCardEmulatorConnectionDeactivatedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Devices.SmartCards.SmartCardReader*, Windows.Devices.SmartCards.CardAddedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Devices.SmartCards.SmartCardReader*, Windows.Devices.SmartCards.CardRemovedEventArgs*>;
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace Devices
    {
        namespace SmartCards
        {
            [contractversion(3.0)]
            apicontract SmartCardBackgroundTriggerContract
            {
            }

            [contractversion(6.0)]
            apicontract SmartCardEmulatorContract
            {
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 1.0)]
            enum SmartCardActivationPolicyChangeResult
            {
                Denied  = 0,
                Allowed = 1
            };

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 1.0)]
            enum SmartCardAppletIdGroupActivationPolicy
            {
                Disabled           = 0,
                ForegroundOverride = 1,
                Enabled            = 2
            };

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 1.0)]
            enum SmartCardAutomaticResponseStatus
            {
                None         = 0,
                Success      = 1,
                UnknownError = 2
            };

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 2.0)]
            enum SmartCardCryptogramAlgorithm
            {
                None                         = 0,
                CbcMac                       = 1,
                Cvc3Umd                      = 2,
                DecimalizedMsd               = 3,
                Cvc3MD                       = 4,
                Sha1                         = 5,
                SignedDynamicApplicationData = 6,
                RsaPkcs1                     = 7,
                [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 4.0)]
                Sha256Hmac                   = 8
            };

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 2.0)]
            enum SmartCardCryptogramGeneratorOperationStatus
            {
                Success                                   = 0,
                AuthorizationFailed                       = 1,
                AuthorizationCanceled                     = 2,
                AuthorizationRequired                     = 3,
                CryptogramMaterialPackageStorageKeyExists = 4,
                NoCryptogramMaterialPackageStorageKey     = 5,
                NoCryptogramMaterialPackage               = 6,
                UnsupportedCryptogramMaterialPackage      = 7,
                UnknownCryptogramMaterialName             = 8,
                InvalidCryptogramMaterialUsage            = 9,
                ApduResponseNotSent                       = 10,
                OtherError                                = 11,
                [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 4.0)]
                ValidationFailed                          = 12,
                [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 5.0)]
                NotSupported                              = 13
            };

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 2.0)]
            enum SmartCardCryptogramMaterialPackageConfirmationResponseFormat
            {
                None     = 0,
                VisaHmac = 1
            };

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 2.0)]
            enum SmartCardCryptogramMaterialPackageFormat
            {
                None      = 0,
                JweRsaPki = 1
            };

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 4.0)]
            enum SmartCardCryptogramMaterialProtectionMethod
            {
                None        = 0,
                WhiteBoxing = 1
            };

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 2.0)]
            enum SmartCardCryptogramMaterialType
            {
                None                     = 0,
                StaticDataAuthentication = 1,
                TripleDes112             = 2,
                Aes                      = 3,
                RsaPkcs1                 = 4
            };

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 2.0)]
            [flags]
            enum SmartCardCryptogramPlacementOptions
            {
                None              = 0x0,
                UnitsAreInNibbles = 0x1,
                ChainOutput       = 0x2
            };

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 2.0)]
            enum SmartCardCryptogramStorageKeyAlgorithm
            {
                None    = 0,
                Rsa2048 = 1
            };

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 2.0)]
            [flags]
            enum SmartCardCryptogramStorageKeyCapabilities
            {
                None               = 0x0,
                HardwareProtection = 0x1,
                UnlockPrompt       = 0x2
            };

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 2.0)]
            enum SmartCardCryptographicKeyAttestationStatus
            {
                NoAttestation                         = 0,
                SoftwareKeyWithoutTpm                 = 1,
                SoftwareKeyWithTpm                    = 2,
                TpmKeyUnknownAttestationStatus        = 3,
                TpmKeyWithoutAttestationCapability    = 4,
                TpmKeyWithTemporaryAttestationFailure = 5,
                TpmKeyWithLongTermAttestationFailure  = 6,
                TpmKeyWithAttestation                 = 7
            };

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 1.0)]
            enum SmartCardEmulationCategory
            {
                Other   = 0,
                Payment = 1
            };

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 1.0)]
            enum SmartCardEmulationType
            {
                Host       = 0,
                Uicc       = 1,
                [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 3.0)]
                EmbeddedSE = 2
            };

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 1.0)]
            enum SmartCardEmulatorConnectionDeactivatedReason
            {
                ConnectionLost       = 0,
                ConnectionRedirected = 1
            };

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 1.0)]
            enum SmartCardEmulatorConnectionSource
            {
                Unknown   = 0,
                NfcReader = 1
            };

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 1.0)]
            enum SmartCardEmulatorEnablementPolicy
            {
                Never          = 0,
                Always         = 1,
                ScreenOn       = 2,
                ScreenUnlocked = 3
            };

            [contract(Windows.Devices.SmartCards.SmartCardBackgroundTriggerContract, 1.0)]
            enum SmartCardLaunchBehavior
            {
                Default   = 0,
                AboveLock = 1
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum SmartCardPinCharacterPolicyOption
            {
                Allow             = 0,
                RequireAtLeastOne = 1,
                Disallow          = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum SmartCardReaderKind
            {
                Any        = 0,
                Generic    = 1,
                Tpm        = 2,
                Nfc        = 3,
                Uicc       = 4,
                [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                EmbeddedSE = 5
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum SmartCardReaderStatus
            {
                Disconnected = 0,
                Ready        = 1,
                Exclusive    = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum SmartCardStatus
            {
                Disconnected = 0,
                Ready        = 1,
                Shared       = 2,
                Exclusive    = 3,
                Unresponsive = 4
            };

            [contract(Windows.Devices.SmartCards.SmartCardBackgroundTriggerContract, 1.0)]
            enum SmartCardTriggerType
            {
                EmulatorTransaction                      = 0,
                EmulatorNearFieldEntry                   = 1,
                EmulatorNearFieldExit                    = 2,
                [contract(Windows.Devices.SmartCards.SmartCardBackgroundTriggerContract, 1.0)]
                EmulatorHostApplicationActivated         = 3,
                [contract(Windows.Devices.SmartCards.SmartCardBackgroundTriggerContract, 1.0)]
                EmulatorAppletIdGroupRegistrationChanged = 4,
                [contract(Windows.Devices.SmartCards.SmartCardBackgroundTriggerContract, 2.0)]
                ReaderCardAdded                          = 5
            };

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 2.0)]
            enum SmartCardUnlockPromptingBehavior
            {
                AllowUnlockPrompt   = 0,
                RequireUnlockPrompt = 1,
                PreventUnlockPrompt = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [uuid(138D5E40-F3BC-4A5C-B41D-4B4EF684E237)]
            delegate
                HRESULT SmartCardPinResetHandler([in] Windows.Devices.SmartCards.SmartCardProvisioning* sender, [in] Windows.Devices.SmartCards.SmartCardPinResetRequest* request);

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Devices.SmartCards.CardAddedEventArgs)]
            [uuid(18BBEF98-F18B-4DD3-B118-DFB2C8E23CC6)]
            interface ICardAddedEventArgs : IInspectable
            {
                [propget] HRESULT SmartCard([out] [retval] Windows.Devices.SmartCards.SmartCard** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Devices.SmartCards.CardRemovedEventArgs)]
            [uuid(15331AAF-22D7-4945-AFC9-03B46F42A6CD)]
            interface ICardRemovedEventArgs : IInspectable
            {
                [propget] HRESULT SmartCard([out] [retval] Windows.Devices.SmartCards.SmartCard** value);
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 6.0)]
            [exclusiveto(Windows.Devices.SmartCards.KnownSmartCardAppletIds)]
            [uuid(7B04D8D8-95B4-4C88-8CEA-411E55511EFC)]
            interface IKnownSmartCardAppletIds : IInspectable
            {
                [propget] HRESULT PaymentSystemEnvironment([out] [retval] Windows.Storage.Streams.IBuffer** value);
                [propget] HRESULT ProximityPaymentSystemEnvironment([out] [retval] Windows.Storage.Streams.IBuffer** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCard)]
            [uuid(1B718871-6434-43F4-B55A-6A29623870AA)]
            interface ISmartCard : IInspectable
            {
                [propget] HRESULT Reader([out] [retval] Windows.Devices.SmartCards.SmartCardReader** value);
                HRESULT GetStatusAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardStatus>** result);
                HRESULT GetAnswerToResetAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.Streams.IBuffer*>** result);
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 1.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardAppletIdGroup)]
            [uuid(7DB165E6-6264-56F4-5E03-C86385395EB1)]
            interface ISmartCardAppletIdGroup : IInspectable
            {
                [propget] HRESULT DisplayName([out] [retval] HSTRING* value);
                [propput] HRESULT DisplayName([in] HSTRING value);
                [propget] HRESULT AppletIds([out] [retval] Windows.Foundation.Collections.IVector<Windows.Storage.Streams.IBuffer*>** value);
                [propget] HRESULT SmartCardEmulationCategory([out] [retval] Windows.Devices.SmartCards.SmartCardEmulationCategory* value);
                [propput] HRESULT SmartCardEmulationCategory([in] Windows.Devices.SmartCards.SmartCardEmulationCategory value);
                [propget] HRESULT SmartCardEmulationType([out] [retval] Windows.Devices.SmartCards.SmartCardEmulationType* value);
                [propput] HRESULT SmartCardEmulationType([in] Windows.Devices.SmartCards.SmartCardEmulationType value);
                [propget] HRESULT AutomaticEnablement([out] [retval] boolean* value);
                [propput] HRESULT AutomaticEnablement([in] boolean value);
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 6.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardAppletIdGroup)]
            [uuid(6B0EF9DC-9956-4A62-8D4E-D37A68EBC3A6)]
            interface ISmartCardAppletIdGroup2 : IInspectable
            {
                [propget] HRESULT Logo([out] [retval] Windows.Storage.Streams.IRandomAccessStreamReference** value);
                [propput] HRESULT Logo([in] Windows.Storage.Streams.IRandomAccessStreamReference* value);
                [propget] HRESULT Description([out] [retval] HSTRING* value);
                [propput] HRESULT Description([in] HSTRING value);
                [propget] HRESULT Properties([out] [retval] Windows.Foundation.Collections.ValueSet** value);
                [propget] HRESULT SecureUserAuthenticationRequired([out] [retval] boolean* value);
                [propput] HRESULT SecureUserAuthenticationRequired([in] boolean value);
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 1.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardAppletIdGroup)]
            [uuid(9105EB4D-4A65-4E41-8061-CBE83F3695E5)]
            interface ISmartCardAppletIdGroupFactory : IInspectable
            {
                HRESULT Create([in] HSTRING displayName, [in] Windows.Foundation.Collections.IVector<Windows.Storage.Streams.IBuffer*>* appletIds, [in] Windows.Devices.SmartCards.SmartCardEmulationCategory emulationCategory, [in] Windows.Devices.SmartCards.SmartCardEmulationType emulationType, [out] [retval] Windows.Devices.SmartCards.SmartCardAppletIdGroup** result);
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 1.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardAppletIdGroupRegistration)]
            [uuid(DF1208D1-31BB-5596-43B1-6D69A0257B3A)]
            interface ISmartCardAppletIdGroupRegistration : IInspectable
            {
                [propget] HRESULT ActivationPolicy([out] [retval] Windows.Devices.SmartCards.SmartCardAppletIdGroupActivationPolicy* value);
                [propget] HRESULT AppletIdGroup([out] [retval] Windows.Devices.SmartCards.SmartCardAppletIdGroup** value);
                HRESULT RequestActivationPolicyChangeAsync([in] Windows.Devices.SmartCards.SmartCardAppletIdGroupActivationPolicy policy, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardActivationPolicyChangeResult>** result);
                [propget] HRESULT Id([out] [retval] GUID* value);
                HRESULT SetAutomaticResponseApdusAsync([in] Windows.Foundation.Collections.IIterable<Windows.Devices.SmartCards.SmartCardAutomaticResponseApdu*>* apdus, [out] [retval] Windows.Foundation.IAsyncAction** result);
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 6.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardAppletIdGroupRegistration)]
            [uuid(5F5508D8-98A7-4F2E-91D9-6CFCCEDA407F)]
            interface ISmartCardAppletIdGroupRegistration2 : IInspectable
            {
                [propget] HRESULT SmartCardReaderId([out] [retval] HSTRING* value);
                HRESULT SetPropertiesAsync([in] Windows.Foundation.Collections.ValueSet* props, [out] [retval] Windows.Foundation.IAsyncAction** operation);
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 1.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardAppletIdGroup)]
            [uuid(AB2899A9-E76C-45CF-BF1D-90EAA6205927)]
            interface ISmartCardAppletIdGroupStatics : IInspectable
            {
                [propget] HRESULT MaxAppletIds([out] [retval] UINT16* value);
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 1.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardAutomaticResponseApdu)]
            [uuid(52152BAB-C63E-4531-A857-D756D99B986A)]
            interface ISmartCardAutomaticResponseApdu : IInspectable
            {
                [propget] HRESULT CommandApdu([out] [retval] Windows.Storage.Streams.IBuffer** value);
                [propput] HRESULT CommandApdu([in] Windows.Storage.Streams.IBuffer* value);
                [propget] HRESULT CommandApduBitMask([out] [retval] Windows.Storage.Streams.IBuffer** value);
                [propput] HRESULT CommandApduBitMask([in] Windows.Storage.Streams.IBuffer* value);
                [propget] HRESULT ShouldMatchLength([out] [retval] boolean* value);
                [propput] HRESULT ShouldMatchLength([in] boolean value);
                [propget] HRESULT AppletId([out] [retval] Windows.Storage.Streams.IBuffer** value);
                [propput] HRESULT AppletId([in] Windows.Storage.Streams.IBuffer* value);
                [propget] HRESULT ResponseApdu([out] [retval] Windows.Storage.Streams.IBuffer** value);
                [propput] HRESULT ResponseApdu([in] Windows.Storage.Streams.IBuffer* value);
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 2.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardAutomaticResponseApdu)]
            [uuid(44AEBB14-559D-4531-4E51-89DB6FA8A57A)]
            interface ISmartCardAutomaticResponseApdu2 : IInspectable
            {
                [propget] HRESULT InputState([out] [retval] Windows.Foundation.IReference<UINT32>** value);
                [propput] HRESULT InputState([in] Windows.Foundation.IReference<UINT32>* value);
                [propget] HRESULT OutputState([out] [retval] Windows.Foundation.IReference<UINT32>** value);
                [propput] HRESULT OutputState([in] Windows.Foundation.IReference<UINT32>* value);
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 3.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardAutomaticResponseApdu)]
            [uuid(BF43DA74-6576-4392-9367-FE3BC9E2D496)]
            interface ISmartCardAutomaticResponseApdu3 : IInspectable
            {
                [propget] HRESULT AllowWhenCryptogramGeneratorNotPrepared([out] [retval] boolean* value);
                [propput] HRESULT AllowWhenCryptogramGeneratorNotPrepared([in] boolean value);
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 1.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardAutomaticResponseApdu)]
            [uuid(E97EA2FA-D02C-4C55-B02A-8CFF7FA9F05B)]
            interface ISmartCardAutomaticResponseApduFactory : IInspectable
            {
                HRESULT Create([in] Windows.Storage.Streams.IBuffer* commandApdu, [in] Windows.Storage.Streams.IBuffer* responseApdu, [out] [retval] Windows.Devices.SmartCards.SmartCardAutomaticResponseApdu** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardChallengeContext)]
            [uuid(192A5319-C9C4-4947-81CC-44794A61EF91)]
            interface ISmartCardChallengeContext : IInspectable
                requires
                    Windows.Foundation.IClosable
            {
                [propget] HRESULT Challenge([out] [retval] Windows.Storage.Streams.IBuffer** value);
                HRESULT VerifyResponseAsync([in] Windows.Storage.Streams.IBuffer* response, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** result);
                [overload("ProvisionAsync")] HRESULT ProvisionAsync([in] Windows.Storage.Streams.IBuffer* response, [in] boolean formatCard, [out] [retval] Windows.Foundation.IAsyncAction** result);
                [overload("ProvisionAsync")] HRESULT ProvisionAsyncWithNewCardId([in] Windows.Storage.Streams.IBuffer* response, [in] boolean formatCard, [in] GUID newCardId, [out] [retval] Windows.Foundation.IAsyncAction** result);
                HRESULT ChangeAdministrativeKeyAsync([in] Windows.Storage.Streams.IBuffer* response, [in] Windows.Storage.Streams.IBuffer* newAdministrativeKey, [out] [retval] Windows.Foundation.IAsyncAction** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCard)]
            [uuid(2FDF87E5-028D-491E-A058-3382C3986F40)]
            interface ISmartCardConnect : IInspectable
            {
                HRESULT ConnectAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardConnection*>** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardConnection)]
            [uuid(7EDB991A-A81A-47BC-A649-156BE6B7F231)]
            interface ISmartCardConnection : IInspectable
                requires
                    Windows.Foundation.IClosable
            {
                HRESULT TransmitAsync([in] Windows.Storage.Streams.IBuffer* command, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.Streams.IBuffer*>** result);
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 2.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardCryptogramGenerator)]
            [uuid(E39F587B-EDD3-4E49-B594-0FF5E4D0C76F)]
            interface ISmartCardCryptogramGenerator : IInspectable
            {
                [propget] HRESULT SupportedCryptogramMaterialTypes([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.SmartCards.SmartCardCryptogramMaterialType>** result);
                [propget] HRESULT SupportedCryptogramAlgorithms([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.SmartCards.SmartCardCryptogramAlgorithm>** result);
                [propget] HRESULT SupportedCryptogramMaterialPackageFormats([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.SmartCards.SmartCardCryptogramMaterialPackageFormat>** result);
                [propget] HRESULT SupportedCryptogramMaterialPackageConfirmationResponseFormats([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.SmartCards.SmartCardCryptogramMaterialPackageConfirmationResponseFormat>** result);
                [propget] HRESULT SupportedSmartCardCryptogramStorageKeyCapabilities([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyCapabilities>** result);
                HRESULT DeleteCryptogramMaterialStorageKeyAsync([in] HSTRING storageKeyName, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardCryptogramGeneratorOperationStatus>** result);
                HRESULT CreateCryptogramMaterialStorageKeyAsync([in] Windows.Devices.SmartCards.SmartCardUnlockPromptingBehavior promptingBehavior, [in] HSTRING storageKeyName, [in] Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyAlgorithm algorithm, [in] Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyCapabilities capabilities, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardCryptogramGeneratorOperationStatus>** result);
                HRESULT RequestCryptogramMaterialStorageKeyInfoAsync([in] Windows.Devices.SmartCards.SmartCardUnlockPromptingBehavior promptingBehavior, [in] HSTRING storageKeyName, [in] Windows.Security.Cryptography.Core.CryptographicPublicKeyBlobType format, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyInfo*>** result);
                HRESULT ImportCryptogramMaterialPackageAsync([in] Windows.Devices.SmartCards.SmartCardCryptogramMaterialPackageFormat format, [in] HSTRING storageKeyName, [in] HSTRING materialPackageName, [in] Windows.Storage.Streams.IBuffer* cryptogramMaterialPackage, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardCryptogramGeneratorOperationStatus>** result);
                HRESULT TryProvePossessionOfCryptogramMaterialPackageAsync([in] Windows.Devices.SmartCards.SmartCardUnlockPromptingBehavior promptingBehavior, [in] Windows.Devices.SmartCards.SmartCardCryptogramMaterialPackageConfirmationResponseFormat responseFormat, [in] HSTRING materialPackageName, [in] HSTRING materialName, [in] Windows.Storage.Streams.IBuffer* challenge, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardCryptogramMaterialPossessionProof*>** result);
                HRESULT RequestUnlockCryptogramMaterialForUseAsync([in] Windows.Devices.SmartCards.SmartCardUnlockPromptingBehavior promptingBehavior, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardCryptogramGeneratorOperationStatus>** result);
                HRESULT DeleteCryptogramMaterialPackageAsync([in] HSTRING materialPackageName, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardCryptogramGeneratorOperationStatus>** result);
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 4.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardCryptogramGenerator)]
            [uuid(7116AA34-5D6D-4B4A-96A3-EFA47D2A7E25)]
            interface ISmartCardCryptogramGenerator2 : IInspectable
            {
                HRESULT ValidateRequestApduAsync([in] Windows.Devices.SmartCards.SmartCardUnlockPromptingBehavior promptingBehavior, [in] Windows.Storage.Streams.IBuffer* apduToValidate, [in] Windows.Foundation.Collections.IIterable<Windows.Devices.SmartCards.SmartCardCryptogramPlacementStep*>* cryptogramPlacementSteps, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardCryptogramGeneratorOperationStatus>** result);
                HRESULT GetAllCryptogramStorageKeyCharacteristicsAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult*>** result);
                [overload("GetAllCryptogramMaterialPackageCharacteristicsAsync")] HRESULT GetAllCryptogramMaterialPackageCharacteristicsAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult*>** result);
                [overload("GetAllCryptogramMaterialPackageCharacteristicsAsync")] HRESULT GetAllCryptogramMaterialPackageCharacteristicsWithStorageKeyAsync([in] HSTRING storageKeyName, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult*>** result);
                HRESULT GetAllCryptogramMaterialCharacteristicsAsync([in] Windows.Devices.SmartCards.SmartCardUnlockPromptingBehavior promptingBehavior, [in] HSTRING materialPackageName, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult*>** result);
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 2.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardCryptogramGenerator)]
            [uuid(09933910-CB9C-4015-967D-5234F3B02900)]
            interface ISmartCardCryptogramGeneratorStatics : IInspectable
            {
                HRESULT GetSmartCardCryptogramGeneratorAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardCryptogramGenerator*>** result);
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 5.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardCryptogramGenerator)]
            [uuid(09BDF5E5-B4BD-4E23-A588-74469204C128)]
            interface ISmartCardCryptogramGeneratorStatics2 : IInspectable
            {
                HRESULT IsSupported([out] [retval] boolean* result);
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 4.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult)]
            [uuid(2798E029-D687-4C92-86C6-399E9A0ECB09)]
            interface ISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult : IInspectable
            {
                [propget] HRESULT OperationStatus([out] [retval] Windows.Devices.SmartCards.SmartCardCryptogramGeneratorOperationStatus* value);
                [propget] HRESULT Characteristics([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.SmartCards.SmartCardCryptogramMaterialCharacteristics*>** value);
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 4.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult)]
            [uuid(4E6A8A5C-9773-46C4-A32F-B1E543159E04)]
            interface ISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult : IInspectable
            {
                [propget] HRESULT OperationStatus([out] [retval] Windows.Devices.SmartCards.SmartCardCryptogramGeneratorOperationStatus* value);
                [propget] HRESULT Characteristics([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.SmartCards.SmartCardCryptogramMaterialPackageCharacteristics*>** value);
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 4.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult)]
            [uuid(8C7CE857-A7E7-489D-B9D6-368061515012)]
            interface ISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult : IInspectable
            {
                [propget] HRESULT OperationStatus([out] [retval] Windows.Devices.SmartCards.SmartCardCryptogramGeneratorOperationStatus* value);
                [propget] HRESULT Characteristics([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyCharacteristics*>** value);
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 4.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardCryptogramMaterialCharacteristics)]
            [uuid(FC9AC5CC-C1D7-4153-923B-A2D43C6C8D49)]
            interface ISmartCardCryptogramMaterialCharacteristics : IInspectable
            {
                [propget] HRESULT MaterialName([out] [retval] HSTRING* value);
                [propget] HRESULT AllowedAlgorithms([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.SmartCards.SmartCardCryptogramAlgorithm>** value);
                [propget] HRESULT AllowedProofOfPossessionAlgorithms([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.SmartCards.SmartCardCryptogramMaterialPackageConfirmationResponseFormat>** value);
                [propget] HRESULT AllowedValidations([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.SmartCards.SmartCardCryptogramAlgorithm>** value);
                [propget] HRESULT MaterialType([out] [retval] Windows.Devices.SmartCards.SmartCardCryptogramMaterialType* value);
                [propget] HRESULT ProtectionMethod([out] [retval] Windows.Devices.SmartCards.SmartCardCryptogramMaterialProtectionMethod* value);
                [propget] HRESULT ProtectionVersion([out] [retval] INT32* value);
                [propget] HRESULT MaterialLength([out] [retval] INT32* value);
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 4.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardCryptogramMaterialPackageCharacteristics)]
            [uuid(FFB58E1F-0692-4C47-93CF-34D91F9DCD00)]
            interface ISmartCardCryptogramMaterialPackageCharacteristics : IInspectable
            {
                [propget] HRESULT PackageName([out] [retval] HSTRING* value);
                [propget] HRESULT StorageKeyName([out] [retval] HSTRING* value);
                [propget] HRESULT DateImported([out] [retval] Windows.Foundation.DateTime* value);
                [propget] HRESULT PackageFormat([out] [retval] Windows.Devices.SmartCards.SmartCardCryptogramMaterialPackageFormat* value);
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 2.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardCryptogramMaterialPossessionProof)]
            [uuid(E5B9AB8C-A141-4135-9ADD-B0D2E3AA1FC9)]
            interface ISmartCardCryptogramMaterialPossessionProof : IInspectable
            {
                [propget] HRESULT OperationStatus([out] [retval] Windows.Devices.SmartCards.SmartCardCryptogramGeneratorOperationStatus* value);
                [propget] HRESULT Proof([out] [retval] Windows.Storage.Streams.IBuffer** value);
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 2.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardCryptogramPlacementStep)]
            [uuid(947B03EB-8342-4792-A2E5-925636378A53)]
            interface ISmartCardCryptogramPlacementStep : IInspectable
            {
                [propget] HRESULT Algorithm([out] [retval] Windows.Devices.SmartCards.SmartCardCryptogramAlgorithm* value);
                [propput] HRESULT Algorithm([in] Windows.Devices.SmartCards.SmartCardCryptogramAlgorithm value);
                [propget] HRESULT SourceData([out] [retval] Windows.Storage.Streams.IBuffer** value);
                [propput] HRESULT SourceData([in] Windows.Storage.Streams.IBuffer* value);
                [propget] HRESULT CryptogramMaterialPackageName([out] [retval] HSTRING* value);
                [propput] HRESULT CryptogramMaterialPackageName([in] HSTRING value);
                [propget] HRESULT CryptogramMaterialName([out] [retval] HSTRING* value);
                [propput] HRESULT CryptogramMaterialName([in] HSTRING value);
                [propget] HRESULT TemplateOffset([out] [retval] INT32* value);
                [propput] HRESULT TemplateOffset([in] INT32 value);
                [propget] HRESULT CryptogramOffset([out] [retval] INT32* value);
                [propput] HRESULT CryptogramOffset([in] INT32 value);
                [propget] HRESULT CryptogramLength([out] [retval] INT32* value);
                [propput] HRESULT CryptogramLength([in] INT32 value);
                [propget] HRESULT CryptogramPlacementOptions([out] [retval] Windows.Devices.SmartCards.SmartCardCryptogramPlacementOptions* value);
                [propput] HRESULT CryptogramPlacementOptions([in] Windows.Devices.SmartCards.SmartCardCryptogramPlacementOptions value);
                [propget] HRESULT ChainedOutputStep([out] [retval] Windows.Devices.SmartCards.SmartCardCryptogramPlacementStep** value);
                [propput] HRESULT ChainedOutputStep([in] Windows.Devices.SmartCards.SmartCardCryptogramPlacementStep* value);
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 4.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyCharacteristics)]
            [uuid(8552546E-4457-4825-B464-635471A39F5C)]
            interface ISmartCardCryptogramStorageKeyCharacteristics : IInspectable
            {
                [propget] HRESULT StorageKeyName([out] [retval] HSTRING* value);
                [propget] HRESULT DateCreated([out] [retval] Windows.Foundation.DateTime* value);
                [propget] HRESULT Algorithm([out] [retval] Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyAlgorithm* value);
                [propget] HRESULT Capabilities([out] [retval] Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyCapabilities* value);
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 2.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyInfo)]
            [uuid(77B0F00D-B097-4F61-A26A-9561639C9C3A)]
            interface ISmartCardCryptogramStorageKeyInfo : IInspectable
            {
                [propget] HRESULT OperationStatus([out] [retval] Windows.Devices.SmartCards.SmartCardCryptogramGeneratorOperationStatus* value);
                [propget] HRESULT PublicKeyBlobType([out] [retval] Windows.Security.Cryptography.Core.CryptographicPublicKeyBlobType* value);
                [propget] HRESULT PublicKey([out] [retval] Windows.Storage.Streams.IBuffer** value);
                [propget] HRESULT AttestationStatus([out] [retval] Windows.Devices.SmartCards.SmartCardCryptographicKeyAttestationStatus* value);
                [propget] HRESULT Attestation([out] [retval] Windows.Storage.Streams.IBuffer** value);
                [propget] HRESULT AttestationCertificateChain([out] [retval] Windows.Storage.Streams.IBuffer** value);
                [propget] HRESULT Capabilities([out] [retval] Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyCapabilities* value);
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 3.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyInfo)]
            [uuid(000440F9-F7FD-417D-89E1-FBB0382ADC4D)]
            interface ISmartCardCryptogramStorageKeyInfo2 : IInspectable
            {
                [propget] HRESULT OperationalRequirements([out] [retval] HSTRING* value);
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 1.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardEmulator)]
            [uuid(DFB906B2-875E-47E5-8077-E8BFF1B1C6FB)]
            interface ISmartCardEmulator : IInspectable
            {
                [propget] HRESULT EnablementPolicy([out] [retval] Windows.Devices.SmartCards.SmartCardEmulatorEnablementPolicy* value);
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 1.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardEmulator)]
            [uuid(FE3FC0B8-8529-411A-807B-48EDC2A0AB44)]
            interface ISmartCardEmulator2 : IInspectable
            {
                [eventadd] HRESULT ApduReceived([in] Windows.Foundation.TypedEventHandler<Windows.Devices.SmartCards.SmartCardEmulator*, Windows.Devices.SmartCards.SmartCardEmulatorApduReceivedEventArgs*>* value, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT ApduReceived([in] EventRegistrationToken value);
                [eventadd] HRESULT ConnectionDeactivated([in] Windows.Foundation.TypedEventHandler<Windows.Devices.SmartCards.SmartCardEmulator*, Windows.Devices.SmartCards.SmartCardEmulatorConnectionDeactivatedEventArgs*>* value, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT ConnectionDeactivated([in] EventRegistrationToken value);
                HRESULT Start();
                HRESULT IsHostCardEmulationSupported([out] [retval] boolean* value);
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 1.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardEmulatorApduReceivedEventArgs)]
            [uuid(D55D1576-69D2-5333-5B5F-F8C0D6E9F09F)]
            interface ISmartCardEmulatorApduReceivedEventArgs : IInspectable
            {
                [propget] HRESULT CommandApdu([out] [retval] Windows.Storage.Streams.IBuffer** value);
                [propget] HRESULT ConnectionProperties([out] [retval] Windows.Devices.SmartCards.SmartCardEmulatorConnectionProperties** value);
                HRESULT TryRespondAsync([in] Windows.Storage.Streams.IBuffer* responseApdu, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** result);
                [propget] HRESULT AutomaticResponseStatus([out] [retval] Windows.Devices.SmartCards.SmartCardAutomaticResponseStatus* value);
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 2.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardEmulatorApduReceivedEventArgs)]
            [uuid(8BF93DF0-22E1-4238-8610-94CE4A965425)]
            interface ISmartCardEmulatorApduReceivedEventArgs2 : IInspectable
            {
                [propget] HRESULT State([out] [retval] UINT32* value);
                [overload("TryRespondAsync")] HRESULT TryRespondWithStateAsync([in] Windows.Storage.Streams.IBuffer* responseApdu, [in] Windows.Foundation.IReference<UINT32>* nextState, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** result);
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 2.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardEmulatorApduReceivedEventArgs)]
            [uuid(D550BAC7-B7BF-4E29-9294-0C4AC3C941BD)]
            interface ISmartCardEmulatorApduReceivedEventArgsWithCryptograms : IInspectable
            {
                [overload("TryRespondWithCryptogramsAsync")] HRESULT TryRespondWithCryptogramsAsync([in] Windows.Storage.Streams.IBuffer* responseTemplate, [in] Windows.Foundation.Collections.IIterable<Windows.Devices.SmartCards.SmartCardCryptogramPlacementStep*>* cryptogramPlacementSteps, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardCryptogramGeneratorOperationStatus>** result);
                [overload("TryRespondWithCryptogramsAsync")] HRESULT TryRespondWithCryptogramsAndStateAsync([in] Windows.Storage.Streams.IBuffer* responseTemplate, [in] Windows.Foundation.Collections.IIterable<Windows.Devices.SmartCards.SmartCardCryptogramPlacementStep*>* cryptogramPlacementSteps, [in] Windows.Foundation.IReference<UINT32>* nextState, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardCryptogramGeneratorOperationStatus>** result);
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 1.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardEmulatorConnectionDeactivatedEventArgs)]
            [uuid(2186D8D3-C5EB-5262-43DF-62A0A1B55557)]
            interface ISmartCardEmulatorConnectionDeactivatedEventArgs : IInspectable
            {
                [propget] HRESULT ConnectionProperties([out] [retval] Windows.Devices.SmartCards.SmartCardEmulatorConnectionProperties** value);
                [propget] HRESULT Reason([out] [retval] Windows.Devices.SmartCards.SmartCardEmulatorConnectionDeactivatedReason* value);
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 1.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardEmulatorConnectionProperties)]
            [uuid(4E2CA5EE-F969-507D-6CF9-34E2D18DF311)]
            interface ISmartCardEmulatorConnectionProperties : IInspectable
            {
                [propget] HRESULT Id([out] [retval] GUID* value);
                [propget] HRESULT Source([out] [retval] Windows.Devices.SmartCards.SmartCardEmulatorConnectionSource* value);
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 1.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardEmulator)]
            [uuid(7A9BFC4B-C4D3-494F-B8A2-6215D81E85B2)]
            interface ISmartCardEmulatorStatics : IInspectable
            {
                HRESULT GetDefaultAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardEmulator*>** result);
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 1.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardEmulator)]
            [uuid(69AE9F8A-B775-488B-8436-6C1E28ED731F)]
            interface ISmartCardEmulatorStatics2 : IInspectable
            {
                HRESULT GetAppletIdGroupRegistrationsAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Devices.SmartCards.SmartCardAppletIdGroupRegistration*>*>** result);
                HRESULT RegisterAppletIdGroupAsync([in] Windows.Devices.SmartCards.SmartCardAppletIdGroup* appletIdGroup, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardAppletIdGroupRegistration*>** result);
                HRESULT UnregisterAppletIdGroupAsync([in] Windows.Devices.SmartCards.SmartCardAppletIdGroupRegistration* registration, [out] [retval] Windows.Foundation.IAsyncAction** result);
                [propget] HRESULT MaxAppletIdGroupRegistrations([out] [retval] UINT16* value);
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 5.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardEmulator)]
            [uuid(59EA142A-9F09-43F5-8565-CFA8148E4CB2)]
            interface ISmartCardEmulatorStatics3 : IInspectable
            {
                HRESULT IsSupported([out] [retval] boolean* result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardPinPolicy)]
            [uuid(183CE184-4DB6-4841-AC9E-2AC1F39B7304)]
            interface ISmartCardPinPolicy : IInspectable
            {
                [propget] HRESULT MinLength([out] [retval] UINT32* value);
                [propput] HRESULT MinLength([in] UINT32 value);
                [propget] HRESULT MaxLength([out] [retval] UINT32* value);
                [propput] HRESULT MaxLength([in] UINT32 value);
                [propget] HRESULT UppercaseLetters([out] [retval] Windows.Devices.SmartCards.SmartCardPinCharacterPolicyOption* value);
                [propput] HRESULT UppercaseLetters([in] Windows.Devices.SmartCards.SmartCardPinCharacterPolicyOption value);
                [propget] HRESULT LowercaseLetters([out] [retval] Windows.Devices.SmartCards.SmartCardPinCharacterPolicyOption* value);
                [propput] HRESULT LowercaseLetters([in] Windows.Devices.SmartCards.SmartCardPinCharacterPolicyOption value);
                [propget] HRESULT Digits([out] [retval] Windows.Devices.SmartCards.SmartCardPinCharacterPolicyOption* value);
                [propput] HRESULT Digits([in] Windows.Devices.SmartCards.SmartCardPinCharacterPolicyOption value);
                [propget] HRESULT SpecialCharacters([out] [retval] Windows.Devices.SmartCards.SmartCardPinCharacterPolicyOption* value);
                [propput] HRESULT SpecialCharacters([in] Windows.Devices.SmartCards.SmartCardPinCharacterPolicyOption value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardPinResetDeferral)]
            [uuid(18C94AAC-7805-4004-85E4-BBEFAC8F6884)]
            interface ISmartCardPinResetDeferral : IInspectable
            {
                HRESULT Complete();
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardPinResetRequest)]
            [uuid(12FE3C4D-5FB9-4E8E-9FF6-61F475124FEF)]
            interface ISmartCardPinResetRequest : IInspectable
            {
                [propget] HRESULT Challenge([out] [retval] Windows.Storage.Streams.IBuffer** value);
                [propget] HRESULT Deadline([out] [retval] Windows.Foundation.DateTime* value);
                HRESULT GetDeferral([out] [retval] Windows.Devices.SmartCards.SmartCardPinResetDeferral** result);
                HRESULT SetResponse([in] Windows.Storage.Streams.IBuffer* response);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardProvisioning)]
            [uuid(19EEEDBD-1FAB-477C-B712-1A2C5AF1FD6E)]
            interface ISmartCardProvisioning : IInspectable
            {
                [propget] HRESULT SmartCard([out] [retval] Windows.Devices.SmartCards.SmartCard** value);
                HRESULT GetIdAsync([out] [retval] Windows.Foundation.IAsyncOperation<GUID>** result);
                HRESULT GetNameAsync([out] [retval] Windows.Foundation.IAsyncOperation<HSTRING>** result);
                HRESULT GetChallengeContextAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardChallengeContext*>** result);
                HRESULT RequestPinChangeAsync([out] [retval] Windows.Foundation.IAsyncOperation<boolean>** result);
                HRESULT RequestPinResetAsync([in] Windows.Devices.SmartCards.SmartCardPinResetHandler* handler, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardProvisioning)]
            [uuid(10FD28EB-3F79-4B66-9B7C-11C149B7D0BC)]
            interface ISmartCardProvisioning2 : IInspectable
            {
                HRESULT GetAuthorityKeyContainerNameAsync([out] [retval] Windows.Foundation.IAsyncOperation<HSTRING>** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardProvisioning)]
            [uuid(13882848-0D13-4E70-9735-51DAECA5254F)]
            interface ISmartCardProvisioningStatics : IInspectable
            {
                HRESULT FromSmartCardAsync([in] Windows.Devices.SmartCards.SmartCard* card, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardProvisioning*>** result);
                [overload("RequestVirtualSmartCardCreationAsync")] HRESULT RequestVirtualSmartCardCreationAsync([in] HSTRING friendlyName, [in] Windows.Storage.Streams.IBuffer* administrativeKey, [in] Windows.Devices.SmartCards.SmartCardPinPolicy* pinPolicy, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardProvisioning*>** result);
                [overload("RequestVirtualSmartCardCreationAsync")] HRESULT RequestVirtualSmartCardCreationAsyncWithCardId([in] HSTRING friendlyName, [in] Windows.Storage.Streams.IBuffer* administrativeKey, [in] Windows.Devices.SmartCards.SmartCardPinPolicy* pinPolicy, [in] GUID cardId, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardProvisioning*>** result);
                HRESULT RequestVirtualSmartCardDeletionAsync([in] Windows.Devices.SmartCards.SmartCard* card, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardProvisioning)]
            [uuid(3447C6A8-C9A0-4BD6-B50D-251F4E8D3A62)]
            interface ISmartCardProvisioningStatics2 : IInspectable
            {
                [overload("RequestAttestedVirtualSmartCardCreationAsync")] HRESULT RequestAttestedVirtualSmartCardCreationAsync([in] HSTRING friendlyName, [in] Windows.Storage.Streams.IBuffer* administrativeKey, [in] Windows.Devices.SmartCards.SmartCardPinPolicy* pinPolicy, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardProvisioning*>** result);
                [overload("RequestAttestedVirtualSmartCardCreationAsync")] HRESULT RequestAttestedVirtualSmartCardCreationAsyncWithCardId([in] HSTRING friendlyName, [in] Windows.Storage.Streams.IBuffer* administrativeKey, [in] Windows.Devices.SmartCards.SmartCardPinPolicy* pinPolicy, [in] GUID cardId, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardProvisioning*>** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardReader)]
            [uuid(1074B4E0-54C2-4DF0-817A-14C14378F06C)]
            interface ISmartCardReader : IInspectable
            {
                [propget] HRESULT DeviceId([out] [retval] HSTRING* value);
                [propget] HRESULT Name([out] [retval] HSTRING* value);
                [propget] HRESULT Kind([out] [retval] Windows.Devices.SmartCards.SmartCardReaderKind* value);
                HRESULT GetStatusAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardReaderStatus>** result);
                HRESULT FindAllCardsAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Devices.SmartCards.SmartCard*>*>** result);
                [eventadd] HRESULT CardAdded([in] Windows.Foundation.TypedEventHandler<Windows.Devices.SmartCards.SmartCardReader*, Windows.Devices.SmartCards.CardAddedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT CardAdded([in] EventRegistrationToken token);
                [eventadd] HRESULT CardRemoved([in] Windows.Foundation.TypedEventHandler<Windows.Devices.SmartCards.SmartCardReader*, Windows.Devices.SmartCards.CardRemovedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT CardRemoved([in] EventRegistrationToken token);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardReader)]
            [uuid(103C04E1-A1CA-48F2-A281-5B6F669AF107)]
            interface ISmartCardReaderStatics : IInspectable
            {
                [overload("GetDeviceSelector")] HRESULT GetDeviceSelector([out] [retval] HSTRING* selector);
                [overload("GetDeviceSelector")] HRESULT GetDeviceSelectorWithKind([in] Windows.Devices.SmartCards.SmartCardReaderKind kind, [out] [retval] HSTRING* selector);
                HRESULT FromIdAsync([in] HSTRING deviceId, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Devices.SmartCards.SmartCardReader*>** result);
            }

            [contract(Windows.Devices.SmartCards.SmartCardBackgroundTriggerContract, 1.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardTriggerDetails)]
            [uuid(5F9BF11E-39EF-4F2B-B44F-0A9155B177BC)]
            interface ISmartCardTriggerDetails : IInspectable
            {
                [propget] HRESULT TriggerType([out] [retval] Windows.Devices.SmartCards.SmartCardTriggerType* value);
                [propget] HRESULT SourceAppletId([out] [retval] Windows.Storage.Streams.IBuffer** value);
                [propget] HRESULT TriggerData([out] [retval] Windows.Storage.Streams.IBuffer** value);
            }

            [contract(Windows.Devices.SmartCards.SmartCardBackgroundTriggerContract, 1.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardTriggerDetails)]
            [uuid(2945C569-8975-4A51-9E1A-5F8A76EE51AF)]
            interface ISmartCardTriggerDetails2 : IInspectable
            {
                [propget] HRESULT Emulator([out] [retval] Windows.Devices.SmartCards.SmartCardEmulator** value);
                [overload("TryLaunchCurrentAppAsync")] HRESULT TryLaunchCurrentAppAsync([in] HSTRING arguments, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** result);
                [overload("TryLaunchCurrentAppAsync")] HRESULT TryLaunchCurrentAppWithBehaviorAsync([in] HSTRING arguments, [in] Windows.Devices.SmartCards.SmartCardLaunchBehavior behavior, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** result);
            }

            [contract(Windows.Devices.SmartCards.SmartCardBackgroundTriggerContract, 3.0)]
            [exclusiveto(Windows.Devices.SmartCards.SmartCardTriggerDetails)]
            [uuid(B3E2C27D-18C6-4BA8-8376-EF03D4912666)]
            interface ISmartCardTriggerDetails3 : IInspectable
            {
                [propget] HRESULT SmartCard([out] [retval] Windows.Devices.SmartCards.SmartCard** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass CardAddedEventArgs
            {
                [default] interface Windows.Devices.SmartCards.ICardAddedEventArgs;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass CardRemovedEventArgs
            {
                [default] interface Windows.Devices.SmartCards.ICardRemovedEventArgs;
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 6.0)]
            [static(Windows.Devices.SmartCards.IKnownSmartCardAppletIds, Windows.Devices.SmartCards.SmartCardEmulatorContract, 6.0)]
            runtimeclass KnownSmartCardAppletIds
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass SmartCard
            {
                [default] interface Windows.Devices.SmartCards.ISmartCard;
                [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Devices.SmartCards.ISmartCardConnect;
            }

            [activatable(Windows.Devices.SmartCards.ISmartCardAppletIdGroupFactory, Windows.Devices.SmartCards.SmartCardEmulatorContract, 1.0)]
            [activatable(Windows.Devices.SmartCards.SmartCardEmulatorContract, 1.0)]
            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Devices.SmartCards.ISmartCardAppletIdGroupStatics, Windows.Devices.SmartCards.SmartCardEmulatorContract, 1.0)]
            [threading(both)]
            runtimeclass SmartCardAppletIdGroup
            {
                [default] interface Windows.Devices.SmartCards.ISmartCardAppletIdGroup;
                [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 6.0)] interface Windows.Devices.SmartCards.ISmartCardAppletIdGroup2;
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass SmartCardAppletIdGroupRegistration
            {
                [default] interface Windows.Devices.SmartCards.ISmartCardAppletIdGroupRegistration;
                [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 6.0)] interface Windows.Devices.SmartCards.ISmartCardAppletIdGroupRegistration2;
            }

            [activatable(Windows.Devices.SmartCards.ISmartCardAutomaticResponseApduFactory, Windows.Devices.SmartCards.SmartCardEmulatorContract, 1.0)]
            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass SmartCardAutomaticResponseApdu
            {
                [default] interface Windows.Devices.SmartCards.ISmartCardAutomaticResponseApdu;
                [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 2.0)] interface Windows.Devices.SmartCards.ISmartCardAutomaticResponseApdu2;
                [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 3.0)] interface Windows.Devices.SmartCards.ISmartCardAutomaticResponseApdu3;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass SmartCardChallengeContext
            {
                [default] interface Windows.Devices.SmartCards.ISmartCardChallengeContext;
                interface Windows.Foundation.IClosable;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass SmartCardConnection
            {
                [default] interface Windows.Devices.SmartCards.ISmartCardConnection;
                interface Windows.Foundation.IClosable;
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 2.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Devices.SmartCards.ISmartCardCryptogramGeneratorStatics, Windows.Devices.SmartCards.SmartCardEmulatorContract, 2.0)]
            [static(Windows.Devices.SmartCards.ISmartCardCryptogramGeneratorStatics2, Windows.Devices.SmartCards.SmartCardEmulatorContract, 5.0)]
            [threading(both)]
            runtimeclass SmartCardCryptogramGenerator
            {
                [default] interface Windows.Devices.SmartCards.ISmartCardCryptogramGenerator;
                [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 4.0)] interface Windows.Devices.SmartCards.ISmartCardCryptogramGenerator2;
            }

            [activatable(Windows.Devices.SmartCards.SmartCardEmulatorContract, 4.0)]
            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 4.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass SmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult
            {
                [default] interface Windows.Devices.SmartCards.ISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult;
            }

            [activatable(Windows.Devices.SmartCards.SmartCardEmulatorContract, 4.0)]
            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 4.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass SmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult
            {
                [default] interface Windows.Devices.SmartCards.ISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult;
            }

            [activatable(Windows.Devices.SmartCards.SmartCardEmulatorContract, 4.0)]
            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 4.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass SmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult
            {
                [default] interface Windows.Devices.SmartCards.ISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult;
            }

            [activatable(Windows.Devices.SmartCards.SmartCardEmulatorContract, 4.0)]
            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 4.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass SmartCardCryptogramMaterialCharacteristics
            {
                [default] interface Windows.Devices.SmartCards.ISmartCardCryptogramMaterialCharacteristics;
            }

            [activatable(Windows.Devices.SmartCards.SmartCardEmulatorContract, 4.0)]
            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 4.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass SmartCardCryptogramMaterialPackageCharacteristics
            {
                [default] interface Windows.Devices.SmartCards.ISmartCardCryptogramMaterialPackageCharacteristics;
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass SmartCardCryptogramMaterialPossessionProof
            {
                [default] interface Windows.Devices.SmartCards.ISmartCardCryptogramMaterialPossessionProof;
            }

            [activatable(Windows.Devices.SmartCards.SmartCardEmulatorContract, 2.0)]
            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass SmartCardCryptogramPlacementStep
            {
                [default] interface Windows.Devices.SmartCards.ISmartCardCryptogramPlacementStep;
            }

            [activatable(Windows.Devices.SmartCards.SmartCardEmulatorContract, 4.0)]
            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 4.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass SmartCardCryptogramStorageKeyCharacteristics
            {
                [default] interface Windows.Devices.SmartCards.ISmartCardCryptogramStorageKeyCharacteristics;
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass SmartCardCryptogramStorageKeyInfo
            {
                [default] interface Windows.Devices.SmartCards.ISmartCardCryptogramStorageKeyInfo;
                [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 3.0)] interface Windows.Devices.SmartCards.ISmartCardCryptogramStorageKeyInfo2;
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Devices.SmartCards.ISmartCardEmulatorStatics, Windows.Devices.SmartCards.SmartCardEmulatorContract, 1.0)]
            [static(Windows.Devices.SmartCards.ISmartCardEmulatorStatics2, Windows.Devices.SmartCards.SmartCardEmulatorContract, 1.0)]
            [static(Windows.Devices.SmartCards.ISmartCardEmulatorStatics3, Windows.Devices.SmartCards.SmartCardEmulatorContract, 5.0)]
            [threading(both)]
            runtimeclass SmartCardEmulator
            {
                [default] interface Windows.Devices.SmartCards.ISmartCardEmulator;
                [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 2.0)] interface Windows.Devices.SmartCards.ISmartCardEmulator2;
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass SmartCardEmulatorApduReceivedEventArgs
            {
                [default] interface Windows.Devices.SmartCards.ISmartCardEmulatorApduReceivedEventArgs;
                [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 2.0)] interface Windows.Devices.SmartCards.ISmartCardEmulatorApduReceivedEventArgsWithCryptograms;
                [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 2.0)] interface Windows.Devices.SmartCards.ISmartCardEmulatorApduReceivedEventArgs2;
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass SmartCardEmulatorConnectionDeactivatedEventArgs
            {
                [default] interface Windows.Devices.SmartCards.ISmartCardEmulatorConnectionDeactivatedEventArgs;
            }

            [contract(Windows.Devices.SmartCards.SmartCardEmulatorContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass SmartCardEmulatorConnectionProperties
            {
                [default] interface Windows.Devices.SmartCards.ISmartCardEmulatorConnectionProperties;
            }

            [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass SmartCardPinPolicy
            {
                [default] interface Windows.Devices.SmartCards.ISmartCardPinPolicy;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass SmartCardPinResetDeferral
            {
                [default] interface Windows.Devices.SmartCards.ISmartCardPinResetDeferral;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass SmartCardPinResetRequest
            {
                [default] interface Windows.Devices.SmartCards.ISmartCardPinResetRequest;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Devices.SmartCards.ISmartCardProvisioningStatics, Windows.Foundation.UniversalApiContract, 1.0)]
            [static(Windows.Devices.SmartCards.ISmartCardProvisioningStatics2, Windows.Foundation.UniversalApiContract, 1.0)]
            [threading(both)]
            runtimeclass SmartCardProvisioning
            {
                [default] interface Windows.Devices.SmartCards.ISmartCardProvisioning;
                [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Devices.SmartCards.ISmartCardProvisioning2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Devices.SmartCards.ISmartCardReaderStatics, Windows.Foundation.UniversalApiContract, 1.0)]
            [threading(both)]
            runtimeclass SmartCardReader
            {
                [default] interface Windows.Devices.SmartCards.ISmartCardReader;
            }

            [contract(Windows.Devices.SmartCards.SmartCardBackgroundTriggerContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass SmartCardTriggerDetails
            {
                [default] interface Windows.Devices.SmartCards.ISmartCardTriggerDetails;
                [contract(Windows.Devices.SmartCards.SmartCardBackgroundTriggerContract, 1.0)] interface Windows.Devices.SmartCards.ISmartCardTriggerDetails2;
                [contract(Windows.Devices.SmartCards.SmartCardBackgroundTriggerContract, 3.0)] interface Windows.Devices.SmartCards.ISmartCardTriggerDetails3;
            }
        }
    }
}
