
#pragma warning( disable: 4049 )  /* more than 64k source lines */

/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 500
#endif

/* verify that the <rpcsal.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCSAL_H_VERSION__
#define __REQUIRED_RPCSAL_H_VERSION__ 100
#endif

#include <rpc.h>
#include <rpcndr.h>

#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif /* __RPCNDR_H_VERSION__ */

#ifndef COM_NO_WINDOWS_H
#include <windows.h>
#include <ole2.h>
#endif /*COM_NO_WINDOWS_H*/
#ifndef __windows2Edevices2Esmartcards_h__
#define __windows2Edevices2Esmartcards_h__
#ifndef __windows2Edevices2Esmartcards_p_h__
#define __windows2Edevices2Esmartcards_p_h__


#pragma once

//
// Deprecated attribute support
//

#pragma push_macro("DEPRECATED")
#undef DEPRECATED

#if !defined(DISABLE_WINRT_DEPRECATION)
#if defined(__cplusplus)
#if __cplusplus >= 201402
#define DEPRECATED(x) [[deprecated(x)]]
#define DEPRECATEDENUMERATOR(x) [[deprecated(x)]]
#elif defined(_MSC_VER)
#if _MSC_VER >= 1900
#define DEPRECATED(x) [[deprecated(x)]]
#define DEPRECATEDENUMERATOR(x) [[deprecated(x)]]
#else
#define DEPRECATED(x) __declspec(deprecated(x))
#define DEPRECATEDENUMERATOR(x)
#endif // _MSC_VER >= 1900
#else // Not Standard C++ or MSVC, ignore the construct.
#define DEPRECATED(x)
#define DEPRECATEDENUMERATOR(x)
#endif  // C++ deprecation
#else // C - disable deprecation
#define DEPRECATED(x)
#define DEPRECATEDENUMERATOR(x)
#endif
#else // Deprecation is disabled
#define DEPRECATED(x)
#define DEPRECATEDENUMERATOR(x)
#endif  /* DEPRECATED */

// Disable Deprecation for this header, MIDL verifies that cross-type access is acceptable
#ifdef __clang__
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
#else
#pragma warning(push)
#pragma warning(disable: 4996)
#endif

// Ensure that the setting of the /ns_prefix command line switch is consistent for all headers.
// If you get an error from the compiler indicating "warning C4005: 'CHECK_NS_PREFIX_STATE': macro redefinition", this
// indicates that you have included two different headers with different settings for the /ns_prefix MIDL command line switch
#if !defined(DISABLE_NS_PREFIX_CHECKS)
#define CHECK_NS_PREFIX_STATE "always"
#endif // !defined(DISABLE_NS_PREFIX_CHECKS)


#pragma push_macro("MIDL_CONST_ID")
#undef MIDL_CONST_ID
#define MIDL_CONST_ID const __declspec(selectany)


//  API Contract Inclusion Definitions
#if !defined(SPECIFIC_API_CONTRACT_DEFINITIONS)
#if !defined(WINDOWS_DEVICES_SMARTCARDS_SMARTCARDBACKGROUNDTRIGGERCONTRACT_VERSION)
#define WINDOWS_DEVICES_SMARTCARDS_SMARTCARDBACKGROUNDTRIGGERCONTRACT_VERSION 0x30000
#endif // defined(WINDOWS_DEVICES_SMARTCARDS_SMARTCARDBACKGROUNDTRIGGERCONTRACT_VERSION)

#if !defined(WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION)
#define WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION 0x60000
#endif // defined(WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION)

#if !defined(WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION)
#define WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION 0x40000
#endif // defined(WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION)

#if !defined(WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION)
#define WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION 0x130000
#endif // defined(WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION)

#endif // defined(SPECIFIC_API_CONTRACT_DEFINITIONS)


// Header files for imported files
#include "inspectable.h"
#include "AsyncInfo.h"
#include "EventToken.h"
#include "windowscontracts.h"
#include "Windows.Foundation.h"
#include "Windows.Security.Cryptography.Core.h"
#include "Windows.Storage.Streams.h"
// Importing Collections header
#include <windows.foundation.collections.h>

#if defined(__cplusplus) && !defined(CINTERFACE)
/* Forward Declarations */
#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetHandler_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetHandler_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardPinResetHandler;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetHandler ABI::Windows::Devices::SmartCards::ISmartCardPinResetHandler

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetHandler_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CICardAddedEventArgs_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CICardAddedEventArgs_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ICardAddedEventArgs;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CICardAddedEventArgs ABI::Windows::Devices::SmartCards::ICardAddedEventArgs

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CICardAddedEventArgs_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CICardRemovedEventArgs_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CICardRemovedEventArgs_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ICardRemovedEventArgs;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CICardRemovedEventArgs ABI::Windows::Devices::SmartCards::ICardRemovedEventArgs

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CICardRemovedEventArgs_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CIKnownSmartCardAppletIds_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CIKnownSmartCardAppletIds_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface IKnownSmartCardAppletIds;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CIKnownSmartCardAppletIds ABI::Windows::Devices::SmartCards::IKnownSmartCardAppletIds

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CIKnownSmartCardAppletIds_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCard_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCard_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCard;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCard ABI::Windows::Devices::SmartCards::ISmartCard

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCard_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardAppletIdGroup;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup ABI::Windows::Devices::SmartCards::ISmartCardAppletIdGroup

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardAppletIdGroup2;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2 ABI::Windows::Devices::SmartCards::ISmartCardAppletIdGroup2

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupFactory_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupFactory_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardAppletIdGroupFactory;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupFactory ABI::Windows::Devices::SmartCards::ISmartCardAppletIdGroupFactory

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupFactory_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardAppletIdGroupRegistration;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration ABI::Windows::Devices::SmartCards::ISmartCardAppletIdGroupRegistration

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration2_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration2_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardAppletIdGroupRegistration2;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration2 ABI::Windows::Devices::SmartCards::ISmartCardAppletIdGroupRegistration2

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration2_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupStatics_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardAppletIdGroupStatics;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupStatics ABI::Windows::Devices::SmartCards::ISmartCardAppletIdGroupStatics

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupStatics_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardAutomaticResponseApdu;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu ABI::Windows::Devices::SmartCards::ISmartCardAutomaticResponseApdu

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardAutomaticResponseApdu2;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2 ABI::Windows::Devices::SmartCards::ISmartCardAutomaticResponseApdu2

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu3_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu3_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardAutomaticResponseApdu3;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu3 ABI::Windows::Devices::SmartCards::ISmartCardAutomaticResponseApdu3

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu3_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApduFactory_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApduFactory_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardAutomaticResponseApduFactory;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApduFactory ABI::Windows::Devices::SmartCards::ISmartCardAutomaticResponseApduFactory

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApduFactory_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardChallengeContext;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext ABI::Windows::Devices::SmartCards::ISmartCardChallengeContext

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnect_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnect_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardConnect;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnect ABI::Windows::Devices::SmartCards::ISmartCardConnect

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnect_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnection_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnection_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardConnection;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnection ABI::Windows::Devices::SmartCards::ISmartCardConnection

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnection_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardCryptogramGenerator;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator ABI::Windows::Devices::SmartCards::ISmartCardCryptogramGenerator

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardCryptogramGenerator2;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2 ABI::Windows::Devices::SmartCards::ISmartCardCryptogramGenerator2

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardCryptogramGeneratorStatics;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics ABI::Windows::Devices::SmartCards::ISmartCardCryptogramGeneratorStatics

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics2_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics2_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardCryptogramGeneratorStatics2;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics2 ABI::Windows::Devices::SmartCards::ISmartCardCryptogramGeneratorStatics2

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics2_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult ABI::Windows::Devices::SmartCards::ISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult ABI::Windows::Devices::SmartCards::ISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult ABI::Windows::Devices::SmartCards::ISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardCryptogramMaterialCharacteristics;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics ABI::Windows::Devices::SmartCards::ISmartCardCryptogramMaterialCharacteristics

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardCryptogramMaterialPackageCharacteristics;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics ABI::Windows::Devices::SmartCards::ISmartCardCryptogramMaterialPackageCharacteristics

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPossessionProof_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPossessionProof_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardCryptogramMaterialPossessionProof;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPossessionProof ABI::Windows::Devices::SmartCards::ISmartCardCryptogramMaterialPossessionProof

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPossessionProof_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardCryptogramPlacementStep;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep ABI::Windows::Devices::SmartCards::ISmartCardCryptogramPlacementStep

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardCryptogramStorageKeyCharacteristics;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics ABI::Windows::Devices::SmartCards::ISmartCardCryptogramStorageKeyCharacteristics

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardCryptogramStorageKeyInfo;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo ABI::Windows::Devices::SmartCards::ISmartCardCryptogramStorageKeyInfo

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo2_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo2_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardCryptogramStorageKeyInfo2;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo2 ABI::Windows::Devices::SmartCards::ISmartCardCryptogramStorageKeyInfo2

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo2_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardEmulator;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator ABI::Windows::Devices::SmartCards::ISmartCardEmulator

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardEmulator2;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2 ABI::Windows::Devices::SmartCards::ISmartCardEmulator2

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardEmulatorApduReceivedEventArgs;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs ABI::Windows::Devices::SmartCards::ISmartCardEmulatorApduReceivedEventArgs

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs2_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs2_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardEmulatorApduReceivedEventArgs2;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs2 ABI::Windows::Devices::SmartCards::ISmartCardEmulatorApduReceivedEventArgs2

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs2_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsWithCryptograms_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsWithCryptograms_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardEmulatorApduReceivedEventArgsWithCryptograms;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsWithCryptograms ABI::Windows::Devices::SmartCards::ISmartCardEmulatorApduReceivedEventArgsWithCryptograms

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsWithCryptograms_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionDeactivatedEventArgs_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionDeactivatedEventArgs_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardEmulatorConnectionDeactivatedEventArgs;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionDeactivatedEventArgs ABI::Windows::Devices::SmartCards::ISmartCardEmulatorConnectionDeactivatedEventArgs

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionDeactivatedEventArgs_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionProperties_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionProperties_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardEmulatorConnectionProperties;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionProperties ABI::Windows::Devices::SmartCards::ISmartCardEmulatorConnectionProperties

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionProperties_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardEmulatorStatics;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics ABI::Windows::Devices::SmartCards::ISmartCardEmulatorStatics

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardEmulatorStatics2;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2 ABI::Windows::Devices::SmartCards::ISmartCardEmulatorStatics2

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics3_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics3_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardEmulatorStatics3;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics3 ABI::Windows::Devices::SmartCards::ISmartCardEmulatorStatics3

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics3_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardPinPolicy;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy ABI::Windows::Devices::SmartCards::ISmartCardPinPolicy

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetDeferral_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetDeferral_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardPinResetDeferral;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetDeferral ABI::Windows::Devices::SmartCards::ISmartCardPinResetDeferral

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetDeferral_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequest_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequest_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardPinResetRequest;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequest ABI::Windows::Devices::SmartCards::ISmartCardPinResetRequest

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequest_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardProvisioning;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning ABI::Windows::Devices::SmartCards::ISmartCardProvisioning

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning2_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning2_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardProvisioning2;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning2 ABI::Windows::Devices::SmartCards::ISmartCardProvisioning2

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning2_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardProvisioningStatics;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics ABI::Windows::Devices::SmartCards::ISmartCardProvisioningStatics

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics2_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics2_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardProvisioningStatics2;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics2 ABI::Windows::Devices::SmartCards::ISmartCardProvisioningStatics2

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics2_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardReader;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader ABI::Windows::Devices::SmartCards::ISmartCardReader

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderStatics_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardReaderStatics;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderStatics ABI::Windows::Devices::SmartCards::ISmartCardReaderStatics

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderStatics_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardTriggerDetails;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails ABI::Windows::Devices::SmartCards::ISmartCardTriggerDetails

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails2_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails2_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardTriggerDetails2;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails2 ABI::Windows::Devices::SmartCards::ISmartCardTriggerDetails2

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails2_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails3_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails3_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                interface ISmartCardTriggerDetails3;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails3 ABI::Windows::Devices::SmartCards::ISmartCardTriggerDetails3

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails3_FWD_DEFINED__

// Parameterized interface forward declarations (C++)

// Collection interface definitions

#ifndef DEF___FIAsyncOperation_1_boolean_USE
#define DEF___FIAsyncOperation_1_boolean_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("cdb5efb3-5788-509d-9be1-71ccb8a3362a"))
IAsyncOperation<bool> : IAsyncOperation_impl<ABI::Windows::Foundation::Internal::AggregateType<bool, boolean>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.IAsyncOperation`1<Boolean>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperation<bool> __FIAsyncOperation_1_boolean_t;
#define __FIAsyncOperation_1_boolean ABI::Windows::Foundation::__FIAsyncOperation_1_boolean_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperation_1_boolean_USE */



#ifndef DEF___FIAsyncOperationCompletedHandler_1_boolean_USE
#define DEF___FIAsyncOperationCompletedHandler_1_boolean_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("c1d3d1a2-ae17-5a5f-b5a2-bdcc8844889a"))
IAsyncOperationCompletedHandler<bool> : IAsyncOperationCompletedHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<bool, boolean>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.AsyncOperationCompletedHandler`1<Boolean>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperationCompletedHandler<bool> __FIAsyncOperationCompletedHandler_1_boolean_t;
#define __FIAsyncOperationCompletedHandler_1_boolean ABI::Windows::Foundation::__FIAsyncOperationCompletedHandler_1_boolean_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperationCompletedHandler_1_boolean_USE */



#ifndef DEF___FIAsyncOperation_1_GUID_USE
#define DEF___FIAsyncOperation_1_GUID_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("6607bc41-294b-5975-9c3f-4b49836d0916"))
IAsyncOperation<GUID> : IAsyncOperation_impl<GUID>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.IAsyncOperation`1<Guid>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperation<GUID> __FIAsyncOperation_1_GUID_t;
#define __FIAsyncOperation_1_GUID ABI::Windows::Foundation::__FIAsyncOperation_1_GUID_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperation_1_GUID_USE */



#ifndef DEF___FIAsyncOperationCompletedHandler_1_GUID_USE
#define DEF___FIAsyncOperationCompletedHandler_1_GUID_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("5233899b-ba7e-504f-bb83-ceebac62decf"))
IAsyncOperationCompletedHandler<GUID> : IAsyncOperationCompletedHandler_impl<GUID>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.AsyncOperationCompletedHandler`1<Guid>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperationCompletedHandler<GUID> __FIAsyncOperationCompletedHandler_1_GUID_t;
#define __FIAsyncOperationCompletedHandler_1_GUID ABI::Windows::Foundation::__FIAsyncOperationCompletedHandler_1_GUID_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperationCompletedHandler_1_GUID_USE */



#ifndef DEF___FIAsyncOperation_1_HSTRING_USE
#define DEF___FIAsyncOperation_1_HSTRING_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("3e1fe603-f897-5263-b328-0806426b8a79"))
IAsyncOperation<HSTRING> : IAsyncOperation_impl<HSTRING>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.IAsyncOperation`1<String>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperation<HSTRING> __FIAsyncOperation_1_HSTRING_t;
#define __FIAsyncOperation_1_HSTRING ABI::Windows::Foundation::__FIAsyncOperation_1_HSTRING_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperation_1_HSTRING_USE */



#ifndef DEF___FIAsyncOperationCompletedHandler_1_HSTRING_USE
#define DEF___FIAsyncOperationCompletedHandler_1_HSTRING_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("b79a741f-7fb5-50ae-9e99-911201ec3d41"))
IAsyncOperationCompletedHandler<HSTRING> : IAsyncOperationCompletedHandler_impl<HSTRING>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.AsyncOperationCompletedHandler`1<String>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperationCompletedHandler<HSTRING> __FIAsyncOperationCompletedHandler_1_HSTRING_t;
#define __FIAsyncOperationCompletedHandler_1_HSTRING ABI::Windows::Foundation::__FIAsyncOperationCompletedHandler_1_HSTRING_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperationCompletedHandler_1_HSTRING_USE */


namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                typedef enum SmartCardActivationPolicyChangeResult : int SmartCardActivationPolicyChangeResult;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

#ifndef DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult_USE
#define DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("b8f15d35-2f3d-53aa-b5c6-faca4c7ff16e"))
IAsyncOperation<enum ABI::Windows::Devices::SmartCards::SmartCardActivationPolicyChangeResult> : IAsyncOperation_impl<enum ABI::Windows::Devices::SmartCards::SmartCardActivationPolicyChangeResult>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.IAsyncOperation`1<Windows.Devices.SmartCards.SmartCardActivationPolicyChangeResult>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperation<enum ABI::Windows::Devices::SmartCards::SmartCardActivationPolicyChangeResult> __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult_t;
#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult ABI::Windows::Foundation::__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

#ifndef DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult_USE
#define DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("9528f94b-047b-5e2a-8fc0-7017f5daddff"))
IAsyncOperationCompletedHandler<enum ABI::Windows::Devices::SmartCards::SmartCardActivationPolicyChangeResult> : IAsyncOperationCompletedHandler_impl<enum ABI::Windows::Devices::SmartCards::SmartCardActivationPolicyChangeResult>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.AsyncOperationCompletedHandler`1<Windows.Devices.SmartCards.SmartCardActivationPolicyChangeResult>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperationCompletedHandler<enum ABI::Windows::Devices::SmartCards::SmartCardActivationPolicyChangeResult> __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult_t;
#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult ABI::Windows::Foundation::__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                class SmartCardAppletIdGroupRegistration;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

#ifndef DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_USE
#define DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("d8030032-5f3c-50e8-91b8-691c454609e8"))
IAsyncOperation<ABI::Windows::Devices::SmartCards::SmartCardAppletIdGroupRegistration*> : IAsyncOperation_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardAppletIdGroupRegistration*, ABI::Windows::Devices::SmartCards::ISmartCardAppletIdGroupRegistration*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.IAsyncOperation`1<Windows.Devices.SmartCards.SmartCardAppletIdGroupRegistration>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperation<ABI::Windows::Devices::SmartCards::SmartCardAppletIdGroupRegistration*> __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_t;
#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration ABI::Windows::Foundation::__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

#ifndef DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_USE
#define DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("371045fb-4994-5413-89be-ba4e97ad82a0"))
IAsyncOperationCompletedHandler<ABI::Windows::Devices::SmartCards::SmartCardAppletIdGroupRegistration*> : IAsyncOperationCompletedHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardAppletIdGroupRegistration*, ABI::Windows::Devices::SmartCards::ISmartCardAppletIdGroupRegistration*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.AsyncOperationCompletedHandler`1<Windows.Devices.SmartCards.SmartCardAppletIdGroupRegistration>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperationCompletedHandler<ABI::Windows::Devices::SmartCards::SmartCardAppletIdGroupRegistration*> __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_t;
#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration ABI::Windows::Foundation::__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                class SmartCardChallengeContext;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#ifndef DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext_USE
#define DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("1c650663-3f68-599b-b9d4-c350f13ee4e4"))
IAsyncOperation<ABI::Windows::Devices::SmartCards::SmartCardChallengeContext*> : IAsyncOperation_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardChallengeContext*, ABI::Windows::Devices::SmartCards::ISmartCardChallengeContext*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.IAsyncOperation`1<Windows.Devices.SmartCards.SmartCardChallengeContext>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperation<ABI::Windows::Devices::SmartCards::SmartCardChallengeContext*> __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext_t;
#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext ABI::Windows::Foundation::__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext_USE */

#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#ifndef DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext_USE
#define DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("96b172f6-dedb-5f3e-af90-7b0f10219352"))
IAsyncOperationCompletedHandler<ABI::Windows::Devices::SmartCards::SmartCardChallengeContext*> : IAsyncOperationCompletedHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardChallengeContext*, ABI::Windows::Devices::SmartCards::ISmartCardChallengeContext*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.AsyncOperationCompletedHandler`1<Windows.Devices.SmartCards.SmartCardChallengeContext>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperationCompletedHandler<ABI::Windows::Devices::SmartCards::SmartCardChallengeContext*> __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext_t;
#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext ABI::Windows::Foundation::__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext_USE */

#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                class SmartCardConnection;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#ifndef DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardConnection_USE
#define DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardConnection_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("779bbc5b-a75c-5988-978f-34dbc629d576"))
IAsyncOperation<ABI::Windows::Devices::SmartCards::SmartCardConnection*> : IAsyncOperation_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardConnection*, ABI::Windows::Devices::SmartCards::ISmartCardConnection*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.IAsyncOperation`1<Windows.Devices.SmartCards.SmartCardConnection>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperation<ABI::Windows::Devices::SmartCards::SmartCardConnection*> __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardConnection_t;
#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardConnection ABI::Windows::Foundation::__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardConnection_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardConnection_USE */

#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#ifndef DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardConnection_USE
#define DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardConnection_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("c71f00e6-af26-5e5c-913d-0efeb7d08ef7"))
IAsyncOperationCompletedHandler<ABI::Windows::Devices::SmartCards::SmartCardConnection*> : IAsyncOperationCompletedHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardConnection*, ABI::Windows::Devices::SmartCards::ISmartCardConnection*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.AsyncOperationCompletedHandler`1<Windows.Devices.SmartCards.SmartCardConnection>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperationCompletedHandler<ABI::Windows::Devices::SmartCards::SmartCardConnection*> __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardConnection_t;
#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardConnection ABI::Windows::Foundation::__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardConnection_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardConnection_USE */

#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                class SmartCardCryptogramGenerator;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#ifndef DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator_USE
#define DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("5dfde47d-9770-5f44-a983-f2fee430768e"))
IAsyncOperation<ABI::Windows::Devices::SmartCards::SmartCardCryptogramGenerator*> : IAsyncOperation_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardCryptogramGenerator*, ABI::Windows::Devices::SmartCards::ISmartCardCryptogramGenerator*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.IAsyncOperation`1<Windows.Devices.SmartCards.SmartCardCryptogramGenerator>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperation<ABI::Windows::Devices::SmartCards::SmartCardCryptogramGenerator*> __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator_t;
#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator ABI::Windows::Foundation::__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#ifndef DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator_USE
#define DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("25cc9462-46a1-50a6-ad14-9a9718372005"))
IAsyncOperationCompletedHandler<ABI::Windows::Devices::SmartCards::SmartCardCryptogramGenerator*> : IAsyncOperationCompletedHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardCryptogramGenerator*, ABI::Windows::Devices::SmartCards::ISmartCardCryptogramGenerator*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.AsyncOperationCompletedHandler`1<Windows.Devices.SmartCards.SmartCardCryptogramGenerator>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperationCompletedHandler<ABI::Windows::Devices::SmartCards::SmartCardCryptogramGenerator*> __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator_t;
#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator ABI::Windows::Foundation::__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                typedef enum SmartCardCryptogramGeneratorOperationStatus : int SmartCardCryptogramGeneratorOperationStatus;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#ifndef DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus_USE
#define DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("f5b0e1b0-57a7-5ab3-aeaa-d6b635257866"))
IAsyncOperation<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramGeneratorOperationStatus> : IAsyncOperation_impl<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramGeneratorOperationStatus>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.IAsyncOperation`1<Windows.Devices.SmartCards.SmartCardCryptogramGeneratorOperationStatus>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperation<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramGeneratorOperationStatus> __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus_t;
#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus ABI::Windows::Foundation::__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#ifndef DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus_USE
#define DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("c6c447c7-a60d-500a-9bfe-59f25c33e979"))
IAsyncOperationCompletedHandler<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramGeneratorOperationStatus> : IAsyncOperationCompletedHandler_impl<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramGeneratorOperationStatus>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.AsyncOperationCompletedHandler`1<Windows.Devices.SmartCards.SmartCardCryptogramGeneratorOperationStatus>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperationCompletedHandler<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramGeneratorOperationStatus> __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus_t;
#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus ABI::Windows::Foundation::__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                class SmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

#ifndef DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_USE
#define DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("001a0095-2adc-54c2-8594-3a36ba16fd86"))
IAsyncOperation<ABI::Windows::Devices::SmartCards::SmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult*> : IAsyncOperation_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult*, ABI::Windows::Devices::SmartCards::ISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.IAsyncOperation`1<Windows.Devices.SmartCards.SmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperation<ABI::Windows::Devices::SmartCards::SmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult*> __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_t;
#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult ABI::Windows::Foundation::__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

#ifndef DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_USE
#define DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("45cffa0a-b354-50c3-8f24-3dd4f1677fbe"))
IAsyncOperationCompletedHandler<ABI::Windows::Devices::SmartCards::SmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult*> : IAsyncOperationCompletedHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult*, ABI::Windows::Devices::SmartCards::ISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.AsyncOperationCompletedHandler`1<Windows.Devices.SmartCards.SmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperationCompletedHandler<ABI::Windows::Devices::SmartCards::SmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult*> __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_t;
#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult ABI::Windows::Foundation::__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                class SmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

#ifndef DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_USE
#define DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("2cab81a8-3c29-50d1-9761-5f3927c96dca"))
IAsyncOperation<ABI::Windows::Devices::SmartCards::SmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult*> : IAsyncOperation_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult*, ABI::Windows::Devices::SmartCards::ISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.IAsyncOperation`1<Windows.Devices.SmartCards.SmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperation<ABI::Windows::Devices::SmartCards::SmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult*> __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_t;
#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult ABI::Windows::Foundation::__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

#ifndef DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_USE
#define DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("cd50ac04-e836-5525-9edb-066d6205a2a7"))
IAsyncOperationCompletedHandler<ABI::Windows::Devices::SmartCards::SmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult*> : IAsyncOperationCompletedHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult*, ABI::Windows::Devices::SmartCards::ISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.AsyncOperationCompletedHandler`1<Windows.Devices.SmartCards.SmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperationCompletedHandler<ABI::Windows::Devices::SmartCards::SmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult*> __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_t;
#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult ABI::Windows::Foundation::__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                class SmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

#ifndef DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_USE
#define DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("8110f6e1-3520-5cd2-bab5-0831185d2c2e"))
IAsyncOperation<ABI::Windows::Devices::SmartCards::SmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult*> : IAsyncOperation_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult*, ABI::Windows::Devices::SmartCards::ISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.IAsyncOperation`1<Windows.Devices.SmartCards.SmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperation<ABI::Windows::Devices::SmartCards::SmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult*> __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_t;
#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult ABI::Windows::Foundation::__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

#ifndef DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_USE
#define DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("c960993d-b328-5e86-b0a3-25f09f7e45df"))
IAsyncOperationCompletedHandler<ABI::Windows::Devices::SmartCards::SmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult*> : IAsyncOperationCompletedHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult*, ABI::Windows::Devices::SmartCards::ISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.AsyncOperationCompletedHandler`1<Windows.Devices.SmartCards.SmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperationCompletedHandler<ABI::Windows::Devices::SmartCards::SmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult*> __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_t;
#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult ABI::Windows::Foundation::__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                class SmartCardCryptogramMaterialPossessionProof;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#ifndef DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof_USE
#define DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("6f2eea36-de40-55b4-90c3-255673f71b2e"))
IAsyncOperation<ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialPossessionProof*> : IAsyncOperation_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialPossessionProof*, ABI::Windows::Devices::SmartCards::ISmartCardCryptogramMaterialPossessionProof*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.IAsyncOperation`1<Windows.Devices.SmartCards.SmartCardCryptogramMaterialPossessionProof>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperation<ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialPossessionProof*> __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof_t;
#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof ABI::Windows::Foundation::__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#ifndef DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof_USE
#define DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("caf2474e-8810-5b17-95d6-81758ae51985"))
IAsyncOperationCompletedHandler<ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialPossessionProof*> : IAsyncOperationCompletedHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialPossessionProof*, ABI::Windows::Devices::SmartCards::ISmartCardCryptogramMaterialPossessionProof*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.AsyncOperationCompletedHandler`1<Windows.Devices.SmartCards.SmartCardCryptogramMaterialPossessionProof>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperationCompletedHandler<ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialPossessionProof*> __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof_t;
#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof ABI::Windows::Foundation::__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                class SmartCardCryptogramStorageKeyInfo;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#ifndef DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo_USE
#define DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("2187f5a4-691c-50e1-bf4f-ddedc3e684b8"))
IAsyncOperation<ABI::Windows::Devices::SmartCards::SmartCardCryptogramStorageKeyInfo*> : IAsyncOperation_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardCryptogramStorageKeyInfo*, ABI::Windows::Devices::SmartCards::ISmartCardCryptogramStorageKeyInfo*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.IAsyncOperation`1<Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyInfo>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperation<ABI::Windows::Devices::SmartCards::SmartCardCryptogramStorageKeyInfo*> __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo_t;
#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo ABI::Windows::Foundation::__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#ifndef DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo_USE
#define DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("3f34e667-0a36-5414-88ab-6371d1b3b07e"))
IAsyncOperationCompletedHandler<ABI::Windows::Devices::SmartCards::SmartCardCryptogramStorageKeyInfo*> : IAsyncOperationCompletedHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardCryptogramStorageKeyInfo*, ABI::Windows::Devices::SmartCards::ISmartCardCryptogramStorageKeyInfo*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.AsyncOperationCompletedHandler`1<Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyInfo>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperationCompletedHandler<ABI::Windows::Devices::SmartCards::SmartCardCryptogramStorageKeyInfo*> __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo_t;
#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo ABI::Windows::Foundation::__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                class SmartCardEmulator;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

#ifndef DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardEmulator_USE
#define DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardEmulator_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("1dd898f0-c825-5bf3-9564-4708932f955f"))
IAsyncOperation<ABI::Windows::Devices::SmartCards::SmartCardEmulator*> : IAsyncOperation_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardEmulator*, ABI::Windows::Devices::SmartCards::ISmartCardEmulator*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.IAsyncOperation`1<Windows.Devices.SmartCards.SmartCardEmulator>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperation<ABI::Windows::Devices::SmartCards::SmartCardEmulator*> __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardEmulator_t;
#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardEmulator ABI::Windows::Foundation::__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardEmulator_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardEmulator_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

#ifndef DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardEmulator_USE
#define DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardEmulator_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("4982e406-052c-5782-a57d-54f9f44f8412"))
IAsyncOperationCompletedHandler<ABI::Windows::Devices::SmartCards::SmartCardEmulator*> : IAsyncOperationCompletedHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardEmulator*, ABI::Windows::Devices::SmartCards::ISmartCardEmulator*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.AsyncOperationCompletedHandler`1<Windows.Devices.SmartCards.SmartCardEmulator>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperationCompletedHandler<ABI::Windows::Devices::SmartCards::SmartCardEmulator*> __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardEmulator_t;
#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardEmulator ABI::Windows::Foundation::__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardEmulator_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardEmulator_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                class SmartCardProvisioning;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#ifndef DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning_USE
#define DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("6184fc80-b752-5ce8-a136-f57174bb9309"))
IAsyncOperation<ABI::Windows::Devices::SmartCards::SmartCardProvisioning*> : IAsyncOperation_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardProvisioning*, ABI::Windows::Devices::SmartCards::ISmartCardProvisioning*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.IAsyncOperation`1<Windows.Devices.SmartCards.SmartCardProvisioning>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperation<ABI::Windows::Devices::SmartCards::SmartCardProvisioning*> __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning_t;
#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning ABI::Windows::Foundation::__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning_USE */

#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#ifndef DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning_USE
#define DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("7a2e58dc-22ee-5cb8-83cc-a7a61b9dcd2c"))
IAsyncOperationCompletedHandler<ABI::Windows::Devices::SmartCards::SmartCardProvisioning*> : IAsyncOperationCompletedHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardProvisioning*, ABI::Windows::Devices::SmartCards::ISmartCardProvisioning*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.AsyncOperationCompletedHandler`1<Windows.Devices.SmartCards.SmartCardProvisioning>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperationCompletedHandler<ABI::Windows::Devices::SmartCards::SmartCardProvisioning*> __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning_t;
#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning ABI::Windows::Foundation::__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning_USE */

#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                class SmartCardReader;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#ifndef DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReader_USE
#define DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReader_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("036a830d-bbca-5cb9-977f-b29ea3042149"))
IAsyncOperation<ABI::Windows::Devices::SmartCards::SmartCardReader*> : IAsyncOperation_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardReader*, ABI::Windows::Devices::SmartCards::ISmartCardReader*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.IAsyncOperation`1<Windows.Devices.SmartCards.SmartCardReader>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperation<ABI::Windows::Devices::SmartCards::SmartCardReader*> __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReader_t;
#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReader ABI::Windows::Foundation::__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReader_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReader_USE */

#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#ifndef DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReader_USE
#define DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReader_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("20d3244d-375a-5f7d-8944-164fdfed4239"))
IAsyncOperationCompletedHandler<ABI::Windows::Devices::SmartCards::SmartCardReader*> : IAsyncOperationCompletedHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardReader*, ABI::Windows::Devices::SmartCards::ISmartCardReader*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.AsyncOperationCompletedHandler`1<Windows.Devices.SmartCards.SmartCardReader>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperationCompletedHandler<ABI::Windows::Devices::SmartCards::SmartCardReader*> __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReader_t;
#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReader ABI::Windows::Foundation::__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReader_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReader_USE */

#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                typedef enum SmartCardReaderStatus : int SmartCardReaderStatus;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#ifndef DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus_USE
#define DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("5ae402fa-1f22-5570-a0c8-b2320adedb81"))
IAsyncOperation<enum ABI::Windows::Devices::SmartCards::SmartCardReaderStatus> : IAsyncOperation_impl<enum ABI::Windows::Devices::SmartCards::SmartCardReaderStatus>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.IAsyncOperation`1<Windows.Devices.SmartCards.SmartCardReaderStatus>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperation<enum ABI::Windows::Devices::SmartCards::SmartCardReaderStatus> __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus_t;
#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus ABI::Windows::Foundation::__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus_USE */

#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#ifndef DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus_USE
#define DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("3d7e6ea9-e739-555c-9c02-07396c5321f5"))
IAsyncOperationCompletedHandler<enum ABI::Windows::Devices::SmartCards::SmartCardReaderStatus> : IAsyncOperationCompletedHandler_impl<enum ABI::Windows::Devices::SmartCards::SmartCardReaderStatus>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.AsyncOperationCompletedHandler`1<Windows.Devices.SmartCards.SmartCardReaderStatus>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperationCompletedHandler<enum ABI::Windows::Devices::SmartCards::SmartCardReaderStatus> __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus_t;
#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus ABI::Windows::Foundation::__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus_USE */

#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                typedef enum SmartCardStatus : int SmartCardStatus;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#ifndef DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardStatus_USE
#define DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardStatus_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("e2223376-8cf6-51bd-9907-1344aa665e5d"))
IAsyncOperation<enum ABI::Windows::Devices::SmartCards::SmartCardStatus> : IAsyncOperation_impl<enum ABI::Windows::Devices::SmartCards::SmartCardStatus>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.IAsyncOperation`1<Windows.Devices.SmartCards.SmartCardStatus>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperation<enum ABI::Windows::Devices::SmartCards::SmartCardStatus> __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardStatus_t;
#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardStatus ABI::Windows::Foundation::__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardStatus_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardStatus_USE */

#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#ifndef DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardStatus_USE
#define DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardStatus_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("bdaf4a41-3b4a-56b0-aeec-fee71cc7f328"))
IAsyncOperationCompletedHandler<enum ABI::Windows::Devices::SmartCards::SmartCardStatus> : IAsyncOperationCompletedHandler_impl<enum ABI::Windows::Devices::SmartCards::SmartCardStatus>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.AsyncOperationCompletedHandler`1<Windows.Devices.SmartCards.SmartCardStatus>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperationCompletedHandler<enum ABI::Windows::Devices::SmartCards::SmartCardStatus> __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardStatus_t;
#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardStatus ABI::Windows::Foundation::__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardStatus_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardStatus_USE */

#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                class SmartCard;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#ifndef DEF___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCard_USE
#define DEF___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCard_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("86b29903-916e-5817-bc96-df324475e31a"))
IIterator<ABI::Windows::Devices::SmartCards::SmartCard*> : IIterator_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCard*, ABI::Windows::Devices::SmartCards::ISmartCard*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.Collections.IIterator`1<Windows.Devices.SmartCards.SmartCard>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IIterator<ABI::Windows::Devices::SmartCards::SmartCard*> __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCard_t;
#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCard ABI::Windows::Foundation::Collections::__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCard_t
/* Collections */ } /* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCard_USE */

#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#ifndef DEF___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCard_USE
#define DEF___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCard_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("a32c5202-d113-535f-880e-50f3e5121ef8"))
IIterable<ABI::Windows::Devices::SmartCards::SmartCard*> : IIterable_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCard*, ABI::Windows::Devices::SmartCards::ISmartCard*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.Collections.IIterable`1<Windows.Devices.SmartCards.SmartCard>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IIterable<ABI::Windows::Devices::SmartCards::SmartCard*> __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCard_t;
#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCard ABI::Windows::Foundation::Collections::__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCard_t
/* Collections */ } /* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCard_USE */

#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#ifndef DEF___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_USE
#define DEF___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("4bee6991-3508-5f03-a2f4-90a5ddb26bd8"))
IVectorView<ABI::Windows::Devices::SmartCards::SmartCard*> : IVectorView_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCard*, ABI::Windows::Devices::SmartCards::ISmartCard*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.Collections.IVectorView`1<Windows.Devices.SmartCards.SmartCard>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IVectorView<ABI::Windows::Devices::SmartCards::SmartCard*> __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_t;
#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard ABI::Windows::Foundation::Collections::__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_t
/* Collections */ } /* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_USE */

#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#ifndef DEF___FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_USE
#define DEF___FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("3b2691b2-fc5e-59ff-8c6f-e6dd29a967fc"))
IAsyncOperation<__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard*> : IAsyncOperation_impl<__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard*>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IVectorView`1<Windows.Devices.SmartCards.SmartCard>>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperation<__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard*> __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_t;
#define __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard ABI::Windows::Foundation::__FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_USE */

#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#ifndef DEF___FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_USE
#define DEF___FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("bfea3fad-411e-5721-88f5-92c9b9fbbe14"))
IAsyncOperationCompletedHandler<__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard*> : IAsyncOperationCompletedHandler_impl<__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard*>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.AsyncOperationCompletedHandler`1<Windows.Foundation.Collections.IVectorView`1<Windows.Devices.SmartCards.SmartCard>>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperationCompletedHandler<__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard*> __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_t;
#define __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard ABI::Windows::Foundation::__FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_USE */

#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

#ifndef DEF___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_USE
#define DEF___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("d3777a61-2106-505f-bcfa-b3cc8e1412e1"))
IIterator<ABI::Windows::Devices::SmartCards::SmartCardAppletIdGroupRegistration*> : IIterator_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardAppletIdGroupRegistration*, ABI::Windows::Devices::SmartCards::ISmartCardAppletIdGroupRegistration*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.Collections.IIterator`1<Windows.Devices.SmartCards.SmartCardAppletIdGroupRegistration>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IIterator<ABI::Windows::Devices::SmartCards::SmartCardAppletIdGroupRegistration*> __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_t;
#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration ABI::Windows::Foundation::Collections::__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_t
/* Collections */ } /* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

#ifndef DEF___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_USE
#define DEF___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("4d153aad-915c-59c9-98b9-a97bf3a570ad"))
IIterable<ABI::Windows::Devices::SmartCards::SmartCardAppletIdGroupRegistration*> : IIterable_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardAppletIdGroupRegistration*, ABI::Windows::Devices::SmartCards::ISmartCardAppletIdGroupRegistration*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.Collections.IIterable`1<Windows.Devices.SmartCards.SmartCardAppletIdGroupRegistration>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IIterable<ABI::Windows::Devices::SmartCards::SmartCardAppletIdGroupRegistration*> __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_t;
#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration ABI::Windows::Foundation::Collections::__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_t
/* Collections */ } /* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

#ifndef DEF___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_USE
#define DEF___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("b24324ba-192b-568b-81cf-9ac383406ed9"))
IVectorView<ABI::Windows::Devices::SmartCards::SmartCardAppletIdGroupRegistration*> : IVectorView_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardAppletIdGroupRegistration*, ABI::Windows::Devices::SmartCards::ISmartCardAppletIdGroupRegistration*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.Collections.IVectorView`1<Windows.Devices.SmartCards.SmartCardAppletIdGroupRegistration>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IVectorView<ABI::Windows::Devices::SmartCards::SmartCardAppletIdGroupRegistration*> __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_t;
#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration ABI::Windows::Foundation::Collections::__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_t
/* Collections */ } /* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

#ifndef DEF___FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_USE
#define DEF___FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("045e34b9-f153-5920-99de-ed912ea38b1a"))
IAsyncOperation<__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration*> : IAsyncOperation_impl<__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration*>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IVectorView`1<Windows.Devices.SmartCards.SmartCardAppletIdGroupRegistration>>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperation<__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration*> __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_t;
#define __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration ABI::Windows::Foundation::__FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

#ifndef DEF___FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_USE
#define DEF___FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("dddeb324-2853-5e3c-a4d9-1ca8c577c02e"))
IAsyncOperationCompletedHandler<__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration*> : IAsyncOperationCompletedHandler_impl<__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration*>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.AsyncOperationCompletedHandler`1<Windows.Foundation.Collections.IVectorView`1<Windows.Devices.SmartCards.SmartCardAppletIdGroupRegistration>>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperationCompletedHandler<__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration*> __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_t;
#define __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration ABI::Windows::Foundation::__FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

#ifndef ____x_ABI_CWindows_CStorage_CStreams_CIBuffer_FWD_DEFINED__
#define ____x_ABI_CWindows_CStorage_CStreams_CIBuffer_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Storage {
            namespace Streams {
                interface IBuffer;
            } /* Streams */
        } /* Storage */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CStorage_CStreams_CIBuffer ABI::Windows::Storage::Streams::IBuffer

#endif // ____x_ABI_CWindows_CStorage_CStreams_CIBuffer_FWD_DEFINED__

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#ifndef DEF___FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer_USE
#define DEF___FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("3bee8834-b9a7-5a80-a746-5ef097227878"))
IAsyncOperation<ABI::Windows::Storage::Streams::IBuffer*> : IAsyncOperation_impl<ABI::Windows::Storage::Streams::IBuffer*>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.IAsyncOperation`1<Windows.Storage.Streams.IBuffer>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperation<ABI::Windows::Storage::Streams::IBuffer*> __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer_t;
#define __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer ABI::Windows::Foundation::__FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer_USE */

#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#ifndef DEF___FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBuffer_USE
#define DEF___FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBuffer_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("51c3d2fd-b8a1-5620-b746-7ee6d533aca3"))
IAsyncOperationCompletedHandler<ABI::Windows::Storage::Streams::IBuffer*> : IAsyncOperationCompletedHandler_impl<ABI::Windows::Storage::Streams::IBuffer*>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.AsyncOperationCompletedHandler`1<Windows.Storage.Streams.IBuffer>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IAsyncOperationCompletedHandler<ABI::Windows::Storage::Streams::IBuffer*> __FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBuffer_t;
#define __FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBuffer ABI::Windows::Foundation::__FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBuffer_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBuffer_USE */

#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                class SmartCardAutomaticResponseApdu;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

#ifndef DEF___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu_USE
#define DEF___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("78eb5c52-9dd2-5e35-a868-f64919eba6b6"))
IIterator<ABI::Windows::Devices::SmartCards::SmartCardAutomaticResponseApdu*> : IIterator_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardAutomaticResponseApdu*, ABI::Windows::Devices::SmartCards::ISmartCardAutomaticResponseApdu*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.Collections.IIterator`1<Windows.Devices.SmartCards.SmartCardAutomaticResponseApdu>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IIterator<ABI::Windows::Devices::SmartCards::SmartCardAutomaticResponseApdu*> __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu_t;
#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu ABI::Windows::Foundation::Collections::__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu_t
/* Collections */ } /* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

#ifndef DEF___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu_USE
#define DEF___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("db52d376-027e-5270-a457-fb8b4ae8958c"))
IIterable<ABI::Windows::Devices::SmartCards::SmartCardAutomaticResponseApdu*> : IIterable_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardAutomaticResponseApdu*, ABI::Windows::Devices::SmartCards::ISmartCardAutomaticResponseApdu*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.Collections.IIterable`1<Windows.Devices.SmartCards.SmartCardAutomaticResponseApdu>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IIterable<ABI::Windows::Devices::SmartCards::SmartCardAutomaticResponseApdu*> __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu_t;
#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu ABI::Windows::Foundation::Collections::__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu_t
/* Collections */ } /* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                typedef enum SmartCardCryptogramAlgorithm : int SmartCardCryptogramAlgorithm;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#ifndef DEF___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_USE
#define DEF___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("4f1e0492-dab2-53c3-b5fb-c4b4373b1ec2"))
IIterator<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramAlgorithm> : IIterator_impl<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramAlgorithm>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.Collections.IIterator`1<Windows.Devices.SmartCards.SmartCardCryptogramAlgorithm>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IIterator<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramAlgorithm> __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_t;
#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm ABI::Windows::Foundation::Collections::__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_t
/* Collections */ } /* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#ifndef DEF___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_USE
#define DEF___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("8e0de0e9-0742-559e-9b1b-460268622c1f"))
IIterable<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramAlgorithm> : IIterable_impl<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramAlgorithm>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.Collections.IIterable`1<Windows.Devices.SmartCards.SmartCardCryptogramAlgorithm>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IIterable<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramAlgorithm> __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_t;
#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm ABI::Windows::Foundation::Collections::__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_t
/* Collections */ } /* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                class SmartCardCryptogramMaterialCharacteristics;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

#ifndef DEF___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_USE
#define DEF___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("e2a912a1-6133-571c-b0a9-2aaab283a07a"))
IIterator<ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialCharacteristics*> : IIterator_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialCharacteristics*, ABI::Windows::Devices::SmartCards::ISmartCardCryptogramMaterialCharacteristics*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.Collections.IIterator`1<Windows.Devices.SmartCards.SmartCardCryptogramMaterialCharacteristics>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IIterator<ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialCharacteristics*> __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_t;
#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics ABI::Windows::Foundation::Collections::__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_t
/* Collections */ } /* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

#ifndef DEF___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_USE
#define DEF___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("92058349-b443-52d8-8e46-9cf3815dd15a"))
IIterable<ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialCharacteristics*> : IIterable_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialCharacteristics*, ABI::Windows::Devices::SmartCards::ISmartCardCryptogramMaterialCharacteristics*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.Collections.IIterable`1<Windows.Devices.SmartCards.SmartCardCryptogramMaterialCharacteristics>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IIterable<ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialCharacteristics*> __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_t;
#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics ABI::Windows::Foundation::Collections::__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_t
/* Collections */ } /* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                class SmartCardCryptogramMaterialPackageCharacteristics;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

#ifndef DEF___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_USE
#define DEF___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("b78e40b2-70f0-5e34-aa8c-ca75a1b3b1bf"))
IIterator<ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialPackageCharacteristics*> : IIterator_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialPackageCharacteristics*, ABI::Windows::Devices::SmartCards::ISmartCardCryptogramMaterialPackageCharacteristics*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.Collections.IIterator`1<Windows.Devices.SmartCards.SmartCardCryptogramMaterialPackageCharacteristics>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IIterator<ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialPackageCharacteristics*> __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_t;
#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics ABI::Windows::Foundation::Collections::__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_t
/* Collections */ } /* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

#ifndef DEF___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_USE
#define DEF___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("ab1dac61-1bd9-54a6-b407-1dc4e5b1a197"))
IIterable<ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialPackageCharacteristics*> : IIterable_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialPackageCharacteristics*, ABI::Windows::Devices::SmartCards::ISmartCardCryptogramMaterialPackageCharacteristics*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.Collections.IIterable`1<Windows.Devices.SmartCards.SmartCardCryptogramMaterialPackageCharacteristics>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IIterable<ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialPackageCharacteristics*> __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_t;
#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics ABI::Windows::Foundation::Collections::__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_t
/* Collections */ } /* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                typedef enum SmartCardCryptogramMaterialPackageConfirmationResponseFormat : int SmartCardCryptogramMaterialPackageConfirmationResponseFormat;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#ifndef DEF___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_USE
#define DEF___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("9d1091ae-be37-5be7-8edf-60c5164880b6"))
IIterator<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialPackageConfirmationResponseFormat> : IIterator_impl<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialPackageConfirmationResponseFormat>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.Collections.IIterator`1<Windows.Devices.SmartCards.SmartCardCryptogramMaterialPackageConfirmationResponseFormat>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IIterator<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialPackageConfirmationResponseFormat> __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_t;
#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat ABI::Windows::Foundation::Collections::__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_t
/* Collections */ } /* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#ifndef DEF___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_USE
#define DEF___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("c40c4451-4ebb-5635-9c7d-33c8c5d37a09"))
IIterable<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialPackageConfirmationResponseFormat> : IIterable_impl<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialPackageConfirmationResponseFormat>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.Collections.IIterable`1<Windows.Devices.SmartCards.SmartCardCryptogramMaterialPackageConfirmationResponseFormat>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IIterable<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialPackageConfirmationResponseFormat> __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_t;
#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat ABI::Windows::Foundation::Collections::__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_t
/* Collections */ } /* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                typedef enum SmartCardCryptogramMaterialPackageFormat : int SmartCardCryptogramMaterialPackageFormat;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#ifndef DEF___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_USE
#define DEF___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("7bf75a02-ee7e-513a-80f8-f7d8f004c907"))
IIterator<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialPackageFormat> : IIterator_impl<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialPackageFormat>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.Collections.IIterator`1<Windows.Devices.SmartCards.SmartCardCryptogramMaterialPackageFormat>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IIterator<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialPackageFormat> __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_t;
#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat ABI::Windows::Foundation::Collections::__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_t
/* Collections */ } /* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#ifndef DEF___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_USE
#define DEF___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("3e241acc-1745-57ce-9368-21ba2130c3c1"))
IIterable<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialPackageFormat> : IIterable_impl<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialPackageFormat>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.Collections.IIterable`1<Windows.Devices.SmartCards.SmartCardCryptogramMaterialPackageFormat>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IIterable<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialPackageFormat> __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_t;
#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat ABI::Windows::Foundation::Collections::__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_t
/* Collections */ } /* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                typedef enum SmartCardCryptogramMaterialType : int SmartCardCryptogramMaterialType;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#ifndef DEF___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_USE
#define DEF___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("97e1414d-439a-5dc2-81fc-d988e32c8dab"))
IIterator<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialType> : IIterator_impl<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialType>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.Collections.IIterator`1<Windows.Devices.SmartCards.SmartCardCryptogramMaterialType>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IIterator<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialType> __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_t;
#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType ABI::Windows::Foundation::Collections::__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_t
/* Collections */ } /* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#ifndef DEF___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_USE
#define DEF___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("2d379f84-389c-5809-a2c6-919b47caab88"))
IIterable<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialType> : IIterable_impl<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialType>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.Collections.IIterable`1<Windows.Devices.SmartCards.SmartCardCryptogramMaterialType>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IIterable<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialType> __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_t;
#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType ABI::Windows::Foundation::Collections::__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_t
/* Collections */ } /* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                class SmartCardCryptogramPlacementStep;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#ifndef DEF___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep_USE
#define DEF___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("81a62a70-8acd-598c-8d0a-a27d23e6cb1e"))
IIterator<ABI::Windows::Devices::SmartCards::SmartCardCryptogramPlacementStep*> : IIterator_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardCryptogramPlacementStep*, ABI::Windows::Devices::SmartCards::ISmartCardCryptogramPlacementStep*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.Collections.IIterator`1<Windows.Devices.SmartCards.SmartCardCryptogramPlacementStep>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IIterator<ABI::Windows::Devices::SmartCards::SmartCardCryptogramPlacementStep*> __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep_t;
#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep ABI::Windows::Foundation::Collections::__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep_t
/* Collections */ } /* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#ifndef DEF___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep_USE
#define DEF___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("234ab631-ed5f-51bc-8a8a-d5f3495f32de"))
IIterable<ABI::Windows::Devices::SmartCards::SmartCardCryptogramPlacementStep*> : IIterable_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardCryptogramPlacementStep*, ABI::Windows::Devices::SmartCards::ISmartCardCryptogramPlacementStep*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.Collections.IIterable`1<Windows.Devices.SmartCards.SmartCardCryptogramPlacementStep>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IIterable<ABI::Windows::Devices::SmartCards::SmartCardCryptogramPlacementStep*> __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep_t;
#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep ABI::Windows::Foundation::Collections::__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep_t
/* Collections */ } /* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                typedef enum SmartCardCryptogramStorageKeyCapabilities : unsigned int SmartCardCryptogramStorageKeyCapabilities;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#ifndef DEF___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_USE
#define DEF___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("c858d7a0-c54e-513c-a097-a42fd3d569af"))
IIterator<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramStorageKeyCapabilities> : IIterator_impl<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramStorageKeyCapabilities>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.Collections.IIterator`1<Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyCapabilities>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IIterator<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramStorageKeyCapabilities> __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_t;
#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities ABI::Windows::Foundation::Collections::__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_t
/* Collections */ } /* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#ifndef DEF___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_USE
#define DEF___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("983619f1-45b9-5557-9800-eaa2bca6da57"))
IIterable<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramStorageKeyCapabilities> : IIterable_impl<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramStorageKeyCapabilities>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.Collections.IIterable`1<Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyCapabilities>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IIterable<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramStorageKeyCapabilities> __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_t;
#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities ABI::Windows::Foundation::Collections::__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_t
/* Collections */ } /* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                class SmartCardCryptogramStorageKeyCharacteristics;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

#ifndef DEF___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_USE
#define DEF___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("c65f0917-372c-5157-80e2-2cfbd65e8fea"))
IIterator<ABI::Windows::Devices::SmartCards::SmartCardCryptogramStorageKeyCharacteristics*> : IIterator_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardCryptogramStorageKeyCharacteristics*, ABI::Windows::Devices::SmartCards::ISmartCardCryptogramStorageKeyCharacteristics*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.Collections.IIterator`1<Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyCharacteristics>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IIterator<ABI::Windows::Devices::SmartCards::SmartCardCryptogramStorageKeyCharacteristics*> __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_t;
#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics ABI::Windows::Foundation::Collections::__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_t
/* Collections */ } /* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

#ifndef DEF___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_USE
#define DEF___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("16d5cc89-2f6a-5779-8ef8-2d5a20078150"))
IIterable<ABI::Windows::Devices::SmartCards::SmartCardCryptogramStorageKeyCharacteristics*> : IIterable_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardCryptogramStorageKeyCharacteristics*, ABI::Windows::Devices::SmartCards::ISmartCardCryptogramStorageKeyCharacteristics*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.Collections.IIterable`1<Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyCharacteristics>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IIterable<ABI::Windows::Devices::SmartCards::SmartCardCryptogramStorageKeyCharacteristics*> __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_t;
#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics ABI::Windows::Foundation::Collections::__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_t
/* Collections */ } /* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#ifndef DEF___FIIterator_1_Windows__CStorage__CStreams__CIBuffer_USE
#define DEF___FIIterator_1_Windows__CStorage__CStreams__CIBuffer_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("afee38e0-f882-5f10-9655-1fc98cc8cce5"))
IIterator<ABI::Windows::Storage::Streams::IBuffer*> : IIterator_impl<ABI::Windows::Storage::Streams::IBuffer*>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.Collections.IIterator`1<Windows.Storage.Streams.IBuffer>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IIterator<ABI::Windows::Storage::Streams::IBuffer*> __FIIterator_1_Windows__CStorage__CStreams__CIBuffer_t;
#define __FIIterator_1_Windows__CStorage__CStreams__CIBuffer ABI::Windows::Foundation::Collections::__FIIterator_1_Windows__CStorage__CStreams__CIBuffer_t
/* Collections */ } /* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIIterator_1_Windows__CStorage__CStreams__CIBuffer_USE */

#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#ifndef DEF___FIIterable_1_Windows__CStorage__CStreams__CIBuffer_USE
#define DEF___FIIterable_1_Windows__CStorage__CStreams__CIBuffer_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("902972bf-a984-5443-b1c5-2f04a99e1fca"))
IIterable<ABI::Windows::Storage::Streams::IBuffer*> : IIterable_impl<ABI::Windows::Storage::Streams::IBuffer*>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.Collections.IIterable`1<Windows.Storage.Streams.IBuffer>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IIterable<ABI::Windows::Storage::Streams::IBuffer*> __FIIterable_1_Windows__CStorage__CStreams__CIBuffer_t;
#define __FIIterable_1_Windows__CStorage__CStreams__CIBuffer ABI::Windows::Foundation::Collections::__FIIterable_1_Windows__CStorage__CStreams__CIBuffer_t
/* Collections */ } /* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIIterable_1_Windows__CStorage__CStreams__CIBuffer_USE */

#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#ifndef DEF___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_USE
#define DEF___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("a9df831c-c22b-5d30-a86c-5a31fe192433"))
IVectorView<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramAlgorithm> : IVectorView_impl<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramAlgorithm>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.Collections.IVectorView`1<Windows.Devices.SmartCards.SmartCardCryptogramAlgorithm>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IVectorView<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramAlgorithm> __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_t;
#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm ABI::Windows::Foundation::Collections::__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_t
/* Collections */ } /* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

#ifndef DEF___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_USE
#define DEF___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("6e5e4447-1552-591b-afa0-387b26b7ac93"))
IVectorView<ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialCharacteristics*> : IVectorView_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialCharacteristics*, ABI::Windows::Devices::SmartCards::ISmartCardCryptogramMaterialCharacteristics*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.Collections.IVectorView`1<Windows.Devices.SmartCards.SmartCardCryptogramMaterialCharacteristics>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IVectorView<ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialCharacteristics*> __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_t;
#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics ABI::Windows::Foundation::Collections::__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_t
/* Collections */ } /* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

#ifndef DEF___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_USE
#define DEF___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("94d937e9-0edc-5dad-a3ad-b2eb5ab88671"))
IVectorView<ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialPackageCharacteristics*> : IVectorView_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialPackageCharacteristics*, ABI::Windows::Devices::SmartCards::ISmartCardCryptogramMaterialPackageCharacteristics*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.Collections.IVectorView`1<Windows.Devices.SmartCards.SmartCardCryptogramMaterialPackageCharacteristics>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IVectorView<ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialPackageCharacteristics*> __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_t;
#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics ABI::Windows::Foundation::Collections::__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_t
/* Collections */ } /* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#ifndef DEF___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_USE
#define DEF___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("3a4176a2-d221-5a9f-a4c2-a5b8736da2d8"))
IVectorView<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialPackageConfirmationResponseFormat> : IVectorView_impl<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialPackageConfirmationResponseFormat>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.Collections.IVectorView`1<Windows.Devices.SmartCards.SmartCardCryptogramMaterialPackageConfirmationResponseFormat>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IVectorView<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialPackageConfirmationResponseFormat> __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_t;
#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat ABI::Windows::Foundation::Collections::__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_t
/* Collections */ } /* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#ifndef DEF___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_USE
#define DEF___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("b7cce3f2-9889-586c-beb1-68feddb7cb15"))
IVectorView<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialPackageFormat> : IVectorView_impl<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialPackageFormat>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.Collections.IVectorView`1<Windows.Devices.SmartCards.SmartCardCryptogramMaterialPackageFormat>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IVectorView<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialPackageFormat> __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_t;
#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat ABI::Windows::Foundation::Collections::__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_t
/* Collections */ } /* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#ifndef DEF___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_USE
#define DEF___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("394bc0cc-c621-5ba3-b4f0-712fcf591392"))
IVectorView<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialType> : IVectorView_impl<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialType>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.Collections.IVectorView`1<Windows.Devices.SmartCards.SmartCardCryptogramMaterialType>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IVectorView<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialType> __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_t;
#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType ABI::Windows::Foundation::Collections::__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_t
/* Collections */ } /* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#ifndef DEF___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_USE
#define DEF___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("9c0dfca0-4b62-56a8-8af3-8376898a15bc"))
IVectorView<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramStorageKeyCapabilities> : IVectorView_impl<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramStorageKeyCapabilities>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.Collections.IVectorView`1<Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyCapabilities>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IVectorView<enum ABI::Windows::Devices::SmartCards::SmartCardCryptogramStorageKeyCapabilities> __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_t;
#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities ABI::Windows::Foundation::Collections::__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_t
/* Collections */ } /* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

#ifndef DEF___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_USE
#define DEF___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("f14872b9-7f4c-58f8-8bfa-af767f58971a"))
IVectorView<ABI::Windows::Devices::SmartCards::SmartCardCryptogramStorageKeyCharacteristics*> : IVectorView_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardCryptogramStorageKeyCharacteristics*, ABI::Windows::Devices::SmartCards::ISmartCardCryptogramStorageKeyCharacteristics*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.Collections.IVectorView`1<Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyCharacteristics>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IVectorView<ABI::Windows::Devices::SmartCards::SmartCardCryptogramStorageKeyCharacteristics*> __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_t;
#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics ABI::Windows::Foundation::Collections::__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_t
/* Collections */ } /* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#ifndef DEF___FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_USE
#define DEF___FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("fd944562-11d6-5eab-bd72-701993b68fac"))
IVectorView<ABI::Windows::Storage::Streams::IBuffer*> : IVectorView_impl<ABI::Windows::Storage::Streams::IBuffer*>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.Collections.IVectorView`1<Windows.Storage.Streams.IBuffer>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IVectorView<ABI::Windows::Storage::Streams::IBuffer*> __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_t;
#define __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer ABI::Windows::Foundation::Collections::__FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_t
/* Collections */ } /* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_USE */

#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#ifndef DEF___FIVector_1_Windows__CStorage__CStreams__CIBuffer_USE
#define DEF___FIVector_1_Windows__CStorage__CStreams__CIBuffer_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("308fe894-cc06-5007-bc85-cbe94ac1a70c"))
IVector<ABI::Windows::Storage::Streams::IBuffer*> : IVector_impl<ABI::Windows::Storage::Streams::IBuffer*>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.Collections.IVector`1<Windows.Storage.Streams.IBuffer>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IVector<ABI::Windows::Storage::Streams::IBuffer*> __FIVector_1_Windows__CStorage__CStreams__CIBuffer_t;
#define __FIVector_1_Windows__CStorage__CStreams__CIBuffer ABI::Windows::Foundation::Collections::__FIVector_1_Windows__CStorage__CStreams__CIBuffer_t
/* Collections */ } /* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIVector_1_Windows__CStorage__CStreams__CIBuffer_USE */

#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000


#ifndef DEF___FIReference_1_UINT32_USE
#define DEF___FIReference_1_UINT32_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("513ef3af-e784-5325-a91e-97c2b8111cf3"))
IReference<UINT32> : IReference_impl<UINT32>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.IReference`1<UInt32>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef IReference<UINT32> __FIReference_1_UINT32_t;
#define __FIReference_1_UINT32 ABI::Windows::Foundation::__FIReference_1_UINT32_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FIReference_1_UINT32_USE */


namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                class SmartCardEmulatorApduReceivedEventArgs;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

#ifndef DEF___FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorApduReceivedEventArgs_USE
#define DEF___FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorApduReceivedEventArgs_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("146f9403-42f4-59a2-a85a-8294af3e3e78"))
ITypedEventHandler<ABI::Windows::Devices::SmartCards::SmartCardEmulator*, ABI::Windows::Devices::SmartCards::SmartCardEmulatorApduReceivedEventArgs*> : ITypedEventHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardEmulator*, ABI::Windows::Devices::SmartCards::ISmartCardEmulator*>, ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardEmulatorApduReceivedEventArgs*, ABI::Windows::Devices::SmartCards::ISmartCardEmulatorApduReceivedEventArgs*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.TypedEventHandler`2<Windows.Devices.SmartCards.SmartCardEmulator, Windows.Devices.SmartCards.SmartCardEmulatorApduReceivedEventArgs>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef ITypedEventHandler<ABI::Windows::Devices::SmartCards::SmartCardEmulator*, ABI::Windows::Devices::SmartCards::SmartCardEmulatorApduReceivedEventArgs*> __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorApduReceivedEventArgs_t;
#define __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorApduReceivedEventArgs ABI::Windows::Foundation::__FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorApduReceivedEventArgs_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorApduReceivedEventArgs_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                class SmartCardEmulatorConnectionDeactivatedEventArgs;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

#ifndef DEF___FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorConnectionDeactivatedEventArgs_USE
#define DEF___FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorConnectionDeactivatedEventArgs_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("cb9840cb-cc46-5c37-ab00-dd23d77b263b"))
ITypedEventHandler<ABI::Windows::Devices::SmartCards::SmartCardEmulator*, ABI::Windows::Devices::SmartCards::SmartCardEmulatorConnectionDeactivatedEventArgs*> : ITypedEventHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardEmulator*, ABI::Windows::Devices::SmartCards::ISmartCardEmulator*>, ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardEmulatorConnectionDeactivatedEventArgs*, ABI::Windows::Devices::SmartCards::ISmartCardEmulatorConnectionDeactivatedEventArgs*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.TypedEventHandler`2<Windows.Devices.SmartCards.SmartCardEmulator, Windows.Devices.SmartCards.SmartCardEmulatorConnectionDeactivatedEventArgs>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef ITypedEventHandler<ABI::Windows::Devices::SmartCards::SmartCardEmulator*, ABI::Windows::Devices::SmartCards::SmartCardEmulatorConnectionDeactivatedEventArgs*> __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorConnectionDeactivatedEventArgs_t;
#define __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorConnectionDeactivatedEventArgs ABI::Windows::Foundation::__FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorConnectionDeactivatedEventArgs_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorConnectionDeactivatedEventArgs_USE */

#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                class CardAddedEventArgs;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#ifndef DEF___FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardAddedEventArgs_USE
#define DEF___FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardAddedEventArgs_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("d36f2db9-5674-5f74-9f69-3cdc4559999f"))
ITypedEventHandler<ABI::Windows::Devices::SmartCards::SmartCardReader*, ABI::Windows::Devices::SmartCards::CardAddedEventArgs*> : ITypedEventHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardReader*, ABI::Windows::Devices::SmartCards::ISmartCardReader*>, ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::CardAddedEventArgs*, ABI::Windows::Devices::SmartCards::ICardAddedEventArgs*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.TypedEventHandler`2<Windows.Devices.SmartCards.SmartCardReader, Windows.Devices.SmartCards.CardAddedEventArgs>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef ITypedEventHandler<ABI::Windows::Devices::SmartCards::SmartCardReader*, ABI::Windows::Devices::SmartCards::CardAddedEventArgs*> __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardAddedEventArgs_t;
#define __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardAddedEventArgs ABI::Windows::Foundation::__FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardAddedEventArgs_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardAddedEventArgs_USE */

#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                class CardRemovedEventArgs;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#ifndef DEF___FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardRemovedEventArgs_USE
#define DEF___FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardRemovedEventArgs_USE
#if !defined(RO_NO_TEMPLATE_NAME)
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("69da07c6-b266-5a1c-937c-d82b4a8232c6"))
ITypedEventHandler<ABI::Windows::Devices::SmartCards::SmartCardReader*, ABI::Windows::Devices::SmartCards::CardRemovedEventArgs*> : ITypedEventHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::SmartCardReader*, ABI::Windows::Devices::SmartCards::ISmartCardReader*>, ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::SmartCards::CardRemovedEventArgs*, ABI::Windows::Devices::SmartCards::ICardRemovedEventArgs*>>
{
    static const wchar_t* z_get_rc_name_impl()
    {
        return L"Windows.Foundation.TypedEventHandler`2<Windows.Devices.SmartCards.SmartCardReader, Windows.Devices.SmartCards.CardRemovedEventArgs>";
    }
};
// Define a typedef for the parameterized interface specialization's mangled name.
// This allows code which uses the mangled name for the parameterized interface to access the
// correct parameterized interface specialization.
typedef ITypedEventHandler<ABI::Windows::Devices::SmartCards::SmartCardReader*, ABI::Windows::Devices::SmartCards::CardRemovedEventArgs*> __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardRemovedEventArgs_t;
#define __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardRemovedEventArgs ABI::Windows::Foundation::__FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardRemovedEventArgs_t
/* Foundation */ } /* Windows */ } /* ABI */ }

#endif // !defined(RO_NO_TEMPLATE_NAME)
#endif /* DEF___FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardRemovedEventArgs_USE */

#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

namespace ABI {
    namespace Windows {
        namespace Foundation {
            namespace Collections {
                class ValueSet;
            } /* Collections */
        } /* Foundation */
    } /* Windows */
} /* ABI */

#ifndef ____x_ABI_CWindows_CFoundation_CCollections_CIPropertySet_FWD_DEFINED__
#define ____x_ABI_CWindows_CFoundation_CCollections_CIPropertySet_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Foundation {
            namespace Collections {
                interface IPropertySet;
            } /* Collections */
        } /* Foundation */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CFoundation_CCollections_CIPropertySet ABI::Windows::Foundation::Collections::IPropertySet

#endif // ____x_ABI_CWindows_CFoundation_CCollections_CIPropertySet_FWD_DEFINED__

namespace ABI {
    namespace Windows {
        namespace Foundation {
            typedef struct DateTime DateTime;
        } /* Foundation */
    } /* Windows */
} /* ABI */

#ifndef ____x_ABI_CWindows_CFoundation_CIAsyncAction_FWD_DEFINED__
#define ____x_ABI_CWindows_CFoundation_CIAsyncAction_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Foundation {
            interface IAsyncAction;
        } /* Foundation */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CFoundation_CIAsyncAction ABI::Windows::Foundation::IAsyncAction

#endif // ____x_ABI_CWindows_CFoundation_CIAsyncAction_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CFoundation_CIClosable_FWD_DEFINED__
#define ____x_ABI_CWindows_CFoundation_CIClosable_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Foundation {
            interface IClosable;
        } /* Foundation */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CFoundation_CIClosable ABI::Windows::Foundation::IClosable

#endif // ____x_ABI_CWindows_CFoundation_CIClosable_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CFoundation_CIPropertyValue_FWD_DEFINED__
#define ____x_ABI_CWindows_CFoundation_CIPropertyValue_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Foundation {
            interface IPropertyValue;
        } /* Foundation */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CFoundation_CIPropertyValue ABI::Windows::Foundation::IPropertyValue

#endif // ____x_ABI_CWindows_CFoundation_CIPropertyValue_FWD_DEFINED__

namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Core {
                    typedef enum CryptographicPublicKeyBlobType : int CryptographicPublicKeyBlobType;
                } /* Core */
            } /* Cryptography */
        } /* Security */
    } /* Windows */
} /* ABI */

#ifndef ____x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStreamReference_FWD_DEFINED__
#define ____x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStreamReference_FWD_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Storage {
            namespace Streams {
                interface IRandomAccessStreamReference;
            } /* Streams */
        } /* Storage */
    } /* Windows */
} /* ABI */
#define __x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStreamReference ABI::Windows::Storage::Streams::IRandomAccessStreamReference

#endif // ____x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStreamReference_FWD_DEFINED__

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                typedef enum SmartCardAppletIdGroupActivationPolicy : int SmartCardAppletIdGroupActivationPolicy;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                typedef enum SmartCardAutomaticResponseStatus : int SmartCardAutomaticResponseStatus;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                typedef enum SmartCardCryptogramMaterialProtectionMethod : int SmartCardCryptogramMaterialProtectionMethod;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                typedef enum SmartCardCryptogramPlacementOptions : unsigned int SmartCardCryptogramPlacementOptions;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                typedef enum SmartCardCryptogramStorageKeyAlgorithm : int SmartCardCryptogramStorageKeyAlgorithm;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                typedef enum SmartCardCryptographicKeyAttestationStatus : int SmartCardCryptographicKeyAttestationStatus;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                typedef enum SmartCardEmulationCategory : int SmartCardEmulationCategory;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                typedef enum SmartCardEmulationType : int SmartCardEmulationType;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                typedef enum SmartCardEmulatorConnectionDeactivatedReason : int SmartCardEmulatorConnectionDeactivatedReason;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                typedef enum SmartCardEmulatorConnectionSource : int SmartCardEmulatorConnectionSource;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                typedef enum SmartCardEmulatorEnablementPolicy : int SmartCardEmulatorEnablementPolicy;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                typedef enum SmartCardLaunchBehavior : int SmartCardLaunchBehavior;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                typedef enum SmartCardPinCharacterPolicyOption : int SmartCardPinCharacterPolicyOption;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                typedef enum SmartCardReaderKind : int SmartCardReaderKind;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                typedef enum SmartCardTriggerType : int SmartCardTriggerType;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                typedef enum SmartCardUnlockPromptingBehavior : int SmartCardUnlockPromptingBehavior;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                class SmartCardAppletIdGroup;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                class SmartCardEmulatorConnectionProperties;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                class SmartCardPinPolicy;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                class SmartCardPinResetDeferral;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                class SmartCardPinResetRequest;
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardActivationPolicyChangeResult
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                enum SmartCardActivationPolicyChangeResult : int
                {
                    SmartCardActivationPolicyChangeResult_Denied = 0,
                    SmartCardActivationPolicyChangeResult_Allowed = 1,
                };
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardAppletIdGroupActivationPolicy
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                enum SmartCardAppletIdGroupActivationPolicy : int
                {
                    SmartCardAppletIdGroupActivationPolicy_Disabled = 0,
                    SmartCardAppletIdGroupActivationPolicy_ForegroundOverride = 1,
                    SmartCardAppletIdGroupActivationPolicy_Enabled = 2,
                };
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardAutomaticResponseStatus
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                enum SmartCardAutomaticResponseStatus : int
                {
                    SmartCardAutomaticResponseStatus_None = 0,
                    SmartCardAutomaticResponseStatus_Success = 1,
                    SmartCardAutomaticResponseStatus_UnknownError = 2,
                };
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardCryptogramAlgorithm
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                enum SmartCardCryptogramAlgorithm : int
                {
                    SmartCardCryptogramAlgorithm_None = 0,
                    SmartCardCryptogramAlgorithm_CbcMac = 1,
                    SmartCardCryptogramAlgorithm_Cvc3Umd = 2,
                    SmartCardCryptogramAlgorithm_DecimalizedMsd = 3,
                    SmartCardCryptogramAlgorithm_Cvc3MD = 4,
                    SmartCardCryptogramAlgorithm_Sha1 = 5,
                    SmartCardCryptogramAlgorithm_SignedDynamicApplicationData = 6,
                    SmartCardCryptogramAlgorithm_RsaPkcs1 = 7,
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
                    SmartCardCryptogramAlgorithm_Sha256Hmac = 8,
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
                };
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardCryptogramGeneratorOperationStatus
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                enum SmartCardCryptogramGeneratorOperationStatus : int
                {
                    SmartCardCryptogramGeneratorOperationStatus_Success = 0,
                    SmartCardCryptogramGeneratorOperationStatus_AuthorizationFailed = 1,
                    SmartCardCryptogramGeneratorOperationStatus_AuthorizationCanceled = 2,
                    SmartCardCryptogramGeneratorOperationStatus_AuthorizationRequired = 3,
                    SmartCardCryptogramGeneratorOperationStatus_CryptogramMaterialPackageStorageKeyExists = 4,
                    SmartCardCryptogramGeneratorOperationStatus_NoCryptogramMaterialPackageStorageKey = 5,
                    SmartCardCryptogramGeneratorOperationStatus_NoCryptogramMaterialPackage = 6,
                    SmartCardCryptogramGeneratorOperationStatus_UnsupportedCryptogramMaterialPackage = 7,
                    SmartCardCryptogramGeneratorOperationStatus_UnknownCryptogramMaterialName = 8,
                    SmartCardCryptogramGeneratorOperationStatus_InvalidCryptogramMaterialUsage = 9,
                    SmartCardCryptogramGeneratorOperationStatus_ApduResponseNotSent = 10,
                    SmartCardCryptogramGeneratorOperationStatus_OtherError = 11,
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
                    SmartCardCryptogramGeneratorOperationStatus_ValidationFailed = 12,
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x50000
                    SmartCardCryptogramGeneratorOperationStatus_NotSupported = 13,
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x50000
                };
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardCryptogramMaterialPackageConfirmationResponseFormat
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                enum SmartCardCryptogramMaterialPackageConfirmationResponseFormat : int
                {
                    SmartCardCryptogramMaterialPackageConfirmationResponseFormat_None = 0,
                    SmartCardCryptogramMaterialPackageConfirmationResponseFormat_VisaHmac = 1,
                };
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardCryptogramMaterialPackageFormat
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                enum SmartCardCryptogramMaterialPackageFormat : int
                {
                    SmartCardCryptogramMaterialPackageFormat_None = 0,
                    SmartCardCryptogramMaterialPackageFormat_JweRsaPki = 1,
                };
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardCryptogramMaterialProtectionMethod
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 4.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                enum SmartCardCryptogramMaterialProtectionMethod : int
                {
                    SmartCardCryptogramMaterialProtectionMethod_None = 0,
                    SmartCardCryptogramMaterialProtectionMethod_WhiteBoxing = 1,
                };
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardCryptogramMaterialType
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                enum SmartCardCryptogramMaterialType : int
                {
                    SmartCardCryptogramMaterialType_None = 0,
                    SmartCardCryptogramMaterialType_StaticDataAuthentication = 1,
                    SmartCardCryptogramMaterialType_TripleDes112 = 2,
                    SmartCardCryptogramMaterialType_Aes = 3,
                    SmartCardCryptogramMaterialType_RsaPkcs1 = 4,
                };
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardCryptogramPlacementOptions
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                enum SmartCardCryptogramPlacementOptions : unsigned int
                {
                    SmartCardCryptogramPlacementOptions_None = 0,
                    SmartCardCryptogramPlacementOptions_UnitsAreInNibbles = 0x1,
                    SmartCardCryptogramPlacementOptions_ChainOutput = 0x2,
                };

                DEFINE_ENUM_FLAG_OPERATORS(SmartCardCryptogramPlacementOptions)
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyAlgorithm
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                enum SmartCardCryptogramStorageKeyAlgorithm : int
                {
                    SmartCardCryptogramStorageKeyAlgorithm_None = 0,
                    SmartCardCryptogramStorageKeyAlgorithm_Rsa2048 = 1,
                };
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyCapabilities
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                enum SmartCardCryptogramStorageKeyCapabilities : unsigned int
                {
                    SmartCardCryptogramStorageKeyCapabilities_None = 0,
                    SmartCardCryptogramStorageKeyCapabilities_HardwareProtection = 0x1,
                    SmartCardCryptogramStorageKeyCapabilities_UnlockPrompt = 0x2,
                };

                DEFINE_ENUM_FLAG_OPERATORS(SmartCardCryptogramStorageKeyCapabilities)
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardCryptographicKeyAttestationStatus
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                enum SmartCardCryptographicKeyAttestationStatus : int
                {
                    SmartCardCryptographicKeyAttestationStatus_NoAttestation = 0,
                    SmartCardCryptographicKeyAttestationStatus_SoftwareKeyWithoutTpm = 1,
                    SmartCardCryptographicKeyAttestationStatus_SoftwareKeyWithTpm = 2,
                    SmartCardCryptographicKeyAttestationStatus_TpmKeyUnknownAttestationStatus = 3,
                    SmartCardCryptographicKeyAttestationStatus_TpmKeyWithoutAttestationCapability = 4,
                    SmartCardCryptographicKeyAttestationStatus_TpmKeyWithTemporaryAttestationFailure = 5,
                    SmartCardCryptographicKeyAttestationStatus_TpmKeyWithLongTermAttestationFailure = 6,
                    SmartCardCryptographicKeyAttestationStatus_TpmKeyWithAttestation = 7,
                };
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardEmulationCategory
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                enum SmartCardEmulationCategory : int
                {
                    SmartCardEmulationCategory_Other = 0,
                    SmartCardEmulationCategory_Payment = 1,
                };
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardEmulationType
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                enum SmartCardEmulationType : int
                {
                    SmartCardEmulationType_Host = 0,
                    SmartCardEmulationType_Uicc = 1,
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x30000
                    SmartCardEmulationType_EmbeddedSE = 2,
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x30000
                };
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardEmulatorConnectionDeactivatedReason
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                enum SmartCardEmulatorConnectionDeactivatedReason : int
                {
                    SmartCardEmulatorConnectionDeactivatedReason_ConnectionLost = 0,
                    SmartCardEmulatorConnectionDeactivatedReason_ConnectionRedirected = 1,
                };
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardEmulatorConnectionSource
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                enum SmartCardEmulatorConnectionSource : int
                {
                    SmartCardEmulatorConnectionSource_Unknown = 0,
                    SmartCardEmulatorConnectionSource_NfcReader = 1,
                };
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardEmulatorEnablementPolicy
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                enum SmartCardEmulatorEnablementPolicy : int
                {
                    SmartCardEmulatorEnablementPolicy_Never = 0,
                    SmartCardEmulatorEnablementPolicy_Always = 1,
                    SmartCardEmulatorEnablementPolicy_ScreenOn = 2,
                    SmartCardEmulatorEnablementPolicy_ScreenUnlocked = 3,
                };
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardLaunchBehavior
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardBackgroundTriggerContract in version 1.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDBACKGROUNDTRIGGERCONTRACT_VERSION >= 0x10000
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                enum SmartCardLaunchBehavior : int
                {
                    SmartCardLaunchBehavior_Default = 0,
                    SmartCardLaunchBehavior_AboveLock = 1,
                };
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDBACKGROUNDTRIGGERCONTRACT_VERSION >= 0x10000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardPinCharacterPolicyOption
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                enum SmartCardPinCharacterPolicyOption : int
                {
                    SmartCardPinCharacterPolicyOption_Allow = 0,
                    SmartCardPinCharacterPolicyOption_RequireAtLeastOne = 1,
                    SmartCardPinCharacterPolicyOption_Disallow = 2,
                };
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardReaderKind
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                enum SmartCardReaderKind : int
                {
                    SmartCardReaderKind_Any = 0,
                    SmartCardReaderKind_Generic = 1,
                    SmartCardReaderKind_Tpm = 2,
                    SmartCardReaderKind_Nfc = 3,
                    SmartCardReaderKind_Uicc = 4,
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x30000
                    SmartCardReaderKind_EmbeddedSE = 5,
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x30000
                };
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardReaderStatus
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                enum SmartCardReaderStatus : int
                {
                    SmartCardReaderStatus_Disconnected = 0,
                    SmartCardReaderStatus_Ready = 1,
                    SmartCardReaderStatus_Exclusive = 2,
                };
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardStatus
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                enum SmartCardStatus : int
                {
                    SmartCardStatus_Disconnected = 0,
                    SmartCardStatus_Ready = 1,
                    SmartCardStatus_Shared = 2,
                    SmartCardStatus_Exclusive = 3,
                    SmartCardStatus_Unresponsive = 4,
                };
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardTriggerType
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardBackgroundTriggerContract in version 1.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDBACKGROUNDTRIGGERCONTRACT_VERSION >= 0x10000
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                enum SmartCardTriggerType : int
                {
                    SmartCardTriggerType_EmulatorTransaction = 0,
                    SmartCardTriggerType_EmulatorNearFieldEntry = 1,
                    SmartCardTriggerType_EmulatorNearFieldExit = 2,
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDBACKGROUNDTRIGGERCONTRACT_VERSION >= 0x10000
                    SmartCardTriggerType_EmulatorHostApplicationActivated = 3,
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDBACKGROUNDTRIGGERCONTRACT_VERSION >= 0x10000
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDBACKGROUNDTRIGGERCONTRACT_VERSION >= 0x10000
                    SmartCardTriggerType_EmulatorAppletIdGroupRegistrationChanged = 4,
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDBACKGROUNDTRIGGERCONTRACT_VERSION >= 0x10000
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDBACKGROUNDTRIGGERCONTRACT_VERSION >= 0x20000
                    SmartCardTriggerType_ReaderCardAdded = 5,
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDBACKGROUNDTRIGGERCONTRACT_VERSION >= 0x20000
                };
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDBACKGROUNDTRIGGERCONTRACT_VERSION >= 0x10000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardUnlockPromptingBehavior
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                enum SmartCardUnlockPromptingBehavior : int
                {
                    SmartCardUnlockPromptingBehavior_AllowUnlockPrompt = 0,
                    SmartCardUnlockPromptingBehavior_RequireUnlockPrompt = 1,
                    SmartCardUnlockPromptingBehavior_PreventUnlockPrompt = 2,
                };
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Delegate Windows.Devices.SmartCards.SmartCardPinResetHandler
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetHandler_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetHandler_INTERFACE_DEFINED__
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("138d5e40-f3bc-4a5c-b41d-4b4ef684e237")
                ISmartCardPinResetHandler : public IUnknown
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE Invoke(
                        ABI::Windows::Devices::SmartCards::ISmartCardProvisioning* sender,
                        ABI::Windows::Devices::SmartCards::ISmartCardPinResetRequest* request
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardPinResetHandler = __uuidof(ISmartCardPinResetHandler);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetHandler;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetHandler_INTERFACE_DEFINED__) */
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ICardAddedEventArgs
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.CardAddedEventArgs
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CICardAddedEventArgs_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CICardAddedEventArgs_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ICardAddedEventArgs[] = L"Windows.Devices.SmartCards.ICardAddedEventArgs";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("18bbef98-f18b-4dd3-b118-dfb2c8e23cc6")
                ICardAddedEventArgs : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE get_SmartCard(
                        ABI::Windows::Devices::SmartCards::ISmartCard** value
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ICardAddedEventArgs = __uuidof(ICardAddedEventArgs);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CICardAddedEventArgs;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CICardAddedEventArgs_INTERFACE_DEFINED__) */
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ICardRemovedEventArgs
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.CardRemovedEventArgs
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CICardRemovedEventArgs_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CICardRemovedEventArgs_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ICardRemovedEventArgs[] = L"Windows.Devices.SmartCards.ICardRemovedEventArgs";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("15331aaf-22d7-4945-afc9-03b46f42a6cd")
                ICardRemovedEventArgs : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE get_SmartCard(
                        ABI::Windows::Devices::SmartCards::ISmartCard** value
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ICardRemovedEventArgs = __uuidof(ICardRemovedEventArgs);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CICardRemovedEventArgs;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CICardRemovedEventArgs_INTERFACE_DEFINED__) */
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.IKnownSmartCardAppletIds
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 6.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.KnownSmartCardAppletIds
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x60000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CIKnownSmartCardAppletIds_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CIKnownSmartCardAppletIds_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_IKnownSmartCardAppletIds[] = L"Windows.Devices.SmartCards.IKnownSmartCardAppletIds";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("7b04d8d8-95b4-4c88-8cea-411e55511efc")
                IKnownSmartCardAppletIds : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE get_PaymentSystemEnvironment(
                        ABI::Windows::Storage::Streams::IBuffer** value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_ProximityPaymentSystemEnvironment(
                        ABI::Windows::Storage::Streams::IBuffer** value
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_IKnownSmartCardAppletIds = __uuidof(IKnownSmartCardAppletIds);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CIKnownSmartCardAppletIds;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CIKnownSmartCardAppletIds_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x60000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCard
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCard
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCard_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCard_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCard[] = L"Windows.Devices.SmartCards.ISmartCard";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("1b718871-6434-43f4-b55a-6a29623870aa")
                ISmartCard : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE get_Reader(
                        ABI::Windows::Devices::SmartCards::ISmartCardReader** value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE GetStatusAsync(
                        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardStatus** result
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE GetAnswerToResetAsync(
                        __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer** result
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCard = __uuidof(ISmartCard);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCard;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCard_INTERFACE_DEFINED__) */
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardAppletIdGroup
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardAppletIdGroup
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardAppletIdGroup[] = L"Windows.Devices.SmartCards.ISmartCardAppletIdGroup";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("7db165e6-6264-56f4-5e03-c86385395eb1")
                ISmartCardAppletIdGroup : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE get_DisplayName(
                        HSTRING* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE put_DisplayName(
                        HSTRING value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_AppletIds(
                        __FIVector_1_Windows__CStorage__CStreams__CIBuffer** value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_SmartCardEmulationCategory(
                        ABI::Windows::Devices::SmartCards::SmartCardEmulationCategory* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE put_SmartCardEmulationCategory(
                        ABI::Windows::Devices::SmartCards::SmartCardEmulationCategory value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_SmartCardEmulationType(
                        ABI::Windows::Devices::SmartCards::SmartCardEmulationType* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE put_SmartCardEmulationType(
                        ABI::Windows::Devices::SmartCards::SmartCardEmulationType value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_AutomaticEnablement(
                        boolean* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE put_AutomaticEnablement(
                        boolean value
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardAppletIdGroup = __uuidof(ISmartCardAppletIdGroup);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardAppletIdGroup2
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 6.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardAppletIdGroup
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x60000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardAppletIdGroup2[] = L"Windows.Devices.SmartCards.ISmartCardAppletIdGroup2";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("6b0ef9dc-9956-4a62-8d4e-d37a68ebc3a6")
                ISmartCardAppletIdGroup2 : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE get_Logo(
                        ABI::Windows::Storage::Streams::IRandomAccessStreamReference** value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE put_Logo(
                        ABI::Windows::Storage::Streams::IRandomAccessStreamReference* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_Description(
                        HSTRING* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE put_Description(
                        HSTRING value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_Properties(
                        ABI::Windows::Foundation::Collections::IPropertySet** value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_SecureUserAuthenticationRequired(
                        boolean* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE put_SecureUserAuthenticationRequired(
                        boolean value
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardAppletIdGroup2 = __uuidof(ISmartCardAppletIdGroup2);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x60000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardAppletIdGroupFactory
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardAppletIdGroup
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupFactory_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupFactory_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardAppletIdGroupFactory[] = L"Windows.Devices.SmartCards.ISmartCardAppletIdGroupFactory";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("9105eb4d-4a65-4e41-8061-cbe83f3695e5")
                ISmartCardAppletIdGroupFactory : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE Create(
                        HSTRING displayName,
                        __FIVector_1_Windows__CStorage__CStreams__CIBuffer* appletIds,
                        ABI::Windows::Devices::SmartCards::SmartCardEmulationCategory emulationCategory,
                        ABI::Windows::Devices::SmartCards::SmartCardEmulationType emulationType,
                        ABI::Windows::Devices::SmartCards::ISmartCardAppletIdGroup** result
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardAppletIdGroupFactory = __uuidof(ISmartCardAppletIdGroupFactory);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupFactory;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupFactory_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardAppletIdGroupRegistration
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardAppletIdGroupRegistration
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardAppletIdGroupRegistration[] = L"Windows.Devices.SmartCards.ISmartCardAppletIdGroupRegistration";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("df1208d1-31bb-5596-43b1-6d69a0257b3a")
                ISmartCardAppletIdGroupRegistration : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE get_ActivationPolicy(
                        ABI::Windows::Devices::SmartCards::SmartCardAppletIdGroupActivationPolicy* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_AppletIdGroup(
                        ABI::Windows::Devices::SmartCards::ISmartCardAppletIdGroup** value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE RequestActivationPolicyChangeAsync(
                        ABI::Windows::Devices::SmartCards::SmartCardAppletIdGroupActivationPolicy policy,
                        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult** result
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_Id(
                        GUID* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE SetAutomaticResponseApdusAsync(
                        __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu* apdus,
                        ABI::Windows::Foundation::IAsyncAction** result
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardAppletIdGroupRegistration = __uuidof(ISmartCardAppletIdGroupRegistration);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardAppletIdGroupRegistration2
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 6.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardAppletIdGroupRegistration
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x60000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration2_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration2_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardAppletIdGroupRegistration2[] = L"Windows.Devices.SmartCards.ISmartCardAppletIdGroupRegistration2";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("5f5508d8-98a7-4f2e-91d9-6cfcceda407f")
                ISmartCardAppletIdGroupRegistration2 : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE get_SmartCardReaderId(
                        HSTRING* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE SetPropertiesAsync(
                        ABI::Windows::Foundation::Collections::IPropertySet* props,
                        ABI::Windows::Foundation::IAsyncAction** operation
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardAppletIdGroupRegistration2 = __uuidof(ISmartCardAppletIdGroupRegistration2);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration2;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration2_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x60000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardAppletIdGroupStatics
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardAppletIdGroup
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupStatics_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupStatics_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardAppletIdGroupStatics[] = L"Windows.Devices.SmartCards.ISmartCardAppletIdGroupStatics";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("ab2899a9-e76c-45cf-bf1d-90eaa6205927")
                ISmartCardAppletIdGroupStatics : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE get_MaxAppletIds(
                        UINT16* value
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardAppletIdGroupStatics = __uuidof(ISmartCardAppletIdGroupStatics);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupStatics;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupStatics_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardAutomaticResponseApdu
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardAutomaticResponseApdu
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardAutomaticResponseApdu[] = L"Windows.Devices.SmartCards.ISmartCardAutomaticResponseApdu";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("52152bab-c63e-4531-a857-d756d99b986a")
                ISmartCardAutomaticResponseApdu : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE get_CommandApdu(
                        ABI::Windows::Storage::Streams::IBuffer** value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE put_CommandApdu(
                        ABI::Windows::Storage::Streams::IBuffer* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_CommandApduBitMask(
                        ABI::Windows::Storage::Streams::IBuffer** value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE put_CommandApduBitMask(
                        ABI::Windows::Storage::Streams::IBuffer* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_ShouldMatchLength(
                        boolean* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE put_ShouldMatchLength(
                        boolean value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_AppletId(
                        ABI::Windows::Storage::Streams::IBuffer** value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE put_AppletId(
                        ABI::Windows::Storage::Streams::IBuffer* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_ResponseApdu(
                        ABI::Windows::Storage::Streams::IBuffer** value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE put_ResponseApdu(
                        ABI::Windows::Storage::Streams::IBuffer* value
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardAutomaticResponseApdu = __uuidof(ISmartCardAutomaticResponseApdu);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardAutomaticResponseApdu2
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardAutomaticResponseApdu
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardAutomaticResponseApdu2[] = L"Windows.Devices.SmartCards.ISmartCardAutomaticResponseApdu2";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("44aebb14-559d-4531-4e51-89db6fa8a57a")
                ISmartCardAutomaticResponseApdu2 : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE get_InputState(
                        __FIReference_1_UINT32** value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE put_InputState(
                        __FIReference_1_UINT32* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_OutputState(
                        __FIReference_1_UINT32** value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE put_OutputState(
                        __FIReference_1_UINT32* value
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardAutomaticResponseApdu2 = __uuidof(ISmartCardAutomaticResponseApdu2);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardAutomaticResponseApdu3
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 3.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardAutomaticResponseApdu
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x30000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu3_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu3_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardAutomaticResponseApdu3[] = L"Windows.Devices.SmartCards.ISmartCardAutomaticResponseApdu3";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("bf43da74-6576-4392-9367-fe3bc9e2d496")
                ISmartCardAutomaticResponseApdu3 : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE get_AllowWhenCryptogramGeneratorNotPrepared(
                        boolean* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE put_AllowWhenCryptogramGeneratorNotPrepared(
                        boolean value
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardAutomaticResponseApdu3 = __uuidof(ISmartCardAutomaticResponseApdu3);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu3;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu3_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x30000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardAutomaticResponseApduFactory
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardAutomaticResponseApdu
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApduFactory_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApduFactory_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardAutomaticResponseApduFactory[] = L"Windows.Devices.SmartCards.ISmartCardAutomaticResponseApduFactory";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("e97ea2fa-d02c-4c55-b02a-8cff7fa9f05b")
                ISmartCardAutomaticResponseApduFactory : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE Create(
                        ABI::Windows::Storage::Streams::IBuffer* commandApdu,
                        ABI::Windows::Storage::Streams::IBuffer* responseApdu,
                        ABI::Windows::Devices::SmartCards::ISmartCardAutomaticResponseApdu** result
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardAutomaticResponseApduFactory = __uuidof(ISmartCardAutomaticResponseApduFactory);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApduFactory;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApduFactory_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardChallengeContext
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardChallengeContext
 *
 * Any object which implements this interface must also implement the following interfaces:
 *     Windows.Foundation.IClosable
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardChallengeContext[] = L"Windows.Devices.SmartCards.ISmartCardChallengeContext";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("192a5319-c9c4-4947-81cc-44794a61ef91")
                ISmartCardChallengeContext : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE get_Challenge(
                        ABI::Windows::Storage::Streams::IBuffer** value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE VerifyResponseAsync(
                        ABI::Windows::Storage::Streams::IBuffer* response,
                        __FIAsyncOperation_1_boolean** result
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE ProvisionAsync(
                        ABI::Windows::Storage::Streams::IBuffer* response,
                        boolean formatCard,
                        ABI::Windows::Foundation::IAsyncAction** result
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE ProvisionAsyncWithNewCardId(
                        ABI::Windows::Storage::Streams::IBuffer* response,
                        boolean formatCard,
                        GUID newCardId,
                        ABI::Windows::Foundation::IAsyncAction** result
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE ChangeAdministrativeKeyAsync(
                        ABI::Windows::Storage::Streams::IBuffer* response,
                        ABI::Windows::Storage::Streams::IBuffer* newAdministrativeKey,
                        ABI::Windows::Foundation::IAsyncAction** result
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardChallengeContext = __uuidof(ISmartCardChallengeContext);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext_INTERFACE_DEFINED__) */
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardConnect
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCard
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnect_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnect_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardConnect[] = L"Windows.Devices.SmartCards.ISmartCardConnect";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("2fdf87e5-028d-491e-a058-3382c3986f40")
                ISmartCardConnect : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE ConnectAsync(
                        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardConnection** result
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardConnect = __uuidof(ISmartCardConnect);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnect;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnect_INTERFACE_DEFINED__) */
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardConnection
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardConnection
 *
 * Any object which implements this interface must also implement the following interfaces:
 *     Windows.Foundation.IClosable
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnection_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnection_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardConnection[] = L"Windows.Devices.SmartCards.ISmartCardConnection";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("7edb991a-a81a-47bc-a649-156be6b7f231")
                ISmartCardConnection : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE TransmitAsync(
                        ABI::Windows::Storage::Streams::IBuffer* command,
                        __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer** result
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardConnection = __uuidof(ISmartCardConnection);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnection;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnection_INTERFACE_DEFINED__) */
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardCryptogramGenerator
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardCryptogramGenerator
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardCryptogramGenerator[] = L"Windows.Devices.SmartCards.ISmartCardCryptogramGenerator";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("e39f587b-edd3-4e49-b594-0ff5e4d0c76f")
                ISmartCardCryptogramGenerator : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE get_SupportedCryptogramMaterialTypes(
                        __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType** result
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_SupportedCryptogramAlgorithms(
                        __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm** result
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_SupportedCryptogramMaterialPackageFormats(
                        __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat** result
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_SupportedCryptogramMaterialPackageConfirmationResponseFormats(
                        __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat** result
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_SupportedSmartCardCryptogramStorageKeyCapabilities(
                        __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities** result
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE DeleteCryptogramMaterialStorageKeyAsync(
                        HSTRING storageKeyName,
                        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus** result
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE CreateCryptogramMaterialStorageKeyAsync(
                        ABI::Windows::Devices::SmartCards::SmartCardUnlockPromptingBehavior promptingBehavior,
                        HSTRING storageKeyName,
                        ABI::Windows::Devices::SmartCards::SmartCardCryptogramStorageKeyAlgorithm algorithm,
                        ABI::Windows::Devices::SmartCards::SmartCardCryptogramStorageKeyCapabilities capabilities,
                        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus** result
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE RequestCryptogramMaterialStorageKeyInfoAsync(
                        ABI::Windows::Devices::SmartCards::SmartCardUnlockPromptingBehavior promptingBehavior,
                        HSTRING storageKeyName,
                        ABI::Windows::Security::Cryptography::Core::CryptographicPublicKeyBlobType format,
                        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo** result
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE ImportCryptogramMaterialPackageAsync(
                        ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialPackageFormat format,
                        HSTRING storageKeyName,
                        HSTRING materialPackageName,
                        ABI::Windows::Storage::Streams::IBuffer* cryptogramMaterialPackage,
                        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus** result
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE TryProvePossessionOfCryptogramMaterialPackageAsync(
                        ABI::Windows::Devices::SmartCards::SmartCardUnlockPromptingBehavior promptingBehavior,
                        ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialPackageConfirmationResponseFormat responseFormat,
                        HSTRING materialPackageName,
                        HSTRING materialName,
                        ABI::Windows::Storage::Streams::IBuffer* challenge,
                        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof** result
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE RequestUnlockCryptogramMaterialForUseAsync(
                        ABI::Windows::Devices::SmartCards::SmartCardUnlockPromptingBehavior promptingBehavior,
                        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus** result
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE DeleteCryptogramMaterialPackageAsync(
                        HSTRING materialPackageName,
                        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus** result
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardCryptogramGenerator = __uuidof(ISmartCardCryptogramGenerator);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardCryptogramGenerator2
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 4.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardCryptogramGenerator
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardCryptogramGenerator2[] = L"Windows.Devices.SmartCards.ISmartCardCryptogramGenerator2";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("7116aa34-5d6d-4b4a-96a3-efa47d2a7e25")
                ISmartCardCryptogramGenerator2 : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE ValidateRequestApduAsync(
                        ABI::Windows::Devices::SmartCards::SmartCardUnlockPromptingBehavior promptingBehavior,
                        ABI::Windows::Storage::Streams::IBuffer* apduToValidate,
                        __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep* cryptogramPlacementSteps,
                        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus** result
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE GetAllCryptogramStorageKeyCharacteristicsAsync(
                        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult** result
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE GetAllCryptogramMaterialPackageCharacteristicsAsync(
                        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult** result
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE GetAllCryptogramMaterialPackageCharacteristicsWithStorageKeyAsync(
                        HSTRING storageKeyName,
                        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult** result
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE GetAllCryptogramMaterialCharacteristicsAsync(
                        ABI::Windows::Devices::SmartCards::SmartCardUnlockPromptingBehavior promptingBehavior,
                        HSTRING materialPackageName,
                        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult** result
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardCryptogramGenerator2 = __uuidof(ISmartCardCryptogramGenerator2);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardCryptogramGeneratorStatics
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardCryptogramGenerator
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardCryptogramGeneratorStatics[] = L"Windows.Devices.SmartCards.ISmartCardCryptogramGeneratorStatics";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("09933910-cb9c-4015-967d-5234f3b02900")
                ISmartCardCryptogramGeneratorStatics : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE GetSmartCardCryptogramGeneratorAsync(
                        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator** result
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardCryptogramGeneratorStatics = __uuidof(ISmartCardCryptogramGeneratorStatics);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardCryptogramGeneratorStatics2
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 5.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardCryptogramGenerator
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x50000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics2_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics2_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardCryptogramGeneratorStatics2[] = L"Windows.Devices.SmartCards.ISmartCardCryptogramGeneratorStatics2";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("09bdf5e5-b4bd-4e23-a588-74469204c128")
                ISmartCardCryptogramGeneratorStatics2 : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE IsSupported(
                        boolean* result
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardCryptogramGeneratorStatics2 = __uuidof(ISmartCardCryptogramGeneratorStatics2);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics2;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics2_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x50000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 4.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult[] = L"Windows.Devices.SmartCards.ISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("2798e029-d687-4c92-86c6-399e9a0ecb09")
                ISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE get_OperationStatus(
                        ABI::Windows::Devices::SmartCards::SmartCardCryptogramGeneratorOperationStatus* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_Characteristics(
                        __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics** value
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult = __uuidof(ISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 4.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult[] = L"Windows.Devices.SmartCards.ISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("4e6a8a5c-9773-46c4-a32f-b1e543159e04")
                ISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE get_OperationStatus(
                        ABI::Windows::Devices::SmartCards::SmartCardCryptogramGeneratorOperationStatus* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_Characteristics(
                        __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics** value
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult = __uuidof(ISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 4.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult[] = L"Windows.Devices.SmartCards.ISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("8c7ce857-a7e7-489d-b9d6-368061515012")
                ISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE get_OperationStatus(
                        ABI::Windows::Devices::SmartCards::SmartCardCryptogramGeneratorOperationStatus* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_Characteristics(
                        __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics** value
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult = __uuidof(ISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardCryptogramMaterialCharacteristics
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 4.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardCryptogramMaterialCharacteristics
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardCryptogramMaterialCharacteristics[] = L"Windows.Devices.SmartCards.ISmartCardCryptogramMaterialCharacteristics";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("fc9ac5cc-c1d7-4153-923b-a2d43c6c8d49")
                ISmartCardCryptogramMaterialCharacteristics : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE get_MaterialName(
                        HSTRING* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_AllowedAlgorithms(
                        __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm** value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_AllowedProofOfPossessionAlgorithms(
                        __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat** value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_AllowedValidations(
                        __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm** value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_MaterialType(
                        ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialType* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_ProtectionMethod(
                        ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialProtectionMethod* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_ProtectionVersion(
                        INT32* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_MaterialLength(
                        INT32* value
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardCryptogramMaterialCharacteristics = __uuidof(ISmartCardCryptogramMaterialCharacteristics);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardCryptogramMaterialPackageCharacteristics
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 4.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardCryptogramMaterialPackageCharacteristics
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardCryptogramMaterialPackageCharacteristics[] = L"Windows.Devices.SmartCards.ISmartCardCryptogramMaterialPackageCharacteristics";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("ffb58e1f-0692-4c47-93cf-34d91f9dcd00")
                ISmartCardCryptogramMaterialPackageCharacteristics : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE get_PackageName(
                        HSTRING* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_StorageKeyName(
                        HSTRING* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_DateImported(
                        ABI::Windows::Foundation::DateTime* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_PackageFormat(
                        ABI::Windows::Devices::SmartCards::SmartCardCryptogramMaterialPackageFormat* value
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardCryptogramMaterialPackageCharacteristics = __uuidof(ISmartCardCryptogramMaterialPackageCharacteristics);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardCryptogramMaterialPossessionProof
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardCryptogramMaterialPossessionProof
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPossessionProof_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPossessionProof_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardCryptogramMaterialPossessionProof[] = L"Windows.Devices.SmartCards.ISmartCardCryptogramMaterialPossessionProof";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("e5b9ab8c-a141-4135-9add-b0d2e3aa1fc9")
                ISmartCardCryptogramMaterialPossessionProof : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE get_OperationStatus(
                        ABI::Windows::Devices::SmartCards::SmartCardCryptogramGeneratorOperationStatus* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_Proof(
                        ABI::Windows::Storage::Streams::IBuffer** value
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardCryptogramMaterialPossessionProof = __uuidof(ISmartCardCryptogramMaterialPossessionProof);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPossessionProof;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPossessionProof_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardCryptogramPlacementStep
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardCryptogramPlacementStep
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardCryptogramPlacementStep[] = L"Windows.Devices.SmartCards.ISmartCardCryptogramPlacementStep";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("947b03eb-8342-4792-a2e5-925636378a53")
                ISmartCardCryptogramPlacementStep : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE get_Algorithm(
                        ABI::Windows::Devices::SmartCards::SmartCardCryptogramAlgorithm* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE put_Algorithm(
                        ABI::Windows::Devices::SmartCards::SmartCardCryptogramAlgorithm value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_SourceData(
                        ABI::Windows::Storage::Streams::IBuffer** value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE put_SourceData(
                        ABI::Windows::Storage::Streams::IBuffer* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_CryptogramMaterialPackageName(
                        HSTRING* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE put_CryptogramMaterialPackageName(
                        HSTRING value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_CryptogramMaterialName(
                        HSTRING* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE put_CryptogramMaterialName(
                        HSTRING value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_TemplateOffset(
                        INT32* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE put_TemplateOffset(
                        INT32 value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_CryptogramOffset(
                        INT32* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE put_CryptogramOffset(
                        INT32 value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_CryptogramLength(
                        INT32* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE put_CryptogramLength(
                        INT32 value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_CryptogramPlacementOptions(
                        ABI::Windows::Devices::SmartCards::SmartCardCryptogramPlacementOptions* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE put_CryptogramPlacementOptions(
                        ABI::Windows::Devices::SmartCards::SmartCardCryptogramPlacementOptions value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_ChainedOutputStep(
                        ABI::Windows::Devices::SmartCards::ISmartCardCryptogramPlacementStep** value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE put_ChainedOutputStep(
                        ABI::Windows::Devices::SmartCards::ISmartCardCryptogramPlacementStep* value
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardCryptogramPlacementStep = __uuidof(ISmartCardCryptogramPlacementStep);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardCryptogramStorageKeyCharacteristics
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 4.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyCharacteristics
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardCryptogramStorageKeyCharacteristics[] = L"Windows.Devices.SmartCards.ISmartCardCryptogramStorageKeyCharacteristics";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("8552546e-4457-4825-b464-635471a39f5c")
                ISmartCardCryptogramStorageKeyCharacteristics : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE get_StorageKeyName(
                        HSTRING* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_DateCreated(
                        ABI::Windows::Foundation::DateTime* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_Algorithm(
                        ABI::Windows::Devices::SmartCards::SmartCardCryptogramStorageKeyAlgorithm* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_Capabilities(
                        ABI::Windows::Devices::SmartCards::SmartCardCryptogramStorageKeyCapabilities* value
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardCryptogramStorageKeyCharacteristics = __uuidof(ISmartCardCryptogramStorageKeyCharacteristics);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardCryptogramStorageKeyInfo
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyInfo
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardCryptogramStorageKeyInfo[] = L"Windows.Devices.SmartCards.ISmartCardCryptogramStorageKeyInfo";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("77b0f00d-b097-4f61-a26a-9561639c9c3a")
                ISmartCardCryptogramStorageKeyInfo : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE get_OperationStatus(
                        ABI::Windows::Devices::SmartCards::SmartCardCryptogramGeneratorOperationStatus* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_PublicKeyBlobType(
                        ABI::Windows::Security::Cryptography::Core::CryptographicPublicKeyBlobType* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_PublicKey(
                        ABI::Windows::Storage::Streams::IBuffer** value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_AttestationStatus(
                        ABI::Windows::Devices::SmartCards::SmartCardCryptographicKeyAttestationStatus* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_Attestation(
                        ABI::Windows::Storage::Streams::IBuffer** value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_AttestationCertificateChain(
                        ABI::Windows::Storage::Streams::IBuffer** value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_Capabilities(
                        ABI::Windows::Devices::SmartCards::SmartCardCryptogramStorageKeyCapabilities* value
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardCryptogramStorageKeyInfo = __uuidof(ISmartCardCryptogramStorageKeyInfo);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardCryptogramStorageKeyInfo2
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 3.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyInfo
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x30000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo2_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo2_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardCryptogramStorageKeyInfo2[] = L"Windows.Devices.SmartCards.ISmartCardCryptogramStorageKeyInfo2";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("000440f9-f7fd-417d-89e1-fbb0382adc4d")
                ISmartCardCryptogramStorageKeyInfo2 : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE get_OperationalRequirements(
                        HSTRING* value
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardCryptogramStorageKeyInfo2 = __uuidof(ISmartCardCryptogramStorageKeyInfo2);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo2;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo2_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x30000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardEmulator
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardEmulator
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardEmulator[] = L"Windows.Devices.SmartCards.ISmartCardEmulator";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("dfb906b2-875e-47e5-8077-e8bff1b1c6fb")
                ISmartCardEmulator : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE get_EnablementPolicy(
                        ABI::Windows::Devices::SmartCards::SmartCardEmulatorEnablementPolicy* value
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardEmulator = __uuidof(ISmartCardEmulator);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardEmulator2
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardEmulator
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardEmulator2[] = L"Windows.Devices.SmartCards.ISmartCardEmulator2";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("fe3fc0b8-8529-411a-807b-48edc2a0ab44")
                ISmartCardEmulator2 : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE add_ApduReceived(
                        __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorApduReceivedEventArgs* value,
                        EventRegistrationToken* token
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE remove_ApduReceived(
                        EventRegistrationToken value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE add_ConnectionDeactivated(
                        __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorConnectionDeactivatedEventArgs* value,
                        EventRegistrationToken* token
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE remove_ConnectionDeactivated(
                        EventRegistrationToken value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE Start(void) = 0;
                    virtual HRESULT STDMETHODCALLTYPE IsHostCardEmulationSupported(
                        boolean* value
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardEmulator2 = __uuidof(ISmartCardEmulator2);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardEmulatorApduReceivedEventArgs
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardEmulatorApduReceivedEventArgs
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardEmulatorApduReceivedEventArgs[] = L"Windows.Devices.SmartCards.ISmartCardEmulatorApduReceivedEventArgs";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("d55d1576-69d2-5333-5b5f-f8c0d6e9f09f")
                ISmartCardEmulatorApduReceivedEventArgs : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE get_CommandApdu(
                        ABI::Windows::Storage::Streams::IBuffer** value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_ConnectionProperties(
                        ABI::Windows::Devices::SmartCards::ISmartCardEmulatorConnectionProperties** value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE TryRespondAsync(
                        ABI::Windows::Storage::Streams::IBuffer* responseApdu,
                        __FIAsyncOperation_1_boolean** result
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_AutomaticResponseStatus(
                        ABI::Windows::Devices::SmartCards::SmartCardAutomaticResponseStatus* value
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardEmulatorApduReceivedEventArgs = __uuidof(ISmartCardEmulatorApduReceivedEventArgs);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardEmulatorApduReceivedEventArgs2
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardEmulatorApduReceivedEventArgs
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs2_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs2_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardEmulatorApduReceivedEventArgs2[] = L"Windows.Devices.SmartCards.ISmartCardEmulatorApduReceivedEventArgs2";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("8bf93df0-22e1-4238-8610-94ce4a965425")
                ISmartCardEmulatorApduReceivedEventArgs2 : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE get_State(
                        UINT32* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE TryRespondWithStateAsync(
                        ABI::Windows::Storage::Streams::IBuffer* responseApdu,
                        __FIReference_1_UINT32* nextState,
                        __FIAsyncOperation_1_boolean** result
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardEmulatorApduReceivedEventArgs2 = __uuidof(ISmartCardEmulatorApduReceivedEventArgs2);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs2;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs2_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardEmulatorApduReceivedEventArgsWithCryptograms
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardEmulatorApduReceivedEventArgs
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsWithCryptograms_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsWithCryptograms_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardEmulatorApduReceivedEventArgsWithCryptograms[] = L"Windows.Devices.SmartCards.ISmartCardEmulatorApduReceivedEventArgsWithCryptograms";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("d550bac7-b7bf-4e29-9294-0c4ac3c941bd")
                ISmartCardEmulatorApduReceivedEventArgsWithCryptograms : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE TryRespondWithCryptogramsAsync(
                        ABI::Windows::Storage::Streams::IBuffer* responseTemplate,
                        __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep* cryptogramPlacementSteps,
                        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus** result
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE TryRespondWithCryptogramsAndStateAsync(
                        ABI::Windows::Storage::Streams::IBuffer* responseTemplate,
                        __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep* cryptogramPlacementSteps,
                        __FIReference_1_UINT32* nextState,
                        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus** result
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardEmulatorApduReceivedEventArgsWithCryptograms = __uuidof(ISmartCardEmulatorApduReceivedEventArgsWithCryptograms);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsWithCryptograms;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsWithCryptograms_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardEmulatorConnectionDeactivatedEventArgs
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardEmulatorConnectionDeactivatedEventArgs
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionDeactivatedEventArgs_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionDeactivatedEventArgs_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardEmulatorConnectionDeactivatedEventArgs[] = L"Windows.Devices.SmartCards.ISmartCardEmulatorConnectionDeactivatedEventArgs";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("2186d8d3-c5eb-5262-43df-62a0a1b55557")
                ISmartCardEmulatorConnectionDeactivatedEventArgs : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE get_ConnectionProperties(
                        ABI::Windows::Devices::SmartCards::ISmartCardEmulatorConnectionProperties** value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_Reason(
                        ABI::Windows::Devices::SmartCards::SmartCardEmulatorConnectionDeactivatedReason* value
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardEmulatorConnectionDeactivatedEventArgs = __uuidof(ISmartCardEmulatorConnectionDeactivatedEventArgs);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionDeactivatedEventArgs;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionDeactivatedEventArgs_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardEmulatorConnectionProperties
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardEmulatorConnectionProperties
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionProperties_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionProperties_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardEmulatorConnectionProperties[] = L"Windows.Devices.SmartCards.ISmartCardEmulatorConnectionProperties";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("4e2ca5ee-f969-507d-6cf9-34e2d18df311")
                ISmartCardEmulatorConnectionProperties : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE get_Id(
                        GUID* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_Source(
                        ABI::Windows::Devices::SmartCards::SmartCardEmulatorConnectionSource* value
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardEmulatorConnectionProperties = __uuidof(ISmartCardEmulatorConnectionProperties);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionProperties;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionProperties_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardEmulatorStatics
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardEmulator
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardEmulatorStatics[] = L"Windows.Devices.SmartCards.ISmartCardEmulatorStatics";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("7a9bfc4b-c4d3-494f-b8a2-6215d81e85b2")
                ISmartCardEmulatorStatics : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE GetDefaultAsync(
                        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardEmulator** result
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardEmulatorStatics = __uuidof(ISmartCardEmulatorStatics);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardEmulatorStatics2
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardEmulator
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardEmulatorStatics2[] = L"Windows.Devices.SmartCards.ISmartCardEmulatorStatics2";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("69ae9f8a-b775-488b-8436-6c1e28ed731f")
                ISmartCardEmulatorStatics2 : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE GetAppletIdGroupRegistrationsAsync(
                        __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration** result
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE RegisterAppletIdGroupAsync(
                        ABI::Windows::Devices::SmartCards::ISmartCardAppletIdGroup* appletIdGroup,
                        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration** result
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE UnregisterAppletIdGroupAsync(
                        ABI::Windows::Devices::SmartCards::ISmartCardAppletIdGroupRegistration* registration,
                        ABI::Windows::Foundation::IAsyncAction** result
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_MaxAppletIdGroupRegistrations(
                        UINT16* value
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardEmulatorStatics2 = __uuidof(ISmartCardEmulatorStatics2);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardEmulatorStatics3
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 5.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardEmulator
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x50000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics3_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics3_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardEmulatorStatics3[] = L"Windows.Devices.SmartCards.ISmartCardEmulatorStatics3";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("59ea142a-9f09-43f5-8565-cfa8148e4cb2")
                ISmartCardEmulatorStatics3 : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE IsSupported(
                        boolean* result
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardEmulatorStatics3 = __uuidof(ISmartCardEmulatorStatics3);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics3;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics3_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x50000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardPinPolicy
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardPinPolicy
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardPinPolicy[] = L"Windows.Devices.SmartCards.ISmartCardPinPolicy";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("183ce184-4db6-4841-ac9e-2ac1f39b7304")
                ISmartCardPinPolicy : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE get_MinLength(
                        UINT32* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE put_MinLength(
                        UINT32 value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_MaxLength(
                        UINT32* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE put_MaxLength(
                        UINT32 value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_UppercaseLetters(
                        ABI::Windows::Devices::SmartCards::SmartCardPinCharacterPolicyOption* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE put_UppercaseLetters(
                        ABI::Windows::Devices::SmartCards::SmartCardPinCharacterPolicyOption value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_LowercaseLetters(
                        ABI::Windows::Devices::SmartCards::SmartCardPinCharacterPolicyOption* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE put_LowercaseLetters(
                        ABI::Windows::Devices::SmartCards::SmartCardPinCharacterPolicyOption value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_Digits(
                        ABI::Windows::Devices::SmartCards::SmartCardPinCharacterPolicyOption* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE put_Digits(
                        ABI::Windows::Devices::SmartCards::SmartCardPinCharacterPolicyOption value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_SpecialCharacters(
                        ABI::Windows::Devices::SmartCards::SmartCardPinCharacterPolicyOption* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE put_SpecialCharacters(
                        ABI::Windows::Devices::SmartCards::SmartCardPinCharacterPolicyOption value
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardPinPolicy = __uuidof(ISmartCardPinPolicy);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy_INTERFACE_DEFINED__) */
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardPinResetDeferral
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardPinResetDeferral
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetDeferral_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetDeferral_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardPinResetDeferral[] = L"Windows.Devices.SmartCards.ISmartCardPinResetDeferral";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("18c94aac-7805-4004-85e4-bbefac8f6884")
                ISmartCardPinResetDeferral : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE Complete(void) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardPinResetDeferral = __uuidof(ISmartCardPinResetDeferral);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetDeferral;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetDeferral_INTERFACE_DEFINED__) */
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardPinResetRequest
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardPinResetRequest
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequest_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequest_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardPinResetRequest[] = L"Windows.Devices.SmartCards.ISmartCardPinResetRequest";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("12fe3c4d-5fb9-4e8e-9ff6-61f475124fef")
                ISmartCardPinResetRequest : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE get_Challenge(
                        ABI::Windows::Storage::Streams::IBuffer** value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_Deadline(
                        ABI::Windows::Foundation::DateTime* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE GetDeferral(
                        ABI::Windows::Devices::SmartCards::ISmartCardPinResetDeferral** result
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE SetResponse(
                        ABI::Windows::Storage::Streams::IBuffer* response
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardPinResetRequest = __uuidof(ISmartCardPinResetRequest);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequest;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequest_INTERFACE_DEFINED__) */
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardProvisioning
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardProvisioning
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardProvisioning[] = L"Windows.Devices.SmartCards.ISmartCardProvisioning";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("19eeedbd-1fab-477c-b712-1a2c5af1fd6e")
                ISmartCardProvisioning : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE get_SmartCard(
                        ABI::Windows::Devices::SmartCards::ISmartCard** value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE GetIdAsync(
                        __FIAsyncOperation_1_GUID** result
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE GetNameAsync(
                        __FIAsyncOperation_1_HSTRING** result
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE GetChallengeContextAsync(
                        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext** result
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE RequestPinChangeAsync(
                        __FIAsyncOperation_1_boolean** result
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE RequestPinResetAsync(
                        ABI::Windows::Devices::SmartCards::ISmartCardPinResetHandler* handler,
                        __FIAsyncOperation_1_boolean** result
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardProvisioning = __uuidof(ISmartCardProvisioning);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning_INTERFACE_DEFINED__) */
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardProvisioning2
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardProvisioning
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning2_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning2_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardProvisioning2[] = L"Windows.Devices.SmartCards.ISmartCardProvisioning2";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("10fd28eb-3f79-4b66-9b7c-11c149b7d0bc")
                ISmartCardProvisioning2 : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE GetAuthorityKeyContainerNameAsync(
                        __FIAsyncOperation_1_HSTRING** result
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardProvisioning2 = __uuidof(ISmartCardProvisioning2);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning2;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning2_INTERFACE_DEFINED__) */
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardProvisioningStatics
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardProvisioning
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardProvisioningStatics[] = L"Windows.Devices.SmartCards.ISmartCardProvisioningStatics";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("13882848-0d13-4e70-9735-51daeca5254f")
                ISmartCardProvisioningStatics : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE FromSmartCardAsync(
                        ABI::Windows::Devices::SmartCards::ISmartCard* card,
                        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning** result
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE RequestVirtualSmartCardCreationAsync(
                        HSTRING friendlyName,
                        ABI::Windows::Storage::Streams::IBuffer* administrativeKey,
                        ABI::Windows::Devices::SmartCards::ISmartCardPinPolicy* pinPolicy,
                        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning** result
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE RequestVirtualSmartCardCreationAsyncWithCardId(
                        HSTRING friendlyName,
                        ABI::Windows::Storage::Streams::IBuffer* administrativeKey,
                        ABI::Windows::Devices::SmartCards::ISmartCardPinPolicy* pinPolicy,
                        GUID cardId,
                        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning** result
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE RequestVirtualSmartCardDeletionAsync(
                        ABI::Windows::Devices::SmartCards::ISmartCard* card,
                        __FIAsyncOperation_1_boolean** result
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardProvisioningStatics = __uuidof(ISmartCardProvisioningStatics);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics_INTERFACE_DEFINED__) */
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardProvisioningStatics2
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardProvisioning
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics2_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics2_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardProvisioningStatics2[] = L"Windows.Devices.SmartCards.ISmartCardProvisioningStatics2";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("3447c6a8-c9a0-4bd6-b50d-251f4e8d3a62")
                ISmartCardProvisioningStatics2 : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE RequestAttestedVirtualSmartCardCreationAsync(
                        HSTRING friendlyName,
                        ABI::Windows::Storage::Streams::IBuffer* administrativeKey,
                        ABI::Windows::Devices::SmartCards::ISmartCardPinPolicy* pinPolicy,
                        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning** result
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE RequestAttestedVirtualSmartCardCreationAsyncWithCardId(
                        HSTRING friendlyName,
                        ABI::Windows::Storage::Streams::IBuffer* administrativeKey,
                        ABI::Windows::Devices::SmartCards::ISmartCardPinPolicy* pinPolicy,
                        GUID cardId,
                        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning** result
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardProvisioningStatics2 = __uuidof(ISmartCardProvisioningStatics2);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics2;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics2_INTERFACE_DEFINED__) */
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardReader
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardReader
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardReader[] = L"Windows.Devices.SmartCards.ISmartCardReader";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("1074b4e0-54c2-4df0-817a-14c14378f06c")
                ISmartCardReader : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE get_DeviceId(
                        HSTRING* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_Name(
                        HSTRING* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_Kind(
                        ABI::Windows::Devices::SmartCards::SmartCardReaderKind* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE GetStatusAsync(
                        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus** result
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE FindAllCardsAsync(
                        __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard** result
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE add_CardAdded(
                        __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardAddedEventArgs* handler,
                        EventRegistrationToken* token
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE remove_CardAdded(
                        EventRegistrationToken token
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE add_CardRemoved(
                        __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardRemovedEventArgs* handler,
                        EventRegistrationToken* token
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE remove_CardRemoved(
                        EventRegistrationToken token
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardReader = __uuidof(ISmartCardReader);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader_INTERFACE_DEFINED__) */
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardReaderStatics
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardReader
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderStatics_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderStatics_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardReaderStatics[] = L"Windows.Devices.SmartCards.ISmartCardReaderStatics";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("103c04e1-a1ca-48f2-a281-5b6f669af107")
                ISmartCardReaderStatics : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE GetDeviceSelector(
                        HSTRING* selector
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE GetDeviceSelectorWithKind(
                        ABI::Windows::Devices::SmartCards::SmartCardReaderKind kind,
                        HSTRING* selector
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE FromIdAsync(
                        HSTRING deviceId,
                        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReader** result
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardReaderStatics = __uuidof(ISmartCardReaderStatics);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderStatics;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderStatics_INTERFACE_DEFINED__) */
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardTriggerDetails
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardBackgroundTriggerContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardTriggerDetails
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDBACKGROUNDTRIGGERCONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardTriggerDetails[] = L"Windows.Devices.SmartCards.ISmartCardTriggerDetails";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("5f9bf11e-39ef-4f2b-b44f-0a9155b177bc")
                ISmartCardTriggerDetails : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE get_TriggerType(
                        ABI::Windows::Devices::SmartCards::SmartCardTriggerType* value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_SourceAppletId(
                        ABI::Windows::Storage::Streams::IBuffer** value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE get_TriggerData(
                        ABI::Windows::Storage::Streams::IBuffer** value
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardTriggerDetails = __uuidof(ISmartCardTriggerDetails);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDBACKGROUNDTRIGGERCONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardTriggerDetails2
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardBackgroundTriggerContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardTriggerDetails
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDBACKGROUNDTRIGGERCONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails2_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails2_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardTriggerDetails2[] = L"Windows.Devices.SmartCards.ISmartCardTriggerDetails2";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("2945c569-8975-4a51-9e1a-5f8a76ee51af")
                ISmartCardTriggerDetails2 : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE get_Emulator(
                        ABI::Windows::Devices::SmartCards::ISmartCardEmulator** value
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE TryLaunchCurrentAppAsync(
                        HSTRING arguments,
                        __FIAsyncOperation_1_boolean** result
                        ) = 0;
                    virtual HRESULT STDMETHODCALLTYPE TryLaunchCurrentAppWithBehaviorAsync(
                        HSTRING arguments,
                        ABI::Windows::Devices::SmartCards::SmartCardLaunchBehavior behavior,
                        __FIAsyncOperation_1_boolean** result
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardTriggerDetails2 = __uuidof(ISmartCardTriggerDetails2);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails2;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails2_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDBACKGROUNDTRIGGERCONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardTriggerDetails3
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardBackgroundTriggerContract in version 3.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardTriggerDetails
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDBACKGROUNDTRIGGERCONTRACT_VERSION >= 0x30000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails3_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails3_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardTriggerDetails3[] = L"Windows.Devices.SmartCards.ISmartCardTriggerDetails3";
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace SmartCards {
                MIDL_INTERFACE("b3e2c27d-18c6-4ba8-8376-ef03d4912666")
                ISmartCardTriggerDetails3 : public IInspectable
                {
                public:
                    virtual HRESULT STDMETHODCALLTYPE get_SmartCard(
                        ABI::Windows::Devices::SmartCards::ISmartCard** value
                        ) = 0;
                };

                MIDL_CONST_ID IID& IID_ISmartCardTriggerDetails3 = __uuidof(ISmartCardTriggerDetails3);
            } /* SmartCards */
        } /* Devices */
    } /* Windows */
} /* ABI */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails3;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails3_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDBACKGROUNDTRIGGERCONTRACT_VERSION >= 0x30000

/*
 *
 * Class Windows.Devices.SmartCards.CardAddedEventArgs
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ICardAddedEventArgs ** Default Interface **
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_CardAddedEventArgs_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_CardAddedEventArgs_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_CardAddedEventArgs[] = L"Windows.Devices.SmartCards.CardAddedEventArgs";
#endif
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Class Windows.Devices.SmartCards.CardRemovedEventArgs
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ICardRemovedEventArgs ** Default Interface **
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_CardRemovedEventArgs_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_CardRemovedEventArgs_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_CardRemovedEventArgs[] = L"Windows.Devices.SmartCards.CardRemovedEventArgs";
#endif
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Class Windows.Devices.SmartCards.KnownSmartCardAppletIds
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 6.0
 *
 * RuntimeClass contains static methods.
 *   Static Methods exist on the Windows.Devices.SmartCards.IKnownSmartCardAppletIds interface starting with version 6.0 of the Windows.Devices.SmartCards.SmartCardEmulatorContract API contract
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x60000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_KnownSmartCardAppletIds_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_KnownSmartCardAppletIds_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_KnownSmartCardAppletIds[] = L"Windows.Devices.SmartCards.KnownSmartCardAppletIds";
#endif
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x60000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCard
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCard ** Default Interface **
 *    Windows.Devices.SmartCards.ISmartCardConnect
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCard_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCard_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCard[] = L"Windows.Devices.SmartCards.SmartCard";
#endif
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardAppletIdGroup
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * RuntimeClass can be activated.
 *   Type can be activated via RoActivateInstance starting with version 1.0 of the Windows.Devices.SmartCards.SmartCardEmulatorContract API contract
 *   Type can be activated via the Windows.Devices.SmartCards.ISmartCardAppletIdGroupFactory interface starting with version 1.0 of the Windows.Devices.SmartCards.SmartCardEmulatorContract API contract
 *
 * RuntimeClass contains static methods.
 *   Static Methods exist on the Windows.Devices.SmartCards.ISmartCardAppletIdGroupStatics interface starting with version 1.0 of the Windows.Devices.SmartCards.SmartCardEmulatorContract API contract
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardAppletIdGroup ** Default Interface **
 *    Windows.Devices.SmartCards.ISmartCardAppletIdGroup2
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardAppletIdGroup_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardAppletIdGroup_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardAppletIdGroup[] = L"Windows.Devices.SmartCards.SmartCardAppletIdGroup";
#endif
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardAppletIdGroupRegistration
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardAppletIdGroupRegistration ** Default Interface **
 *    Windows.Devices.SmartCards.ISmartCardAppletIdGroupRegistration2
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardAppletIdGroupRegistration_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardAppletIdGroupRegistration_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardAppletIdGroupRegistration[] = L"Windows.Devices.SmartCards.SmartCardAppletIdGroupRegistration";
#endif
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardAutomaticResponseApdu
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * RuntimeClass can be activated.
 *   Type can be activated via the Windows.Devices.SmartCards.ISmartCardAutomaticResponseApduFactory interface starting with version 1.0 of the Windows.Devices.SmartCards.SmartCardEmulatorContract API contract
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardAutomaticResponseApdu ** Default Interface **
 *    Windows.Devices.SmartCards.ISmartCardAutomaticResponseApdu2
 *    Windows.Devices.SmartCards.ISmartCardAutomaticResponseApdu3
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardAutomaticResponseApdu_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardAutomaticResponseApdu_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardAutomaticResponseApdu[] = L"Windows.Devices.SmartCards.SmartCardAutomaticResponseApdu";
#endif
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardChallengeContext
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardChallengeContext ** Default Interface **
 *    Windows.Foundation.IClosable
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardChallengeContext_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardChallengeContext_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardChallengeContext[] = L"Windows.Devices.SmartCards.SmartCardChallengeContext";
#endif
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardConnection
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardConnection ** Default Interface **
 *    Windows.Foundation.IClosable
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardConnection_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardConnection_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardConnection[] = L"Windows.Devices.SmartCards.SmartCardConnection";
#endif
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardCryptogramGenerator
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 * RuntimeClass contains static methods.
 *   Static Methods exist on the Windows.Devices.SmartCards.ISmartCardCryptogramGeneratorStatics interface starting with version 2.0 of the Windows.Devices.SmartCards.SmartCardEmulatorContract API contract
 *   Static Methods exist on the Windows.Devices.SmartCards.ISmartCardCryptogramGeneratorStatics2 interface starting with version 5.0 of the Windows.Devices.SmartCards.SmartCardEmulatorContract API contract
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardCryptogramGenerator ** Default Interface **
 *    Windows.Devices.SmartCards.ISmartCardCryptogramGenerator2
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramGenerator_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramGenerator_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardCryptogramGenerator[] = L"Windows.Devices.SmartCards.SmartCardCryptogramGenerator";
#endif
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 4.0
 *
 * RuntimeClass can be activated.
 *   Type can be activated via RoActivateInstance starting with version 4.0 of the Windows.Devices.SmartCards.SmartCardEmulatorContract API contract
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult ** Default Interface **
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult[] = L"Windows.Devices.SmartCards.SmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult";
#endif
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 4.0
 *
 * RuntimeClass can be activated.
 *   Type can be activated via RoActivateInstance starting with version 4.0 of the Windows.Devices.SmartCards.SmartCardEmulatorContract API contract
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult ** Default Interface **
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult[] = L"Windows.Devices.SmartCards.SmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult";
#endif
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 4.0
 *
 * RuntimeClass can be activated.
 *   Type can be activated via RoActivateInstance starting with version 4.0 of the Windows.Devices.SmartCards.SmartCardEmulatorContract API contract
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult ** Default Interface **
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult[] = L"Windows.Devices.SmartCards.SmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult";
#endif
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardCryptogramMaterialCharacteristics
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 4.0
 *
 * RuntimeClass can be activated.
 *   Type can be activated via RoActivateInstance starting with version 4.0 of the Windows.Devices.SmartCards.SmartCardEmulatorContract API contract
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardCryptogramMaterialCharacteristics ** Default Interface **
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramMaterialCharacteristics_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramMaterialCharacteristics_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardCryptogramMaterialCharacteristics[] = L"Windows.Devices.SmartCards.SmartCardCryptogramMaterialCharacteristics";
#endif
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardCryptogramMaterialPackageCharacteristics
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 4.0
 *
 * RuntimeClass can be activated.
 *   Type can be activated via RoActivateInstance starting with version 4.0 of the Windows.Devices.SmartCards.SmartCardEmulatorContract API contract
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardCryptogramMaterialPackageCharacteristics ** Default Interface **
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramMaterialPackageCharacteristics_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramMaterialPackageCharacteristics_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardCryptogramMaterialPackageCharacteristics[] = L"Windows.Devices.SmartCards.SmartCardCryptogramMaterialPackageCharacteristics";
#endif
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardCryptogramMaterialPossessionProof
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardCryptogramMaterialPossessionProof ** Default Interface **
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramMaterialPossessionProof_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramMaterialPossessionProof_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardCryptogramMaterialPossessionProof[] = L"Windows.Devices.SmartCards.SmartCardCryptogramMaterialPossessionProof";
#endif
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardCryptogramPlacementStep
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 * RuntimeClass can be activated.
 *   Type can be activated via RoActivateInstance starting with version 2.0 of the Windows.Devices.SmartCards.SmartCardEmulatorContract API contract
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardCryptogramPlacementStep ** Default Interface **
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramPlacementStep_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramPlacementStep_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardCryptogramPlacementStep[] = L"Windows.Devices.SmartCards.SmartCardCryptogramPlacementStep";
#endif
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyCharacteristics
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 4.0
 *
 * RuntimeClass can be activated.
 *   Type can be activated via RoActivateInstance starting with version 4.0 of the Windows.Devices.SmartCards.SmartCardEmulatorContract API contract
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardCryptogramStorageKeyCharacteristics ** Default Interface **
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramStorageKeyCharacteristics_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramStorageKeyCharacteristics_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardCryptogramStorageKeyCharacteristics[] = L"Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyCharacteristics";
#endif
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyInfo
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardCryptogramStorageKeyInfo ** Default Interface **
 *    Windows.Devices.SmartCards.ISmartCardCryptogramStorageKeyInfo2
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramStorageKeyInfo_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramStorageKeyInfo_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardCryptogramStorageKeyInfo[] = L"Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyInfo";
#endif
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardEmulator
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * RuntimeClass contains static methods.
 *   Static Methods exist on the Windows.Devices.SmartCards.ISmartCardEmulatorStatics interface starting with version 1.0 of the Windows.Devices.SmartCards.SmartCardEmulatorContract API contract
 *   Static Methods exist on the Windows.Devices.SmartCards.ISmartCardEmulatorStatics3 interface starting with version 5.0 of the Windows.Devices.SmartCards.SmartCardEmulatorContract API contract
 *   Static Methods exist on the Windows.Devices.SmartCards.ISmartCardEmulatorStatics2 interface starting with version 1.0 of the Windows.Devices.SmartCards.SmartCardEmulatorContract API contract
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardEmulator ** Default Interface **
 *    Windows.Devices.SmartCards.ISmartCardEmulator2
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardEmulator_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardEmulator_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardEmulator[] = L"Windows.Devices.SmartCards.SmartCardEmulator";
#endif
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardEmulatorApduReceivedEventArgs
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardEmulatorApduReceivedEventArgs ** Default Interface **
 *    Windows.Devices.SmartCards.ISmartCardEmulatorApduReceivedEventArgsWithCryptograms
 *    Windows.Devices.SmartCards.ISmartCardEmulatorApduReceivedEventArgs2
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardEmulatorApduReceivedEventArgs_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardEmulatorApduReceivedEventArgs_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardEmulatorApduReceivedEventArgs[] = L"Windows.Devices.SmartCards.SmartCardEmulatorApduReceivedEventArgs";
#endif
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardEmulatorConnectionDeactivatedEventArgs
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardEmulatorConnectionDeactivatedEventArgs ** Default Interface **
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardEmulatorConnectionDeactivatedEventArgs_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardEmulatorConnectionDeactivatedEventArgs_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardEmulatorConnectionDeactivatedEventArgs[] = L"Windows.Devices.SmartCards.SmartCardEmulatorConnectionDeactivatedEventArgs";
#endif
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardEmulatorConnectionProperties
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardEmulatorConnectionProperties ** Default Interface **
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardEmulatorConnectionProperties_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardEmulatorConnectionProperties_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardEmulatorConnectionProperties[] = L"Windows.Devices.SmartCards.SmartCardEmulatorConnectionProperties";
#endif
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardPinPolicy
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * RuntimeClass can be activated.
 *   Type can be activated via RoActivateInstance starting with version 1.0 of the Windows.Foundation.UniversalApiContract API contract
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardPinPolicy ** Default Interface **
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardPinPolicy_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardPinPolicy_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardPinPolicy[] = L"Windows.Devices.SmartCards.SmartCardPinPolicy";
#endif
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardPinResetDeferral
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardPinResetDeferral ** Default Interface **
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardPinResetDeferral_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardPinResetDeferral_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardPinResetDeferral[] = L"Windows.Devices.SmartCards.SmartCardPinResetDeferral";
#endif
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardPinResetRequest
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardPinResetRequest ** Default Interface **
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardPinResetRequest_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardPinResetRequest_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardPinResetRequest[] = L"Windows.Devices.SmartCards.SmartCardPinResetRequest";
#endif
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardProvisioning
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * RuntimeClass contains static methods.
 *   Static Methods exist on the Windows.Devices.SmartCards.ISmartCardProvisioningStatics interface starting with version 1.0 of the Windows.Foundation.UniversalApiContract API contract
 *   Static Methods exist on the Windows.Devices.SmartCards.ISmartCardProvisioningStatics2 interface starting with version 1.0 of the Windows.Foundation.UniversalApiContract API contract
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardProvisioning ** Default Interface **
 *    Windows.Devices.SmartCards.ISmartCardProvisioning2
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardProvisioning_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardProvisioning_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardProvisioning[] = L"Windows.Devices.SmartCards.SmartCardProvisioning";
#endif
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardReader
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * RuntimeClass contains static methods.
 *   Static Methods exist on the Windows.Devices.SmartCards.ISmartCardReaderStatics interface starting with version 1.0 of the Windows.Foundation.UniversalApiContract API contract
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardReader ** Default Interface **
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardReader_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardReader_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardReader[] = L"Windows.Devices.SmartCards.SmartCardReader";
#endif
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardTriggerDetails
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardBackgroundTriggerContract in version 1.0
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardTriggerDetails ** Default Interface **
 *    Windows.Devices.SmartCards.ISmartCardTriggerDetails2
 *    Windows.Devices.SmartCards.ISmartCardTriggerDetails3
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDBACKGROUNDTRIGGERCONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardTriggerDetails_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardTriggerDetails_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardTriggerDetails[] = L"Windows.Devices.SmartCards.SmartCardTriggerDetails";
#endif
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDBACKGROUNDTRIGGERCONTRACT_VERSION >= 0x10000

#else // !defined(__cplusplus)
/* Forward Declarations */
#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetHandler_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetHandler_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetHandler __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetHandler;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetHandler_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CICardAddedEventArgs_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CICardAddedEventArgs_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CICardAddedEventArgs __x_ABI_CWindows_CDevices_CSmartCards_CICardAddedEventArgs;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CICardAddedEventArgs_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CICardRemovedEventArgs_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CICardRemovedEventArgs_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CICardRemovedEventArgs __x_ABI_CWindows_CDevices_CSmartCards_CICardRemovedEventArgs;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CICardRemovedEventArgs_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CIKnownSmartCardAppletIds_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CIKnownSmartCardAppletIds_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CIKnownSmartCardAppletIds __x_ABI_CWindows_CDevices_CSmartCards_CIKnownSmartCardAppletIds;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CIKnownSmartCardAppletIds_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCard_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCard_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCard __x_ABI_CWindows_CDevices_CSmartCards_CISmartCard;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCard_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2 __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupFactory_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupFactory_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupFactory __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupFactory;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupFactory_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration2_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration2_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration2 __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration2;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration2_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupStatics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupStatics __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupStatics;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupStatics_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2 __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu3_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu3_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu3 __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu3;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu3_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApduFactory_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApduFactory_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApduFactory __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApduFactory;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApduFactory_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnect_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnect_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnect __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnect;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnect_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnection_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnection_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnection __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnection;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnection_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2 __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics2_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics2_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics2 __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics2;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics2_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPossessionProof_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPossessionProof_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPossessionProof __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPossessionProof;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPossessionProof_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo2_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo2_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo2 __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo2;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo2_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2 __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs2_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs2_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs2 __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs2;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs2_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsWithCryptograms_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsWithCryptograms_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsWithCryptograms __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsWithCryptograms;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsWithCryptograms_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionDeactivatedEventArgs_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionDeactivatedEventArgs_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionDeactivatedEventArgs __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionDeactivatedEventArgs;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionDeactivatedEventArgs_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionProperties_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionProperties_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionProperties __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionProperties;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionProperties_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2 __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics3_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics3_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics3 __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics3;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics3_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetDeferral_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetDeferral_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetDeferral __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetDeferral;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetDeferral_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequest_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequest_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequest __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequest;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequest_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning2_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning2_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning2 __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning2;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning2_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics2_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics2_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics2 __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics2;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics2_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderStatics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderStatics __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderStatics;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderStatics_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails2_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails2_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails2 __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails2;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails2_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails3_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails3_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails3 __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails3;

#endif // ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails3_FWD_DEFINED__

// Parameterized interface forward declarations (C)

// Collection interface definitions

typedef interface __FIAsyncOperationCompletedHandler_1_boolean __FIAsyncOperationCompletedHandler_1_boolean;

#if !defined(____FIAsyncOperation_1_boolean_INTERFACE_DEFINED__)
#define ____FIAsyncOperation_1_boolean_INTERFACE_DEFINED__

typedef interface __FIAsyncOperation_1_boolean __FIAsyncOperation_1_boolean;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperation_1_boolean;

typedef struct __FIAsyncOperation_1_booleanVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperation_1_boolean* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperation_1_boolean* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperation_1_boolean* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIAsyncOperation_1_boolean* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIAsyncOperation_1_boolean* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIAsyncOperation_1_boolean* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* put_Completed)(__FIAsyncOperation_1_boolean* This,
        __FIAsyncOperationCompletedHandler_1_boolean* handler);
    HRESULT (STDMETHODCALLTYPE* get_Completed)(__FIAsyncOperation_1_boolean* This,
        __FIAsyncOperationCompletedHandler_1_boolean** result);
    HRESULT (STDMETHODCALLTYPE* GetResults)(__FIAsyncOperation_1_boolean* This,
        boolean* result);

    END_INTERFACE
} __FIAsyncOperation_1_booleanVtbl;

interface __FIAsyncOperation_1_boolean
{
    CONST_VTBL struct __FIAsyncOperation_1_booleanVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperation_1_boolean_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperation_1_boolean_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperation_1_boolean_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperation_1_boolean_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIAsyncOperation_1_boolean_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIAsyncOperation_1_boolean_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIAsyncOperation_1_boolean_put_Completed(This, handler) \
    ((This)->lpVtbl->put_Completed(This, handler))

#define __FIAsyncOperation_1_boolean_get_Completed(This, result) \
    ((This)->lpVtbl->get_Completed(This, result))

#define __FIAsyncOperation_1_boolean_GetResults(This, result) \
    ((This)->lpVtbl->GetResults(This, result))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperation_1_boolean_INTERFACE_DEFINED__

#if !defined(____FIAsyncOperationCompletedHandler_1_boolean_INTERFACE_DEFINED__)
#define ____FIAsyncOperationCompletedHandler_1_boolean_INTERFACE_DEFINED__

typedef interface __FIAsyncOperationCompletedHandler_1_boolean __FIAsyncOperationCompletedHandler_1_boolean;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperationCompletedHandler_1_boolean;

typedef struct __FIAsyncOperationCompletedHandler_1_booleanVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperationCompletedHandler_1_boolean* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperationCompletedHandler_1_boolean* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperationCompletedHandler_1_boolean* This);
    HRESULT (STDMETHODCALLTYPE* Invoke)(__FIAsyncOperationCompletedHandler_1_boolean* This,
        __FIAsyncOperation_1_boolean* asyncInfo,
        AsyncStatus asyncStatus);

    END_INTERFACE
} __FIAsyncOperationCompletedHandler_1_booleanVtbl;

interface __FIAsyncOperationCompletedHandler_1_boolean
{
    CONST_VTBL struct __FIAsyncOperationCompletedHandler_1_booleanVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperationCompletedHandler_1_boolean_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperationCompletedHandler_1_boolean_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperationCompletedHandler_1_boolean_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperationCompletedHandler_1_boolean_Invoke(This, asyncInfo, asyncStatus) \
    ((This)->lpVtbl->Invoke(This, asyncInfo, asyncStatus))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperationCompletedHandler_1_boolean_INTERFACE_DEFINED__

typedef interface __FIAsyncOperationCompletedHandler_1_GUID __FIAsyncOperationCompletedHandler_1_GUID;

#if !defined(____FIAsyncOperation_1_GUID_INTERFACE_DEFINED__)
#define ____FIAsyncOperation_1_GUID_INTERFACE_DEFINED__

typedef interface __FIAsyncOperation_1_GUID __FIAsyncOperation_1_GUID;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperation_1_GUID;

typedef struct __FIAsyncOperation_1_GUIDVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperation_1_GUID* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperation_1_GUID* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperation_1_GUID* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIAsyncOperation_1_GUID* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIAsyncOperation_1_GUID* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIAsyncOperation_1_GUID* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* put_Completed)(__FIAsyncOperation_1_GUID* This,
        __FIAsyncOperationCompletedHandler_1_GUID* handler);
    HRESULT (STDMETHODCALLTYPE* get_Completed)(__FIAsyncOperation_1_GUID* This,
        __FIAsyncOperationCompletedHandler_1_GUID** result);
    HRESULT (STDMETHODCALLTYPE* GetResults)(__FIAsyncOperation_1_GUID* This,
        GUID* result);

    END_INTERFACE
} __FIAsyncOperation_1_GUIDVtbl;

interface __FIAsyncOperation_1_GUID
{
    CONST_VTBL struct __FIAsyncOperation_1_GUIDVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperation_1_GUID_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperation_1_GUID_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperation_1_GUID_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperation_1_GUID_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIAsyncOperation_1_GUID_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIAsyncOperation_1_GUID_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIAsyncOperation_1_GUID_put_Completed(This, handler) \
    ((This)->lpVtbl->put_Completed(This, handler))

#define __FIAsyncOperation_1_GUID_get_Completed(This, result) \
    ((This)->lpVtbl->get_Completed(This, result))

#define __FIAsyncOperation_1_GUID_GetResults(This, result) \
    ((This)->lpVtbl->GetResults(This, result))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperation_1_GUID_INTERFACE_DEFINED__

#if !defined(____FIAsyncOperationCompletedHandler_1_GUID_INTERFACE_DEFINED__)
#define ____FIAsyncOperationCompletedHandler_1_GUID_INTERFACE_DEFINED__

typedef interface __FIAsyncOperationCompletedHandler_1_GUID __FIAsyncOperationCompletedHandler_1_GUID;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperationCompletedHandler_1_GUID;

typedef struct __FIAsyncOperationCompletedHandler_1_GUIDVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperationCompletedHandler_1_GUID* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperationCompletedHandler_1_GUID* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperationCompletedHandler_1_GUID* This);
    HRESULT (STDMETHODCALLTYPE* Invoke)(__FIAsyncOperationCompletedHandler_1_GUID* This,
        __FIAsyncOperation_1_GUID* asyncInfo,
        AsyncStatus asyncStatus);

    END_INTERFACE
} __FIAsyncOperationCompletedHandler_1_GUIDVtbl;

interface __FIAsyncOperationCompletedHandler_1_GUID
{
    CONST_VTBL struct __FIAsyncOperationCompletedHandler_1_GUIDVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperationCompletedHandler_1_GUID_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperationCompletedHandler_1_GUID_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperationCompletedHandler_1_GUID_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperationCompletedHandler_1_GUID_Invoke(This, asyncInfo, asyncStatus) \
    ((This)->lpVtbl->Invoke(This, asyncInfo, asyncStatus))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperationCompletedHandler_1_GUID_INTERFACE_DEFINED__

typedef interface __FIAsyncOperationCompletedHandler_1_HSTRING __FIAsyncOperationCompletedHandler_1_HSTRING;

#if !defined(____FIAsyncOperation_1_HSTRING_INTERFACE_DEFINED__)
#define ____FIAsyncOperation_1_HSTRING_INTERFACE_DEFINED__

typedef interface __FIAsyncOperation_1_HSTRING __FIAsyncOperation_1_HSTRING;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperation_1_HSTRING;

typedef struct __FIAsyncOperation_1_HSTRINGVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperation_1_HSTRING* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperation_1_HSTRING* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperation_1_HSTRING* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIAsyncOperation_1_HSTRING* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIAsyncOperation_1_HSTRING* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIAsyncOperation_1_HSTRING* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* put_Completed)(__FIAsyncOperation_1_HSTRING* This,
        __FIAsyncOperationCompletedHandler_1_HSTRING* handler);
    HRESULT (STDMETHODCALLTYPE* get_Completed)(__FIAsyncOperation_1_HSTRING* This,
        __FIAsyncOperationCompletedHandler_1_HSTRING** result);
    HRESULT (STDMETHODCALLTYPE* GetResults)(__FIAsyncOperation_1_HSTRING* This,
        HSTRING* result);

    END_INTERFACE
} __FIAsyncOperation_1_HSTRINGVtbl;

interface __FIAsyncOperation_1_HSTRING
{
    CONST_VTBL struct __FIAsyncOperation_1_HSTRINGVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperation_1_HSTRING_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperation_1_HSTRING_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperation_1_HSTRING_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperation_1_HSTRING_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIAsyncOperation_1_HSTRING_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIAsyncOperation_1_HSTRING_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIAsyncOperation_1_HSTRING_put_Completed(This, handler) \
    ((This)->lpVtbl->put_Completed(This, handler))

#define __FIAsyncOperation_1_HSTRING_get_Completed(This, result) \
    ((This)->lpVtbl->get_Completed(This, result))

#define __FIAsyncOperation_1_HSTRING_GetResults(This, result) \
    ((This)->lpVtbl->GetResults(This, result))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperation_1_HSTRING_INTERFACE_DEFINED__

#if !defined(____FIAsyncOperationCompletedHandler_1_HSTRING_INTERFACE_DEFINED__)
#define ____FIAsyncOperationCompletedHandler_1_HSTRING_INTERFACE_DEFINED__

typedef interface __FIAsyncOperationCompletedHandler_1_HSTRING __FIAsyncOperationCompletedHandler_1_HSTRING;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperationCompletedHandler_1_HSTRING;

typedef struct __FIAsyncOperationCompletedHandler_1_HSTRINGVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperationCompletedHandler_1_HSTRING* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperationCompletedHandler_1_HSTRING* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperationCompletedHandler_1_HSTRING* This);
    HRESULT (STDMETHODCALLTYPE* Invoke)(__FIAsyncOperationCompletedHandler_1_HSTRING* This,
        __FIAsyncOperation_1_HSTRING* asyncInfo,
        AsyncStatus asyncStatus);

    END_INTERFACE
} __FIAsyncOperationCompletedHandler_1_HSTRINGVtbl;

interface __FIAsyncOperationCompletedHandler_1_HSTRING
{
    CONST_VTBL struct __FIAsyncOperationCompletedHandler_1_HSTRINGVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperationCompletedHandler_1_HSTRING_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperationCompletedHandler_1_HSTRING_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperationCompletedHandler_1_HSTRING_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperationCompletedHandler_1_HSTRING_Invoke(This, asyncInfo, asyncStatus) \
    ((This)->lpVtbl->Invoke(This, asyncInfo, asyncStatus))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperationCompletedHandler_1_HSTRING_INTERFACE_DEFINED__

typedef enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardActivationPolicyChangeResult __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardActivationPolicyChangeResult;

typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult;

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult_INTERFACE_DEFINED__)
#define ____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult_INTERFACE_DEFINED__

typedef interface __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult;

typedef struct __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResultVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* put_Completed)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult* This,
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult* handler);
    HRESULT (STDMETHODCALLTYPE* get_Completed)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult* This,
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult** result);
    HRESULT (STDMETHODCALLTYPE* GetResults)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardActivationPolicyChangeResult* result);

    END_INTERFACE
} __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResultVtbl;

interface __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult
{
    CONST_VTBL struct __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResultVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult_put_Completed(This, handler) \
    ((This)->lpVtbl->put_Completed(This, handler))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult_get_Completed(This, result) \
    ((This)->lpVtbl->get_Completed(This, result))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult_GetResults(This, result) \
    ((This)->lpVtbl->GetResults(This, result))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult_INTERFACE_DEFINED__)
#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult_INTERFACE_DEFINED__

typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult;

typedef struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResultVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult* This);
    HRESULT (STDMETHODCALLTYPE* Invoke)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult* This,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult* asyncInfo,
        AsyncStatus asyncStatus);

    END_INTERFACE
} __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResultVtbl;

interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult
{
    CONST_VTBL struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResultVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult_Invoke(This, asyncInfo, asyncStatus) \
    ((This)->lpVtbl->Invoke(This, asyncInfo, asyncStatus))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration;

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_INTERFACE_DEFINED__)
#define ____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_INTERFACE_DEFINED__

typedef interface __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration;

typedef struct __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistrationVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* put_Completed)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This,
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* handler);
    HRESULT (STDMETHODCALLTYPE* get_Completed)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This,
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration** result);
    HRESULT (STDMETHODCALLTYPE* GetResults)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration** result);

    END_INTERFACE
} __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistrationVtbl;

interface __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration
{
    CONST_VTBL struct __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistrationVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_put_Completed(This, handler) \
    ((This)->lpVtbl->put_Completed(This, handler))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_get_Completed(This, result) \
    ((This)->lpVtbl->get_Completed(This, result))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_GetResults(This, result) \
    ((This)->lpVtbl->GetResults(This, result))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_INTERFACE_DEFINED__)
#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_INTERFACE_DEFINED__

typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration;

typedef struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistrationVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This);
    HRESULT (STDMETHODCALLTYPE* Invoke)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* asyncInfo,
        AsyncStatus asyncStatus);

    END_INTERFACE
} __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistrationVtbl;

interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration
{
    CONST_VTBL struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistrationVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_Invoke(This, asyncInfo, asyncStatus) \
    ((This)->lpVtbl->Invoke(This, asyncInfo, asyncStatus))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext;

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext_INTERFACE_DEFINED__)
#define ____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext_INTERFACE_DEFINED__

typedef interface __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext;

typedef struct __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContextVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* put_Completed)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext* This,
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext* handler);
    HRESULT (STDMETHODCALLTYPE* get_Completed)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext* This,
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext** result);
    HRESULT (STDMETHODCALLTYPE* GetResults)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext** result);

    END_INTERFACE
} __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContextVtbl;

interface __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext
{
    CONST_VTBL struct __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContextVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext_put_Completed(This, handler) \
    ((This)->lpVtbl->put_Completed(This, handler))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext_get_Completed(This, result) \
    ((This)->lpVtbl->get_Completed(This, result))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext_GetResults(This, result) \
    ((This)->lpVtbl->GetResults(This, result))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext_INTERFACE_DEFINED__
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext_INTERFACE_DEFINED__)
#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext_INTERFACE_DEFINED__

typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext;

typedef struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContextVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext* This);
    HRESULT (STDMETHODCALLTYPE* Invoke)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext* This,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext* asyncInfo,
        AsyncStatus asyncStatus);

    END_INTERFACE
} __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContextVtbl;

interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext
{
    CONST_VTBL struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContextVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext_Invoke(This, asyncInfo, asyncStatus) \
    ((This)->lpVtbl->Invoke(This, asyncInfo, asyncStatus))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext_INTERFACE_DEFINED__
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardConnection __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardConnection;

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardConnection_INTERFACE_DEFINED__)
#define ____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardConnection_INTERFACE_DEFINED__

typedef interface __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardConnection __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardConnection;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardConnection;

typedef struct __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardConnectionVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardConnection* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardConnection* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardConnection* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardConnection* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardConnection* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardConnection* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* put_Completed)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardConnection* This,
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardConnection* handler);
    HRESULT (STDMETHODCALLTYPE* get_Completed)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardConnection* This,
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardConnection** result);
    HRESULT (STDMETHODCALLTYPE* GetResults)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardConnection* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnection** result);

    END_INTERFACE
} __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardConnectionVtbl;

interface __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardConnection
{
    CONST_VTBL struct __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardConnectionVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardConnection_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardConnection_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardConnection_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardConnection_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardConnection_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardConnection_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardConnection_put_Completed(This, handler) \
    ((This)->lpVtbl->put_Completed(This, handler))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardConnection_get_Completed(This, result) \
    ((This)->lpVtbl->get_Completed(This, result))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardConnection_GetResults(This, result) \
    ((This)->lpVtbl->GetResults(This, result))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardConnection_INTERFACE_DEFINED__
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardConnection_INTERFACE_DEFINED__)
#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardConnection_INTERFACE_DEFINED__

typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardConnection __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardConnection;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardConnection;

typedef struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardConnectionVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardConnection* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardConnection* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardConnection* This);
    HRESULT (STDMETHODCALLTYPE* Invoke)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardConnection* This,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardConnection* asyncInfo,
        AsyncStatus asyncStatus);

    END_INTERFACE
} __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardConnectionVtbl;

interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardConnection
{
    CONST_VTBL struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardConnectionVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardConnection_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardConnection_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardConnection_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardConnection_Invoke(This, asyncInfo, asyncStatus) \
    ((This)->lpVtbl->Invoke(This, asyncInfo, asyncStatus))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardConnection_INTERFACE_DEFINED__
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator;

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator_INTERFACE_DEFINED__)
#define ____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator_INTERFACE_DEFINED__

typedef interface __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator;

typedef struct __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* put_Completed)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator* This,
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator* handler);
    HRESULT (STDMETHODCALLTYPE* get_Completed)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator* This,
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator** result);
    HRESULT (STDMETHODCALLTYPE* GetResults)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator** result);

    END_INTERFACE
} __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorVtbl;

interface __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator
{
    CONST_VTBL struct __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator_put_Completed(This, handler) \
    ((This)->lpVtbl->put_Completed(This, handler))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator_get_Completed(This, result) \
    ((This)->lpVtbl->get_Completed(This, result))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator_GetResults(This, result) \
    ((This)->lpVtbl->GetResults(This, result))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator_INTERFACE_DEFINED__)
#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator_INTERFACE_DEFINED__

typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator;

typedef struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator* This);
    HRESULT (STDMETHODCALLTYPE* Invoke)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator* This,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator* asyncInfo,
        AsyncStatus asyncStatus);

    END_INTERFACE
} __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorVtbl;

interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator
{
    CONST_VTBL struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator_Invoke(This, asyncInfo, asyncStatus) \
    ((This)->lpVtbl->Invoke(This, asyncInfo, asyncStatus))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

typedef enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramGeneratorOperationStatus __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramGeneratorOperationStatus;

typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus;

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus_INTERFACE_DEFINED__)
#define ____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus_INTERFACE_DEFINED__

typedef interface __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus;

typedef struct __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatusVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* put_Completed)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus* This,
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus* handler);
    HRESULT (STDMETHODCALLTYPE* get_Completed)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus* This,
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus** result);
    HRESULT (STDMETHODCALLTYPE* GetResults)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramGeneratorOperationStatus* result);

    END_INTERFACE
} __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatusVtbl;

interface __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus
{
    CONST_VTBL struct __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatusVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus_put_Completed(This, handler) \
    ((This)->lpVtbl->put_Completed(This, handler))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus_get_Completed(This, result) \
    ((This)->lpVtbl->get_Completed(This, result))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus_GetResults(This, result) \
    ((This)->lpVtbl->GetResults(This, result))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus_INTERFACE_DEFINED__)
#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus_INTERFACE_DEFINED__

typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus;

typedef struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatusVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus* This);
    HRESULT (STDMETHODCALLTYPE* Invoke)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus* This,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus* asyncInfo,
        AsyncStatus asyncStatus);

    END_INTERFACE
} __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatusVtbl;

interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus
{
    CONST_VTBL struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatusVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus_Invoke(This, asyncInfo, asyncStatus) \
    ((This)->lpVtbl->Invoke(This, asyncInfo, asyncStatus))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult;

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#if !defined(____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_INTERFACE_DEFINED__)
#define ____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_INTERFACE_DEFINED__

typedef interface __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult;

typedef struct __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResultVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* put_Completed)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult* This,
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult* handler);
    HRESULT (STDMETHODCALLTYPE* get_Completed)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult* This,
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult** result);
    HRESULT (STDMETHODCALLTYPE* GetResults)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult** result);

    END_INTERFACE
} __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResultVtbl;

interface __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult
{
    CONST_VTBL struct __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResultVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_put_Completed(This, handler) \
    ((This)->lpVtbl->put_Completed(This, handler))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_get_Completed(This, result) \
    ((This)->lpVtbl->get_Completed(This, result))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_GetResults(This, result) \
    ((This)->lpVtbl->GetResults(This, result))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#if !defined(____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_INTERFACE_DEFINED__)
#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_INTERFACE_DEFINED__

typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult;

typedef struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResultVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult* This);
    HRESULT (STDMETHODCALLTYPE* Invoke)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult* This,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult* asyncInfo,
        AsyncStatus asyncStatus);

    END_INTERFACE
} __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResultVtbl;

interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult
{
    CONST_VTBL struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResultVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_Invoke(This, asyncInfo, asyncStatus) \
    ((This)->lpVtbl->Invoke(This, asyncInfo, asyncStatus))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult;

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#if !defined(____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_INTERFACE_DEFINED__)
#define ____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_INTERFACE_DEFINED__

typedef interface __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult;

typedef struct __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResultVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* put_Completed)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult* This,
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult* handler);
    HRESULT (STDMETHODCALLTYPE* get_Completed)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult* This,
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult** result);
    HRESULT (STDMETHODCALLTYPE* GetResults)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult** result);

    END_INTERFACE
} __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResultVtbl;

interface __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult
{
    CONST_VTBL struct __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResultVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_put_Completed(This, handler) \
    ((This)->lpVtbl->put_Completed(This, handler))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_get_Completed(This, result) \
    ((This)->lpVtbl->get_Completed(This, result))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_GetResults(This, result) \
    ((This)->lpVtbl->GetResults(This, result))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#if !defined(____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_INTERFACE_DEFINED__)
#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_INTERFACE_DEFINED__

typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult;

typedef struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResultVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult* This);
    HRESULT (STDMETHODCALLTYPE* Invoke)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult* This,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult* asyncInfo,
        AsyncStatus asyncStatus);

    END_INTERFACE
} __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResultVtbl;

interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult
{
    CONST_VTBL struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResultVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_Invoke(This, asyncInfo, asyncStatus) \
    ((This)->lpVtbl->Invoke(This, asyncInfo, asyncStatus))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult;

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#if !defined(____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_INTERFACE_DEFINED__)
#define ____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_INTERFACE_DEFINED__

typedef interface __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult;

typedef struct __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResultVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* put_Completed)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult* This,
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult* handler);
    HRESULT (STDMETHODCALLTYPE* get_Completed)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult* This,
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult** result);
    HRESULT (STDMETHODCALLTYPE* GetResults)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult** result);

    END_INTERFACE
} __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResultVtbl;

interface __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult
{
    CONST_VTBL struct __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResultVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_put_Completed(This, handler) \
    ((This)->lpVtbl->put_Completed(This, handler))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_get_Completed(This, result) \
    ((This)->lpVtbl->get_Completed(This, result))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_GetResults(This, result) \
    ((This)->lpVtbl->GetResults(This, result))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#if !defined(____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_INTERFACE_DEFINED__)
#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_INTERFACE_DEFINED__

typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult;

typedef struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResultVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult* This);
    HRESULT (STDMETHODCALLTYPE* Invoke)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult* This,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult* asyncInfo,
        AsyncStatus asyncStatus);

    END_INTERFACE
} __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResultVtbl;

interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult
{
    CONST_VTBL struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResultVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_Invoke(This, asyncInfo, asyncStatus) \
    ((This)->lpVtbl->Invoke(This, asyncInfo, asyncStatus))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof;

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof_INTERFACE_DEFINED__)
#define ____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof_INTERFACE_DEFINED__

typedef interface __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof;

typedef struct __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProofVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* put_Completed)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof* This,
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof* handler);
    HRESULT (STDMETHODCALLTYPE* get_Completed)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof* This,
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof** result);
    HRESULT (STDMETHODCALLTYPE* GetResults)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPossessionProof** result);

    END_INTERFACE
} __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProofVtbl;

interface __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof
{
    CONST_VTBL struct __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProofVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof_put_Completed(This, handler) \
    ((This)->lpVtbl->put_Completed(This, handler))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof_get_Completed(This, result) \
    ((This)->lpVtbl->get_Completed(This, result))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof_GetResults(This, result) \
    ((This)->lpVtbl->GetResults(This, result))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof_INTERFACE_DEFINED__)
#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof_INTERFACE_DEFINED__

typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof;

typedef struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProofVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof* This);
    HRESULT (STDMETHODCALLTYPE* Invoke)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof* This,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof* asyncInfo,
        AsyncStatus asyncStatus);

    END_INTERFACE
} __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProofVtbl;

interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof
{
    CONST_VTBL struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProofVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof_Invoke(This, asyncInfo, asyncStatus) \
    ((This)->lpVtbl->Invoke(This, asyncInfo, asyncStatus))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo;

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo_INTERFACE_DEFINED__)
#define ____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo_INTERFACE_DEFINED__

typedef interface __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo;

typedef struct __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfoVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* put_Completed)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo* This,
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo* handler);
    HRESULT (STDMETHODCALLTYPE* get_Completed)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo* This,
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo** result);
    HRESULT (STDMETHODCALLTYPE* GetResults)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo** result);

    END_INTERFACE
} __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfoVtbl;

interface __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo
{
    CONST_VTBL struct __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfoVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo_put_Completed(This, handler) \
    ((This)->lpVtbl->put_Completed(This, handler))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo_get_Completed(This, result) \
    ((This)->lpVtbl->get_Completed(This, result))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo_GetResults(This, result) \
    ((This)->lpVtbl->GetResults(This, result))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo_INTERFACE_DEFINED__)
#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo_INTERFACE_DEFINED__

typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo;

typedef struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfoVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo* This);
    HRESULT (STDMETHODCALLTYPE* Invoke)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo* This,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo* asyncInfo,
        AsyncStatus asyncStatus);

    END_INTERFACE
} __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfoVtbl;

interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo
{
    CONST_VTBL struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfoVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo_Invoke(This, asyncInfo, asyncStatus) \
    ((This)->lpVtbl->Invoke(This, asyncInfo, asyncStatus))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardEmulator __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardEmulator;

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardEmulator_INTERFACE_DEFINED__)
#define ____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardEmulator_INTERFACE_DEFINED__

typedef interface __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardEmulator __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardEmulator;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardEmulator;

typedef struct __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardEmulatorVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardEmulator* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardEmulator* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardEmulator* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardEmulator* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardEmulator* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardEmulator* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* put_Completed)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardEmulator* This,
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardEmulator* handler);
    HRESULT (STDMETHODCALLTYPE* get_Completed)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardEmulator* This,
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardEmulator** result);
    HRESULT (STDMETHODCALLTYPE* GetResults)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardEmulator* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator** result);

    END_INTERFACE
} __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardEmulatorVtbl;

interface __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardEmulator
{
    CONST_VTBL struct __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardEmulatorVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardEmulator_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardEmulator_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardEmulator_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardEmulator_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardEmulator_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardEmulator_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardEmulator_put_Completed(This, handler) \
    ((This)->lpVtbl->put_Completed(This, handler))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardEmulator_get_Completed(This, result) \
    ((This)->lpVtbl->get_Completed(This, result))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardEmulator_GetResults(This, result) \
    ((This)->lpVtbl->GetResults(This, result))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardEmulator_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardEmulator_INTERFACE_DEFINED__)
#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardEmulator_INTERFACE_DEFINED__

typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardEmulator __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardEmulator;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardEmulator;

typedef struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardEmulatorVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardEmulator* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardEmulator* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardEmulator* This);
    HRESULT (STDMETHODCALLTYPE* Invoke)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardEmulator* This,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardEmulator* asyncInfo,
        AsyncStatus asyncStatus);

    END_INTERFACE
} __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardEmulatorVtbl;

interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardEmulator
{
    CONST_VTBL struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardEmulatorVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardEmulator_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardEmulator_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardEmulator_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardEmulator_Invoke(This, asyncInfo, asyncStatus) \
    ((This)->lpVtbl->Invoke(This, asyncInfo, asyncStatus))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardEmulator_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning;

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning_INTERFACE_DEFINED__)
#define ____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning_INTERFACE_DEFINED__

typedef interface __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning;

typedef struct __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioningVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* put_Completed)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning* This,
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning* handler);
    HRESULT (STDMETHODCALLTYPE* get_Completed)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning* This,
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning** result);
    HRESULT (STDMETHODCALLTYPE* GetResults)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning** result);

    END_INTERFACE
} __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioningVtbl;

interface __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning
{
    CONST_VTBL struct __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioningVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning_put_Completed(This, handler) \
    ((This)->lpVtbl->put_Completed(This, handler))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning_get_Completed(This, result) \
    ((This)->lpVtbl->get_Completed(This, result))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning_GetResults(This, result) \
    ((This)->lpVtbl->GetResults(This, result))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning_INTERFACE_DEFINED__
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning_INTERFACE_DEFINED__)
#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning_INTERFACE_DEFINED__

typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning;

typedef struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardProvisioningVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning* This);
    HRESULT (STDMETHODCALLTYPE* Invoke)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning* This,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning* asyncInfo,
        AsyncStatus asyncStatus);

    END_INTERFACE
} __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardProvisioningVtbl;

interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning
{
    CONST_VTBL struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardProvisioningVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning_Invoke(This, asyncInfo, asyncStatus) \
    ((This)->lpVtbl->Invoke(This, asyncInfo, asyncStatus))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning_INTERFACE_DEFINED__
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReader __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReader;

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReader_INTERFACE_DEFINED__)
#define ____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReader_INTERFACE_DEFINED__

typedef interface __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReader __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReader;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReader;

typedef struct __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReader* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReader* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReader* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReader* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReader* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReader* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* put_Completed)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReader* This,
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReader* handler);
    HRESULT (STDMETHODCALLTYPE* get_Completed)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReader* This,
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReader** result);
    HRESULT (STDMETHODCALLTYPE* GetResults)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReader* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader** result);

    END_INTERFACE
} __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderVtbl;

interface __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReader
{
    CONST_VTBL struct __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReader_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReader_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReader_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReader_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReader_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReader_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReader_put_Completed(This, handler) \
    ((This)->lpVtbl->put_Completed(This, handler))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReader_get_Completed(This, result) \
    ((This)->lpVtbl->get_Completed(This, result))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReader_GetResults(This, result) \
    ((This)->lpVtbl->GetResults(This, result))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReader_INTERFACE_DEFINED__
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReader_INTERFACE_DEFINED__)
#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReader_INTERFACE_DEFINED__

typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReader __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReader;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReader;

typedef struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReaderVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReader* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReader* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReader* This);
    HRESULT (STDMETHODCALLTYPE* Invoke)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReader* This,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReader* asyncInfo,
        AsyncStatus asyncStatus);

    END_INTERFACE
} __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReaderVtbl;

interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReader
{
    CONST_VTBL struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReaderVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReader_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReader_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReader_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReader_Invoke(This, asyncInfo, asyncStatus) \
    ((This)->lpVtbl->Invoke(This, asyncInfo, asyncStatus))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReader_INTERFACE_DEFINED__
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

typedef enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardReaderStatus __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardReaderStatus;

typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus;

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus_INTERFACE_DEFINED__)
#define ____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus_INTERFACE_DEFINED__

typedef interface __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus;

typedef struct __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatusVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* put_Completed)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus* This,
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus* handler);
    HRESULT (STDMETHODCALLTYPE* get_Completed)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus* This,
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus** result);
    HRESULT (STDMETHODCALLTYPE* GetResults)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardReaderStatus* result);

    END_INTERFACE
} __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatusVtbl;

interface __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus
{
    CONST_VTBL struct __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatusVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus_put_Completed(This, handler) \
    ((This)->lpVtbl->put_Completed(This, handler))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus_get_Completed(This, result) \
    ((This)->lpVtbl->get_Completed(This, result))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus_GetResults(This, result) \
    ((This)->lpVtbl->GetResults(This, result))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus_INTERFACE_DEFINED__
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus_INTERFACE_DEFINED__)
#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus_INTERFACE_DEFINED__

typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus;

typedef struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatusVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus* This);
    HRESULT (STDMETHODCALLTYPE* Invoke)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus* This,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus* asyncInfo,
        AsyncStatus asyncStatus);

    END_INTERFACE
} __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatusVtbl;

interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus
{
    CONST_VTBL struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatusVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus_Invoke(This, asyncInfo, asyncStatus) \
    ((This)->lpVtbl->Invoke(This, asyncInfo, asyncStatus))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus_INTERFACE_DEFINED__
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

typedef enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardStatus __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardStatus;

typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardStatus __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardStatus;

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardStatus_INTERFACE_DEFINED__)
#define ____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardStatus_INTERFACE_DEFINED__

typedef interface __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardStatus __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardStatus;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardStatus;

typedef struct __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardStatusVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardStatus* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardStatus* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardStatus* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardStatus* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardStatus* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardStatus* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* put_Completed)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardStatus* This,
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardStatus* handler);
    HRESULT (STDMETHODCALLTYPE* get_Completed)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardStatus* This,
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardStatus** result);
    HRESULT (STDMETHODCALLTYPE* GetResults)(__FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardStatus* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardStatus* result);

    END_INTERFACE
} __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardStatusVtbl;

interface __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardStatus
{
    CONST_VTBL struct __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardStatusVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardStatus_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardStatus_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardStatus_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardStatus_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardStatus_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardStatus_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardStatus_put_Completed(This, handler) \
    ((This)->lpVtbl->put_Completed(This, handler))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardStatus_get_Completed(This, result) \
    ((This)->lpVtbl->get_Completed(This, result))

#define __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardStatus_GetResults(This, result) \
    ((This)->lpVtbl->GetResults(This, result))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardStatus_INTERFACE_DEFINED__
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardStatus_INTERFACE_DEFINED__)
#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardStatus_INTERFACE_DEFINED__

typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardStatus __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardStatus;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardStatus;

typedef struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardStatusVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardStatus* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardStatus* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardStatus* This);
    HRESULT (STDMETHODCALLTYPE* Invoke)(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardStatus* This,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardStatus* asyncInfo,
        AsyncStatus asyncStatus);

    END_INTERFACE
} __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardStatusVtbl;

interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardStatus
{
    CONST_VTBL struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardStatusVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardStatus_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardStatus_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardStatus_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardStatus_Invoke(This, asyncInfo, asyncStatus) \
    ((This)->lpVtbl->Invoke(This, asyncInfo, asyncStatus))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CSmartCards__CSmartCardStatus_INTERFACE_DEFINED__
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____FIIterator_1_Windows__CDevices__CSmartCards__CSmartCard_INTERFACE_DEFINED__)
#define ____FIIterator_1_Windows__CDevices__CSmartCards__CSmartCard_INTERFACE_DEFINED__

typedef interface __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCard __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCard;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCard;

typedef struct __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCard* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCard* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCard* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCard* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCard* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCard* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_Current)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCard* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCard** result);
    HRESULT (STDMETHODCALLTYPE* get_HasCurrent)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCard* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* MoveNext)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCard* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCard* This,
        UINT32 itemsLength,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCard** items,
        UINT32* result);

    END_INTERFACE
} __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardVtbl;

interface __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCard
{
    CONST_VTBL struct __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCard_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCard_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCard_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCard_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCard_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCard_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCard_get_Current(This, result) \
    ((This)->lpVtbl->get_Current(This, result))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCard_get_HasCurrent(This, result) \
    ((This)->lpVtbl->get_HasCurrent(This, result))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCard_MoveNext(This, result) \
    ((This)->lpVtbl->MoveNext(This, result))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCard_GetMany(This, itemsLength, items, result) \
    ((This)->lpVtbl->GetMany(This, itemsLength, items, result))

#endif /* COBJMACROS */

#endif // ____FIIterator_1_Windows__CDevices__CSmartCards__CSmartCard_INTERFACE_DEFINED__
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____FIIterable_1_Windows__CDevices__CSmartCards__CSmartCard_INTERFACE_DEFINED__)
#define ____FIIterable_1_Windows__CDevices__CSmartCards__CSmartCard_INTERFACE_DEFINED__

typedef interface __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCard __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCard;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCard;

typedef struct __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCard* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCard* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCard* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCard* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCard* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCard* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* First)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCard* This,
        __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCard** result);

    END_INTERFACE
} __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardVtbl;

interface __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCard
{
    CONST_VTBL struct __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCard_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCard_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCard_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCard_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCard_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCard_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCard_First(This, result) \
    ((This)->lpVtbl->First(This, result))

#endif /* COBJMACROS */

#endif // ____FIIterable_1_Windows__CDevices__CSmartCards__CSmartCard_INTERFACE_DEFINED__
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_INTERFACE_DEFINED__)
#define ____FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_INTERFACE_DEFINED__

typedef interface __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard;

typedef struct __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* GetAt)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard* This,
        UINT32 index,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCard** result);
    HRESULT (STDMETHODCALLTYPE* get_Size)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard* This,
        UINT32* result);
    HRESULT (STDMETHODCALLTYPE* IndexOf)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCard* value,
        UINT32* index,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard* This,
        UINT32 startIndex,
        UINT32 itemsLength,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCard** items,
        UINT32* result);

    END_INTERFACE
} __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardVtbl;

interface __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard
{
    CONST_VTBL struct __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_GetAt(This, index, result) \
    ((This)->lpVtbl->GetAt(This, index, result))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_get_Size(This, result) \
    ((This)->lpVtbl->get_Size(This, result))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_IndexOf(This, value, index, result) \
    ((This)->lpVtbl->IndexOf(This, value, index, result))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_GetMany(This, startIndex, itemsLength, items, result) \
    ((This)->lpVtbl->GetMany(This, startIndex, itemsLength, items, result))

#endif /* COBJMACROS */

#endif // ____FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_INTERFACE_DEFINED__
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

typedef interface __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard;

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_INTERFACE_DEFINED__)
#define ____FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_INTERFACE_DEFINED__

typedef interface __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard;

typedef struct __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* put_Completed)(__FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard* This,
        __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard* handler);
    HRESULT (STDMETHODCALLTYPE* get_Completed)(__FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard* This,
        __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard** result);
    HRESULT (STDMETHODCALLTYPE* GetResults)(__FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard* This,
        __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard** result);

    END_INTERFACE
} __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardVtbl;

interface __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard
{
    CONST_VTBL struct __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_put_Completed(This, handler) \
    ((This)->lpVtbl->put_Completed(This, handler))

#define __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_get_Completed(This, result) \
    ((This)->lpVtbl->get_Completed(This, result))

#define __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_GetResults(This, result) \
    ((This)->lpVtbl->GetResults(This, result))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_INTERFACE_DEFINED__
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_INTERFACE_DEFINED__)
#define ____FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_INTERFACE_DEFINED__

typedef interface __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard;

typedef struct __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard* This);
    HRESULT (STDMETHODCALLTYPE* Invoke)(__FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard* This,
        __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard* asyncInfo,
        AsyncStatus asyncStatus);

    END_INTERFACE
} __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardVtbl;

interface __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard
{
    CONST_VTBL struct __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_Invoke(This, asyncInfo, asyncStatus) \
    ((This)->lpVtbl->Invoke(This, asyncInfo, asyncStatus))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard_INTERFACE_DEFINED__
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_INTERFACE_DEFINED__)
#define ____FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_INTERFACE_DEFINED__

typedef interface __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration;

typedef struct __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistrationVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_Current)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration** result);
    HRESULT (STDMETHODCALLTYPE* get_HasCurrent)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* MoveNext)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This,
        UINT32 itemsLength,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration** items,
        UINT32* result);

    END_INTERFACE
} __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistrationVtbl;

interface __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration
{
    CONST_VTBL struct __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistrationVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_get_Current(This, result) \
    ((This)->lpVtbl->get_Current(This, result))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_get_HasCurrent(This, result) \
    ((This)->lpVtbl->get_HasCurrent(This, result))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_MoveNext(This, result) \
    ((This)->lpVtbl->MoveNext(This, result))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_GetMany(This, itemsLength, items, result) \
    ((This)->lpVtbl->GetMany(This, itemsLength, items, result))

#endif /* COBJMACROS */

#endif // ____FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_INTERFACE_DEFINED__)
#define ____FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_INTERFACE_DEFINED__

typedef interface __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration;

typedef struct __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistrationVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* First)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This,
        __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration** result);

    END_INTERFACE
} __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistrationVtbl;

interface __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration
{
    CONST_VTBL struct __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistrationVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_First(This, result) \
    ((This)->lpVtbl->First(This, result))

#endif /* COBJMACROS */

#endif // ____FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_INTERFACE_DEFINED__)
#define ____FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_INTERFACE_DEFINED__

typedef interface __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration;

typedef struct __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistrationVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* GetAt)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This,
        UINT32 index,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration** result);
    HRESULT (STDMETHODCALLTYPE* get_Size)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This,
        UINT32* result);
    HRESULT (STDMETHODCALLTYPE* IndexOf)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration* value,
        UINT32* index,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This,
        UINT32 startIndex,
        UINT32 itemsLength,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration** items,
        UINT32* result);

    END_INTERFACE
} __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistrationVtbl;

interface __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration
{
    CONST_VTBL struct __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistrationVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_GetAt(This, index, result) \
    ((This)->lpVtbl->GetAt(This, index, result))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_get_Size(This, result) \
    ((This)->lpVtbl->get_Size(This, result))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_IndexOf(This, value, index, result) \
    ((This)->lpVtbl->IndexOf(This, value, index, result))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_GetMany(This, startIndex, itemsLength, items, result) \
    ((This)->lpVtbl->GetMany(This, startIndex, itemsLength, items, result))

#endif /* COBJMACROS */

#endif // ____FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

typedef interface __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration;

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_INTERFACE_DEFINED__)
#define ____FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_INTERFACE_DEFINED__

typedef interface __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration;

typedef struct __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistrationVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* put_Completed)(__FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This,
        __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* handler);
    HRESULT (STDMETHODCALLTYPE* get_Completed)(__FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This,
        __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration** result);
    HRESULT (STDMETHODCALLTYPE* GetResults)(__FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This,
        __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration** result);

    END_INTERFACE
} __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistrationVtbl;

interface __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration
{
    CONST_VTBL struct __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistrationVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_put_Completed(This, handler) \
    ((This)->lpVtbl->put_Completed(This, handler))

#define __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_get_Completed(This, result) \
    ((This)->lpVtbl->get_Completed(This, result))

#define __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_GetResults(This, result) \
    ((This)->lpVtbl->GetResults(This, result))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_INTERFACE_DEFINED__)
#define ____FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_INTERFACE_DEFINED__

typedef interface __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration;

typedef struct __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistrationVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This);
    HRESULT (STDMETHODCALLTYPE* Invoke)(__FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* This,
        __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration* asyncInfo,
        AsyncStatus asyncStatus);

    END_INTERFACE
} __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistrationVtbl;

interface __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration
{
    CONST_VTBL struct __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistrationVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_Invoke(This, asyncInfo, asyncStatus) \
    ((This)->lpVtbl->Invoke(This, asyncInfo, asyncStatus))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

#ifndef ____x_ABI_CWindows_CStorage_CStreams_CIBuffer_FWD_DEFINED__
#define ____x_ABI_CWindows_CStorage_CStreams_CIBuffer_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CStorage_CStreams_CIBuffer __x_ABI_CWindows_CStorage_CStreams_CIBuffer;

#endif // ____x_ABI_CWindows_CStorage_CStreams_CIBuffer_FWD_DEFINED__

typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBuffer __FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBuffer;

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__)
#define ____FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__

typedef interface __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer;

typedef struct __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBufferVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* put_Completed)(__FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer* This,
        __FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBuffer* handler);
    HRESULT (STDMETHODCALLTYPE* get_Completed)(__FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer* This,
        __FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBuffer** result);
    HRESULT (STDMETHODCALLTYPE* GetResults)(__FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer** result);

    END_INTERFACE
} __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBufferVtbl;

interface __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer
{
    CONST_VTBL struct __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBufferVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer_put_Completed(This, handler) \
    ((This)->lpVtbl->put_Completed(This, handler))

#define __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer_get_Completed(This, result) \
    ((This)->lpVtbl->get_Completed(This, result))

#define __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer_GetResults(This, result) \
    ((This)->lpVtbl->GetResults(This, result))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__)
#define ____FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__

typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBuffer __FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBuffer;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBuffer;

typedef struct __FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBufferVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBuffer* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBuffer* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBuffer* This);
    HRESULT (STDMETHODCALLTYPE* Invoke)(__FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBuffer* This,
        __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer* asyncInfo,
        AsyncStatus asyncStatus);

    END_INTERFACE
} __FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBufferVtbl;

interface __FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBuffer
{
    CONST_VTBL struct __FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBufferVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBuffer_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBuffer_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBuffer_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBuffer_Invoke(This, asyncInfo, asyncStatus) \
    ((This)->lpVtbl->Invoke(This, asyncInfo, asyncStatus))

#endif /* COBJMACROS */

#endif // ____FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu_INTERFACE_DEFINED__)
#define ____FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu_INTERFACE_DEFINED__

typedef interface __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu;

typedef struct __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApduVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_Current)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu** result);
    HRESULT (STDMETHODCALLTYPE* get_HasCurrent)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* MoveNext)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu* This,
        UINT32 itemsLength,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu** items,
        UINT32* result);

    END_INTERFACE
} __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApduVtbl;

interface __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu
{
    CONST_VTBL struct __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApduVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu_get_Current(This, result) \
    ((This)->lpVtbl->get_Current(This, result))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu_get_HasCurrent(This, result) \
    ((This)->lpVtbl->get_HasCurrent(This, result))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu_MoveNext(This, result) \
    ((This)->lpVtbl->MoveNext(This, result))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu_GetMany(This, itemsLength, items, result) \
    ((This)->lpVtbl->GetMany(This, itemsLength, items, result))

#endif /* COBJMACROS */

#endif // ____FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu_INTERFACE_DEFINED__)
#define ____FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu_INTERFACE_DEFINED__

typedef interface __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu;

typedef struct __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApduVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* First)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu* This,
        __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu** result);

    END_INTERFACE
} __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApduVtbl;

interface __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu
{
    CONST_VTBL struct __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApduVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu_First(This, result) \
    ((This)->lpVtbl->First(This, result))

#endif /* COBJMACROS */

#endif // ____FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

typedef enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramAlgorithm __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramAlgorithm;

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_INTERFACE_DEFINED__)
#define ____FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_INTERFACE_DEFINED__

typedef interface __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm;

typedef struct __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithmVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_Current)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramAlgorithm* result);
    HRESULT (STDMETHODCALLTYPE* get_HasCurrent)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* MoveNext)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm* This,
        UINT32 itemsLength,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramAlgorithm* items,
        UINT32* result);

    END_INTERFACE
} __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithmVtbl;

interface __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm
{
    CONST_VTBL struct __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithmVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_get_Current(This, result) \
    ((This)->lpVtbl->get_Current(This, result))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_get_HasCurrent(This, result) \
    ((This)->lpVtbl->get_HasCurrent(This, result))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_MoveNext(This, result) \
    ((This)->lpVtbl->MoveNext(This, result))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_GetMany(This, itemsLength, items, result) \
    ((This)->lpVtbl->GetMany(This, itemsLength, items, result))

#endif /* COBJMACROS */

#endif // ____FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_INTERFACE_DEFINED__)
#define ____FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_INTERFACE_DEFINED__

typedef interface __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm;

typedef struct __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithmVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* First)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm* This,
        __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm** result);

    END_INTERFACE
} __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithmVtbl;

interface __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm
{
    CONST_VTBL struct __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithmVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_First(This, result) \
    ((This)->lpVtbl->First(This, result))

#endif /* COBJMACROS */

#endif // ____FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#if !defined(____FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_INTERFACE_DEFINED__)
#define ____FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_INTERFACE_DEFINED__

typedef interface __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics;

typedef struct __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristicsVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_Current)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics** result);
    HRESULT (STDMETHODCALLTYPE* get_HasCurrent)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* MoveNext)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics* This,
        UINT32 itemsLength,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics** items,
        UINT32* result);

    END_INTERFACE
} __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristicsVtbl;

interface __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics
{
    CONST_VTBL struct __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristicsVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_get_Current(This, result) \
    ((This)->lpVtbl->get_Current(This, result))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_get_HasCurrent(This, result) \
    ((This)->lpVtbl->get_HasCurrent(This, result))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_MoveNext(This, result) \
    ((This)->lpVtbl->MoveNext(This, result))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_GetMany(This, itemsLength, items, result) \
    ((This)->lpVtbl->GetMany(This, itemsLength, items, result))

#endif /* COBJMACROS */

#endif // ____FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#if !defined(____FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_INTERFACE_DEFINED__)
#define ____FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_INTERFACE_DEFINED__

typedef interface __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics;

typedef struct __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristicsVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* First)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics* This,
        __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics** result);

    END_INTERFACE
} __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristicsVtbl;

interface __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics
{
    CONST_VTBL struct __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristicsVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_First(This, result) \
    ((This)->lpVtbl->First(This, result))

#endif /* COBJMACROS */

#endif // ____FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#if !defined(____FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_INTERFACE_DEFINED__)
#define ____FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_INTERFACE_DEFINED__

typedef interface __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics;

typedef struct __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristicsVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_Current)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics** result);
    HRESULT (STDMETHODCALLTYPE* get_HasCurrent)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* MoveNext)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics* This,
        UINT32 itemsLength,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics** items,
        UINT32* result);

    END_INTERFACE
} __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristicsVtbl;

interface __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics
{
    CONST_VTBL struct __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristicsVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_get_Current(This, result) \
    ((This)->lpVtbl->get_Current(This, result))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_get_HasCurrent(This, result) \
    ((This)->lpVtbl->get_HasCurrent(This, result))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_MoveNext(This, result) \
    ((This)->lpVtbl->MoveNext(This, result))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_GetMany(This, itemsLength, items, result) \
    ((This)->lpVtbl->GetMany(This, itemsLength, items, result))

#endif /* COBJMACROS */

#endif // ____FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#if !defined(____FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_INTERFACE_DEFINED__)
#define ____FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_INTERFACE_DEFINED__

typedef interface __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics;

typedef struct __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristicsVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* First)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics* This,
        __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics** result);

    END_INTERFACE
} __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristicsVtbl;

interface __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics
{
    CONST_VTBL struct __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristicsVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_First(This, result) \
    ((This)->lpVtbl->First(This, result))

#endif /* COBJMACROS */

#endif // ____FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

typedef enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramMaterialPackageConfirmationResponseFormat __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramMaterialPackageConfirmationResponseFormat;

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_INTERFACE_DEFINED__)
#define ____FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_INTERFACE_DEFINED__

typedef interface __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat;

typedef struct __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormatVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_Current)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramMaterialPackageConfirmationResponseFormat* result);
    HRESULT (STDMETHODCALLTYPE* get_HasCurrent)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* MoveNext)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat* This,
        UINT32 itemsLength,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramMaterialPackageConfirmationResponseFormat* items,
        UINT32* result);

    END_INTERFACE
} __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormatVtbl;

interface __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat
{
    CONST_VTBL struct __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormatVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_get_Current(This, result) \
    ((This)->lpVtbl->get_Current(This, result))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_get_HasCurrent(This, result) \
    ((This)->lpVtbl->get_HasCurrent(This, result))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_MoveNext(This, result) \
    ((This)->lpVtbl->MoveNext(This, result))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_GetMany(This, itemsLength, items, result) \
    ((This)->lpVtbl->GetMany(This, itemsLength, items, result))

#endif /* COBJMACROS */

#endif // ____FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_INTERFACE_DEFINED__)
#define ____FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_INTERFACE_DEFINED__

typedef interface __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat;

typedef struct __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormatVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* First)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat* This,
        __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat** result);

    END_INTERFACE
} __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormatVtbl;

interface __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat
{
    CONST_VTBL struct __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormatVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_First(This, result) \
    ((This)->lpVtbl->First(This, result))

#endif /* COBJMACROS */

#endif // ____FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

typedef enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramMaterialPackageFormat __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramMaterialPackageFormat;

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_INTERFACE_DEFINED__)
#define ____FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_INTERFACE_DEFINED__

typedef interface __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat;

typedef struct __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormatVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_Current)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramMaterialPackageFormat* result);
    HRESULT (STDMETHODCALLTYPE* get_HasCurrent)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* MoveNext)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat* This,
        UINT32 itemsLength,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramMaterialPackageFormat* items,
        UINT32* result);

    END_INTERFACE
} __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormatVtbl;

interface __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat
{
    CONST_VTBL struct __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormatVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_get_Current(This, result) \
    ((This)->lpVtbl->get_Current(This, result))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_get_HasCurrent(This, result) \
    ((This)->lpVtbl->get_HasCurrent(This, result))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_MoveNext(This, result) \
    ((This)->lpVtbl->MoveNext(This, result))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_GetMany(This, itemsLength, items, result) \
    ((This)->lpVtbl->GetMany(This, itemsLength, items, result))

#endif /* COBJMACROS */

#endif // ____FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_INTERFACE_DEFINED__)
#define ____FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_INTERFACE_DEFINED__

typedef interface __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat;

typedef struct __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormatVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* First)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat* This,
        __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat** result);

    END_INTERFACE
} __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormatVtbl;

interface __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat
{
    CONST_VTBL struct __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormatVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_First(This, result) \
    ((This)->lpVtbl->First(This, result))

#endif /* COBJMACROS */

#endif // ____FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

typedef enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramMaterialType __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramMaterialType;

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_INTERFACE_DEFINED__)
#define ____FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_INTERFACE_DEFINED__

typedef interface __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType;

typedef struct __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialTypeVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_Current)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramMaterialType* result);
    HRESULT (STDMETHODCALLTYPE* get_HasCurrent)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* MoveNext)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType* This,
        UINT32 itemsLength,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramMaterialType* items,
        UINT32* result);

    END_INTERFACE
} __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialTypeVtbl;

interface __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType
{
    CONST_VTBL struct __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialTypeVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_get_Current(This, result) \
    ((This)->lpVtbl->get_Current(This, result))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_get_HasCurrent(This, result) \
    ((This)->lpVtbl->get_HasCurrent(This, result))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_MoveNext(This, result) \
    ((This)->lpVtbl->MoveNext(This, result))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_GetMany(This, itemsLength, items, result) \
    ((This)->lpVtbl->GetMany(This, itemsLength, items, result))

#endif /* COBJMACROS */

#endif // ____FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_INTERFACE_DEFINED__)
#define ____FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_INTERFACE_DEFINED__

typedef interface __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType;

typedef struct __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialTypeVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* First)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType* This,
        __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType** result);

    END_INTERFACE
} __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialTypeVtbl;

interface __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType
{
    CONST_VTBL struct __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialTypeVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_First(This, result) \
    ((This)->lpVtbl->First(This, result))

#endif /* COBJMACROS */

#endif // ____FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep_INTERFACE_DEFINED__)
#define ____FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep_INTERFACE_DEFINED__

typedef interface __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep;

typedef struct __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStepVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_Current)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep** result);
    HRESULT (STDMETHODCALLTYPE* get_HasCurrent)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* MoveNext)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep* This,
        UINT32 itemsLength,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep** items,
        UINT32* result);

    END_INTERFACE
} __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStepVtbl;

interface __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep
{
    CONST_VTBL struct __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStepVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep_get_Current(This, result) \
    ((This)->lpVtbl->get_Current(This, result))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep_get_HasCurrent(This, result) \
    ((This)->lpVtbl->get_HasCurrent(This, result))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep_MoveNext(This, result) \
    ((This)->lpVtbl->MoveNext(This, result))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep_GetMany(This, itemsLength, items, result) \
    ((This)->lpVtbl->GetMany(This, itemsLength, items, result))

#endif /* COBJMACROS */

#endif // ____FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep_INTERFACE_DEFINED__)
#define ____FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep_INTERFACE_DEFINED__

typedef interface __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep;

typedef struct __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStepVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* First)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep* This,
        __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep** result);

    END_INTERFACE
} __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStepVtbl;

interface __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep
{
    CONST_VTBL struct __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStepVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep_First(This, result) \
    ((This)->lpVtbl->First(This, result))

#endif /* COBJMACROS */

#endif // ____FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

typedef enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramStorageKeyCapabilities __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramStorageKeyCapabilities;

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_INTERFACE_DEFINED__)
#define ____FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_INTERFACE_DEFINED__

typedef interface __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities;

typedef struct __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilitiesVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_Current)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramStorageKeyCapabilities* result);
    HRESULT (STDMETHODCALLTYPE* get_HasCurrent)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* MoveNext)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities* This,
        UINT32 itemsLength,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramStorageKeyCapabilities* items,
        UINT32* result);

    END_INTERFACE
} __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilitiesVtbl;

interface __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities
{
    CONST_VTBL struct __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilitiesVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_get_Current(This, result) \
    ((This)->lpVtbl->get_Current(This, result))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_get_HasCurrent(This, result) \
    ((This)->lpVtbl->get_HasCurrent(This, result))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_MoveNext(This, result) \
    ((This)->lpVtbl->MoveNext(This, result))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_GetMany(This, itemsLength, items, result) \
    ((This)->lpVtbl->GetMany(This, itemsLength, items, result))

#endif /* COBJMACROS */

#endif // ____FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_INTERFACE_DEFINED__)
#define ____FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_INTERFACE_DEFINED__

typedef interface __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities;

typedef struct __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilitiesVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* First)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities* This,
        __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities** result);

    END_INTERFACE
} __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilitiesVtbl;

interface __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities
{
    CONST_VTBL struct __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilitiesVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_First(This, result) \
    ((This)->lpVtbl->First(This, result))

#endif /* COBJMACROS */

#endif // ____FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#if !defined(____FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_INTERFACE_DEFINED__)
#define ____FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_INTERFACE_DEFINED__

typedef interface __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics;

typedef struct __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristicsVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_Current)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics** result);
    HRESULT (STDMETHODCALLTYPE* get_HasCurrent)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* MoveNext)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics* This,
        UINT32 itemsLength,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics** items,
        UINT32* result);

    END_INTERFACE
} __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristicsVtbl;

interface __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics
{
    CONST_VTBL struct __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristicsVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_get_Current(This, result) \
    ((This)->lpVtbl->get_Current(This, result))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_get_HasCurrent(This, result) \
    ((This)->lpVtbl->get_HasCurrent(This, result))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_MoveNext(This, result) \
    ((This)->lpVtbl->MoveNext(This, result))

#define __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_GetMany(This, itemsLength, items, result) \
    ((This)->lpVtbl->GetMany(This, itemsLength, items, result))

#endif /* COBJMACROS */

#endif // ____FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#if !defined(____FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_INTERFACE_DEFINED__)
#define ____FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_INTERFACE_DEFINED__

typedef interface __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics;

typedef struct __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristicsVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* First)(__FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics* This,
        __FIIterator_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics** result);

    END_INTERFACE
} __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristicsVtbl;

interface __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics
{
    CONST_VTBL struct __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristicsVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_First(This, result) \
    ((This)->lpVtbl->First(This, result))

#endif /* COBJMACROS */

#endif // ____FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____FIIterator_1_Windows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__)
#define ____FIIterator_1_Windows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__

typedef interface __FIIterator_1_Windows__CStorage__CStreams__CIBuffer __FIIterator_1_Windows__CStorage__CStreams__CIBuffer;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIIterator_1_Windows__CStorage__CStreams__CIBuffer;

typedef struct __FIIterator_1_Windows__CStorage__CStreams__CIBufferVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIIterator_1_Windows__CStorage__CStreams__CIBuffer* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIIterator_1_Windows__CStorage__CStreams__CIBuffer* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIIterator_1_Windows__CStorage__CStreams__CIBuffer* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIIterator_1_Windows__CStorage__CStreams__CIBuffer* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIIterator_1_Windows__CStorage__CStreams__CIBuffer* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIIterator_1_Windows__CStorage__CStreams__CIBuffer* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_Current)(__FIIterator_1_Windows__CStorage__CStreams__CIBuffer* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer** result);
    HRESULT (STDMETHODCALLTYPE* get_HasCurrent)(__FIIterator_1_Windows__CStorage__CStreams__CIBuffer* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* MoveNext)(__FIIterator_1_Windows__CStorage__CStreams__CIBuffer* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__FIIterator_1_Windows__CStorage__CStreams__CIBuffer* This,
        UINT32 itemsLength,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer** items,
        UINT32* result);

    END_INTERFACE
} __FIIterator_1_Windows__CStorage__CStreams__CIBufferVtbl;

interface __FIIterator_1_Windows__CStorage__CStreams__CIBuffer
{
    CONST_VTBL struct __FIIterator_1_Windows__CStorage__CStreams__CIBufferVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIIterator_1_Windows__CStorage__CStreams__CIBuffer_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIIterator_1_Windows__CStorage__CStreams__CIBuffer_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIIterator_1_Windows__CStorage__CStreams__CIBuffer_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIIterator_1_Windows__CStorage__CStreams__CIBuffer_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIIterator_1_Windows__CStorage__CStreams__CIBuffer_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIIterator_1_Windows__CStorage__CStreams__CIBuffer_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIIterator_1_Windows__CStorage__CStreams__CIBuffer_get_Current(This, result) \
    ((This)->lpVtbl->get_Current(This, result))

#define __FIIterator_1_Windows__CStorage__CStreams__CIBuffer_get_HasCurrent(This, result) \
    ((This)->lpVtbl->get_HasCurrent(This, result))

#define __FIIterator_1_Windows__CStorage__CStreams__CIBuffer_MoveNext(This, result) \
    ((This)->lpVtbl->MoveNext(This, result))

#define __FIIterator_1_Windows__CStorage__CStreams__CIBuffer_GetMany(This, itemsLength, items, result) \
    ((This)->lpVtbl->GetMany(This, itemsLength, items, result))

#endif /* COBJMACROS */

#endif // ____FIIterator_1_Windows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____FIIterable_1_Windows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__)
#define ____FIIterable_1_Windows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__

typedef interface __FIIterable_1_Windows__CStorage__CStreams__CIBuffer __FIIterable_1_Windows__CStorage__CStreams__CIBuffer;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIIterable_1_Windows__CStorage__CStreams__CIBuffer;

typedef struct __FIIterable_1_Windows__CStorage__CStreams__CIBufferVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIIterable_1_Windows__CStorage__CStreams__CIBuffer* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIIterable_1_Windows__CStorage__CStreams__CIBuffer* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIIterable_1_Windows__CStorage__CStreams__CIBuffer* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIIterable_1_Windows__CStorage__CStreams__CIBuffer* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIIterable_1_Windows__CStorage__CStreams__CIBuffer* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIIterable_1_Windows__CStorage__CStreams__CIBuffer* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* First)(__FIIterable_1_Windows__CStorage__CStreams__CIBuffer* This,
        __FIIterator_1_Windows__CStorage__CStreams__CIBuffer** result);

    END_INTERFACE
} __FIIterable_1_Windows__CStorage__CStreams__CIBufferVtbl;

interface __FIIterable_1_Windows__CStorage__CStreams__CIBuffer
{
    CONST_VTBL struct __FIIterable_1_Windows__CStorage__CStreams__CIBufferVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIIterable_1_Windows__CStorage__CStreams__CIBuffer_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIIterable_1_Windows__CStorage__CStreams__CIBuffer_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIIterable_1_Windows__CStorage__CStreams__CIBuffer_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIIterable_1_Windows__CStorage__CStreams__CIBuffer_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIIterable_1_Windows__CStorage__CStreams__CIBuffer_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIIterable_1_Windows__CStorage__CStreams__CIBuffer_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIIterable_1_Windows__CStorage__CStreams__CIBuffer_First(This, result) \
    ((This)->lpVtbl->First(This, result))

#endif /* COBJMACROS */

#endif // ____FIIterable_1_Windows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_INTERFACE_DEFINED__)
#define ____FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_INTERFACE_DEFINED__

typedef interface __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm;

typedef struct __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithmVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* GetAt)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm* This,
        UINT32 index,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramAlgorithm* result);
    HRESULT (STDMETHODCALLTYPE* get_Size)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm* This,
        UINT32* result);
    HRESULT (STDMETHODCALLTYPE* IndexOf)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramAlgorithm value,
        UINT32* index,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm* This,
        UINT32 startIndex,
        UINT32 itemsLength,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramAlgorithm* items,
        UINT32* result);

    END_INTERFACE
} __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithmVtbl;

interface __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm
{
    CONST_VTBL struct __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithmVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_GetAt(This, index, result) \
    ((This)->lpVtbl->GetAt(This, index, result))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_get_Size(This, result) \
    ((This)->lpVtbl->get_Size(This, result))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_IndexOf(This, value, index, result) \
    ((This)->lpVtbl->IndexOf(This, value, index, result))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_GetMany(This, startIndex, itemsLength, items, result) \
    ((This)->lpVtbl->GetMany(This, startIndex, itemsLength, items, result))

#endif /* COBJMACROS */

#endif // ____FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#if !defined(____FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_INTERFACE_DEFINED__)
#define ____FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_INTERFACE_DEFINED__

typedef interface __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics;

typedef struct __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristicsVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* GetAt)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics* This,
        UINT32 index,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics** result);
    HRESULT (STDMETHODCALLTYPE* get_Size)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics* This,
        UINT32* result);
    HRESULT (STDMETHODCALLTYPE* IndexOf)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics* value,
        UINT32* index,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics* This,
        UINT32 startIndex,
        UINT32 itemsLength,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics** items,
        UINT32* result);

    END_INTERFACE
} __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristicsVtbl;

interface __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics
{
    CONST_VTBL struct __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristicsVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_GetAt(This, index, result) \
    ((This)->lpVtbl->GetAt(This, index, result))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_get_Size(This, result) \
    ((This)->lpVtbl->get_Size(This, result))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_IndexOf(This, value, index, result) \
    ((This)->lpVtbl->IndexOf(This, value, index, result))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_GetMany(This, startIndex, itemsLength, items, result) \
    ((This)->lpVtbl->GetMany(This, startIndex, itemsLength, items, result))

#endif /* COBJMACROS */

#endif // ____FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#if !defined(____FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_INTERFACE_DEFINED__)
#define ____FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_INTERFACE_DEFINED__

typedef interface __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics;

typedef struct __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristicsVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* GetAt)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics* This,
        UINT32 index,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics** result);
    HRESULT (STDMETHODCALLTYPE* get_Size)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics* This,
        UINT32* result);
    HRESULT (STDMETHODCALLTYPE* IndexOf)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics* value,
        UINT32* index,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics* This,
        UINT32 startIndex,
        UINT32 itemsLength,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics** items,
        UINT32* result);

    END_INTERFACE
} __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristicsVtbl;

interface __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics
{
    CONST_VTBL struct __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristicsVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_GetAt(This, index, result) \
    ((This)->lpVtbl->GetAt(This, index, result))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_get_Size(This, result) \
    ((This)->lpVtbl->get_Size(This, result))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_IndexOf(This, value, index, result) \
    ((This)->lpVtbl->IndexOf(This, value, index, result))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_GetMany(This, startIndex, itemsLength, items, result) \
    ((This)->lpVtbl->GetMany(This, startIndex, itemsLength, items, result))

#endif /* COBJMACROS */

#endif // ____FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_INTERFACE_DEFINED__)
#define ____FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_INTERFACE_DEFINED__

typedef interface __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat;

typedef struct __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormatVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* GetAt)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat* This,
        UINT32 index,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramMaterialPackageConfirmationResponseFormat* result);
    HRESULT (STDMETHODCALLTYPE* get_Size)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat* This,
        UINT32* result);
    HRESULT (STDMETHODCALLTYPE* IndexOf)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramMaterialPackageConfirmationResponseFormat value,
        UINT32* index,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat* This,
        UINT32 startIndex,
        UINT32 itemsLength,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramMaterialPackageConfirmationResponseFormat* items,
        UINT32* result);

    END_INTERFACE
} __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormatVtbl;

interface __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat
{
    CONST_VTBL struct __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormatVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_GetAt(This, index, result) \
    ((This)->lpVtbl->GetAt(This, index, result))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_get_Size(This, result) \
    ((This)->lpVtbl->get_Size(This, result))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_IndexOf(This, value, index, result) \
    ((This)->lpVtbl->IndexOf(This, value, index, result))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_GetMany(This, startIndex, itemsLength, items, result) \
    ((This)->lpVtbl->GetMany(This, startIndex, itemsLength, items, result))

#endif /* COBJMACROS */

#endif // ____FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_INTERFACE_DEFINED__)
#define ____FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_INTERFACE_DEFINED__

typedef interface __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat;

typedef struct __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormatVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* GetAt)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat* This,
        UINT32 index,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramMaterialPackageFormat* result);
    HRESULT (STDMETHODCALLTYPE* get_Size)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat* This,
        UINT32* result);
    HRESULT (STDMETHODCALLTYPE* IndexOf)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramMaterialPackageFormat value,
        UINT32* index,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat* This,
        UINT32 startIndex,
        UINT32 itemsLength,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramMaterialPackageFormat* items,
        UINT32* result);

    END_INTERFACE
} __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormatVtbl;

interface __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat
{
    CONST_VTBL struct __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormatVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_GetAt(This, index, result) \
    ((This)->lpVtbl->GetAt(This, index, result))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_get_Size(This, result) \
    ((This)->lpVtbl->get_Size(This, result))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_IndexOf(This, value, index, result) \
    ((This)->lpVtbl->IndexOf(This, value, index, result))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_GetMany(This, startIndex, itemsLength, items, result) \
    ((This)->lpVtbl->GetMany(This, startIndex, itemsLength, items, result))

#endif /* COBJMACROS */

#endif // ____FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_INTERFACE_DEFINED__)
#define ____FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_INTERFACE_DEFINED__

typedef interface __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType;

typedef struct __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialTypeVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* GetAt)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType* This,
        UINT32 index,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramMaterialType* result);
    HRESULT (STDMETHODCALLTYPE* get_Size)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType* This,
        UINT32* result);
    HRESULT (STDMETHODCALLTYPE* IndexOf)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramMaterialType value,
        UINT32* index,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType* This,
        UINT32 startIndex,
        UINT32 itemsLength,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramMaterialType* items,
        UINT32* result);

    END_INTERFACE
} __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialTypeVtbl;

interface __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType
{
    CONST_VTBL struct __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialTypeVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_GetAt(This, index, result) \
    ((This)->lpVtbl->GetAt(This, index, result))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_get_Size(This, result) \
    ((This)->lpVtbl->get_Size(This, result))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_IndexOf(This, value, index, result) \
    ((This)->lpVtbl->IndexOf(This, value, index, result))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_GetMany(This, startIndex, itemsLength, items, result) \
    ((This)->lpVtbl->GetMany(This, startIndex, itemsLength, items, result))

#endif /* COBJMACROS */

#endif // ____FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_INTERFACE_DEFINED__)
#define ____FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_INTERFACE_DEFINED__

typedef interface __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities;

typedef struct __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilitiesVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* GetAt)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities* This,
        UINT32 index,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramStorageKeyCapabilities* result);
    HRESULT (STDMETHODCALLTYPE* get_Size)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities* This,
        UINT32* result);
    HRESULT (STDMETHODCALLTYPE* IndexOf)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramStorageKeyCapabilities value,
        UINT32* index,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities* This,
        UINT32 startIndex,
        UINT32 itemsLength,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramStorageKeyCapabilities* items,
        UINT32* result);

    END_INTERFACE
} __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilitiesVtbl;

interface __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities
{
    CONST_VTBL struct __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilitiesVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_GetAt(This, index, result) \
    ((This)->lpVtbl->GetAt(This, index, result))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_get_Size(This, result) \
    ((This)->lpVtbl->get_Size(This, result))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_IndexOf(This, value, index, result) \
    ((This)->lpVtbl->IndexOf(This, value, index, result))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_GetMany(This, startIndex, itemsLength, items, result) \
    ((This)->lpVtbl->GetMany(This, startIndex, itemsLength, items, result))

#endif /* COBJMACROS */

#endif // ____FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#if !defined(____FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_INTERFACE_DEFINED__)
#define ____FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_INTERFACE_DEFINED__

typedef interface __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics;

typedef struct __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristicsVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* GetAt)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics* This,
        UINT32 index,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics** result);
    HRESULT (STDMETHODCALLTYPE* get_Size)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics* This,
        UINT32* result);
    HRESULT (STDMETHODCALLTYPE* IndexOf)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics* value,
        UINT32* index,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics* This,
        UINT32 startIndex,
        UINT32 itemsLength,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics** items,
        UINT32* result);

    END_INTERFACE
} __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristicsVtbl;

interface __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics
{
    CONST_VTBL struct __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristicsVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_GetAt(This, index, result) \
    ((This)->lpVtbl->GetAt(This, index, result))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_get_Size(This, result) \
    ((This)->lpVtbl->get_Size(This, result))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_IndexOf(This, value, index, result) \
    ((This)->lpVtbl->IndexOf(This, value, index, result))

#define __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_GetMany(This, startIndex, itemsLength, items, result) \
    ((This)->lpVtbl->GetMany(This, startIndex, itemsLength, items, result))

#endif /* COBJMACROS */

#endif // ____FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__)
#define ____FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__

typedef interface __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIVectorView_1_Windows__CStorage__CStreams__CIBuffer;

typedef struct __FIVectorView_1_Windows__CStorage__CStreams__CIBufferVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIVectorView_1_Windows__CStorage__CStreams__CIBuffer* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIVectorView_1_Windows__CStorage__CStreams__CIBuffer* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIVectorView_1_Windows__CStorage__CStreams__CIBuffer* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIVectorView_1_Windows__CStorage__CStreams__CIBuffer* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIVectorView_1_Windows__CStorage__CStreams__CIBuffer* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIVectorView_1_Windows__CStorage__CStreams__CIBuffer* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* GetAt)(__FIVectorView_1_Windows__CStorage__CStreams__CIBuffer* This,
        UINT32 index,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer** result);
    HRESULT (STDMETHODCALLTYPE* get_Size)(__FIVectorView_1_Windows__CStorage__CStreams__CIBuffer* This,
        UINT32* result);
    HRESULT (STDMETHODCALLTYPE* IndexOf)(__FIVectorView_1_Windows__CStorage__CStreams__CIBuffer* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer* value,
        UINT32* index,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__FIVectorView_1_Windows__CStorage__CStreams__CIBuffer* This,
        UINT32 startIndex,
        UINT32 itemsLength,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer** items,
        UINT32* result);

    END_INTERFACE
} __FIVectorView_1_Windows__CStorage__CStreams__CIBufferVtbl;

interface __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer
{
    CONST_VTBL struct __FIVectorView_1_Windows__CStorage__CStreams__CIBufferVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_GetAt(This, index, result) \
    ((This)->lpVtbl->GetAt(This, index, result))

#define __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_get_Size(This, result) \
    ((This)->lpVtbl->get_Size(This, result))

#define __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_IndexOf(This, value, index, result) \
    ((This)->lpVtbl->IndexOf(This, value, index, result))

#define __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_GetMany(This, startIndex, itemsLength, items, result) \
    ((This)->lpVtbl->GetMany(This, startIndex, itemsLength, items, result))

#endif /* COBJMACROS */

#endif // ____FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____FIVector_1_Windows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__)
#define ____FIVector_1_Windows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__

typedef interface __FIVector_1_Windows__CStorage__CStreams__CIBuffer __FIVector_1_Windows__CStorage__CStreams__CIBuffer;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIVector_1_Windows__CStorage__CStreams__CIBuffer;

typedef struct __FIVector_1_Windows__CStorage__CStreams__CIBufferVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIVector_1_Windows__CStorage__CStreams__CIBuffer* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIVector_1_Windows__CStorage__CStreams__CIBuffer* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIVector_1_Windows__CStorage__CStreams__CIBuffer* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIVector_1_Windows__CStorage__CStreams__CIBuffer* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIVector_1_Windows__CStorage__CStreams__CIBuffer* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIVector_1_Windows__CStorage__CStreams__CIBuffer* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* GetAt)(__FIVector_1_Windows__CStorage__CStreams__CIBuffer* This,
        UINT32 index,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer** result);
    HRESULT (STDMETHODCALLTYPE* get_Size)(__FIVector_1_Windows__CStorage__CStreams__CIBuffer* This,
        UINT32* result);
    HRESULT (STDMETHODCALLTYPE* GetView)(__FIVector_1_Windows__CStorage__CStreams__CIBuffer* This,
        __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer** result);
    HRESULT (STDMETHODCALLTYPE* IndexOf)(__FIVector_1_Windows__CStorage__CStreams__CIBuffer* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer* value,
        UINT32* index,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* SetAt)(__FIVector_1_Windows__CStorage__CStreams__CIBuffer* This,
        UINT32 index,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer* value);
    HRESULT (STDMETHODCALLTYPE* InsertAt)(__FIVector_1_Windows__CStorage__CStreams__CIBuffer* This,
        UINT32 index,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer* value);
    HRESULT (STDMETHODCALLTYPE* RemoveAt)(__FIVector_1_Windows__CStorage__CStreams__CIBuffer* This,
        UINT32 index);
    HRESULT (STDMETHODCALLTYPE* Append)(__FIVector_1_Windows__CStorage__CStreams__CIBuffer* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer* value);
    HRESULT (STDMETHODCALLTYPE* RemoveAtEnd)(__FIVector_1_Windows__CStorage__CStreams__CIBuffer* This);
    HRESULT (STDMETHODCALLTYPE* Clear)(__FIVector_1_Windows__CStorage__CStreams__CIBuffer* This);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__FIVector_1_Windows__CStorage__CStreams__CIBuffer* This,
        UINT32 startIndex,
        UINT32 itemsLength,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer** items,
        UINT32* result);
    HRESULT (STDMETHODCALLTYPE* ReplaceAll)(__FIVector_1_Windows__CStorage__CStreams__CIBuffer* This,
        UINT32 itemsLength,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer** items);

    END_INTERFACE
} __FIVector_1_Windows__CStorage__CStreams__CIBufferVtbl;

interface __FIVector_1_Windows__CStorage__CStreams__CIBuffer
{
    CONST_VTBL struct __FIVector_1_Windows__CStorage__CStreams__CIBufferVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIVector_1_Windows__CStorage__CStreams__CIBuffer_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIVector_1_Windows__CStorage__CStreams__CIBuffer_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIVector_1_Windows__CStorage__CStreams__CIBuffer_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIVector_1_Windows__CStorage__CStreams__CIBuffer_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIVector_1_Windows__CStorage__CStreams__CIBuffer_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIVector_1_Windows__CStorage__CStreams__CIBuffer_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIVector_1_Windows__CStorage__CStreams__CIBuffer_GetAt(This, index, result) \
    ((This)->lpVtbl->GetAt(This, index, result))

#define __FIVector_1_Windows__CStorage__CStreams__CIBuffer_get_Size(This, result) \
    ((This)->lpVtbl->get_Size(This, result))

#define __FIVector_1_Windows__CStorage__CStreams__CIBuffer_GetView(This, result) \
    ((This)->lpVtbl->GetView(This, result))

#define __FIVector_1_Windows__CStorage__CStreams__CIBuffer_IndexOf(This, value, index, result) \
    ((This)->lpVtbl->IndexOf(This, value, index, result))

#define __FIVector_1_Windows__CStorage__CStreams__CIBuffer_SetAt(This, index, value) \
    ((This)->lpVtbl->SetAt(This, index, value))

#define __FIVector_1_Windows__CStorage__CStreams__CIBuffer_InsertAt(This, index, value) \
    ((This)->lpVtbl->InsertAt(This, index, value))

#define __FIVector_1_Windows__CStorage__CStreams__CIBuffer_RemoveAt(This, index) \
    ((This)->lpVtbl->RemoveAt(This, index))

#define __FIVector_1_Windows__CStorage__CStreams__CIBuffer_Append(This, value) \
    ((This)->lpVtbl->Append(This, value))

#define __FIVector_1_Windows__CStorage__CStreams__CIBuffer_RemoveAtEnd(This) \
    ((This)->lpVtbl->RemoveAtEnd(This))

#define __FIVector_1_Windows__CStorage__CStreams__CIBuffer_Clear(This) \
    ((This)->lpVtbl->Clear(This))

#define __FIVector_1_Windows__CStorage__CStreams__CIBuffer_GetMany(This, startIndex, itemsLength, items, result) \
    ((This)->lpVtbl->GetMany(This, startIndex, itemsLength, items, result))

#define __FIVector_1_Windows__CStorage__CStreams__CIBuffer_ReplaceAll(This, itemsLength, items) \
    ((This)->lpVtbl->ReplaceAll(This, itemsLength, items))

#endif /* COBJMACROS */

#endif // ____FIVector_1_Windows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#if !defined(____FIReference_1_UINT32_INTERFACE_DEFINED__)
#define ____FIReference_1_UINT32_INTERFACE_DEFINED__

typedef interface __FIReference_1_UINT32 __FIReference_1_UINT32;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FIReference_1_UINT32;

typedef struct __FIReference_1_UINT32Vtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FIReference_1_UINT32* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FIReference_1_UINT32* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FIReference_1_UINT32* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__FIReference_1_UINT32* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__FIReference_1_UINT32* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__FIReference_1_UINT32* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_Value)(__FIReference_1_UINT32* This,
        UINT32* result);

    END_INTERFACE
} __FIReference_1_UINT32Vtbl;

interface __FIReference_1_UINT32
{
    CONST_VTBL struct __FIReference_1_UINT32Vtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FIReference_1_UINT32_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FIReference_1_UINT32_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FIReference_1_UINT32_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FIReference_1_UINT32_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __FIReference_1_UINT32_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __FIReference_1_UINT32_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __FIReference_1_UINT32_get_Value(This, result) \
    ((This)->lpVtbl->get_Value(This, result))

#endif /* COBJMACROS */

#endif // ____FIReference_1_UINT32_INTERFACE_DEFINED__

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorApduReceivedEventArgs_INTERFACE_DEFINED__)
#define ____FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorApduReceivedEventArgs_INTERFACE_DEFINED__

typedef interface __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorApduReceivedEventArgs __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorApduReceivedEventArgs;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorApduReceivedEventArgs;

typedef struct __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorApduReceivedEventArgsVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorApduReceivedEventArgs* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorApduReceivedEventArgs* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorApduReceivedEventArgs* This);
    HRESULT (STDMETHODCALLTYPE* Invoke)(__FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorApduReceivedEventArgs* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator* sender,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs* args);

    END_INTERFACE
} __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorApduReceivedEventArgsVtbl;

interface __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorApduReceivedEventArgs
{
    CONST_VTBL struct __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorApduReceivedEventArgsVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorApduReceivedEventArgs_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorApduReceivedEventArgs_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorApduReceivedEventArgs_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorApduReceivedEventArgs_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif // ____FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorApduReceivedEventArgs_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorConnectionDeactivatedEventArgs_INTERFACE_DEFINED__)
#define ____FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorConnectionDeactivatedEventArgs_INTERFACE_DEFINED__

typedef interface __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorConnectionDeactivatedEventArgs __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorConnectionDeactivatedEventArgs;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorConnectionDeactivatedEventArgs;

typedef struct __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorConnectionDeactivatedEventArgsVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorConnectionDeactivatedEventArgs* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorConnectionDeactivatedEventArgs* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorConnectionDeactivatedEventArgs* This);
    HRESULT (STDMETHODCALLTYPE* Invoke)(__FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorConnectionDeactivatedEventArgs* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator* sender,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionDeactivatedEventArgs* args);

    END_INTERFACE
} __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorConnectionDeactivatedEventArgsVtbl;

interface __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorConnectionDeactivatedEventArgs
{
    CONST_VTBL struct __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorConnectionDeactivatedEventArgsVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorConnectionDeactivatedEventArgs_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorConnectionDeactivatedEventArgs_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorConnectionDeactivatedEventArgs_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorConnectionDeactivatedEventArgs_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif // ____FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorConnectionDeactivatedEventArgs_INTERFACE_DEFINED__
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardAddedEventArgs_INTERFACE_DEFINED__)
#define ____FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardAddedEventArgs_INTERFACE_DEFINED__

typedef interface __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardAddedEventArgs __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardAddedEventArgs;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardAddedEventArgs;

typedef struct __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardAddedEventArgsVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardAddedEventArgs* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardAddedEventArgs* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardAddedEventArgs* This);
    HRESULT (STDMETHODCALLTYPE* Invoke)(__FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardAddedEventArgs* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader* sender,
        __x_ABI_CWindows_CDevices_CSmartCards_CICardAddedEventArgs* args);

    END_INTERFACE
} __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardAddedEventArgsVtbl;

interface __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardAddedEventArgs
{
    CONST_VTBL struct __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardAddedEventArgsVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardAddedEventArgs_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardAddedEventArgs_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardAddedEventArgs_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardAddedEventArgs_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif // ____FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardAddedEventArgs_INTERFACE_DEFINED__
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardRemovedEventArgs_INTERFACE_DEFINED__)
#define ____FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardRemovedEventArgs_INTERFACE_DEFINED__

typedef interface __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardRemovedEventArgs __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardRemovedEventArgs;

//  Declare the parameterized interface IID.
EXTERN_C const IID IID___FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardRemovedEventArgs;

typedef struct __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardRemovedEventArgsVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardRemovedEventArgs* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardRemovedEventArgs* This);
    ULONG (STDMETHODCALLTYPE* Release)(__FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardRemovedEventArgs* This);
    HRESULT (STDMETHODCALLTYPE* Invoke)(__FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardRemovedEventArgs* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader* sender,
        __x_ABI_CWindows_CDevices_CSmartCards_CICardRemovedEventArgs* args);

    END_INTERFACE
} __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardRemovedEventArgsVtbl;

interface __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardRemovedEventArgs
{
    CONST_VTBL struct __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardRemovedEventArgsVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardRemovedEventArgs_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardRemovedEventArgs_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardRemovedEventArgs_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardRemovedEventArgs_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif // ____FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardRemovedEventArgs_INTERFACE_DEFINED__
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

#ifndef ____x_ABI_CWindows_CFoundation_CCollections_CIPropertySet_FWD_DEFINED__
#define ____x_ABI_CWindows_CFoundation_CCollections_CIPropertySet_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CFoundation_CCollections_CIPropertySet __x_ABI_CWindows_CFoundation_CCollections_CIPropertySet;

#endif // ____x_ABI_CWindows_CFoundation_CCollections_CIPropertySet_FWD_DEFINED__

typedef struct __x_ABI_CWindows_CFoundation_CDateTime __x_ABI_CWindows_CFoundation_CDateTime;

#ifndef ____x_ABI_CWindows_CFoundation_CIAsyncAction_FWD_DEFINED__
#define ____x_ABI_CWindows_CFoundation_CIAsyncAction_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CFoundation_CIAsyncAction __x_ABI_CWindows_CFoundation_CIAsyncAction;

#endif // ____x_ABI_CWindows_CFoundation_CIAsyncAction_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CFoundation_CIClosable_FWD_DEFINED__
#define ____x_ABI_CWindows_CFoundation_CIClosable_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CFoundation_CIClosable __x_ABI_CWindows_CFoundation_CIClosable;

#endif // ____x_ABI_CWindows_CFoundation_CIClosable_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CFoundation_CIPropertyValue_FWD_DEFINED__
#define ____x_ABI_CWindows_CFoundation_CIPropertyValue_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CFoundation_CIPropertyValue __x_ABI_CWindows_CFoundation_CIPropertyValue;

#endif // ____x_ABI_CWindows_CFoundation_CIPropertyValue_FWD_DEFINED__

typedef enum __x_ABI_CWindows_CSecurity_CCryptography_CCore_CCryptographicPublicKeyBlobType __x_ABI_CWindows_CSecurity_CCryptography_CCore_CCryptographicPublicKeyBlobType;

#ifndef ____x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStreamReference_FWD_DEFINED__
#define ____x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStreamReference_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStreamReference __x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStreamReference;

#endif // ____x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStreamReference_FWD_DEFINED__

typedef enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardAppletIdGroupActivationPolicy __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardAppletIdGroupActivationPolicy;

typedef enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardAutomaticResponseStatus __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardAutomaticResponseStatus;

typedef enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramMaterialProtectionMethod __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramMaterialProtectionMethod;

typedef enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramPlacementOptions __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramPlacementOptions;

typedef enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramStorageKeyAlgorithm __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramStorageKeyAlgorithm;

typedef enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptographicKeyAttestationStatus __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptographicKeyAttestationStatus;

typedef enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardEmulationCategory __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardEmulationCategory;

typedef enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardEmulationType __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardEmulationType;

typedef enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardEmulatorConnectionDeactivatedReason __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardEmulatorConnectionDeactivatedReason;

typedef enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardEmulatorConnectionSource __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardEmulatorConnectionSource;

typedef enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardEmulatorEnablementPolicy __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardEmulatorEnablementPolicy;

typedef enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardLaunchBehavior __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardLaunchBehavior;

typedef enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardPinCharacterPolicyOption __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardPinCharacterPolicyOption;

typedef enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardReaderKind __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardReaderKind;

typedef enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardTriggerType __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardTriggerType;

typedef enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardUnlockPromptingBehavior __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardUnlockPromptingBehavior;

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardActivationPolicyChangeResult
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardActivationPolicyChangeResult
{
    SmartCardActivationPolicyChangeResult_Denied = 0,
    SmartCardActivationPolicyChangeResult_Allowed = 1,
};
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardAppletIdGroupActivationPolicy
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardAppletIdGroupActivationPolicy
{
    SmartCardAppletIdGroupActivationPolicy_Disabled = 0,
    SmartCardAppletIdGroupActivationPolicy_ForegroundOverride = 1,
    SmartCardAppletIdGroupActivationPolicy_Enabled = 2,
};
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardAutomaticResponseStatus
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardAutomaticResponseStatus
{
    SmartCardAutomaticResponseStatus_None = 0,
    SmartCardAutomaticResponseStatus_Success = 1,
    SmartCardAutomaticResponseStatus_UnknownError = 2,
};
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardCryptogramAlgorithm
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramAlgorithm
{
    SmartCardCryptogramAlgorithm_None = 0,
    SmartCardCryptogramAlgorithm_CbcMac = 1,
    SmartCardCryptogramAlgorithm_Cvc3Umd = 2,
    SmartCardCryptogramAlgorithm_DecimalizedMsd = 3,
    SmartCardCryptogramAlgorithm_Cvc3MD = 4,
    SmartCardCryptogramAlgorithm_Sha1 = 5,
    SmartCardCryptogramAlgorithm_SignedDynamicApplicationData = 6,
    SmartCardCryptogramAlgorithm_RsaPkcs1 = 7,
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
    SmartCardCryptogramAlgorithm_Sha256Hmac = 8,
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
};
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardCryptogramGeneratorOperationStatus
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramGeneratorOperationStatus
{
    SmartCardCryptogramGeneratorOperationStatus_Success = 0,
    SmartCardCryptogramGeneratorOperationStatus_AuthorizationFailed = 1,
    SmartCardCryptogramGeneratorOperationStatus_AuthorizationCanceled = 2,
    SmartCardCryptogramGeneratorOperationStatus_AuthorizationRequired = 3,
    SmartCardCryptogramGeneratorOperationStatus_CryptogramMaterialPackageStorageKeyExists = 4,
    SmartCardCryptogramGeneratorOperationStatus_NoCryptogramMaterialPackageStorageKey = 5,
    SmartCardCryptogramGeneratorOperationStatus_NoCryptogramMaterialPackage = 6,
    SmartCardCryptogramGeneratorOperationStatus_UnsupportedCryptogramMaterialPackage = 7,
    SmartCardCryptogramGeneratorOperationStatus_UnknownCryptogramMaterialName = 8,
    SmartCardCryptogramGeneratorOperationStatus_InvalidCryptogramMaterialUsage = 9,
    SmartCardCryptogramGeneratorOperationStatus_ApduResponseNotSent = 10,
    SmartCardCryptogramGeneratorOperationStatus_OtherError = 11,
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
    SmartCardCryptogramGeneratorOperationStatus_ValidationFailed = 12,
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x50000
    SmartCardCryptogramGeneratorOperationStatus_NotSupported = 13,
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x50000
};
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardCryptogramMaterialPackageConfirmationResponseFormat
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramMaterialPackageConfirmationResponseFormat
{
    SmartCardCryptogramMaterialPackageConfirmationResponseFormat_None = 0,
    SmartCardCryptogramMaterialPackageConfirmationResponseFormat_VisaHmac = 1,
};
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardCryptogramMaterialPackageFormat
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramMaterialPackageFormat
{
    SmartCardCryptogramMaterialPackageFormat_None = 0,
    SmartCardCryptogramMaterialPackageFormat_JweRsaPki = 1,
};
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardCryptogramMaterialProtectionMethod
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 4.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramMaterialProtectionMethod
{
    SmartCardCryptogramMaterialProtectionMethod_None = 0,
    SmartCardCryptogramMaterialProtectionMethod_WhiteBoxing = 1,
};
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardCryptogramMaterialType
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramMaterialType
{
    SmartCardCryptogramMaterialType_None = 0,
    SmartCardCryptogramMaterialType_StaticDataAuthentication = 1,
    SmartCardCryptogramMaterialType_TripleDes112 = 2,
    SmartCardCryptogramMaterialType_Aes = 3,
    SmartCardCryptogramMaterialType_RsaPkcs1 = 4,
};
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardCryptogramPlacementOptions
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramPlacementOptions
{
    SmartCardCryptogramPlacementOptions_None = 0,
    SmartCardCryptogramPlacementOptions_UnitsAreInNibbles = 0x1,
    SmartCardCryptogramPlacementOptions_ChainOutput = 0x2,
};
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyAlgorithm
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramStorageKeyAlgorithm
{
    SmartCardCryptogramStorageKeyAlgorithm_None = 0,
    SmartCardCryptogramStorageKeyAlgorithm_Rsa2048 = 1,
};
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyCapabilities
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramStorageKeyCapabilities
{
    SmartCardCryptogramStorageKeyCapabilities_None = 0,
    SmartCardCryptogramStorageKeyCapabilities_HardwareProtection = 0x1,
    SmartCardCryptogramStorageKeyCapabilities_UnlockPrompt = 0x2,
};
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardCryptographicKeyAttestationStatus
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptographicKeyAttestationStatus
{
    SmartCardCryptographicKeyAttestationStatus_NoAttestation = 0,
    SmartCardCryptographicKeyAttestationStatus_SoftwareKeyWithoutTpm = 1,
    SmartCardCryptographicKeyAttestationStatus_SoftwareKeyWithTpm = 2,
    SmartCardCryptographicKeyAttestationStatus_TpmKeyUnknownAttestationStatus = 3,
    SmartCardCryptographicKeyAttestationStatus_TpmKeyWithoutAttestationCapability = 4,
    SmartCardCryptographicKeyAttestationStatus_TpmKeyWithTemporaryAttestationFailure = 5,
    SmartCardCryptographicKeyAttestationStatus_TpmKeyWithLongTermAttestationFailure = 6,
    SmartCardCryptographicKeyAttestationStatus_TpmKeyWithAttestation = 7,
};
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardEmulationCategory
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardEmulationCategory
{
    SmartCardEmulationCategory_Other = 0,
    SmartCardEmulationCategory_Payment = 1,
};
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardEmulationType
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardEmulationType
{
    SmartCardEmulationType_Host = 0,
    SmartCardEmulationType_Uicc = 1,
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x30000
    SmartCardEmulationType_EmbeddedSE = 2,
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x30000
};
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardEmulatorConnectionDeactivatedReason
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardEmulatorConnectionDeactivatedReason
{
    SmartCardEmulatorConnectionDeactivatedReason_ConnectionLost = 0,
    SmartCardEmulatorConnectionDeactivatedReason_ConnectionRedirected = 1,
};
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardEmulatorConnectionSource
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardEmulatorConnectionSource
{
    SmartCardEmulatorConnectionSource_Unknown = 0,
    SmartCardEmulatorConnectionSource_NfcReader = 1,
};
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardEmulatorEnablementPolicy
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardEmulatorEnablementPolicy
{
    SmartCardEmulatorEnablementPolicy_Never = 0,
    SmartCardEmulatorEnablementPolicy_Always = 1,
    SmartCardEmulatorEnablementPolicy_ScreenOn = 2,
    SmartCardEmulatorEnablementPolicy_ScreenUnlocked = 3,
};
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardLaunchBehavior
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardBackgroundTriggerContract in version 1.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDBACKGROUNDTRIGGERCONTRACT_VERSION >= 0x10000
enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardLaunchBehavior
{
    SmartCardLaunchBehavior_Default = 0,
    SmartCardLaunchBehavior_AboveLock = 1,
};
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDBACKGROUNDTRIGGERCONTRACT_VERSION >= 0x10000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardPinCharacterPolicyOption
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardPinCharacterPolicyOption
{
    SmartCardPinCharacterPolicyOption_Allow = 0,
    SmartCardPinCharacterPolicyOption_RequireAtLeastOne = 1,
    SmartCardPinCharacterPolicyOption_Disallow = 2,
};
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardReaderKind
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardReaderKind
{
    SmartCardReaderKind_Any = 0,
    SmartCardReaderKind_Generic = 1,
    SmartCardReaderKind_Tpm = 2,
    SmartCardReaderKind_Nfc = 3,
    SmartCardReaderKind_Uicc = 4,
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x30000
    SmartCardReaderKind_EmbeddedSE = 5,
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x30000
};
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardReaderStatus
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardReaderStatus
{
    SmartCardReaderStatus_Disconnected = 0,
    SmartCardReaderStatus_Ready = 1,
    SmartCardReaderStatus_Exclusive = 2,
};
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardStatus
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardStatus
{
    SmartCardStatus_Disconnected = 0,
    SmartCardStatus_Ready = 1,
    SmartCardStatus_Shared = 2,
    SmartCardStatus_Exclusive = 3,
    SmartCardStatus_Unresponsive = 4,
};
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardTriggerType
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardBackgroundTriggerContract in version 1.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDBACKGROUNDTRIGGERCONTRACT_VERSION >= 0x10000
enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardTriggerType
{
    SmartCardTriggerType_EmulatorTransaction = 0,
    SmartCardTriggerType_EmulatorNearFieldEntry = 1,
    SmartCardTriggerType_EmulatorNearFieldExit = 2,
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDBACKGROUNDTRIGGERCONTRACT_VERSION >= 0x10000
    SmartCardTriggerType_EmulatorHostApplicationActivated = 3,
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDBACKGROUNDTRIGGERCONTRACT_VERSION >= 0x10000
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDBACKGROUNDTRIGGERCONTRACT_VERSION >= 0x10000
    SmartCardTriggerType_EmulatorAppletIdGroupRegistrationChanged = 4,
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDBACKGROUNDTRIGGERCONTRACT_VERSION >= 0x10000
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDBACKGROUNDTRIGGERCONTRACT_VERSION >= 0x20000
    SmartCardTriggerType_ReaderCardAdded = 5,
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDBACKGROUNDTRIGGERCONTRACT_VERSION >= 0x20000
};
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDBACKGROUNDTRIGGERCONTRACT_VERSION >= 0x10000

/*
 *
 * Struct Windows.Devices.SmartCards.SmartCardUnlockPromptingBehavior
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardUnlockPromptingBehavior
{
    SmartCardUnlockPromptingBehavior_AllowUnlockPrompt = 0,
    SmartCardUnlockPromptingBehavior_RequireUnlockPrompt = 1,
    SmartCardUnlockPromptingBehavior_PreventUnlockPrompt = 2,
};
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Delegate Windows.Devices.SmartCards.SmartCardPinResetHandler
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetHandler_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetHandler_INTERFACE_DEFINED__
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetHandlerVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetHandler* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetHandler* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetHandler* This);
    HRESULT (STDMETHODCALLTYPE* Invoke)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetHandler* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning* sender,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequest* request);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetHandlerVtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetHandler
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetHandlerVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetHandler_Invoke(This, sender, request) \
    ((This)->lpVtbl->Invoke(This, sender, request))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetHandler;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetHandler_INTERFACE_DEFINED__) */
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ICardAddedEventArgs
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.CardAddedEventArgs
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CICardAddedEventArgs_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CICardAddedEventArgs_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ICardAddedEventArgs[] = L"Windows.Devices.SmartCards.ICardAddedEventArgs";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CICardAddedEventArgsVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CICardAddedEventArgs* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CICardAddedEventArgs* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CICardAddedEventArgs* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CICardAddedEventArgs* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CICardAddedEventArgs* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CICardAddedEventArgs* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_SmartCard)(__x_ABI_CWindows_CDevices_CSmartCards_CICardAddedEventArgs* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCard** value);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CICardAddedEventArgsVtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CICardAddedEventArgs
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CICardAddedEventArgsVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CICardAddedEventArgs_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CICardAddedEventArgs_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CICardAddedEventArgs_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CICardAddedEventArgs_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CICardAddedEventArgs_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CICardAddedEventArgs_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CICardAddedEventArgs_get_SmartCard(This, value) \
    ((This)->lpVtbl->get_SmartCard(This, value))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CICardAddedEventArgs;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CICardAddedEventArgs_INTERFACE_DEFINED__) */
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ICardRemovedEventArgs
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.CardRemovedEventArgs
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CICardRemovedEventArgs_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CICardRemovedEventArgs_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ICardRemovedEventArgs[] = L"Windows.Devices.SmartCards.ICardRemovedEventArgs";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CICardRemovedEventArgsVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CICardRemovedEventArgs* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CICardRemovedEventArgs* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CICardRemovedEventArgs* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CICardRemovedEventArgs* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CICardRemovedEventArgs* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CICardRemovedEventArgs* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_SmartCard)(__x_ABI_CWindows_CDevices_CSmartCards_CICardRemovedEventArgs* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCard** value);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CICardRemovedEventArgsVtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CICardRemovedEventArgs
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CICardRemovedEventArgsVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CICardRemovedEventArgs_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CICardRemovedEventArgs_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CICardRemovedEventArgs_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CICardRemovedEventArgs_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CICardRemovedEventArgs_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CICardRemovedEventArgs_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CICardRemovedEventArgs_get_SmartCard(This, value) \
    ((This)->lpVtbl->get_SmartCard(This, value))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CICardRemovedEventArgs;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CICardRemovedEventArgs_INTERFACE_DEFINED__) */
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.IKnownSmartCardAppletIds
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 6.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.KnownSmartCardAppletIds
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x60000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CIKnownSmartCardAppletIds_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CIKnownSmartCardAppletIds_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_IKnownSmartCardAppletIds[] = L"Windows.Devices.SmartCards.IKnownSmartCardAppletIds";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CIKnownSmartCardAppletIdsVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CIKnownSmartCardAppletIds* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CIKnownSmartCardAppletIds* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CIKnownSmartCardAppletIds* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CIKnownSmartCardAppletIds* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CIKnownSmartCardAppletIds* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CIKnownSmartCardAppletIds* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_PaymentSystemEnvironment)(__x_ABI_CWindows_CDevices_CSmartCards_CIKnownSmartCardAppletIds* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer** value);
    HRESULT (STDMETHODCALLTYPE* get_ProximityPaymentSystemEnvironment)(__x_ABI_CWindows_CDevices_CSmartCards_CIKnownSmartCardAppletIds* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer** value);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CIKnownSmartCardAppletIdsVtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CIKnownSmartCardAppletIds
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CIKnownSmartCardAppletIdsVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CIKnownSmartCardAppletIds_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CIKnownSmartCardAppletIds_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CIKnownSmartCardAppletIds_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CIKnownSmartCardAppletIds_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CIKnownSmartCardAppletIds_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CIKnownSmartCardAppletIds_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CIKnownSmartCardAppletIds_get_PaymentSystemEnvironment(This, value) \
    ((This)->lpVtbl->get_PaymentSystemEnvironment(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CIKnownSmartCardAppletIds_get_ProximityPaymentSystemEnvironment(This, value) \
    ((This)->lpVtbl->get_ProximityPaymentSystemEnvironment(This, value))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CIKnownSmartCardAppletIds;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CIKnownSmartCardAppletIds_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x60000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCard
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCard
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCard_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCard_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCard[] = L"Windows.Devices.SmartCards.ISmartCard";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCard* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCard* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCard* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCard* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCard* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCard* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_Reader)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCard* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader** value);
    HRESULT (STDMETHODCALLTYPE* GetStatusAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCard* This,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardStatus** result);
    HRESULT (STDMETHODCALLTYPE* GetAnswerToResetAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCard* This,
        __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer** result);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardVtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCard
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCard_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCard_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCard_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCard_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCard_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCard_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCard_get_Reader(This, value) \
    ((This)->lpVtbl->get_Reader(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCard_GetStatusAsync(This, result) \
    ((This)->lpVtbl->GetStatusAsync(This, result))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCard_GetAnswerToResetAsync(This, result) \
    ((This)->lpVtbl->GetAnswerToResetAsync(This, result))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCard;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCard_INTERFACE_DEFINED__) */
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardAppletIdGroup
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardAppletIdGroup
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardAppletIdGroup[] = L"Windows.Devices.SmartCards.ISmartCardAppletIdGroup";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_DisplayName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup* This,
        HSTRING* value);
    HRESULT (STDMETHODCALLTYPE* put_DisplayName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup* This,
        HSTRING value);
    HRESULT (STDMETHODCALLTYPE* get_AppletIds)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup* This,
        __FIVector_1_Windows__CStorage__CStreams__CIBuffer** value);
    HRESULT (STDMETHODCALLTYPE* get_SmartCardEmulationCategory)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardEmulationCategory* value);
    HRESULT (STDMETHODCALLTYPE* put_SmartCardEmulationCategory)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardEmulationCategory value);
    HRESULT (STDMETHODCALLTYPE* get_SmartCardEmulationType)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardEmulationType* value);
    HRESULT (STDMETHODCALLTYPE* put_SmartCardEmulationType)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardEmulationType value);
    HRESULT (STDMETHODCALLTYPE* get_AutomaticEnablement)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup* This,
        boolean* value);
    HRESULT (STDMETHODCALLTYPE* put_AutomaticEnablement)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup* This,
        boolean value);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupVtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup_get_DisplayName(This, value) \
    ((This)->lpVtbl->get_DisplayName(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup_put_DisplayName(This, value) \
    ((This)->lpVtbl->put_DisplayName(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup_get_AppletIds(This, value) \
    ((This)->lpVtbl->get_AppletIds(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup_get_SmartCardEmulationCategory(This, value) \
    ((This)->lpVtbl->get_SmartCardEmulationCategory(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup_put_SmartCardEmulationCategory(This, value) \
    ((This)->lpVtbl->put_SmartCardEmulationCategory(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup_get_SmartCardEmulationType(This, value) \
    ((This)->lpVtbl->get_SmartCardEmulationType(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup_put_SmartCardEmulationType(This, value) \
    ((This)->lpVtbl->put_SmartCardEmulationType(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup_get_AutomaticEnablement(This, value) \
    ((This)->lpVtbl->get_AutomaticEnablement(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup_put_AutomaticEnablement(This, value) \
    ((This)->lpVtbl->put_AutomaticEnablement(This, value))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardAppletIdGroup2
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 6.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardAppletIdGroup
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x60000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardAppletIdGroup2[] = L"Windows.Devices.SmartCards.ISmartCardAppletIdGroup2";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2Vtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_Logo)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2* This,
        __x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStreamReference** value);
    HRESULT (STDMETHODCALLTYPE* put_Logo)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2* This,
        __x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStreamReference* value);
    HRESULT (STDMETHODCALLTYPE* get_Description)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2* This,
        HSTRING* value);
    HRESULT (STDMETHODCALLTYPE* put_Description)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2* This,
        HSTRING value);
    HRESULT (STDMETHODCALLTYPE* get_Properties)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2* This,
        __x_ABI_CWindows_CFoundation_CCollections_CIPropertySet** value);
    HRESULT (STDMETHODCALLTYPE* get_SecureUserAuthenticationRequired)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2* This,
        boolean* value);
    HRESULT (STDMETHODCALLTYPE* put_SecureUserAuthenticationRequired)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2* This,
        boolean value);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2Vtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2Vtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2_get_Logo(This, value) \
    ((This)->lpVtbl->get_Logo(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2_put_Logo(This, value) \
    ((This)->lpVtbl->put_Logo(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2_get_Description(This, value) \
    ((This)->lpVtbl->get_Description(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2_put_Description(This, value) \
    ((This)->lpVtbl->put_Description(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2_get_Properties(This, value) \
    ((This)->lpVtbl->get_Properties(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2_get_SecureUserAuthenticationRequired(This, value) \
    ((This)->lpVtbl->get_SecureUserAuthenticationRequired(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2_put_SecureUserAuthenticationRequired(This, value) \
    ((This)->lpVtbl->put_SecureUserAuthenticationRequired(This, value))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup2_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x60000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardAppletIdGroupFactory
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardAppletIdGroup
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupFactory_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupFactory_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardAppletIdGroupFactory[] = L"Windows.Devices.SmartCards.ISmartCardAppletIdGroupFactory";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupFactoryVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupFactory* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupFactory* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupFactory* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupFactory* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupFactory* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupFactory* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* Create)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupFactory* This,
        HSTRING displayName,
        __FIVector_1_Windows__CStorage__CStreams__CIBuffer* appletIds,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardEmulationCategory emulationCategory,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardEmulationType emulationType,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup** result);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupFactoryVtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupFactory
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupFactoryVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupFactory_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupFactory_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupFactory_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupFactory_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupFactory_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupFactory_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupFactory_Create(This, displayName, appletIds, emulationCategory, emulationType, result) \
    ((This)->lpVtbl->Create(This, displayName, appletIds, emulationCategory, emulationType, result))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupFactory;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupFactory_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardAppletIdGroupRegistration
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardAppletIdGroupRegistration
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardAppletIdGroupRegistration[] = L"Windows.Devices.SmartCards.ISmartCardAppletIdGroupRegistration";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistrationVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_ActivationPolicy)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardAppletIdGroupActivationPolicy* value);
    HRESULT (STDMETHODCALLTYPE* get_AppletIdGroup)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup** value);
    HRESULT (STDMETHODCALLTYPE* RequestActivationPolicyChangeAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardAppletIdGroupActivationPolicy policy,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardActivationPolicyChangeResult** result);
    HRESULT (STDMETHODCALLTYPE* get_Id)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration* This,
        GUID* value);
    HRESULT (STDMETHODCALLTYPE* SetAutomaticResponseApdusAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration* This,
        __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardAutomaticResponseApdu* apdus,
        __x_ABI_CWindows_CFoundation_CIAsyncAction** result);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistrationVtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistrationVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration_get_ActivationPolicy(This, value) \
    ((This)->lpVtbl->get_ActivationPolicy(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration_get_AppletIdGroup(This, value) \
    ((This)->lpVtbl->get_AppletIdGroup(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration_RequestActivationPolicyChangeAsync(This, policy, result) \
    ((This)->lpVtbl->RequestActivationPolicyChangeAsync(This, policy, result))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration_get_Id(This, value) \
    ((This)->lpVtbl->get_Id(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration_SetAutomaticResponseApdusAsync(This, apdus, result) \
    ((This)->lpVtbl->SetAutomaticResponseApdusAsync(This, apdus, result))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardAppletIdGroupRegistration2
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 6.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardAppletIdGroupRegistration
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x60000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration2_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration2_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardAppletIdGroupRegistration2[] = L"Windows.Devices.SmartCards.ISmartCardAppletIdGroupRegistration2";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration2Vtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration2* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration2* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration2* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration2* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration2* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration2* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_SmartCardReaderId)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration2* This,
        HSTRING* value);
    HRESULT (STDMETHODCALLTYPE* SetPropertiesAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration2* This,
        __x_ABI_CWindows_CFoundation_CCollections_CIPropertySet* props,
        __x_ABI_CWindows_CFoundation_CIAsyncAction** operation);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration2Vtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration2
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration2Vtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration2_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration2_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration2_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration2_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration2_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration2_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration2_get_SmartCardReaderId(This, value) \
    ((This)->lpVtbl->get_SmartCardReaderId(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration2_SetPropertiesAsync(This, props, operation) \
    ((This)->lpVtbl->SetPropertiesAsync(This, props, operation))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration2;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration2_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x60000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardAppletIdGroupStatics
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardAppletIdGroup
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupStatics_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupStatics_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardAppletIdGroupStatics[] = L"Windows.Devices.SmartCards.ISmartCardAppletIdGroupStatics";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupStaticsVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupStatics* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupStatics* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupStatics* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupStatics* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupStatics* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupStatics* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_MaxAppletIds)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupStatics* This,
        UINT16* value);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupStaticsVtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupStatics
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupStaticsVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupStatics_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupStatics_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupStatics_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupStatics_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupStatics_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupStatics_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupStatics_get_MaxAppletIds(This, value) \
    ((This)->lpVtbl->get_MaxAppletIds(This, value))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupStatics;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupStatics_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardAutomaticResponseApdu
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardAutomaticResponseApdu
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardAutomaticResponseApdu[] = L"Windows.Devices.SmartCards.ISmartCardAutomaticResponseApdu";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApduVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_CommandApdu)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer** value);
    HRESULT (STDMETHODCALLTYPE* put_CommandApdu)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer* value);
    HRESULT (STDMETHODCALLTYPE* get_CommandApduBitMask)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer** value);
    HRESULT (STDMETHODCALLTYPE* put_CommandApduBitMask)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer* value);
    HRESULT (STDMETHODCALLTYPE* get_ShouldMatchLength)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu* This,
        boolean* value);
    HRESULT (STDMETHODCALLTYPE* put_ShouldMatchLength)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu* This,
        boolean value);
    HRESULT (STDMETHODCALLTYPE* get_AppletId)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer** value);
    HRESULT (STDMETHODCALLTYPE* put_AppletId)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer* value);
    HRESULT (STDMETHODCALLTYPE* get_ResponseApdu)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer** value);
    HRESULT (STDMETHODCALLTYPE* put_ResponseApdu)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer* value);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApduVtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApduVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu_get_CommandApdu(This, value) \
    ((This)->lpVtbl->get_CommandApdu(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu_put_CommandApdu(This, value) \
    ((This)->lpVtbl->put_CommandApdu(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu_get_CommandApduBitMask(This, value) \
    ((This)->lpVtbl->get_CommandApduBitMask(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu_put_CommandApduBitMask(This, value) \
    ((This)->lpVtbl->put_CommandApduBitMask(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu_get_ShouldMatchLength(This, value) \
    ((This)->lpVtbl->get_ShouldMatchLength(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu_put_ShouldMatchLength(This, value) \
    ((This)->lpVtbl->put_ShouldMatchLength(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu_get_AppletId(This, value) \
    ((This)->lpVtbl->get_AppletId(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu_put_AppletId(This, value) \
    ((This)->lpVtbl->put_AppletId(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu_get_ResponseApdu(This, value) \
    ((This)->lpVtbl->get_ResponseApdu(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu_put_ResponseApdu(This, value) \
    ((This)->lpVtbl->put_ResponseApdu(This, value))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardAutomaticResponseApdu2
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardAutomaticResponseApdu
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardAutomaticResponseApdu2[] = L"Windows.Devices.SmartCards.ISmartCardAutomaticResponseApdu2";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2Vtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_InputState)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2* This,
        __FIReference_1_UINT32** value);
    HRESULT (STDMETHODCALLTYPE* put_InputState)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2* This,
        __FIReference_1_UINT32* value);
    HRESULT (STDMETHODCALLTYPE* get_OutputState)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2* This,
        __FIReference_1_UINT32** value);
    HRESULT (STDMETHODCALLTYPE* put_OutputState)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2* This,
        __FIReference_1_UINT32* value);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2Vtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2Vtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2_get_InputState(This, value) \
    ((This)->lpVtbl->get_InputState(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2_put_InputState(This, value) \
    ((This)->lpVtbl->put_InputState(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2_get_OutputState(This, value) \
    ((This)->lpVtbl->get_OutputState(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2_put_OutputState(This, value) \
    ((This)->lpVtbl->put_OutputState(This, value))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu2_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardAutomaticResponseApdu3
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 3.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardAutomaticResponseApdu
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x30000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu3_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu3_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardAutomaticResponseApdu3[] = L"Windows.Devices.SmartCards.ISmartCardAutomaticResponseApdu3";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu3Vtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu3* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu3* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu3* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu3* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu3* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu3* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_AllowWhenCryptogramGeneratorNotPrepared)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu3* This,
        boolean* value);
    HRESULT (STDMETHODCALLTYPE* put_AllowWhenCryptogramGeneratorNotPrepared)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu3* This,
        boolean value);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu3Vtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu3
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu3Vtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu3_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu3_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu3_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu3_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu3_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu3_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu3_get_AllowWhenCryptogramGeneratorNotPrepared(This, value) \
    ((This)->lpVtbl->get_AllowWhenCryptogramGeneratorNotPrepared(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu3_put_AllowWhenCryptogramGeneratorNotPrepared(This, value) \
    ((This)->lpVtbl->put_AllowWhenCryptogramGeneratorNotPrepared(This, value))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu3;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu3_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x30000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardAutomaticResponseApduFactory
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardAutomaticResponseApdu
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApduFactory_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApduFactory_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardAutomaticResponseApduFactory[] = L"Windows.Devices.SmartCards.ISmartCardAutomaticResponseApduFactory";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApduFactoryVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApduFactory* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApduFactory* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApduFactory* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApduFactory* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApduFactory* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApduFactory* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* Create)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApduFactory* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer* commandApdu,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer* responseApdu,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApdu** result);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApduFactoryVtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApduFactory
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApduFactoryVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApduFactory_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApduFactory_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApduFactory_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApduFactory_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApduFactory_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApduFactory_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApduFactory_Create(This, commandApdu, responseApdu, result) \
    ((This)->lpVtbl->Create(This, commandApdu, responseApdu, result))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApduFactory;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAutomaticResponseApduFactory_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardChallengeContext
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardChallengeContext
 *
 * Any object which implements this interface must also implement the following interfaces:
 *     Windows.Foundation.IClosable
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardChallengeContext[] = L"Windows.Devices.SmartCards.ISmartCardChallengeContext";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContextVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_Challenge)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer** value);
    HRESULT (STDMETHODCALLTYPE* VerifyResponseAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer* response,
        __FIAsyncOperation_1_boolean** result);
    HRESULT (STDMETHODCALLTYPE* ProvisionAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer* response,
        boolean formatCard,
        __x_ABI_CWindows_CFoundation_CIAsyncAction** result);
    HRESULT (STDMETHODCALLTYPE* ProvisionAsyncWithNewCardId)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer* response,
        boolean formatCard,
        GUID newCardId,
        __x_ABI_CWindows_CFoundation_CIAsyncAction** result);
    HRESULT (STDMETHODCALLTYPE* ChangeAdministrativeKeyAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer* response,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer* newAdministrativeKey,
        __x_ABI_CWindows_CFoundation_CIAsyncAction** result);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContextVtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContextVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext_get_Challenge(This, value) \
    ((This)->lpVtbl->get_Challenge(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext_VerifyResponseAsync(This, response, result) \
    ((This)->lpVtbl->VerifyResponseAsync(This, response, result))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext_ProvisionAsync(This, response, formatCard, result) \
    ((This)->lpVtbl->ProvisionAsync(This, response, formatCard, result))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext_ProvisionAsyncWithNewCardId(This, response, formatCard, newCardId, result) \
    ((This)->lpVtbl->ProvisionAsyncWithNewCardId(This, response, formatCard, newCardId, result))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext_ChangeAdministrativeKeyAsync(This, response, newAdministrativeKey, result) \
    ((This)->lpVtbl->ChangeAdministrativeKeyAsync(This, response, newAdministrativeKey, result))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardChallengeContext_INTERFACE_DEFINED__) */
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardConnect
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCard
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnect_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnect_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardConnect[] = L"Windows.Devices.SmartCards.ISmartCardConnect";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnectVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnect* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnect* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnect* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnect* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnect* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnect* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* ConnectAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnect* This,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardConnection** result);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnectVtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnect
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnectVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnect_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnect_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnect_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnect_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnect_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnect_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnect_ConnectAsync(This, result) \
    ((This)->lpVtbl->ConnectAsync(This, result))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnect;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnect_INTERFACE_DEFINED__) */
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardConnection
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardConnection
 *
 * Any object which implements this interface must also implement the following interfaces:
 *     Windows.Foundation.IClosable
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnection_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnection_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardConnection[] = L"Windows.Devices.SmartCards.ISmartCardConnection";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnectionVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnection* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnection* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnection* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnection* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnection* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnection* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* TransmitAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnection* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer* command,
        __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer** result);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnectionVtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnection
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnectionVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnection_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnection_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnection_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnection_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnection_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnection_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnection_TransmitAsync(This, command, result) \
    ((This)->lpVtbl->TransmitAsync(This, command, result))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnection;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardConnection_INTERFACE_DEFINED__) */
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardCryptogramGenerator
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardCryptogramGenerator
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardCryptogramGenerator[] = L"Windows.Devices.SmartCards.ISmartCardCryptogramGenerator";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_SupportedCryptogramMaterialTypes)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator* This,
        __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialType** result);
    HRESULT (STDMETHODCALLTYPE* get_SupportedCryptogramAlgorithms)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator* This,
        __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm** result);
    HRESULT (STDMETHODCALLTYPE* get_SupportedCryptogramMaterialPackageFormats)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator* This,
        __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageFormat** result);
    HRESULT (STDMETHODCALLTYPE* get_SupportedCryptogramMaterialPackageConfirmationResponseFormats)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator* This,
        __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat** result);
    HRESULT (STDMETHODCALLTYPE* get_SupportedSmartCardCryptogramStorageKeyCapabilities)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator* This,
        __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCapabilities** result);
    HRESULT (STDMETHODCALLTYPE* DeleteCryptogramMaterialStorageKeyAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator* This,
        HSTRING storageKeyName,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus** result);
    HRESULT (STDMETHODCALLTYPE* CreateCryptogramMaterialStorageKeyAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardUnlockPromptingBehavior promptingBehavior,
        HSTRING storageKeyName,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramStorageKeyAlgorithm algorithm,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramStorageKeyCapabilities capabilities,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus** result);
    HRESULT (STDMETHODCALLTYPE* RequestCryptogramMaterialStorageKeyInfoAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardUnlockPromptingBehavior promptingBehavior,
        HSTRING storageKeyName,
        enum __x_ABI_CWindows_CSecurity_CCryptography_CCore_CCryptographicPublicKeyBlobType format,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyInfo** result);
    HRESULT (STDMETHODCALLTYPE* ImportCryptogramMaterialPackageAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramMaterialPackageFormat format,
        HSTRING storageKeyName,
        HSTRING materialPackageName,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer* cryptogramMaterialPackage,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus** result);
    HRESULT (STDMETHODCALLTYPE* TryProvePossessionOfCryptogramMaterialPackageAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardUnlockPromptingBehavior promptingBehavior,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramMaterialPackageConfirmationResponseFormat responseFormat,
        HSTRING materialPackageName,
        HSTRING materialName,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer* challenge,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPossessionProof** result);
    HRESULT (STDMETHODCALLTYPE* RequestUnlockCryptogramMaterialForUseAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardUnlockPromptingBehavior promptingBehavior,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus** result);
    HRESULT (STDMETHODCALLTYPE* DeleteCryptogramMaterialPackageAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator* This,
        HSTRING materialPackageName,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus** result);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorVtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator_get_SupportedCryptogramMaterialTypes(This, result) \
    ((This)->lpVtbl->get_SupportedCryptogramMaterialTypes(This, result))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator_get_SupportedCryptogramAlgorithms(This, result) \
    ((This)->lpVtbl->get_SupportedCryptogramAlgorithms(This, result))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator_get_SupportedCryptogramMaterialPackageFormats(This, result) \
    ((This)->lpVtbl->get_SupportedCryptogramMaterialPackageFormats(This, result))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator_get_SupportedCryptogramMaterialPackageConfirmationResponseFormats(This, result) \
    ((This)->lpVtbl->get_SupportedCryptogramMaterialPackageConfirmationResponseFormats(This, result))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator_get_SupportedSmartCardCryptogramStorageKeyCapabilities(This, result) \
    ((This)->lpVtbl->get_SupportedSmartCardCryptogramStorageKeyCapabilities(This, result))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator_DeleteCryptogramMaterialStorageKeyAsync(This, storageKeyName, result) \
    ((This)->lpVtbl->DeleteCryptogramMaterialStorageKeyAsync(This, storageKeyName, result))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator_CreateCryptogramMaterialStorageKeyAsync(This, promptingBehavior, storageKeyName, algorithm, capabilities, result) \
    ((This)->lpVtbl->CreateCryptogramMaterialStorageKeyAsync(This, promptingBehavior, storageKeyName, algorithm, capabilities, result))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator_RequestCryptogramMaterialStorageKeyInfoAsync(This, promptingBehavior, storageKeyName, format, result) \
    ((This)->lpVtbl->RequestCryptogramMaterialStorageKeyInfoAsync(This, promptingBehavior, storageKeyName, format, result))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator_ImportCryptogramMaterialPackageAsync(This, format, storageKeyName, materialPackageName, cryptogramMaterialPackage, result) \
    ((This)->lpVtbl->ImportCryptogramMaterialPackageAsync(This, format, storageKeyName, materialPackageName, cryptogramMaterialPackage, result))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator_TryProvePossessionOfCryptogramMaterialPackageAsync(This, promptingBehavior, responseFormat, materialPackageName, materialName, challenge, result) \
    ((This)->lpVtbl->TryProvePossessionOfCryptogramMaterialPackageAsync(This, promptingBehavior, responseFormat, materialPackageName, materialName, challenge, result))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator_RequestUnlockCryptogramMaterialForUseAsync(This, promptingBehavior, result) \
    ((This)->lpVtbl->RequestUnlockCryptogramMaterialForUseAsync(This, promptingBehavior, result))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator_DeleteCryptogramMaterialPackageAsync(This, materialPackageName, result) \
    ((This)->lpVtbl->DeleteCryptogramMaterialPackageAsync(This, materialPackageName, result))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardCryptogramGenerator2
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 4.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardCryptogramGenerator
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardCryptogramGenerator2[] = L"Windows.Devices.SmartCards.ISmartCardCryptogramGenerator2";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2Vtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* ValidateRequestApduAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardUnlockPromptingBehavior promptingBehavior,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer* apduToValidate,
        __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep* cryptogramPlacementSteps,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus** result);
    HRESULT (STDMETHODCALLTYPE* GetAllCryptogramStorageKeyCharacteristicsAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2* This,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult** result);
    HRESULT (STDMETHODCALLTYPE* GetAllCryptogramMaterialPackageCharacteristicsAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2* This,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult** result);
    HRESULT (STDMETHODCALLTYPE* GetAllCryptogramMaterialPackageCharacteristicsWithStorageKeyAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2* This,
        HSTRING storageKeyName,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult** result);
    HRESULT (STDMETHODCALLTYPE* GetAllCryptogramMaterialCharacteristicsAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardUnlockPromptingBehavior promptingBehavior,
        HSTRING materialPackageName,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult** result);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2Vtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2Vtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2_ValidateRequestApduAsync(This, promptingBehavior, apduToValidate, cryptogramPlacementSteps, result) \
    ((This)->lpVtbl->ValidateRequestApduAsync(This, promptingBehavior, apduToValidate, cryptogramPlacementSteps, result))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2_GetAllCryptogramStorageKeyCharacteristicsAsync(This, result) \
    ((This)->lpVtbl->GetAllCryptogramStorageKeyCharacteristicsAsync(This, result))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2_GetAllCryptogramMaterialPackageCharacteristicsAsync(This, result) \
    ((This)->lpVtbl->GetAllCryptogramMaterialPackageCharacteristicsAsync(This, result))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2_GetAllCryptogramMaterialPackageCharacteristicsWithStorageKeyAsync(This, storageKeyName, result) \
    ((This)->lpVtbl->GetAllCryptogramMaterialPackageCharacteristicsWithStorageKeyAsync(This, storageKeyName, result))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2_GetAllCryptogramMaterialCharacteristicsAsync(This, promptingBehavior, materialPackageName, result) \
    ((This)->lpVtbl->GetAllCryptogramMaterialCharacteristicsAsync(This, promptingBehavior, materialPackageName, result))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGenerator2_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardCryptogramGeneratorStatics
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardCryptogramGenerator
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardCryptogramGeneratorStatics[] = L"Windows.Devices.SmartCards.ISmartCardCryptogramGeneratorStatics";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStaticsVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* GetSmartCardCryptogramGeneratorAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics* This,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGenerator** result);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStaticsVtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStaticsVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics_GetSmartCardCryptogramGeneratorAsync(This, result) \
    ((This)->lpVtbl->GetSmartCardCryptogramGeneratorAsync(This, result))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardCryptogramGeneratorStatics2
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 5.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardCryptogramGenerator
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x50000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics2_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics2_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardCryptogramGeneratorStatics2[] = L"Windows.Devices.SmartCards.ISmartCardCryptogramGeneratorStatics2";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics2Vtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics2* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics2* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics2* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics2* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics2* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics2* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* IsSupported)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics2* This,
        boolean* result);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics2Vtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics2
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics2Vtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics2_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics2_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics2_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics2_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics2_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics2_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics2_IsSupported(This, result) \
    ((This)->lpVtbl->IsSupported(This, result))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics2;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGeneratorStatics2_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x50000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 4.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult[] = L"Windows.Devices.SmartCards.ISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResultVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_OperationStatus)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramGeneratorOperationStatus* value);
    HRESULT (STDMETHODCALLTYPE* get_Characteristics)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult* This,
        __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialCharacteristics** value);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResultVtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResultVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_get_OperationStatus(This, value) \
    ((This)->lpVtbl->get_OperationStatus(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_get_Characteristics(This, value) \
    ((This)->lpVtbl->get_Characteristics(This, value))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 4.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult[] = L"Windows.Devices.SmartCards.ISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResultVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_OperationStatus)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramGeneratorOperationStatus* value);
    HRESULT (STDMETHODCALLTYPE* get_Characteristics)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult* This,
        __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageCharacteristics** value);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResultVtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResultVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_get_OperationStatus(This, value) \
    ((This)->lpVtbl->get_OperationStatus(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_get_Characteristics(This, value) \
    ((This)->lpVtbl->get_Characteristics(This, value))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 4.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult[] = L"Windows.Devices.SmartCards.ISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResultVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_OperationStatus)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramGeneratorOperationStatus* value);
    HRESULT (STDMETHODCALLTYPE* get_Characteristics)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult* This,
        __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramStorageKeyCharacteristics** value);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResultVtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResultVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_get_OperationStatus(This, value) \
    ((This)->lpVtbl->get_OperationStatus(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_get_Characteristics(This, value) \
    ((This)->lpVtbl->get_Characteristics(This, value))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardCryptogramMaterialCharacteristics
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 4.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardCryptogramMaterialCharacteristics
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardCryptogramMaterialCharacteristics[] = L"Windows.Devices.SmartCards.ISmartCardCryptogramMaterialCharacteristics";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristicsVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_MaterialName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics* This,
        HSTRING* value);
    HRESULT (STDMETHODCALLTYPE* get_AllowedAlgorithms)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics* This,
        __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm** value);
    HRESULT (STDMETHODCALLTYPE* get_AllowedProofOfPossessionAlgorithms)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics* This,
        __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramMaterialPackageConfirmationResponseFormat** value);
    HRESULT (STDMETHODCALLTYPE* get_AllowedValidations)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics* This,
        __FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramAlgorithm** value);
    HRESULT (STDMETHODCALLTYPE* get_MaterialType)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramMaterialType* value);
    HRESULT (STDMETHODCALLTYPE* get_ProtectionMethod)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramMaterialProtectionMethod* value);
    HRESULT (STDMETHODCALLTYPE* get_ProtectionVersion)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics* This,
        INT32* value);
    HRESULT (STDMETHODCALLTYPE* get_MaterialLength)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics* This,
        INT32* value);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristicsVtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristicsVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics_get_MaterialName(This, value) \
    ((This)->lpVtbl->get_MaterialName(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics_get_AllowedAlgorithms(This, value) \
    ((This)->lpVtbl->get_AllowedAlgorithms(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics_get_AllowedProofOfPossessionAlgorithms(This, value) \
    ((This)->lpVtbl->get_AllowedProofOfPossessionAlgorithms(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics_get_AllowedValidations(This, value) \
    ((This)->lpVtbl->get_AllowedValidations(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics_get_MaterialType(This, value) \
    ((This)->lpVtbl->get_MaterialType(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics_get_ProtectionMethod(This, value) \
    ((This)->lpVtbl->get_ProtectionMethod(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics_get_ProtectionVersion(This, value) \
    ((This)->lpVtbl->get_ProtectionVersion(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics_get_MaterialLength(This, value) \
    ((This)->lpVtbl->get_MaterialLength(This, value))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialCharacteristics_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardCryptogramMaterialPackageCharacteristics
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 4.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardCryptogramMaterialPackageCharacteristics
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardCryptogramMaterialPackageCharacteristics[] = L"Windows.Devices.SmartCards.ISmartCardCryptogramMaterialPackageCharacteristics";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristicsVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_PackageName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics* This,
        HSTRING* value);
    HRESULT (STDMETHODCALLTYPE* get_StorageKeyName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics* This,
        HSTRING* value);
    HRESULT (STDMETHODCALLTYPE* get_DateImported)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics* This,
        struct __x_ABI_CWindows_CFoundation_CDateTime* value);
    HRESULT (STDMETHODCALLTYPE* get_PackageFormat)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramMaterialPackageFormat* value);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristicsVtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristicsVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics_get_PackageName(This, value) \
    ((This)->lpVtbl->get_PackageName(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics_get_StorageKeyName(This, value) \
    ((This)->lpVtbl->get_StorageKeyName(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics_get_DateImported(This, value) \
    ((This)->lpVtbl->get_DateImported(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics_get_PackageFormat(This, value) \
    ((This)->lpVtbl->get_PackageFormat(This, value))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPackageCharacteristics_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardCryptogramMaterialPossessionProof
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardCryptogramMaterialPossessionProof
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPossessionProof_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPossessionProof_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardCryptogramMaterialPossessionProof[] = L"Windows.Devices.SmartCards.ISmartCardCryptogramMaterialPossessionProof";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPossessionProofVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPossessionProof* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPossessionProof* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPossessionProof* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPossessionProof* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPossessionProof* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPossessionProof* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_OperationStatus)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPossessionProof* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramGeneratorOperationStatus* value);
    HRESULT (STDMETHODCALLTYPE* get_Proof)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPossessionProof* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer** value);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPossessionProofVtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPossessionProof
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPossessionProofVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPossessionProof_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPossessionProof_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPossessionProof_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPossessionProof_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPossessionProof_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPossessionProof_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPossessionProof_get_OperationStatus(This, value) \
    ((This)->lpVtbl->get_OperationStatus(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPossessionProof_get_Proof(This, value) \
    ((This)->lpVtbl->get_Proof(This, value))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPossessionProof;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramMaterialPossessionProof_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardCryptogramPlacementStep
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardCryptogramPlacementStep
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardCryptogramPlacementStep[] = L"Windows.Devices.SmartCards.ISmartCardCryptogramPlacementStep";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStepVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_Algorithm)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramAlgorithm* value);
    HRESULT (STDMETHODCALLTYPE* put_Algorithm)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramAlgorithm value);
    HRESULT (STDMETHODCALLTYPE* get_SourceData)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer** value);
    HRESULT (STDMETHODCALLTYPE* put_SourceData)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer* value);
    HRESULT (STDMETHODCALLTYPE* get_CryptogramMaterialPackageName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep* This,
        HSTRING* value);
    HRESULT (STDMETHODCALLTYPE* put_CryptogramMaterialPackageName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep* This,
        HSTRING value);
    HRESULT (STDMETHODCALLTYPE* get_CryptogramMaterialName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep* This,
        HSTRING* value);
    HRESULT (STDMETHODCALLTYPE* put_CryptogramMaterialName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep* This,
        HSTRING value);
    HRESULT (STDMETHODCALLTYPE* get_TemplateOffset)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep* This,
        INT32* value);
    HRESULT (STDMETHODCALLTYPE* put_TemplateOffset)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep* This,
        INT32 value);
    HRESULT (STDMETHODCALLTYPE* get_CryptogramOffset)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep* This,
        INT32* value);
    HRESULT (STDMETHODCALLTYPE* put_CryptogramOffset)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep* This,
        INT32 value);
    HRESULT (STDMETHODCALLTYPE* get_CryptogramLength)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep* This,
        INT32* value);
    HRESULT (STDMETHODCALLTYPE* put_CryptogramLength)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep* This,
        INT32 value);
    HRESULT (STDMETHODCALLTYPE* get_CryptogramPlacementOptions)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramPlacementOptions* value);
    HRESULT (STDMETHODCALLTYPE* put_CryptogramPlacementOptions)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramPlacementOptions value);
    HRESULT (STDMETHODCALLTYPE* get_ChainedOutputStep)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep** value);
    HRESULT (STDMETHODCALLTYPE* put_ChainedOutputStep)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep* value);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStepVtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStepVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep_get_Algorithm(This, value) \
    ((This)->lpVtbl->get_Algorithm(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep_put_Algorithm(This, value) \
    ((This)->lpVtbl->put_Algorithm(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep_get_SourceData(This, value) \
    ((This)->lpVtbl->get_SourceData(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep_put_SourceData(This, value) \
    ((This)->lpVtbl->put_SourceData(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep_get_CryptogramMaterialPackageName(This, value) \
    ((This)->lpVtbl->get_CryptogramMaterialPackageName(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep_put_CryptogramMaterialPackageName(This, value) \
    ((This)->lpVtbl->put_CryptogramMaterialPackageName(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep_get_CryptogramMaterialName(This, value) \
    ((This)->lpVtbl->get_CryptogramMaterialName(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep_put_CryptogramMaterialName(This, value) \
    ((This)->lpVtbl->put_CryptogramMaterialName(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep_get_TemplateOffset(This, value) \
    ((This)->lpVtbl->get_TemplateOffset(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep_put_TemplateOffset(This, value) \
    ((This)->lpVtbl->put_TemplateOffset(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep_get_CryptogramOffset(This, value) \
    ((This)->lpVtbl->get_CryptogramOffset(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep_put_CryptogramOffset(This, value) \
    ((This)->lpVtbl->put_CryptogramOffset(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep_get_CryptogramLength(This, value) \
    ((This)->lpVtbl->get_CryptogramLength(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep_put_CryptogramLength(This, value) \
    ((This)->lpVtbl->put_CryptogramLength(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep_get_CryptogramPlacementOptions(This, value) \
    ((This)->lpVtbl->get_CryptogramPlacementOptions(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep_put_CryptogramPlacementOptions(This, value) \
    ((This)->lpVtbl->put_CryptogramPlacementOptions(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep_get_ChainedOutputStep(This, value) \
    ((This)->lpVtbl->get_ChainedOutputStep(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep_put_ChainedOutputStep(This, value) \
    ((This)->lpVtbl->put_ChainedOutputStep(This, value))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramPlacementStep_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardCryptogramStorageKeyCharacteristics
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 4.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyCharacteristics
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardCryptogramStorageKeyCharacteristics[] = L"Windows.Devices.SmartCards.ISmartCardCryptogramStorageKeyCharacteristics";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristicsVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_StorageKeyName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics* This,
        HSTRING* value);
    HRESULT (STDMETHODCALLTYPE* get_DateCreated)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics* This,
        struct __x_ABI_CWindows_CFoundation_CDateTime* value);
    HRESULT (STDMETHODCALLTYPE* get_Algorithm)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramStorageKeyAlgorithm* value);
    HRESULT (STDMETHODCALLTYPE* get_Capabilities)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramStorageKeyCapabilities* value);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristicsVtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristicsVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics_get_StorageKeyName(This, value) \
    ((This)->lpVtbl->get_StorageKeyName(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics_get_DateCreated(This, value) \
    ((This)->lpVtbl->get_DateCreated(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics_get_Algorithm(This, value) \
    ((This)->lpVtbl->get_Algorithm(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics_get_Capabilities(This, value) \
    ((This)->lpVtbl->get_Capabilities(This, value))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyCharacteristics_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardCryptogramStorageKeyInfo
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyInfo
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardCryptogramStorageKeyInfo[] = L"Windows.Devices.SmartCards.ISmartCardCryptogramStorageKeyInfo";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfoVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_OperationStatus)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramGeneratorOperationStatus* value);
    HRESULT (STDMETHODCALLTYPE* get_PublicKeyBlobType)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo* This,
        enum __x_ABI_CWindows_CSecurity_CCryptography_CCore_CCryptographicPublicKeyBlobType* value);
    HRESULT (STDMETHODCALLTYPE* get_PublicKey)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer** value);
    HRESULT (STDMETHODCALLTYPE* get_AttestationStatus)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptographicKeyAttestationStatus* value);
    HRESULT (STDMETHODCALLTYPE* get_Attestation)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer** value);
    HRESULT (STDMETHODCALLTYPE* get_AttestationCertificateChain)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer** value);
    HRESULT (STDMETHODCALLTYPE* get_Capabilities)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardCryptogramStorageKeyCapabilities* value);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfoVtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfoVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo_get_OperationStatus(This, value) \
    ((This)->lpVtbl->get_OperationStatus(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo_get_PublicKeyBlobType(This, value) \
    ((This)->lpVtbl->get_PublicKeyBlobType(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo_get_PublicKey(This, value) \
    ((This)->lpVtbl->get_PublicKey(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo_get_AttestationStatus(This, value) \
    ((This)->lpVtbl->get_AttestationStatus(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo_get_Attestation(This, value) \
    ((This)->lpVtbl->get_Attestation(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo_get_AttestationCertificateChain(This, value) \
    ((This)->lpVtbl->get_AttestationCertificateChain(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo_get_Capabilities(This, value) \
    ((This)->lpVtbl->get_Capabilities(This, value))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardCryptogramStorageKeyInfo2
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 3.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyInfo
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x30000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo2_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo2_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardCryptogramStorageKeyInfo2[] = L"Windows.Devices.SmartCards.ISmartCardCryptogramStorageKeyInfo2";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo2Vtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo2* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo2* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo2* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo2* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo2* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo2* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_OperationalRequirements)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo2* This,
        HSTRING* value);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo2Vtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo2
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo2Vtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo2_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo2_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo2_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo2_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo2_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo2_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo2_get_OperationalRequirements(This, value) \
    ((This)->lpVtbl->get_OperationalRequirements(This, value))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo2;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardCryptogramStorageKeyInfo2_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x30000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardEmulator
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardEmulator
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardEmulator[] = L"Windows.Devices.SmartCards.ISmartCardEmulator";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_EnablementPolicy)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardEmulatorEnablementPolicy* value);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorVtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator_get_EnablementPolicy(This, value) \
    ((This)->lpVtbl->get_EnablementPolicy(This, value))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardEmulator2
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardEmulator
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardEmulator2[] = L"Windows.Devices.SmartCards.ISmartCardEmulator2";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2Vtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* add_ApduReceived)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2* This,
        __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorApduReceivedEventArgs* value,
        EventRegistrationToken* token);
    HRESULT (STDMETHODCALLTYPE* remove_ApduReceived)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2* This,
        EventRegistrationToken value);
    HRESULT (STDMETHODCALLTYPE* add_ConnectionDeactivated)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2* This,
        __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardEmulator_Windows__CDevices__CSmartCards__CSmartCardEmulatorConnectionDeactivatedEventArgs* value,
        EventRegistrationToken* token);
    HRESULT (STDMETHODCALLTYPE* remove_ConnectionDeactivated)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2* This,
        EventRegistrationToken value);
    HRESULT (STDMETHODCALLTYPE* Start)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2* This);
    HRESULT (STDMETHODCALLTYPE* IsHostCardEmulationSupported)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2* This,
        boolean* value);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2Vtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2Vtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2_add_ApduReceived(This, value, token) \
    ((This)->lpVtbl->add_ApduReceived(This, value, token))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2_remove_ApduReceived(This, value) \
    ((This)->lpVtbl->remove_ApduReceived(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2_add_ConnectionDeactivated(This, value, token) \
    ((This)->lpVtbl->add_ConnectionDeactivated(This, value, token))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2_remove_ConnectionDeactivated(This, value) \
    ((This)->lpVtbl->remove_ConnectionDeactivated(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2_Start(This) \
    ((This)->lpVtbl->Start(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2_IsHostCardEmulationSupported(This, value) \
    ((This)->lpVtbl->IsHostCardEmulationSupported(This, value))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator2_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardEmulatorApduReceivedEventArgs
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardEmulatorApduReceivedEventArgs
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardEmulatorApduReceivedEventArgs[] = L"Windows.Devices.SmartCards.ISmartCardEmulatorApduReceivedEventArgs";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_CommandApdu)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer** value);
    HRESULT (STDMETHODCALLTYPE* get_ConnectionProperties)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionProperties** value);
    HRESULT (STDMETHODCALLTYPE* TryRespondAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer* responseApdu,
        __FIAsyncOperation_1_boolean** result);
    HRESULT (STDMETHODCALLTYPE* get_AutomaticResponseStatus)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardAutomaticResponseStatus* value);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsVtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs_get_CommandApdu(This, value) \
    ((This)->lpVtbl->get_CommandApdu(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs_get_ConnectionProperties(This, value) \
    ((This)->lpVtbl->get_ConnectionProperties(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs_TryRespondAsync(This, responseApdu, result) \
    ((This)->lpVtbl->TryRespondAsync(This, responseApdu, result))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs_get_AutomaticResponseStatus(This, value) \
    ((This)->lpVtbl->get_AutomaticResponseStatus(This, value))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardEmulatorApduReceivedEventArgs2
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardEmulatorApduReceivedEventArgs
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs2_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs2_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardEmulatorApduReceivedEventArgs2[] = L"Windows.Devices.SmartCards.ISmartCardEmulatorApduReceivedEventArgs2";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs2Vtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs2* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs2* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs2* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs2* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs2* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs2* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_State)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs2* This,
        UINT32* value);
    HRESULT (STDMETHODCALLTYPE* TryRespondWithStateAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs2* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer* responseApdu,
        __FIReference_1_UINT32* nextState,
        __FIAsyncOperation_1_boolean** result);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs2Vtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs2
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs2Vtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs2_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs2_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs2_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs2_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs2_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs2_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs2_get_State(This, value) \
    ((This)->lpVtbl->get_State(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs2_TryRespondWithStateAsync(This, responseApdu, nextState, result) \
    ((This)->lpVtbl->TryRespondWithStateAsync(This, responseApdu, nextState, result))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs2;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgs2_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardEmulatorApduReceivedEventArgsWithCryptograms
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardEmulatorApduReceivedEventArgs
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsWithCryptograms_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsWithCryptograms_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardEmulatorApduReceivedEventArgsWithCryptograms[] = L"Windows.Devices.SmartCards.ISmartCardEmulatorApduReceivedEventArgsWithCryptograms";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsWithCryptogramsVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsWithCryptograms* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsWithCryptograms* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsWithCryptograms* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsWithCryptograms* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsWithCryptograms* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsWithCryptograms* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* TryRespondWithCryptogramsAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsWithCryptograms* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer* responseTemplate,
        __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep* cryptogramPlacementSteps,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus** result);
    HRESULT (STDMETHODCALLTYPE* TryRespondWithCryptogramsAndStateAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsWithCryptograms* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer* responseTemplate,
        __FIIterable_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramPlacementStep* cryptogramPlacementSteps,
        __FIReference_1_UINT32* nextState,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardCryptogramGeneratorOperationStatus** result);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsWithCryptogramsVtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsWithCryptograms
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsWithCryptogramsVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsWithCryptograms_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsWithCryptograms_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsWithCryptograms_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsWithCryptograms_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsWithCryptograms_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsWithCryptograms_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsWithCryptograms_TryRespondWithCryptogramsAsync(This, responseTemplate, cryptogramPlacementSteps, result) \
    ((This)->lpVtbl->TryRespondWithCryptogramsAsync(This, responseTemplate, cryptogramPlacementSteps, result))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsWithCryptograms_TryRespondWithCryptogramsAndStateAsync(This, responseTemplate, cryptogramPlacementSteps, nextState, result) \
    ((This)->lpVtbl->TryRespondWithCryptogramsAndStateAsync(This, responseTemplate, cryptogramPlacementSteps, nextState, result))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsWithCryptograms;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorApduReceivedEventArgsWithCryptograms_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardEmulatorConnectionDeactivatedEventArgs
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardEmulatorConnectionDeactivatedEventArgs
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionDeactivatedEventArgs_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionDeactivatedEventArgs_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardEmulatorConnectionDeactivatedEventArgs[] = L"Windows.Devices.SmartCards.ISmartCardEmulatorConnectionDeactivatedEventArgs";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionDeactivatedEventArgsVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionDeactivatedEventArgs* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionDeactivatedEventArgs* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionDeactivatedEventArgs* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionDeactivatedEventArgs* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionDeactivatedEventArgs* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionDeactivatedEventArgs* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_ConnectionProperties)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionDeactivatedEventArgs* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionProperties** value);
    HRESULT (STDMETHODCALLTYPE* get_Reason)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionDeactivatedEventArgs* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardEmulatorConnectionDeactivatedReason* value);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionDeactivatedEventArgsVtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionDeactivatedEventArgs
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionDeactivatedEventArgsVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionDeactivatedEventArgs_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionDeactivatedEventArgs_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionDeactivatedEventArgs_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionDeactivatedEventArgs_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionDeactivatedEventArgs_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionDeactivatedEventArgs_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionDeactivatedEventArgs_get_ConnectionProperties(This, value) \
    ((This)->lpVtbl->get_ConnectionProperties(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionDeactivatedEventArgs_get_Reason(This, value) \
    ((This)->lpVtbl->get_Reason(This, value))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionDeactivatedEventArgs;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionDeactivatedEventArgs_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardEmulatorConnectionProperties
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardEmulatorConnectionProperties
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionProperties_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionProperties_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardEmulatorConnectionProperties[] = L"Windows.Devices.SmartCards.ISmartCardEmulatorConnectionProperties";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionPropertiesVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionProperties* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionProperties* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionProperties* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionProperties* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionProperties* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionProperties* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_Id)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionProperties* This,
        GUID* value);
    HRESULT (STDMETHODCALLTYPE* get_Source)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionProperties* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardEmulatorConnectionSource* value);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionPropertiesVtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionProperties
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionPropertiesVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionProperties_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionProperties_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionProperties_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionProperties_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionProperties_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionProperties_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionProperties_get_Id(This, value) \
    ((This)->lpVtbl->get_Id(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionProperties_get_Source(This, value) \
    ((This)->lpVtbl->get_Source(This, value))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionProperties;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorConnectionProperties_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardEmulatorStatics
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardEmulator
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardEmulatorStatics[] = L"Windows.Devices.SmartCards.ISmartCardEmulatorStatics";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStaticsVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* GetDefaultAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics* This,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardEmulator** result);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStaticsVtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStaticsVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics_GetDefaultAsync(This, result) \
    ((This)->lpVtbl->GetDefaultAsync(This, result))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardEmulatorStatics2
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardEmulator
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardEmulatorStatics2[] = L"Windows.Devices.SmartCards.ISmartCardEmulatorStatics2";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2Vtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* GetAppletIdGroupRegistrationsAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2* This,
        __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration** result);
    HRESULT (STDMETHODCALLTYPE* RegisterAppletIdGroupAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroup* appletIdGroup,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardAppletIdGroupRegistration** result);
    HRESULT (STDMETHODCALLTYPE* UnregisterAppletIdGroupAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardAppletIdGroupRegistration* registration,
        __x_ABI_CWindows_CFoundation_CIAsyncAction** result);
    HRESULT (STDMETHODCALLTYPE* get_MaxAppletIdGroupRegistrations)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2* This,
        UINT16* value);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2Vtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2Vtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2_GetAppletIdGroupRegistrationsAsync(This, result) \
    ((This)->lpVtbl->GetAppletIdGroupRegistrationsAsync(This, result))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2_RegisterAppletIdGroupAsync(This, appletIdGroup, result) \
    ((This)->lpVtbl->RegisterAppletIdGroupAsync(This, appletIdGroup, result))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2_UnregisterAppletIdGroupAsync(This, registration, result) \
    ((This)->lpVtbl->UnregisterAppletIdGroupAsync(This, registration, result))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2_get_MaxAppletIdGroupRegistrations(This, value) \
    ((This)->lpVtbl->get_MaxAppletIdGroupRegistrations(This, value))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics2_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardEmulatorStatics3
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 5.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardEmulator
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x50000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics3_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics3_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardEmulatorStatics3[] = L"Windows.Devices.SmartCards.ISmartCardEmulatorStatics3";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics3Vtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics3* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics3* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics3* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics3* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics3* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics3* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* IsSupported)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics3* This,
        boolean* result);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics3Vtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics3
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics3Vtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics3_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics3_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics3_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics3_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics3_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics3_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics3_IsSupported(This, result) \
    ((This)->lpVtbl->IsSupported(This, result))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics3;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulatorStatics3_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x50000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardPinPolicy
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardPinPolicy
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardPinPolicy[] = L"Windows.Devices.SmartCards.ISmartCardPinPolicy";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicyVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_MinLength)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy* This,
        UINT32* value);
    HRESULT (STDMETHODCALLTYPE* put_MinLength)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy* This,
        UINT32 value);
    HRESULT (STDMETHODCALLTYPE* get_MaxLength)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy* This,
        UINT32* value);
    HRESULT (STDMETHODCALLTYPE* put_MaxLength)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy* This,
        UINT32 value);
    HRESULT (STDMETHODCALLTYPE* get_UppercaseLetters)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardPinCharacterPolicyOption* value);
    HRESULT (STDMETHODCALLTYPE* put_UppercaseLetters)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardPinCharacterPolicyOption value);
    HRESULT (STDMETHODCALLTYPE* get_LowercaseLetters)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardPinCharacterPolicyOption* value);
    HRESULT (STDMETHODCALLTYPE* put_LowercaseLetters)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardPinCharacterPolicyOption value);
    HRESULT (STDMETHODCALLTYPE* get_Digits)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardPinCharacterPolicyOption* value);
    HRESULT (STDMETHODCALLTYPE* put_Digits)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardPinCharacterPolicyOption value);
    HRESULT (STDMETHODCALLTYPE* get_SpecialCharacters)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardPinCharacterPolicyOption* value);
    HRESULT (STDMETHODCALLTYPE* put_SpecialCharacters)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardPinCharacterPolicyOption value);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicyVtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicyVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy_get_MinLength(This, value) \
    ((This)->lpVtbl->get_MinLength(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy_put_MinLength(This, value) \
    ((This)->lpVtbl->put_MinLength(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy_get_MaxLength(This, value) \
    ((This)->lpVtbl->get_MaxLength(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy_put_MaxLength(This, value) \
    ((This)->lpVtbl->put_MaxLength(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy_get_UppercaseLetters(This, value) \
    ((This)->lpVtbl->get_UppercaseLetters(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy_put_UppercaseLetters(This, value) \
    ((This)->lpVtbl->put_UppercaseLetters(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy_get_LowercaseLetters(This, value) \
    ((This)->lpVtbl->get_LowercaseLetters(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy_put_LowercaseLetters(This, value) \
    ((This)->lpVtbl->put_LowercaseLetters(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy_get_Digits(This, value) \
    ((This)->lpVtbl->get_Digits(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy_put_Digits(This, value) \
    ((This)->lpVtbl->put_Digits(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy_get_SpecialCharacters(This, value) \
    ((This)->lpVtbl->get_SpecialCharacters(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy_put_SpecialCharacters(This, value) \
    ((This)->lpVtbl->put_SpecialCharacters(This, value))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy_INTERFACE_DEFINED__) */
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardPinResetDeferral
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardPinResetDeferral
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetDeferral_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetDeferral_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardPinResetDeferral[] = L"Windows.Devices.SmartCards.ISmartCardPinResetDeferral";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetDeferralVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetDeferral* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetDeferral* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetDeferral* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetDeferral* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetDeferral* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetDeferral* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* Complete)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetDeferral* This);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetDeferralVtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetDeferral
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetDeferralVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetDeferral_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetDeferral_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetDeferral_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetDeferral_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetDeferral_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetDeferral_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetDeferral_Complete(This) \
    ((This)->lpVtbl->Complete(This))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetDeferral;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetDeferral_INTERFACE_DEFINED__) */
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardPinResetRequest
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardPinResetRequest
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequest_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequest_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardPinResetRequest[] = L"Windows.Devices.SmartCards.ISmartCardPinResetRequest";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequestVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequest* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequest* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequest* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequest* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequest* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequest* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_Challenge)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequest* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer** value);
    HRESULT (STDMETHODCALLTYPE* get_Deadline)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequest* This,
        struct __x_ABI_CWindows_CFoundation_CDateTime* value);
    HRESULT (STDMETHODCALLTYPE* GetDeferral)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequest* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetDeferral** result);
    HRESULT (STDMETHODCALLTYPE* SetResponse)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequest* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer* response);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequestVtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequest
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequestVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequest_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequest_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequest_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequest_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequest_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequest_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequest_get_Challenge(This, value) \
    ((This)->lpVtbl->get_Challenge(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequest_get_Deadline(This, value) \
    ((This)->lpVtbl->get_Deadline(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequest_GetDeferral(This, result) \
    ((This)->lpVtbl->GetDeferral(This, result))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequest_SetResponse(This, response) \
    ((This)->lpVtbl->SetResponse(This, response))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequest;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetRequest_INTERFACE_DEFINED__) */
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardProvisioning
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardProvisioning
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardProvisioning[] = L"Windows.Devices.SmartCards.ISmartCardProvisioning";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_SmartCard)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCard** value);
    HRESULT (STDMETHODCALLTYPE* GetIdAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning* This,
        __FIAsyncOperation_1_GUID** result);
    HRESULT (STDMETHODCALLTYPE* GetNameAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning* This,
        __FIAsyncOperation_1_HSTRING** result);
    HRESULT (STDMETHODCALLTYPE* GetChallengeContextAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning* This,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardChallengeContext** result);
    HRESULT (STDMETHODCALLTYPE* RequestPinChangeAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning* This,
        __FIAsyncOperation_1_boolean** result);
    HRESULT (STDMETHODCALLTYPE* RequestPinResetAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinResetHandler* handler,
        __FIAsyncOperation_1_boolean** result);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningVtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning_get_SmartCard(This, value) \
    ((This)->lpVtbl->get_SmartCard(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning_GetIdAsync(This, result) \
    ((This)->lpVtbl->GetIdAsync(This, result))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning_GetNameAsync(This, result) \
    ((This)->lpVtbl->GetNameAsync(This, result))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning_GetChallengeContextAsync(This, result) \
    ((This)->lpVtbl->GetChallengeContextAsync(This, result))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning_RequestPinChangeAsync(This, result) \
    ((This)->lpVtbl->RequestPinChangeAsync(This, result))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning_RequestPinResetAsync(This, handler, result) \
    ((This)->lpVtbl->RequestPinResetAsync(This, handler, result))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning_INTERFACE_DEFINED__) */
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardProvisioning2
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardProvisioning
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning2_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning2_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardProvisioning2[] = L"Windows.Devices.SmartCards.ISmartCardProvisioning2";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning2Vtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning2* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning2* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning2* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning2* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning2* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning2* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* GetAuthorityKeyContainerNameAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning2* This,
        __FIAsyncOperation_1_HSTRING** result);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning2Vtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning2
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning2Vtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning2_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning2_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning2_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning2_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning2_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning2_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning2_GetAuthorityKeyContainerNameAsync(This, result) \
    ((This)->lpVtbl->GetAuthorityKeyContainerNameAsync(This, result))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning2;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioning2_INTERFACE_DEFINED__) */
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardProvisioningStatics
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardProvisioning
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardProvisioningStatics[] = L"Windows.Devices.SmartCards.ISmartCardProvisioningStatics";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStaticsVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* FromSmartCardAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCard* card,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning** result);
    HRESULT (STDMETHODCALLTYPE* RequestVirtualSmartCardCreationAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics* This,
        HSTRING friendlyName,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer* administrativeKey,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy* pinPolicy,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning** result);
    HRESULT (STDMETHODCALLTYPE* RequestVirtualSmartCardCreationAsyncWithCardId)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics* This,
        HSTRING friendlyName,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer* administrativeKey,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy* pinPolicy,
        GUID cardId,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning** result);
    HRESULT (STDMETHODCALLTYPE* RequestVirtualSmartCardDeletionAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCard* card,
        __FIAsyncOperation_1_boolean** result);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStaticsVtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStaticsVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics_FromSmartCardAsync(This, card, result) \
    ((This)->lpVtbl->FromSmartCardAsync(This, card, result))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics_RequestVirtualSmartCardCreationAsync(This, friendlyName, administrativeKey, pinPolicy, result) \
    ((This)->lpVtbl->RequestVirtualSmartCardCreationAsync(This, friendlyName, administrativeKey, pinPolicy, result))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics_RequestVirtualSmartCardCreationAsyncWithCardId(This, friendlyName, administrativeKey, pinPolicy, cardId, result) \
    ((This)->lpVtbl->RequestVirtualSmartCardCreationAsyncWithCardId(This, friendlyName, administrativeKey, pinPolicy, cardId, result))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics_RequestVirtualSmartCardDeletionAsync(This, card, result) \
    ((This)->lpVtbl->RequestVirtualSmartCardDeletionAsync(This, card, result))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics_INTERFACE_DEFINED__) */
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardProvisioningStatics2
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardProvisioning
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics2_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics2_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardProvisioningStatics2[] = L"Windows.Devices.SmartCards.ISmartCardProvisioningStatics2";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics2Vtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics2* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics2* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics2* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics2* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics2* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics2* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* RequestAttestedVirtualSmartCardCreationAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics2* This,
        HSTRING friendlyName,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer* administrativeKey,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy* pinPolicy,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning** result);
    HRESULT (STDMETHODCALLTYPE* RequestAttestedVirtualSmartCardCreationAsyncWithCardId)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics2* This,
        HSTRING friendlyName,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer* administrativeKey,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardPinPolicy* pinPolicy,
        GUID cardId,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardProvisioning** result);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics2Vtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics2
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics2Vtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics2_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics2_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics2_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics2_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics2_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics2_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics2_RequestAttestedVirtualSmartCardCreationAsync(This, friendlyName, administrativeKey, pinPolicy, result) \
    ((This)->lpVtbl->RequestAttestedVirtualSmartCardCreationAsync(This, friendlyName, administrativeKey, pinPolicy, result))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics2_RequestAttestedVirtualSmartCardCreationAsyncWithCardId(This, friendlyName, administrativeKey, pinPolicy, cardId, result) \
    ((This)->lpVtbl->RequestAttestedVirtualSmartCardCreationAsyncWithCardId(This, friendlyName, administrativeKey, pinPolicy, cardId, result))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics2;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardProvisioningStatics2_INTERFACE_DEFINED__) */
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardReader
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardReader
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardReader[] = L"Windows.Devices.SmartCards.ISmartCardReader";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_DeviceId)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader* This,
        HSTRING* value);
    HRESULT (STDMETHODCALLTYPE* get_Name)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader* This,
        HSTRING* value);
    HRESULT (STDMETHODCALLTYPE* get_Kind)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardReaderKind* value);
    HRESULT (STDMETHODCALLTYPE* GetStatusAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader* This,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReaderStatus** result);
    HRESULT (STDMETHODCALLTYPE* FindAllCardsAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader* This,
        __FIAsyncOperation_1___FIVectorView_1_Windows__CDevices__CSmartCards__CSmartCard** result);
    HRESULT (STDMETHODCALLTYPE* add_CardAdded)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader* This,
        __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardAddedEventArgs* handler,
        EventRegistrationToken* token);
    HRESULT (STDMETHODCALLTYPE* remove_CardAdded)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader* This,
        EventRegistrationToken token);
    HRESULT (STDMETHODCALLTYPE* add_CardRemoved)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader* This,
        __FITypedEventHandler_2_Windows__CDevices__CSmartCards__CSmartCardReader_Windows__CDevices__CSmartCards__CCardRemovedEventArgs* handler,
        EventRegistrationToken* token);
    HRESULT (STDMETHODCALLTYPE* remove_CardRemoved)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader* This,
        EventRegistrationToken token);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderVtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader_get_DeviceId(This, value) \
    ((This)->lpVtbl->get_DeviceId(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader_get_Name(This, value) \
    ((This)->lpVtbl->get_Name(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader_get_Kind(This, value) \
    ((This)->lpVtbl->get_Kind(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader_GetStatusAsync(This, result) \
    ((This)->lpVtbl->GetStatusAsync(This, result))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader_FindAllCardsAsync(This, result) \
    ((This)->lpVtbl->FindAllCardsAsync(This, result))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader_add_CardAdded(This, handler, token) \
    ((This)->lpVtbl->add_CardAdded(This, handler, token))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader_remove_CardAdded(This, token) \
    ((This)->lpVtbl->remove_CardAdded(This, token))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader_add_CardRemoved(This, handler, token) \
    ((This)->lpVtbl->add_CardRemoved(This, handler, token))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader_remove_CardRemoved(This, token) \
    ((This)->lpVtbl->remove_CardRemoved(This, token))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReader_INTERFACE_DEFINED__) */
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardReaderStatics
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardReader
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderStatics_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderStatics_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardReaderStatics[] = L"Windows.Devices.SmartCards.ISmartCardReaderStatics";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderStaticsVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderStatics* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderStatics* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderStatics* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderStatics* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderStatics* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderStatics* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* GetDeviceSelector)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderStatics* This,
        HSTRING* selector);
    HRESULT (STDMETHODCALLTYPE* GetDeviceSelectorWithKind)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderStatics* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardReaderKind kind,
        HSTRING* selector);
    HRESULT (STDMETHODCALLTYPE* FromIdAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderStatics* This,
        HSTRING deviceId,
        __FIAsyncOperation_1_Windows__CDevices__CSmartCards__CSmartCardReader** result);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderStaticsVtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderStatics
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderStaticsVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderStatics_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderStatics_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderStatics_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderStatics_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderStatics_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderStatics_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderStatics_GetDeviceSelector(This, selector) \
    ((This)->lpVtbl->GetDeviceSelector(This, selector))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderStatics_GetDeviceSelectorWithKind(This, kind, selector) \
    ((This)->lpVtbl->GetDeviceSelectorWithKind(This, kind, selector))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderStatics_FromIdAsync(This, deviceId, result) \
    ((This)->lpVtbl->FromIdAsync(This, deviceId, result))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderStatics;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardReaderStatics_INTERFACE_DEFINED__) */
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardTriggerDetails
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardBackgroundTriggerContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardTriggerDetails
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDBACKGROUNDTRIGGERCONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardTriggerDetails[] = L"Windows.Devices.SmartCards.ISmartCardTriggerDetails";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetailsVtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_TriggerType)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails* This,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardTriggerType* value);
    HRESULT (STDMETHODCALLTYPE* get_SourceAppletId)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer** value);
    HRESULT (STDMETHODCALLTYPE* get_TriggerData)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer** value);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetailsVtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetailsVtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails_get_TriggerType(This, value) \
    ((This)->lpVtbl->get_TriggerType(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails_get_SourceAppletId(This, value) \
    ((This)->lpVtbl->get_SourceAppletId(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails_get_TriggerData(This, value) \
    ((This)->lpVtbl->get_TriggerData(This, value))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDBACKGROUNDTRIGGERCONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardTriggerDetails2
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardBackgroundTriggerContract in version 1.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardTriggerDetails
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDBACKGROUNDTRIGGERCONTRACT_VERSION >= 0x10000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails2_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails2_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardTriggerDetails2[] = L"Windows.Devices.SmartCards.ISmartCardTriggerDetails2";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails2Vtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails2* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails2* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails2* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails2* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails2* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails2* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_Emulator)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails2* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardEmulator** value);
    HRESULT (STDMETHODCALLTYPE* TryLaunchCurrentAppAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails2* This,
        HSTRING arguments,
        __FIAsyncOperation_1_boolean** result);
    HRESULT (STDMETHODCALLTYPE* TryLaunchCurrentAppWithBehaviorAsync)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails2* This,
        HSTRING arguments,
        enum __x_ABI_CWindows_CDevices_CSmartCards_CSmartCardLaunchBehavior behavior,
        __FIAsyncOperation_1_boolean** result);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails2Vtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails2
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails2Vtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails2_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails2_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails2_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails2_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails2_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails2_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails2_get_Emulator(This, value) \
    ((This)->lpVtbl->get_Emulator(This, value))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails2_TryLaunchCurrentAppAsync(This, arguments, result) \
    ((This)->lpVtbl->TryLaunchCurrentAppAsync(This, arguments, result))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails2_TryLaunchCurrentAppWithBehaviorAsync(This, arguments, behavior, result) \
    ((This)->lpVtbl->TryLaunchCurrentAppWithBehaviorAsync(This, arguments, behavior, result))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails2;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails2_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDBACKGROUNDTRIGGERCONTRACT_VERSION >= 0x10000

/*
 *
 * Interface Windows.Devices.SmartCards.ISmartCardTriggerDetails3
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardBackgroundTriggerContract in version 3.0
 *
 * Interface is a part of the implementation of type Windows.Devices.SmartCards.SmartCardTriggerDetails
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDBACKGROUNDTRIGGERCONTRACT_VERSION >= 0x30000
#if !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails3_INTERFACE_DEFINED__)
#define ____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails3_INTERFACE_DEFINED__
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Devices_SmartCards_ISmartCardTriggerDetails3[] = L"Windows.Devices.SmartCards.ISmartCardTriggerDetails3";
typedef struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails3Vtbl
{
    BEGIN_INTERFACE

    HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails3* This,
        REFIID riid,
        void** ppvObject);
    ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails3* This);
    ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails3* This);
    HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails3* This,
        ULONG* iidCount,
        IID** iids);
    HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails3* This,
        HSTRING* className);
    HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails3* This,
        TrustLevel* trustLevel);
    HRESULT (STDMETHODCALLTYPE* get_SmartCard)(__x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails3* This,
        __x_ABI_CWindows_CDevices_CSmartCards_CISmartCard** value);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails3Vtbl;

interface __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails3
{
    CONST_VTBL struct __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails3Vtbl* lpVtbl;
};

#ifdef COBJMACROS

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails3_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails3_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails3_Release(This) \
    ((This)->lpVtbl->Release(This))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails3_GetIids(This, iidCount, iids) \
    ((This)->lpVtbl->GetIids(This, iidCount, iids))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails3_GetRuntimeClassName(This, className) \
    ((This)->lpVtbl->GetRuntimeClassName(This, className))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails3_GetTrustLevel(This, trustLevel) \
    ((This)->lpVtbl->GetTrustLevel(This, trustLevel))

#define __x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails3_get_SmartCard(This, value) \
    ((This)->lpVtbl->get_SmartCard(This, value))

#endif /* COBJMACROS */

EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails3;
#endif /* !defined(____x_ABI_CWindows_CDevices_CSmartCards_CISmartCardTriggerDetails3_INTERFACE_DEFINED__) */
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDBACKGROUNDTRIGGERCONTRACT_VERSION >= 0x30000

/*
 *
 * Class Windows.Devices.SmartCards.CardAddedEventArgs
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ICardAddedEventArgs ** Default Interface **
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_CardAddedEventArgs_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_CardAddedEventArgs_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_CardAddedEventArgs[] = L"Windows.Devices.SmartCards.CardAddedEventArgs";
#endif
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Class Windows.Devices.SmartCards.CardRemovedEventArgs
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ICardRemovedEventArgs ** Default Interface **
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_CardRemovedEventArgs_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_CardRemovedEventArgs_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_CardRemovedEventArgs[] = L"Windows.Devices.SmartCards.CardRemovedEventArgs";
#endif
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Class Windows.Devices.SmartCards.KnownSmartCardAppletIds
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 6.0
 *
 * RuntimeClass contains static methods.
 *   Static Methods exist on the Windows.Devices.SmartCards.IKnownSmartCardAppletIds interface starting with version 6.0 of the Windows.Devices.SmartCards.SmartCardEmulatorContract API contract
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x60000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_KnownSmartCardAppletIds_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_KnownSmartCardAppletIds_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_KnownSmartCardAppletIds[] = L"Windows.Devices.SmartCards.KnownSmartCardAppletIds";
#endif
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x60000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCard
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCard ** Default Interface **
 *    Windows.Devices.SmartCards.ISmartCardConnect
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCard_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCard_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCard[] = L"Windows.Devices.SmartCards.SmartCard";
#endif
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardAppletIdGroup
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * RuntimeClass can be activated.
 *   Type can be activated via RoActivateInstance starting with version 1.0 of the Windows.Devices.SmartCards.SmartCardEmulatorContract API contract
 *   Type can be activated via the Windows.Devices.SmartCards.ISmartCardAppletIdGroupFactory interface starting with version 1.0 of the Windows.Devices.SmartCards.SmartCardEmulatorContract API contract
 *
 * RuntimeClass contains static methods.
 *   Static Methods exist on the Windows.Devices.SmartCards.ISmartCardAppletIdGroupStatics interface starting with version 1.0 of the Windows.Devices.SmartCards.SmartCardEmulatorContract API contract
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardAppletIdGroup ** Default Interface **
 *    Windows.Devices.SmartCards.ISmartCardAppletIdGroup2
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardAppletIdGroup_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardAppletIdGroup_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardAppletIdGroup[] = L"Windows.Devices.SmartCards.SmartCardAppletIdGroup";
#endif
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardAppletIdGroupRegistration
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardAppletIdGroupRegistration ** Default Interface **
 *    Windows.Devices.SmartCards.ISmartCardAppletIdGroupRegistration2
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardAppletIdGroupRegistration_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardAppletIdGroupRegistration_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardAppletIdGroupRegistration[] = L"Windows.Devices.SmartCards.SmartCardAppletIdGroupRegistration";
#endif
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardAutomaticResponseApdu
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * RuntimeClass can be activated.
 *   Type can be activated via the Windows.Devices.SmartCards.ISmartCardAutomaticResponseApduFactory interface starting with version 1.0 of the Windows.Devices.SmartCards.SmartCardEmulatorContract API contract
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardAutomaticResponseApdu ** Default Interface **
 *    Windows.Devices.SmartCards.ISmartCardAutomaticResponseApdu2
 *    Windows.Devices.SmartCards.ISmartCardAutomaticResponseApdu3
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardAutomaticResponseApdu_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardAutomaticResponseApdu_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardAutomaticResponseApdu[] = L"Windows.Devices.SmartCards.SmartCardAutomaticResponseApdu";
#endif
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardChallengeContext
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardChallengeContext ** Default Interface **
 *    Windows.Foundation.IClosable
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardChallengeContext_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardChallengeContext_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardChallengeContext[] = L"Windows.Devices.SmartCards.SmartCardChallengeContext";
#endif
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardConnection
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardConnection ** Default Interface **
 *    Windows.Foundation.IClosable
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardConnection_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardConnection_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardConnection[] = L"Windows.Devices.SmartCards.SmartCardConnection";
#endif
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardCryptogramGenerator
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 * RuntimeClass contains static methods.
 *   Static Methods exist on the Windows.Devices.SmartCards.ISmartCardCryptogramGeneratorStatics interface starting with version 2.0 of the Windows.Devices.SmartCards.SmartCardEmulatorContract API contract
 *   Static Methods exist on the Windows.Devices.SmartCards.ISmartCardCryptogramGeneratorStatics2 interface starting with version 5.0 of the Windows.Devices.SmartCards.SmartCardEmulatorContract API contract
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardCryptogramGenerator ** Default Interface **
 *    Windows.Devices.SmartCards.ISmartCardCryptogramGenerator2
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramGenerator_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramGenerator_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardCryptogramGenerator[] = L"Windows.Devices.SmartCards.SmartCardCryptogramGenerator";
#endif
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 4.0
 *
 * RuntimeClass can be activated.
 *   Type can be activated via RoActivateInstance starting with version 4.0 of the Windows.Devices.SmartCards.SmartCardEmulatorContract API contract
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult ** Default Interface **
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult[] = L"Windows.Devices.SmartCards.SmartCardCryptogramGetAllCryptogramMaterialCharacteristicsResult";
#endif
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 4.0
 *
 * RuntimeClass can be activated.
 *   Type can be activated via RoActivateInstance starting with version 4.0 of the Windows.Devices.SmartCards.SmartCardEmulatorContract API contract
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult ** Default Interface **
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult[] = L"Windows.Devices.SmartCards.SmartCardCryptogramGetAllCryptogramMaterialPackageCharacteristicsResult";
#endif
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 4.0
 *
 * RuntimeClass can be activated.
 *   Type can be activated via RoActivateInstance starting with version 4.0 of the Windows.Devices.SmartCards.SmartCardEmulatorContract API contract
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult ** Default Interface **
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult[] = L"Windows.Devices.SmartCards.SmartCardCryptogramGetAllCryptogramStorageKeyCharacteristicsResult";
#endif
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardCryptogramMaterialCharacteristics
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 4.0
 *
 * RuntimeClass can be activated.
 *   Type can be activated via RoActivateInstance starting with version 4.0 of the Windows.Devices.SmartCards.SmartCardEmulatorContract API contract
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardCryptogramMaterialCharacteristics ** Default Interface **
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramMaterialCharacteristics_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramMaterialCharacteristics_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardCryptogramMaterialCharacteristics[] = L"Windows.Devices.SmartCards.SmartCardCryptogramMaterialCharacteristics";
#endif
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardCryptogramMaterialPackageCharacteristics
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 4.0
 *
 * RuntimeClass can be activated.
 *   Type can be activated via RoActivateInstance starting with version 4.0 of the Windows.Devices.SmartCards.SmartCardEmulatorContract API contract
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardCryptogramMaterialPackageCharacteristics ** Default Interface **
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramMaterialPackageCharacteristics_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramMaterialPackageCharacteristics_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardCryptogramMaterialPackageCharacteristics[] = L"Windows.Devices.SmartCards.SmartCardCryptogramMaterialPackageCharacteristics";
#endif
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardCryptogramMaterialPossessionProof
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardCryptogramMaterialPossessionProof ** Default Interface **
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramMaterialPossessionProof_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramMaterialPossessionProof_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardCryptogramMaterialPossessionProof[] = L"Windows.Devices.SmartCards.SmartCardCryptogramMaterialPossessionProof";
#endif
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardCryptogramPlacementStep
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 * RuntimeClass can be activated.
 *   Type can be activated via RoActivateInstance starting with version 2.0 of the Windows.Devices.SmartCards.SmartCardEmulatorContract API contract
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardCryptogramPlacementStep ** Default Interface **
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramPlacementStep_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramPlacementStep_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardCryptogramPlacementStep[] = L"Windows.Devices.SmartCards.SmartCardCryptogramPlacementStep";
#endif
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyCharacteristics
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 4.0
 *
 * RuntimeClass can be activated.
 *   Type can be activated via RoActivateInstance starting with version 4.0 of the Windows.Devices.SmartCards.SmartCardEmulatorContract API contract
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardCryptogramStorageKeyCharacteristics ** Default Interface **
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramStorageKeyCharacteristics_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramStorageKeyCharacteristics_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardCryptogramStorageKeyCharacteristics[] = L"Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyCharacteristics";
#endif
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x40000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyInfo
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 2.0
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardCryptogramStorageKeyInfo ** Default Interface **
 *    Windows.Devices.SmartCards.ISmartCardCryptogramStorageKeyInfo2
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramStorageKeyInfo_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardCryptogramStorageKeyInfo_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardCryptogramStorageKeyInfo[] = L"Windows.Devices.SmartCards.SmartCardCryptogramStorageKeyInfo";
#endif
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x20000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardEmulator
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * RuntimeClass contains static methods.
 *   Static Methods exist on the Windows.Devices.SmartCards.ISmartCardEmulatorStatics interface starting with version 1.0 of the Windows.Devices.SmartCards.SmartCardEmulatorContract API contract
 *   Static Methods exist on the Windows.Devices.SmartCards.ISmartCardEmulatorStatics3 interface starting with version 5.0 of the Windows.Devices.SmartCards.SmartCardEmulatorContract API contract
 *   Static Methods exist on the Windows.Devices.SmartCards.ISmartCardEmulatorStatics2 interface starting with version 1.0 of the Windows.Devices.SmartCards.SmartCardEmulatorContract API contract
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardEmulator ** Default Interface **
 *    Windows.Devices.SmartCards.ISmartCardEmulator2
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardEmulator_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardEmulator_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardEmulator[] = L"Windows.Devices.SmartCards.SmartCardEmulator";
#endif
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardEmulatorApduReceivedEventArgs
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardEmulatorApduReceivedEventArgs ** Default Interface **
 *    Windows.Devices.SmartCards.ISmartCardEmulatorApduReceivedEventArgsWithCryptograms
 *    Windows.Devices.SmartCards.ISmartCardEmulatorApduReceivedEventArgs2
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardEmulatorApduReceivedEventArgs_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardEmulatorApduReceivedEventArgs_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardEmulatorApduReceivedEventArgs[] = L"Windows.Devices.SmartCards.SmartCardEmulatorApduReceivedEventArgs";
#endif
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardEmulatorConnectionDeactivatedEventArgs
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardEmulatorConnectionDeactivatedEventArgs ** Default Interface **
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardEmulatorConnectionDeactivatedEventArgs_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardEmulatorConnectionDeactivatedEventArgs_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardEmulatorConnectionDeactivatedEventArgs[] = L"Windows.Devices.SmartCards.SmartCardEmulatorConnectionDeactivatedEventArgs";
#endif
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardEmulatorConnectionProperties
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardEmulatorContract in version 1.0
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardEmulatorConnectionProperties ** Default Interface **
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardEmulatorConnectionProperties_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardEmulatorConnectionProperties_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardEmulatorConnectionProperties[] = L"Windows.Devices.SmartCards.SmartCardEmulatorConnectionProperties";
#endif
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDEMULATORCONTRACT_VERSION >= 0x10000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardPinPolicy
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * RuntimeClass can be activated.
 *   Type can be activated via RoActivateInstance starting with version 1.0 of the Windows.Foundation.UniversalApiContract API contract
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardPinPolicy ** Default Interface **
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardPinPolicy_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardPinPolicy_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardPinPolicy[] = L"Windows.Devices.SmartCards.SmartCardPinPolicy";
#endif
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardPinResetDeferral
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardPinResetDeferral ** Default Interface **
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardPinResetDeferral_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardPinResetDeferral_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardPinResetDeferral[] = L"Windows.Devices.SmartCards.SmartCardPinResetDeferral";
#endif
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardPinResetRequest
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardPinResetRequest ** Default Interface **
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardPinResetRequest_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardPinResetRequest_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardPinResetRequest[] = L"Windows.Devices.SmartCards.SmartCardPinResetRequest";
#endif
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardProvisioning
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * RuntimeClass contains static methods.
 *   Static Methods exist on the Windows.Devices.SmartCards.ISmartCardProvisioningStatics interface starting with version 1.0 of the Windows.Foundation.UniversalApiContract API contract
 *   Static Methods exist on the Windows.Devices.SmartCards.ISmartCardProvisioningStatics2 interface starting with version 1.0 of the Windows.Foundation.UniversalApiContract API contract
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardProvisioning ** Default Interface **
 *    Windows.Devices.SmartCards.ISmartCardProvisioning2
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardProvisioning_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardProvisioning_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardProvisioning[] = L"Windows.Devices.SmartCards.SmartCardProvisioning";
#endif
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardReader
 *
 * Introduced to Windows.Foundation.UniversalApiContract in version 1.0
 *
 * RuntimeClass contains static methods.
 *   Static Methods exist on the Windows.Devices.SmartCards.ISmartCardReaderStatics interface starting with version 1.0 of the Windows.Foundation.UniversalApiContract API contract
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardReader ** Default Interface **
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardReader_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardReader_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardReader[] = L"Windows.Devices.SmartCards.SmartCardReader";
#endif
#endif // WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000

/*
 *
 * Class Windows.Devices.SmartCards.SmartCardTriggerDetails
 *
 * Introduced to Windows.Devices.SmartCards.SmartCardBackgroundTriggerContract in version 1.0
 *
 * Class implements the following interfaces:
 *    Windows.Devices.SmartCards.ISmartCardTriggerDetails ** Default Interface **
 *    Windows.Devices.SmartCards.ISmartCardTriggerDetails2
 *    Windows.Devices.SmartCards.ISmartCardTriggerDetails3
 *
 * Class Threading Model:  Both Single and Multi Threaded Apartment
 *
 * Class Marshaling Behavior:  Agile - Class is agile
 *
 */
#if WINDOWS_DEVICES_SMARTCARDS_SMARTCARDBACKGROUNDTRIGGERCONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardTriggerDetails_DEFINED
#define RUNTIMECLASS_Windows_Devices_SmartCards_SmartCardTriggerDetails_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Devices_SmartCards_SmartCardTriggerDetails[] = L"Windows.Devices.SmartCards.SmartCardTriggerDetails";
#endif
#endif // WINDOWS_DEVICES_SMARTCARDS_SMARTCARDBACKGROUNDTRIGGERCONTRACT_VERSION >= 0x10000

#endif // defined(__cplusplus)
#pragma pop_macro("MIDL_CONST_ID")
// Restore the original value of the 'DEPRECATED' macro
#pragma pop_macro("DEPRECATED")

#ifdef __clang__
#pragma clang diagnostic pop // deprecated-declarations
#else
#pragma warning(pop)
#endif
#endif // __windows2Edevices2Esmartcards_p_h__

#endif // __windows2Edevices2Esmartcards_h__
