

/* this ALWAYS GENERATED file contains the definitions for the interfaces */


 /* File created by MIDL compiler version 8.00.0603 */
/* @@MIDL_FILE_HEADING(  ) */

#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 __windows2Esecurity2Ecryptography2Ecertificates_h__
#define __windows2Esecurity2Ecryptography2Ecertificates_h__

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

/* Forward Declarations */ 

#ifndef ____FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_FWD_DEFINED__
#define ____FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_FWD_DEFINED__
typedef interface __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate;

#endif 	/* ____FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_FWD_DEFINED__ */


#ifndef ____FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_FWD_DEFINED__
#define ____FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_FWD_DEFINED__
typedef interface __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate;

#endif 	/* ____FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_FWD_DEFINED__ */


#ifndef ____FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_FWD_DEFINED__
#define ____FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_FWD_DEFINED__
typedef interface __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult;

#endif 	/* ____FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_FWD_DEFINED__ */


#ifndef ____FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_FWD_DEFINED__
#define ____FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_FWD_DEFINED__
typedef interface __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult;

#endif 	/* ____FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_FWD_DEFINED__ */


#ifndef ____FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_FWD_DEFINED__
#define ____FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_FWD_DEFINED__
typedef interface __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo;

#endif 	/* ____FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_FWD_DEFINED__ */


#ifndef ____FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_FWD_DEFINED__
#define ____FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_FWD_DEFINED__
typedef interface __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo;

#endif 	/* ____FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_FWD_DEFINED__ */


#ifndef ____FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_FWD_DEFINED__
#define ____FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_FWD_DEFINED__
typedef interface __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate;

#endif 	/* ____FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_FWD_DEFINED__ */


#ifndef ____FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_FWD_DEFINED__
#define ____FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_FWD_DEFINED__
typedef interface __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult;

#endif 	/* ____FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_FWD_DEFINED__ */


#ifndef ____FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_FWD_DEFINED__
#define ____FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_FWD_DEFINED__
typedef interface __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo;

#endif 	/* ____FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_FWD_DEFINED__ */


#ifndef ____FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_FWD_DEFINED__
#define ____FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_FWD_DEFINED__
typedef interface __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate;

#endif 	/* ____FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_FWD_DEFINED__ */


#ifndef ____FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_FWD_DEFINED__
#define ____FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_FWD_DEFINED__
typedef interface __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult;

#endif 	/* ____FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_FWD_DEFINED__ */


#ifndef ____FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_FWD_DEFINED__
#define ____FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_FWD_DEFINED__
typedef interface __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate;

#endif 	/* ____FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_FWD_DEFINED__ */


#ifndef ____FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_FWD_DEFINED__
#define ____FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_FWD_DEFINED__
typedef interface __FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate __FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate;

#endif 	/* ____FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_FWD_DEFINED__ */


#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain_FWD_DEFINED__
#define ____FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain_FWD_DEFINED__
typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain;

#endif 	/* ____FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain_FWD_DEFINED__ */


#ifndef ____FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain_FWD_DEFINED__
#define ____FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain_FWD_DEFINED__
typedef interface __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain;

#endif 	/* ____FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain_FWD_DEFINED__ */


#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult_FWD_DEFINED__
#define ____FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult_FWD_DEFINED__
typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult;

#endif 	/* ____FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult_FWD_DEFINED__ */


#ifndef ____FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult_FWD_DEFINED__
#define ____FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult_FWD_DEFINED__
typedef interface __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult;

#endif 	/* ____FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    interface ICertificateRequestProperties;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties2_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties2_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties2 __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties2;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    interface ICertificateRequestProperties2;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties2_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    interface ICertificateEnrollmentManagerStatics;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics2_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics2_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics2 __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics2;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    interface ICertificateEnrollmentManagerStatics2;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics2_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAttestationHelperStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAttestationHelperStatics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAttestationHelperStatics __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAttestationHelperStatics;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    interface IKeyAttestationHelperStatics;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAttestationHelperStatics_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStoresStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStoresStatics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStoresStatics __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStoresStatics;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    interface ICertificateStoresStatics;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStoresStatics_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIUserCertificateEnrollmentManager_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIUserCertificateEnrollmentManager_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIUserCertificateEnrollmentManager __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIUserCertificateEnrollmentManager;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    interface IUserCertificateEnrollmentManager;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIUserCertificateEnrollmentManager_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStore_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStore_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStore __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStore;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    interface ICertificateStore;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStore_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAlgorithmNamesStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAlgorithmNamesStatics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAlgorithmNamesStatics __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAlgorithmNamesStatics;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    interface IKeyAlgorithmNamesStatics;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAlgorithmNamesStatics_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyStorageProviderNamesStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyStorageProviderNamesStatics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyStorageProviderNamesStatics __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyStorageProviderNamesStatics;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    interface IKeyStorageProviderNamesStatics;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyStorageProviderNamesStatics_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    interface IChainBuildingParameters;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainValidationParameters_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainValidationParameters_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainValidationParameters __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainValidationParameters;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    interface IChainValidationParameters;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainValidationParameters_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQuery_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQuery_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQuery __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQuery;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    interface ICertificateQuery;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQuery_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateChain_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateChain_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateChain __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateChain;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    interface ICertificateChain;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateChain_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    interface ICertificate;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateFactory_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateFactory_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateFactory __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateFactory;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    interface ICertificateFactory;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateFactory_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsTimestampInfo_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsTimestampInfo_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsTimestampInfo __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsTimestampInfo;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    interface ICmsTimestampInfo;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsTimestampInfo_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsSignerInfo_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsSignerInfo_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsSignerInfo __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsSignerInfo;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    interface ICmsSignerInfo;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsSignerInfo_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignature_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignature_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignature __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignature;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    interface ICmsAttachedSignature;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignature_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureFactory_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureFactory_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureFactory __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureFactory;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    interface ICmsAttachedSignatureFactory;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureFactory_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureStatics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureStatics __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureStatics;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    interface ICmsAttachedSignatureStatics;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureStatics_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignature_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignature_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignature __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignature;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    interface ICmsDetachedSignature;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignature_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureFactory_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureFactory_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureFactory __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureFactory;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    interface ICmsDetachedSignatureFactory;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureFactory_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureStatics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureStatics __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureStatics;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    interface ICmsDetachedSignatureStatics;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureStatics_FWD_DEFINED__ */


/* header files for imported files */
#include "inspectable.h"
#include "AsyncInfo.h"
#include "EventToken.h"
#include "Windows.Foundation.h"
#include "Windows.Networking.h"
#include "Windows.Storage.Streams.h"

#ifdef __cplusplus
extern "C"{
#endif 


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0000 */
/* [local] */ 

#ifdef __cplusplus
} /*extern "C"*/ 
#endif
#include <windows.foundation.collections.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Security {
namespace Cryptography {
namespace Certificates {
class Certificate;
} /*Certificates*/
} /*Cryptography*/
} /*Security*/
} /*Windows*/
}
#endif

#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Security {
namespace Cryptography {
namespace Certificates {
interface ICertificate;
} /*Certificates*/
} /*Cryptography*/
} /*Security*/
} /*Windows*/
}
#endif


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0000 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0000_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0668 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0668 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0668_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0668_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0001 */
/* [local] */ 

#ifndef DEF___FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_USE
#define DEF___FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("676fc159-f15c-58bd-91a7-28f7e795c756"))
IIterator<ABI::Windows::Security::Cryptography::Certificates::Certificate*> : IIterator_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Security::Cryptography::Certificates::Certificate*, ABI::Windows::Security::Cryptography::Certificates::ICertificate*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IIterator`1<Windows.Security.Cryptography.Certificates.Certificate>"; }
};
typedef IIterator<ABI::Windows::Security::Cryptography::Certificates::Certificate*> __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_t;
#define ____FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_FWD_DEFINED__
#define __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate ABI::Windows::Foundation::Collections::__FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_USE */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0001 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0001_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0001_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0669 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0669 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0669_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0669_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0002 */
/* [local] */ 

#ifndef DEF___FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_USE
#define DEF___FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("0c7d1423-e8fd-5a91-b55c-8bfbe7ac2d40"))
IIterable<ABI::Windows::Security::Cryptography::Certificates::Certificate*> : IIterable_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Security::Cryptography::Certificates::Certificate*, ABI::Windows::Security::Cryptography::Certificates::ICertificate*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IIterable`1<Windows.Security.Cryptography.Certificates.Certificate>"; }
};
typedef IIterable<ABI::Windows::Security::Cryptography::Certificates::Certificate*> __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_t;
#define ____FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_FWD_DEFINED__
#define __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate ABI::Windows::Foundation::Collections::__FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_USE */

#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Security {
namespace Cryptography {
namespace Certificates {
enum ChainValidationResult;
} /*Certificates*/
} /*Cryptography*/
} /*Security*/
} /*Windows*/
}
#endif


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0002 */
/* [local] */ 





extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0002_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0002_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0670 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0670 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0670_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0670_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0003 */
/* [local] */ 

#ifndef DEF___FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_USE
#define DEF___FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("8bcad2b7-0e3b-5eae-bf69-e1f6d9c888f8"))
IIterator<enum ABI::Windows::Security::Cryptography::Certificates::ChainValidationResult> : IIterator_impl<enum ABI::Windows::Security::Cryptography::Certificates::ChainValidationResult> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IIterator`1<Windows.Security.Cryptography.Certificates.ChainValidationResult>"; }
};
typedef IIterator<enum ABI::Windows::Security::Cryptography::Certificates::ChainValidationResult> __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_t;
#define ____FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_FWD_DEFINED__
#define __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult ABI::Windows::Foundation::Collections::__FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_USE */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0003 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0003_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0003_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0671 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0671 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0671_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0671_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0004 */
/* [local] */ 

#ifndef DEF___FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_USE
#define DEF___FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("2628f58f-3f02-54f2-808f-e1117709d6d0"))
IIterable<enum ABI::Windows::Security::Cryptography::Certificates::ChainValidationResult> : IIterable_impl<enum ABI::Windows::Security::Cryptography::Certificates::ChainValidationResult> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IIterable`1<Windows.Security.Cryptography.Certificates.ChainValidationResult>"; }
};
typedef IIterable<enum ABI::Windows::Security::Cryptography::Certificates::ChainValidationResult> __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_t;
#define ____FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_FWD_DEFINED__
#define __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult ABI::Windows::Foundation::Collections::__FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_USE */
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Security {
namespace Cryptography {
namespace Certificates {
class CmsSignerInfo;
} /*Certificates*/
} /*Cryptography*/
} /*Security*/
} /*Windows*/
}
#endif

#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Security {
namespace Cryptography {
namespace Certificates {
interface ICmsSignerInfo;
} /*Certificates*/
} /*Cryptography*/
} /*Security*/
} /*Windows*/
}
#endif


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0004 */
/* [local] */ 





extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0004_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0004_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0672 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0672 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0672_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0672_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0005 */
/* [local] */ 

#ifndef DEF___FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_USE
#define DEF___FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("ba691628-d419-5e0a-b924-03ebc236b11e"))
IIterator<ABI::Windows::Security::Cryptography::Certificates::CmsSignerInfo*> : IIterator_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Security::Cryptography::Certificates::CmsSignerInfo*, ABI::Windows::Security::Cryptography::Certificates::ICmsSignerInfo*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IIterator`1<Windows.Security.Cryptography.Certificates.CmsSignerInfo>"; }
};
typedef IIterator<ABI::Windows::Security::Cryptography::Certificates::CmsSignerInfo*> __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_t;
#define ____FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_FWD_DEFINED__
#define __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo ABI::Windows::Foundation::Collections::__FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_USE */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0005 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0005_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0005_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0673 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0673 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0673_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0673_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0006 */
/* [local] */ 

#ifndef DEF___FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_USE
#define DEF___FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("6af24174-2dda-5a54-a0b9-4d6690059427"))
IIterable<ABI::Windows::Security::Cryptography::Certificates::CmsSignerInfo*> : IIterable_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Security::Cryptography::Certificates::CmsSignerInfo*, ABI::Windows::Security::Cryptography::Certificates::ICmsSignerInfo*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IIterable`1<Windows.Security.Cryptography.Certificates.CmsSignerInfo>"; }
};
typedef IIterable<ABI::Windows::Security::Cryptography::Certificates::CmsSignerInfo*> __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_t;
#define ____FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_FWD_DEFINED__
#define __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo ABI::Windows::Foundation::Collections::__FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_USE */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0006 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0006_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0006_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0674 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0674 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0674_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0674_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0007 */
/* [local] */ 

#ifndef DEF___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_USE
#define DEF___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("963f7013-77c2-51c5-8038-b5bcef633edb"))
IVectorView<ABI::Windows::Security::Cryptography::Certificates::Certificate*> : IVectorView_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Security::Cryptography::Certificates::Certificate*, ABI::Windows::Security::Cryptography::Certificates::ICertificate*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IVectorView`1<Windows.Security.Cryptography.Certificates.Certificate>"; }
};
typedef IVectorView<ABI::Windows::Security::Cryptography::Certificates::Certificate*> __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_t;
#define ____FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_FWD_DEFINED__
#define __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate ABI::Windows::Foundation::Collections::__FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_USE */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0007 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0007_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0007_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0675 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0675 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0675_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0675_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0008 */
/* [local] */ 

#ifndef DEF___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_USE
#define DEF___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("cb383486-c2bc-5756-912d-6a708a07e5bd"))
IVectorView<enum ABI::Windows::Security::Cryptography::Certificates::ChainValidationResult> : IVectorView_impl<enum ABI::Windows::Security::Cryptography::Certificates::ChainValidationResult> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IVectorView`1<Windows.Security.Cryptography.Certificates.ChainValidationResult>"; }
};
typedef IVectorView<enum ABI::Windows::Security::Cryptography::Certificates::ChainValidationResult> __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_t;
#define ____FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_FWD_DEFINED__
#define __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult ABI::Windows::Foundation::Collections::__FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_USE */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0008 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0008_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0008_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0676 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0676 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0676_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0676_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0009 */
/* [local] */ 

#ifndef DEF___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_USE
#define DEF___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("f46bcaa8-747c-5a93-82fe-85d63549fe81"))
IVectorView<ABI::Windows::Security::Cryptography::Certificates::CmsSignerInfo*> : IVectorView_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Security::Cryptography::Certificates::CmsSignerInfo*, ABI::Windows::Security::Cryptography::Certificates::ICmsSignerInfo*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IVectorView`1<Windows.Security.Cryptography.Certificates.CmsSignerInfo>"; }
};
typedef IVectorView<ABI::Windows::Security::Cryptography::Certificates::CmsSignerInfo*> __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_t;
#define ____FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_FWD_DEFINED__
#define __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo ABI::Windows::Foundation::Collections::__FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_USE */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0009 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0009_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0009_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0677 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0677 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0677_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0677_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0010 */
/* [local] */ 

#ifndef DEF___FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_USE
#define DEF___FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("36282c0f-2f1f-57f4-b2b1-867af90c3d13"))
IVector<ABI::Windows::Security::Cryptography::Certificates::Certificate*> : IVector_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Security::Cryptography::Certificates::Certificate*, ABI::Windows::Security::Cryptography::Certificates::ICertificate*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IVector`1<Windows.Security.Cryptography.Certificates.Certificate>"; }
};
typedef IVector<ABI::Windows::Security::Cryptography::Certificates::Certificate*> __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_t;
#define ____FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_FWD_DEFINED__
#define __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate ABI::Windows::Foundation::Collections::__FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_USE */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0010 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0010_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0010_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0678 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0678 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0678_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0678_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0011 */
/* [local] */ 

#ifndef DEF___FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_USE
#define DEF___FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("d7828cf7-4301-58d3-aab5-06e5eefcf79f"))
IVector<enum ABI::Windows::Security::Cryptography::Certificates::ChainValidationResult> : IVector_impl<enum ABI::Windows::Security::Cryptography::Certificates::ChainValidationResult> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IVector`1<Windows.Security.Cryptography.Certificates.ChainValidationResult>"; }
};
typedef IVector<enum ABI::Windows::Security::Cryptography::Certificates::ChainValidationResult> __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_t;
#define ____FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_FWD_DEFINED__
#define __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult ABI::Windows::Foundation::Collections::__FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_USE */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0011 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0011_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0011_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0679 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0679 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0679_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0679_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0012 */
/* [local] */ 

#ifndef DEF___FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_USE
#define DEF___FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("1896faee-23e2-59ca-9802-0f48eed98ef4"))
IAsyncOperationCompletedHandler<__FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate*> : IAsyncOperationCompletedHandler_impl<__FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate*> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.AsyncOperationCompletedHandler`1<Windows.Foundation.Collections.IVectorView`1<Windows.Security.Cryptography.Certificates.Certificate>>"; }
};
typedef IAsyncOperationCompletedHandler<__FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate*> __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_t;
#define ____FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_FWD_DEFINED__
#define __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate ABI::Windows::Foundation::__FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_t

/* ABI */ } /* Windows */ } /* Foundation */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_USE */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0012 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0012_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0012_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0680 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0680 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0680_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0680_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0013 */
/* [local] */ 

#ifndef DEF___FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_USE
#define DEF___FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("9b26648e-b32f-5909-a635-78e6d3bb4067"))
IAsyncOperation<__FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate*> : IAsyncOperation_impl<__FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate*> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IVectorView`1<Windows.Security.Cryptography.Certificates.Certificate>>"; }
};
typedef IAsyncOperation<__FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate*> __FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_t;
#define ____FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_FWD_DEFINED__
#define __FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate ABI::Windows::Foundation::__FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_t

/* ABI */ } /* Windows */ } /* Foundation */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_USE */
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Security {
namespace Cryptography {
namespace Certificates {
class CertificateChain;
} /*Certificates*/
} /*Cryptography*/
} /*Security*/
} /*Windows*/
}
#endif

#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Security {
namespace Cryptography {
namespace Certificates {
interface ICertificateChain;
} /*Certificates*/
} /*Cryptography*/
} /*Security*/
} /*Windows*/
}
#endif


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0013 */
/* [local] */ 





extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0013_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0013_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0681 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0681 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0681_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0681_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0014 */
/* [local] */ 

