

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


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

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


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

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

#include "rpc.h"
#include "rpcndr.h"

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

#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif /*COM_NO_WINDOWS_H*/

#ifndef __windows2Esecurity2Ecryptography2Ecore_h__
#define __windows2Esecurity2Ecryptography2Ecore_h__

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

/* Forward Declarations */ 

#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_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_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_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_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_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_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__ */


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

#ifdef __cplusplus
extern "C"{
#endif 


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

#if defined(__cplusplus)
}
#endif // defined(__cplusplus)
#include <Windows.Foundation.h>
#if !defined(__windows2Estorage2Estreams_h__)
#include <Windows.Storage.Streams.h>
#endif // !defined(__windows2Estorage2Estreams_h__)
#if defined(__cplusplus)
extern "C" {
#endif // defined(__cplusplus)

#if !defined(__cplusplus)
#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





















#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 CryptographicKey;
} /*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
#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
    } ;
#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
    } ;
#endif /* end if !defined(__cplusplus) */

#endif
#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParameters_INTERFACE_DEFINED__)
extern const __declspec(selectany) 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_0000 */
/* [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 {
                    
                    /* [v1_enum] */ 
                    enum CryptographicPrivateKeyBlobType
                        {
                            CryptographicPrivateKeyBlobType_Pkcs8RawPrivateKeyInfo	= 0,
                            CryptographicPrivateKeyBlobType_Pkcs1RsaPrivateKey	= 1,
                            CryptographicPrivateKeyBlobType_BCryptPrivateKey	= 2,
                            CryptographicPrivateKeyBlobType_Capi1PrivateKey	= 3
                        } ;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus
} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Security {
            namespace Cryptography {
                namespace Core {
                    
                    /* [v1_enum] */ 
                    enum CryptographicPublicKeyBlobType
                        {
                            CryptographicPublicKeyBlobType_X509SubjectPublicKeyInfo	= 0,
                            CryptographicPublicKeyBlobType_Pkcs1RsaPublicKey	= 1,
                            CryptographicPublicKeyBlobType_BCryptPublicKey	= 2,
                            CryptographicPublicKeyBlobType_Capi1PublicKey	= 3
                        } ;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif



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;

#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_0001 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationParametersStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) 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_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;

#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_0002 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicKey_INTERFACE_DEFINED__)
extern const __declspec(selectany) 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_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;

#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_0003 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashComputation_INTERFACE_DEFINED__)
extern const __declspec(selectany) 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_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;

#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_0004 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProvider_INTERFACE_DEFINED__)
extern const __declspec(selectany) 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_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;

#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_0005 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProvider_INTERFACE_DEFINED__)
extern const __declspec(selectany) 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_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;

#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_0006 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProvider_INTERFACE_DEFINED__)
extern const __declspec(selectany) 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_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;

#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_0007 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProvider_INTERFACE_DEFINED__)
extern const __declspec(selectany) 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_0007 */
/* [local] */ 



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;

#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_0008 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProvider_INTERFACE_DEFINED__)
extern const __declspec(selectany) 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_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 ____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_0009 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIEncryptedAndAuthenticatedData_INTERFACE_DEFINED__)
extern const __declspec(selectany) 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_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;

#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_0010 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CICryptographicEngineStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) 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_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 ____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_0011 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmProviderStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) 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_0011 */
/* [local] */ 



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_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_0012 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmProviderStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) 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_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_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_0013 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmProviderStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) 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_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_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_0014 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricKeyAlgorithmProviderStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) 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_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_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_0015 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricKeyAlgorithmProviderStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) 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_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_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_0016 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIHashAlgorithmNamesStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) 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_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_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_0017 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIMacAlgorithmNamesStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) 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_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_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_0018 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CISymmetricAlgorithmNamesStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) 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_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_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_0019 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIAsymmetricAlgorithmNamesStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) 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_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_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_0020 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CSecurity_CCryptography_CCore_CIKeyDerivationAlgorithmNamesStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) 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_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_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_0021 */
/* [local] */ 

#ifndef RUNTIMECLASS_Windows_Security_Cryptography_Core_KeyDerivationParameters_DEFINED
#define RUNTIMECLASS_Windows_Security_Cryptography_Core_KeyDerivationParameters_DEFINED
extern const __declspec(selectany) 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) 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) WCHAR RuntimeClass_Windows_Security_Cryptography_Core_CryptographicHash[] = L"Windows.Security.Cryptography.Core.CryptographicHash";
#endif
#ifndef RUNTIMECLASS_Windows_Security_Cryptography_Core_EncryptedAndAuthenticatedData_DEFINED
#define RUNTIMECLASS_Windows_Security_Cryptography_Core_EncryptedAndAuthenticatedData_DEFINED
extern const __declspec(selectany) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) WCHAR RuntimeClass_Windows_Security_Cryptography_Core_AsymmetricAlgorithmNames[] = L"Windows.Security.Cryptography.Core.AsymmetricAlgorithmNames";
#endif
#ifndef RUNTIMECLASS_Windows_Security_Cryptography_Core_KeyDerivationAlgorithmNames_DEFINED
#define RUNTIMECLASS_Windows_Security_Cryptography_Core_KeyDerivationAlgorithmNames_DEFINED
extern const __declspec(selectany) WCHAR RuntimeClass_Windows_Security_Cryptography_Core_KeyDerivationAlgorithmNames[] = L"Windows.Security.Cryptography.Core.KeyDerivationAlgorithmNames";
#endif


/* 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;

/* 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


