

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


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



/* 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 __windows2Esecurity2Ecryptography2Ecore_h__
#define __windows2Esecurity2Ecryptography2Ecore_h__

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

/* Forward Declarations */ 

#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey_FWD_DEFINED__
#define ____FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey_FWD_DEFINED__
typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey;

#endif 	/* ____FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey_FWD_DEFINED__ */


#ifndef ____FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey_FWD_DEFINED__
#define ____FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey_FWD_DEFINED__
typedef interface __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey;

#endif 	/* ____FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Core {
                    interface IKeyDerivationParameters;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters2_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters2_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters2 __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters2;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Core {
                    interface IKeyDerivationParameters2;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters2_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Core {
                    interface IKeyDerivationParametersStatics;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics2_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics2_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics2 __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics2;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Core {
                    interface IKeyDerivationParametersStatics2;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics2_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Core {
                    interface ICryptographicKey;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashComputation_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashComputation_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashComputation __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashComputation;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Core {
                    interface IHashComputation;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashComputation_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProvider_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProvider_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProvider __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProvider;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Core {
                    interface IHashAlgorithmProvider;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProvider_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Core {
                    interface IMacAlgorithmProvider;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider2_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider2_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider2 __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider2;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Core {
                    interface IMacAlgorithmProvider2;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider2_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProvider_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProvider_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProvider __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProvider;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Core {
                    interface IKeyDerivationAlgorithmProvider;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProvider_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProvider_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProvider_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProvider __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProvider;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Core {
                    interface ISymmetricKeyAlgorithmProvider;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProvider_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Core {
                    interface IAsymmetricKeyAlgorithmProvider;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider2_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider2_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider2 __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider2;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Core {
                    interface IAsymmetricKeyAlgorithmProvider2;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider2_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIPersistedKeyProviderStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIPersistedKeyProviderStatics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIPersistedKeyProviderStatics __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIPersistedKeyProviderStatics;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Core {
                    interface IPersistedKeyProviderStatics;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIPersistedKeyProviderStatics_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEncryptedAndAuthenticatedData_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEncryptedAndAuthenticatedData_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEncryptedAndAuthenticatedData __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEncryptedAndAuthenticatedData;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Core {
                    interface IEncryptedAndAuthenticatedData;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEncryptedAndAuthenticatedData_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Core {
                    interface ICryptographicEngineStatics;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics2_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics2_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics2 __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics2;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Core {
                    interface ICryptographicEngineStatics2;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics2_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProviderStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProviderStatics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProviderStatics __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProviderStatics;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Core {
                    interface IHashAlgorithmProviderStatics;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProviderStatics_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProviderStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProviderStatics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProviderStatics __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProviderStatics;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Core {
                    interface IMacAlgorithmProviderStatics;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProviderStatics_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProviderStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProviderStatics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProviderStatics __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProviderStatics;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Core {
                    interface IKeyDerivationAlgorithmProviderStatics;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProviderStatics_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProviderStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProviderStatics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProviderStatics __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProviderStatics;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Core {
                    interface ISymmetricKeyAlgorithmProviderStatics;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProviderStatics_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProviderStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProviderStatics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProviderStatics __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProviderStatics;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Core {
                    interface IAsymmetricKeyAlgorithmProviderStatics;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProviderStatics_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmNamesStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmNamesStatics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmNamesStatics __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmNamesStatics;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Core {
                    interface IHashAlgorithmNamesStatics;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmNamesStatics_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmNamesStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmNamesStatics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmNamesStatics __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmNamesStatics;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Core {
                    interface IMacAlgorithmNamesStatics;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmNamesStatics_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Core {
                    interface ISymmetricAlgorithmNamesStatics;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Core {
                    interface IAsymmetricAlgorithmNamesStatics;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics2_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics2_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics2 __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics2;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Core {
                    interface IAsymmetricAlgorithmNamesStatics2;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics2_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Core {
                    interface IEccCurveNamesStatics;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Core {
                    interface IKeyDerivationAlgorithmNamesStatics;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics2_FWD_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics2_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics2 __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics2;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Core {
                    interface IKeyDerivationAlgorithmNamesStatics2;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics2_FWD_DEFINED__ */


/* header files for imported files */
#include "inspectable.h"
#include "AsyncInfo.h"
#include "EventToken.h"
#include "Windows.Foundation.h"
#include "Windows.Security.Cryptography.Certificates.h"

#ifdef __cplusplus
extern "C"{
#endif 


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_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 Core {
class CryptographicKey;
} /*Core*/
} /*Cryptography*/
} /*Security*/
} /*Windows*/
}
#endif

#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Security {
namespace Cryptography {
namespace Core {
interface ICryptographicKey;
} /*Core*/
} /*Cryptography*/
} /*Security*/
} /*Windows*/
}
#endif


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0000 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0000_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_2536 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_2536 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_2536_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_2536_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0001 */
/* [local] */ 

#ifndef DEF___FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey_USE
#define DEF___FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("04ca4378-f594-5de6-a555-304f62cb4faf"))
IAsyncOperationCompletedHandler<ABI::Windows::Security::Cryptography::Core::CryptographicKey*> : IAsyncOperationCompletedHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Security::Cryptography::Core::CryptographicKey*, ABI::Windows::Security::Cryptography::Core::ICryptographicKey*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.AsyncOperationCompletedHandler`1<Windows.Security.Cryptography.Core.CryptographicKey>"; }
};
typedef IAsyncOperationCompletedHandler<ABI::Windows::Security::Cryptography::Core::CryptographicKey*> __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey_t;
#define ____FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey_FWD_DEFINED__
#define __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey ABI::Windows::Foundation::__FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey_t

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


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0001 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0001_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0001_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_2537 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_2537 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_2537_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_2537_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0002 */
/* [local] */ 

#ifndef DEF___FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey_USE
#define DEF___FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("81ca789b-98df-5c6a-9531-966238e3e7ae"))
IAsyncOperation<ABI::Windows::Security::Cryptography::Core::CryptographicKey*> : IAsyncOperation_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Security::Cryptography::Core::CryptographicKey*, ABI::Windows::Security::Cryptography::Core::ICryptographicKey*>> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.IAsyncOperation`1<Windows.Security.Cryptography.Core.CryptographicKey>"; }
};
typedef IAsyncOperation<ABI::Windows::Security::Cryptography::Core::CryptographicKey*> __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey_t;
#define ____FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey_FWD_DEFINED__
#define __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey ABI::Windows::Foundation::__FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey_t

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

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


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0002 */
/* [local] */ 





extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0002_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0002_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_2538 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_2538 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_2538_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_2538_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0003 */
/* [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_windows2Esecurity2Ecryptography2Ecore_0000_0003 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0003_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0003_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_2539 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_2539 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_2539_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_2539_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0004 */
/* [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 */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0004 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0004_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0004_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_2540 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_2540 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_2540_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_2540_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0005 */
/* [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_windows2Esecurity2Ecryptography2Ecore_0000_0005 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0005_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0005_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_2541 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_2541 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_2541_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_2541_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0006 */
/* [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_windows2Esecurity2Ecryptography2Ecore_0000_0006 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0006_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0006_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_2542 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_2542 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_2542_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_2542_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0007 */
/* [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 */
#if defined(__cplusplus)
}
#endif // defined(__cplusplus)
#include <Windows.Foundation.h>
#if !defined(__windows2Esecurity2Ecryptography2Ecertificates_h__)
#include <Windows.Security.Cryptography.Certificates.h>
#endif // !defined(__windows2Esecurity2Ecryptography2Ecertificates_h__)
#if !defined(__windows2Estorage2Estreams_h__)
#include <Windows.Storage.Streams.h>
#endif // !defined(__windows2Estorage2Estreams_h__)
#if defined(__cplusplus)
extern "C" {
#endif // defined(__cplusplus)
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Security {
namespace Cryptography {
namespace Certificates {
class Certificate;
} /*Certificates*/
} /*Cryptography*/
} /*Security*/
} /*Windows*/
}
#endif

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

typedef enum __x_ABI_CWindows_CSecurity_CCryptography_CCore_CCryptographicPrivateKeyBlobType __x_ABI_CWindows_CSecurity_CCryptography_CCore_CCryptographicPrivateKeyBlobType;


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


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

typedef enum __x_ABI_CWindows_CSecurity_CCryptography_CCore_CCryptographicPublicKeyBlobType __x_ABI_CWindows_CSecurity_CCryptography_CCore_CCryptographicPublicKeyBlobType;


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


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

typedef enum __x_ABI_CWindows_CSecurity_CCryptography_CCore_CCapi1KdfTargetAlgorithm __x_ABI_CWindows_CSecurity_CCryptography_CCore_CCapi1KdfTargetAlgorithm;


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


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

typedef enum __x_ABI_CWindows_CSecurity_CCryptography_CCore_CCryptographicPadding __x_ABI_CWindows_CSecurity_CCryptography_CCore_CCryptographicPadding;


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


#endif





























#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Security {
namespace Cryptography {
namespace Core {
class KeyDerivationParameters;
} /*Core*/
} /*Cryptography*/
} /*Security*/
} /*Windows*/
}
#endif
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Security {
namespace Cryptography {
namespace Core {
class CryptographicHash;
} /*Core*/
} /*Cryptography*/
} /*Security*/
} /*Windows*/
}
#endif
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Security {
namespace Cryptography {
namespace Core {
class EncryptedAndAuthenticatedData;
} /*Core*/
} /*Cryptography*/
} /*Security*/
} /*Windows*/
}
#endif
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Security {
namespace Cryptography {
namespace Core {
class HashAlgorithmProvider;
} /*Core*/
} /*Cryptography*/
} /*Security*/
} /*Windows*/
}
#endif
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Security {
namespace Cryptography {
namespace Core {
class MacAlgorithmProvider;
} /*Core*/
} /*Cryptography*/
} /*Security*/
} /*Windows*/
}
#endif
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Security {
namespace Cryptography {
namespace Core {
class KeyDerivationAlgorithmProvider;
} /*Core*/
} /*Cryptography*/
} /*Security*/
} /*Windows*/
}
#endif
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Security {
namespace Cryptography {
namespace Core {
class SymmetricKeyAlgorithmProvider;
} /*Core*/
} /*Cryptography*/
} /*Security*/
} /*Windows*/
}
#endif
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Security {
namespace Cryptography {
namespace Core {
class AsymmetricKeyAlgorithmProvider;
} /*Core*/
} /*Cryptography*/
} /*Security*/
} /*Windows*/
}
#endif


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0007 */
/* [local] */ 



#ifdef __cplusplus

} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Core {
                    
                    typedef enum CryptographicPrivateKeyBlobType CryptographicPrivateKeyBlobType;
                    
                } /* 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 Core {
                    
                    typedef enum CryptographicPublicKeyBlobType CryptographicPublicKeyBlobType;
                    
                } /* 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 Core {
                    
                    typedef enum Capi1KdfTargetAlgorithm Capi1KdfTargetAlgorithm;
                    
                } /* 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 Core {
                    
                    typedef enum CryptographicPadding CryptographicPadding;
                    
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif
































extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0007_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0007_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_2543 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_2543 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_2543_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_2543_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0008 */
/* [local] */ 

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



/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0008 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0008_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0008_v0_0_s_ifspec;

#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey_INTERFACE_DEFINED__
#define ____FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey_INTERFACE_DEFINED__

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



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


EXTERN_C const IID IID___FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("04ca4378-f594-5de6-a555-304f62cb4faf")
    __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke( 
            /* [in] */ __RPC__in_opt __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey *asyncInfo,
            /* [in] */ AsyncStatus status) = 0;
        
    };
    
    
#else 	/* C style interface */

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

    interface __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey
    {
        CONST_VTBL struct __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKeyVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0009 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0009 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0009_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0009_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_2544 */




/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_2544 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_2544_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_2544_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0010 */
/* [local] */ 

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


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0010 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0010_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0010_v0_0_s_ifspec;

#ifndef ____FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey_INTERFACE_DEFINED__
#define ____FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey_INTERFACE_DEFINED__

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



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


EXTERN_C const IID IID___FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("81ca789b-98df-5c6a-9531-966238e3e7ae")
    __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey : public IInspectable
    {
    public:
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Completed( 
            /* [in] */ __RPC__in_opt __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey *handler) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Completed( 
            /* [retval][out] */ __RPC__deref_out_opt __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey **handler) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetResults( 
            /* [retval][out] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Core::ICryptographicKey **results) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKeyVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey * 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__CCore__CCryptographicKey * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Completed )( 
            __RPC__in __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey * This,
            /* [in] */ __RPC__in_opt __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey *handler);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Completed )( 
            __RPC__in __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey * This,
            /* [retval][out] */ __RPC__deref_out_opt __FIAsyncOperationCompletedHandler_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey **handler);
        
        HRESULT ( STDMETHODCALLTYPE *GetResults )( 
            __RPC__in __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey * This,
            /* [retval][out] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey **results);
        
        END_INTERFACE
    } __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKeyVtbl;

    interface __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey
    {
        CONST_VTBL struct __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKeyVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


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

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

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

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0011 */
/* [local] */ 

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

#if !defined(__cplusplus)
/* [v1_enum] */ 
enum __x_ABI_CWindows_CSecurity_CCryptography_CCore_CCryptographicPrivateKeyBlobType
    {
        CryptographicPrivateKeyBlobType_Pkcs8RawPrivateKeyInfo	= 0,
        CryptographicPrivateKeyBlobType_Pkcs1RsaPrivateKey	= 1,
        CryptographicPrivateKeyBlobType_BCryptPrivateKey	= 2,
        CryptographicPrivateKeyBlobType_Capi1PrivateKey	= 3,
        CryptographicPrivateKeyBlobType_BCryptEccFullPrivateKey	= 4
    } ;
#endif /* end if !defined(__cplusplus) */

#endif
#if !defined(__cplusplus)

#if !defined(__cplusplus)
/* [v1_enum] */ 
enum __x_ABI_CWindows_CSecurity_CCryptography_CCore_CCryptographicPublicKeyBlobType
    {
        CryptographicPublicKeyBlobType_X509SubjectPublicKeyInfo	= 0,
        CryptographicPublicKeyBlobType_Pkcs1RsaPublicKey	= 1,
        CryptographicPublicKeyBlobType_BCryptPublicKey	= 2,
        CryptographicPublicKeyBlobType_Capi1PublicKey	= 3,
        CryptographicPublicKeyBlobType_BCryptEccFullPublicKey	= 4
    } ;
#endif /* end if !defined(__cplusplus) */

#endif
#if !defined(__cplusplus)

#if !defined(__cplusplus)
/* [v1_enum] */ 
enum __x_ABI_CWindows_CSecurity_CCryptography_CCore_CCapi1KdfTargetAlgorithm
    {
        Capi1KdfTargetAlgorithm_NotAes	= 0,
        Capi1KdfTargetAlgorithm_Aes	= 1
    } ;
#endif /* end if !defined(__cplusplus) */

#endif
#if !defined(__cplusplus)

#if !defined(__cplusplus)
/* [v1_enum] */ 
enum __x_ABI_CWindows_CSecurity_CCryptography_CCore_CCryptographicPadding
    {
        CryptographicPadding_None	= 0,
        CryptographicPadding_RsaOaep	= 1,
        CryptographicPadding_RsaPkcs1V15	= 2,
        CryptographicPadding_RsaPss	= 3
    } ;
#endif /* end if !defined(__cplusplus) */

#endif
#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Core_IKeyDerivationParameters[] = L"Windows.Security.Cryptography.Core.IKeyDerivationParameters";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0011 */
/* [local] */ 

#ifdef __cplusplus
} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Core {
                    
                    /* [v1_enum] */ 
                    enum CryptographicPrivateKeyBlobType
                        {
                            CryptographicPrivateKeyBlobType_Pkcs8RawPrivateKeyInfo	= 0,
                            CryptographicPrivateKeyBlobType_Pkcs1RsaPrivateKey	= 1,
                            CryptographicPrivateKeyBlobType_BCryptPrivateKey	= 2,
                            CryptographicPrivateKeyBlobType_Capi1PrivateKey	= 3,
                            CryptographicPrivateKeyBlobType_BCryptEccFullPrivateKey	= 4
                        } ;
                } /* 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 Core {
                    
                    /* [v1_enum] */ 
                    enum CryptographicPublicKeyBlobType
                        {
                            CryptographicPublicKeyBlobType_X509SubjectPublicKeyInfo	= 0,
                            CryptographicPublicKeyBlobType_Pkcs1RsaPublicKey	= 1,
                            CryptographicPublicKeyBlobType_BCryptPublicKey	= 2,
                            CryptographicPublicKeyBlobType_Capi1PublicKey	= 3,
                            CryptographicPublicKeyBlobType_BCryptEccFullPublicKey	= 4
                        } ;
                } /* 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 Core {
                    
                    /* [v1_enum] */ 
                    enum Capi1KdfTargetAlgorithm
                        {
                            Capi1KdfTargetAlgorithm_NotAes	= 0,
                            Capi1KdfTargetAlgorithm_Aes	= 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 Core {
                    
                    /* [v1_enum] */ 
                    enum CryptographicPadding
                        {
                            CryptographicPadding_None	= 0,
                            CryptographicPadding_RsaOaep	= 1,
                            CryptographicPadding_RsaPkcs1V15	= 2,
                            CryptographicPadding_RsaPss	= 3
                        } ;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0011_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0011_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Core::IKeyDerivationParameters */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Core {
                        
                        MIDL_INTERFACE("7BF05967-047B-4A8C-964A-469FFD5522E2")
                        IKeyDerivationParameters : public IInspectable
                        {
                        public:
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_KdfGenericBinary( 
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Storage::Streams::IBuffer **value) = 0;
                            
                            virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_KdfGenericBinary( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IterationCount( 
                                /* [out][retval] */ __RPC__out UINT32 *value) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IKeyDerivationParameters = __uuidof(IKeyDerivationParameters);

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

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters * 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_CCore_CIKeyDerivationParameters * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_KdfGenericBinary )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer **value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_KdfGenericBinary )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_IterationCount )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters * This,
            /* [out][retval] */ __RPC__out UINT32 *value);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters_get_KdfGenericBinary(This,value)	\
    ( (This)->lpVtbl -> get_KdfGenericBinary(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters_put_KdfGenericBinary(This,value)	\
    ( (This)->lpVtbl -> put_KdfGenericBinary(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters_get_IterationCount(This,value)	\
    ( (This)->lpVtbl -> get_IterationCount(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0012 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters2_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Core_IKeyDerivationParameters2[] = L"Windows.Security.Cryptography.Core.IKeyDerivationParameters2";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters2_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0012 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0012_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0012_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters2_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters2_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters2 */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Core::IKeyDerivationParameters2 */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters2;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Core {
                        
                        MIDL_INTERFACE("CD4166D1-417E-4F4C-B666-C0D879F3F8E0")
                        IKeyDerivationParameters2 : public IInspectable
                        {
                        public:
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Capi1KdfTargetAlgorithm( 
                                /* [out][retval] */ __RPC__out ABI::Windows::Security::Cryptography::Core::Capi1KdfTargetAlgorithm *value) = 0;
                            
                            virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Capi1KdfTargetAlgorithm( 
                                /* [in] */ ABI::Windows::Security::Cryptography::Core::Capi1KdfTargetAlgorithm value) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IKeyDerivationParameters2 = __uuidof(IKeyDerivationParameters2);

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

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters2Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters2 * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters2 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters2 * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters2 * 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_CCore_CIKeyDerivationParameters2 * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters2 * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Capi1KdfTargetAlgorithm )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters2 * This,
            /* [out][retval] */ __RPC__out __x_ABI_CWindows_CSecurity_CCryptography_CCore_CCapi1KdfTargetAlgorithm *value);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Capi1KdfTargetAlgorithm )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters2 * This,
            /* [in] */ __x_ABI_CWindows_CSecurity_CCryptography_CCore_CCapi1KdfTargetAlgorithm value);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters2Vtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters2
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters2Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters2_get_Capi1KdfTargetAlgorithm(This,value)	\
    ( (This)->lpVtbl -> get_Capi1KdfTargetAlgorithm(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters2_put_Capi1KdfTargetAlgorithm(This,value)	\
    ( (This)->lpVtbl -> put_Capi1KdfTargetAlgorithm(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters2_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0013 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Core_IKeyDerivationParametersStatics[] = L"Windows.Security.Cryptography.Core.IKeyDerivationParametersStatics";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0013 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0013_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0013_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Core::IKeyDerivationParametersStatics */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Core {
                        
                        MIDL_INTERFACE("EA961FBE-F37F-4146-9DFE-A456F1735F4B")
                        IKeyDerivationParametersStatics : public IInspectable
                        {
                        public:
                            virtual HRESULT STDMETHODCALLTYPE BuildForPbkdf2( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *pbkdf2Salt,
                                /* [in] */ UINT32 iterationCount,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Core::IKeyDerivationParameters **value) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE BuildForSP800108( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *label,
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *context,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Core::IKeyDerivationParameters **value) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE BuildForSP80056a( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *algorithmId,
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *partyUInfo,
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *partyVInfo,
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *suppPubInfo,
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *suppPrivInfo,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Core::IKeyDerivationParameters **value) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IKeyDerivationParametersStatics = __uuidof(IKeyDerivationParametersStatics);

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

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStaticsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics * 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_CCore_CIKeyDerivationParametersStatics * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *BuildForPbkdf2 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *pbkdf2Salt,
            /* [in] */ UINT32 iterationCount,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters **value);
        
        HRESULT ( STDMETHODCALLTYPE *BuildForSP800108 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *label,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *context,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters **value);
        
        HRESULT ( STDMETHODCALLTYPE *BuildForSP80056a )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *algorithmId,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *partyUInfo,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *partyVInfo,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *suppPubInfo,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *suppPrivInfo,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters **value);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStaticsVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStaticsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics_BuildForPbkdf2(This,pbkdf2Salt,iterationCount,value)	\
    ( (This)->lpVtbl -> BuildForPbkdf2(This,pbkdf2Salt,iterationCount,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics_BuildForSP800108(This,label,context,value)	\
    ( (This)->lpVtbl -> BuildForSP800108(This,label,context,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics_BuildForSP80056a(This,algorithmId,partyUInfo,partyVInfo,suppPubInfo,suppPrivInfo,value)	\
    ( (This)->lpVtbl -> BuildForSP80056a(This,algorithmId,partyUInfo,partyVInfo,suppPubInfo,suppPrivInfo,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0014 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics2_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Core_IKeyDerivationParametersStatics2[] = L"Windows.Security.Cryptography.Core.IKeyDerivationParametersStatics2";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics2_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0014 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0014_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0014_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics2_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics2_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics2 */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Core::IKeyDerivationParametersStatics2 */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics2;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Core {
                        
                        MIDL_INTERFACE("A5783DD5-58E3-4EFB-B283-A1653126E1BE")
                        IKeyDerivationParametersStatics2 : public IInspectable
                        {
                        public:
                            virtual HRESULT STDMETHODCALLTYPE BuildForCapi1Kdf( 
                                /* [in] */ ABI::Windows::Security::Cryptography::Core::Capi1KdfTargetAlgorithm capi1KdfTargetAlgorithm,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Core::IKeyDerivationParameters **value) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IKeyDerivationParametersStatics2 = __uuidof(IKeyDerivationParametersStatics2);

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

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics2Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics2 * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics2 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics2 * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics2 * 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_CCore_CIKeyDerivationParametersStatics2 * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics2 * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *BuildForCapi1Kdf )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics2 * This,
            /* [in] */ __x_ABI_CWindows_CSecurity_CCryptography_CCore_CCapi1KdfTargetAlgorithm capi1KdfTargetAlgorithm,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters **value);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics2Vtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics2
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics2Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics2_BuildForCapi1Kdf(This,capi1KdfTargetAlgorithm,value)	\
    ( (This)->lpVtbl -> BuildForCapi1Kdf(This,capi1KdfTargetAlgorithm,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics2_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0015 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Core_ICryptographicKey[] = L"Windows.Security.Cryptography.Core.ICryptographicKey";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0015 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0015_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0015_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Core::ICryptographicKey */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Core {
                        
                        MIDL_INTERFACE("ED2A3B70-8E7B-4009-8401-FFD1A62EEB27")
                        ICryptographicKey : public IInspectable
                        {
                        public:
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_KeySize( 
                                /* [out][retval] */ __RPC__out UINT32 *value) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE ExportDefaultPrivateKeyBlobType( 
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Storage::Streams::IBuffer **value) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE ExportPrivateKeyWithBlobType( 
                                /* [in] */ ABI::Windows::Security::Cryptography::Core::CryptographicPrivateKeyBlobType BlobType,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Storage::Streams::IBuffer **value) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE ExportDefaultPublicKeyBlobType( 
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Storage::Streams::IBuffer **value) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE ExportPublicKeyWithBlobType( 
                                /* [in] */ ABI::Windows::Security::Cryptography::Core::CryptographicPublicKeyBlobType BlobType,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Storage::Streams::IBuffer **value) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_ICryptographicKey = __uuidof(ICryptographicKey);

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

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKeyVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey * 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_CCore_CICryptographicKey * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_KeySize )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey * This,
            /* [out][retval] */ __RPC__out UINT32 *value);
        
        HRESULT ( STDMETHODCALLTYPE *ExportDefaultPrivateKeyBlobType )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer **value);
        
        HRESULT ( STDMETHODCALLTYPE *ExportPrivateKeyWithBlobType )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey * This,
            /* [in] */ __x_ABI_CWindows_CSecurity_CCryptography_CCore_CCryptographicPrivateKeyBlobType BlobType,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer **value);
        
        HRESULT ( STDMETHODCALLTYPE *ExportDefaultPublicKeyBlobType )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer **value);
        
        HRESULT ( STDMETHODCALLTYPE *ExportPublicKeyWithBlobType )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey * This,
            /* [in] */ __x_ABI_CWindows_CSecurity_CCryptography_CCore_CCryptographicPublicKeyBlobType BlobType,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer **value);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKeyVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKeyVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


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

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey_ExportDefaultPrivateKeyBlobType(This,value)	\
    ( (This)->lpVtbl -> ExportDefaultPrivateKeyBlobType(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey_ExportPrivateKeyWithBlobType(This,BlobType,value)	\
    ( (This)->lpVtbl -> ExportPrivateKeyWithBlobType(This,BlobType,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey_ExportDefaultPublicKeyBlobType(This,value)	\
    ( (This)->lpVtbl -> ExportDefaultPublicKeyBlobType(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey_ExportPublicKeyWithBlobType(This,BlobType,value)	\
    ( (This)->lpVtbl -> ExportPublicKeyWithBlobType(This,BlobType,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0016 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashComputation_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Core_IHashComputation[] = L"Windows.Security.Cryptography.Core.IHashComputation";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashComputation_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0016 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0016_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0016_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashComputation_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashComputation_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashComputation */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Core::IHashComputation */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashComputation;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Core {
                        
                        MIDL_INTERFACE("5904D1B6-AD31-4603-A3A4-B1BDA98E2562")
                        IHashComputation : public IInspectable
                        {
                        public:
                            virtual HRESULT STDMETHODCALLTYPE Append( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *data) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE GetValueAndReset( 
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Storage::Streams::IBuffer **value) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IHashComputation = __uuidof(IHashComputation);

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

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashComputationVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashComputation * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashComputation * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashComputation * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashComputation * 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_CCore_CIHashComputation * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashComputation * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *Append )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashComputation * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *data);
        
        HRESULT ( STDMETHODCALLTYPE *GetValueAndReset )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashComputation * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer **value);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashComputationVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashComputation
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashComputationVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashComputation_Append(This,data)	\
    ( (This)->lpVtbl -> Append(This,data) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashComputation_GetValueAndReset(This,value)	\
    ( (This)->lpVtbl -> GetValueAndReset(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashComputation_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0017 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProvider_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Core_IHashAlgorithmProvider[] = L"Windows.Security.Cryptography.Core.IHashAlgorithmProvider";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProvider_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0017 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0017_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0017_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProvider_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProvider_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProvider */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Core::IHashAlgorithmProvider */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProvider;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Core {
                        
                        MIDL_INTERFACE("BE9B3080-B2C3-422B-BCE1-EC90EFB5D7B5")
                        IHashAlgorithmProvider : public IInspectable
                        {
                        public:
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AlgorithmName( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HashLength( 
                                /* [out][retval] */ __RPC__out UINT32 *value) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE HashData( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *data,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Storage::Streams::IBuffer **value) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE CreateHash( 
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Core::IHashComputation **Value) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IHashAlgorithmProvider = __uuidof(IHashAlgorithmProvider);

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

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProviderVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProvider * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProvider * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProvider * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProvider * 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_CCore_CIHashAlgorithmProvider * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProvider * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_AlgorithmName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProvider * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HashLength )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProvider * This,
            /* [out][retval] */ __RPC__out UINT32 *value);
        
        HRESULT ( STDMETHODCALLTYPE *HashData )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProvider * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *data,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer **value);
        
        HRESULT ( STDMETHODCALLTYPE *CreateHash )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProvider * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashComputation **Value);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProviderVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProvider
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProviderVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProvider_get_AlgorithmName(This,value)	\
    ( (This)->lpVtbl -> get_AlgorithmName(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProvider_get_HashLength(This,value)	\
    ( (This)->lpVtbl -> get_HashLength(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProvider_HashData(This,data,value)	\
    ( (This)->lpVtbl -> HashData(This,data,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProvider_CreateHash(This,Value)	\
    ( (This)->lpVtbl -> CreateHash(This,Value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProvider_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0018 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Core_IMacAlgorithmProvider[] = L"Windows.Security.Cryptography.Core.IMacAlgorithmProvider";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0018 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0018_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0018_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Core::IMacAlgorithmProvider */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Core {
                        
                        MIDL_INTERFACE("4A3FC5C3-1CBD-41CE-A092-AA0BC5D2D2F5")
                        IMacAlgorithmProvider : public IInspectable
                        {
                        public:
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AlgorithmName( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_MacLength( 
                                /* [out][retval] */ __RPC__out UINT32 *value) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE CreateKey( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *keyMaterial,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Core::ICryptographicKey **macKey) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IMacAlgorithmProvider = __uuidof(IMacAlgorithmProvider);

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

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProviderVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider * 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_CCore_CIMacAlgorithmProvider * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_AlgorithmName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_MacLength )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider * This,
            /* [out][retval] */ __RPC__out UINT32 *value);
        
        HRESULT ( STDMETHODCALLTYPE *CreateKey )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *keyMaterial,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey **macKey);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProviderVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProviderVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider_get_AlgorithmName(This,value)	\
    ( (This)->lpVtbl -> get_AlgorithmName(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider_get_MacLength(This,value)	\
    ( (This)->lpVtbl -> get_MacLength(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider_CreateKey(This,keyMaterial,macKey)	\
    ( (This)->lpVtbl -> CreateKey(This,keyMaterial,macKey) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0019 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider2_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Core_IMacAlgorithmProvider2[] = L"Windows.Security.Cryptography.Core.IMacAlgorithmProvider2";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider2_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0019 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0019_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0019_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider2_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider2_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider2 */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Core::IMacAlgorithmProvider2 */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider2;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Core {
                        
                        MIDL_INTERFACE("6DA32A15-D931-42ED-8E7E-C301CAEE119C")
                        IMacAlgorithmProvider2 : public IInspectable
                        {
                        public:
                            virtual HRESULT STDMETHODCALLTYPE CreateHash( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *keyMaterial,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Core::IHashComputation **value) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IMacAlgorithmProvider2 = __uuidof(IMacAlgorithmProvider2);

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

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider2Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider2 * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider2 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider2 * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider2 * 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_CCore_CIMacAlgorithmProvider2 * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider2 * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *CreateHash )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider2 * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *keyMaterial,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashComputation **value);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider2Vtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider2
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider2Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider2_CreateHash(This,keyMaterial,value)	\
    ( (This)->lpVtbl -> CreateHash(This,keyMaterial,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider2_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0020 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProvider_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Core_IKeyDerivationAlgorithmProvider[] = L"Windows.Security.Cryptography.Core.IKeyDerivationAlgorithmProvider";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProvider_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0020 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0020_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0020_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProvider_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProvider_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProvider */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Core::IKeyDerivationAlgorithmProvider */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProvider;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Core {
                        
                        MIDL_INTERFACE("E1FBA83B-4671-43B7-9158-763AAA98B6BF")
                        IKeyDerivationAlgorithmProvider : public IInspectable
                        {
                        public:
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AlgorithmName( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE CreateKey( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *keyMaterial,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Core::ICryptographicKey **key) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IKeyDerivationAlgorithmProvider = __uuidof(IKeyDerivationAlgorithmProvider);

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

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProviderVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProvider * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProvider * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProvider * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProvider * 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_CCore_CIKeyDerivationAlgorithmProvider * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProvider * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_AlgorithmName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProvider * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        HRESULT ( STDMETHODCALLTYPE *CreateKey )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProvider * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *keyMaterial,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey **key);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProviderVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProvider
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProviderVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProvider_get_AlgorithmName(This,value)	\
    ( (This)->lpVtbl -> get_AlgorithmName(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProvider_CreateKey(This,keyMaterial,key)	\
    ( (This)->lpVtbl -> CreateKey(This,keyMaterial,key) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProvider_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0021 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProvider_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Core_ISymmetricKeyAlgorithmProvider[] = L"Windows.Security.Cryptography.Core.ISymmetricKeyAlgorithmProvider";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProvider_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0021 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0021_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0021_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProvider_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProvider_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProvider */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Core::ISymmetricKeyAlgorithmProvider */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProvider;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Core {
                        
                        MIDL_INTERFACE("3D7E4A33-3BD0-4902-8AC8-470D50D21376")
                        ISymmetricKeyAlgorithmProvider : public IInspectable
                        {
                        public:
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AlgorithmName( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BlockLength( 
                                /* [out][retval] */ __RPC__out UINT32 *value) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE CreateSymmetricKey( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *keyMaterial,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Core::ICryptographicKey **key) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_ISymmetricKeyAlgorithmProvider = __uuidof(ISymmetricKeyAlgorithmProvider);

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

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProviderVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProvider * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProvider * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProvider * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProvider * 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_CCore_CISymmetricKeyAlgorithmProvider * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProvider * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_AlgorithmName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProvider * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BlockLength )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProvider * This,
            /* [out][retval] */ __RPC__out UINT32 *value);
        
        HRESULT ( STDMETHODCALLTYPE *CreateSymmetricKey )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProvider * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *keyMaterial,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey **key);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProviderVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProvider
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProviderVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProvider_get_AlgorithmName(This,value)	\
    ( (This)->lpVtbl -> get_AlgorithmName(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProvider_get_BlockLength(This,value)	\
    ( (This)->lpVtbl -> get_BlockLength(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProvider_CreateSymmetricKey(This,keyMaterial,key)	\
    ( (This)->lpVtbl -> CreateSymmetricKey(This,keyMaterial,key) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProvider_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0022 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Core_IAsymmetricKeyAlgorithmProvider[] = L"Windows.Security.Cryptography.Core.IAsymmetricKeyAlgorithmProvider";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0022 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0022_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0022_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Core::IAsymmetricKeyAlgorithmProvider */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Core {
                        
                        MIDL_INTERFACE("E8D2FF37-6259-4E88-B7E0-94191FDE699E")
                        IAsymmetricKeyAlgorithmProvider : public IInspectable
                        {
                        public:
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AlgorithmName( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE CreateKeyPair( 
                                /* [in] */ UINT32 keySize,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Core::ICryptographicKey **key) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE ImportDefaultPrivateKeyBlob( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *keyBlob,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Core::ICryptographicKey **key) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE ImportKeyPairWithBlobType( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *keyBlob,
                                /* [in] */ ABI::Windows::Security::Cryptography::Core::CryptographicPrivateKeyBlobType BlobType,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Core::ICryptographicKey **key) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE ImportDefaultPublicKeyBlob( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *keyBlob,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Core::ICryptographicKey **key) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE ImportPublicKeyWithBlobType( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *keyBlob,
                                /* [in] */ ABI::Windows::Security::Cryptography::Core::CryptographicPublicKeyBlobType BlobType,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Core::ICryptographicKey **key) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IAsymmetricKeyAlgorithmProvider = __uuidof(IAsymmetricKeyAlgorithmProvider);

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

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProviderVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider * 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_CCore_CIAsymmetricKeyAlgorithmProvider * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_AlgorithmName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        HRESULT ( STDMETHODCALLTYPE *CreateKeyPair )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider * This,
            /* [in] */ UINT32 keySize,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey **key);
        
        HRESULT ( STDMETHODCALLTYPE *ImportDefaultPrivateKeyBlob )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *keyBlob,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey **key);
        
        HRESULT ( STDMETHODCALLTYPE *ImportKeyPairWithBlobType )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *keyBlob,
            /* [in] */ __x_ABI_CWindows_CSecurity_CCryptography_CCore_CCryptographicPrivateKeyBlobType BlobType,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey **key);
        
        HRESULT ( STDMETHODCALLTYPE *ImportDefaultPublicKeyBlob )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *keyBlob,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey **key);
        
        HRESULT ( STDMETHODCALLTYPE *ImportPublicKeyWithBlobType )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *keyBlob,
            /* [in] */ __x_ABI_CWindows_CSecurity_CCryptography_CCore_CCryptographicPublicKeyBlobType BlobType,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey **key);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProviderVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProviderVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider_get_AlgorithmName(This,value)	\
    ( (This)->lpVtbl -> get_AlgorithmName(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider_CreateKeyPair(This,keySize,key)	\
    ( (This)->lpVtbl -> CreateKeyPair(This,keySize,key) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider_ImportDefaultPrivateKeyBlob(This,keyBlob,key)	\
    ( (This)->lpVtbl -> ImportDefaultPrivateKeyBlob(This,keyBlob,key) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider_ImportKeyPairWithBlobType(This,keyBlob,BlobType,key)	\
    ( (This)->lpVtbl -> ImportKeyPairWithBlobType(This,keyBlob,BlobType,key) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider_ImportDefaultPublicKeyBlob(This,keyBlob,key)	\
    ( (This)->lpVtbl -> ImportDefaultPublicKeyBlob(This,keyBlob,key) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider_ImportPublicKeyWithBlobType(This,keyBlob,BlobType,key)	\
    ( (This)->lpVtbl -> ImportPublicKeyWithBlobType(This,keyBlob,BlobType,key) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0023 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider2_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Core_IAsymmetricKeyAlgorithmProvider2[] = L"Windows.Security.Cryptography.Core.IAsymmetricKeyAlgorithmProvider2";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider2_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0023 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0023_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0023_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider2_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider2_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider2 */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Core::IAsymmetricKeyAlgorithmProvider2 */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider2;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Core {
                        
                        MIDL_INTERFACE("4E322A7E-7C4D-4997-AC4F-1B848B36306E")
                        IAsymmetricKeyAlgorithmProvider2 : public IInspectable
                        {
                        public:
                            virtual HRESULT STDMETHODCALLTYPE CreateKeyPairWithCurveName( 
                                /* [in] */ __RPC__in HSTRING curveName,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Core::ICryptographicKey **key) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE CreateKeyPairWithCurveParameters( 
                                /* [range][in] */ __RPC__in_range(0,65536) UINT32 __parametersSize,
                                /* [in][size_is] */ __RPC__in_ecount_full(__parametersSize) BYTE *parameters,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Core::ICryptographicKey **key) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IAsymmetricKeyAlgorithmProvider2 = __uuidof(IAsymmetricKeyAlgorithmProvider2);

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

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider2Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider2 * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider2 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider2 * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider2 * 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_CCore_CIAsymmetricKeyAlgorithmProvider2 * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider2 * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *CreateKeyPairWithCurveName )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider2 * This,
            /* [in] */ __RPC__in HSTRING curveName,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey **key);
        
        HRESULT ( STDMETHODCALLTYPE *CreateKeyPairWithCurveParameters )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider2 * This,
            /* [range][in] */ __RPC__in_range(0,65536) UINT32 __parametersSize,
            /* [in][size_is] */ __RPC__in_ecount_full(__parametersSize) BYTE *parameters,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey **key);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider2Vtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider2
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider2Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider2_CreateKeyPairWithCurveName(This,curveName,key)	\
    ( (This)->lpVtbl -> CreateKeyPairWithCurveName(This,curveName,key) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider2_CreateKeyPairWithCurveParameters(This,__parametersSize,parameters,key)	\
    ( (This)->lpVtbl -> CreateKeyPairWithCurveParameters(This,__parametersSize,parameters,key) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider2_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0024 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIPersistedKeyProviderStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Core_IPersistedKeyProviderStatics[] = L"Windows.Security.Cryptography.Core.IPersistedKeyProviderStatics";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIPersistedKeyProviderStatics_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0024 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0024_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0024_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIPersistedKeyProviderStatics_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIPersistedKeyProviderStatics_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIPersistedKeyProviderStatics */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Core::IPersistedKeyProviderStatics */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCore_CIPersistedKeyProviderStatics;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Core {
                        
                        MIDL_INTERFACE("77274814-D9D4-4CF5-B668-E0457DF30894")
                        IPersistedKeyProviderStatics : public IInspectable
                        {
                        public:
                            virtual HRESULT STDMETHODCALLTYPE OpenKeyPairFromCertificateAsync( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Security::Cryptography::Certificates::ICertificate *certificate,
                                /* [in] */ __RPC__in HSTRING hashAlgorithmName,
                                /* [in] */ ABI::Windows::Security::Cryptography::Core::CryptographicPadding padding,
                                /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey **operation) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE OpenPublicKeyFromCertificate( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Security::Cryptography::Certificates::ICertificate *certificate,
                                /* [in] */ __RPC__in HSTRING hashAlgorithmName,
                                /* [in] */ ABI::Windows::Security::Cryptography::Core::CryptographicPadding padding,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Core::ICryptographicKey **key) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IPersistedKeyProviderStatics = __uuidof(IPersistedKeyProviderStatics);

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

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIPersistedKeyProviderStaticsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIPersistedKeyProviderStatics * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIPersistedKeyProviderStatics * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIPersistedKeyProviderStatics * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIPersistedKeyProviderStatics * 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_CCore_CIPersistedKeyProviderStatics * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIPersistedKeyProviderStatics * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *OpenKeyPairFromCertificateAsync )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIPersistedKeyProviderStatics * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate *certificate,
            /* [in] */ __RPC__in HSTRING hashAlgorithmName,
            /* [in] */ __x_ABI_CWindows_CSecurity_CCryptography_CCore_CCryptographicPadding padding,
            /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1_Windows__CSecurity__CCryptography__CCore__CCryptographicKey **operation);
        
        HRESULT ( STDMETHODCALLTYPE *OpenPublicKeyFromCertificate )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIPersistedKeyProviderStatics * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CSecurity_CCryptography_CCertificates_CICertificate *certificate,
            /* [in] */ __RPC__in HSTRING hashAlgorithmName,
            /* [in] */ __x_ABI_CWindows_CSecurity_CCryptography_CCore_CCryptographicPadding padding,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey **key);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIPersistedKeyProviderStaticsVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIPersistedKeyProviderStatics
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIPersistedKeyProviderStaticsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIPersistedKeyProviderStatics_OpenKeyPairFromCertificateAsync(This,certificate,hashAlgorithmName,padding,operation)	\
    ( (This)->lpVtbl -> OpenKeyPairFromCertificateAsync(This,certificate,hashAlgorithmName,padding,operation) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIPersistedKeyProviderStatics_OpenPublicKeyFromCertificate(This,certificate,hashAlgorithmName,padding,key)	\
    ( (This)->lpVtbl -> OpenPublicKeyFromCertificate(This,certificate,hashAlgorithmName,padding,key) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIPersistedKeyProviderStatics_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0025 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEncryptedAndAuthenticatedData_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Core_IEncryptedAndAuthenticatedData[] = L"Windows.Security.Cryptography.Core.IEncryptedAndAuthenticatedData";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEncryptedAndAuthenticatedData_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0025 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0025_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0025_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEncryptedAndAuthenticatedData_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEncryptedAndAuthenticatedData_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEncryptedAndAuthenticatedData */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Core::IEncryptedAndAuthenticatedData */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEncryptedAndAuthenticatedData;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Core {
                        
                        MIDL_INTERFACE("6FA42FE7-1ECB-4B00-BEA5-60B83F862F17")
                        IEncryptedAndAuthenticatedData : public IInspectable
                        {
                        public:
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_EncryptedData( 
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Storage::Streams::IBuffer **value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AuthenticationTag( 
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Storage::Streams::IBuffer **value) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IEncryptedAndAuthenticatedData = __uuidof(IEncryptedAndAuthenticatedData);

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

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEncryptedAndAuthenticatedDataVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEncryptedAndAuthenticatedData * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEncryptedAndAuthenticatedData * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEncryptedAndAuthenticatedData * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEncryptedAndAuthenticatedData * 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_CCore_CIEncryptedAndAuthenticatedData * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEncryptedAndAuthenticatedData * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_EncryptedData )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEncryptedAndAuthenticatedData * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer **value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_AuthenticationTag )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEncryptedAndAuthenticatedData * This,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer **value);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEncryptedAndAuthenticatedDataVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEncryptedAndAuthenticatedData
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEncryptedAndAuthenticatedDataVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEncryptedAndAuthenticatedData_get_EncryptedData(This,value)	\
    ( (This)->lpVtbl -> get_EncryptedData(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEncryptedAndAuthenticatedData_get_AuthenticationTag(This,value)	\
    ( (This)->lpVtbl -> get_AuthenticationTag(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEncryptedAndAuthenticatedData_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0026 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Core_ICryptographicEngineStatics[] = L"Windows.Security.Cryptography.Core.ICryptographicEngineStatics";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0026 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0026_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0026_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Core::ICryptographicEngineStatics */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Core {
                        
                        MIDL_INTERFACE("9FEA0639-6FF7-4C85-A095-95EB31715EB9")
                        ICryptographicEngineStatics : public IInspectable
                        {
                        public:
                            virtual HRESULT STDMETHODCALLTYPE Encrypt( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Security::Cryptography::Core::ICryptographicKey *key,
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *data,
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *iv,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Storage::Streams::IBuffer **value) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE Decrypt( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Security::Cryptography::Core::ICryptographicKey *key,
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *data,
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *iv,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Storage::Streams::IBuffer **value) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE EncryptAndAuthenticate( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Security::Cryptography::Core::ICryptographicKey *key,
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *data,
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *nonce,
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *authenticatedData,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Core::IEncryptedAndAuthenticatedData **value) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE DecryptAndAuthenticate( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Security::Cryptography::Core::ICryptographicKey *key,
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *data,
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *nonce,
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *authenticationTag,
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *authenticatedData,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Storage::Streams::IBuffer **value) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE Sign( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Security::Cryptography::Core::ICryptographicKey *key,
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *data,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Storage::Streams::IBuffer **value) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE VerifySignature( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Security::Cryptography::Core::ICryptographicKey *key,
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *data,
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *signature,
                                /* [out][retval] */ __RPC__out boolean *isAuthenticated) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE DeriveKeyMaterial( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Security::Cryptography::Core::ICryptographicKey *key,
                                /* [in] */ __RPC__in_opt ABI::Windows::Security::Cryptography::Core::IKeyDerivationParameters *parameters,
                                /* [in] */ UINT32 desiredKeySize,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Storage::Streams::IBuffer **keyMaterial) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_ICryptographicEngineStatics = __uuidof(ICryptographicEngineStatics);

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

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStaticsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics * 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_CCore_CICryptographicEngineStatics * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *Encrypt )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey *key,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *data,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *iv,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer **value);
        
        HRESULT ( STDMETHODCALLTYPE *Decrypt )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey *key,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *data,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *iv,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer **value);
        
        HRESULT ( STDMETHODCALLTYPE *EncryptAndAuthenticate )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey *key,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *data,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *nonce,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *authenticatedData,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEncryptedAndAuthenticatedData **value);
        
        HRESULT ( STDMETHODCALLTYPE *DecryptAndAuthenticate )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey *key,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *data,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *nonce,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *authenticationTag,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *authenticatedData,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer **value);
        
        HRESULT ( STDMETHODCALLTYPE *Sign )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey *key,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *data,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer **value);
        
        HRESULT ( STDMETHODCALLTYPE *VerifySignature )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey *key,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *data,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *signature,
            /* [out][retval] */ __RPC__out boolean *isAuthenticated);
        
        HRESULT ( STDMETHODCALLTYPE *DeriveKeyMaterial )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey *key,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters *parameters,
            /* [in] */ UINT32 desiredKeySize,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer **keyMaterial);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStaticsVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStaticsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics_Encrypt(This,key,data,iv,value)	\
    ( (This)->lpVtbl -> Encrypt(This,key,data,iv,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics_Decrypt(This,key,data,iv,value)	\
    ( (This)->lpVtbl -> Decrypt(This,key,data,iv,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics_EncryptAndAuthenticate(This,key,data,nonce,authenticatedData,value)	\
    ( (This)->lpVtbl -> EncryptAndAuthenticate(This,key,data,nonce,authenticatedData,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics_DecryptAndAuthenticate(This,key,data,nonce,authenticationTag,authenticatedData,value)	\
    ( (This)->lpVtbl -> DecryptAndAuthenticate(This,key,data,nonce,authenticationTag,authenticatedData,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics_Sign(This,key,data,value)	\
    ( (This)->lpVtbl -> Sign(This,key,data,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics_VerifySignature(This,key,data,signature,isAuthenticated)	\
    ( (This)->lpVtbl -> VerifySignature(This,key,data,signature,isAuthenticated) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics_DeriveKeyMaterial(This,key,parameters,desiredKeySize,keyMaterial)	\
    ( (This)->lpVtbl -> DeriveKeyMaterial(This,key,parameters,desiredKeySize,keyMaterial) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0027 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics2_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Core_ICryptographicEngineStatics2[] = L"Windows.Security.Cryptography.Core.ICryptographicEngineStatics2";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics2_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0027 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0027_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0027_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics2_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics2_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics2 */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Core::ICryptographicEngineStatics2 */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics2;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Core {
                        
                        MIDL_INTERFACE("675948FE-DF9F-4191-92C7-6CE6F58420E0")
                        ICryptographicEngineStatics2 : public IInspectable
                        {
                        public:
                            virtual HRESULT STDMETHODCALLTYPE SignHashedData( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Security::Cryptography::Core::ICryptographicKey *key,
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *data,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Storage::Streams::IBuffer **value) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE VerifySignatureWithHashInput( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Security::Cryptography::Core::ICryptographicKey *key,
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *data,
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *signature,
                                /* [out][retval] */ __RPC__out boolean *isAuthenticated) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE DecryptAsync( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Security::Cryptography::Core::ICryptographicKey *key,
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *data,
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *iv,
                                /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer **value) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE SignAsync( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Security::Cryptography::Core::ICryptographicKey *key,
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *data,
                                /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer **value) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE SignHashedDataAsync( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Security::Cryptography::Core::ICryptographicKey *key,
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IBuffer *data,
                                /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer **value) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_ICryptographicEngineStatics2 = __uuidof(ICryptographicEngineStatics2);

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

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics2Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics2 * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics2 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics2 * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics2 * 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_CCore_CICryptographicEngineStatics2 * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics2 * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *SignHashedData )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics2 * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey *key,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *data,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer **value);
        
        HRESULT ( STDMETHODCALLTYPE *VerifySignatureWithHashInput )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics2 * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey *key,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *data,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *signature,
            /* [out][retval] */ __RPC__out boolean *isAuthenticated);
        
        HRESULT ( STDMETHODCALLTYPE *DecryptAsync )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics2 * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey *key,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *data,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *iv,
            /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer **value);
        
        HRESULT ( STDMETHODCALLTYPE *SignAsync )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics2 * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey *key,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *data,
            /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer **value);
        
        HRESULT ( STDMETHODCALLTYPE *SignHashedDataAsync )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics2 * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey *key,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIBuffer *data,
            /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperation_1_Windows__CStorage__CStreams__CIBuffer **value);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics2Vtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics2
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics2Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics2_SignHashedData(This,key,data,value)	\
    ( (This)->lpVtbl -> SignHashedData(This,key,data,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics2_VerifySignatureWithHashInput(This,key,data,signature,isAuthenticated)	\
    ( (This)->lpVtbl -> VerifySignatureWithHashInput(This,key,data,signature,isAuthenticated) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics2_DecryptAsync(This,key,data,iv,value)	\
    ( (This)->lpVtbl -> DecryptAsync(This,key,data,iv,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics2_SignAsync(This,key,data,value)	\
    ( (This)->lpVtbl -> SignAsync(This,key,data,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics2_SignHashedDataAsync(This,key,data,value)	\
    ( (This)->lpVtbl -> SignHashedDataAsync(This,key,data,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics2_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0028 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProviderStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Core_IHashAlgorithmProviderStatics[] = L"Windows.Security.Cryptography.Core.IHashAlgorithmProviderStatics";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProviderStatics_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0028 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0028_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0028_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProviderStatics_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProviderStatics_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProviderStatics */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Core::IHashAlgorithmProviderStatics */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProviderStatics;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Core {
                        
                        MIDL_INTERFACE("9FAC9741-5CC4-4336-AE38-6212B75A915A")
                        IHashAlgorithmProviderStatics : public IInspectable
                        {
                        public:
                            virtual HRESULT STDMETHODCALLTYPE OpenAlgorithm( 
                                /* [in] */ __RPC__in HSTRING algorithm,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Core::IHashAlgorithmProvider **provider) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IHashAlgorithmProviderStatics = __uuidof(IHashAlgorithmProviderStatics);

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

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProviderStaticsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProviderStatics * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProviderStatics * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProviderStatics * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProviderStatics * 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_CCore_CIHashAlgorithmProviderStatics * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProviderStatics * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *OpenAlgorithm )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProviderStatics * This,
            /* [in] */ __RPC__in HSTRING algorithm,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProvider **provider);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProviderStaticsVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProviderStatics
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProviderStaticsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProviderStatics_OpenAlgorithm(This,algorithm,provider)	\
    ( (This)->lpVtbl -> OpenAlgorithm(This,algorithm,provider) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProviderStatics_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0029 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProviderStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Core_IMacAlgorithmProviderStatics[] = L"Windows.Security.Cryptography.Core.IMacAlgorithmProviderStatics";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProviderStatics_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0029 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0029_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0029_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProviderStatics_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProviderStatics_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProviderStatics */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Core::IMacAlgorithmProviderStatics */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProviderStatics;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Core {
                        
                        MIDL_INTERFACE("C9BDC147-CC77-4DF0-9E4E-B921E080644C")
                        IMacAlgorithmProviderStatics : public IInspectable
                        {
                        public:
                            virtual HRESULT STDMETHODCALLTYPE OpenAlgorithm( 
                                /* [in] */ __RPC__in HSTRING algorithm,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Core::IMacAlgorithmProvider **provider) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IMacAlgorithmProviderStatics = __uuidof(IMacAlgorithmProviderStatics);

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

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProviderStaticsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProviderStatics * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProviderStatics * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProviderStatics * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProviderStatics * 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_CCore_CIMacAlgorithmProviderStatics * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProviderStatics * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *OpenAlgorithm )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProviderStatics * This,
            /* [in] */ __RPC__in HSTRING algorithm,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider **provider);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProviderStaticsVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProviderStatics
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProviderStaticsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProviderStatics_OpenAlgorithm(This,algorithm,provider)	\
    ( (This)->lpVtbl -> OpenAlgorithm(This,algorithm,provider) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProviderStatics_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0030 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProviderStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Core_IKeyDerivationAlgorithmProviderStatics[] = L"Windows.Security.Cryptography.Core.IKeyDerivationAlgorithmProviderStatics";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProviderStatics_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0030 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0030_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0030_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProviderStatics_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProviderStatics_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProviderStatics */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Core::IKeyDerivationAlgorithmProviderStatics */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProviderStatics;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Core {
                        
                        MIDL_INTERFACE("0A22097A-0A1C-443B-9418-B9498AEB1603")
                        IKeyDerivationAlgorithmProviderStatics : public IInspectable
                        {
                        public:
                            virtual HRESULT STDMETHODCALLTYPE OpenAlgorithm( 
                                /* [in] */ __RPC__in HSTRING algorithm,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Core::IKeyDerivationAlgorithmProvider **provider) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IKeyDerivationAlgorithmProviderStatics = __uuidof(IKeyDerivationAlgorithmProviderStatics);

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

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProviderStaticsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProviderStatics * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProviderStatics * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProviderStatics * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProviderStatics * 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_CCore_CIKeyDerivationAlgorithmProviderStatics * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProviderStatics * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *OpenAlgorithm )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProviderStatics * This,
            /* [in] */ __RPC__in HSTRING algorithm,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProvider **provider);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProviderStaticsVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProviderStatics
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProviderStaticsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProviderStatics_OpenAlgorithm(This,algorithm,provider)	\
    ( (This)->lpVtbl -> OpenAlgorithm(This,algorithm,provider) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProviderStatics_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0031 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProviderStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Core_ISymmetricKeyAlgorithmProviderStatics[] = L"Windows.Security.Cryptography.Core.ISymmetricKeyAlgorithmProviderStatics";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProviderStatics_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0031 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0031_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0031_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProviderStatics_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProviderStatics_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProviderStatics */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Core::ISymmetricKeyAlgorithmProviderStatics */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProviderStatics;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Core {
                        
                        MIDL_INTERFACE("8D3B2326-1F37-491F-B60E-F5431B26B483")
                        ISymmetricKeyAlgorithmProviderStatics : public IInspectable
                        {
                        public:
                            virtual HRESULT STDMETHODCALLTYPE OpenAlgorithm( 
                                /* [in] */ __RPC__in HSTRING algorithm,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Core::ISymmetricKeyAlgorithmProvider **provider) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_ISymmetricKeyAlgorithmProviderStatics = __uuidof(ISymmetricKeyAlgorithmProviderStatics);

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

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProviderStaticsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProviderStatics * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProviderStatics * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProviderStatics * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProviderStatics * 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_CCore_CISymmetricKeyAlgorithmProviderStatics * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProviderStatics * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *OpenAlgorithm )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProviderStatics * This,
            /* [in] */ __RPC__in HSTRING algorithm,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProvider **provider);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProviderStaticsVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProviderStatics
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProviderStaticsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProviderStatics_OpenAlgorithm(This,algorithm,provider)	\
    ( (This)->lpVtbl -> OpenAlgorithm(This,algorithm,provider) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProviderStatics_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0032 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProviderStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Core_IAsymmetricKeyAlgorithmProviderStatics[] = L"Windows.Security.Cryptography.Core.IAsymmetricKeyAlgorithmProviderStatics";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProviderStatics_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0032 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0032_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0032_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProviderStatics_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProviderStatics_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProviderStatics */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Core::IAsymmetricKeyAlgorithmProviderStatics */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProviderStatics;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Core {
                        
                        MIDL_INTERFACE("425BDE18-A7F3-47A6-A8D2-C48D6033A65C")
                        IAsymmetricKeyAlgorithmProviderStatics : public IInspectable
                        {
                        public:
                            virtual HRESULT STDMETHODCALLTYPE OpenAlgorithm( 
                                /* [in] */ __RPC__in HSTRING algorithm,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Security::Cryptography::Core::IAsymmetricKeyAlgorithmProvider **provider) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IAsymmetricKeyAlgorithmProviderStatics = __uuidof(IAsymmetricKeyAlgorithmProviderStatics);

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

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProviderStaticsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProviderStatics * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProviderStatics * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProviderStatics * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProviderStatics * 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_CCore_CIAsymmetricKeyAlgorithmProviderStatics * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProviderStatics * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *OpenAlgorithm )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProviderStatics * This,
            /* [in] */ __RPC__in HSTRING algorithm,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider **provider);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProviderStaticsVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProviderStatics
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProviderStaticsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProviderStatics_OpenAlgorithm(This,algorithm,provider)	\
    ( (This)->lpVtbl -> OpenAlgorithm(This,algorithm,provider) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProviderStatics_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0033 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmNamesStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Core_IHashAlgorithmNamesStatics[] = L"Windows.Security.Cryptography.Core.IHashAlgorithmNamesStatics";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmNamesStatics_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0033 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0033_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0033_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmNamesStatics_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmNamesStatics_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmNamesStatics */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Core::IHashAlgorithmNamesStatics */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmNamesStatics;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Core {
                        
                        MIDL_INTERFACE("6B5E0516-DE96-4F0A-8D57-DCC9DAE36C76")
                        IHashAlgorithmNamesStatics : public IInspectable
                        {
                        public:
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Md5( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Sha1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Sha256( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Sha384( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Sha512( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IHashAlgorithmNamesStatics = __uuidof(IHashAlgorithmNamesStatics);

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

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmNamesStaticsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmNamesStatics * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmNamesStatics * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmNamesStatics * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmNamesStatics * 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_CCore_CIHashAlgorithmNamesStatics * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmNamesStatics * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Md5 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Sha1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Sha256 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Sha384 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Sha512 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmNamesStaticsVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmNamesStatics
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmNamesStaticsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmNamesStatics_get_Md5(This,value)	\
    ( (This)->lpVtbl -> get_Md5(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmNamesStatics_get_Sha1(This,value)	\
    ( (This)->lpVtbl -> get_Sha1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmNamesStatics_get_Sha256(This,value)	\
    ( (This)->lpVtbl -> get_Sha256(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmNamesStatics_get_Sha384(This,value)	\
    ( (This)->lpVtbl -> get_Sha384(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmNamesStatics_get_Sha512(This,value)	\
    ( (This)->lpVtbl -> get_Sha512(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmNamesStatics_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0034 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmNamesStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Core_IMacAlgorithmNamesStatics[] = L"Windows.Security.Cryptography.Core.IMacAlgorithmNamesStatics";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmNamesStatics_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0034 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0034_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0034_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmNamesStatics_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmNamesStatics_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmNamesStatics */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Core::IMacAlgorithmNamesStatics */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmNamesStatics;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Core {
                        
                        MIDL_INTERFACE("41412678-FB1E-43A4-895E-A9026E4390A3")
                        IMacAlgorithmNamesStatics : public IInspectable
                        {
                        public:
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HmacMd5( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HmacSha1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HmacSha256( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HmacSha384( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HmacSha512( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AesCmac( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IMacAlgorithmNamesStatics = __uuidof(IMacAlgorithmNamesStatics);

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

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmNamesStaticsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmNamesStatics * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmNamesStatics * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmNamesStatics * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmNamesStatics * 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_CCore_CIMacAlgorithmNamesStatics * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmNamesStatics * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HmacMd5 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HmacSha1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HmacSha256 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HmacSha384 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HmacSha512 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_AesCmac )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmNamesStaticsVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmNamesStatics
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmNamesStaticsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmNamesStatics_get_HmacMd5(This,value)	\
    ( (This)->lpVtbl -> get_HmacMd5(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmNamesStatics_get_HmacSha1(This,value)	\
    ( (This)->lpVtbl -> get_HmacSha1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmNamesStatics_get_HmacSha256(This,value)	\
    ( (This)->lpVtbl -> get_HmacSha256(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmNamesStatics_get_HmacSha384(This,value)	\
    ( (This)->lpVtbl -> get_HmacSha384(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmNamesStatics_get_HmacSha512(This,value)	\
    ( (This)->lpVtbl -> get_HmacSha512(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmNamesStatics_get_AesCmac(This,value)	\
    ( (This)->lpVtbl -> get_AesCmac(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmNamesStatics_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0035 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Core_ISymmetricAlgorithmNamesStatics[] = L"Windows.Security.Cryptography.Core.ISymmetricAlgorithmNamesStatics";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0035 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0035_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0035_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Core::ISymmetricAlgorithmNamesStatics */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Core {
                        
                        MIDL_INTERFACE("6870727B-C996-4EAE-84D7-79B2AEB73B9C")
                        ISymmetricAlgorithmNamesStatics : public IInspectable
                        {
                        public:
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DesCbc( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DesEcb( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_TripleDesCbc( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_TripleDesEcb( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Rc2Cbc( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Rc2Ecb( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AesCbc( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AesEcb( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AesGcm( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AesCcm( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AesCbcPkcs7( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AesEcbPkcs7( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DesCbcPkcs7( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DesEcbPkcs7( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_TripleDesCbcPkcs7( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_TripleDesEcbPkcs7( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Rc2CbcPkcs7( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Rc2EcbPkcs7( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Rc4( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_ISymmetricAlgorithmNamesStatics = __uuidof(ISymmetricAlgorithmNamesStatics);

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

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStaticsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics * 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_CCore_CISymmetricAlgorithmNamesStatics * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_DesCbc )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_DesEcb )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_TripleDesCbc )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_TripleDesEcb )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Rc2Cbc )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Rc2Ecb )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_AesCbc )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_AesEcb )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_AesGcm )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_AesCcm )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_AesCbcPkcs7 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_AesEcbPkcs7 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_DesCbcPkcs7 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_DesEcbPkcs7 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_TripleDesCbcPkcs7 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_TripleDesEcbPkcs7 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Rc2CbcPkcs7 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Rc2EcbPkcs7 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Rc4 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStaticsVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStaticsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics_get_DesCbc(This,value)	\
    ( (This)->lpVtbl -> get_DesCbc(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics_get_DesEcb(This,value)	\
    ( (This)->lpVtbl -> get_DesEcb(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics_get_TripleDesCbc(This,value)	\
    ( (This)->lpVtbl -> get_TripleDesCbc(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics_get_TripleDesEcb(This,value)	\
    ( (This)->lpVtbl -> get_TripleDesEcb(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics_get_Rc2Cbc(This,value)	\
    ( (This)->lpVtbl -> get_Rc2Cbc(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics_get_Rc2Ecb(This,value)	\
    ( (This)->lpVtbl -> get_Rc2Ecb(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics_get_AesCbc(This,value)	\
    ( (This)->lpVtbl -> get_AesCbc(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics_get_AesEcb(This,value)	\
    ( (This)->lpVtbl -> get_AesEcb(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics_get_AesGcm(This,value)	\
    ( (This)->lpVtbl -> get_AesGcm(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics_get_AesCcm(This,value)	\
    ( (This)->lpVtbl -> get_AesCcm(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics_get_AesCbcPkcs7(This,value)	\
    ( (This)->lpVtbl -> get_AesCbcPkcs7(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics_get_AesEcbPkcs7(This,value)	\
    ( (This)->lpVtbl -> get_AesEcbPkcs7(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics_get_DesCbcPkcs7(This,value)	\
    ( (This)->lpVtbl -> get_DesCbcPkcs7(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics_get_DesEcbPkcs7(This,value)	\
    ( (This)->lpVtbl -> get_DesEcbPkcs7(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics_get_TripleDesCbcPkcs7(This,value)	\
    ( (This)->lpVtbl -> get_TripleDesCbcPkcs7(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics_get_TripleDesEcbPkcs7(This,value)	\
    ( (This)->lpVtbl -> get_TripleDesEcbPkcs7(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics_get_Rc2CbcPkcs7(This,value)	\
    ( (This)->lpVtbl -> get_Rc2CbcPkcs7(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics_get_Rc2EcbPkcs7(This,value)	\
    ( (This)->lpVtbl -> get_Rc2EcbPkcs7(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics_get_Rc4(This,value)	\
    ( (This)->lpVtbl -> get_Rc4(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0036 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Core_IAsymmetricAlgorithmNamesStatics[] = L"Windows.Security.Cryptography.Core.IAsymmetricAlgorithmNamesStatics";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0036 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0036_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0036_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Core::IAsymmetricAlgorithmNamesStatics */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Core {
                        
                        MIDL_INTERFACE("CAF6FCE4-67C0-46AA-84F9-752E77449F9B")
                        IAsymmetricAlgorithmNamesStatics : public IInspectable
                        {
                        public:
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_RsaPkcs1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_RsaOaepSha1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_RsaOaepSha256( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_RsaOaepSha384( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_RsaOaepSha512( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_EcdsaP256Sha256( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_EcdsaP384Sha384( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_EcdsaP521Sha512( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DsaSha1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DsaSha256( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_RsaSignPkcs1Sha1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_RsaSignPkcs1Sha256( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_RsaSignPkcs1Sha384( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_RsaSignPkcs1Sha512( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_RsaSignPssSha1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_RsaSignPssSha256( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_RsaSignPssSha384( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_RsaSignPssSha512( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IAsymmetricAlgorithmNamesStatics = __uuidof(IAsymmetricAlgorithmNamesStatics);

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

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStaticsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics * 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_CCore_CIAsymmetricAlgorithmNamesStatics * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RsaPkcs1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RsaOaepSha1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RsaOaepSha256 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RsaOaepSha384 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RsaOaepSha512 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_EcdsaP256Sha256 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_EcdsaP384Sha384 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_EcdsaP521Sha512 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_DsaSha1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_DsaSha256 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RsaSignPkcs1Sha1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RsaSignPkcs1Sha256 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RsaSignPkcs1Sha384 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RsaSignPkcs1Sha512 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RsaSignPssSha1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RsaSignPssSha256 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RsaSignPssSha384 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RsaSignPssSha512 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStaticsVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStaticsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics_get_RsaPkcs1(This,value)	\
    ( (This)->lpVtbl -> get_RsaPkcs1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics_get_RsaOaepSha1(This,value)	\
    ( (This)->lpVtbl -> get_RsaOaepSha1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics_get_RsaOaepSha256(This,value)	\
    ( (This)->lpVtbl -> get_RsaOaepSha256(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics_get_RsaOaepSha384(This,value)	\
    ( (This)->lpVtbl -> get_RsaOaepSha384(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics_get_RsaOaepSha512(This,value)	\
    ( (This)->lpVtbl -> get_RsaOaepSha512(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics_get_EcdsaP256Sha256(This,value)	\
    ( (This)->lpVtbl -> get_EcdsaP256Sha256(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics_get_EcdsaP384Sha384(This,value)	\
    ( (This)->lpVtbl -> get_EcdsaP384Sha384(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics_get_EcdsaP521Sha512(This,value)	\
    ( (This)->lpVtbl -> get_EcdsaP521Sha512(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics_get_DsaSha1(This,value)	\
    ( (This)->lpVtbl -> get_DsaSha1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics_get_DsaSha256(This,value)	\
    ( (This)->lpVtbl -> get_DsaSha256(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics_get_RsaSignPkcs1Sha1(This,value)	\
    ( (This)->lpVtbl -> get_RsaSignPkcs1Sha1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics_get_RsaSignPkcs1Sha256(This,value)	\
    ( (This)->lpVtbl -> get_RsaSignPkcs1Sha256(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics_get_RsaSignPkcs1Sha384(This,value)	\
    ( (This)->lpVtbl -> get_RsaSignPkcs1Sha384(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics_get_RsaSignPkcs1Sha512(This,value)	\
    ( (This)->lpVtbl -> get_RsaSignPkcs1Sha512(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics_get_RsaSignPssSha1(This,value)	\
    ( (This)->lpVtbl -> get_RsaSignPssSha1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics_get_RsaSignPssSha256(This,value)	\
    ( (This)->lpVtbl -> get_RsaSignPssSha256(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics_get_RsaSignPssSha384(This,value)	\
    ( (This)->lpVtbl -> get_RsaSignPssSha384(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics_get_RsaSignPssSha512(This,value)	\
    ( (This)->lpVtbl -> get_RsaSignPssSha512(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0037 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics2_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Core_IAsymmetricAlgorithmNamesStatics2[] = L"Windows.Security.Cryptography.Core.IAsymmetricAlgorithmNamesStatics2";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics2_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0037 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0037_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0037_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics2_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics2_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics2 */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Core::IAsymmetricAlgorithmNamesStatics2 */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics2;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Core {
                        
                        MIDL_INTERFACE("F141C0D6-4BFF-4F23-BA66-6045B137D5DF")
                        IAsymmetricAlgorithmNamesStatics2 : public IInspectable
                        {
                        public:
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_EcdsaSha256( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_EcdsaSha384( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_EcdsaSha512( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IAsymmetricAlgorithmNamesStatics2 = __uuidof(IAsymmetricAlgorithmNamesStatics2);

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

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics2Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics2 * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics2 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics2 * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics2 * 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_CCore_CIAsymmetricAlgorithmNamesStatics2 * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics2 * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_EcdsaSha256 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics2 * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_EcdsaSha384 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics2 * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_EcdsaSha512 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics2 * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics2Vtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics2
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics2Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics2_get_EcdsaSha256(This,value)	\
    ( (This)->lpVtbl -> get_EcdsaSha256(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics2_get_EcdsaSha384(This,value)	\
    ( (This)->lpVtbl -> get_EcdsaSha384(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics2_get_EcdsaSha512(This,value)	\
    ( (This)->lpVtbl -> get_EcdsaSha512(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics2_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0038 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Core_IEccCurveNamesStatics[] = L"Windows.Security.Cryptography.Core.IEccCurveNamesStatics";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0038 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0038_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0038_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Core::IEccCurveNamesStatics */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Core {
                        
                        MIDL_INTERFACE("B3FF930C-AEEB-409E-B7D4-9B95295AAECF")
                        IEccCurveNamesStatics : public IInspectable
                        {
                        public:
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BrainpoolP160r1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BrainpoolP160t1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BrainpoolP192r1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BrainpoolP192t1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BrainpoolP224r1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BrainpoolP224t1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BrainpoolP256r1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BrainpoolP256t1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BrainpoolP320r1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BrainpoolP320t1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BrainpoolP384r1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BrainpoolP384t1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BrainpoolP512r1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BrainpoolP512t1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Curve25519( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Ec192wapi( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_NistP192( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_NistP224( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_NistP256( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_NistP384( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_NistP521( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_NumsP256t1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_NumsP384t1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_NumsP512t1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SecP160k1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SecP160r1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SecP160r2( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SecP192k1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SecP192r1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SecP224k1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SecP224r1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SecP256k1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SecP256r1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SecP384r1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SecP521r1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Wtls7( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Wtls9( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Wtls12( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_X962P192v1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_X962P192v2( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_X962P192v3( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_X962P239v1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_X962P239v2( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_X962P239v3( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_X962P256v1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AllEccCurveNames( 
                                /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_HSTRING **value) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IEccCurveNamesStatics = __uuidof(IEccCurveNamesStatics);

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

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStaticsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * 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_CCore_CIEccCurveNamesStatics * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BrainpoolP160r1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BrainpoolP160t1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BrainpoolP192r1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BrainpoolP192t1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BrainpoolP224r1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BrainpoolP224t1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BrainpoolP256r1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BrainpoolP256t1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BrainpoolP320r1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BrainpoolP320t1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BrainpoolP384r1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BrainpoolP384t1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BrainpoolP512r1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BrainpoolP512t1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Curve25519 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Ec192wapi )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_NistP192 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_NistP224 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_NistP256 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_NistP384 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_NistP521 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_NumsP256t1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_NumsP384t1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_NumsP512t1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SecP160k1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SecP160r1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SecP160r2 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SecP192k1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SecP192r1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SecP224k1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SecP224r1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SecP256k1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SecP256r1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SecP384r1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SecP521r1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Wtls7 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Wtls9 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Wtls12 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_X962P192v1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_X962P192v2 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_X962P192v3 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_X962P239v1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_X962P239v2 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_X962P239v3 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_X962P256v1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_AllEccCurveNames )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt __FIVectorView_1_HSTRING **value);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStaticsVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStaticsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_BrainpoolP160r1(This,value)	\
    ( (This)->lpVtbl -> get_BrainpoolP160r1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_BrainpoolP160t1(This,value)	\
    ( (This)->lpVtbl -> get_BrainpoolP160t1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_BrainpoolP192r1(This,value)	\
    ( (This)->lpVtbl -> get_BrainpoolP192r1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_BrainpoolP192t1(This,value)	\
    ( (This)->lpVtbl -> get_BrainpoolP192t1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_BrainpoolP224r1(This,value)	\
    ( (This)->lpVtbl -> get_BrainpoolP224r1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_BrainpoolP224t1(This,value)	\
    ( (This)->lpVtbl -> get_BrainpoolP224t1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_BrainpoolP256r1(This,value)	\
    ( (This)->lpVtbl -> get_BrainpoolP256r1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_BrainpoolP256t1(This,value)	\
    ( (This)->lpVtbl -> get_BrainpoolP256t1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_BrainpoolP320r1(This,value)	\
    ( (This)->lpVtbl -> get_BrainpoolP320r1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_BrainpoolP320t1(This,value)	\
    ( (This)->lpVtbl -> get_BrainpoolP320t1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_BrainpoolP384r1(This,value)	\
    ( (This)->lpVtbl -> get_BrainpoolP384r1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_BrainpoolP384t1(This,value)	\
    ( (This)->lpVtbl -> get_BrainpoolP384t1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_BrainpoolP512r1(This,value)	\
    ( (This)->lpVtbl -> get_BrainpoolP512r1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_BrainpoolP512t1(This,value)	\
    ( (This)->lpVtbl -> get_BrainpoolP512t1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_Curve25519(This,value)	\
    ( (This)->lpVtbl -> get_Curve25519(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_Ec192wapi(This,value)	\
    ( (This)->lpVtbl -> get_Ec192wapi(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_NistP192(This,value)	\
    ( (This)->lpVtbl -> get_NistP192(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_NistP224(This,value)	\
    ( (This)->lpVtbl -> get_NistP224(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_NistP256(This,value)	\
    ( (This)->lpVtbl -> get_NistP256(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_NistP384(This,value)	\
    ( (This)->lpVtbl -> get_NistP384(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_NistP521(This,value)	\
    ( (This)->lpVtbl -> get_NistP521(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_NumsP256t1(This,value)	\
    ( (This)->lpVtbl -> get_NumsP256t1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_NumsP384t1(This,value)	\
    ( (This)->lpVtbl -> get_NumsP384t1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_NumsP512t1(This,value)	\
    ( (This)->lpVtbl -> get_NumsP512t1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_SecP160k1(This,value)	\
    ( (This)->lpVtbl -> get_SecP160k1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_SecP160r1(This,value)	\
    ( (This)->lpVtbl -> get_SecP160r1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_SecP160r2(This,value)	\
    ( (This)->lpVtbl -> get_SecP160r2(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_SecP192k1(This,value)	\
    ( (This)->lpVtbl -> get_SecP192k1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_SecP192r1(This,value)	\
    ( (This)->lpVtbl -> get_SecP192r1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_SecP224k1(This,value)	\
    ( (This)->lpVtbl -> get_SecP224k1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_SecP224r1(This,value)	\
    ( (This)->lpVtbl -> get_SecP224r1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_SecP256k1(This,value)	\
    ( (This)->lpVtbl -> get_SecP256k1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_SecP256r1(This,value)	\
    ( (This)->lpVtbl -> get_SecP256r1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_SecP384r1(This,value)	\
    ( (This)->lpVtbl -> get_SecP384r1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_SecP521r1(This,value)	\
    ( (This)->lpVtbl -> get_SecP521r1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_Wtls7(This,value)	\
    ( (This)->lpVtbl -> get_Wtls7(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_Wtls9(This,value)	\
    ( (This)->lpVtbl -> get_Wtls9(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_Wtls12(This,value)	\
    ( (This)->lpVtbl -> get_Wtls12(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_X962P192v1(This,value)	\
    ( (This)->lpVtbl -> get_X962P192v1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_X962P192v2(This,value)	\
    ( (This)->lpVtbl -> get_X962P192v2(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_X962P192v3(This,value)	\
    ( (This)->lpVtbl -> get_X962P192v3(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_X962P239v1(This,value)	\
    ( (This)->lpVtbl -> get_X962P239v1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_X962P239v2(This,value)	\
    ( (This)->lpVtbl -> get_X962P239v2(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_X962P239v3(This,value)	\
    ( (This)->lpVtbl -> get_X962P239v3(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_X962P256v1(This,value)	\
    ( (This)->lpVtbl -> get_X962P256v1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_get_AllEccCurveNames(This,value)	\
    ( (This)->lpVtbl -> get_AllEccCurveNames(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEccCurveNamesStatics_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0039 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Core_IKeyDerivationAlgorithmNamesStatics[] = L"Windows.Security.Cryptography.Core.IKeyDerivationAlgorithmNamesStatics";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0039 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0039_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0039_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Core::IKeyDerivationAlgorithmNamesStatics */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Core {
                        
                        MIDL_INTERFACE("7B6E363E-94D2-4739-A57B-022E0C3A402A")
                        IKeyDerivationAlgorithmNamesStatics : public IInspectable
                        {
                        public:
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Pbkdf2Md5( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Pbkdf2Sha1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Pbkdf2Sha256( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Pbkdf2Sha384( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Pbkdf2Sha512( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Sp800108CtrHmacMd5( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Sp800108CtrHmacSha1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Sp800108CtrHmacSha256( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Sp800108CtrHmacSha384( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Sp800108CtrHmacSha512( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Sp80056aConcatMd5( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Sp80056aConcatSha1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Sp80056aConcatSha256( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Sp80056aConcatSha384( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Sp80056aConcatSha512( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IKeyDerivationAlgorithmNamesStatics = __uuidof(IKeyDerivationAlgorithmNamesStatics);

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

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStaticsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics * 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_CCore_CIKeyDerivationAlgorithmNamesStatics * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Pbkdf2Md5 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Pbkdf2Sha1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Pbkdf2Sha256 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Pbkdf2Sha384 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Pbkdf2Sha512 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Sp800108CtrHmacMd5 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Sp800108CtrHmacSha1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Sp800108CtrHmacSha256 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Sp800108CtrHmacSha384 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Sp800108CtrHmacSha512 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Sp80056aConcatMd5 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Sp80056aConcatSha1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Sp80056aConcatSha256 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Sp80056aConcatSha384 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Sp80056aConcatSha512 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStaticsVtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStaticsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics_get_Pbkdf2Md5(This,value)	\
    ( (This)->lpVtbl -> get_Pbkdf2Md5(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics_get_Pbkdf2Sha1(This,value)	\
    ( (This)->lpVtbl -> get_Pbkdf2Sha1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics_get_Pbkdf2Sha256(This,value)	\
    ( (This)->lpVtbl -> get_Pbkdf2Sha256(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics_get_Pbkdf2Sha384(This,value)	\
    ( (This)->lpVtbl -> get_Pbkdf2Sha384(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics_get_Pbkdf2Sha512(This,value)	\
    ( (This)->lpVtbl -> get_Pbkdf2Sha512(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics_get_Sp800108CtrHmacMd5(This,value)	\
    ( (This)->lpVtbl -> get_Sp800108CtrHmacMd5(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics_get_Sp800108CtrHmacSha1(This,value)	\
    ( (This)->lpVtbl -> get_Sp800108CtrHmacSha1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics_get_Sp800108CtrHmacSha256(This,value)	\
    ( (This)->lpVtbl -> get_Sp800108CtrHmacSha256(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics_get_Sp800108CtrHmacSha384(This,value)	\
    ( (This)->lpVtbl -> get_Sp800108CtrHmacSha384(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics_get_Sp800108CtrHmacSha512(This,value)	\
    ( (This)->lpVtbl -> get_Sp800108CtrHmacSha512(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics_get_Sp80056aConcatMd5(This,value)	\
    ( (This)->lpVtbl -> get_Sp80056aConcatMd5(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics_get_Sp80056aConcatSha1(This,value)	\
    ( (This)->lpVtbl -> get_Sp80056aConcatSha1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics_get_Sp80056aConcatSha256(This,value)	\
    ( (This)->lpVtbl -> get_Sp80056aConcatSha256(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics_get_Sp80056aConcatSha384(This,value)	\
    ( (This)->lpVtbl -> get_Sp80056aConcatSha384(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics_get_Sp80056aConcatSha512(This,value)	\
    ( (This)->lpVtbl -> get_Sp80056aConcatSha512(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0040 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics2_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Security_Cryptography_Core_IKeyDerivationAlgorithmNamesStatics2[] = L"Windows.Security.Cryptography.Core.IKeyDerivationAlgorithmNamesStatics2";
#endif /* !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics2_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0040 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0040_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0040_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics2_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics2_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics2 */
/* [uuid][object] */ 



/* interface ABI::Windows::Security::Cryptography::Core::IKeyDerivationAlgorithmNamesStatics2 */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics2;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Security {
                namespace Cryptography {
                    namespace Core {
                        
                        MIDL_INTERFACE("57953FAB-6044-466F-97F4-337B7808384D")
                        IKeyDerivationAlgorithmNamesStatics2 : public IInspectable
                        {
                        public:
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_CapiKdfMd5( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_CapiKdfSha1( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_CapiKdfSha256( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_CapiKdfSha384( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_CapiKdfSha512( 
                                /* [out][retval] */ __RPC__deref_out_opt HSTRING *value) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IKeyDerivationAlgorithmNamesStatics2 = __uuidof(IKeyDerivationAlgorithmNamesStatics2);

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

    typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics2Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics2 * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics2 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics2 * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics2 * 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_CCore_CIKeyDerivationAlgorithmNamesStatics2 * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics2 * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_CapiKdfMd5 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics2 * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_CapiKdfSha1 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics2 * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_CapiKdfSha256 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics2 * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_CapiKdfSha384 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics2 * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_CapiKdfSha512 )( 
            __RPC__in __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics2 * This,
            /* [out][retval] */ __RPC__deref_out_opt HSTRING *value);
        
        END_INTERFACE
    } __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics2Vtbl;

    interface __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics2
    {
        CONST_VTBL struct __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics2Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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


#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics2_get_CapiKdfMd5(This,value)	\
    ( (This)->lpVtbl -> get_CapiKdfMd5(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics2_get_CapiKdfSha1(This,value)	\
    ( (This)->lpVtbl -> get_CapiKdfSha1(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics2_get_CapiKdfSha256(This,value)	\
    ( (This)->lpVtbl -> get_CapiKdfSha256(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics2_get_CapiKdfSha384(This,value)	\
    ( (This)->lpVtbl -> get_CapiKdfSha384(This,value) ) 

#define __x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics2_get_CapiKdfSha512(This,value)	\
    ( (This)->lpVtbl -> get_CapiKdfSha512(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics2_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0041 */
/* [local] */ 

#ifndef RUNTIMECLASS_Windows_Security_Cryptography_Core_KeyDerivationParameters_DEFINED
#define RUNTIMECLASS_Windows_Security_Cryptography_Core_KeyDerivationParameters_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Security_Cryptography_Core_KeyDerivationParameters[] = L"Windows.Security.Cryptography.Core.KeyDerivationParameters";
#endif
#ifndef RUNTIMECLASS_Windows_Security_Cryptography_Core_CryptographicKey_DEFINED
#define RUNTIMECLASS_Windows_Security_Cryptography_Core_CryptographicKey_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Security_Cryptography_Core_CryptographicKey[] = L"Windows.Security.Cryptography.Core.CryptographicKey";
#endif
#ifndef RUNTIMECLASS_Windows_Security_Cryptography_Core_CryptographicHash_DEFINED
#define RUNTIMECLASS_Windows_Security_Cryptography_Core_CryptographicHash_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Security_Cryptography_Core_CryptographicHash[] = L"Windows.Security.Cryptography.Core.CryptographicHash";
#endif
#ifndef RUNTIMECLASS_Windows_Security_Cryptography_Core_PersistedKeyProvider_DEFINED
#define RUNTIMECLASS_Windows_Security_Cryptography_Core_PersistedKeyProvider_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Security_Cryptography_Core_PersistedKeyProvider[] = L"Windows.Security.Cryptography.Core.PersistedKeyProvider";
#endif
#ifndef RUNTIMECLASS_Windows_Security_Cryptography_Core_EncryptedAndAuthenticatedData_DEFINED
#define RUNTIMECLASS_Windows_Security_Cryptography_Core_EncryptedAndAuthenticatedData_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Security_Cryptography_Core_EncryptedAndAuthenticatedData[] = L"Windows.Security.Cryptography.Core.EncryptedAndAuthenticatedData";
#endif
#ifndef RUNTIMECLASS_Windows_Security_Cryptography_Core_CryptographicEngine_DEFINED
#define RUNTIMECLASS_Windows_Security_Cryptography_Core_CryptographicEngine_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Security_Cryptography_Core_CryptographicEngine[] = L"Windows.Security.Cryptography.Core.CryptographicEngine";
#endif
#ifndef RUNTIMECLASS_Windows_Security_Cryptography_Core_HashAlgorithmProvider_DEFINED
#define RUNTIMECLASS_Windows_Security_Cryptography_Core_HashAlgorithmProvider_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Security_Cryptography_Core_HashAlgorithmProvider[] = L"Windows.Security.Cryptography.Core.HashAlgorithmProvider";
#endif
#ifndef RUNTIMECLASS_Windows_Security_Cryptography_Core_MacAlgorithmProvider_DEFINED
#define RUNTIMECLASS_Windows_Security_Cryptography_Core_MacAlgorithmProvider_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Security_Cryptography_Core_MacAlgorithmProvider[] = L"Windows.Security.Cryptography.Core.MacAlgorithmProvider";
#endif
#ifndef RUNTIMECLASS_Windows_Security_Cryptography_Core_KeyDerivationAlgorithmProvider_DEFINED
#define RUNTIMECLASS_Windows_Security_Cryptography_Core_KeyDerivationAlgorithmProvider_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Security_Cryptography_Core_KeyDerivationAlgorithmProvider[] = L"Windows.Security.Cryptography.Core.KeyDerivationAlgorithmProvider";
#endif
#ifndef RUNTIMECLASS_Windows_Security_Cryptography_Core_SymmetricKeyAlgorithmProvider_DEFINED
#define RUNTIMECLASS_Windows_Security_Cryptography_Core_SymmetricKeyAlgorithmProvider_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Security_Cryptography_Core_SymmetricKeyAlgorithmProvider[] = L"Windows.Security.Cryptography.Core.SymmetricKeyAlgorithmProvider";
#endif
#ifndef RUNTIMECLASS_Windows_Security_Cryptography_Core_AsymmetricKeyAlgorithmProvider_DEFINED
#define RUNTIMECLASS_Windows_Security_Cryptography_Core_AsymmetricKeyAlgorithmProvider_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Security_Cryptography_Core_AsymmetricKeyAlgorithmProvider[] = L"Windows.Security.Cryptography.Core.AsymmetricKeyAlgorithmProvider";
#endif
#ifndef RUNTIMECLASS_Windows_Security_Cryptography_Core_HashAlgorithmNames_DEFINED
#define RUNTIMECLASS_Windows_Security_Cryptography_Core_HashAlgorithmNames_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Security_Cryptography_Core_HashAlgorithmNames[] = L"Windows.Security.Cryptography.Core.HashAlgorithmNames";
#endif
#ifndef RUNTIMECLASS_Windows_Security_Cryptography_Core_MacAlgorithmNames_DEFINED
#define RUNTIMECLASS_Windows_Security_Cryptography_Core_MacAlgorithmNames_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Security_Cryptography_Core_MacAlgorithmNames[] = L"Windows.Security.Cryptography.Core.MacAlgorithmNames";
#endif
#ifndef RUNTIMECLASS_Windows_Security_Cryptography_Core_SymmetricAlgorithmNames_DEFINED
#define RUNTIMECLASS_Windows_Security_Cryptography_Core_SymmetricAlgorithmNames_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Security_Cryptography_Core_SymmetricAlgorithmNames[] = L"Windows.Security.Cryptography.Core.SymmetricAlgorithmNames";
#endif
#ifndef RUNTIMECLASS_Windows_Security_Cryptography_Core_AsymmetricAlgorithmNames_DEFINED
#define RUNTIMECLASS_Windows_Security_Cryptography_Core_AsymmetricAlgorithmNames_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Security_Cryptography_Core_AsymmetricAlgorithmNames[] = L"Windows.Security.Cryptography.Core.AsymmetricAlgorithmNames";
#endif
#ifndef RUNTIMECLASS_Windows_Security_Cryptography_Core_EccCurveNames_DEFINED
#define RUNTIMECLASS_Windows_Security_Cryptography_Core_EccCurveNames_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Security_Cryptography_Core_EccCurveNames[] = L"Windows.Security.Cryptography.Core.EccCurveNames";
#endif
#ifndef RUNTIMECLASS_Windows_Security_Cryptography_Core_KeyDerivationAlgorithmNames_DEFINED
#define RUNTIMECLASS_Windows_Security_Cryptography_Core_KeyDerivationAlgorithmNames_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Security_Cryptography_Core_KeyDerivationAlgorithmNames[] = L"Windows.Security.Cryptography.Core.KeyDerivationAlgorithmNames";
#endif


/* interface __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0041 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0041_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Esecurity2Ecryptography2Ecore_0000_0041_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