#ifndef DEF___FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain_USE
#define DEF___FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("4c3f50e9-90e3-5a30-9015-4aa0376904f3"))
IAsyncOperationCompletedHandler<ABI::Windows::Security::Cryptography::Certificates::CertificateChain*> : IAsyncOperationCompletedHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Security::Cryptography::Certificates::CertificateChain*, ABI::Windows::Security::Cryptography::Certificates::ICertificateChain*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.AsyncOperationCompletedHandler`1<Windows.Security.Cryptography.Certificates.CertificateChain>"; }
};
typedef IAsyncOperationCompletedHandler<ABI::Windows::Security::Cryptography::Certificates::CertificateChain*> __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain_t;
#define ____FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain_FWD_DEFINED__
#define __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain ABI::Windows::Foundation::__FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain_t

/* ABI */ } /* Windows */ } /* Foundation */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain_USE */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0014 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0014_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0014_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0682 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0682 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0682_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0682_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0015 */
/* [local] */ 

#ifndef DEF___FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain_USE
#define DEF___FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("f618c7d4-aee1-58ae-afe8-fc336daf0395"))
IAsyncOperation<ABI::Windows::Security::Cryptography::Certificates::CertificateChain*> : IAsyncOperation_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Security::Cryptography::Certificates::CertificateChain*, ABI::Windows::Security::Cryptography::Certificates::ICertificateChain*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.IAsyncOperation`1<Windows.Security.Cryptography.Certificates.CertificateChain>"; }
};
typedef IAsyncOperation<ABI::Windows::Security::Cryptography::Certificates::CertificateChain*> __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain_t;
#define ____FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain_FWD_DEFINED__
#define __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain ABI::Windows::Foundation::__FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain_t

/* ABI */ } /* Windows */ } /* Foundation */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain_USE */

#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Security {
namespace Cryptography {
namespace Certificates {
enum SignatureValidationResult;
} /*Certificates*/
} /*Cryptography*/
} /*Security*/
} /*Windows*/
}
#endif


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0015 */
/* [local] */ 





extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0015_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0015_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0683 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0683 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0683_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0683_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0016 */
/* [local] */ 

#ifndef DEF___FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult_USE
#define DEF___FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("dff50005-78ad-5f4f-a085-cb614a674a25"))
IAsyncOperationCompletedHandler<enum ABI::Windows::Security::Cryptography::Certificates::SignatureValidationResult> : IAsyncOperationCompletedHandler_impl<enum ABI::Windows::Security::Cryptography::Certificates::SignatureValidationResult> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.AsyncOperationCompletedHandler`1<Windows.Security.Cryptography.Certificates.SignatureValidationResult>"; }
};
typedef IAsyncOperationCompletedHandler<enum ABI::Windows::Security::Cryptography::Certificates::SignatureValidationResult> __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult_t;
#define ____FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult_FWD_DEFINED__
#define __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult ABI::Windows::Foundation::__FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult_t

/* ABI */ } /* Windows */ } /* Foundation */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult_USE */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0016 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0016_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0016_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0684 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0684 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0684_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0684_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0017 */
/* [local] */ 

#ifndef DEF___FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult_USE
#define DEF___FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("f09c0bcf-ce3b-5dff-971f-2c3ffe6fd04d"))
IAsyncOperation<enum ABI::Windows::Security::Cryptography::Certificates::SignatureValidationResult> : IAsyncOperation_impl<enum ABI::Windows::Security::Cryptography::Certificates::SignatureValidationResult> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.IAsyncOperation`1<Windows.Security.Cryptography.Certificates.SignatureValidationResult>"; }
};
typedef IAsyncOperation<enum ABI::Windows::Security::Cryptography::Certificates::SignatureValidationResult> __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult_t;
#define ____FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult_FWD_DEFINED__
#define __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult ABI::Windows::Foundation::__FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult_t

/* ABI */ } /* Windows */ } /* Foundation */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult_USE */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0017 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0017_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0017_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0685 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0685 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0685_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0685_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0018 */
/* [local] */ 

#ifndef DEF___FIAsyncOperationCompletedHandler_1_HSTRING_USE
#define DEF___FIAsyncOperationCompletedHandler_1_HSTRING_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
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>"; }
};
typedef IAsyncOperationCompletedHandler<HSTRING> __FIAsyncOperationCompletedHandler_1_HSTRING_t;
#define ____FIAsyncOperationCompletedHandler_1_HSTRING_FWD_DEFINED__
#define __FIAsyncOperationCompletedHandler_1_HSTRING ABI::Windows::Foundation::__FIAsyncOperationCompletedHandler_1_HSTRING_t

/* ABI */ } /* Windows */ } /* Foundation */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIAsyncOperationCompletedHandler_1_HSTRING_USE */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0018 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0018_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0018_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0686 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0686 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0686_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0686_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0019 */
/* [local] */ 

#ifndef DEF___FIAsyncOperation_1_HSTRING_USE
#define DEF___FIAsyncOperation_1_HSTRING_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
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>"; }
};
typedef IAsyncOperation<HSTRING> __FIAsyncOperation_1_HSTRING_t;
#define ____FIAsyncOperation_1_HSTRING_FWD_DEFINED__
#define __FIAsyncOperation_1_HSTRING ABI::Windows::Foundation::__FIAsyncOperation_1_HSTRING_t

/* ABI */ } /* Windows */ } /* Foundation */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIAsyncOperation_1_HSTRING_USE */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0019 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0019_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0019_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0687 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0687 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0687_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0687_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0020 */
/* [local] */ 

#ifndef DEF___FIIterator_1_HSTRING_USE
#define DEF___FIIterator_1_HSTRING_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("8c304ebb-6615-50a4-8829-879ecd443236"))
IIterator<HSTRING> : IIterator_impl<HSTRING> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IIterator`1<String>"; }
};
typedef IIterator<HSTRING> __FIIterator_1_HSTRING_t;
#define ____FIIterator_1_HSTRING_FWD_DEFINED__
#define __FIIterator_1_HSTRING ABI::Windows::Foundation::Collections::__FIIterator_1_HSTRING_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIIterator_1_HSTRING_USE */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0020 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0020_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0020_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0688 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0688 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0688_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0688_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0021 */
/* [local] */ 

#ifndef DEF___FIIterable_1_HSTRING_USE
#define DEF___FIIterable_1_HSTRING_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("e2fcc7c1-3bfc-5a0b-b2b0-72e769d1cb7e"))
IIterable<HSTRING> : IIterable_impl<HSTRING> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IIterable`1<String>"; }
};
typedef IIterable<HSTRING> __FIIterable_1_HSTRING_t;
#define ____FIIterable_1_HSTRING_FWD_DEFINED__
#define __FIIterable_1_HSTRING ABI::Windows::Foundation::Collections::__FIIterable_1_HSTRING_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIIterable_1_HSTRING_USE */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0021 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0021_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0021_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0689 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0689 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0689_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0689_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0022 */
/* [local] */ 

#ifndef DEF___FIVectorView_1_HSTRING_USE
#define DEF___FIVectorView_1_HSTRING_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("2f13c006-a03a-5f69-b090-75a43e33423e"))
IVectorView<HSTRING> : IVectorView_impl<HSTRING> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IVectorView`1<String>"; }
};
typedef IVectorView<HSTRING> __FIVectorView_1_HSTRING_t;
#define ____FIVectorView_1_HSTRING_FWD_DEFINED__
#define __FIVectorView_1_HSTRING ABI::Windows::Foundation::Collections::__FIVectorView_1_HSTRING_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIVectorView_1_HSTRING_USE */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0022 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0022_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0022_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0690 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0690 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0690_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0690_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0023 */
/* [local] */ 

#ifndef DEF___FIVector_1_HSTRING_USE
#define DEF___FIVector_1_HSTRING_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation { namespace Collections {
template <>
struct __declspec(uuid("98b9acc1-4b56-532e-ac73-03d5291cca90"))
IVector<HSTRING> : IVector_impl<HSTRING> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.Collections.IVector`1<String>"; }
};
typedef IVector<HSTRING> __FIVector_1_HSTRING_t;
#define ____FIVector_1_HSTRING_FWD_DEFINED__
#define __FIVector_1_HSTRING ABI::Windows::Foundation::Collections::__FIVector_1_HSTRING_t

/* ABI */ } /* Windows */ } /* Foundation */ } /* Collections */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIVector_1_HSTRING_USE */

#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Storage {
namespace Streams {
interface IBuffer;
} /*Streams*/
} /*Storage*/
} /*Windows*/
}
#endif


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0023 */
/* [local] */ 





extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0023_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0023_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0691 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0691 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0691_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0691_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0024 */
/* [local] */ 

#ifndef DEF___FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBuffer_USE
#define DEF___FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBuffer_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
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>"; }
};
typedef IAsyncOperationCompletedHandler<ABI::Windows::Storage::Streams::IBuffer*> __FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBuffer_t;
#define ____FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBuffer_FWD_DEFINED__
#define __FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBuffer ABI::Windows::Foundation::__FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBuffer_t

/* ABI */ } /* Windows */ } /* Foundation */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIAsyncOperationCompletedHandler_1_Windows__CStorage__CStreams__CIBuffer_USE */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0024 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0024_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0024_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0692 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0692 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0692_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0692_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0025 */
/* [local] */ 

#ifndef DEF___FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer_USE
#define DEF___FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
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>"; }
};
typedef IAsyncOperation<ABI::Windows::Storage::Streams::IBuffer*> __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer_t;
#define ____FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer_FWD_DEFINED__
#define __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer ABI::Windows::Foundation::__FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer_t

/* ABI */ } /* Windows */ } /* Foundation */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer_USE */
#if defined(__cplusplus)
}
#endif // defined(__cplusplus)
#include <Windows.Foundation.h>
#if !defined(__windows2Enetworking_h__)
#include <Windows.Networking.h>
#endif // !defined(__windows2Enetworking_h__)
#if !defined(__windows2Estorage2Estreams_h__)
#include <Windows.Storage.Streams.h>
#endif // !defined(__windows2Estorage2Estreams_h__)
#if defined(__cplusplus)
extern "C" {
#endif // defined(__cplusplus)
#if !defined(__cplusplus)
typedef struct __x_ABI_CWindows_CFoundation_CDateTime __x_ABI_CWindows_CFoundation_CDateTime;

#endif

#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Networking {
class HostName;
} /*Networking*/
} /*Windows*/
}
#endif


#if !defined(__cplusplus)
#if !defined(__cplusplus)

typedef enum __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CEnrollKeyUsages __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CEnrollKeyUsages;


#endif /* end if !defined(__cplusplus) */


#endif
#if !defined(__cplusplus)
#if !defined(__cplusplus)

typedef enum __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CKeyProtectionLevel __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CKeyProtectionLevel;


#endif /* end if !defined(__cplusplus) */


#endif
#if !defined(__cplusplus)
#if !defined(__cplusplus)

typedef enum __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CExportOption __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CExportOption;


#endif /* end if !defined(__cplusplus) */


#endif
#if !defined(__cplusplus)
#if !defined(__cplusplus)

typedef enum __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CKeySize __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CKeySize;


#endif /* end if !defined(__cplusplus) */


#endif
#if !defined(__cplusplus)
#if !defined(__cplusplus)

typedef enum __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CInstallOptions __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CInstallOptions;


#endif /* end if !defined(__cplusplus) */


#endif
#if !defined(__cplusplus)
#if !defined(__cplusplus)

typedef enum __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CCertificateChainPolicy __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CCertificateChainPolicy;


#endif /* end if !defined(__cplusplus) */


#endif
#if !defined(__cplusplus)
#if !defined(__cplusplus)

typedef enum __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CChainValidationResult __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CChainValidationResult;


#endif /* end if !defined(__cplusplus) */


#endif
#if !defined(__cplusplus)
#if !defined(__cplusplus)

typedef enum __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CSignatureValidationResult __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CSignatureValidationResult;


#endif /* end if !defined(__cplusplus) */


#endif





















#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Security {
namespace Cryptography {
namespace Certificates {
class CertificateRequestProperties;
} /*Certificates*/
} /*Cryptography*/
} /*Security*/
} /*Windows*/
}
#endif
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Security {
namespace Cryptography {
namespace Certificates {
class UserCertificateEnrollmentManager;
} /*Certificates*/
} /*Cryptography*/
} /*Security*/
} /*Windows*/
}
#endif
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Security {
namespace Cryptography {
namespace Certificates {
class CertificateQuery;
} /*Certificates*/
} /*Cryptography*/
} /*Security*/
} /*Windows*/
}
#endif
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Security {
namespace Cryptography {
namespace Certificates {
class CertificateStore;
} /*Certificates*/
} /*Cryptography*/
} /*Security*/
} /*Windows*/
}
#endif
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Security {
namespace Cryptography {
namespace Certificates {
class ChainBuildingParameters;
} /*Certificates*/
} /*Cryptography*/
} /*Security*/
} /*Windows*/
}
#endif
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Security {
namespace Cryptography {
namespace Certificates {
class ChainValidationParameters;
} /*Certificates*/
} /*Cryptography*/
} /*Security*/
} /*Windows*/
}
#endif
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Security {
namespace Cryptography {
namespace Certificates {
class CmsTimestampInfo;
} /*Certificates*/
} /*Cryptography*/
} /*Security*/
} /*Windows*/
}
#endif
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Security {
namespace Cryptography {
namespace Certificates {
class CmsAttachedSignature;
} /*Certificates*/
} /*Cryptography*/
} /*Security*/
} /*Windows*/
}
#endif
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Security {
namespace Cryptography {
namespace Certificates {
class CmsDetachedSignature;
} /*Certificates*/
} /*Cryptography*/
} /*Security*/
} /*Windows*/
}
#endif


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0025 */
/* [local] */ 


#ifdef __cplusplus

} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            
            typedef struct DateTime DateTime;
            
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif




#ifdef __cplusplus

} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    
                    typedef enum EnrollKeyUsages EnrollKeyUsages;
                    
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus

} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    
                    typedef enum KeyProtectionLevel KeyProtectionLevel;
                    
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus

} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    
                    typedef enum ExportOption ExportOption;
                    
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus

} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    
                    typedef enum KeySize KeySize;
                    
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus

} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    
                    typedef enum InstallOptions InstallOptions;
                    
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus

} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    
                    typedef enum CertificateChainPolicy CertificateChainPolicy;
                    
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus

} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    
                    typedef enum ChainValidationResult ChainValidationResult;
                    
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus

} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    
                    typedef enum SignatureValidationResult SignatureValidationResult;
                    
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif
























extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0025_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0025_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0693 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0693 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0693_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0693_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0026 */
/* [local] */ 

#ifndef DEF___FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate
#define DEF___FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0026 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0026_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0026_v0_0_s_ifspec;

#ifndef ____FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_INTERFACE_DEFINED__
#define ____FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_INTERFACE_DEFINED__

/* interface __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate */
/* [unique][uuid][object] */ 



/* interface __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("676fc159-f15c-58bd-91a7-28f7e795c756")
    __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate : public IInspectable
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Current( 
            /* [retval][out] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Certificates::ICertificate **current) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HasCurrent( 
            /* [retval][out] */ __RPC__out boolean *hasCurrent) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE MoveNext( 
            /* [retval][out] */ __RPC__out boolean *hasCurrent) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMany( 
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) ABI::Windows::Security::Cryptography::Certificates::ICertificate **items,
            /* [retval][out] */ __RPC__out unsigned int *actual) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Current )( 
            __RPC__in __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [retval][out] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate **current);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HasCurrent )( 
            __RPC__in __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [retval][out] */ __RPC__out boolean *hasCurrent);
        
        HRESULT ( STDMETHODCALLTYPE *MoveNext )( 
            __RPC__in __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [retval][out] */ __RPC__out boolean *hasCurrent);
        
        HRESULT ( STDMETHODCALLTYPE *GetMany )( 
            __RPC__in __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate **items,
            /* [retval][out] */ __RPC__out unsigned int *actual);
        
        END_INTERFACE
    } __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateVtbl;

    interface __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate
    {
        CONST_VTBL struct __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_get_Current(This,current)	\
    ( (This)->lpVtbl -> get_Current(This,current) ) 

#define __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_get_HasCurrent(This,hasCurrent)	\
    ( (This)->lpVtbl -> get_HasCurrent(This,hasCurrent) ) 

#define __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_MoveNext(This,hasCurrent)	\
    ( (This)->lpVtbl -> MoveNext(This,hasCurrent) ) 

#define __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_GetMany(This,capacity,items,actual)	\
    ( (This)->lpVtbl -> GetMany(This,capacity,items,actual) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0027 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0027 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0027_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0027_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0694 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0694 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0694_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0694_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0028 */
/* [local] */ 

#ifndef DEF___FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate
#define DEF___FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0028 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0028_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0028_v0_0_s_ifspec;

#ifndef ____FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_INTERFACE_DEFINED__
#define ____FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_INTERFACE_DEFINED__

/* interface __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate */
/* [unique][uuid][object] */ 



/* interface __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0c7d1423-e8fd-5a91-b55c-8bfbe7ac2d40")
    __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate : public IInspectable
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE First( 
            /* [retval][out] */ __RPC__deref_out_opt __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate **first) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *First )( 
            __RPC__in __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [retval][out] */ __RPC__deref_out_opt __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate **first);
        
        END_INTERFACE
    } __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateVtbl;

    interface __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate
    {
        CONST_VTBL struct __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_First(This,first)	\
    ( (This)->lpVtbl -> First(This,first) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0029 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0029 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0029_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0029_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0695 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0695 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0695_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0695_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0030 */
/* [local] */ 

#ifndef DEF___FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult
#define DEF___FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0030 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0030_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0030_v0_0_s_ifspec;

#ifndef ____FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_INTERFACE_DEFINED__
#define ____FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_INTERFACE_DEFINED__

/* interface __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult */
/* [unique][uuid][object] */ 



/* interface __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("8bcad2b7-0e3b-5eae-bf69-e1f6d9c888f8")
    __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult : public IInspectable
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Current( 
            /* [retval][out] */ __RPC__out enum ABI::Windows::Security::Cryptography::Certificates::ChainValidationResult *current) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HasCurrent( 
            /* [retval][out] */ __RPC__out boolean *hasCurrent) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE MoveNext( 
            /* [retval][out] */ __RPC__out boolean *hasCurrent) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMany( 
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) enum ABI::Windows::Security::Cryptography::Certificates::ChainValidationResult *items,
            /* [retval][out] */ __RPC__out unsigned int *actual) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResultVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Current )( 
            __RPC__in __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This,
            /* [retval][out] */ __RPC__out enum __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CChainValidationResult *current);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HasCurrent )( 
            __RPC__in __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This,
            /* [retval][out] */ __RPC__out boolean *hasCurrent);
        
        HRESULT ( STDMETHODCALLTYPE *MoveNext )( 
            __RPC__in __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This,
            /* [retval][out] */ __RPC__out boolean *hasCurrent);
        
        HRESULT ( STDMETHODCALLTYPE *GetMany )( 
            __RPC__in __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) enum __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CChainValidationResult *items,
            /* [retval][out] */ __RPC__out unsigned int *actual);
        
        END_INTERFACE
    } __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResultVtbl;

    interface __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult
    {
        CONST_VTBL struct __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResultVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_get_Current(This,current)	\
    ( (This)->lpVtbl -> get_Current(This,current) ) 

#define __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_get_HasCurrent(This,hasCurrent)	\
    ( (This)->lpVtbl -> get_HasCurrent(This,hasCurrent) ) 

#define __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_MoveNext(This,hasCurrent)	\
    ( (This)->lpVtbl -> MoveNext(This,hasCurrent) ) 

#define __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_GetMany(This,capacity,items,actual)	\
    ( (This)->lpVtbl -> GetMany(This,capacity,items,actual) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0031 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0031 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0031_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0031_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0696 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0696 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0696_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0696_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0032 */
/* [local] */ 

#ifndef DEF___FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult
#define DEF___FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0032 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0032_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0032_v0_0_s_ifspec;

#ifndef ____FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_INTERFACE_DEFINED__
#define ____FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_INTERFACE_DEFINED__

/* interface __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult */
/* [unique][uuid][object] */ 



/* interface __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2628f58f-3f02-54f2-808f-e1117709d6d0")
    __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult : public IInspectable
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE First( 
            /* [retval][out] */ __RPC__deref_out_opt __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult **first) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResultVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *First )( 
            __RPC__in __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This,
            /* [retval][out] */ __RPC__deref_out_opt __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult **first);
        
        END_INTERFACE
    } __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResultVtbl;

    interface __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult
    {
        CONST_VTBL struct __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResultVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_First(This,first)	\
    ( (This)->lpVtbl -> First(This,first) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0033 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0033 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0033_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0033_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0697 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0697 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0697_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0697_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0034 */
/* [local] */ 

#ifndef DEF___FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo
#define DEF___FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0034 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0034_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0034_v0_0_s_ifspec;

#ifndef ____FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_INTERFACE_DEFINED__
#define ____FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_INTERFACE_DEFINED__

/* interface __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo */
/* [unique][uuid][object] */ 



/* interface __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("ba691628-d419-5e0a-b924-03ebc236b11e")
    __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo : public IInspectable
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Current( 
            /* [retval][out] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Certificates::ICmsSignerInfo **current) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HasCurrent( 
            /* [retval][out] */ __RPC__out boolean *hasCurrent) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE MoveNext( 
            /* [retval][out] */ __RPC__out boolean *hasCurrent) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMany( 
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) ABI::Windows::Security::Cryptography::Certificates::ICmsSignerInfo **items,
            /* [retval][out] */ __RPC__out unsigned int *actual) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfoVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Current )( 
            __RPC__in __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo * This,
            /* [retval][out] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsSignerInfo **current);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HasCurrent )( 
            __RPC__in __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo * This,
            /* [retval][out] */ __RPC__out boolean *hasCurrent);
        
        HRESULT ( STDMETHODCALLTYPE *MoveNext )( 
            __RPC__in __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo * This,
            /* [retval][out] */ __RPC__out boolean *hasCurrent);
        
        HRESULT ( STDMETHODCALLTYPE *GetMany )( 
            __RPC__in __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo * This,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsSignerInfo **items,
            /* [retval][out] */ __RPC__out unsigned int *actual);
        
        END_INTERFACE
    } __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfoVtbl;

    interface __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo
    {
        CONST_VTBL struct __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfoVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_get_Current(This,current)	\
    ( (This)->lpVtbl -> get_Current(This,current) ) 

#define __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_get_HasCurrent(This,hasCurrent)	\
    ( (This)->lpVtbl -> get_HasCurrent(This,hasCurrent) ) 

#define __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_MoveNext(This,hasCurrent)	\
    ( (This)->lpVtbl -> MoveNext(This,hasCurrent) ) 

#define __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_GetMany(This,capacity,items,actual)	\
    ( (This)->lpVtbl -> GetMany(This,capacity,items,actual) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0035 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0035 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0035_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0035_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0698 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0698 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0698_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0698_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0036 */
/* [local] */ 

#ifndef DEF___FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo
#define DEF___FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0036 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0036_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0036_v0_0_s_ifspec;

#ifndef ____FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_INTERFACE_DEFINED__
#define ____FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_INTERFACE_DEFINED__

/* interface __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo */
/* [unique][uuid][object] */ 



/* interface __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6af24174-2dda-5a54-a0b9-4d6690059427")
    __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo : public IInspectable
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE First( 
            /* [retval][out] */ __RPC__deref_out_opt __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo **first) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfoVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *First )( 
            __RPC__in __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo * This,
            /* [retval][out] */ __RPC__deref_out_opt __FIIterator_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo **first);
        
        END_INTERFACE
    } __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfoVtbl;

    interface __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo
    {
        CONST_VTBL struct __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfoVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_First(This,first)	\
    ( (This)->lpVtbl -> First(This,first) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0037 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0037 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0037_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0037_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0699 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0699 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0699_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0699_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0038 */
/* [local] */ 

#ifndef DEF___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate
#define DEF___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0038 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0038_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0038_v0_0_s_ifspec;

#ifndef ____FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_INTERFACE_DEFINED__
#define ____FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_INTERFACE_DEFINED__

/* interface __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate */
/* [unique][uuid][object] */ 



/* interface __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("963f7013-77c2-51c5-8038-b5bcef633edb")
    __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate : public IInspectable
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetAt( 
            /* [in] */ unsigned int index,
            /* [retval][out] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Certificates::ICertificate **item) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Size( 
            /* [retval][out] */ __RPC__out unsigned int *size) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE IndexOf( 
            /* [in] */ __RPC__in_opt ABI::Windows::Security::Cryptography::Certificates::ICertificate *item,
            /* [out] */ __RPC__out unsigned int *index,
            /* [retval][out] */ __RPC__out boolean *found) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMany( 
            /* [in] */ unsigned int startIndex,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) ABI::Windows::Security::Cryptography::Certificates::ICertificate **items,
            /* [retval][out] */ __RPC__out unsigned int *actual) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *GetAt )( 
            __RPC__in __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [in] */ unsigned int index,
            /* [retval][out] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate **item);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Size )( 
            __RPC__in __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [retval][out] */ __RPC__out unsigned int *size);
        
        HRESULT ( STDMETHODCALLTYPE *IndexOf )( 
            __RPC__in __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate *item,
            /* [out] */ __RPC__out unsigned int *index,
            /* [retval][out] */ __RPC__out boolean *found);
        
        HRESULT ( STDMETHODCALLTYPE *GetMany )( 
            __RPC__in __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [in] */ unsigned int startIndex,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate **items,
            /* [retval][out] */ __RPC__out unsigned int *actual);
        
        END_INTERFACE
    } __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateVtbl;

    interface __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate
    {
        CONST_VTBL struct __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_GetAt(This,index,item)	\
    ( (This)->lpVtbl -> GetAt(This,index,item) ) 

#define __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_get_Size(This,size)	\
    ( (This)->lpVtbl -> get_Size(This,size) ) 

#define __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_IndexOf(This,item,index,found)	\
    ( (This)->lpVtbl -> IndexOf(This,item,index,found) ) 

#define __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_GetMany(This,startIndex,capacity,items,actual)	\
    ( (This)->lpVtbl -> GetMany(This,startIndex,capacity,items,actual) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0039 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0039 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0039_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0039_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0700 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0700 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0700_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0700_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0040 */
/* [local] */ 

#ifndef DEF___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult
#define DEF___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0040 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0040_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0040_v0_0_s_ifspec;

#ifndef ____FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_INTERFACE_DEFINED__
#define ____FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_INTERFACE_DEFINED__

/* interface __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult */
/* [unique][uuid][object] */ 



/* interface __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("cb383486-c2bc-5756-912d-6a708a07e5bd")
    __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult : public IInspectable
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetAt( 
            /* [in] */ unsigned int index,
            /* [retval][out] */ __RPC__out enum ABI::Windows::Security::Cryptography::Certificates::ChainValidationResult *item) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Size( 
            /* [retval][out] */ __RPC__out unsigned int *size) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE IndexOf( 
            /* [in] */ enum ABI::Windows::Security::Cryptography::Certificates::ChainValidationResult item,
            /* [out] */ __RPC__out unsigned int *index,
            /* [retval][out] */ __RPC__out boolean *found) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMany( 
            /* [in] */ unsigned int startIndex,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) enum ABI::Windows::Security::Cryptography::Certificates::ChainValidationResult *items,
            /* [retval][out] */ __RPC__out unsigned int *actual) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResultVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *GetAt )( 
            __RPC__in __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This,
            /* [in] */ unsigned int index,
            /* [retval][out] */ __RPC__out enum __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CChainValidationResult *item);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Size )( 
            __RPC__in __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This,
            /* [retval][out] */ __RPC__out unsigned int *size);
        
        HRESULT ( STDMETHODCALLTYPE *IndexOf )( 
            __RPC__in __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This,
            /* [in] */ enum __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CChainValidationResult item,
            /* [out] */ __RPC__out unsigned int *index,
            /* [retval][out] */ __RPC__out boolean *found);
        
        HRESULT ( STDMETHODCALLTYPE *GetMany )( 
            __RPC__in __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This,
            /* [in] */ unsigned int startIndex,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) enum __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CChainValidationResult *items,
            /* [retval][out] */ __RPC__out unsigned int *actual);
        
        END_INTERFACE
    } __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResultVtbl;

    interface __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult
    {
        CONST_VTBL struct __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResultVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_GetAt(This,index,item)	\
    ( (This)->lpVtbl -> GetAt(This,index,item) ) 

#define __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_get_Size(This,size)	\
    ( (This)->lpVtbl -> get_Size(This,size) ) 

#define __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_IndexOf(This,item,index,found)	\
    ( (This)->lpVtbl -> IndexOf(This,item,index,found) ) 

#define __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_GetMany(This,startIndex,capacity,items,actual)	\
    ( (This)->lpVtbl -> GetMany(This,startIndex,capacity,items,actual) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0041 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0041 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0041_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0041_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0701 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0701 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0701_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0701_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0042 */
/* [local] */ 

#ifndef DEF___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo
#define DEF___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0042 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0042_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0042_v0_0_s_ifspec;

#ifndef ____FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_INTERFACE_DEFINED__
#define ____FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_INTERFACE_DEFINED__

/* interface __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo */
/* [unique][uuid][object] */ 



/* interface __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("f46bcaa8-747c-5a93-82fe-85d63549fe81")
    __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo : public IInspectable
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetAt( 
            /* [in] */ unsigned int index,
            /* [retval][out] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Certificates::ICmsSignerInfo **item) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Size( 
            /* [retval][out] */ __RPC__out unsigned int *size) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE IndexOf( 
            /* [in] */ __RPC__in_opt ABI::Windows::Security::Cryptography::Certificates::ICmsSignerInfo *item,
            /* [out] */ __RPC__out unsigned int *index,
            /* [retval][out] */ __RPC__out boolean *found) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMany( 
            /* [in] */ unsigned int startIndex,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) ABI::Windows::Security::Cryptography::Certificates::ICmsSignerInfo **items,
            /* [retval][out] */ __RPC__out unsigned int *actual) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfoVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *GetAt )( 
            __RPC__in __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo * This,
            /* [in] */ unsigned int index,
            /* [retval][out] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsSignerInfo **item);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Size )( 
            __RPC__in __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo * This,
            /* [retval][out] */ __RPC__out unsigned int *size);
        
        HRESULT ( STDMETHODCALLTYPE *IndexOf )( 
            __RPC__in __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsSignerInfo *item,
            /* [out] */ __RPC__out unsigned int *index,
            /* [retval][out] */ __RPC__out boolean *found);
        
        HRESULT ( STDMETHODCALLTYPE *GetMany )( 
            __RPC__in __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo * This,
            /* [in] */ unsigned int startIndex,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsSignerInfo **items,
            /* [retval][out] */ __RPC__out unsigned int *actual);
        
        END_INTERFACE
    } __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfoVtbl;

    interface __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo
    {
        CONST_VTBL struct __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfoVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_GetAt(This,index,item)	\
    ( (This)->lpVtbl -> GetAt(This,index,item) ) 

#define __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_get_Size(This,size)	\
    ( (This)->lpVtbl -> get_Size(This,size) ) 

#define __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_IndexOf(This,item,index,found)	\
    ( (This)->lpVtbl -> IndexOf(This,item,index,found) ) 

#define __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_GetMany(This,startIndex,capacity,items,actual)	\
    ( (This)->lpVtbl -> GetMany(This,startIndex,capacity,items,actual) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0043 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0043 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0043_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0043_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0702 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0702 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0702_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0702_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0044 */
/* [local] */ 

#ifndef DEF___FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate
#define DEF___FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0044 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0044_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0044_v0_0_s_ifspec;

#ifndef ____FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_INTERFACE_DEFINED__
#define ____FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_INTERFACE_DEFINED__

/* interface __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate */
/* [unique][uuid][object] */ 



/* interface __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("36282c0f-2f1f-57f4-b2b1-867af90c3d13")
    __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate : public IInspectable
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetAt( 
            /* [in] */ unsigned int index,
            /* [retval][out] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Certificates::ICertificate **item) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Size( 
            /* [retval][out] */ __RPC__out unsigned int *size) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetView( 
            /* [retval][out] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate **view) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE IndexOf( 
            /* [in] */ __RPC__in_opt ABI::Windows::Security::Cryptography::Certificates::ICertificate *item,
            /* [out] */ __RPC__out unsigned int *index,
            /* [retval][out] */ __RPC__out boolean *found) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetAt( 
            /* [in] */ unsigned int index,
            /* [in] */ __RPC__in_opt ABI::Windows::Security::Cryptography::Certificates::ICertificate *item) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE InsertAt( 
            /* [in] */ unsigned int index,
            /* [in] */ __RPC__in_opt ABI::Windows::Security::Cryptography::Certificates::ICertificate *item) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RemoveAt( 
            /* [in] */ unsigned int index) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Append( 
            /* [in] */ __RPC__in_opt ABI::Windows::Security::Cryptography::Certificates::ICertificate *item) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RemoveAtEnd( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMany( 
            /* [in] */ unsigned int startIndex,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) ABI::Windows::Security::Cryptography::Certificates::ICertificate **items,
            /* [retval][out] */ __RPC__out unsigned int *actual) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ReplaceAll( 
            /* [in] */ unsigned int count,
            /* [size_is][in] */ __RPC__in_ecount_full(count) ABI::Windows::Security::Cryptography::Certificates::ICertificate **value) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *GetAt )( 
            __RPC__in __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [in] */ unsigned int index,
            /* [retval][out] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate **item);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Size )( 
            __RPC__in __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [retval][out] */ __RPC__out unsigned int *size);
        
        HRESULT ( STDMETHODCALLTYPE *GetView )( 
            __RPC__in __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [retval][out] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate **view);
        
        HRESULT ( STDMETHODCALLTYPE *IndexOf )( 
            __RPC__in __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate *item,
            /* [out] */ __RPC__out unsigned int *index,
            /* [retval][out] */ __RPC__out boolean *found);
        
        HRESULT ( STDMETHODCALLTYPE *SetAt )( 
            __RPC__in __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [in] */ unsigned int index,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate *item);
        
        HRESULT ( STDMETHODCALLTYPE *InsertAt )( 
            __RPC__in __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [in] */ unsigned int index,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate *item);
        
        HRESULT ( STDMETHODCALLTYPE *RemoveAt )( 
            __RPC__in __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [in] */ unsigned int index);
        
        HRESULT ( STDMETHODCALLTYPE *Append )( 
            __RPC__in __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate *item);
        
        HRESULT ( STDMETHODCALLTYPE *RemoveAtEnd )( 
            __RPC__in __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This);
        
        HRESULT ( STDMETHODCALLTYPE *Clear )( 
            __RPC__in __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetMany )( 
            __RPC__in __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [in] */ unsigned int startIndex,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate **items,
            /* [retval][out] */ __RPC__out unsigned int *actual);
        
        HRESULT ( STDMETHODCALLTYPE *ReplaceAll )( 
            __RPC__in __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [in] */ unsigned int count,
            /* [size_is][in] */ __RPC__in_ecount_full(count) __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate **value);
        
        END_INTERFACE
    } __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateVtbl;

    interface __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate
    {
        CONST_VTBL struct __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_GetAt(This,index,item)	\
    ( (This)->lpVtbl -> GetAt(This,index,item) ) 

#define __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_get_Size(This,size)	\
    ( (This)->lpVtbl -> get_Size(This,size) ) 

#define __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_GetView(This,view)	\
    ( (This)->lpVtbl -> GetView(This,view) ) 

#define __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_IndexOf(This,item,index,found)	\
    ( (This)->lpVtbl -> IndexOf(This,item,index,found) ) 

#define __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_SetAt(This,index,item)	\
    ( (This)->lpVtbl -> SetAt(This,index,item) ) 

#define __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_InsertAt(This,index,item)	\
    ( (This)->lpVtbl -> InsertAt(This,index,item) ) 

#define __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_RemoveAt(This,index)	\
    ( (This)->lpVtbl -> RemoveAt(This,index) ) 

#define __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_Append(This,item)	\
    ( (This)->lpVtbl -> Append(This,item) ) 

#define __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_RemoveAtEnd(This)	\
    ( (This)->lpVtbl -> RemoveAtEnd(This) ) 

#define __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_Clear(This)	\
    ( (This)->lpVtbl -> Clear(This) ) 

#define __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_GetMany(This,startIndex,capacity,items,actual)	\
    ( (This)->lpVtbl -> GetMany(This,startIndex,capacity,items,actual) ) 

#define __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_ReplaceAll(This,count,value)	\
    ( (This)->lpVtbl -> ReplaceAll(This,count,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0045 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0045 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0045_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0045_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0703 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0703 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0703_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0703_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0046 */
/* [local] */ 

#ifndef DEF___FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult
#define DEF___FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0046 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0046_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0046_v0_0_s_ifspec;

#ifndef ____FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_INTERFACE_DEFINED__
#define ____FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_INTERFACE_DEFINED__

/* interface __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult */
/* [unique][uuid][object] */ 



/* interface __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("d7828cf7-4301-58d3-aab5-06e5eefcf79f")
    __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult : public IInspectable
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetAt( 
            /* [in] */ unsigned int index,
            /* [retval][out] */ __RPC__out enum ABI::Windows::Security::Cryptography::Certificates::ChainValidationResult *item) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Size( 
            /* [retval][out] */ __RPC__out unsigned int *size) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetView( 
            /* [retval][out] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult **view) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE IndexOf( 
            /* [in] */ enum ABI::Windows::Security::Cryptography::Certificates::ChainValidationResult item,
            /* [out] */ __RPC__out unsigned int *index,
            /* [retval][out] */ __RPC__out boolean *found) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetAt( 
            /* [in] */ unsigned int index,
            /* [in] */ enum ABI::Windows::Security::Cryptography::Certificates::ChainValidationResult item) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE InsertAt( 
            /* [in] */ unsigned int index,
            /* [in] */ enum ABI::Windows::Security::Cryptography::Certificates::ChainValidationResult item) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RemoveAt( 
            /* [in] */ unsigned int index) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Append( 
            /* [in] */ enum ABI::Windows::Security::Cryptography::Certificates::ChainValidationResult item) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RemoveAtEnd( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMany( 
            /* [in] */ unsigned int startIndex,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) enum ABI::Windows::Security::Cryptography::Certificates::ChainValidationResult *items,
            /* [retval][out] */ __RPC__out unsigned int *actual) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ReplaceAll( 
            /* [in] */ unsigned int count,
            /* [size_is][in] */ __RPC__in_ecount_full(count) enum ABI::Windows::Security::Cryptography::Certificates::ChainValidationResult *value) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResultVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *GetAt )( 
            __RPC__in __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This,
            /* [in] */ unsigned int index,
            /* [retval][out] */ __RPC__out enum __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CChainValidationResult *item);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Size )( 
            __RPC__in __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This,
            /* [retval][out] */ __RPC__out unsigned int *size);
        
        HRESULT ( STDMETHODCALLTYPE *GetView )( 
            __RPC__in __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This,
            /* [retval][out] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult **view);
        
        HRESULT ( STDMETHODCALLTYPE *IndexOf )( 
            __RPC__in __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This,
            /* [in] */ enum __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CChainValidationResult item,
            /* [out] */ __RPC__out unsigned int *index,
            /* [retval][out] */ __RPC__out boolean *found);
        
        HRESULT ( STDMETHODCALLTYPE *SetAt )( 
            __RPC__in __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This,
            /* [in] */ unsigned int index,
            /* [in] */ enum __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CChainValidationResult item);
        
        HRESULT ( STDMETHODCALLTYPE *InsertAt )( 
            __RPC__in __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This,
            /* [in] */ unsigned int index,
            /* [in] */ enum __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CChainValidationResult item);
        
        HRESULT ( STDMETHODCALLTYPE *RemoveAt )( 
            __RPC__in __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This,
            /* [in] */ unsigned int index);
        
        HRESULT ( STDMETHODCALLTYPE *Append )( 
            __RPC__in __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This,
            /* [in] */ enum __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CChainValidationResult item);
        
        HRESULT ( STDMETHODCALLTYPE *RemoveAtEnd )( 
            __RPC__in __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This);
        
        HRESULT ( STDMETHODCALLTYPE *Clear )( 
            __RPC__in __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetMany )( 
            __RPC__in __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This,
            /* [in] */ unsigned int startIndex,
            /* [in] */ unsigned int capacity,
            /* [size_is][length_is][out] */ __RPC__out_ecount_part(capacity, *actual) enum __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CChainValidationResult *items,
            /* [retval][out] */ __RPC__out unsigned int *actual);
        
        HRESULT ( STDMETHODCALLTYPE *ReplaceAll )( 
            __RPC__in __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult * This,
            /* [in] */ unsigned int count,
            /* [size_is][in] */ __RPC__in_ecount_full(count) enum __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CChainValidationResult *value);
        
        END_INTERFACE
    } __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResultVtbl;

    interface __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult
    {
        CONST_VTBL struct __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResultVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_GetAt(This,index,item)	\
    ( (This)->lpVtbl -> GetAt(This,index,item) ) 

#define __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_get_Size(This,size)	\
    ( (This)->lpVtbl -> get_Size(This,size) ) 

#define __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_GetView(This,view)	\
    ( (This)->lpVtbl -> GetView(This,view) ) 

#define __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_IndexOf(This,item,index,found)	\
    ( (This)->lpVtbl -> IndexOf(This,item,index,found) ) 

#define __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_SetAt(This,index,item)	\
    ( (This)->lpVtbl -> SetAt(This,index,item) ) 

#define __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_InsertAt(This,index,item)	\
    ( (This)->lpVtbl -> InsertAt(This,index,item) ) 

#define __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_RemoveAt(This,index)	\
    ( (This)->lpVtbl -> RemoveAt(This,index) ) 

#define __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_Append(This,item)	\
    ( (This)->lpVtbl -> Append(This,item) ) 

#define __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_RemoveAtEnd(This)	\
    ( (This)->lpVtbl -> RemoveAtEnd(This) ) 

#define __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_Clear(This)	\
    ( (This)->lpVtbl -> Clear(This) ) 

#define __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_GetMany(This,startIndex,capacity,items,actual)	\
    ( (This)->lpVtbl -> GetMany(This,startIndex,capacity,items,actual) ) 

#define __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_ReplaceAll(This,count,value)	\
    ( (This)->lpVtbl -> ReplaceAll(This,count,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0047 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CChainValidationResult */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0047 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0047_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0047_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0704 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0704 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0704_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0704_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0048 */
/* [local] */ 

#ifndef DEF___FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate
#define DEF___FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)



/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0048 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0048_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0048_v0_0_s_ifspec;

#ifndef ____FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_INTERFACE_DEFINED__
#define ____FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_INTERFACE_DEFINED__

/* interface __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate */
/* [unique][uuid][object] */ 



/* interface __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1896faee-23e2-59ca-9802-0f48eed98ef4")
    __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke( 
            /* [in] */ __RPC__in_opt __FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate *asyncInfo,
            /* [in] */ AsyncStatus status) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This);
        
        HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            __RPC__in __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [in] */ __RPC__in_opt __FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate *asyncInfo,
            /* [in] */ AsyncStatus status);
        
        END_INTERFACE
    } __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateVtbl;

    interface __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate
    {
        CONST_VTBL struct __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_Invoke(This,asyncInfo,status)	\
    ( (This)->lpVtbl -> Invoke(This,asyncInfo,status) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0049 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0049 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0049_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0049_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0705 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0705 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0705_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0705_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0050 */
/* [local] */ 

#ifndef DEF___FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate
#define DEF___FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0050 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0050_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0050_v0_0_s_ifspec;

#ifndef ____FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_INTERFACE_DEFINED__
#define ____FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_INTERFACE_DEFINED__

/* interface __FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate */
/* [unique][uuid][object] */ 



/* interface __FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9b26648e-b32f-5909-a635-78e6d3bb4067")
    __FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate : public IInspectable
    {
    public:
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Completed( 
            /* [in] */ __RPC__in_opt __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate *handler) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Completed( 
            /* [retval][out] */ __RPC__deref_out_opt __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate **handler) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetResults( 
            /* [retval][out] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate **results) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Completed )( 
            __RPC__in __FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [in] */ __RPC__in_opt __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate *handler);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Completed )( 
            __RPC__in __FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [retval][out] */ __RPC__deref_out_opt __FIAsyncOperationCompletedHandler_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate **handler);
        
        HRESULT ( STDMETHODCALLTYPE *GetResults )( 
            __RPC__in __FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate * This,
            /* [retval][out] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate **results);
        
        END_INTERFACE
    } __FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateVtbl;

    interface __FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate
    {
        CONST_VTBL struct __FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


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

#define __FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_get_Completed(This,handler)	\
    ( (This)->lpVtbl -> get_Completed(This,handler) ) 

#define __FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_GetResults(This,results)	\
    ( (This)->lpVtbl -> GetResults(This,results) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0051 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0051 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0051_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0051_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0706 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0706 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0706_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0706_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0052 */
/* [local] */ 

#ifndef DEF___FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain
#define DEF___FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)



/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0052 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0052_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0052_v0_0_s_ifspec;

#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain_INTERFACE_DEFINED__
#define ____FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain_INTERFACE_DEFINED__

/* interface __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain */
/* [unique][uuid][object] */ 



/* interface __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("4c3f50e9-90e3-5a30-9015-4aa0376904f3")
    __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke( 
            /* [in] */ __RPC__in_opt __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain *asyncInfo,
            /* [in] */ AsyncStatus status) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChainVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain * This);
        
        HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            __RPC__in __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain * This,
            /* [in] */ __RPC__in_opt __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain *asyncInfo,
            /* [in] */ AsyncStatus status);
        
        END_INTERFACE
    } __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChainVtbl;

    interface __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain
    {
        CONST_VTBL struct __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChainVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain_Invoke(This,asyncInfo,status)	\
    ( (This)->lpVtbl -> Invoke(This,asyncInfo,status) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0053 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0053 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0053_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0053_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0707 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0707 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0707_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0707_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0054 */
/* [local] */ 

#ifndef DEF___FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain
#define DEF___FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0054 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0054_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0054_v0_0_s_ifspec;

#ifndef ____FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain_INTERFACE_DEFINED__
#define ____FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain_INTERFACE_DEFINED__

/* interface __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain */
/* [unique][uuid][object] */ 



/* interface __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("f618c7d4-aee1-58ae-afe8-fc336daf0395")
    __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain : public IInspectable
    {
    public:
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Completed( 
            /* [in] */ __RPC__in_opt __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain *handler) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Completed( 
            /* [retval][out] */ __RPC__deref_out_opt __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain **handler) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetResults( 
            /* [retval][out] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Certificates::ICertificateChain **results) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChainVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Completed )( 
            __RPC__in __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain * This,
            /* [in] */ __RPC__in_opt __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain *handler);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Completed )( 
            __RPC__in __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain * This,
            /* [retval][out] */ __RPC__deref_out_opt __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain **handler);
        
        HRESULT ( STDMETHODCALLTYPE *GetResults )( 
            __RPC__in __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain * This,
            /* [retval][out] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateChain **results);
        
        END_INTERFACE
    } __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChainVtbl;

    interface __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain
    {
        CONST_VTBL struct __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChainVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


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

#define __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain_get_Completed(This,handler)	\
    ( (This)->lpVtbl -> get_Completed(This,handler) ) 

#define __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain_GetResults(This,results)	\
    ( (This)->lpVtbl -> GetResults(This,results) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0055 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0055 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0055_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0055_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0708 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0708 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0708_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0708_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0056 */
/* [local] */ 

#ifndef DEF___FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult
#define DEF___FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)



/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0056 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0056_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0056_v0_0_s_ifspec;

#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult_INTERFACE_DEFINED__
#define ____FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult_INTERFACE_DEFINED__

/* interface __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult */
/* [unique][uuid][object] */ 



/* interface __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("dff50005-78ad-5f4f-a085-cb614a674a25")
    __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke( 
            /* [in] */ __RPC__in_opt __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult *asyncInfo,
            /* [in] */ AsyncStatus status) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResultVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult * This);
        
        HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            __RPC__in __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult * This,
            /* [in] */ __RPC__in_opt __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult *asyncInfo,
            /* [in] */ AsyncStatus status);
        
        END_INTERFACE
    } __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResultVtbl;

    interface __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult
    {
        CONST_VTBL struct __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResultVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult_Invoke(This,asyncInfo,status)	\
    ( (This)->lpVtbl -> Invoke(This,asyncInfo,status) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0057 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0057 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0057_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0057_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0709 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0709 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0709_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0709_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0058 */
/* [local] */ 

#ifndef DEF___FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult
#define DEF___FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0058 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0058_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0058_v0_0_s_ifspec;

#ifndef ____FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult_INTERFACE_DEFINED__
#define ____FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult_INTERFACE_DEFINED__

/* interface __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult */
/* [unique][uuid][object] */ 



/* interface __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("f09c0bcf-ce3b-5dff-971f-2c3ffe6fd04d")
    __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult : public IInspectable
    {
    public:
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Completed( 
            /* [in] */ __RPC__in_opt __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult *handler) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Completed( 
            /* [retval][out] */ __RPC__deref_out_opt __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult **handler) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetResults( 
            /* [retval][out] */ __RPC__out enum ABI::Windows::Security::Cryptography::Certificates::SignatureValidationResult *results) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResultVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Completed )( 
            __RPC__in __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult * This,
            /* [in] */ __RPC__in_opt __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult *handler);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Completed )( 
            __RPC__in __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult * This,
            /* [retval][out] */ __RPC__deref_out_opt __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult **handler);
        
        HRESULT ( STDMETHODCALLTYPE *GetResults )( 
            __RPC__in __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult * This,
            /* [retval][out] */ __RPC__out enum __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CSignatureValidationResult *results);
        
        END_INTERFACE
    } __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResultVtbl;

    interface __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult
    {
        CONST_VTBL struct __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResultVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


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

#define __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult_get_Completed(This,handler)	\
    ( (This)->lpVtbl -> get_Completed(This,handler) ) 

#define __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult_GetResults(This,results)	\
    ( (This)->lpVtbl -> GetResults(This,results) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0059 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult */
#if !defined(__cplusplus)

#if !defined(__cplusplus)
/* [v1_enum] */ 
enum __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CEnrollKeyUsages
    {
        EnrollKeyUsages_None	= 0,
        EnrollKeyUsages_Decryption	= 0x1,
        EnrollKeyUsages_Signing	= 0x2,
        EnrollKeyUsages_KeyAgreement	= 0x4,
        EnrollKeyUsages_All	= 0xffffff
    } ;
#endif /* end if !defined(__cplusplus) */

#else
namespace ABI {
namespace Windows {
namespace Security {
namespace Cryptography {
namespace Certificates {
enum EnrollKeyUsages;
DEFINE_ENUM_FLAG_OPERATORS(EnrollKeyUsages)
} /*Certificates*/
} /*Cryptography*/
} /*Security*/
} /*Windows*/
}
#endif
#if !defined(__cplusplus)

#if !defined(__cplusplus)
/* [v1_enum] */ 
enum __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CKeyProtectionLevel
    {
        KeyProtectionLevel_NoConsent	= 0,
        KeyProtectionLevel_ConsentOnly	= 1,
        KeyProtectionLevel_ConsentWithPassword	= 2,
        KeyProtectionLevel_ConsentWithFingerprint	= 3
    } ;
#endif /* end if !defined(__cplusplus) */

#endif
#if !defined(__cplusplus)

#if !defined(__cplusplus)
/* [v1_enum] */ 
enum __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CExportOption
    {
        ExportOption_NotExportable	= 0,
        ExportOption_Exportable	= 1
    } ;
#endif /* end if !defined(__cplusplus) */

#endif
#if !defined(__cplusplus)

#if !defined(__cplusplus)
/* [v1_enum] */ 
enum __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CKeySize
    {
        KeySize_Invalid	= 0,
        KeySize_Rsa2048	= 2048,
        KeySize_Rsa4096	= 4096
    } ;
#endif /* end if !defined(__cplusplus) */

#endif
#if !defined(__cplusplus)

#if !defined(__cplusplus)
/* [v1_enum] */ 
enum __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CInstallOptions
    {
        InstallOptions_None	= 0,
        InstallOptions_DeleteExpired	= 0x1
    } ;
#endif /* end if !defined(__cplusplus) */

#else
namespace ABI {
namespace Windows {
namespace Security {
namespace Cryptography {
namespace Certificates {
enum InstallOptions;
DEFINE_ENUM_FLAG_OPERATORS(InstallOptions)
} /*Certificates*/
} /*Cryptography*/
} /*Security*/
} /*Windows*/
}
#endif
#if !defined(__cplusplus)

#if !defined(__cplusplus)
/* [v1_enum] */ 
enum __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CCertificateChainPolicy
    {
        CertificateChainPolicy_Base	= 0,
        CertificateChainPolicy_Ssl	= 1,
        CertificateChainPolicy_NTAuthentication	= 2,
        CertificateChainPolicy_MicrosoftRoot	= 3
    } ;
#endif /* end if !defined(__cplusplus) */

#endif
#if !defined(__cplusplus)

#if !defined(__cplusplus)
/* [v1_enum] */ 
enum __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CChainValidationResult
    {
        ChainValidationResult_Success	= 0,
        ChainValidationResult_Untrusted	= 1,
        ChainValidationResult_Revoked	= 2,
        ChainValidationResult_Expired	= 3,
        ChainValidationResult_IncompleteChain	= 4,
        ChainValidationResult_InvalidSignature	= 5,
        ChainValidationResult_WrongUsage	= 6,
        ChainValidationResult_InvalidName	= 7,
        ChainValidationResult_InvalidCertificateAuthorityPolicy	= 8,
        ChainValidationResult_BasicConstraintsError	= 9,
        ChainValidationResult_UnknownCriticalExtension	= 10,
        ChainValidationResult_RevocationInformationMissing	= 11,
        ChainValidationResult_RevocationFailure	= 12,
        ChainValidationResult_OtherErrors	= 13
    } ;
#endif /* end if !defined(__cplusplus) */

#endif
#if !defined(__cplusplus)

#if !defined(__cplusplus)
/* [v1_enum] */ 
enum __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CSignatureValidationResult
    {
        SignatureValidationResult_Success	= 0,
        SignatureValidationResult_InvalidParameter	= 1,
        SignatureValidationResult_BadMessage	= 2,
        SignatureValidationResult_InvalidSignature	= 3,
        SignatureValidationResult_OtherErrors	= 4
    } ;
#endif /* end if !defined(__cplusplus) */

#endif
#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Certificates_ICertificateRequestProperties[] = L"Windows.Security.Cryptography.Certificates.ICertificateRequestProperties";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0059 */
/* [local] */ 

#ifdef __cplusplus
} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    
                    /* [v1_enum] */ 
                    enum EnrollKeyUsages
                        {
                            EnrollKeyUsages_None	= 0,
                            EnrollKeyUsages_Decryption	= 0x1,
                            EnrollKeyUsages_Signing	= 0x2,
                            EnrollKeyUsages_KeyAgreement	= 0x4,
                            EnrollKeyUsages_All	= 0xffffff
                        } ;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus
} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    
                    /* [v1_enum] */ 
                    enum KeyProtectionLevel
                        {
                            KeyProtectionLevel_NoConsent	= 0,
                            KeyProtectionLevel_ConsentOnly	= 1,
                            KeyProtectionLevel_ConsentWithPassword	= 2,
                            KeyProtectionLevel_ConsentWithFingerprint	= 3
                        } ;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus
} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    
                    /* [v1_enum] */ 
                    enum ExportOption
                        {
                            ExportOption_NotExportable	= 0,
                            ExportOption_Exportable	= 1
                        } ;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus
} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    
                    /* [v1_enum] */ 
                    enum KeySize
                        {
                            KeySize_Invalid	= 0,
                            KeySize_Rsa2048	= 2048,
                            KeySize_Rsa4096	= 4096
                        } ;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus
} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    
                    /* [v1_enum] */ 
                    enum InstallOptions
                        {
                            InstallOptions_None	= 0,
                            InstallOptions_DeleteExpired	= 0x1
                        } ;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus
} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    
                    /* [v1_enum] */ 
                    enum CertificateChainPolicy
                        {
                            CertificateChainPolicy_Base	= 0,
                            CertificateChainPolicy_Ssl	= 1,
                            CertificateChainPolicy_NTAuthentication	= 2,
                            CertificateChainPolicy_MicrosoftRoot	= 3
                        } ;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus
} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    
                    /* [v1_enum] */ 
                    enum ChainValidationResult
                        {
                            ChainValidationResult_Success	= 0,
                            ChainValidationResult_Untrusted	= 1,
                            ChainValidationResult_Revoked	= 2,
                            ChainValidationResult_Expired	= 3,
                            ChainValidationResult_IncompleteChain	= 4,
                            ChainValidationResult_InvalidSignature	= 5,
                            ChainValidationResult_WrongUsage	= 6,
                            ChainValidationResult_InvalidName	= 7,
                            ChainValidationResult_InvalidCertificateAuthorityPolicy	= 8,
                            ChainValidationResult_BasicConstraintsError	= 9,
                            ChainValidationResult_UnknownCriticalExtension	= 10,
                            ChainValidationResult_RevocationInformationMissing	= 11,
                            ChainValidationResult_RevocationFailure	= 12,
                            ChainValidationResult_OtherErrors	= 13
                        } ;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus
} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Certificates {
                    
                    /* [v1_enum] */ 
                    enum SignatureValidationResult
                        {
                            SignatureValidationResult_Success	= 0,
                            SignatureValidationResult_InvalidParameter	= 1,
                            SignatureValidationResult_BadMessage	= 2,
                            SignatureValidationResult_InvalidSignature	= 3,
                            SignatureValidationResult_OtherErrors	= 4
                        } ;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0059_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0059_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Certificates::ICertificateRequestProperties */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Certificates {
                        
                        MIDL_INTERFACE("487E84F6-94E2-4DCE-8833-1A700A37A29A")
                        ICertificateRequestProperties : public IInspectable
                        {
                        public:
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Subject( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Subject( 
                                /* [in] */ __RPC__in HSTRING value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_KeyAlgorithmName( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_KeyAlgorithmName( 
                                /* [in] */ __RPC__in HSTRING value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_KeySize( 
                                /* [out][retval] */ __RPC__out UINT32 *value) = 0;
                            
                            virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_KeySize( 
                                /* [in] */ UINT32 value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_FriendlyName( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_FriendlyName( 
                                /* [in] */ __RPC__in HSTRING value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HashAlgorithmName( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_HashAlgorithmName( 
                                /* [in] */ __RPC__in HSTRING value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Exportable( 
                                /* [out][retval] */ __RPC__out ABI::Windows::Security::Cryptography::Certificates::ExportOption *value) = 0;
                            
                            virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Exportable( 
                                /* [in] */ ABI::Windows::Security::Cryptography::Certificates::ExportOption value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_KeyUsages( 
                                /* [out][retval] */ __RPC__out ABI::Windows::Security::Cryptography::Certificates::EnrollKeyUsages *value) = 0;
                            
                            virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_KeyUsages( 
                                /* [in] */ ABI::Windows::Security::Cryptography::Certificates::EnrollKeyUsages value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_KeyProtectionLevel( 
                                /* [out][retval] */ __RPC__out ABI::Windows::Security::Cryptography::Certificates::KeyProtectionLevel *value) = 0;
                            
                            virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_KeyProtectionLevel( 
                                /* [in] */ ABI::Windows::Security::Cryptography::Certificates::KeyProtectionLevel value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_KeyStorageProviderName( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_KeyStorageProviderName( 
                                /* [in] */ __RPC__in HSTRING value) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_ICertificateRequestProperties = __uuidof(ICertificateRequestProperties);

                        
                    }  /* end namespace */
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestPropertiesVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Subject )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Subject )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties * This,
            /* [in] */ __RPC__in HSTRING value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_KeyAlgorithmName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_KeyAlgorithmName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties * This,
            /* [in] */ __RPC__in HSTRING value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_KeySize )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties * This,
            /* [out][retval] */ __RPC__out UINT32 *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_KeySize )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties * This,
            /* [in] */ UINT32 value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_FriendlyName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_FriendlyName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties * This,
            /* [in] */ __RPC__in HSTRING value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HashAlgorithmName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_HashAlgorithmName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties * This,
            /* [in] */ __RPC__in HSTRING value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Exportable )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties * This,
            /* [out][retval] */ __RPC__out __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CExportOption *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Exportable )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties * This,
            /* [in] */ __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CExportOption value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_KeyUsages )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties * This,
            /* [out][retval] */ __RPC__out __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CEnrollKeyUsages *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_KeyUsages )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties * This,
            /* [in] */ __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CEnrollKeyUsages value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_KeyProtectionLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties * This,
            /* [out][retval] */ __RPC__out __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CKeyProtectionLevel *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_KeyProtectionLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties * This,
            /* [in] */ __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CKeyProtectionLevel value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_KeyStorageProviderName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_KeyStorageProviderName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties * This,
            /* [in] */ __RPC__in HSTRING value);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestPropertiesVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestPropertiesVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties_get_Subject(This,value)	\
    ( (This)->lpVtbl -> get_Subject(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties_put_Subject(This,value)	\
    ( (This)->lpVtbl -> put_Subject(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties_get_KeyAlgorithmName(This,value)	\
    ( (This)->lpVtbl -> get_KeyAlgorithmName(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties_put_KeyAlgorithmName(This,value)	\
    ( (This)->lpVtbl -> put_KeyAlgorithmName(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties_get_KeySize(This,value)	\
    ( (This)->lpVtbl -> get_KeySize(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties_put_KeySize(This,value)	\
    ( (This)->lpVtbl -> put_KeySize(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties_get_FriendlyName(This,value)	\
    ( (This)->lpVtbl -> get_FriendlyName(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties_put_FriendlyName(This,value)	\
    ( (This)->lpVtbl -> put_FriendlyName(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties_get_HashAlgorithmName(This,value)	\
    ( (This)->lpVtbl -> get_HashAlgorithmName(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties_put_HashAlgorithmName(This,value)	\
    ( (This)->lpVtbl -> put_HashAlgorithmName(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties_get_Exportable(This,value)	\
    ( (This)->lpVtbl -> get_Exportable(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties_put_Exportable(This,value)	\
    ( (This)->lpVtbl -> put_Exportable(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties_get_KeyUsages(This,value)	\
    ( (This)->lpVtbl -> get_KeyUsages(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties_put_KeyUsages(This,value)	\
    ( (This)->lpVtbl -> put_KeyUsages(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties_get_KeyProtectionLevel(This,value)	\
    ( (This)->lpVtbl -> get_KeyProtectionLevel(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties_put_KeyProtectionLevel(This,value)	\
    ( (This)->lpVtbl -> put_KeyProtectionLevel(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties_get_KeyStorageProviderName(This,value)	\
    ( (This)->lpVtbl -> get_KeyStorageProviderName(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties_put_KeyStorageProviderName(This,value)	\
    ( (This)->lpVtbl -> put_KeyStorageProviderName(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0060 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties2_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Certificates_ICertificateRequestProperties2[] = L"Windows.Security.Cryptography.Certificates.ICertificateRequestProperties2";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties2_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0060 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0060_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0060_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties2_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties2_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties2 */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Certificates::ICertificateRequestProperties2 */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties2;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Certificates {
                        
                        MIDL_INTERFACE("3DA0C954-D73F-4FF3-A0A6-0677C0ADA05B")
                        ICertificateRequestProperties2 : public IInspectable
                        {
                        public:
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SmartcardReaderName( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_SmartcardReaderName( 
                                /* [in] */ __RPC__in HSTRING value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SigningCertificate( 
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Certificates::ICertificate **value) = 0;
                            
                            virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_SigningCertificate( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Security::Cryptography::Certificates::ICertificate *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AttestationCredentialCertificate( 
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Certificates::ICertificate **value) = 0;
                            
                            virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_AttestationCredentialCertificate( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Security::Cryptography::Certificates::ICertificate *value) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_ICertificateRequestProperties2 = __uuidof(ICertificateRequestProperties2);

                        
                    }  /* end namespace */
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties2Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties2 * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties2 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties2 * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties2 * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties2 * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties2 * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SmartcardReaderName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties2 * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_SmartcardReaderName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties2 * This,
            /* [in] */ __RPC__in HSTRING value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SigningCertificate )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties2 * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate **value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_SigningCertificate )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties2 * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_AttestationCredentialCertificate )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties2 * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate **value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_AttestationCredentialCertificate )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties2 * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate *value);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties2Vtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties2
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties2Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties2_get_SmartcardReaderName(This,value)	\
    ( (This)->lpVtbl -> get_SmartcardReaderName(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties2_put_SmartcardReaderName(This,value)	\
    ( (This)->lpVtbl -> put_SmartcardReaderName(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties2_get_SigningCertificate(This,value)	\
    ( (This)->lpVtbl -> get_SigningCertificate(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties2_put_SigningCertificate(This,value)	\
    ( (This)->lpVtbl -> put_SigningCertificate(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties2_get_AttestationCredentialCertificate(This,value)	\
    ( (This)->lpVtbl -> get_AttestationCredentialCertificate(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties2_put_AttestationCredentialCertificate(This,value)	\
    ( (This)->lpVtbl -> put_AttestationCredentialCertificate(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties2_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0061 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Certificates_ICertificateEnrollmentManagerStatics[] = L"Windows.Security.Cryptography.Certificates.ICertificateEnrollmentManagerStatics";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0061 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0061_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0061_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Certificates::ICertificateEnrollmentManagerStatics */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Certificates {
                        
                        MIDL_INTERFACE("8846EF3F-A986-48FB-9FD7-9AEC06935BF1")
                        ICertificateEnrollmentManagerStatics : public IInspectable
                        {
                        public:
                            virtual HRESULT STDMETHODCALLTYPE CreateRequestAsync( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Security::Cryptography::Certificates::ICertificateRequestProperties *request,
                                /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1_HSTRING **value) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE InstallCertificateAsync( 
                                /* [in] */ __RPC__in HSTRING certificate,
                                /* [in] */ ABI::Windows::Security::Cryptography::Certificates::InstallOptions installOption,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Foundation::IAsyncAction **value) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE ImportPfxDataAsync( 
                                /* [in] */ __RPC__in HSTRING pfxData,
                                /* [in] */ __RPC__in HSTRING password,
                                /* [in] */ ABI::Windows::Security::Cryptography::Certificates::ExportOption exportable,
                                /* [in] */ ABI::Windows::Security::Cryptography::Certificates::KeyProtectionLevel keyProtectionLevel,
                                /* [in] */ ABI::Windows::Security::Cryptography::Certificates::InstallOptions installOption,
                                /* [in] */ __RPC__in HSTRING friendlyName,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Foundation::IAsyncAction **value) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_ICertificateEnrollmentManagerStatics = __uuidof(ICertificateEnrollmentManagerStatics);

                        
                    }  /* end namespace */
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStaticsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *CreateRequestAsync )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties *request,
            /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1_HSTRING **value);
        
        HRESULT ( STDMETHODCALLTYPE *InstallCertificateAsync )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics * This,
            /* [in] */ __RPC__in HSTRING certificate,
            /* [in] */ __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CInstallOptions installOption,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CFoundation_CIAsyncAction **value);
        
        HRESULT ( STDMETHODCALLTYPE *ImportPfxDataAsync )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics * This,
            /* [in] */ __RPC__in HSTRING pfxData,
            /* [in] */ __RPC__in HSTRING password,
            /* [in] */ __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CExportOption exportable,
            /* [in] */ __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CKeyProtectionLevel keyProtectionLevel,
            /* [in] */ __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CInstallOptions installOption,
            /* [in] */ __RPC__in HSTRING friendlyName,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CFoundation_CIAsyncAction **value);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStaticsVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStaticsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics_CreateRequestAsync(This,request,value)	\
    ( (This)->lpVtbl -> CreateRequestAsync(This,request,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics_InstallCertificateAsync(This,certificate,installOption,value)	\
    ( (This)->lpVtbl -> InstallCertificateAsync(This,certificate,installOption,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics_ImportPfxDataAsync(This,pfxData,password,exportable,keyProtectionLevel,installOption,friendlyName,value)	\
    ( (This)->lpVtbl -> ImportPfxDataAsync(This,pfxData,password,exportable,keyProtectionLevel,installOption,friendlyName,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0062 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics2_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Certificates_ICertificateEnrollmentManagerStatics2[] = L"Windows.Security.Cryptography.Certificates.ICertificateEnrollmentManagerStatics2";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics2_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0062 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0062_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0062_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics2_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics2_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics2 */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Certificates::ICertificateEnrollmentManagerStatics2 */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics2;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Certificates {
                        
                        MIDL_INTERFACE("DC5B1C33-6429-4014-999C-5D9735802D1D")
                        ICertificateEnrollmentManagerStatics2 : public IInspectable
                        {
                        public:
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_UserCertificateEnrollmentManager( 
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Certificates::IUserCertificateEnrollmentManager **value) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE ImportPfxDataToKspAsync( 
                                /* [in] */ __RPC__in HSTRING pfxData,
                                /* [in] */ __RPC__in HSTRING password,
                                /* [in] */ ABI::Windows::Security::Cryptography::Certificates::ExportOption exportable,
                                /* [in] */ ABI::Windows::Security::Cryptography::Certificates::KeyProtectionLevel keyProtectionLevel,
                                /* [in] */ ABI::Windows::Security::Cryptography::Certificates::InstallOptions installOption,
                                /* [in] */ __RPC__in HSTRING friendlyName,
                                /* [in] */ __RPC__in HSTRING keyStorageProvider,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Foundation::IAsyncAction **value) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_ICertificateEnrollmentManagerStatics2 = __uuidof(ICertificateEnrollmentManagerStatics2);

                        
                    }  /* end namespace */
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics2Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics2 * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics2 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics2 * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics2 * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics2 * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics2 * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_UserCertificateEnrollmentManager )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics2 * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIUserCertificateEnrollmentManager **value);
        
        HRESULT ( STDMETHODCALLTYPE *ImportPfxDataToKspAsync )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics2 * This,
            /* [in] */ __RPC__in HSTRING pfxData,
            /* [in] */ __RPC__in HSTRING password,
            /* [in] */ __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CExportOption exportable,
            /* [in] */ __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CKeyProtectionLevel keyProtectionLevel,
            /* [in] */ __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CInstallOptions installOption,
            /* [in] */ __RPC__in HSTRING friendlyName,
            /* [in] */ __RPC__in HSTRING keyStorageProvider,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CFoundation_CIAsyncAction **value);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics2Vtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics2
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics2Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics2_get_UserCertificateEnrollmentManager(This,value)	\
    ( (This)->lpVtbl -> get_UserCertificateEnrollmentManager(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics2_ImportPfxDataToKspAsync(This,pfxData,password,exportable,keyProtectionLevel,installOption,friendlyName,keyStorageProvider,value)	\
    ( (This)->lpVtbl -> ImportPfxDataToKspAsync(This,pfxData,password,exportable,keyProtectionLevel,installOption,friendlyName,keyStorageProvider,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateEnrollmentManagerStatics2_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0063 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAttestationHelperStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Certificates_IKeyAttestationHelperStatics[] = L"Windows.Security.Cryptography.Certificates.IKeyAttestationHelperStatics";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAttestationHelperStatics_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0063 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0063_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0063_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAttestationHelperStatics_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAttestationHelperStatics_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAttestationHelperStatics */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Certificates::IKeyAttestationHelperStatics */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAttestationHelperStatics;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Certificates {
                        
                        MIDL_INTERFACE("1648E246-F644-4326-88BE-3AF102D30E0C")
                        IKeyAttestationHelperStatics : public IInspectable
                        {
                        public:
                            virtual HRESULT STDMETHODCALLTYPE DecryptTpmAttestationCredentialAsync( 
                                /* [in] */ __RPC__in HSTRING credential,
                                /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1_HSTRING **value) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE GetTpmAttestationCredentialId( 
                                /* [in] */ __RPC__in HSTRING credential,
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IKeyAttestationHelperStatics = __uuidof(IKeyAttestationHelperStatics);

                        
                    }  /* end namespace */
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAttestationHelperStaticsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAttestationHelperStatics * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAttestationHelperStatics * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAttestationHelperStatics * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAttestationHelperStatics * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAttestationHelperStatics * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAttestationHelperStatics * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *DecryptTpmAttestationCredentialAsync )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAttestationHelperStatics * This,
            /* [in] */ __RPC__in HSTRING credential,
            /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1_HSTRING **value);
        
        HRESULT ( STDMETHODCALLTYPE *GetTpmAttestationCredentialId )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAttestationHelperStatics * This,
            /* [in] */ __RPC__in HSTRING credential,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAttestationHelperStaticsVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAttestationHelperStatics
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAttestationHelperStaticsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAttestationHelperStatics_DecryptTpmAttestationCredentialAsync(This,credential,value)	\
    ( (This)->lpVtbl -> DecryptTpmAttestationCredentialAsync(This,credential,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAttestationHelperStatics_GetTpmAttestationCredentialId(This,credential,value)	\
    ( (This)->lpVtbl -> GetTpmAttestationCredentialId(This,credential,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAttestationHelperStatics_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0064 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStoresStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Certificates_ICertificateStoresStatics[] = L"Windows.Security.Cryptography.Certificates.ICertificateStoresStatics";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStoresStatics_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0064 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0064_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0064_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStoresStatics_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStoresStatics_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStoresStatics */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Certificates::ICertificateStoresStatics */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStoresStatics;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Certificates {
                        
                        MIDL_INTERFACE("FBECC739-C6FE-4DE7-99CF-74C3E596E032")
                        ICertificateStoresStatics : public IInspectable
                        {
                        public:
                            virtual HRESULT STDMETHODCALLTYPE FindAllAsync( 
                                /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate **value) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE FindAllWithQueryAsync( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Security::Cryptography::Certificates::ICertificateQuery *query,
                                /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate **value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_TrustedRootCertificationAuthorities( 
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Certificates::ICertificateStore **value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IntermediateCertificationAuthorities( 
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Certificates::ICertificateStore **value) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE GetStoreByName( 
                                /* [in] */ __RPC__in HSTRING storeName,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Certificates::ICertificateStore **value) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_ICertificateStoresStatics = __uuidof(ICertificateStoresStatics);

                        
                    }  /* end namespace */
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStoresStaticsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStoresStatics * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStoresStatics * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStoresStatics * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStoresStatics * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStoresStatics * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStoresStatics * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *FindAllAsync )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStoresStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate **value);
        
        HRESULT ( STDMETHODCALLTYPE *FindAllWithQueryAsync )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStoresStatics * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQuery *query,
            /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1___FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate **value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_TrustedRootCertificationAuthorities )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStoresStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStore **value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_IntermediateCertificationAuthorities )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStoresStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStore **value);
        
        HRESULT ( STDMETHODCALLTYPE *GetStoreByName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStoresStatics * This,
            /* [in] */ __RPC__in HSTRING storeName,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStore **value);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStoresStaticsVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStoresStatics
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStoresStaticsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStoresStatics_FindAllAsync(This,value)	\
    ( (This)->lpVtbl -> FindAllAsync(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStoresStatics_FindAllWithQueryAsync(This,query,value)	\
    ( (This)->lpVtbl -> FindAllWithQueryAsync(This,query,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStoresStatics_get_TrustedRootCertificationAuthorities(This,value)	\
    ( (This)->lpVtbl -> get_TrustedRootCertificationAuthorities(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStoresStatics_get_IntermediateCertificationAuthorities(This,value)	\
    ( (This)->lpVtbl -> get_IntermediateCertificationAuthorities(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStoresStatics_GetStoreByName(This,storeName,value)	\
    ( (This)->lpVtbl -> GetStoreByName(This,storeName,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStoresStatics_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0065 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIUserCertificateEnrollmentManager_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Certificates_IUserCertificateEnrollmentManager[] = L"Windows.Security.Cryptography.Certificates.IUserCertificateEnrollmentManager";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIUserCertificateEnrollmentManager_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0065 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0065_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0065_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIUserCertificateEnrollmentManager_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIUserCertificateEnrollmentManager_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIUserCertificateEnrollmentManager */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Certificates::IUserCertificateEnrollmentManager */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIUserCertificateEnrollmentManager;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Certificates {
                        
                        MIDL_INTERFACE("96313718-22E1-4819-B20B-AB46A6ECA06E")
                        IUserCertificateEnrollmentManager : public IInspectable
                        {
                        public:
                            virtual HRESULT STDMETHODCALLTYPE CreateRequestAsync( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Security::Cryptography::Certificates::ICertificateRequestProperties *request,
                                /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1_HSTRING **value) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE InstallCertificateAsync( 
                                /* [in] */ __RPC__in HSTRING certificate,
                                /* [in] */ ABI::Windows::Security::Cryptography::Certificates::InstallOptions installOption,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Foundation::IAsyncAction **value) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE ImportPfxDataAsync( 
                                /* [in] */ __RPC__in HSTRING pfxData,
                                /* [in] */ __RPC__in HSTRING password,
                                /* [in] */ ABI::Windows::Security::Cryptography::Certificates::ExportOption exportable,
                                /* [in] */ ABI::Windows::Security::Cryptography::Certificates::KeyProtectionLevel keyProtectionLevel,
                                /* [in] */ ABI::Windows::Security::Cryptography::Certificates::InstallOptions installOption,
                                /* [in] */ __RPC__in HSTRING friendlyName,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Foundation::IAsyncAction **value) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE ImportPfxDataToKspAsync( 
                                /* [in] */ __RPC__in HSTRING pfxData,
                                /* [in] */ __RPC__in HSTRING password,
                                /* [in] */ ABI::Windows::Security::Cryptography::Certificates::ExportOption exportable,
                                /* [in] */ ABI::Windows::Security::Cryptography::Certificates::KeyProtectionLevel keyProtectionLevel,
                                /* [in] */ ABI::Windows::Security::Cryptography::Certificates::InstallOptions installOption,
                                /* [in] */ __RPC__in HSTRING friendlyName,
                                /* [in] */ __RPC__in HSTRING keyStorageProvider,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Foundation::IAsyncAction **value) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IUserCertificateEnrollmentManager = __uuidof(IUserCertificateEnrollmentManager);

                        
                    }  /* end namespace */
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIUserCertificateEnrollmentManagerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIUserCertificateEnrollmentManager * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIUserCertificateEnrollmentManager * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIUserCertificateEnrollmentManager * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIUserCertificateEnrollmentManager * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIUserCertificateEnrollmentManager * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIUserCertificateEnrollmentManager * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *CreateRequestAsync )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIUserCertificateEnrollmentManager * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateRequestProperties *request,
            /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1_HSTRING **value);
        
        HRESULT ( STDMETHODCALLTYPE *InstallCertificateAsync )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIUserCertificateEnrollmentManager * This,
            /* [in] */ __RPC__in HSTRING certificate,
            /* [in] */ __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CInstallOptions installOption,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CFoundation_CIAsyncAction **value);
        
        HRESULT ( STDMETHODCALLTYPE *ImportPfxDataAsync )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIUserCertificateEnrollmentManager * This,
            /* [in] */ __RPC__in HSTRING pfxData,
            /* [in] */ __RPC__in HSTRING password,
            /* [in] */ __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CExportOption exportable,
            /* [in] */ __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CKeyProtectionLevel keyProtectionLevel,
            /* [in] */ __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CInstallOptions installOption,
            /* [in] */ __RPC__in HSTRING friendlyName,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CFoundation_CIAsyncAction **value);
        
        HRESULT ( STDMETHODCALLTYPE *ImportPfxDataToKspAsync )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIUserCertificateEnrollmentManager * This,
            /* [in] */ __RPC__in HSTRING pfxData,
            /* [in] */ __RPC__in HSTRING password,
            /* [in] */ __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CExportOption exportable,
            /* [in] */ __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CKeyProtectionLevel keyProtectionLevel,
            /* [in] */ __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CInstallOptions installOption,
            /* [in] */ __RPC__in HSTRING friendlyName,
            /* [in] */ __RPC__in HSTRING keyStorageProvider,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CFoundation_CIAsyncAction **value);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIUserCertificateEnrollmentManagerVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIUserCertificateEnrollmentManager
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIUserCertificateEnrollmentManagerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIUserCertificateEnrollmentManager_CreateRequestAsync(This,request,value)	\
    ( (This)->lpVtbl -> CreateRequestAsync(This,request,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIUserCertificateEnrollmentManager_InstallCertificateAsync(This,certificate,installOption,value)	\
    ( (This)->lpVtbl -> InstallCertificateAsync(This,certificate,installOption,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIUserCertificateEnrollmentManager_ImportPfxDataAsync(This,pfxData,password,exportable,keyProtectionLevel,installOption,friendlyName,value)	\
    ( (This)->lpVtbl -> ImportPfxDataAsync(This,pfxData,password,exportable,keyProtectionLevel,installOption,friendlyName,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIUserCertificateEnrollmentManager_ImportPfxDataToKspAsync(This,pfxData,password,exportable,keyProtectionLevel,installOption,friendlyName,keyStorageProvider,value)	\
    ( (This)->lpVtbl -> ImportPfxDataToKspAsync(This,pfxData,password,exportable,keyProtectionLevel,installOption,friendlyName,keyStorageProvider,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIUserCertificateEnrollmentManager_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0066 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStore_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Certificates_ICertificateStore[] = L"Windows.Security.Cryptography.Certificates.ICertificateStore";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStore_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0066 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0066_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0066_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStore_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStore_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStore */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Certificates::ICertificateStore */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStore;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Certificates {
                        
                        MIDL_INTERFACE("B0BFF720-344E-4331-AF14-A7F7A7EBC93A")
                        ICertificateStore : public IInspectable
                        {
                        public:
                            virtual HRESULT STDMETHODCALLTYPE Add( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Security::Cryptography::Certificates::ICertificate *certificate) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE Delete( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Security::Cryptography::Certificates::ICertificate *certificate) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_ICertificateStore = __uuidof(ICertificateStore);

                        
                    }  /* end namespace */
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStoreVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStore * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStore * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStore * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStore * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStore * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStore * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *Add )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStore * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate *certificate);
        
        HRESULT ( STDMETHODCALLTYPE *Delete )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStore * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate *certificate);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStoreVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStore
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStoreVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStore_Add(This,certificate)	\
    ( (This)->lpVtbl -> Add(This,certificate) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStore_Delete(This,certificate)	\
    ( (This)->lpVtbl -> Delete(This,certificate) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateStore_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0067 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAlgorithmNamesStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Certificates_IKeyAlgorithmNamesStatics[] = L"Windows.Security.Cryptography.Certificates.IKeyAlgorithmNamesStatics";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAlgorithmNamesStatics_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0067 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0067_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0067_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAlgorithmNamesStatics_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAlgorithmNamesStatics_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAlgorithmNamesStatics */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Certificates::IKeyAlgorithmNamesStatics */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAlgorithmNamesStatics;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Certificates {
                        
                        MIDL_INTERFACE("479065D7-7AC7-4581-8C3B-D07027140448")
                        IKeyAlgorithmNamesStatics : public IInspectable
                        {
                        public:
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Rsa( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Dsa( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Ecdh256( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Ecdh384( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Ecdh521( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Ecdsa256( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Ecdsa384( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Ecdsa521( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IKeyAlgorithmNamesStatics = __uuidof(IKeyAlgorithmNamesStatics);

                        
                    }  /* end namespace */
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAlgorithmNamesStaticsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAlgorithmNamesStatics * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAlgorithmNamesStatics * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAlgorithmNamesStatics * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAlgorithmNamesStatics * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAlgorithmNamesStatics * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAlgorithmNamesStatics * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Rsa )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Dsa )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Ecdh256 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Ecdh384 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Ecdh521 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Ecdsa256 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Ecdsa384 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Ecdsa521 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAlgorithmNamesStaticsVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAlgorithmNamesStatics
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAlgorithmNamesStaticsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAlgorithmNamesStatics_get_Rsa(This,value)	\
    ( (This)->lpVtbl -> get_Rsa(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAlgorithmNamesStatics_get_Dsa(This,value)	\
    ( (This)->lpVtbl -> get_Dsa(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAlgorithmNamesStatics_get_Ecdh256(This,value)	\
    ( (This)->lpVtbl -> get_Ecdh256(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAlgorithmNamesStatics_get_Ecdh384(This,value)	\
    ( (This)->lpVtbl -> get_Ecdh384(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAlgorithmNamesStatics_get_Ecdh521(This,value)	\
    ( (This)->lpVtbl -> get_Ecdh521(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAlgorithmNamesStatics_get_Ecdsa256(This,value)	\
    ( (This)->lpVtbl -> get_Ecdsa256(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAlgorithmNamesStatics_get_Ecdsa384(This,value)	\
    ( (This)->lpVtbl -> get_Ecdsa384(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAlgorithmNamesStatics_get_Ecdsa521(This,value)	\
    ( (This)->lpVtbl -> get_Ecdsa521(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyAlgorithmNamesStatics_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0068 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyStorageProviderNamesStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Certificates_IKeyStorageProviderNamesStatics[] = L"Windows.Security.Cryptography.Certificates.IKeyStorageProviderNamesStatics";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyStorageProviderNamesStatics_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0068 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0068_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0068_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyStorageProviderNamesStatics_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyStorageProviderNamesStatics_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyStorageProviderNamesStatics */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Certificates::IKeyStorageProviderNamesStatics */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyStorageProviderNamesStatics;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Certificates {
                        
                        MIDL_INTERFACE("AF186AE0-5529-4602-BD94-0AAB91957B5C")
                        IKeyStorageProviderNamesStatics : public IInspectable
                        {
                        public:
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SoftwareKeyStorageProvider( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SmartcardKeyStorageProvider( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PlatformKeyStorageProvider( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IKeyStorageProviderNamesStatics = __uuidof(IKeyStorageProviderNamesStatics);

                        
                    }  /* end namespace */
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyStorageProviderNamesStaticsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyStorageProviderNamesStatics * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyStorageProviderNamesStatics * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyStorageProviderNamesStatics * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyStorageProviderNamesStatics * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyStorageProviderNamesStatics * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyStorageProviderNamesStatics * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SoftwareKeyStorageProvider )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyStorageProviderNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SmartcardKeyStorageProvider )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyStorageProviderNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PlatformKeyStorageProvider )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyStorageProviderNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyStorageProviderNamesStaticsVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyStorageProviderNamesStatics
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyStorageProviderNamesStaticsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyStorageProviderNamesStatics_get_SoftwareKeyStorageProvider(This,value)	\
    ( (This)->lpVtbl -> get_SoftwareKeyStorageProvider(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyStorageProviderNamesStatics_get_SmartcardKeyStorageProvider(This,value)	\
    ( (This)->lpVtbl -> get_SmartcardKeyStorageProvider(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyStorageProviderNamesStatics_get_PlatformKeyStorageProvider(This,value)	\
    ( (This)->lpVtbl -> get_PlatformKeyStorageProvider(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIKeyStorageProviderNamesStatics_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0069 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Certificates_IChainBuildingParameters[] = L"Windows.Security.Cryptography.Certificates.IChainBuildingParameters";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0069 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0069_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0069_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Certificates::IChainBuildingParameters */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Certificates {
                        
                        MIDL_INTERFACE("422BA922-7C8D-47B7-B59B-B12703733AC3")
                        IChainBuildingParameters : public IInspectable
                        {
                        public:
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_EnhancedKeyUsages( 
                                /* [out][retval] */ __RPC__deref_out_opt __FIVector_1_HSTRING **value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ValidationTimestamp( 
                                /* [out][retval] */ __RPC__out ABI::Windows::Foundation::DateTime *value) = 0;
                            
                            virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ValidationTimestamp( 
                                /* [in] */ ABI::Windows::Foundation::DateTime value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_RevocationCheckEnabled( 
                                /* [out][retval] */ __RPC__out boolean *value) = 0;
                            
                            virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_RevocationCheckEnabled( 
                                /* [in] */ boolean value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_NetworkRetrievalEnabled( 
                                /* [out][retval] */ __RPC__out boolean *value) = 0;
                            
                            virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_NetworkRetrievalEnabled( 
                                /* [in] */ boolean value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AuthorityInformationAccessEnabled( 
                                /* [out][retval] */ __RPC__out boolean *value) = 0;
                            
                            virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_AuthorityInformationAccessEnabled( 
                                /* [in] */ boolean value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_CurrentTimeValidationEnabled( 
                                /* [out][retval] */ __RPC__out boolean *value) = 0;
                            
                            virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_CurrentTimeValidationEnabled( 
                                /* [in] */ boolean value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ExclusiveTrustRoots( 
                                /* [out][retval] */ __RPC__deref_out_opt __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate **certificates) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IChainBuildingParameters = __uuidof(IChainBuildingParameters);

                        
                    }  /* end namespace */
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParametersVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_EnhancedKeyUsages )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters * This,
            /* [out][retval] */ __RPC__deref_out_opt __FIVector_1_HSTRING **value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ValidationTimestamp )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters * This,
            /* [out][retval] */ __RPC__out __x_ABI_CWindows_CFoundation_CDateTime *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ValidationTimestamp )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters * This,
            /* [in] */ __x_ABI_CWindows_CFoundation_CDateTime value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RevocationCheckEnabled )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters * This,
            /* [out][retval] */ __RPC__out boolean *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_RevocationCheckEnabled )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters * This,
            /* [in] */ boolean value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_NetworkRetrievalEnabled )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters * This,
            /* [out][retval] */ __RPC__out boolean *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_NetworkRetrievalEnabled )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters * This,
            /* [in] */ boolean value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_AuthorityInformationAccessEnabled )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters * This,
            /* [out][retval] */ __RPC__out boolean *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_AuthorityInformationAccessEnabled )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters * This,
            /* [in] */ boolean value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_CurrentTimeValidationEnabled )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters * This,
            /* [out][retval] */ __RPC__out boolean *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_CurrentTimeValidationEnabled )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters * This,
            /* [in] */ boolean value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ExclusiveTrustRoots )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters * This,
            /* [out][retval] */ __RPC__deref_out_opt __FIVector_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate **certificates);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParametersVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParametersVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters_get_EnhancedKeyUsages(This,value)	\
    ( (This)->lpVtbl -> get_EnhancedKeyUsages(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters_get_ValidationTimestamp(This,value)	\
    ( (This)->lpVtbl -> get_ValidationTimestamp(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters_put_ValidationTimestamp(This,value)	\
    ( (This)->lpVtbl -> put_ValidationTimestamp(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters_get_RevocationCheckEnabled(This,value)	\
    ( (This)->lpVtbl -> get_RevocationCheckEnabled(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters_put_RevocationCheckEnabled(This,value)	\
    ( (This)->lpVtbl -> put_RevocationCheckEnabled(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters_get_NetworkRetrievalEnabled(This,value)	\
    ( (This)->lpVtbl -> get_NetworkRetrievalEnabled(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters_put_NetworkRetrievalEnabled(This,value)	\
    ( (This)->lpVtbl -> put_NetworkRetrievalEnabled(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters_get_AuthorityInformationAccessEnabled(This,value)	\
    ( (This)->lpVtbl -> get_AuthorityInformationAccessEnabled(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters_put_AuthorityInformationAccessEnabled(This,value)	\
    ( (This)->lpVtbl -> put_AuthorityInformationAccessEnabled(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters_get_CurrentTimeValidationEnabled(This,value)	\
    ( (This)->lpVtbl -> get_CurrentTimeValidationEnabled(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters_put_CurrentTimeValidationEnabled(This,value)	\
    ( (This)->lpVtbl -> put_CurrentTimeValidationEnabled(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters_get_ExclusiveTrustRoots(This,certificates)	\
    ( (This)->lpVtbl -> get_ExclusiveTrustRoots(This,certificates) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0070 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainValidationParameters_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Certificates_IChainValidationParameters[] = L"Windows.Security.Cryptography.Certificates.IChainValidationParameters";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainValidationParameters_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0070 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0070_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0070_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainValidationParameters_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainValidationParameters_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainValidationParameters */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Certificates::IChainValidationParameters */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainValidationParameters;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Certificates {
                        
                        MIDL_INTERFACE("C4743B4A-7EB0-4B56-A040-B9C8E655DDF3")
                        IChainValidationParameters : public IInspectable
                        {
                        public:
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_CertificateChainPolicy( 
                                /* [out][retval] */ __RPC__out ABI::Windows::Security::Cryptography::Certificates::CertificateChainPolicy *value) = 0;
                            
                            virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_CertificateChainPolicy( 
                                /* [in] */ ABI::Windows::Security::Cryptography::Certificates::CertificateChainPolicy value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ServerDnsName( 
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Networking::IHostName **value) = 0;
                            
                            virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ServerDnsName( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Networking::IHostName *value) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IChainValidationParameters = __uuidof(IChainValidationParameters);

                        
                    }  /* end namespace */
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainValidationParametersVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainValidationParameters * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainValidationParameters * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainValidationParameters * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainValidationParameters * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainValidationParameters * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainValidationParameters * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_CertificateChainPolicy )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainValidationParameters * This,
            /* [out][retval] */ __RPC__out __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CCertificateChainPolicy *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_CertificateChainPolicy )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainValidationParameters * This,
            /* [in] */ __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CCertificateChainPolicy value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ServerDnsName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainValidationParameters * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CNetworking_CIHostName **value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ServerDnsName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainValidationParameters * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CNetworking_CIHostName *value);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainValidationParametersVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainValidationParameters
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainValidationParametersVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainValidationParameters_get_CertificateChainPolicy(This,value)	\
    ( (This)->lpVtbl -> get_CertificateChainPolicy(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainValidationParameters_put_CertificateChainPolicy(This,value)	\
    ( (This)->lpVtbl -> put_CertificateChainPolicy(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainValidationParameters_get_ServerDnsName(This,value)	\
    ( (This)->lpVtbl -> get_ServerDnsName(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainValidationParameters_put_ServerDnsName(This,value)	\
    ( (This)->lpVtbl -> put_ServerDnsName(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainValidationParameters_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0071 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQuery_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Certificates_ICertificateQuery[] = L"Windows.Security.Cryptography.Certificates.ICertificateQuery";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQuery_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0071 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0071_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0071_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQuery_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQuery_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQuery */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Certificates::ICertificateQuery */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQuery;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Certificates {
                        
                        MIDL_INTERFACE("5B082A31-A728-4916-B5EE-FFCB8ACF2417")
                        ICertificateQuery : public IInspectable
                        {
                        public:
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_EnhancedKeyUsages( 
                                /* [out][retval] */ __RPC__deref_out_opt __FIVector_1_HSTRING **value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IssuerName( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_IssuerName( 
                                /* [in] */ __RPC__in HSTRING value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_FriendlyName( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_FriendlyName( 
                                /* [in] */ __RPC__in HSTRING value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Thumbprint( 
                                /* [out] */ __RPC__out UINT32 *__valueSize,
                                /* [out][retval][size_is][size_is] */ __RPC__deref_out_ecount_full_opt(*__valueSize) BYTE **value) = 0;
                            
                            virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Thumbprint( 
                                /* [in] */ UINT32 __valueSize,
                                /* [in][size_is] */ __RPC__in_ecount_full(__valueSize) BYTE *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HardwareOnly( 
                                /* [out][retval] */ __RPC__out boolean *value) = 0;
                            
                            virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_HardwareOnly( 
                                /* [in] */ boolean value) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_ICertificateQuery = __uuidof(ICertificateQuery);

                        
                    }  /* end namespace */
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQueryVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQuery * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQuery * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQuery * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQuery * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQuery * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQuery * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_EnhancedKeyUsages )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQuery * This,
            /* [out][retval] */ __RPC__deref_out_opt __FIVector_1_HSTRING **value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_IssuerName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQuery * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_IssuerName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQuery * This,
            /* [in] */ __RPC__in HSTRING value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_FriendlyName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQuery * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_FriendlyName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQuery * This,
            /* [in] */ __RPC__in HSTRING value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Thumbprint )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQuery * This,
            /* [out] */ __RPC__out UINT32 *__valueSize,
            /* [out][retval][size_is][size_is] */ __RPC__deref_out_ecount_full_opt(*__valueSize) BYTE **value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Thumbprint )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQuery * This,
            /* [in] */ UINT32 __valueSize,
            /* [in][size_is] */ __RPC__in_ecount_full(__valueSize) BYTE *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HardwareOnly )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQuery * This,
            /* [out][retval] */ __RPC__out boolean *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_HardwareOnly )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQuery * This,
            /* [in] */ boolean value);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQueryVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQuery
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQueryVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQuery_get_EnhancedKeyUsages(This,value)	\
    ( (This)->lpVtbl -> get_EnhancedKeyUsages(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQuery_get_IssuerName(This,value)	\
    ( (This)->lpVtbl -> get_IssuerName(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQuery_put_IssuerName(This,value)	\
    ( (This)->lpVtbl -> put_IssuerName(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQuery_get_FriendlyName(This,value)	\
    ( (This)->lpVtbl -> get_FriendlyName(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQuery_put_FriendlyName(This,value)	\
    ( (This)->lpVtbl -> put_FriendlyName(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQuery_get_Thumbprint(This,__valueSize,value)	\
    ( (This)->lpVtbl -> get_Thumbprint(This,__valueSize,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQuery_put_Thumbprint(This,__valueSize,value)	\
    ( (This)->lpVtbl -> put_Thumbprint(This,__valueSize,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQuery_get_HardwareOnly(This,value)	\
    ( (This)->lpVtbl -> get_HardwareOnly(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQuery_put_HardwareOnly(This,value)	\
    ( (This)->lpVtbl -> put_HardwareOnly(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateQuery_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0072 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateChain_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Certificates_ICertificateChain[] = L"Windows.Security.Cryptography.Certificates.ICertificateChain";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateChain_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0072 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0072_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0072_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateChain_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateChain_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateChain */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Certificates::ICertificateChain */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateChain;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Certificates {
                        
                        MIDL_INTERFACE("20BF5385-3691-4501-A62C-FD97278B31EE")
                        ICertificateChain : public IInspectable
                        {
                        public:
                            virtual HRESULT STDMETHODCALLTYPE Validate( 
                                /* [out][retval] */ __RPC__out ABI::Windows::Security::Cryptography::Certificates::ChainValidationResult *status) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE ValidateWithParameters( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Security::Cryptography::Certificates::IChainValidationParameters *parameter,
                                /* [out][retval] */ __RPC__out ABI::Windows::Security::Cryptography::Certificates::ChainValidationResult *status) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE GetCertificates( 
                                /* [in] */ boolean includeRoot,
                                /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate **certificates) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_ICertificateChain = __uuidof(ICertificateChain);

                        
                    }  /* end namespace */
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateChainVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateChain * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateChain * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateChain * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateChain * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateChain * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateChain * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *Validate )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateChain * This,
            /* [out][retval] */ __RPC__out __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CChainValidationResult *status);
        
        HRESULT ( STDMETHODCALLTYPE *ValidateWithParameters )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateChain * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainValidationParameters *parameter,
            /* [out][retval] */ __RPC__out __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CChainValidationResult *status);
        
        HRESULT ( STDMETHODCALLTYPE *GetCertificates )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateChain * This,
            /* [in] */ boolean includeRoot,
            /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate **certificates);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateChainVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateChain
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateChainVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateChain_Validate(This,status)	\
    ( (This)->lpVtbl -> Validate(This,status) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateChain_ValidateWithParameters(This,parameter,status)	\
    ( (This)->lpVtbl -> ValidateWithParameters(This,parameter,status) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateChain_GetCertificates(This,includeRoot,certificates)	\
    ( (This)->lpVtbl -> GetCertificates(This,includeRoot,certificates) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateChain_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0073 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Certificates_ICertificate[] = L"Windows.Security.Cryptography.Certificates.ICertificate";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0073 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0073_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0073_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Certificates::ICertificate */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Certificates {
                        
                        MIDL_INTERFACE("333F740C-04D8-43B3-B278-8C5FCC9BE5A0")
                        ICertificate : public IInspectable
                        {
                        public:
                            virtual HRESULT STDMETHODCALLTYPE BuildChainAsync( 
                                /* [in] */ __RPC__in_opt __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate *certificates,
                                /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain **value) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE BuildChainWithParametersAsync( 
                                /* [in] */ __RPC__in_opt __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate *certificates,
                                /* [in] */ __RPC__in_opt ABI::Windows::Security::Cryptography::Certificates::IChainBuildingParameters *parameters,
                                /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain **value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SerialNumber( 
                                /* [out] */ __RPC__out UINT32 *__valueSize,
                                /* [out][retval][size_is][size_is] */ __RPC__deref_out_ecount_full_opt(*__valueSize) BYTE **value) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE GetHashValue( 
                                /* [out] */ __RPC__out UINT32 *__valueSize,
                                /* [out][retval][size_is][size_is] */ __RPC__deref_out_ecount_full_opt(*__valueSize) BYTE **value) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE GetHashValueWithAlgorithm( 
                                /* [in] */ __RPC__in HSTRING hashAlgorithmName,
                                /* [out] */ __RPC__out UINT32 *__valueSize,
                                /* [out][retval][size_is][size_is] */ __RPC__deref_out_ecount_full_opt(*__valueSize) BYTE **value) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE GetCertificateBlob( 
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Storage::Streams::IBuffer **value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Subject( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Issuer( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HasPrivateKey( 
                                /* [out][retval] */ __RPC__out boolean *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsStronglyProtected( 
                                /* [out][retval] */ __RPC__out boolean *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ValidFrom( 
                                /* [out][retval] */ __RPC__out ABI::Windows::Foundation::DateTime *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ValidTo( 
                                /* [out][retval] */ __RPC__out ABI::Windows::Foundation::DateTime *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_EnhancedKeyUsages( 
                                /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_HSTRING **value) = 0;
                            
                            virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_FriendlyName( 
                                /* [in] */ __RPC__in HSTRING value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_FriendlyName( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_ICertificate = __uuidof(ICertificate);

                        
                    }  /* end namespace */
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *BuildChainAsync )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate * This,
            /* [in] */ __RPC__in_opt __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate *certificates,
            /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain **value);
        
        HRESULT ( STDMETHODCALLTYPE *BuildChainWithParametersAsync )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate * This,
            /* [in] */ __RPC__in_opt __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate *certificates,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CIChainBuildingParameters *parameters,
            /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CCertificateChain **value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SerialNumber )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate * This,
            /* [out] */ __RPC__out UINT32 *__valueSize,
            /* [out][retval][size_is][size_is] */ __RPC__deref_out_ecount_full_opt(*__valueSize) BYTE **value);
        
        HRESULT ( STDMETHODCALLTYPE *GetHashValue )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate * This,
            /* [out] */ __RPC__out UINT32 *__valueSize,
            /* [out][retval][size_is][size_is] */ __RPC__deref_out_ecount_full_opt(*__valueSize) BYTE **value);
        
        HRESULT ( STDMETHODCALLTYPE *GetHashValueWithAlgorithm )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate * This,
            /* [in] */ __RPC__in HSTRING hashAlgorithmName,
            /* [out] */ __RPC__out UINT32 *__valueSize,
            /* [out][retval][size_is][size_is] */ __RPC__deref_out_ecount_full_opt(*__valueSize) BYTE **value);
        
        HRESULT ( STDMETHODCALLTYPE *GetCertificateBlob )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer **value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Subject )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Issuer )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HasPrivateKey )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate * This,
            /* [out][retval] */ __RPC__out boolean *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsStronglyProtected )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate * This,
            /* [out][retval] */ __RPC__out boolean *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ValidFrom )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate * This,
            /* [out][retval] */ __RPC__out __x_ABI_CWindows_CFoundation_CDateTime *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ValidTo )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate * This,
            /* [out][retval] */ __RPC__out __x_ABI_CWindows_CFoundation_CDateTime *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_EnhancedKeyUsages )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate * This,
            /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_HSTRING **value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_FriendlyName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate * This,
            /* [in] */ __RPC__in HSTRING value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_FriendlyName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate_BuildChainAsync(This,certificates,value)	\
    ( (This)->lpVtbl -> BuildChainAsync(This,certificates,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate_BuildChainWithParametersAsync(This,certificates,parameters,value)	\
    ( (This)->lpVtbl -> BuildChainWithParametersAsync(This,certificates,parameters,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate_get_SerialNumber(This,__valueSize,value)	\
    ( (This)->lpVtbl -> get_SerialNumber(This,__valueSize,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate_GetHashValue(This,__valueSize,value)	\
    ( (This)->lpVtbl -> GetHashValue(This,__valueSize,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate_GetHashValueWithAlgorithm(This,hashAlgorithmName,__valueSize,value)	\
    ( (This)->lpVtbl -> GetHashValueWithAlgorithm(This,hashAlgorithmName,__valueSize,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate_GetCertificateBlob(This,value)	\
    ( (This)->lpVtbl -> GetCertificateBlob(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate_get_Subject(This,value)	\
    ( (This)->lpVtbl -> get_Subject(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate_get_Issuer(This,value)	\
    ( (This)->lpVtbl -> get_Issuer(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate_get_HasPrivateKey(This,value)	\
    ( (This)->lpVtbl -> get_HasPrivateKey(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate_get_IsStronglyProtected(This,value)	\
    ( (This)->lpVtbl -> get_IsStronglyProtected(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate_get_ValidFrom(This,value)	\
    ( (This)->lpVtbl -> get_ValidFrom(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate_get_ValidTo(This,value)	\
    ( (This)->lpVtbl -> get_ValidTo(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate_get_EnhancedKeyUsages(This,value)	\
    ( (This)->lpVtbl -> get_EnhancedKeyUsages(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate_put_FriendlyName(This,value)	\
    ( (This)->lpVtbl -> put_FriendlyName(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate_get_FriendlyName(This,value)	\
    ( (This)->lpVtbl -> get_FriendlyName(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0074 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateFactory_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Certificates_ICertificateFactory[] = L"Windows.Security.Cryptography.Certificates.ICertificateFactory";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateFactory_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0074 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0074_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0074_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateFactory_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateFactory_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateFactory */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Certificates::ICertificateFactory */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateFactory;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Certificates {
                        
                        MIDL_INTERFACE("17B4221C-4BAF-44A2-9608-04FB62B16942")
                        ICertificateFactory : public IInspectable
                        {
                        public:
                            virtual HRESULT STDMETHODCALLTYPE CreateCertificate( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *certBlob,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Certificates::ICertificate **certificate) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_ICertificateFactory = __uuidof(ICertificateFactory);

                        
                    }  /* end namespace */
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateFactoryVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateFactory * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateFactory * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateFactory * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateFactory * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateFactory * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateFactory * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *CreateCertificate )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateFactory * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *certBlob,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate **certificate);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateFactoryVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateFactory
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateFactoryVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateFactory_CreateCertificate(This,certBlob,certificate)	\
    ( (This)->lpVtbl -> CreateCertificate(This,certBlob,certificate) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificateFactory_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0075 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsTimestampInfo_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Certificates_ICmsTimestampInfo[] = L"Windows.Security.Cryptography.Certificates.ICmsTimestampInfo";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsTimestampInfo_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0075 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0075_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0075_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsTimestampInfo_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsTimestampInfo_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsTimestampInfo */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Certificates::ICmsTimestampInfo */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsTimestampInfo;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Certificates {
                        
                        MIDL_INTERFACE("2F5F00F2-2C18-4F88-8435-C534086076F5")
                        ICmsTimestampInfo : public IInspectable
                        {
                        public:
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SigningCertificate( 
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Certificates::ICertificate **value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Certificates( 
                                /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate **value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Timestamp( 
                                /* [out][retval] */ __RPC__out ABI::Windows::Foundation::DateTime *value) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_ICmsTimestampInfo = __uuidof(ICmsTimestampInfo);

                        
                    }  /* end namespace */
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsTimestampInfoVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsTimestampInfo * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsTimestampInfo * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsTimestampInfo * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsTimestampInfo * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsTimestampInfo * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsTimestampInfo * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SigningCertificate )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsTimestampInfo * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate **value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Certificates )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsTimestampInfo * This,
            /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate **value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Timestamp )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsTimestampInfo * This,
            /* [out][retval] */ __RPC__out __x_ABI_CWindows_CFoundation_CDateTime *value);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsTimestampInfoVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsTimestampInfo
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsTimestampInfoVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsTimestampInfo_get_SigningCertificate(This,value)	\
    ( (This)->lpVtbl -> get_SigningCertificate(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsTimestampInfo_get_Certificates(This,value)	\
    ( (This)->lpVtbl -> get_Certificates(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsTimestampInfo_get_Timestamp(This,value)	\
    ( (This)->lpVtbl -> get_Timestamp(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsTimestampInfo_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0076 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsSignerInfo_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Certificates_ICmsSignerInfo[] = L"Windows.Security.Cryptography.Certificates.ICmsSignerInfo";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsSignerInfo_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0076 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0076_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0076_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsSignerInfo_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsSignerInfo_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsSignerInfo */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Certificates::ICmsSignerInfo */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsSignerInfo;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Certificates {
                        
                        MIDL_INTERFACE("50D020DB-1D2F-4C1A-B5C5-D0188FF91F47")
                        ICmsSignerInfo : public IInspectable
                        {
                        public:
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Certificate( 
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Certificates::ICertificate **value) = 0;
                            
                            virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Certificate( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Security::Cryptography::Certificates::ICertificate *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HashAlgorithmName( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_HashAlgorithmName( 
                                /* [in] */ __RPC__in HSTRING value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_TimestampInfo( 
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Certificates::ICmsTimestampInfo **value) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_ICmsSignerInfo = __uuidof(ICmsSignerInfo);

                        
                    }  /* end namespace */
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsSignerInfoVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsSignerInfo * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsSignerInfo * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsSignerInfo * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsSignerInfo * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsSignerInfo * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsSignerInfo * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Certificate )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsSignerInfo * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate **value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Certificate )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsSignerInfo * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HashAlgorithmName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsSignerInfo * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_HashAlgorithmName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsSignerInfo * This,
            /* [in] */ __RPC__in HSTRING value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_TimestampInfo )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsSignerInfo * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsTimestampInfo **value);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsSignerInfoVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsSignerInfo
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsSignerInfoVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsSignerInfo_get_Certificate(This,value)	\
    ( (This)->lpVtbl -> get_Certificate(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsSignerInfo_put_Certificate(This,value)	\
    ( (This)->lpVtbl -> put_Certificate(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsSignerInfo_get_HashAlgorithmName(This,value)	\
    ( (This)->lpVtbl -> get_HashAlgorithmName(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsSignerInfo_put_HashAlgorithmName(This,value)	\
    ( (This)->lpVtbl -> put_HashAlgorithmName(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsSignerInfo_get_TimestampInfo(This,value)	\
    ( (This)->lpVtbl -> get_TimestampInfo(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsSignerInfo_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0077 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignature_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Certificates_ICmsAttachedSignature[] = L"Windows.Security.Cryptography.Certificates.ICmsAttachedSignature";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignature_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0077 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0077_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0077_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignature_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignature_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignature */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Certificates::ICmsAttachedSignature */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignature;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Certificates {
                        
                        MIDL_INTERFACE("61899D9D-3757-4ECB-BDDC-0CA357D7A936")
                        ICmsAttachedSignature : public IInspectable
                        {
                        public:
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Certificates( 
                                /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate **value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Content( 
                                /* [out] */ __RPC__out UINT32 *__valueSize,
                                /* [out][retval][size_is][size_is] */ __RPC__deref_out_ecount_full_opt(*__valueSize) BYTE **value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Signers( 
                                /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo **value) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE VerifySignature( 
                                /* [out][retval] */ __RPC__out ABI::Windows::Security::Cryptography::Certificates::SignatureValidationResult *value) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_ICmsAttachedSignature = __uuidof(ICmsAttachedSignature);

                        
                    }  /* end namespace */
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignature * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignature * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignature * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignature * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignature * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignature * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Certificates )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignature * This,
            /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate **value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Content )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignature * This,
            /* [out] */ __RPC__out UINT32 *__valueSize,
            /* [out][retval][size_is][size_is] */ __RPC__deref_out_ecount_full_opt(*__valueSize) BYTE **value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Signers )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignature * This,
            /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo **value);
        
        HRESULT ( STDMETHODCALLTYPE *VerifySignature )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignature * This,
            /* [out][retval] */ __RPC__out __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CSignatureValidationResult *value);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignature
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignature_get_Certificates(This,value)	\
    ( (This)->lpVtbl -> get_Certificates(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignature_get_Content(This,__valueSize,value)	\
    ( (This)->lpVtbl -> get_Content(This,__valueSize,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignature_get_Signers(This,value)	\
    ( (This)->lpVtbl -> get_Signers(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignature_VerifySignature(This,value)	\
    ( (This)->lpVtbl -> VerifySignature(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignature_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0078 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureFactory_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Certificates_ICmsAttachedSignatureFactory[] = L"Windows.Security.Cryptography.Certificates.ICmsAttachedSignatureFactory";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureFactory_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0078 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0078_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0078_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureFactory_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureFactory_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureFactory */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Certificates::ICmsAttachedSignatureFactory */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureFactory;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Certificates {
                        
                        MIDL_INTERFACE("D0C8FC15-F757-4C64-A362-52CC1C77CFFB")
                        ICmsAttachedSignatureFactory : public IInspectable
                        {
                        public:
                            virtual HRESULT STDMETHODCALLTYPE CreateCmsAttachedSignature( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *inputBlob,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Certificates::ICmsAttachedSignature **cmsSignedData) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_ICmsAttachedSignatureFactory = __uuidof(ICmsAttachedSignatureFactory);

                        
                    }  /* end namespace */
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureFactoryVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureFactory * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureFactory * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureFactory * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureFactory * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureFactory * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureFactory * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *CreateCmsAttachedSignature )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureFactory * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *inputBlob,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignature **cmsSignedData);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureFactoryVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureFactory
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureFactoryVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureFactory_CreateCmsAttachedSignature(This,inputBlob,cmsSignedData)	\
    ( (This)->lpVtbl -> CreateCmsAttachedSignature(This,inputBlob,cmsSignedData) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureFactory_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0079 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Certificates_ICmsAttachedSignatureStatics[] = L"Windows.Security.Cryptography.Certificates.ICmsAttachedSignatureStatics";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureStatics_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0079 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0079_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0079_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureStatics_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureStatics_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureStatics */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Certificates::ICmsAttachedSignatureStatics */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureStatics;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Certificates {
                        
                        MIDL_INTERFACE("87989C8E-B0AD-498D-A7F5-78B59BCE4B36")
                        ICmsAttachedSignatureStatics : public IInspectable
                        {
                        public:
                            virtual HRESULT STDMETHODCALLTYPE GenerateSignatureAsync( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *data,
                                /* [in] */ __RPC__in_opt __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo *signers,
                                /* [in] */ __RPC__in_opt __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate *certificates,
                                /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer **outputBlob) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_ICmsAttachedSignatureStatics = __uuidof(ICmsAttachedSignatureStatics);

                        
                    }  /* end namespace */
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureStaticsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureStatics * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureStatics * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureStatics * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureStatics * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureStatics * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureStatics * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *GenerateSignatureAsync )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureStatics * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *data,
            /* [in] */ __RPC__in_opt __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo *signers,
            /* [in] */ __RPC__in_opt __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate *certificates,
            /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer **outputBlob);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureStaticsVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureStatics
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureStaticsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureStatics_GenerateSignatureAsync(This,data,signers,certificates,outputBlob)	\
    ( (This)->lpVtbl -> GenerateSignatureAsync(This,data,signers,certificates,outputBlob) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsAttachedSignatureStatics_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0080 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignature_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Certificates_ICmsDetachedSignature[] = L"Windows.Security.Cryptography.Certificates.ICmsDetachedSignature";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignature_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0080 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0080_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0080_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignature_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignature_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignature */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Certificates::ICmsDetachedSignature */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignature;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Certificates {
                        
                        MIDL_INTERFACE("0F1EF154-F65E-4536-8339-5944081DB2CA")
                        ICmsDetachedSignature : public IInspectable
                        {
                        public:
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Certificates( 
                                /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate **value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Signers( 
                                /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo **value) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE VerifySignatureAsync( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IInputStream *data,
                                /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult **value) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_ICmsDetachedSignature = __uuidof(ICmsDetachedSignature);

                        
                    }  /* end namespace */
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignature * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignature * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignature * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignature * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignature * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignature * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Certificates )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignature * This,
            /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate **value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Signers )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignature * This,
            /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo **value);
        
        HRESULT ( STDMETHODCALLTYPE *VerifySignatureAsync )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignature * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIInputStream *data,
            /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCertificates__CSignatureValidationResult **value);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignature
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignature_get_Certificates(This,value)	\
    ( (This)->lpVtbl -> get_Certificates(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignature_get_Signers(This,value)	\
    ( (This)->lpVtbl -> get_Signers(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignature_VerifySignatureAsync(This,data,value)	\
    ( (This)->lpVtbl -> VerifySignatureAsync(This,data,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignature_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0081 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureFactory_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Certificates_ICmsDetachedSignatureFactory[] = L"Windows.Security.Cryptography.Certificates.ICmsDetachedSignatureFactory";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureFactory_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0081 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0081_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0081_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureFactory_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureFactory_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureFactory */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Certificates::ICmsDetachedSignatureFactory */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureFactory;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Certificates {
                        
                        MIDL_INTERFACE("C4AB3503-AE7F-4387-AD19-00F150E48EBB")
                        ICmsDetachedSignatureFactory : public IInspectable
                        {
                        public:
                            virtual HRESULT STDMETHODCALLTYPE CreateCmsDetachedSignature( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *inputBlob,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Certificates::ICmsDetachedSignature **cmsSignedData) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_ICmsDetachedSignatureFactory = __uuidof(ICmsDetachedSignatureFactory);

                        
                    }  /* end namespace */
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureFactoryVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureFactory * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureFactory * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureFactory * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureFactory * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureFactory * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureFactory * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *CreateCmsDetachedSignature )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureFactory * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *inputBlob,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignature **cmsSignedData);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureFactoryVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureFactory
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureFactoryVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureFactory_CreateCmsDetachedSignature(This,inputBlob,cmsSignedData)	\
    ( (This)->lpVtbl -> CreateCmsDetachedSignature(This,inputBlob,cmsSignedData) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureFactory_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0082 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Certificates_ICmsDetachedSignatureStatics[] = L"Windows.Security.Cryptography.Certificates.ICmsDetachedSignatureStatics";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureStatics_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0082 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0082_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0082_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureStatics_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureStatics_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureStatics */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Certificates::ICmsDetachedSignatureStatics */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureStatics;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Certificates {
                        
                        MIDL_INTERFACE("3D114CFD-BF9B-4682-9BE6-91F57C053808")
                        ICmsDetachedSignatureStatics : public IInspectable
                        {
                        public:
                            virtual HRESULT STDMETHODCALLTYPE GenerateSignatureAsync( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IInputStream *data,
                                /* [in] */ __RPC__in_opt __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo *signers,
                                /* [in] */ __RPC__in_opt __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate *certificates,
                                /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer **outputBlob) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_ICmsDetachedSignatureStatics = __uuidof(ICmsDetachedSignatureStatics);

                        
                    }  /* end namespace */
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureStaticsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureStatics * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureStatics * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureStatics * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureStatics * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureStatics * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureStatics * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *GenerateSignatureAsync )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureStatics * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIInputStream *data,
            /* [in] */ __RPC__in_opt __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCmsSignerInfo *signers,
            /* [in] */ __RPC__in_opt __FIIterable_1_Windows__CSecurity__CCryptography__CCertificates__CCertificate *certificates,
            /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer **outputBlob);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureStaticsVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureStatics
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureStaticsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureStatics_GenerateSignatureAsync(This,data,signers,certificates,outputBlob)	\
    ( (This)->lpVtbl -> GenerateSignatureAsync(This,data,signers,certificates,outputBlob) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICmsDetachedSignatureStatics_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0083 */
/* [local] */ 

#ifndef RUNTIMECLASS_Windows_Security_Cryptography_Certificates_Certificate_DEFINED
#define RUNTIMECLASS_Windows_Security_Cryptography_Certificates_Certificate_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Security_Cryptography_Certificates_Certificate[] = L"Windows.Security.Cryptography.Certificates.Certificate";
#endif
#ifndef RUNTIMECLASS_Windows_Security_Cryptography_Certificates_CertificateRequestProperties_DEFINED
#define RUNTIMECLASS_Windows_Security_Cryptography_Certificates_CertificateRequestProperties_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Security_Cryptography_Certificates_CertificateRequestProperties[] = L"Windows.Security.Cryptography.Certificates.CertificateRequestProperties";
#endif
#ifndef RUNTIMECLASS_Windows_Security_Cryptography_Certificates_UserCertificateEnrollmentManager_DEFINED
#define RUNTIMECLASS_Windows_Security_Cryptography_Certificates_UserCertificateEnrollmentManager_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Security_Cryptography_Certificates_UserCertificateEnrollmentManager[] = L"Windows.Security.Cryptography.Certificates.UserCertificateEnrollmentManager";
#endif
#ifndef RUNTIMECLASS_Windows_Security_Cryptography_Certificates_CertificateEnrollmentManager_DEFINED
#define RUNTIMECLASS_Windows_Security_Cryptography_Certificates_CertificateEnrollmentManager_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Security_Cryptography_Certificates_CertificateEnrollmentManager[] = L"Windows.Security.Cryptography.Certificates.CertificateEnrollmentManager";
#endif
#ifndef RUNTIMECLASS_Windows_Security_Cryptography_Certificates_KeyAttestationHelper_DEFINED
#define RUNTIMECLASS_Windows_Security_Cryptography_Certificates_KeyAttestationHelper_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Security_Cryptography_Certificates_KeyAttestationHelper[] = L"Windows.Security.Cryptography.Certificates.KeyAttestationHelper";
#endif
#ifndef RUNTIMECLASS_Windows_Security_Cryptography_Certificates_CertificateQuery_DEFINED
#define RUNTIMECLASS_Windows_Security_Cryptography_Certificates_CertificateQuery_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Security_Cryptography_Certificates_CertificateQuery[] = L"Windows.Security.Cryptography.Certificates.CertificateQuery";
#endif
#ifndef RUNTIMECLASS_Windows_Security_Cryptography_Certificates_CertificateStore_DEFINED
#define RUNTIMECLASS_Windows_Security_Cryptography_Certificates_CertificateStore_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Security_Cryptography_Certificates_CertificateStore[] = L"Windows.Security.Cryptography.Certificates.CertificateStore";
#endif
#ifndef RUNTIMECLASS_Windows_Security_Cryptography_Certificates_CertificateStores_DEFINED
#define RUNTIMECLASS_Windows_Security_Cryptography_Certificates_CertificateStores_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Security_Cryptography_Certificates_CertificateStores[] = L"Windows.Security.Cryptography.Certificates.CertificateStores";
#endif
#ifndef RUNTIMECLASS_Windows_Security_Cryptography_Certificates_KeyAlgorithmNames_DEFINED
#define RUNTIMECLASS_Windows_Security_Cryptography_Certificates_KeyAlgorithmNames_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Security_Cryptography_Certificates_KeyAlgorithmNames[] = L"Windows.Security.Cryptography.Certificates.KeyAlgorithmNames";
#endif
#ifndef RUNTIMECLASS_Windows_Security_Cryptography_Certificates_KeyStorageProviderNames_DEFINED
#define RUNTIMECLASS_Windows_Security_Cryptography_Certificates_KeyStorageProviderNames_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Security_Cryptography_Certificates_KeyStorageProviderNames[] = L"Windows.Security.Cryptography.Certificates.KeyStorageProviderNames";
#endif
#ifndef RUNTIMECLASS_Windows_Security_Cryptography_Certificates_ChainBuildingParameters_DEFINED
#define RUNTIMECLASS_Windows_Security_Cryptography_Certificates_ChainBuildingParameters_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Security_Cryptography_Certificates_ChainBuildingParameters[] = L"Windows.Security.Cryptography.Certificates.ChainBuildingParameters";
#endif
#ifndef RUNTIMECLASS_Windows_Security_Cryptography_Certificates_ChainValidationParameters_DEFINED
#define RUNTIMECLASS_Windows_Security_Cryptography_Certificates_ChainValidationParameters_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Security_Cryptography_Certificates_ChainValidationParameters[] = L"Windows.Security.Cryptography.Certificates.ChainValidationParameters";
#endif
#ifndef RUNTIMECLASS_Windows_Security_Cryptography_Certificates_CertificateChain_DEFINED
#define RUNTIMECLASS_Windows_Security_Cryptography_Certificates_CertificateChain_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Security_Cryptography_Certificates_CertificateChain[] = L"Windows.Security.Cryptography.Certificates.CertificateChain";
#endif
#ifndef RUNTIMECLASS_Windows_Security_Cryptography_Certificates_CmsTimestampInfo_DEFINED
#define RUNTIMECLASS_Windows_Security_Cryptography_Certificates_CmsTimestampInfo_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Security_Cryptography_Certificates_CmsTimestampInfo[] = L"Windows.Security.Cryptography.Certificates.CmsTimestampInfo";
#endif
#ifndef RUNTIMECLASS_Windows_Security_Cryptography_Certificates_CmsSignerInfo_DEFINED
#define RUNTIMECLASS_Windows_Security_Cryptography_Certificates_CmsSignerInfo_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Security_Cryptography_Certificates_CmsSignerInfo[] = L"Windows.Security.Cryptography.Certificates.CmsSignerInfo";
#endif
#ifndef RUNTIMECLASS_Windows_Security_Cryptography_Certificates_CmsAttachedSignature_DEFINED
#define RUNTIMECLASS_Windows_Security_Cryptography_Certificates_CmsAttachedSignature_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Security_Cryptography_Certificates_CmsAttachedSignature[] = L"Windows.Security.Cryptography.Certificates.CmsAttachedSignature";
#endif
#ifndef RUNTIMECLASS_Windows_Security_Cryptography_Certificates_CmsDetachedSignature_DEFINED
#define RUNTIMECLASS_Windows_Security_Cryptography_Certificates_CmsDetachedSignature_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Security_Cryptography_Certificates_CmsDetachedSignature[] = L"Windows.Security.Cryptography.Certificates.CmsDetachedSignature";
#endif


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0083 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0083_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecertificates_0000_0083_v0_0_s_ifspec;

/* Additional Prototypes for ALL interfaces */

unsigned long             __RPC_USER  HSTRING_UserSize(     __RPC__in unsigned long *, unsigned long            , __RPC__in HSTRING * ); 
unsigned char * __RPC_USER  HSTRING_UserMarshal(  __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in HSTRING * ); 
unsigned char * __RPC_USER  HSTRING_UserUnmarshal(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out HSTRING * ); 
void                      __RPC_USER  HSTRING_UserFree(     __RPC__in unsigned long *, __RPC__in HSTRING * ); 

unsigned long             __RPC_USER  HSTRING_UserSize64(     __RPC__in unsigned long *, unsigned long            , __RPC__in HSTRING * ); 
unsigned char * __RPC_USER  HSTRING_UserMarshal64(  __RPC__in unsigned long *, __RPC__inout_xcount(0) unsigned char *, __RPC__in HSTRING * ); 
unsigned char * __RPC_USER  HSTRING_UserUnmarshal64(__RPC__in unsigned long *, __RPC__in_xcount(0) unsigned char *, __RPC__out HSTRING * ); 
void                      __RPC_USER  HSTRING_UserFree64(     __RPC__in unsigned long *, __RPC__in HSTRING * ); 

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif


