master
   1/**
   2 * This file has no copyright assigned and is placed in the Public Domain.
   3 * This file is part of the mingw-w64 runtime package.
   4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
   5 */
   6#ifndef __REQUIRED_RPCNDR_H_VERSION__
   7#define __REQUIRED_RPCNDR_H_VERSION__ 475
   8#endif
   9
  10#include "rpc.h"
  11#include "rpcndr.h"
  12
  13#ifndef __RPCNDR_H_VERSION__
  14#error This stub requires an updated version of <rpcndr.h>
  15#endif
  16
  17#ifndef COM_NO_WINDOWS_H
  18#include "windows.h"
  19#include "ole2.h"
  20#endif
  21
  22#ifndef __xenroll_h__
  23#define __xenroll_h__
  24
  25#ifndef __ICEnroll_FWD_DEFINED__
  26#define __ICEnroll_FWD_DEFINED__
  27typedef struct ICEnroll ICEnroll;
  28#endif
  29
  30#ifndef __ICEnroll2_FWD_DEFINED__
  31#define __ICEnroll2_FWD_DEFINED__
  32typedef struct ICEnroll2 ICEnroll2;
  33#endif
  34
  35#ifndef __ICEnroll3_FWD_DEFINED__
  36#define __ICEnroll3_FWD_DEFINED__
  37typedef struct ICEnroll3 ICEnroll3;
  38#endif
  39
  40#ifndef __ICEnroll4_FWD_DEFINED__
  41#define __ICEnroll4_FWD_DEFINED__
  42typedef struct ICEnroll4 ICEnroll4;
  43#endif
  44
  45#ifndef __IEnroll_FWD_DEFINED__
  46#define __IEnroll_FWD_DEFINED__
  47typedef struct IEnroll IEnroll;
  48#endif
  49
  50#ifndef __IEnroll2_FWD_DEFINED__
  51#define __IEnroll2_FWD_DEFINED__
  52typedef struct IEnroll2 IEnroll2;
  53#endif
  54
  55#ifndef __IEnroll4_FWD_DEFINED__
  56#define __IEnroll4_FWD_DEFINED__
  57typedef struct IEnroll4 IEnroll4;
  58#endif
  59
  60#ifndef __CEnroll2_FWD_DEFINED__
  61#define __CEnroll2_FWD_DEFINED__
  62
  63#ifdef __cplusplus
  64typedef class CEnroll2 CEnroll2;
  65#else
  66typedef struct CEnroll2 CEnroll2;
  67#endif
  68#endif
  69
  70#ifndef __CEnroll_FWD_DEFINED__
  71#define __CEnroll_FWD_DEFINED__
  72#ifdef __cplusplus
  73typedef class CEnroll CEnroll;
  74#else
  75typedef struct CEnroll CEnroll;
  76#endif
  77#endif
  78
  79#include "oaidl.h"
  80#include "ocidl.h"
  81#include "wincrypt.h"
  82
  83#ifdef __cplusplus
  84extern "C" {
  85#endif
  86
  87#ifndef __MIDL_user_allocate_free_DEFINED__
  88#define __MIDL_user_allocate_free_DEFINED__
  89  void *__RPC_API MIDL_user_allocate(size_t);
  90  void __RPC_API MIDL_user_free(void *);
  91#endif
  92
  93#ifndef __ICEnroll_INTERFACE_DEFINED__
  94#define __ICEnroll_INTERFACE_DEFINED__
  95
  96  extern const IID IID_ICEnroll;
  97
  98#if defined(__cplusplus) && !defined(CINTERFACE)
  99#ifdef __cplusplus
 100}
 101#endif
 102  struct ICEnroll : public IDispatch {
 103  public:
 104    virtual HRESULT WINAPI createFilePKCS10(BSTR DNName,BSTR Usage,BSTR wszPKCS10FileName) = 0;
 105    virtual HRESULT WINAPI acceptFilePKCS7(BSTR wszPKCS7FileName) = 0;
 106    virtual HRESULT WINAPI createPKCS10(BSTR DNName,BSTR Usage,BSTR *pPKCS10) = 0;
 107    virtual HRESULT WINAPI acceptPKCS7(BSTR PKCS7) = 0;
 108    virtual HRESULT WINAPI getCertFromPKCS7(BSTR wszPKCS7,BSTR *pbstrCert) = 0;
 109    virtual HRESULT WINAPI enumProviders(LONG dwIndex,LONG dwFlags,BSTR *pbstrProvName) = 0;
 110    virtual HRESULT WINAPI enumContainers(LONG dwIndex,BSTR *pbstr) = 0;
 111    virtual HRESULT WINAPI freeRequestInfo(BSTR PKCS7OrPKCS10) = 0;
 112    virtual HRESULT WINAPI get_MyStoreName(BSTR *pbstrName) = 0;
 113    virtual HRESULT WINAPI put_MyStoreName(BSTR bstrName) = 0;
 114    virtual HRESULT WINAPI get_MyStoreType(BSTR *pbstrType) = 0;
 115    virtual HRESULT WINAPI put_MyStoreType(BSTR bstrType) = 0;
 116    virtual HRESULT WINAPI get_MyStoreFlags(LONG *pdwFlags) = 0;
 117    virtual HRESULT WINAPI put_MyStoreFlags(LONG dwFlags) = 0;
 118    virtual HRESULT WINAPI get_CAStoreName(BSTR *pbstrName) = 0;
 119    virtual HRESULT WINAPI put_CAStoreName(BSTR bstrName) = 0;
 120    virtual HRESULT WINAPI get_CAStoreType(BSTR *pbstrType) = 0;
 121    virtual HRESULT WINAPI put_CAStoreType(BSTR bstrType) = 0;
 122    virtual HRESULT WINAPI get_CAStoreFlags(LONG *pdwFlags) = 0;
 123    virtual HRESULT WINAPI put_CAStoreFlags(LONG dwFlags) = 0;
 124    virtual HRESULT WINAPI get_RootStoreName(BSTR *pbstrName) = 0;
 125    virtual HRESULT WINAPI put_RootStoreName(BSTR bstrName) = 0;
 126    virtual HRESULT WINAPI get_RootStoreType(BSTR *pbstrType) = 0;
 127    virtual HRESULT WINAPI put_RootStoreType(BSTR bstrType) = 0;
 128    virtual HRESULT WINAPI get_RootStoreFlags(LONG *pdwFlags) = 0;
 129    virtual HRESULT WINAPI put_RootStoreFlags(LONG dwFlags) = 0;
 130    virtual HRESULT WINAPI get_RequestStoreName(BSTR *pbstrName) = 0;
 131    virtual HRESULT WINAPI put_RequestStoreName(BSTR bstrName) = 0;
 132    virtual HRESULT WINAPI get_RequestStoreType(BSTR *pbstrType) = 0;
 133    virtual HRESULT WINAPI put_RequestStoreType(BSTR bstrType) = 0;
 134    virtual HRESULT WINAPI get_RequestStoreFlags(LONG *pdwFlags) = 0;
 135    virtual HRESULT WINAPI put_RequestStoreFlags(LONG dwFlags) = 0;
 136    virtual HRESULT WINAPI get_ContainerName(BSTR *pbstrContainer) = 0;
 137    virtual HRESULT WINAPI put_ContainerName(BSTR bstrContainer) = 0;
 138    virtual HRESULT WINAPI get_ProviderName(BSTR *pbstrProvider) = 0;
 139    virtual HRESULT WINAPI put_ProviderName(BSTR bstrProvider) = 0;
 140    virtual HRESULT WINAPI get_ProviderType(LONG *pdwType) = 0;
 141    virtual HRESULT WINAPI put_ProviderType(LONG dwType) = 0;
 142    virtual HRESULT WINAPI get_KeySpec(LONG *pdw) = 0;
 143    virtual HRESULT WINAPI put_KeySpec(LONG dw) = 0;
 144    virtual HRESULT WINAPI get_ProviderFlags(LONG *pdwFlags) = 0;
 145    virtual HRESULT WINAPI put_ProviderFlags(LONG dwFlags) = 0;
 146    virtual HRESULT WINAPI get_UseExistingKeySet(WINBOOL *fUseExistingKeys) = 0;
 147    virtual HRESULT WINAPI put_UseExistingKeySet(WINBOOL fUseExistingKeys) = 0;
 148    virtual HRESULT WINAPI get_GenKeyFlags(LONG *pdwFlags) = 0;
 149    virtual HRESULT WINAPI put_GenKeyFlags(LONG dwFlags) = 0;
 150    virtual HRESULT WINAPI get_DeleteRequestCert(WINBOOL *fDelete) = 0;
 151    virtual HRESULT WINAPI put_DeleteRequestCert(WINBOOL fDelete) = 0;
 152    virtual HRESULT WINAPI get_WriteCertToCSP(WINBOOL *fBool) = 0;
 153    virtual HRESULT WINAPI put_WriteCertToCSP(WINBOOL fBool) = 0;
 154    virtual HRESULT WINAPI get_SPCFileName(BSTR *pbstr) = 0;
 155    virtual HRESULT WINAPI put_SPCFileName(BSTR bstr) = 0;
 156    virtual HRESULT WINAPI get_PVKFileName(BSTR *pbstr) = 0;
 157    virtual HRESULT WINAPI put_PVKFileName(BSTR bstr) = 0;
 158    virtual HRESULT WINAPI get_HashAlgorithm(BSTR *pbstr) = 0;
 159    virtual HRESULT WINAPI put_HashAlgorithm(BSTR bstr) = 0;
 160  };
 161#ifdef __cplusplus
 162  extern "C" {
 163#endif
 164#else
 165  typedef struct ICEnrollVtbl {
 166    BEGIN_INTERFACE
 167      HRESULT (WINAPI *QueryInterface)(ICEnroll *This,REFIID riid,void **ppvObject);
 168      ULONG (WINAPI *AddRef)(ICEnroll *This);
 169      ULONG (WINAPI *Release)(ICEnroll *This);
 170      HRESULT (WINAPI *GetTypeInfoCount)(ICEnroll *This,UINT *pctinfo);
 171      HRESULT (WINAPI *GetTypeInfo)(ICEnroll *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
 172      HRESULT (WINAPI *GetIDsOfNames)(ICEnroll *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
 173      HRESULT (WINAPI *Invoke)(ICEnroll *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
 174      HRESULT (WINAPI *createFilePKCS10)(ICEnroll *This,BSTR DNName,BSTR Usage,BSTR wszPKCS10FileName);
 175      HRESULT (WINAPI *acceptFilePKCS7)(ICEnroll *This,BSTR wszPKCS7FileName);
 176      HRESULT (WINAPI *createPKCS10)(ICEnroll *This,BSTR DNName,BSTR Usage,BSTR *pPKCS10);
 177      HRESULT (WINAPI *acceptPKCS7)(ICEnroll *This,BSTR PKCS7);
 178      HRESULT (WINAPI *getCertFromPKCS7)(ICEnroll *This,BSTR wszPKCS7,BSTR *pbstrCert);
 179      HRESULT (WINAPI *enumProviders)(ICEnroll *This,LONG dwIndex,LONG dwFlags,BSTR *pbstrProvName);
 180      HRESULT (WINAPI *enumContainers)(ICEnroll *This,LONG dwIndex,BSTR *pbstr);
 181      HRESULT (WINAPI *freeRequestInfo)(ICEnroll *This,BSTR PKCS7OrPKCS10);
 182      HRESULT (WINAPI *get_MyStoreName)(ICEnroll *This,BSTR *pbstrName);
 183      HRESULT (WINAPI *put_MyStoreName)(ICEnroll *This,BSTR bstrName);
 184      HRESULT (WINAPI *get_MyStoreType)(ICEnroll *This,BSTR *pbstrType);
 185      HRESULT (WINAPI *put_MyStoreType)(ICEnroll *This,BSTR bstrType);
 186      HRESULT (WINAPI *get_MyStoreFlags)(ICEnroll *This,LONG *pdwFlags);
 187      HRESULT (WINAPI *put_MyStoreFlags)(ICEnroll *This,LONG dwFlags);
 188      HRESULT (WINAPI *get_CAStoreName)(ICEnroll *This,BSTR *pbstrName);
 189      HRESULT (WINAPI *put_CAStoreName)(ICEnroll *This,BSTR bstrName);
 190      HRESULT (WINAPI *get_CAStoreType)(ICEnroll *This,BSTR *pbstrType);
 191      HRESULT (WINAPI *put_CAStoreType)(ICEnroll *This,BSTR bstrType);
 192      HRESULT (WINAPI *get_CAStoreFlags)(ICEnroll *This,LONG *pdwFlags);
 193      HRESULT (WINAPI *put_CAStoreFlags)(ICEnroll *This,LONG dwFlags);
 194      HRESULT (WINAPI *get_RootStoreName)(ICEnroll *This,BSTR *pbstrName);
 195      HRESULT (WINAPI *put_RootStoreName)(ICEnroll *This,BSTR bstrName);
 196      HRESULT (WINAPI *get_RootStoreType)(ICEnroll *This,BSTR *pbstrType);
 197      HRESULT (WINAPI *put_RootStoreType)(ICEnroll *This,BSTR bstrType);
 198      HRESULT (WINAPI *get_RootStoreFlags)(ICEnroll *This,LONG *pdwFlags);
 199      HRESULT (WINAPI *put_RootStoreFlags)(ICEnroll *This,LONG dwFlags);
 200      HRESULT (WINAPI *get_RequestStoreName)(ICEnroll *This,BSTR *pbstrName);
 201      HRESULT (WINAPI *put_RequestStoreName)(ICEnroll *This,BSTR bstrName);
 202      HRESULT (WINAPI *get_RequestStoreType)(ICEnroll *This,BSTR *pbstrType);
 203      HRESULT (WINAPI *put_RequestStoreType)(ICEnroll *This,BSTR bstrType);
 204      HRESULT (WINAPI *get_RequestStoreFlags)(ICEnroll *This,LONG *pdwFlags);
 205      HRESULT (WINAPI *put_RequestStoreFlags)(ICEnroll *This,LONG dwFlags);
 206      HRESULT (WINAPI *get_ContainerName)(ICEnroll *This,BSTR *pbstrContainer);
 207      HRESULT (WINAPI *put_ContainerName)(ICEnroll *This,BSTR bstrContainer);
 208      HRESULT (WINAPI *get_ProviderName)(ICEnroll *This,BSTR *pbstrProvider);
 209      HRESULT (WINAPI *put_ProviderName)(ICEnroll *This,BSTR bstrProvider);
 210      HRESULT (WINAPI *get_ProviderType)(ICEnroll *This,LONG *pdwType);
 211      HRESULT (WINAPI *put_ProviderType)(ICEnroll *This,LONG dwType);
 212      HRESULT (WINAPI *get_KeySpec)(ICEnroll *This,LONG *pdw);
 213      HRESULT (WINAPI *put_KeySpec)(ICEnroll *This,LONG dw);
 214      HRESULT (WINAPI *get_ProviderFlags)(ICEnroll *This,LONG *pdwFlags);
 215      HRESULT (WINAPI *put_ProviderFlags)(ICEnroll *This,LONG dwFlags);
 216      HRESULT (WINAPI *get_UseExistingKeySet)(ICEnroll *This,WINBOOL *fUseExistingKeys);
 217      HRESULT (WINAPI *put_UseExistingKeySet)(ICEnroll *This,WINBOOL fUseExistingKeys);
 218      HRESULT (WINAPI *get_GenKeyFlags)(ICEnroll *This,LONG *pdwFlags);
 219      HRESULT (WINAPI *put_GenKeyFlags)(ICEnroll *This,LONG dwFlags);
 220      HRESULT (WINAPI *get_DeleteRequestCert)(ICEnroll *This,WINBOOL *fDelete);
 221      HRESULT (WINAPI *put_DeleteRequestCert)(ICEnroll *This,WINBOOL fDelete);
 222      HRESULT (WINAPI *get_WriteCertToCSP)(ICEnroll *This,WINBOOL *fBool);
 223      HRESULT (WINAPI *put_WriteCertToCSP)(ICEnroll *This,WINBOOL fBool);
 224      HRESULT (WINAPI *get_SPCFileName)(ICEnroll *This,BSTR *pbstr);
 225      HRESULT (WINAPI *put_SPCFileName)(ICEnroll *This,BSTR bstr);
 226      HRESULT (WINAPI *get_PVKFileName)(ICEnroll *This,BSTR *pbstr);
 227      HRESULT (WINAPI *put_PVKFileName)(ICEnroll *This,BSTR bstr);
 228      HRESULT (WINAPI *get_HashAlgorithm)(ICEnroll *This,BSTR *pbstr);
 229      HRESULT (WINAPI *put_HashAlgorithm)(ICEnroll *This,BSTR bstr);
 230    END_INTERFACE
 231  } ICEnrollVtbl;
 232  struct ICEnroll {
 233    CONST_VTBL struct ICEnrollVtbl *lpVtbl;
 234  };
 235#ifdef COBJMACROS
 236#define ICEnroll_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 237#define ICEnroll_AddRef(This) (This)->lpVtbl->AddRef(This)
 238#define ICEnroll_Release(This) (This)->lpVtbl->Release(This)
 239#define ICEnroll_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 240#define ICEnroll_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 241#define ICEnroll_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 242#define ICEnroll_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
 243#define ICEnroll_createFilePKCS10(This,DNName,Usage,wszPKCS10FileName) (This)->lpVtbl->createFilePKCS10(This,DNName,Usage,wszPKCS10FileName)
 244#define ICEnroll_acceptFilePKCS7(This,wszPKCS7FileName) (This)->lpVtbl->acceptFilePKCS7(This,wszPKCS7FileName)
 245#define ICEnroll_createPKCS10(This,DNName,Usage,pPKCS10) (This)->lpVtbl->createPKCS10(This,DNName,Usage,pPKCS10)
 246#define ICEnroll_acceptPKCS7(This,PKCS7) (This)->lpVtbl->acceptPKCS7(This,PKCS7)
 247#define ICEnroll_getCertFromPKCS7(This,wszPKCS7,pbstrCert) (This)->lpVtbl->getCertFromPKCS7(This,wszPKCS7,pbstrCert)
 248#define ICEnroll_enumProviders(This,dwIndex,dwFlags,pbstrProvName) (This)->lpVtbl->enumProviders(This,dwIndex,dwFlags,pbstrProvName)
 249#define ICEnroll_enumContainers(This,dwIndex,pbstr) (This)->lpVtbl->enumContainers(This,dwIndex,pbstr)
 250#define ICEnroll_freeRequestInfo(This,PKCS7OrPKCS10) (This)->lpVtbl->freeRequestInfo(This,PKCS7OrPKCS10)
 251#define ICEnroll_get_MyStoreName(This,pbstrName) (This)->lpVtbl->get_MyStoreName(This,pbstrName)
 252#define ICEnroll_put_MyStoreName(This,bstrName) (This)->lpVtbl->put_MyStoreName(This,bstrName)
 253#define ICEnroll_get_MyStoreType(This,pbstrType) (This)->lpVtbl->get_MyStoreType(This,pbstrType)
 254#define ICEnroll_put_MyStoreType(This,bstrType) (This)->lpVtbl->put_MyStoreType(This,bstrType)
 255#define ICEnroll_get_MyStoreFlags(This,pdwFlags) (This)->lpVtbl->get_MyStoreFlags(This,pdwFlags)
 256#define ICEnroll_put_MyStoreFlags(This,dwFlags) (This)->lpVtbl->put_MyStoreFlags(This,dwFlags)
 257#define ICEnroll_get_CAStoreName(This,pbstrName) (This)->lpVtbl->get_CAStoreName(This,pbstrName)
 258#define ICEnroll_put_CAStoreName(This,bstrName) (This)->lpVtbl->put_CAStoreName(This,bstrName)
 259#define ICEnroll_get_CAStoreType(This,pbstrType) (This)->lpVtbl->get_CAStoreType(This,pbstrType)
 260#define ICEnroll_put_CAStoreType(This,bstrType) (This)->lpVtbl->put_CAStoreType(This,bstrType)
 261#define ICEnroll_get_CAStoreFlags(This,pdwFlags) (This)->lpVtbl->get_CAStoreFlags(This,pdwFlags)
 262#define ICEnroll_put_CAStoreFlags(This,dwFlags) (This)->lpVtbl->put_CAStoreFlags(This,dwFlags)
 263#define ICEnroll_get_RootStoreName(This,pbstrName) (This)->lpVtbl->get_RootStoreName(This,pbstrName)
 264#define ICEnroll_put_RootStoreName(This,bstrName) (This)->lpVtbl->put_RootStoreName(This,bstrName)
 265#define ICEnroll_get_RootStoreType(This,pbstrType) (This)->lpVtbl->get_RootStoreType(This,pbstrType)
 266#define ICEnroll_put_RootStoreType(This,bstrType) (This)->lpVtbl->put_RootStoreType(This,bstrType)
 267#define ICEnroll_get_RootStoreFlags(This,pdwFlags) (This)->lpVtbl->get_RootStoreFlags(This,pdwFlags)
 268#define ICEnroll_put_RootStoreFlags(This,dwFlags) (This)->lpVtbl->put_RootStoreFlags(This,dwFlags)
 269#define ICEnroll_get_RequestStoreName(This,pbstrName) (This)->lpVtbl->get_RequestStoreName(This,pbstrName)
 270#define ICEnroll_put_RequestStoreName(This,bstrName) (This)->lpVtbl->put_RequestStoreName(This,bstrName)
 271#define ICEnroll_get_RequestStoreType(This,pbstrType) (This)->lpVtbl->get_RequestStoreType(This,pbstrType)
 272#define ICEnroll_put_RequestStoreType(This,bstrType) (This)->lpVtbl->put_RequestStoreType(This,bstrType)
 273#define ICEnroll_get_RequestStoreFlags(This,pdwFlags) (This)->lpVtbl->get_RequestStoreFlags(This,pdwFlags)
 274#define ICEnroll_put_RequestStoreFlags(This,dwFlags) (This)->lpVtbl->put_RequestStoreFlags(This,dwFlags)
 275#define ICEnroll_get_ContainerName(This,pbstrContainer) (This)->lpVtbl->get_ContainerName(This,pbstrContainer)
 276#define ICEnroll_put_ContainerName(This,bstrContainer) (This)->lpVtbl->put_ContainerName(This,bstrContainer)
 277#define ICEnroll_get_ProviderName(This,pbstrProvider) (This)->lpVtbl->get_ProviderName(This,pbstrProvider)
 278#define ICEnroll_put_ProviderName(This,bstrProvider) (This)->lpVtbl->put_ProviderName(This,bstrProvider)
 279#define ICEnroll_get_ProviderType(This,pdwType) (This)->lpVtbl->get_ProviderType(This,pdwType)
 280#define ICEnroll_put_ProviderType(This,dwType) (This)->lpVtbl->put_ProviderType(This,dwType)
 281#define ICEnroll_get_KeySpec(This,pdw) (This)->lpVtbl->get_KeySpec(This,pdw)
 282#define ICEnroll_put_KeySpec(This,dw) (This)->lpVtbl->put_KeySpec(This,dw)
 283#define ICEnroll_get_ProviderFlags(This,pdwFlags) (This)->lpVtbl->get_ProviderFlags(This,pdwFlags)
 284#define ICEnroll_put_ProviderFlags(This,dwFlags) (This)->lpVtbl->put_ProviderFlags(This,dwFlags)
 285#define ICEnroll_get_UseExistingKeySet(This,fUseExistingKeys) (This)->lpVtbl->get_UseExistingKeySet(This,fUseExistingKeys)
 286#define ICEnroll_put_UseExistingKeySet(This,fUseExistingKeys) (This)->lpVtbl->put_UseExistingKeySet(This,fUseExistingKeys)
 287#define ICEnroll_get_GenKeyFlags(This,pdwFlags) (This)->lpVtbl->get_GenKeyFlags(This,pdwFlags)
 288#define ICEnroll_put_GenKeyFlags(This,dwFlags) (This)->lpVtbl->put_GenKeyFlags(This,dwFlags)
 289#define ICEnroll_get_DeleteRequestCert(This,fDelete) (This)->lpVtbl->get_DeleteRequestCert(This,fDelete)
 290#define ICEnroll_put_DeleteRequestCert(This,fDelete) (This)->lpVtbl->put_DeleteRequestCert(This,fDelete)
 291#define ICEnroll_get_WriteCertToCSP(This,fBool) (This)->lpVtbl->get_WriteCertToCSP(This,fBool)
 292#define ICEnroll_put_WriteCertToCSP(This,fBool) (This)->lpVtbl->put_WriteCertToCSP(This,fBool)
 293#define ICEnroll_get_SPCFileName(This,pbstr) (This)->lpVtbl->get_SPCFileName(This,pbstr)
 294#define ICEnroll_put_SPCFileName(This,bstr) (This)->lpVtbl->put_SPCFileName(This,bstr)
 295#define ICEnroll_get_PVKFileName(This,pbstr) (This)->lpVtbl->get_PVKFileName(This,pbstr)
 296#define ICEnroll_put_PVKFileName(This,bstr) (This)->lpVtbl->put_PVKFileName(This,bstr)
 297#define ICEnroll_get_HashAlgorithm(This,pbstr) (This)->lpVtbl->get_HashAlgorithm(This,pbstr)
 298#define ICEnroll_put_HashAlgorithm(This,bstr) (This)->lpVtbl->put_HashAlgorithm(This,bstr)
 299#endif
 300#endif
 301  HRESULT WINAPI ICEnroll_createFilePKCS10_Proxy(ICEnroll *This,BSTR DNName,BSTR Usage,BSTR wszPKCS10FileName);
 302  void __RPC_STUB ICEnroll_createFilePKCS10_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 303  HRESULT WINAPI ICEnroll_acceptFilePKCS7_Proxy(ICEnroll *This,BSTR wszPKCS7FileName);
 304  void __RPC_STUB ICEnroll_acceptFilePKCS7_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 305  HRESULT WINAPI ICEnroll_createPKCS10_Proxy(ICEnroll *This,BSTR DNName,BSTR Usage,BSTR *pPKCS10);
 306  void __RPC_STUB ICEnroll_createPKCS10_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 307  HRESULT WINAPI ICEnroll_acceptPKCS7_Proxy(ICEnroll *This,BSTR PKCS7);
 308  void __RPC_STUB ICEnroll_acceptPKCS7_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 309  HRESULT WINAPI ICEnroll_getCertFromPKCS7_Proxy(ICEnroll *This,BSTR wszPKCS7,BSTR *pbstrCert);
 310  void __RPC_STUB ICEnroll_getCertFromPKCS7_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 311  HRESULT WINAPI ICEnroll_enumProviders_Proxy(ICEnroll *This,LONG dwIndex,LONG dwFlags,BSTR *pbstrProvName);
 312  void __RPC_STUB ICEnroll_enumProviders_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 313  HRESULT WINAPI ICEnroll_enumContainers_Proxy(ICEnroll *This,LONG dwIndex,BSTR *pbstr);
 314  void __RPC_STUB ICEnroll_enumContainers_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 315  HRESULT WINAPI ICEnroll_freeRequestInfo_Proxy(ICEnroll *This,BSTR PKCS7OrPKCS10);
 316  void __RPC_STUB ICEnroll_freeRequestInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 317  HRESULT WINAPI ICEnroll_get_MyStoreName_Proxy(ICEnroll *This,BSTR *pbstrName);
 318  void __RPC_STUB ICEnroll_get_MyStoreName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 319  HRESULT WINAPI ICEnroll_put_MyStoreName_Proxy(ICEnroll *This,BSTR bstrName);
 320  void __RPC_STUB ICEnroll_put_MyStoreName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 321  HRESULT WINAPI ICEnroll_get_MyStoreType_Proxy(ICEnroll *This,BSTR *pbstrType);
 322  void __RPC_STUB ICEnroll_get_MyStoreType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 323  HRESULT WINAPI ICEnroll_put_MyStoreType_Proxy(ICEnroll *This,BSTR bstrType);
 324  void __RPC_STUB ICEnroll_put_MyStoreType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 325  HRESULT WINAPI ICEnroll_get_MyStoreFlags_Proxy(ICEnroll *This,LONG *pdwFlags);
 326  void __RPC_STUB ICEnroll_get_MyStoreFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 327  HRESULT WINAPI ICEnroll_put_MyStoreFlags_Proxy(ICEnroll *This,LONG dwFlags);
 328  void __RPC_STUB ICEnroll_put_MyStoreFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 329  HRESULT WINAPI ICEnroll_get_CAStoreName_Proxy(ICEnroll *This,BSTR *pbstrName);
 330  void __RPC_STUB ICEnroll_get_CAStoreName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 331  HRESULT WINAPI ICEnroll_put_CAStoreName_Proxy(ICEnroll *This,BSTR bstrName);
 332  void __RPC_STUB ICEnroll_put_CAStoreName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 333  HRESULT WINAPI ICEnroll_get_CAStoreType_Proxy(ICEnroll *This,BSTR *pbstrType);
 334  void __RPC_STUB ICEnroll_get_CAStoreType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 335  HRESULT WINAPI ICEnroll_put_CAStoreType_Proxy(ICEnroll *This,BSTR bstrType);
 336  void __RPC_STUB ICEnroll_put_CAStoreType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 337  HRESULT WINAPI ICEnroll_get_CAStoreFlags_Proxy(ICEnroll *This,LONG *pdwFlags);
 338  void __RPC_STUB ICEnroll_get_CAStoreFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 339  HRESULT WINAPI ICEnroll_put_CAStoreFlags_Proxy(ICEnroll *This,LONG dwFlags);
 340  void __RPC_STUB ICEnroll_put_CAStoreFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 341  HRESULT WINAPI ICEnroll_get_RootStoreName_Proxy(ICEnroll *This,BSTR *pbstrName);
 342  void __RPC_STUB ICEnroll_get_RootStoreName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 343  HRESULT WINAPI ICEnroll_put_RootStoreName_Proxy(ICEnroll *This,BSTR bstrName);
 344  void __RPC_STUB ICEnroll_put_RootStoreName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 345  HRESULT WINAPI ICEnroll_get_RootStoreType_Proxy(ICEnroll *This,BSTR *pbstrType);
 346  void __RPC_STUB ICEnroll_get_RootStoreType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 347  HRESULT WINAPI ICEnroll_put_RootStoreType_Proxy(ICEnroll *This,BSTR bstrType);
 348  void __RPC_STUB ICEnroll_put_RootStoreType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 349  HRESULT WINAPI ICEnroll_get_RootStoreFlags_Proxy(ICEnroll *This,LONG *pdwFlags);
 350  void __RPC_STUB ICEnroll_get_RootStoreFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 351  HRESULT WINAPI ICEnroll_put_RootStoreFlags_Proxy(ICEnroll *This,LONG dwFlags);
 352  void __RPC_STUB ICEnroll_put_RootStoreFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 353  HRESULT WINAPI ICEnroll_get_RequestStoreName_Proxy(ICEnroll *This,BSTR *pbstrName);
 354  void __RPC_STUB ICEnroll_get_RequestStoreName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 355  HRESULT WINAPI ICEnroll_put_RequestStoreName_Proxy(ICEnroll *This,BSTR bstrName);
 356  void __RPC_STUB ICEnroll_put_RequestStoreName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 357  HRESULT WINAPI ICEnroll_get_RequestStoreType_Proxy(ICEnroll *This,BSTR *pbstrType);
 358  void __RPC_STUB ICEnroll_get_RequestStoreType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 359  HRESULT WINAPI ICEnroll_put_RequestStoreType_Proxy(ICEnroll *This,BSTR bstrType);
 360  void __RPC_STUB ICEnroll_put_RequestStoreType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 361  HRESULT WINAPI ICEnroll_get_RequestStoreFlags_Proxy(ICEnroll *This,LONG *pdwFlags);
 362  void __RPC_STUB ICEnroll_get_RequestStoreFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 363  HRESULT WINAPI ICEnroll_put_RequestStoreFlags_Proxy(ICEnroll *This,LONG dwFlags);
 364  void __RPC_STUB ICEnroll_put_RequestStoreFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 365  HRESULT WINAPI ICEnroll_get_ContainerName_Proxy(ICEnroll *This,BSTR *pbstrContainer);
 366  void __RPC_STUB ICEnroll_get_ContainerName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 367  HRESULT WINAPI ICEnroll_put_ContainerName_Proxy(ICEnroll *This,BSTR bstrContainer);
 368  void __RPC_STUB ICEnroll_put_ContainerName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 369  HRESULT WINAPI ICEnroll_get_ProviderName_Proxy(ICEnroll *This,BSTR *pbstrProvider);
 370  void __RPC_STUB ICEnroll_get_ProviderName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 371  HRESULT WINAPI ICEnroll_put_ProviderName_Proxy(ICEnroll *This,BSTR bstrProvider);
 372  void __RPC_STUB ICEnroll_put_ProviderName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 373  HRESULT WINAPI ICEnroll_get_ProviderType_Proxy(ICEnroll *This,LONG *pdwType);
 374  void __RPC_STUB ICEnroll_get_ProviderType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 375  HRESULT WINAPI ICEnroll_put_ProviderType_Proxy(ICEnroll *This,LONG dwType);
 376  void __RPC_STUB ICEnroll_put_ProviderType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 377  HRESULT WINAPI ICEnroll_get_KeySpec_Proxy(ICEnroll *This,LONG *pdw);
 378  void __RPC_STUB ICEnroll_get_KeySpec_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 379  HRESULT WINAPI ICEnroll_put_KeySpec_Proxy(ICEnroll *This,LONG dw);
 380  void __RPC_STUB ICEnroll_put_KeySpec_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 381  HRESULT WINAPI ICEnroll_get_ProviderFlags_Proxy(ICEnroll *This,LONG *pdwFlags);
 382  void __RPC_STUB ICEnroll_get_ProviderFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 383  HRESULT WINAPI ICEnroll_put_ProviderFlags_Proxy(ICEnroll *This,LONG dwFlags);
 384  void __RPC_STUB ICEnroll_put_ProviderFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 385  HRESULT WINAPI ICEnroll_get_UseExistingKeySet_Proxy(ICEnroll *This,WINBOOL *fUseExistingKeys);
 386  void __RPC_STUB ICEnroll_get_UseExistingKeySet_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 387  HRESULT WINAPI ICEnroll_put_UseExistingKeySet_Proxy(ICEnroll *This,WINBOOL fUseExistingKeys);
 388  void __RPC_STUB ICEnroll_put_UseExistingKeySet_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 389  HRESULT WINAPI ICEnroll_get_GenKeyFlags_Proxy(ICEnroll *This,LONG *pdwFlags);
 390  void __RPC_STUB ICEnroll_get_GenKeyFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 391  HRESULT WINAPI ICEnroll_put_GenKeyFlags_Proxy(ICEnroll *This,LONG dwFlags);
 392  void __RPC_STUB ICEnroll_put_GenKeyFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 393  HRESULT WINAPI ICEnroll_get_DeleteRequestCert_Proxy(ICEnroll *This,WINBOOL *fDelete);
 394  void __RPC_STUB ICEnroll_get_DeleteRequestCert_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 395  HRESULT WINAPI ICEnroll_put_DeleteRequestCert_Proxy(ICEnroll *This,WINBOOL fDelete);
 396  void __RPC_STUB ICEnroll_put_DeleteRequestCert_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 397  HRESULT WINAPI ICEnroll_get_WriteCertToCSP_Proxy(ICEnroll *This,WINBOOL *fBool);
 398  void __RPC_STUB ICEnroll_get_WriteCertToCSP_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 399  HRESULT WINAPI ICEnroll_put_WriteCertToCSP_Proxy(ICEnroll *This,WINBOOL fBool);
 400  void __RPC_STUB ICEnroll_put_WriteCertToCSP_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 401  HRESULT WINAPI ICEnroll_get_SPCFileName_Proxy(ICEnroll *This,BSTR *pbstr);
 402  void __RPC_STUB ICEnroll_get_SPCFileName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 403  HRESULT WINAPI ICEnroll_put_SPCFileName_Proxy(ICEnroll *This,BSTR bstr);
 404  void __RPC_STUB ICEnroll_put_SPCFileName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 405  HRESULT WINAPI ICEnroll_get_PVKFileName_Proxy(ICEnroll *This,BSTR *pbstr);
 406  void __RPC_STUB ICEnroll_get_PVKFileName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 407  HRESULT WINAPI ICEnroll_put_PVKFileName_Proxy(ICEnroll *This,BSTR bstr);
 408  void __RPC_STUB ICEnroll_put_PVKFileName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 409  HRESULT WINAPI ICEnroll_get_HashAlgorithm_Proxy(ICEnroll *This,BSTR *pbstr);
 410  void __RPC_STUB ICEnroll_get_HashAlgorithm_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 411  HRESULT WINAPI ICEnroll_put_HashAlgorithm_Proxy(ICEnroll *This,BSTR bstr);
 412  void __RPC_STUB ICEnroll_put_HashAlgorithm_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 413#endif
 414
 415#ifndef __ICEnroll2_INTERFACE_DEFINED__
 416#define __ICEnroll2_INTERFACE_DEFINED__
 417  extern const IID IID_ICEnroll2;
 418#if defined(__cplusplus) && !defined(CINTERFACE)
 419#ifdef __cplusplus
 420}
 421#endif
 422  struct ICEnroll2 : public ICEnroll {
 423  public:
 424    virtual HRESULT WINAPI addCertTypeToRequest(BSTR CertType) = 0;
 425    virtual HRESULT WINAPI addNameValuePairToSignature(BSTR Name,BSTR Value) = 0;
 426    virtual HRESULT WINAPI get_WriteCertToUserDS(WINBOOL *fBool) = 0;
 427    virtual HRESULT WINAPI put_WriteCertToUserDS(WINBOOL fBool) = 0;
 428    virtual HRESULT WINAPI get_EnableT61DNEncoding(WINBOOL *fBool) = 0;
 429    virtual HRESULT WINAPI put_EnableT61DNEncoding(WINBOOL fBool) = 0;
 430  };
 431#ifdef __cplusplus
 432  extern "C" {
 433#endif
 434#else
 435  typedef struct ICEnroll2Vtbl {
 436    BEGIN_INTERFACE
 437      HRESULT (WINAPI *QueryInterface)(ICEnroll2 *This,REFIID riid,void **ppvObject);
 438      ULONG (WINAPI *AddRef)(ICEnroll2 *This);
 439      ULONG (WINAPI *Release)(ICEnroll2 *This);
 440      HRESULT (WINAPI *GetTypeInfoCount)(ICEnroll2 *This,UINT *pctinfo);
 441      HRESULT (WINAPI *GetTypeInfo)(ICEnroll2 *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
 442      HRESULT (WINAPI *GetIDsOfNames)(ICEnroll2 *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
 443      HRESULT (WINAPI *Invoke)(ICEnroll2 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
 444      HRESULT (WINAPI *createFilePKCS10)(ICEnroll2 *This,BSTR DNName,BSTR Usage,BSTR wszPKCS10FileName);
 445      HRESULT (WINAPI *acceptFilePKCS7)(ICEnroll2 *This,BSTR wszPKCS7FileName);
 446      HRESULT (WINAPI *createPKCS10)(ICEnroll2 *This,BSTR DNName,BSTR Usage,BSTR *pPKCS10);
 447      HRESULT (WINAPI *acceptPKCS7)(ICEnroll2 *This,BSTR PKCS7);
 448      HRESULT (WINAPI *getCertFromPKCS7)(ICEnroll2 *This,BSTR wszPKCS7,BSTR *pbstrCert);
 449      HRESULT (WINAPI *enumProviders)(ICEnroll2 *This,LONG dwIndex,LONG dwFlags,BSTR *pbstrProvName);
 450      HRESULT (WINAPI *enumContainers)(ICEnroll2 *This,LONG dwIndex,BSTR *pbstr);
 451      HRESULT (WINAPI *freeRequestInfo)(ICEnroll2 *This,BSTR PKCS7OrPKCS10);
 452      HRESULT (WINAPI *get_MyStoreName)(ICEnroll2 *This,BSTR *pbstrName);
 453      HRESULT (WINAPI *put_MyStoreName)(ICEnroll2 *This,BSTR bstrName);
 454      HRESULT (WINAPI *get_MyStoreType)(ICEnroll2 *This,BSTR *pbstrType);
 455      HRESULT (WINAPI *put_MyStoreType)(ICEnroll2 *This,BSTR bstrType);
 456      HRESULT (WINAPI *get_MyStoreFlags)(ICEnroll2 *This,LONG *pdwFlags);
 457      HRESULT (WINAPI *put_MyStoreFlags)(ICEnroll2 *This,LONG dwFlags);
 458      HRESULT (WINAPI *get_CAStoreName)(ICEnroll2 *This,BSTR *pbstrName);
 459      HRESULT (WINAPI *put_CAStoreName)(ICEnroll2 *This,BSTR bstrName);
 460      HRESULT (WINAPI *get_CAStoreType)(ICEnroll2 *This,BSTR *pbstrType);
 461      HRESULT (WINAPI *put_CAStoreType)(ICEnroll2 *This,BSTR bstrType);
 462      HRESULT (WINAPI *get_CAStoreFlags)(ICEnroll2 *This,LONG *pdwFlags);
 463      HRESULT (WINAPI *put_CAStoreFlags)(ICEnroll2 *This,LONG dwFlags);
 464      HRESULT (WINAPI *get_RootStoreName)(ICEnroll2 *This,BSTR *pbstrName);
 465      HRESULT (WINAPI *put_RootStoreName)(ICEnroll2 *This,BSTR bstrName);
 466      HRESULT (WINAPI *get_RootStoreType)(ICEnroll2 *This,BSTR *pbstrType);
 467      HRESULT (WINAPI *put_RootStoreType)(ICEnroll2 *This,BSTR bstrType);
 468      HRESULT (WINAPI *get_RootStoreFlags)(ICEnroll2 *This,LONG *pdwFlags);
 469      HRESULT (WINAPI *put_RootStoreFlags)(ICEnroll2 *This,LONG dwFlags);
 470      HRESULT (WINAPI *get_RequestStoreName)(ICEnroll2 *This,BSTR *pbstrName);
 471      HRESULT (WINAPI *put_RequestStoreName)(ICEnroll2 *This,BSTR bstrName);
 472      HRESULT (WINAPI *get_RequestStoreType)(ICEnroll2 *This,BSTR *pbstrType);
 473      HRESULT (WINAPI *put_RequestStoreType)(ICEnroll2 *This,BSTR bstrType);
 474      HRESULT (WINAPI *get_RequestStoreFlags)(ICEnroll2 *This,LONG *pdwFlags);
 475      HRESULT (WINAPI *put_RequestStoreFlags)(ICEnroll2 *This,LONG dwFlags);
 476      HRESULT (WINAPI *get_ContainerName)(ICEnroll2 *This,BSTR *pbstrContainer);
 477      HRESULT (WINAPI *put_ContainerName)(ICEnroll2 *This,BSTR bstrContainer);
 478      HRESULT (WINAPI *get_ProviderName)(ICEnroll2 *This,BSTR *pbstrProvider);
 479      HRESULT (WINAPI *put_ProviderName)(ICEnroll2 *This,BSTR bstrProvider);
 480      HRESULT (WINAPI *get_ProviderType)(ICEnroll2 *This,LONG *pdwType);
 481      HRESULT (WINAPI *put_ProviderType)(ICEnroll2 *This,LONG dwType);
 482      HRESULT (WINAPI *get_KeySpec)(ICEnroll2 *This,LONG *pdw);
 483      HRESULT (WINAPI *put_KeySpec)(ICEnroll2 *This,LONG dw);
 484      HRESULT (WINAPI *get_ProviderFlags)(ICEnroll2 *This,LONG *pdwFlags);
 485      HRESULT (WINAPI *put_ProviderFlags)(ICEnroll2 *This,LONG dwFlags);
 486      HRESULT (WINAPI *get_UseExistingKeySet)(ICEnroll2 *This,WINBOOL *fUseExistingKeys);
 487      HRESULT (WINAPI *put_UseExistingKeySet)(ICEnroll2 *This,WINBOOL fUseExistingKeys);
 488      HRESULT (WINAPI *get_GenKeyFlags)(ICEnroll2 *This,LONG *pdwFlags);
 489      HRESULT (WINAPI *put_GenKeyFlags)(ICEnroll2 *This,LONG dwFlags);
 490      HRESULT (WINAPI *get_DeleteRequestCert)(ICEnroll2 *This,WINBOOL *fDelete);
 491      HRESULT (WINAPI *put_DeleteRequestCert)(ICEnroll2 *This,WINBOOL fDelete);
 492      HRESULT (WINAPI *get_WriteCertToCSP)(ICEnroll2 *This,WINBOOL *fBool);
 493      HRESULT (WINAPI *put_WriteCertToCSP)(ICEnroll2 *This,WINBOOL fBool);
 494      HRESULT (WINAPI *get_SPCFileName)(ICEnroll2 *This,BSTR *pbstr);
 495      HRESULT (WINAPI *put_SPCFileName)(ICEnroll2 *This,BSTR bstr);
 496      HRESULT (WINAPI *get_PVKFileName)(ICEnroll2 *This,BSTR *pbstr);
 497      HRESULT (WINAPI *put_PVKFileName)(ICEnroll2 *This,BSTR bstr);
 498      HRESULT (WINAPI *get_HashAlgorithm)(ICEnroll2 *This,BSTR *pbstr);
 499      HRESULT (WINAPI *put_HashAlgorithm)(ICEnroll2 *This,BSTR bstr);
 500      HRESULT (WINAPI *addCertTypeToRequest)(ICEnroll2 *This,BSTR CertType);
 501      HRESULT (WINAPI *addNameValuePairToSignature)(ICEnroll2 *This,BSTR Name,BSTR Value);
 502      HRESULT (WINAPI *get_WriteCertToUserDS)(ICEnroll2 *This,WINBOOL *fBool);
 503      HRESULT (WINAPI *put_WriteCertToUserDS)(ICEnroll2 *This,WINBOOL fBool);
 504      HRESULT (WINAPI *get_EnableT61DNEncoding)(ICEnroll2 *This,WINBOOL *fBool);
 505      HRESULT (WINAPI *put_EnableT61DNEncoding)(ICEnroll2 *This,WINBOOL fBool);
 506    END_INTERFACE
 507  } ICEnroll2Vtbl;
 508  struct ICEnroll2 {
 509    CONST_VTBL struct ICEnroll2Vtbl *lpVtbl;
 510  };
 511#ifdef COBJMACROS
 512#define ICEnroll2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 513#define ICEnroll2_AddRef(This) (This)->lpVtbl->AddRef(This)
 514#define ICEnroll2_Release(This) (This)->lpVtbl->Release(This)
 515#define ICEnroll2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 516#define ICEnroll2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 517#define ICEnroll2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 518#define ICEnroll2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
 519#define ICEnroll2_createFilePKCS10(This,DNName,Usage,wszPKCS10FileName) (This)->lpVtbl->createFilePKCS10(This,DNName,Usage,wszPKCS10FileName)
 520#define ICEnroll2_acceptFilePKCS7(This,wszPKCS7FileName) (This)->lpVtbl->acceptFilePKCS7(This,wszPKCS7FileName)
 521#define ICEnroll2_createPKCS10(This,DNName,Usage,pPKCS10) (This)->lpVtbl->createPKCS10(This,DNName,Usage,pPKCS10)
 522#define ICEnroll2_acceptPKCS7(This,PKCS7) (This)->lpVtbl->acceptPKCS7(This,PKCS7)
 523#define ICEnroll2_getCertFromPKCS7(This,wszPKCS7,pbstrCert) (This)->lpVtbl->getCertFromPKCS7(This,wszPKCS7,pbstrCert)
 524#define ICEnroll2_enumProviders(This,dwIndex,dwFlags,pbstrProvName) (This)->lpVtbl->enumProviders(This,dwIndex,dwFlags,pbstrProvName)
 525#define ICEnroll2_enumContainers(This,dwIndex,pbstr) (This)->lpVtbl->enumContainers(This,dwIndex,pbstr)
 526#define ICEnroll2_freeRequestInfo(This,PKCS7OrPKCS10) (This)->lpVtbl->freeRequestInfo(This,PKCS7OrPKCS10)
 527#define ICEnroll2_get_MyStoreName(This,pbstrName) (This)->lpVtbl->get_MyStoreName(This,pbstrName)
 528#define ICEnroll2_put_MyStoreName(This,bstrName) (This)->lpVtbl->put_MyStoreName(This,bstrName)
 529#define ICEnroll2_get_MyStoreType(This,pbstrType) (This)->lpVtbl->get_MyStoreType(This,pbstrType)
 530#define ICEnroll2_put_MyStoreType(This,bstrType) (This)->lpVtbl->put_MyStoreType(This,bstrType)
 531#define ICEnroll2_get_MyStoreFlags(This,pdwFlags) (This)->lpVtbl->get_MyStoreFlags(This,pdwFlags)
 532#define ICEnroll2_put_MyStoreFlags(This,dwFlags) (This)->lpVtbl->put_MyStoreFlags(This,dwFlags)
 533#define ICEnroll2_get_CAStoreName(This,pbstrName) (This)->lpVtbl->get_CAStoreName(This,pbstrName)
 534#define ICEnroll2_put_CAStoreName(This,bstrName) (This)->lpVtbl->put_CAStoreName(This,bstrName)
 535#define ICEnroll2_get_CAStoreType(This,pbstrType) (This)->lpVtbl->get_CAStoreType(This,pbstrType)
 536#define ICEnroll2_put_CAStoreType(This,bstrType) (This)->lpVtbl->put_CAStoreType(This,bstrType)
 537#define ICEnroll2_get_CAStoreFlags(This,pdwFlags) (This)->lpVtbl->get_CAStoreFlags(This,pdwFlags)
 538#define ICEnroll2_put_CAStoreFlags(This,dwFlags) (This)->lpVtbl->put_CAStoreFlags(This,dwFlags)
 539#define ICEnroll2_get_RootStoreName(This,pbstrName) (This)->lpVtbl->get_RootStoreName(This,pbstrName)
 540#define ICEnroll2_put_RootStoreName(This,bstrName) (This)->lpVtbl->put_RootStoreName(This,bstrName)
 541#define ICEnroll2_get_RootStoreType(This,pbstrType) (This)->lpVtbl->get_RootStoreType(This,pbstrType)
 542#define ICEnroll2_put_RootStoreType(This,bstrType) (This)->lpVtbl->put_RootStoreType(This,bstrType)
 543#define ICEnroll2_get_RootStoreFlags(This,pdwFlags) (This)->lpVtbl->get_RootStoreFlags(This,pdwFlags)
 544#define ICEnroll2_put_RootStoreFlags(This,dwFlags) (This)->lpVtbl->put_RootStoreFlags(This,dwFlags)
 545#define ICEnroll2_get_RequestStoreName(This,pbstrName) (This)->lpVtbl->get_RequestStoreName(This,pbstrName)
 546#define ICEnroll2_put_RequestStoreName(This,bstrName) (This)->lpVtbl->put_RequestStoreName(This,bstrName)
 547#define ICEnroll2_get_RequestStoreType(This,pbstrType) (This)->lpVtbl->get_RequestStoreType(This,pbstrType)
 548#define ICEnroll2_put_RequestStoreType(This,bstrType) (This)->lpVtbl->put_RequestStoreType(This,bstrType)
 549#define ICEnroll2_get_RequestStoreFlags(This,pdwFlags) (This)->lpVtbl->get_RequestStoreFlags(This,pdwFlags)
 550#define ICEnroll2_put_RequestStoreFlags(This,dwFlags) (This)->lpVtbl->put_RequestStoreFlags(This,dwFlags)
 551#define ICEnroll2_get_ContainerName(This,pbstrContainer) (This)->lpVtbl->get_ContainerName(This,pbstrContainer)
 552#define ICEnroll2_put_ContainerName(This,bstrContainer) (This)->lpVtbl->put_ContainerName(This,bstrContainer)
 553#define ICEnroll2_get_ProviderName(This,pbstrProvider) (This)->lpVtbl->get_ProviderName(This,pbstrProvider)
 554#define ICEnroll2_put_ProviderName(This,bstrProvider) (This)->lpVtbl->put_ProviderName(This,bstrProvider)
 555#define ICEnroll2_get_ProviderType(This,pdwType) (This)->lpVtbl->get_ProviderType(This,pdwType)
 556#define ICEnroll2_put_ProviderType(This,dwType) (This)->lpVtbl->put_ProviderType(This,dwType)
 557#define ICEnroll2_get_KeySpec(This,pdw) (This)->lpVtbl->get_KeySpec(This,pdw)
 558#define ICEnroll2_put_KeySpec(This,dw) (This)->lpVtbl->put_KeySpec(This,dw)
 559#define ICEnroll2_get_ProviderFlags(This,pdwFlags) (This)->lpVtbl->get_ProviderFlags(This,pdwFlags)
 560#define ICEnroll2_put_ProviderFlags(This,dwFlags) (This)->lpVtbl->put_ProviderFlags(This,dwFlags)
 561#define ICEnroll2_get_UseExistingKeySet(This,fUseExistingKeys) (This)->lpVtbl->get_UseExistingKeySet(This,fUseExistingKeys)
 562#define ICEnroll2_put_UseExistingKeySet(This,fUseExistingKeys) (This)->lpVtbl->put_UseExistingKeySet(This,fUseExistingKeys)
 563#define ICEnroll2_get_GenKeyFlags(This,pdwFlags) (This)->lpVtbl->get_GenKeyFlags(This,pdwFlags)
 564#define ICEnroll2_put_GenKeyFlags(This,dwFlags) (This)->lpVtbl->put_GenKeyFlags(This,dwFlags)
 565#define ICEnroll2_get_DeleteRequestCert(This,fDelete) (This)->lpVtbl->get_DeleteRequestCert(This,fDelete)
 566#define ICEnroll2_put_DeleteRequestCert(This,fDelete) (This)->lpVtbl->put_DeleteRequestCert(This,fDelete)
 567#define ICEnroll2_get_WriteCertToCSP(This,fBool) (This)->lpVtbl->get_WriteCertToCSP(This,fBool)
 568#define ICEnroll2_put_WriteCertToCSP(This,fBool) (This)->lpVtbl->put_WriteCertToCSP(This,fBool)
 569#define ICEnroll2_get_SPCFileName(This,pbstr) (This)->lpVtbl->get_SPCFileName(This,pbstr)
 570#define ICEnroll2_put_SPCFileName(This,bstr) (This)->lpVtbl->put_SPCFileName(This,bstr)
 571#define ICEnroll2_get_PVKFileName(This,pbstr) (This)->lpVtbl->get_PVKFileName(This,pbstr)
 572#define ICEnroll2_put_PVKFileName(This,bstr) (This)->lpVtbl->put_PVKFileName(This,bstr)
 573#define ICEnroll2_get_HashAlgorithm(This,pbstr) (This)->lpVtbl->get_HashAlgorithm(This,pbstr)
 574#define ICEnroll2_put_HashAlgorithm(This,bstr) (This)->lpVtbl->put_HashAlgorithm(This,bstr)
 575#define ICEnroll2_addCertTypeToRequest(This,CertType) (This)->lpVtbl->addCertTypeToRequest(This,CertType)
 576#define ICEnroll2_addNameValuePairToSignature(This,Name,Value) (This)->lpVtbl->addNameValuePairToSignature(This,Name,Value)
 577#define ICEnroll2_get_WriteCertToUserDS(This,fBool) (This)->lpVtbl->get_WriteCertToUserDS(This,fBool)
 578#define ICEnroll2_put_WriteCertToUserDS(This,fBool) (This)->lpVtbl->put_WriteCertToUserDS(This,fBool)
 579#define ICEnroll2_get_EnableT61DNEncoding(This,fBool) (This)->lpVtbl->get_EnableT61DNEncoding(This,fBool)
 580#define ICEnroll2_put_EnableT61DNEncoding(This,fBool) (This)->lpVtbl->put_EnableT61DNEncoding(This,fBool)
 581#endif
 582#endif
 583  HRESULT WINAPI ICEnroll2_addCertTypeToRequest_Proxy(ICEnroll2 *This,BSTR CertType);
 584  void __RPC_STUB ICEnroll2_addCertTypeToRequest_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 585  HRESULT WINAPI ICEnroll2_addNameValuePairToSignature_Proxy(ICEnroll2 *This,BSTR Name,BSTR Value);
 586  void __RPC_STUB ICEnroll2_addNameValuePairToSignature_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 587  HRESULT WINAPI ICEnroll2_get_WriteCertToUserDS_Proxy(ICEnroll2 *This,WINBOOL *fBool);
 588  void __RPC_STUB ICEnroll2_get_WriteCertToUserDS_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 589  HRESULT WINAPI ICEnroll2_put_WriteCertToUserDS_Proxy(ICEnroll2 *This,WINBOOL fBool);
 590  void __RPC_STUB ICEnroll2_put_WriteCertToUserDS_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 591  HRESULT WINAPI ICEnroll2_get_EnableT61DNEncoding_Proxy(ICEnroll2 *This,WINBOOL *fBool);
 592  void __RPC_STUB ICEnroll2_get_EnableT61DNEncoding_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 593  HRESULT WINAPI ICEnroll2_put_EnableT61DNEncoding_Proxy(ICEnroll2 *This,WINBOOL fBool);
 594  void __RPC_STUB ICEnroll2_put_EnableT61DNEncoding_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 595#endif
 596
 597#ifndef __ICEnroll3_INTERFACE_DEFINED__
 598#define __ICEnroll3_INTERFACE_DEFINED__
 599  extern const IID IID_ICEnroll3;
 600#if defined(__cplusplus) && !defined(CINTERFACE)
 601#ifdef __cplusplus
 602}
 603#endif
 604  struct ICEnroll3 : public ICEnroll2 {
 605  public:
 606    virtual HRESULT WINAPI InstallPKCS7(BSTR PKCS7) = 0;
 607    virtual HRESULT WINAPI Reset(void) = 0;
 608    virtual HRESULT WINAPI GetSupportedKeySpec(LONG *pdwKeySpec) = 0;
 609    virtual HRESULT WINAPI GetKeyLen(WINBOOL fMin,WINBOOL fExchange,LONG *pdwKeySize) = 0;
 610    virtual HRESULT WINAPI EnumAlgs(LONG dwIndex,LONG algClass,LONG *pdwAlgID) = 0;
 611    virtual HRESULT WINAPI GetAlgName(LONG algID,BSTR *pbstr) = 0;
 612    virtual HRESULT WINAPI put_ReuseHardwareKeyIfUnableToGenNew(WINBOOL fReuseHardwareKeyIfUnableToGenNew) = 0;
 613    virtual HRESULT WINAPI get_ReuseHardwareKeyIfUnableToGenNew(WINBOOL *fReuseHardwareKeyIfUnableToGenNew) = 0;
 614    virtual HRESULT WINAPI put_HashAlgID(LONG hashAlgID) = 0;
 615    virtual HRESULT WINAPI get_HashAlgID(LONG *hashAlgID) = 0;
 616    virtual HRESULT WINAPI put_LimitExchangeKeyToEncipherment(WINBOOL fLimitExchangeKeyToEncipherment) = 0;
 617    virtual HRESULT WINAPI get_LimitExchangeKeyToEncipherment(WINBOOL *fLimitExchangeKeyToEncipherment) = 0;
 618    virtual HRESULT WINAPI put_EnableSMIMECapabilities(WINBOOL fEnableSMIMECapabilities) = 0;
 619    virtual HRESULT WINAPI get_EnableSMIMECapabilities(WINBOOL *fEnableSMIMECapabilities) = 0;
 620  };
 621#ifdef __cplusplus
 622  extern "C" {
 623#endif
 624#else
 625  typedef struct ICEnroll3Vtbl {
 626    BEGIN_INTERFACE
 627      HRESULT (WINAPI *QueryInterface)(ICEnroll3 *This,REFIID riid,void **ppvObject);
 628      ULONG (WINAPI *AddRef)(ICEnroll3 *This);
 629      ULONG (WINAPI *Release)(ICEnroll3 *This);
 630      HRESULT (WINAPI *GetTypeInfoCount)(ICEnroll3 *This,UINT *pctinfo);
 631      HRESULT (WINAPI *GetTypeInfo)(ICEnroll3 *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
 632      HRESULT (WINAPI *GetIDsOfNames)(ICEnroll3 *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
 633      HRESULT (WINAPI *Invoke)(ICEnroll3 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
 634      HRESULT (WINAPI *createFilePKCS10)(ICEnroll3 *This,BSTR DNName,BSTR Usage,BSTR wszPKCS10FileName);
 635      HRESULT (WINAPI *acceptFilePKCS7)(ICEnroll3 *This,BSTR wszPKCS7FileName);
 636      HRESULT (WINAPI *createPKCS10)(ICEnroll3 *This,BSTR DNName,BSTR Usage,BSTR *pPKCS10);
 637      HRESULT (WINAPI *acceptPKCS7)(ICEnroll3 *This,BSTR PKCS7);
 638      HRESULT (WINAPI *getCertFromPKCS7)(ICEnroll3 *This,BSTR wszPKCS7,BSTR *pbstrCert);
 639      HRESULT (WINAPI *enumProviders)(ICEnroll3 *This,LONG dwIndex,LONG dwFlags,BSTR *pbstrProvName);
 640      HRESULT (WINAPI *enumContainers)(ICEnroll3 *This,LONG dwIndex,BSTR *pbstr);
 641      HRESULT (WINAPI *freeRequestInfo)(ICEnroll3 *This,BSTR PKCS7OrPKCS10);
 642      HRESULT (WINAPI *get_MyStoreName)(ICEnroll3 *This,BSTR *pbstrName);
 643      HRESULT (WINAPI *put_MyStoreName)(ICEnroll3 *This,BSTR bstrName);
 644      HRESULT (WINAPI *get_MyStoreType)(ICEnroll3 *This,BSTR *pbstrType);
 645      HRESULT (WINAPI *put_MyStoreType)(ICEnroll3 *This,BSTR bstrType);
 646      HRESULT (WINAPI *get_MyStoreFlags)(ICEnroll3 *This,LONG *pdwFlags);
 647      HRESULT (WINAPI *put_MyStoreFlags)(ICEnroll3 *This,LONG dwFlags);
 648      HRESULT (WINAPI *get_CAStoreName)(ICEnroll3 *This,BSTR *pbstrName);
 649      HRESULT (WINAPI *put_CAStoreName)(ICEnroll3 *This,BSTR bstrName);
 650      HRESULT (WINAPI *get_CAStoreType)(ICEnroll3 *This,BSTR *pbstrType);
 651      HRESULT (WINAPI *put_CAStoreType)(ICEnroll3 *This,BSTR bstrType);
 652      HRESULT (WINAPI *get_CAStoreFlags)(ICEnroll3 *This,LONG *pdwFlags);
 653      HRESULT (WINAPI *put_CAStoreFlags)(ICEnroll3 *This,LONG dwFlags);
 654      HRESULT (WINAPI *get_RootStoreName)(ICEnroll3 *This,BSTR *pbstrName);
 655      HRESULT (WINAPI *put_RootStoreName)(ICEnroll3 *This,BSTR bstrName);
 656      HRESULT (WINAPI *get_RootStoreType)(ICEnroll3 *This,BSTR *pbstrType);
 657      HRESULT (WINAPI *put_RootStoreType)(ICEnroll3 *This,BSTR bstrType);
 658      HRESULT (WINAPI *get_RootStoreFlags)(ICEnroll3 *This,LONG *pdwFlags);
 659      HRESULT (WINAPI *put_RootStoreFlags)(ICEnroll3 *This,LONG dwFlags);
 660      HRESULT (WINAPI *get_RequestStoreName)(ICEnroll3 *This,BSTR *pbstrName);
 661      HRESULT (WINAPI *put_RequestStoreName)(ICEnroll3 *This,BSTR bstrName);
 662      HRESULT (WINAPI *get_RequestStoreType)(ICEnroll3 *This,BSTR *pbstrType);
 663      HRESULT (WINAPI *put_RequestStoreType)(ICEnroll3 *This,BSTR bstrType);
 664      HRESULT (WINAPI *get_RequestStoreFlags)(ICEnroll3 *This,LONG *pdwFlags);
 665      HRESULT (WINAPI *put_RequestStoreFlags)(ICEnroll3 *This,LONG dwFlags);
 666      HRESULT (WINAPI *get_ContainerName)(ICEnroll3 *This,BSTR *pbstrContainer);
 667      HRESULT (WINAPI *put_ContainerName)(ICEnroll3 *This,BSTR bstrContainer);
 668      HRESULT (WINAPI *get_ProviderName)(ICEnroll3 *This,BSTR *pbstrProvider);
 669      HRESULT (WINAPI *put_ProviderName)(ICEnroll3 *This,BSTR bstrProvider);
 670      HRESULT (WINAPI *get_ProviderType)(ICEnroll3 *This,LONG *pdwType);
 671      HRESULT (WINAPI *put_ProviderType)(ICEnroll3 *This,LONG dwType);
 672      HRESULT (WINAPI *get_KeySpec)(ICEnroll3 *This,LONG *pdw);
 673      HRESULT (WINAPI *put_KeySpec)(ICEnroll3 *This,LONG dw);
 674      HRESULT (WINAPI *get_ProviderFlags)(ICEnroll3 *This,LONG *pdwFlags);
 675      HRESULT (WINAPI *put_ProviderFlags)(ICEnroll3 *This,LONG dwFlags);
 676      HRESULT (WINAPI *get_UseExistingKeySet)(ICEnroll3 *This,WINBOOL *fUseExistingKeys);
 677      HRESULT (WINAPI *put_UseExistingKeySet)(ICEnroll3 *This,WINBOOL fUseExistingKeys);
 678      HRESULT (WINAPI *get_GenKeyFlags)(ICEnroll3 *This,LONG *pdwFlags);
 679      HRESULT (WINAPI *put_GenKeyFlags)(ICEnroll3 *This,LONG dwFlags);
 680      HRESULT (WINAPI *get_DeleteRequestCert)(ICEnroll3 *This,WINBOOL *fDelete);
 681      HRESULT (WINAPI *put_DeleteRequestCert)(ICEnroll3 *This,WINBOOL fDelete);
 682      HRESULT (WINAPI *get_WriteCertToCSP)(ICEnroll3 *This,WINBOOL *fBool);
 683      HRESULT (WINAPI *put_WriteCertToCSP)(ICEnroll3 *This,WINBOOL fBool);
 684      HRESULT (WINAPI *get_SPCFileName)(ICEnroll3 *This,BSTR *pbstr);
 685      HRESULT (WINAPI *put_SPCFileName)(ICEnroll3 *This,BSTR bstr);
 686      HRESULT (WINAPI *get_PVKFileName)(ICEnroll3 *This,BSTR *pbstr);
 687      HRESULT (WINAPI *put_PVKFileName)(ICEnroll3 *This,BSTR bstr);
 688      HRESULT (WINAPI *get_HashAlgorithm)(ICEnroll3 *This,BSTR *pbstr);
 689      HRESULT (WINAPI *put_HashAlgorithm)(ICEnroll3 *This,BSTR bstr);
 690      HRESULT (WINAPI *addCertTypeToRequest)(ICEnroll3 *This,BSTR CertType);
 691      HRESULT (WINAPI *addNameValuePairToSignature)(ICEnroll3 *This,BSTR Name,BSTR Value);
 692      HRESULT (WINAPI *get_WriteCertToUserDS)(ICEnroll3 *This,WINBOOL *fBool);
 693      HRESULT (WINAPI *put_WriteCertToUserDS)(ICEnroll3 *This,WINBOOL fBool);
 694      HRESULT (WINAPI *get_EnableT61DNEncoding)(ICEnroll3 *This,WINBOOL *fBool);
 695      HRESULT (WINAPI *put_EnableT61DNEncoding)(ICEnroll3 *This,WINBOOL fBool);
 696      HRESULT (WINAPI *InstallPKCS7)(ICEnroll3 *This,BSTR PKCS7);
 697      HRESULT (WINAPI *Reset)(ICEnroll3 *This);
 698      HRESULT (WINAPI *GetSupportedKeySpec)(ICEnroll3 *This,LONG *pdwKeySpec);
 699      HRESULT (WINAPI *GetKeyLen)(ICEnroll3 *This,WINBOOL fMin,WINBOOL fExchange,LONG *pdwKeySize);
 700      HRESULT (WINAPI *EnumAlgs)(ICEnroll3 *This,LONG dwIndex,LONG algClass,LONG *pdwAlgID);
 701      HRESULT (WINAPI *GetAlgName)(ICEnroll3 *This,LONG algID,BSTR *pbstr);
 702      HRESULT (WINAPI *put_ReuseHardwareKeyIfUnableToGenNew)(ICEnroll3 *This,WINBOOL fReuseHardwareKeyIfUnableToGenNew);
 703      HRESULT (WINAPI *get_ReuseHardwareKeyIfUnableToGenNew)(ICEnroll3 *This,WINBOOL *fReuseHardwareKeyIfUnableToGenNew);
 704      HRESULT (WINAPI *put_HashAlgID)(ICEnroll3 *This,LONG hashAlgID);
 705      HRESULT (WINAPI *get_HashAlgID)(ICEnroll3 *This,LONG *hashAlgID);
 706      HRESULT (WINAPI *put_LimitExchangeKeyToEncipherment)(ICEnroll3 *This,WINBOOL fLimitExchangeKeyToEncipherment);
 707      HRESULT (WINAPI *get_LimitExchangeKeyToEncipherment)(ICEnroll3 *This,WINBOOL *fLimitExchangeKeyToEncipherment);
 708      HRESULT (WINAPI *put_EnableSMIMECapabilities)(ICEnroll3 *This,WINBOOL fEnableSMIMECapabilities);
 709      HRESULT (WINAPI *get_EnableSMIMECapabilities)(ICEnroll3 *This,WINBOOL *fEnableSMIMECapabilities);
 710    END_INTERFACE
 711  } ICEnroll3Vtbl;
 712  struct ICEnroll3 {
 713    CONST_VTBL struct ICEnroll3Vtbl *lpVtbl;
 714  };
 715#ifdef COBJMACROS
 716#define ICEnroll3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 717#define ICEnroll3_AddRef(This) (This)->lpVtbl->AddRef(This)
 718#define ICEnroll3_Release(This) (This)->lpVtbl->Release(This)
 719#define ICEnroll3_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
 720#define ICEnroll3_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
 721#define ICEnroll3_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
 722#define ICEnroll3_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
 723#define ICEnroll3_createFilePKCS10(This,DNName,Usage,wszPKCS10FileName) (This)->lpVtbl->createFilePKCS10(This,DNName,Usage,wszPKCS10FileName)
 724#define ICEnroll3_acceptFilePKCS7(This,wszPKCS7FileName) (This)->lpVtbl->acceptFilePKCS7(This,wszPKCS7FileName)
 725#define ICEnroll3_createPKCS10(This,DNName,Usage,pPKCS10) (This)->lpVtbl->createPKCS10(This,DNName,Usage,pPKCS10)
 726#define ICEnroll3_acceptPKCS7(This,PKCS7) (This)->lpVtbl->acceptPKCS7(This,PKCS7)
 727#define ICEnroll3_getCertFromPKCS7(This,wszPKCS7,pbstrCert) (This)->lpVtbl->getCertFromPKCS7(This,wszPKCS7,pbstrCert)
 728#define ICEnroll3_enumProviders(This,dwIndex,dwFlags,pbstrProvName) (This)->lpVtbl->enumProviders(This,dwIndex,dwFlags,pbstrProvName)
 729#define ICEnroll3_enumContainers(This,dwIndex,pbstr) (This)->lpVtbl->enumContainers(This,dwIndex,pbstr)
 730#define ICEnroll3_freeRequestInfo(This,PKCS7OrPKCS10) (This)->lpVtbl->freeRequestInfo(This,PKCS7OrPKCS10)
 731#define ICEnroll3_get_MyStoreName(This,pbstrName) (This)->lpVtbl->get_MyStoreName(This,pbstrName)
 732#define ICEnroll3_put_MyStoreName(This,bstrName) (This)->lpVtbl->put_MyStoreName(This,bstrName)
 733#define ICEnroll3_get_MyStoreType(This,pbstrType) (This)->lpVtbl->get_MyStoreType(This,pbstrType)
 734#define ICEnroll3_put_MyStoreType(This,bstrType) (This)->lpVtbl->put_MyStoreType(This,bstrType)
 735#define ICEnroll3_get_MyStoreFlags(This,pdwFlags) (This)->lpVtbl->get_MyStoreFlags(This,pdwFlags)
 736#define ICEnroll3_put_MyStoreFlags(This,dwFlags) (This)->lpVtbl->put_MyStoreFlags(This,dwFlags)
 737#define ICEnroll3_get_CAStoreName(This,pbstrName) (This)->lpVtbl->get_CAStoreName(This,pbstrName)
 738#define ICEnroll3_put_CAStoreName(This,bstrName) (This)->lpVtbl->put_CAStoreName(This,bstrName)
 739#define ICEnroll3_get_CAStoreType(This,pbstrType) (This)->lpVtbl->get_CAStoreType(This,pbstrType)
 740#define ICEnroll3_put_CAStoreType(This,bstrType) (This)->lpVtbl->put_CAStoreType(This,bstrType)
 741#define ICEnroll3_get_CAStoreFlags(This,pdwFlags) (This)->lpVtbl->get_CAStoreFlags(This,pdwFlags)
 742#define ICEnroll3_put_CAStoreFlags(This,dwFlags) (This)->lpVtbl->put_CAStoreFlags(This,dwFlags)
 743#define ICEnroll3_get_RootStoreName(This,pbstrName) (This)->lpVtbl->get_RootStoreName(This,pbstrName)
 744#define ICEnroll3_put_RootStoreName(This,bstrName) (This)->lpVtbl->put_RootStoreName(This,bstrName)
 745#define ICEnroll3_get_RootStoreType(This,pbstrType) (This)->lpVtbl->get_RootStoreType(This,pbstrType)
 746#define ICEnroll3_put_RootStoreType(This,bstrType) (This)->lpVtbl->put_RootStoreType(This,bstrType)
 747#define ICEnroll3_get_RootStoreFlags(This,pdwFlags) (This)->lpVtbl->get_RootStoreFlags(This,pdwFlags)
 748#define ICEnroll3_put_RootStoreFlags(This,dwFlags) (This)->lpVtbl->put_RootStoreFlags(This,dwFlags)
 749#define ICEnroll3_get_RequestStoreName(This,pbstrName) (This)->lpVtbl->get_RequestStoreName(This,pbstrName)
 750#define ICEnroll3_put_RequestStoreName(This,bstrName) (This)->lpVtbl->put_RequestStoreName(This,bstrName)
 751#define ICEnroll3_get_RequestStoreType(This,pbstrType) (This)->lpVtbl->get_RequestStoreType(This,pbstrType)
 752#define ICEnroll3_put_RequestStoreType(This,bstrType) (This)->lpVtbl->put_RequestStoreType(This,bstrType)
 753#define ICEnroll3_get_RequestStoreFlags(This,pdwFlags) (This)->lpVtbl->get_RequestStoreFlags(This,pdwFlags)
 754#define ICEnroll3_put_RequestStoreFlags(This,dwFlags) (This)->lpVtbl->put_RequestStoreFlags(This,dwFlags)
 755#define ICEnroll3_get_ContainerName(This,pbstrContainer) (This)->lpVtbl->get_ContainerName(This,pbstrContainer)
 756#define ICEnroll3_put_ContainerName(This,bstrContainer) (This)->lpVtbl->put_ContainerName(This,bstrContainer)
 757#define ICEnroll3_get_ProviderName(This,pbstrProvider) (This)->lpVtbl->get_ProviderName(This,pbstrProvider)
 758#define ICEnroll3_put_ProviderName(This,bstrProvider) (This)->lpVtbl->put_ProviderName(This,bstrProvider)
 759#define ICEnroll3_get_ProviderType(This,pdwType) (This)->lpVtbl->get_ProviderType(This,pdwType)
 760#define ICEnroll3_put_ProviderType(This,dwType) (This)->lpVtbl->put_ProviderType(This,dwType)
 761#define ICEnroll3_get_KeySpec(This,pdw) (This)->lpVtbl->get_KeySpec(This,pdw)
 762#define ICEnroll3_put_KeySpec(This,dw) (This)->lpVtbl->put_KeySpec(This,dw)
 763#define ICEnroll3_get_ProviderFlags(This,pdwFlags) (This)->lpVtbl->get_ProviderFlags(This,pdwFlags)
 764#define ICEnroll3_put_ProviderFlags(This,dwFlags) (This)->lpVtbl->put_ProviderFlags(This,dwFlags)
 765#define ICEnroll3_get_UseExistingKeySet(This,fUseExistingKeys) (This)->lpVtbl->get_UseExistingKeySet(This,fUseExistingKeys)
 766#define ICEnroll3_put_UseExistingKeySet(This,fUseExistingKeys) (This)->lpVtbl->put_UseExistingKeySet(This,fUseExistingKeys)
 767#define ICEnroll3_get_GenKeyFlags(This,pdwFlags) (This)->lpVtbl->get_GenKeyFlags(This,pdwFlags)
 768#define ICEnroll3_put_GenKeyFlags(This,dwFlags) (This)->lpVtbl->put_GenKeyFlags(This,dwFlags)
 769#define ICEnroll3_get_DeleteRequestCert(This,fDelete) (This)->lpVtbl->get_DeleteRequestCert(This,fDelete)
 770#define ICEnroll3_put_DeleteRequestCert(This,fDelete) (This)->lpVtbl->put_DeleteRequestCert(This,fDelete)
 771#define ICEnroll3_get_WriteCertToCSP(This,fBool) (This)->lpVtbl->get_WriteCertToCSP(This,fBool)
 772#define ICEnroll3_put_WriteCertToCSP(This,fBool) (This)->lpVtbl->put_WriteCertToCSP(This,fBool)
 773#define ICEnroll3_get_SPCFileName(This,pbstr) (This)->lpVtbl->get_SPCFileName(This,pbstr)
 774#define ICEnroll3_put_SPCFileName(This,bstr) (This)->lpVtbl->put_SPCFileName(This,bstr)
 775#define ICEnroll3_get_PVKFileName(This,pbstr) (This)->lpVtbl->get_PVKFileName(This,pbstr)
 776#define ICEnroll3_put_PVKFileName(This,bstr) (This)->lpVtbl->put_PVKFileName(This,bstr)
 777#define ICEnroll3_get_HashAlgorithm(This,pbstr) (This)->lpVtbl->get_HashAlgorithm(This,pbstr)
 778#define ICEnroll3_put_HashAlgorithm(This,bstr) (This)->lpVtbl->put_HashAlgorithm(This,bstr)
 779#define ICEnroll3_addCertTypeToRequest(This,CertType) (This)->lpVtbl->addCertTypeToRequest(This,CertType)
 780#define ICEnroll3_addNameValuePairToSignature(This,Name,Value) (This)->lpVtbl->addNameValuePairToSignature(This,Name,Value)
 781#define ICEnroll3_get_WriteCertToUserDS(This,fBool) (This)->lpVtbl->get_WriteCertToUserDS(This,fBool)
 782#define ICEnroll3_put_WriteCertToUserDS(This,fBool) (This)->lpVtbl->put_WriteCertToUserDS(This,fBool)
 783#define ICEnroll3_get_EnableT61DNEncoding(This,fBool) (This)->lpVtbl->get_EnableT61DNEncoding(This,fBool)
 784#define ICEnroll3_put_EnableT61DNEncoding(This,fBool) (This)->lpVtbl->put_EnableT61DNEncoding(This,fBool)
 785#define ICEnroll3_InstallPKCS7(This,PKCS7) (This)->lpVtbl->InstallPKCS7(This,PKCS7)
 786#define ICEnroll3_Reset(This) (This)->lpVtbl->Reset(This)
 787#define ICEnroll3_GetSupportedKeySpec(This,pdwKeySpec) (This)->lpVtbl->GetSupportedKeySpec(This,pdwKeySpec)
 788#define ICEnroll3_GetKeyLen(This,fMin,fExchange,pdwKeySize) (This)->lpVtbl->GetKeyLen(This,fMin,fExchange,pdwKeySize)
 789#define ICEnroll3_EnumAlgs(This,dwIndex,algClass,pdwAlgID) (This)->lpVtbl->EnumAlgs(This,dwIndex,algClass,pdwAlgID)
 790#define ICEnroll3_GetAlgName(This,algID,pbstr) (This)->lpVtbl->GetAlgName(This,algID,pbstr)
 791#define ICEnroll3_put_ReuseHardwareKeyIfUnableToGenNew(This,fReuseHardwareKeyIfUnableToGenNew) (This)->lpVtbl->put_ReuseHardwareKeyIfUnableToGenNew(This,fReuseHardwareKeyIfUnableToGenNew)
 792#define ICEnroll3_get_ReuseHardwareKeyIfUnableToGenNew(This,fReuseHardwareKeyIfUnableToGenNew) (This)->lpVtbl->get_ReuseHardwareKeyIfUnableToGenNew(This,fReuseHardwareKeyIfUnableToGenNew)
 793#define ICEnroll3_put_HashAlgID(This,hashAlgID) (This)->lpVtbl->put_HashAlgID(This,hashAlgID)
 794#define ICEnroll3_get_HashAlgID(This,hashAlgID) (This)->lpVtbl->get_HashAlgID(This,hashAlgID)
 795#define ICEnroll3_put_LimitExchangeKeyToEncipherment(This,fLimitExchangeKeyToEncipherment) (This)->lpVtbl->put_LimitExchangeKeyToEncipherment(This,fLimitExchangeKeyToEncipherment)
 796#define ICEnroll3_get_LimitExchangeKeyToEncipherment(This,fLimitExchangeKeyToEncipherment) (This)->lpVtbl->get_LimitExchangeKeyToEncipherment(This,fLimitExchangeKeyToEncipherment)
 797#define ICEnroll3_put_EnableSMIMECapabilities(This,fEnableSMIMECapabilities) (This)->lpVtbl->put_EnableSMIMECapabilities(This,fEnableSMIMECapabilities)
 798#define ICEnroll3_get_EnableSMIMECapabilities(This,fEnableSMIMECapabilities) (This)->lpVtbl->get_EnableSMIMECapabilities(This,fEnableSMIMECapabilities)
 799#endif
 800#endif
 801  HRESULT WINAPI ICEnroll3_InstallPKCS7_Proxy(ICEnroll3 *This,BSTR PKCS7);
 802  void __RPC_STUB ICEnroll3_InstallPKCS7_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 803  HRESULT WINAPI ICEnroll3_Reset_Proxy(ICEnroll3 *This);
 804  void __RPC_STUB ICEnroll3_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 805  HRESULT WINAPI ICEnroll3_GetSupportedKeySpec_Proxy(ICEnroll3 *This,LONG *pdwKeySpec);
 806  void __RPC_STUB ICEnroll3_GetSupportedKeySpec_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 807  HRESULT WINAPI ICEnroll3_GetKeyLen_Proxy(ICEnroll3 *This,WINBOOL fMin,WINBOOL fExchange,LONG *pdwKeySize);
 808  void __RPC_STUB ICEnroll3_GetKeyLen_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 809  HRESULT WINAPI ICEnroll3_EnumAlgs_Proxy(ICEnroll3 *This,LONG dwIndex,LONG algClass,LONG *pdwAlgID);
 810  void __RPC_STUB ICEnroll3_EnumAlgs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 811  HRESULT WINAPI ICEnroll3_GetAlgName_Proxy(ICEnroll3 *This,LONG algID,BSTR *pbstr);
 812  void __RPC_STUB ICEnroll3_GetAlgName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 813  HRESULT WINAPI ICEnroll3_put_ReuseHardwareKeyIfUnableToGenNew_Proxy(ICEnroll3 *This,WINBOOL fReuseHardwareKeyIfUnableToGenNew);
 814  void __RPC_STUB ICEnroll3_put_ReuseHardwareKeyIfUnableToGenNew_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 815  HRESULT WINAPI ICEnroll3_get_ReuseHardwareKeyIfUnableToGenNew_Proxy(ICEnroll3 *This,WINBOOL *fReuseHardwareKeyIfUnableToGenNew);
 816  void __RPC_STUB ICEnroll3_get_ReuseHardwareKeyIfUnableToGenNew_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 817  HRESULT WINAPI ICEnroll3_put_HashAlgID_Proxy(ICEnroll3 *This,LONG hashAlgID);
 818  void __RPC_STUB ICEnroll3_put_HashAlgID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 819  HRESULT WINAPI ICEnroll3_get_HashAlgID_Proxy(ICEnroll3 *This,LONG *hashAlgID);
 820  void __RPC_STUB ICEnroll3_get_HashAlgID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 821  HRESULT WINAPI ICEnroll3_put_LimitExchangeKeyToEncipherment_Proxy(ICEnroll3 *This,WINBOOL fLimitExchangeKeyToEncipherment);
 822  void __RPC_STUB ICEnroll3_put_LimitExchangeKeyToEncipherment_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 823  HRESULT WINAPI ICEnroll3_get_LimitExchangeKeyToEncipherment_Proxy(ICEnroll3 *This,WINBOOL *fLimitExchangeKeyToEncipherment);
 824  void __RPC_STUB ICEnroll3_get_LimitExchangeKeyToEncipherment_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 825  HRESULT WINAPI ICEnroll3_put_EnableSMIMECapabilities_Proxy(ICEnroll3 *This,WINBOOL fEnableSMIMECapabilities);
 826  void __RPC_STUB ICEnroll3_put_EnableSMIMECapabilities_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 827  HRESULT WINAPI ICEnroll3_get_EnableSMIMECapabilities_Proxy(ICEnroll3 *This,WINBOOL *fEnableSMIMECapabilities);
 828  void __RPC_STUB ICEnroll3_get_EnableSMIMECapabilities_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 829#endif
 830
 831#ifndef __ICEnroll4_INTERFACE_DEFINED__
 832#define __ICEnroll4_INTERFACE_DEFINED__
 833  extern const IID IID_ICEnroll4;
 834#if defined(__cplusplus) && !defined(CINTERFACE)
 835#ifdef __cplusplus
 836}
 837#endif
 838  struct ICEnroll4 : public ICEnroll3 {
 839  public:
 840    virtual HRESULT WINAPI put_PrivateKeyArchiveCertificate(BSTR bstrCert) = 0;
 841    virtual HRESULT WINAPI get_PrivateKeyArchiveCertificate(BSTR *pbstrCert) = 0;
 842    virtual HRESULT WINAPI put_ThumbPrint(BSTR bstrThumbPrint) = 0;
 843    virtual HRESULT WINAPI get_ThumbPrint(BSTR *pbstrThumbPrint) = 0;
 844    virtual HRESULT WINAPI binaryToString(LONG Flags,BSTR strBinary,BSTR *pstrEncoded) = 0;
 845    virtual HRESULT WINAPI stringToBinary(LONG Flags,BSTR strEncoded,BSTR *pstrBinary) = 0;
 846    virtual HRESULT WINAPI addExtensionToRequest(LONG Flags,BSTR strName,BSTR strValue) = 0;
 847    virtual HRESULT WINAPI addAttributeToRequest(LONG Flags,BSTR strName,BSTR strValue) = 0;
 848    virtual HRESULT WINAPI addNameValuePairToRequest(LONG Flags,BSTR strName,BSTR strValue) = 0;
 849    virtual HRESULT WINAPI resetExtensions(void) = 0;
 850    virtual HRESULT WINAPI resetAttributes(void) = 0;
 851    virtual HRESULT WINAPI createRequest(LONG Flags,BSTR strDNName,BSTR Usage,BSTR *pstrRequest) = 0;
 852    virtual HRESULT WINAPI createFileRequest(LONG Flags,BSTR strDNName,BSTR strUsage,BSTR strRequestFileName) = 0;
 853    virtual HRESULT WINAPI acceptResponse(BSTR strResponse) = 0;
 854    virtual HRESULT WINAPI acceptFileResponse(BSTR strResponseFileName) = 0;
 855    virtual HRESULT WINAPI getCertFromResponse(BSTR strResponse,BSTR *pstrCert) = 0;
 856    virtual HRESULT WINAPI getCertFromFileResponse(BSTR strResponseFileName,BSTR *pstrCert) = 0;
 857    virtual HRESULT WINAPI createPFX(BSTR strPassword,BSTR *pstrPFX) = 0;
 858    virtual HRESULT WINAPI createFilePFX(BSTR strPassword,BSTR strPFXFileName) = 0;
 859    virtual HRESULT WINAPI setPendingRequestInfo(LONG lRequestID,BSTR strCADNS,BSTR strCAName,BSTR strFriendlyName) = 0;
 860    virtual HRESULT WINAPI enumPendingRequest(LONG lIndex,LONG lDesiredProperty,VARIANT *pvarProperty) = 0;
 861    virtual HRESULT WINAPI removePendingRequest(BSTR strThumbprint) = 0;
 862    virtual HRESULT WINAPI GetKeyLenEx(LONG lSizeSpec,LONG lKeySpec,LONG *pdwKeySize) = 0;
 863    virtual HRESULT WINAPI InstallPKCS7Ex(BSTR PKCS7,LONG *plCertInstalled) = 0;
 864    virtual HRESULT WINAPI addCertTypeToRequestEx(LONG lType,BSTR bstrOIDOrName,LONG lMajorVersion,WINBOOL fMinorVersion,LONG lMinorVersion) = 0;
 865    virtual HRESULT WINAPI getProviderType(BSTR strProvName,LONG *plProvType) = 0;
 866    virtual HRESULT WINAPI put_SignerCertificate(BSTR bstrCert) = 0;
 867    virtual HRESULT WINAPI put_ClientId(LONG lClientId) = 0;
 868    virtual HRESULT WINAPI get_ClientId(LONG *plClientId) = 0;
 869    virtual HRESULT WINAPI addBlobPropertyToCertificate(LONG lPropertyId,LONG lReserved,BSTR bstrProperty) = 0;
 870    virtual HRESULT WINAPI resetBlobProperties(void) = 0;
 871    virtual HRESULT WINAPI put_IncludeSubjectKeyID(WINBOOL fInclude) = 0;
 872    virtual HRESULT WINAPI get_IncludeSubjectKeyID(WINBOOL *pfInclude) = 0;
 873  };
 874#ifdef __cplusplus
 875  extern "C" {
 876#endif
 877#else
 878  typedef struct ICEnroll4Vtbl {
 879    BEGIN_INTERFACE
 880      HRESULT (WINAPI *QueryInterface)(ICEnroll4 *This,REFIID riid,void **ppvObject);
 881      ULONG (WINAPI *AddRef)(ICEnroll4 *This);
 882      ULONG (WINAPI *Release)(ICEnroll4 *This);
 883      HRESULT (WINAPI *GetTypeInfoCount)(ICEnroll4 *This,UINT *pctinfo);
 884      HRESULT (WINAPI *GetTypeInfo)(ICEnroll4 *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
 885      HRESULT (WINAPI *GetIDsOfNames)(ICEnroll4 *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
 886      HRESULT (WINAPI *Invoke)(ICEnroll4 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
 887      HRESULT (WINAPI *createFilePKCS10)(ICEnroll4 *This,BSTR DNName,BSTR Usage,BSTR wszPKCS10FileName);
 888      HRESULT (WINAPI *acceptFilePKCS7)(ICEnroll4 *This,BSTR wszPKCS7FileName);
 889      HRESULT (WINAPI *createPKCS10)(ICEnroll4 *This,BSTR DNName,BSTR Usage,BSTR *pPKCS10);
 890      HRESULT (WINAPI *acceptPKCS7)(ICEnroll4 *This,BSTR PKCS7);
 891      HRESULT (WINAPI *getCertFromPKCS7)(ICEnroll4 *This,BSTR wszPKCS7,BSTR *pbstrCert);
 892      HRESULT (WINAPI *enumProviders)(ICEnroll4 *This,LONG dwIndex,LONG dwFlags,BSTR *pbstrProvName);
 893      HRESULT (WINAPI *enumContainers)(ICEnroll4 *This,LONG dwIndex,BSTR *pbstr);
 894      HRESULT (WINAPI *freeRequestInfo)(ICEnroll4 *This,BSTR PKCS7OrPKCS10);
 895      HRESULT (WINAPI *get_MyStoreName)(ICEnroll4 *This,BSTR *pbstrName);
 896      HRESULT (WINAPI *put_MyStoreName)(ICEnroll4 *This,BSTR bstrName);
 897      HRESULT (WINAPI *get_MyStoreType)(ICEnroll4 *This,BSTR *pbstrType);
 898      HRESULT (WINAPI *put_MyStoreType)(ICEnroll4 *This,BSTR bstrType);
 899      HRESULT (WINAPI *get_MyStoreFlags)(ICEnroll4 *This,LONG *pdwFlags);
 900      HRESULT (WINAPI *put_MyStoreFlags)(ICEnroll4 *This,LONG dwFlags);
 901      HRESULT (WINAPI *get_CAStoreName)(ICEnroll4 *This,BSTR *pbstrName);
 902      HRESULT (WINAPI *put_CAStoreName)(ICEnroll4 *This,BSTR bstrName);
 903      HRESULT (WINAPI *get_CAStoreType)(ICEnroll4 *This,BSTR *pbstrType);
 904      HRESULT (WINAPI *put_CAStoreType)(ICEnroll4 *This,BSTR bstrType);
 905      HRESULT (WINAPI *get_CAStoreFlags)(ICEnroll4 *This,LONG *pdwFlags);
 906      HRESULT (WINAPI *put_CAStoreFlags)(ICEnroll4 *This,LONG dwFlags);
 907      HRESULT (WINAPI *get_RootStoreName)(ICEnroll4 *This,BSTR *pbstrName);
 908      HRESULT (WINAPI *put_RootStoreName)(ICEnroll4 *This,BSTR bstrName);
 909      HRESULT (WINAPI *get_RootStoreType)(ICEnroll4 *This,BSTR *pbstrType);
 910      HRESULT (WINAPI *put_RootStoreType)(ICEnroll4 *This,BSTR bstrType);
 911      HRESULT (WINAPI *get_RootStoreFlags)(ICEnroll4 *This,LONG *pdwFlags);
 912      HRESULT (WINAPI *put_RootStoreFlags)(ICEnroll4 *This,LONG dwFlags);
 913      HRESULT (WINAPI *get_RequestStoreName)(ICEnroll4 *This,BSTR *pbstrName);
 914      HRESULT (WINAPI *put_RequestStoreName)(ICEnroll4 *This,BSTR bstrName);
 915      HRESULT (WINAPI *get_RequestStoreType)(ICEnroll4 *This,BSTR *pbstrType);
 916      HRESULT (WINAPI *put_RequestStoreType)(ICEnroll4 *This,BSTR bstrType);
 917      HRESULT (WINAPI *get_RequestStoreFlags)(ICEnroll4 *This,LONG *pdwFlags);
 918      HRESULT (WINAPI *put_RequestStoreFlags)(ICEnroll4 *This,LONG dwFlags);
 919      HRESULT (WINAPI *get_ContainerName)(ICEnroll4 *This,BSTR *pbstrContainer);
 920      HRESULT (WINAPI *put_ContainerName)(ICEnroll4 *This,BSTR bstrContainer);
 921      HRESULT (WINAPI *get_ProviderName)(ICEnroll4 *This,BSTR *pbstrProvider);
 922      HRESULT (WINAPI *put_ProviderName)(ICEnroll4 *This,BSTR bstrProvider);
 923      HRESULT (WINAPI *get_ProviderType)(ICEnroll4 *This,LONG *pdwType);
 924      HRESULT (WINAPI *put_ProviderType)(ICEnroll4 *This,LONG dwType);
 925      HRESULT (WINAPI *get_KeySpec)(ICEnroll4 *This,LONG *pdw);
 926      HRESULT (WINAPI *put_KeySpec)(ICEnroll4 *This,LONG dw);
 927      HRESULT (WINAPI *get_ProviderFlags)(ICEnroll4 *This,LONG *pdwFlags);
 928      HRESULT (WINAPI *put_ProviderFlags)(ICEnroll4 *This,LONG dwFlags);
 929      HRESULT (WINAPI *get_UseExistingKeySet)(ICEnroll4 *This,WINBOOL *fUseExistingKeys);
 930      HRESULT (WINAPI *put_UseExistingKeySet)(ICEnroll4 *This,WINBOOL fUseExistingKeys);
 931      HRESULT (WINAPI *get_GenKeyFlags)(ICEnroll4 *This,LONG *pdwFlags);
 932      HRESULT (WINAPI *put_GenKeyFlags)(ICEnroll4 *This,LONG dwFlags);
 933      HRESULT (WINAPI *get_DeleteRequestCert)(ICEnroll4 *This,WINBOOL *fDelete);
 934      HRESULT (WINAPI *put_DeleteRequestCert)(ICEnroll4 *This,WINBOOL fDelete);
 935      HRESULT (WINAPI *get_WriteCertToCSP)(ICEnroll4 *This,WINBOOL *fBool);
 936      HRESULT (WINAPI *put_WriteCertToCSP)(ICEnroll4 *This,WINBOOL fBool);
 937      HRESULT (WINAPI *get_SPCFileName)(ICEnroll4 *This,BSTR *pbstr);
 938      HRESULT (WINAPI *put_SPCFileName)(ICEnroll4 *This,BSTR bstr);
 939      HRESULT (WINAPI *get_PVKFileName)(ICEnroll4 *This,BSTR *pbstr);
 940      HRESULT (WINAPI *put_PVKFileName)(ICEnroll4 *This,BSTR bstr);
 941      HRESULT (WINAPI *get_HashAlgorithm)(ICEnroll4 *This,BSTR *pbstr);
 942      HRESULT (WINAPI *put_HashAlgorithm)(ICEnroll4 *This,BSTR bstr);
 943      HRESULT (WINAPI *addCertTypeToRequest)(ICEnroll4 *This,BSTR CertType);
 944      HRESULT (WINAPI *addNameValuePairToSignature)(ICEnroll4 *This,BSTR Name,BSTR Value);
 945      HRESULT (WINAPI *get_WriteCertToUserDS)(ICEnroll4 *This,WINBOOL *fBool);
 946      HRESULT (WINAPI *put_WriteCertToUserDS)(ICEnroll4 *This,WINBOOL fBool);
 947      HRESULT (WINAPI *get_EnableT61DNEncoding)(ICEnroll4 *This,WINBOOL *fBool);
 948      HRESULT (WINAPI *put_EnableT61DNEncoding)(ICEnroll4 *This,WINBOOL fBool);
 949      HRESULT (WINAPI *InstallPKCS7)(ICEnroll4 *This,BSTR PKCS7);
 950      HRESULT (WINAPI *Reset)(ICEnroll4 *This);
 951      HRESULT (WINAPI *GetSupportedKeySpec)(ICEnroll4 *This,LONG *pdwKeySpec);
 952      HRESULT (WINAPI *GetKeyLen)(ICEnroll4 *This,WINBOOL fMin,WINBOOL fExchange,LONG *pdwKeySize);
 953      HRESULT (WINAPI *EnumAlgs)(ICEnroll4 *This,LONG dwIndex,LONG algClass,LONG *pdwAlgID);
 954      HRESULT (WINAPI *GetAlgName)(ICEnroll4 *This,LONG algID,BSTR *pbstr);
 955      HRESULT (WINAPI *put_ReuseHardwareKeyIfUnableToGenNew)(ICEnroll4 *This,WINBOOL fReuseHardwareKeyIfUnableToGenNew);
 956      HRESULT (WINAPI *get_ReuseHardwareKeyIfUnableToGenNew)(ICEnroll4 *This,WINBOOL *fReuseHardwareKeyIfUnableToGenNew);
 957      HRESULT (WINAPI *put_HashAlgID)(ICEnroll4 *This,LONG hashAlgID);
 958      HRESULT (WINAPI *get_HashAlgID)(ICEnroll4 *This,LONG *hashAlgID);
 959      HRESULT (WINAPI *put_LimitExchangeKeyToEncipherment)(ICEnroll4 *This,WINBOOL fLimitExchangeKeyToEncipherment);
 960      HRESULT (WINAPI *get_LimitExchangeKeyToEncipherment)(ICEnroll4 *This,WINBOOL *fLimitExchangeKeyToEncipherment);
 961      HRESULT (WINAPI *put_EnableSMIMECapabilities)(ICEnroll4 *This,WINBOOL fEnableSMIMECapabilities);
 962      HRESULT (WINAPI *get_EnableSMIMECapabilities)(ICEnroll4 *This,WINBOOL *fEnableSMIMECapabilities);
 963      HRESULT (WINAPI *put_PrivateKeyArchiveCertificate)(ICEnroll4 *This,BSTR bstrCert);
 964      HRESULT (WINAPI *get_PrivateKeyArchiveCertificate)(ICEnroll4 *This,BSTR *pbstrCert);
 965      HRESULT (WINAPI *put_ThumbPrint)(ICEnroll4 *This,BSTR bstrThumbPrint);
 966      HRESULT (WINAPI *get_ThumbPrint)(ICEnroll4 *This,BSTR *pbstrThumbPrint);
 967      HRESULT (WINAPI *binaryToString)(ICEnroll4 *This,LONG Flags,BSTR strBinary,BSTR *pstrEncoded);
 968      HRESULT (WINAPI *stringToBinary)(ICEnroll4 *This,LONG Flags,BSTR strEncoded,BSTR *pstrBinary);
 969      HRESULT (WINAPI *addExtensionToRequest)(ICEnroll4 *This,LONG Flags,BSTR strName,BSTR strValue);
 970      HRESULT (WINAPI *addAttributeToRequest)(ICEnroll4 *This,LONG Flags,BSTR strName,BSTR strValue);
 971      HRESULT (WINAPI *addNameValuePairToRequest)(ICEnroll4 *This,LONG Flags,BSTR strName,BSTR strValue);
 972      HRESULT (WINAPI *resetExtensions)(ICEnroll4 *This);
 973      HRESULT (WINAPI *resetAttributes)(ICEnroll4 *This);
 974      HRESULT (WINAPI *createRequest)(ICEnroll4 *This,LONG Flags,BSTR strDNName,BSTR Usage,BSTR *pstrRequest);
 975      HRESULT (WINAPI *createFileRequest)(ICEnroll4 *This,LONG Flags,BSTR strDNName,BSTR strUsage,BSTR strRequestFileName);
 976      HRESULT (WINAPI *acceptResponse)(ICEnroll4 *This,BSTR strResponse);
 977      HRESULT (WINAPI *acceptFileResponse)(ICEnroll4 *This,BSTR strResponseFileName);
 978      HRESULT (WINAPI *getCertFromResponse)(ICEnroll4 *This,BSTR strResponse,BSTR *pstrCert);
 979      HRESULT (WINAPI *getCertFromFileResponse)(ICEnroll4 *This,BSTR strResponseFileName,BSTR *pstrCert);
 980      HRESULT (WINAPI *createPFX)(ICEnroll4 *This,BSTR strPassword,BSTR *pstrPFX);
 981      HRESULT (WINAPI *createFilePFX)(ICEnroll4 *This,BSTR strPassword,BSTR strPFXFileName);
 982      HRESULT (WINAPI *setPendingRequestInfo)(ICEnroll4 *This,LONG lRequestID,BSTR strCADNS,BSTR strCAName,BSTR strFriendlyName);
 983      HRESULT (WINAPI *enumPendingRequest)(ICEnroll4 *This,LONG lIndex,LONG lDesiredProperty,VARIANT *pvarProperty);
 984      HRESULT (WINAPI *removePendingRequest)(ICEnroll4 *This,BSTR strThumbprint);
 985      HRESULT (WINAPI *GetKeyLenEx)(ICEnroll4 *This,LONG lSizeSpec,LONG lKeySpec,LONG *pdwKeySize);
 986      HRESULT (WINAPI *InstallPKCS7Ex)(ICEnroll4 *This,BSTR PKCS7,LONG *plCertInstalled);
 987      HRESULT (WINAPI *addCertTypeToRequestEx)(ICEnroll4 *This,LONG lType,BSTR bstrOIDOrName,LONG lMajorVersion,WINBOOL fMinorVersion,LONG lMinorVersion);
 988      HRESULT (WINAPI *getProviderType)(ICEnroll4 *This,BSTR strProvName,LONG *plProvType);
 989      HRESULT (WINAPI *put_SignerCertificate)(ICEnroll4 *This,BSTR bstrCert);
 990      HRESULT (WINAPI *put_ClientId)(ICEnroll4 *This,LONG lClientId);
 991      HRESULT (WINAPI *get_ClientId)(ICEnroll4 *This,LONG *plClientId);
 992      HRESULT (WINAPI *addBlobPropertyToCertificate)(ICEnroll4 *This,LONG lPropertyId,LONG lReserved,BSTR bstrProperty);
 993      HRESULT (WINAPI *resetBlobProperties)(ICEnroll4 *This);
 994      HRESULT (WINAPI *put_IncludeSubjectKeyID)(ICEnroll4 *This,WINBOOL fInclude);
 995      HRESULT (WINAPI *get_IncludeSubjectKeyID)(ICEnroll4 *This,WINBOOL *pfInclude);
 996    END_INTERFACE
 997  } ICEnroll4Vtbl;
 998  struct ICEnroll4 {
 999    CONST_VTBL struct ICEnroll4Vtbl *lpVtbl;
1000  };
1001#ifdef COBJMACROS
1002#define ICEnroll4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1003#define ICEnroll4_AddRef(This) (This)->lpVtbl->AddRef(This)
1004#define ICEnroll4_Release(This) (This)->lpVtbl->Release(This)
1005#define ICEnroll4_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
1006#define ICEnroll4_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
1007#define ICEnroll4_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
1008#define ICEnroll4_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
1009#define ICEnroll4_createFilePKCS10(This,DNName,Usage,wszPKCS10FileName) (This)->lpVtbl->createFilePKCS10(This,DNName,Usage,wszPKCS10FileName)
1010#define ICEnroll4_acceptFilePKCS7(This,wszPKCS7FileName) (This)->lpVtbl->acceptFilePKCS7(This,wszPKCS7FileName)
1011#define ICEnroll4_createPKCS10(This,DNName,Usage,pPKCS10) (This)->lpVtbl->createPKCS10(This,DNName,Usage,pPKCS10)
1012#define ICEnroll4_acceptPKCS7(This,PKCS7) (This)->lpVtbl->acceptPKCS7(This,PKCS7)
1013#define ICEnroll4_getCertFromPKCS7(This,wszPKCS7,pbstrCert) (This)->lpVtbl->getCertFromPKCS7(This,wszPKCS7,pbstrCert)
1014#define ICEnroll4_enumProviders(This,dwIndex,dwFlags,pbstrProvName) (This)->lpVtbl->enumProviders(This,dwIndex,dwFlags,pbstrProvName)
1015#define ICEnroll4_enumContainers(This,dwIndex,pbstr) (This)->lpVtbl->enumContainers(This,dwIndex,pbstr)
1016#define ICEnroll4_freeRequestInfo(This,PKCS7OrPKCS10) (This)->lpVtbl->freeRequestInfo(This,PKCS7OrPKCS10)
1017#define ICEnroll4_get_MyStoreName(This,pbstrName) (This)->lpVtbl->get_MyStoreName(This,pbstrName)
1018#define ICEnroll4_put_MyStoreName(This,bstrName) (This)->lpVtbl->put_MyStoreName(This,bstrName)
1019#define ICEnroll4_get_MyStoreType(This,pbstrType) (This)->lpVtbl->get_MyStoreType(This,pbstrType)
1020#define ICEnroll4_put_MyStoreType(This,bstrType) (This)->lpVtbl->put_MyStoreType(This,bstrType)
1021#define ICEnroll4_get_MyStoreFlags(This,pdwFlags) (This)->lpVtbl->get_MyStoreFlags(This,pdwFlags)
1022#define ICEnroll4_put_MyStoreFlags(This,dwFlags) (This)->lpVtbl->put_MyStoreFlags(This,dwFlags)
1023#define ICEnroll4_get_CAStoreName(This,pbstrName) (This)->lpVtbl->get_CAStoreName(This,pbstrName)
1024#define ICEnroll4_put_CAStoreName(This,bstrName) (This)->lpVtbl->put_CAStoreName(This,bstrName)
1025#define ICEnroll4_get_CAStoreType(This,pbstrType) (This)->lpVtbl->get_CAStoreType(This,pbstrType)
1026#define ICEnroll4_put_CAStoreType(This,bstrType) (This)->lpVtbl->put_CAStoreType(This,bstrType)
1027#define ICEnroll4_get_CAStoreFlags(This,pdwFlags) (This)->lpVtbl->get_CAStoreFlags(This,pdwFlags)
1028#define ICEnroll4_put_CAStoreFlags(This,dwFlags) (This)->lpVtbl->put_CAStoreFlags(This,dwFlags)
1029#define ICEnroll4_get_RootStoreName(This,pbstrName) (This)->lpVtbl->get_RootStoreName(This,pbstrName)
1030#define ICEnroll4_put_RootStoreName(This,bstrName) (This)->lpVtbl->put_RootStoreName(This,bstrName)
1031#define ICEnroll4_get_RootStoreType(This,pbstrType) (This)->lpVtbl->get_RootStoreType(This,pbstrType)
1032#define ICEnroll4_put_RootStoreType(This,bstrType) (This)->lpVtbl->put_RootStoreType(This,bstrType)
1033#define ICEnroll4_get_RootStoreFlags(This,pdwFlags) (This)->lpVtbl->get_RootStoreFlags(This,pdwFlags)
1034#define ICEnroll4_put_RootStoreFlags(This,dwFlags) (This)->lpVtbl->put_RootStoreFlags(This,dwFlags)
1035#define ICEnroll4_get_RequestStoreName(This,pbstrName) (This)->lpVtbl->get_RequestStoreName(This,pbstrName)
1036#define ICEnroll4_put_RequestStoreName(This,bstrName) (This)->lpVtbl->put_RequestStoreName(This,bstrName)
1037#define ICEnroll4_get_RequestStoreType(This,pbstrType) (This)->lpVtbl->get_RequestStoreType(This,pbstrType)
1038#define ICEnroll4_put_RequestStoreType(This,bstrType) (This)->lpVtbl->put_RequestStoreType(This,bstrType)
1039#define ICEnroll4_get_RequestStoreFlags(This,pdwFlags) (This)->lpVtbl->get_RequestStoreFlags(This,pdwFlags)
1040#define ICEnroll4_put_RequestStoreFlags(This,dwFlags) (This)->lpVtbl->put_RequestStoreFlags(This,dwFlags)
1041#define ICEnroll4_get_ContainerName(This,pbstrContainer) (This)->lpVtbl->get_ContainerName(This,pbstrContainer)
1042#define ICEnroll4_put_ContainerName(This,bstrContainer) (This)->lpVtbl->put_ContainerName(This,bstrContainer)
1043#define ICEnroll4_get_ProviderName(This,pbstrProvider) (This)->lpVtbl->get_ProviderName(This,pbstrProvider)
1044#define ICEnroll4_put_ProviderName(This,bstrProvider) (This)->lpVtbl->put_ProviderName(This,bstrProvider)
1045#define ICEnroll4_get_ProviderType(This,pdwType) (This)->lpVtbl->get_ProviderType(This,pdwType)
1046#define ICEnroll4_put_ProviderType(This,dwType) (This)->lpVtbl->put_ProviderType(This,dwType)
1047#define ICEnroll4_get_KeySpec(This,pdw) (This)->lpVtbl->get_KeySpec(This,pdw)
1048#define ICEnroll4_put_KeySpec(This,dw) (This)->lpVtbl->put_KeySpec(This,dw)
1049#define ICEnroll4_get_ProviderFlags(This,pdwFlags) (This)->lpVtbl->get_ProviderFlags(This,pdwFlags)
1050#define ICEnroll4_put_ProviderFlags(This,dwFlags) (This)->lpVtbl->put_ProviderFlags(This,dwFlags)
1051#define ICEnroll4_get_UseExistingKeySet(This,fUseExistingKeys) (This)->lpVtbl->get_UseExistingKeySet(This,fUseExistingKeys)
1052#define ICEnroll4_put_UseExistingKeySet(This,fUseExistingKeys) (This)->lpVtbl->put_UseExistingKeySet(This,fUseExistingKeys)
1053#define ICEnroll4_get_GenKeyFlags(This,pdwFlags) (This)->lpVtbl->get_GenKeyFlags(This,pdwFlags)
1054#define ICEnroll4_put_GenKeyFlags(This,dwFlags) (This)->lpVtbl->put_GenKeyFlags(This,dwFlags)
1055#define ICEnroll4_get_DeleteRequestCert(This,fDelete) (This)->lpVtbl->get_DeleteRequestCert(This,fDelete)
1056#define ICEnroll4_put_DeleteRequestCert(This,fDelete) (This)->lpVtbl->put_DeleteRequestCert(This,fDelete)
1057#define ICEnroll4_get_WriteCertToCSP(This,fBool) (This)->lpVtbl->get_WriteCertToCSP(This,fBool)
1058#define ICEnroll4_put_WriteCertToCSP(This,fBool) (This)->lpVtbl->put_WriteCertToCSP(This,fBool)
1059#define ICEnroll4_get_SPCFileName(This,pbstr) (This)->lpVtbl->get_SPCFileName(This,pbstr)
1060#define ICEnroll4_put_SPCFileName(This,bstr) (This)->lpVtbl->put_SPCFileName(This,bstr)
1061#define ICEnroll4_get_PVKFileName(This,pbstr) (This)->lpVtbl->get_PVKFileName(This,pbstr)
1062#define ICEnroll4_put_PVKFileName(This,bstr) (This)->lpVtbl->put_PVKFileName(This,bstr)
1063#define ICEnroll4_get_HashAlgorithm(This,pbstr) (This)->lpVtbl->get_HashAlgorithm(This,pbstr)
1064#define ICEnroll4_put_HashAlgorithm(This,bstr) (This)->lpVtbl->put_HashAlgorithm(This,bstr)
1065#define ICEnroll4_addCertTypeToRequest(This,CertType) (This)->lpVtbl->addCertTypeToRequest(This,CertType)
1066#define ICEnroll4_addNameValuePairToSignature(This,Name,Value) (This)->lpVtbl->addNameValuePairToSignature(This,Name,Value)
1067#define ICEnroll4_get_WriteCertToUserDS(This,fBool) (This)->lpVtbl->get_WriteCertToUserDS(This,fBool)
1068#define ICEnroll4_put_WriteCertToUserDS(This,fBool) (This)->lpVtbl->put_WriteCertToUserDS(This,fBool)
1069#define ICEnroll4_get_EnableT61DNEncoding(This,fBool) (This)->lpVtbl->get_EnableT61DNEncoding(This,fBool)
1070#define ICEnroll4_put_EnableT61DNEncoding(This,fBool) (This)->lpVtbl->put_EnableT61DNEncoding(This,fBool)
1071#define ICEnroll4_InstallPKCS7(This,PKCS7) (This)->lpVtbl->InstallPKCS7(This,PKCS7)
1072#define ICEnroll4_Reset(This) (This)->lpVtbl->Reset(This)
1073#define ICEnroll4_GetSupportedKeySpec(This,pdwKeySpec) (This)->lpVtbl->GetSupportedKeySpec(This,pdwKeySpec)
1074#define ICEnroll4_GetKeyLen(This,fMin,fExchange,pdwKeySize) (This)->lpVtbl->GetKeyLen(This,fMin,fExchange,pdwKeySize)
1075#define ICEnroll4_EnumAlgs(This,dwIndex,algClass,pdwAlgID) (This)->lpVtbl->EnumAlgs(This,dwIndex,algClass,pdwAlgID)
1076#define ICEnroll4_GetAlgName(This,algID,pbstr) (This)->lpVtbl->GetAlgName(This,algID,pbstr)
1077#define ICEnroll4_put_ReuseHardwareKeyIfUnableToGenNew(This,fReuseHardwareKeyIfUnableToGenNew) (This)->lpVtbl->put_ReuseHardwareKeyIfUnableToGenNew(This,fReuseHardwareKeyIfUnableToGenNew)
1078#define ICEnroll4_get_ReuseHardwareKeyIfUnableToGenNew(This,fReuseHardwareKeyIfUnableToGenNew) (This)->lpVtbl->get_ReuseHardwareKeyIfUnableToGenNew(This,fReuseHardwareKeyIfUnableToGenNew)
1079#define ICEnroll4_put_HashAlgID(This,hashAlgID) (This)->lpVtbl->put_HashAlgID(This,hashAlgID)
1080#define ICEnroll4_get_HashAlgID(This,hashAlgID) (This)->lpVtbl->get_HashAlgID(This,hashAlgID)
1081#define ICEnroll4_put_LimitExchangeKeyToEncipherment(This,fLimitExchangeKeyToEncipherment) (This)->lpVtbl->put_LimitExchangeKeyToEncipherment(This,fLimitExchangeKeyToEncipherment)
1082#define ICEnroll4_get_LimitExchangeKeyToEncipherment(This,fLimitExchangeKeyToEncipherment) (This)->lpVtbl->get_LimitExchangeKeyToEncipherment(This,fLimitExchangeKeyToEncipherment)
1083#define ICEnroll4_put_EnableSMIMECapabilities(This,fEnableSMIMECapabilities) (This)->lpVtbl->put_EnableSMIMECapabilities(This,fEnableSMIMECapabilities)
1084#define ICEnroll4_get_EnableSMIMECapabilities(This,fEnableSMIMECapabilities) (This)->lpVtbl->get_EnableSMIMECapabilities(This,fEnableSMIMECapabilities)
1085#define ICEnroll4_put_PrivateKeyArchiveCertificate(This,bstrCert) (This)->lpVtbl->put_PrivateKeyArchiveCertificate(This,bstrCert)
1086#define ICEnroll4_get_PrivateKeyArchiveCertificate(This,pbstrCert) (This)->lpVtbl->get_PrivateKeyArchiveCertificate(This,pbstrCert)
1087#define ICEnroll4_put_ThumbPrint(This,bstrThumbPrint) (This)->lpVtbl->put_ThumbPrint(This,bstrThumbPrint)
1088#define ICEnroll4_get_ThumbPrint(This,pbstrThumbPrint) (This)->lpVtbl->get_ThumbPrint(This,pbstrThumbPrint)
1089#define ICEnroll4_binaryToString(This,Flags,strBinary,pstrEncoded) (This)->lpVtbl->binaryToString(This,Flags,strBinary,pstrEncoded)
1090#define ICEnroll4_stringToBinary(This,Flags,strEncoded,pstrBinary) (This)->lpVtbl->stringToBinary(This,Flags,strEncoded,pstrBinary)
1091#define ICEnroll4_addExtensionToRequest(This,Flags,strName,strValue) (This)->lpVtbl->addExtensionToRequest(This,Flags,strName,strValue)
1092#define ICEnroll4_addAttributeToRequest(This,Flags,strName,strValue) (This)->lpVtbl->addAttributeToRequest(This,Flags,strName,strValue)
1093#define ICEnroll4_addNameValuePairToRequest(This,Flags,strName,strValue) (This)->lpVtbl->addNameValuePairToRequest(This,Flags,strName,strValue)
1094#define ICEnroll4_resetExtensions(This) (This)->lpVtbl->resetExtensions(This)
1095#define ICEnroll4_resetAttributes(This) (This)->lpVtbl->resetAttributes(This)
1096#define ICEnroll4_createRequest(This,Flags,strDNName,Usage,pstrRequest) (This)->lpVtbl->createRequest(This,Flags,strDNName,Usage,pstrRequest)
1097#define ICEnroll4_createFileRequest(This,Flags,strDNName,strUsage,strRequestFileName) (This)->lpVtbl->createFileRequest(This,Flags,strDNName,strUsage,strRequestFileName)
1098#define ICEnroll4_acceptResponse(This,strResponse) (This)->lpVtbl->acceptResponse(This,strResponse)
1099#define ICEnroll4_acceptFileResponse(This,strResponseFileName) (This)->lpVtbl->acceptFileResponse(This,strResponseFileName)
1100#define ICEnroll4_getCertFromResponse(This,strResponse,pstrCert) (This)->lpVtbl->getCertFromResponse(This,strResponse,pstrCert)
1101#define ICEnroll4_getCertFromFileResponse(This,strResponseFileName,pstrCert) (This)->lpVtbl->getCertFromFileResponse(This,strResponseFileName,pstrCert)
1102#define ICEnroll4_createPFX(This,strPassword,pstrPFX) (This)->lpVtbl->createPFX(This,strPassword,pstrPFX)
1103#define ICEnroll4_createFilePFX(This,strPassword,strPFXFileName) (This)->lpVtbl->createFilePFX(This,strPassword,strPFXFileName)
1104#define ICEnroll4_setPendingRequestInfo(This,lRequestID,strCADNS,strCAName,strFriendlyName) (This)->lpVtbl->setPendingRequestInfo(This,lRequestID,strCADNS,strCAName,strFriendlyName)
1105#define ICEnroll4_enumPendingRequest(This,lIndex,lDesiredProperty,pvarProperty) (This)->lpVtbl->enumPendingRequest(This,lIndex,lDesiredProperty,pvarProperty)
1106#define ICEnroll4_removePendingRequest(This,strThumbprint) (This)->lpVtbl->removePendingRequest(This,strThumbprint)
1107#define ICEnroll4_GetKeyLenEx(This,lSizeSpec,lKeySpec,pdwKeySize) (This)->lpVtbl->GetKeyLenEx(This,lSizeSpec,lKeySpec,pdwKeySize)
1108#define ICEnroll4_InstallPKCS7Ex(This,PKCS7,plCertInstalled) (This)->lpVtbl->InstallPKCS7Ex(This,PKCS7,plCertInstalled)
1109#define ICEnroll4_addCertTypeToRequestEx(This,lType,bstrOIDOrName,lMajorVersion,fMinorVersion,lMinorVersion) (This)->lpVtbl->addCertTypeToRequestEx(This,lType,bstrOIDOrName,lMajorVersion,fMinorVersion,lMinorVersion)
1110#define ICEnroll4_getProviderType(This,strProvName,plProvType) (This)->lpVtbl->getProviderType(This,strProvName,plProvType)
1111#define ICEnroll4_put_SignerCertificate(This,bstrCert) (This)->lpVtbl->put_SignerCertificate(This,bstrCert)
1112#define ICEnroll4_put_ClientId(This,lClientId) (This)->lpVtbl->put_ClientId(This,lClientId)
1113#define ICEnroll4_get_ClientId(This,plClientId) (This)->lpVtbl->get_ClientId(This,plClientId)
1114#define ICEnroll4_addBlobPropertyToCertificate(This,lPropertyId,lReserved,bstrProperty) (This)->lpVtbl->addBlobPropertyToCertificate(This,lPropertyId,lReserved,bstrProperty)
1115#define ICEnroll4_resetBlobProperties(This) (This)->lpVtbl->resetBlobProperties(This)
1116#define ICEnroll4_put_IncludeSubjectKeyID(This,fInclude) (This)->lpVtbl->put_IncludeSubjectKeyID(This,fInclude)
1117#define ICEnroll4_get_IncludeSubjectKeyID(This,pfInclude) (This)->lpVtbl->get_IncludeSubjectKeyID(This,pfInclude)
1118#endif
1119#endif
1120  HRESULT WINAPI ICEnroll4_put_PrivateKeyArchiveCertificate_Proxy(ICEnroll4 *This,BSTR bstrCert);
1121  void __RPC_STUB ICEnroll4_put_PrivateKeyArchiveCertificate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1122  HRESULT WINAPI ICEnroll4_get_PrivateKeyArchiveCertificate_Proxy(ICEnroll4 *This,BSTR *pbstrCert);
1123  void __RPC_STUB ICEnroll4_get_PrivateKeyArchiveCertificate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1124  HRESULT WINAPI ICEnroll4_put_ThumbPrint_Proxy(ICEnroll4 *This,BSTR bstrThumbPrint);
1125  void __RPC_STUB ICEnroll4_put_ThumbPrint_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1126  HRESULT WINAPI ICEnroll4_get_ThumbPrint_Proxy(ICEnroll4 *This,BSTR *pbstrThumbPrint);
1127  void __RPC_STUB ICEnroll4_get_ThumbPrint_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1128  HRESULT WINAPI ICEnroll4_binaryToString_Proxy(ICEnroll4 *This,LONG Flags,BSTR strBinary,BSTR *pstrEncoded);
1129  void __RPC_STUB ICEnroll4_binaryToString_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1130  HRESULT WINAPI ICEnroll4_stringToBinary_Proxy(ICEnroll4 *This,LONG Flags,BSTR strEncoded,BSTR *pstrBinary);
1131  void __RPC_STUB ICEnroll4_stringToBinary_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1132  HRESULT WINAPI ICEnroll4_addExtensionToRequest_Proxy(ICEnroll4 *This,LONG Flags,BSTR strName,BSTR strValue);
1133  void __RPC_STUB ICEnroll4_addExtensionToRequest_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1134  HRESULT WINAPI ICEnroll4_addAttributeToRequest_Proxy(ICEnroll4 *This,LONG Flags,BSTR strName,BSTR strValue);
1135  void __RPC_STUB ICEnroll4_addAttributeToRequest_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1136  HRESULT WINAPI ICEnroll4_addNameValuePairToRequest_Proxy(ICEnroll4 *This,LONG Flags,BSTR strName,BSTR strValue);
1137  void __RPC_STUB ICEnroll4_addNameValuePairToRequest_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1138  HRESULT WINAPI ICEnroll4_resetExtensions_Proxy(ICEnroll4 *This);
1139  void __RPC_STUB ICEnroll4_resetExtensions_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1140  HRESULT WINAPI ICEnroll4_resetAttributes_Proxy(ICEnroll4 *This);
1141  void __RPC_STUB ICEnroll4_resetAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1142  HRESULT WINAPI ICEnroll4_createRequest_Proxy(ICEnroll4 *This,LONG Flags,BSTR strDNName,BSTR Usage,BSTR *pstrRequest);
1143  void __RPC_STUB ICEnroll4_createRequest_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1144  HRESULT WINAPI ICEnroll4_createFileRequest_Proxy(ICEnroll4 *This,LONG Flags,BSTR strDNName,BSTR strUsage,BSTR strRequestFileName);
1145  void __RPC_STUB ICEnroll4_createFileRequest_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1146  HRESULT WINAPI ICEnroll4_acceptResponse_Proxy(ICEnroll4 *This,BSTR strResponse);
1147  void __RPC_STUB ICEnroll4_acceptResponse_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1148  HRESULT WINAPI ICEnroll4_acceptFileResponse_Proxy(ICEnroll4 *This,BSTR strResponseFileName);
1149  void __RPC_STUB ICEnroll4_acceptFileResponse_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1150  HRESULT WINAPI ICEnroll4_getCertFromResponse_Proxy(ICEnroll4 *This,BSTR strResponse,BSTR *pstrCert);
1151  void __RPC_STUB ICEnroll4_getCertFromResponse_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1152  HRESULT WINAPI ICEnroll4_getCertFromFileResponse_Proxy(ICEnroll4 *This,BSTR strResponseFileName,BSTR *pstrCert);
1153  void __RPC_STUB ICEnroll4_getCertFromFileResponse_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1154  HRESULT WINAPI ICEnroll4_createPFX_Proxy(ICEnroll4 *This,BSTR strPassword,BSTR *pstrPFX);
1155  void __RPC_STUB ICEnroll4_createPFX_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1156  HRESULT WINAPI ICEnroll4_createFilePFX_Proxy(ICEnroll4 *This,BSTR strPassword,BSTR strPFXFileName);
1157  void __RPC_STUB ICEnroll4_createFilePFX_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1158  HRESULT WINAPI ICEnroll4_setPendingRequestInfo_Proxy(ICEnroll4 *This,LONG lRequestID,BSTR strCADNS,BSTR strCAName,BSTR strFriendlyName);
1159  void __RPC_STUB ICEnroll4_setPendingRequestInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1160  HRESULT WINAPI ICEnroll4_enumPendingRequest_Proxy(ICEnroll4 *This,LONG lIndex,LONG lDesiredProperty,VARIANT *pvarProperty);
1161  void __RPC_STUB ICEnroll4_enumPendingRequest_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1162  HRESULT WINAPI ICEnroll4_removePendingRequest_Proxy(ICEnroll4 *This,BSTR strThumbprint);
1163  void __RPC_STUB ICEnroll4_removePendingRequest_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1164  HRESULT WINAPI ICEnroll4_GetKeyLenEx_Proxy(ICEnroll4 *This,LONG lSizeSpec,LONG lKeySpec,LONG *pdwKeySize);
1165  void __RPC_STUB ICEnroll4_GetKeyLenEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1166  HRESULT WINAPI ICEnroll4_InstallPKCS7Ex_Proxy(ICEnroll4 *This,BSTR PKCS7,LONG *plCertInstalled);
1167  void __RPC_STUB ICEnroll4_InstallPKCS7Ex_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1168  HRESULT WINAPI ICEnroll4_addCertTypeToRequestEx_Proxy(ICEnroll4 *This,LONG lType,BSTR bstrOIDOrName,LONG lMajorVersion,WINBOOL fMinorVersion,LONG lMinorVersion);
1169  void __RPC_STUB ICEnroll4_addCertTypeToRequestEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1170  HRESULT WINAPI ICEnroll4_getProviderType_Proxy(ICEnroll4 *This,BSTR strProvName,LONG *plProvType);
1171  void __RPC_STUB ICEnroll4_getProviderType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1172  HRESULT WINAPI ICEnroll4_put_SignerCertificate_Proxy(ICEnroll4 *This,BSTR bstrCert);
1173  void __RPC_STUB ICEnroll4_put_SignerCertificate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1174  HRESULT WINAPI ICEnroll4_put_ClientId_Proxy(ICEnroll4 *This,LONG lClientId);
1175  void __RPC_STUB ICEnroll4_put_ClientId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1176  HRESULT WINAPI ICEnroll4_get_ClientId_Proxy(ICEnroll4 *This,LONG *plClientId);
1177  void __RPC_STUB ICEnroll4_get_ClientId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1178  HRESULT WINAPI ICEnroll4_addBlobPropertyToCertificate_Proxy(ICEnroll4 *This,LONG lPropertyId,LONG lReserved,BSTR bstrProperty);
1179  void __RPC_STUB ICEnroll4_addBlobPropertyToCertificate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1180  HRESULT WINAPI ICEnroll4_resetBlobProperties_Proxy(ICEnroll4 *This);
1181  void __RPC_STUB ICEnroll4_resetBlobProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1182  HRESULT WINAPI ICEnroll4_put_IncludeSubjectKeyID_Proxy(ICEnroll4 *This,WINBOOL fInclude);
1183  void __RPC_STUB ICEnroll4_put_IncludeSubjectKeyID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1184  HRESULT WINAPI ICEnroll4_get_IncludeSubjectKeyID_Proxy(ICEnroll4 *This,WINBOOL *pfInclude);
1185  void __RPC_STUB ICEnroll4_get_IncludeSubjectKeyID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1186#endif
1187
1188#ifndef __IEnroll_INTERFACE_DEFINED__
1189#define __IEnroll_INTERFACE_DEFINED__
1190  extern const IID IID_IEnroll;
1191#if defined(__cplusplus) && !defined(CINTERFACE)
1192#ifdef __cplusplus
1193}
1194#endif
1195  struct IEnroll : public IUnknown {
1196  public:
1197    virtual HRESULT WINAPI createFilePKCS10WStr(LPCWSTR DNName,LPCWSTR Usage,LPCWSTR wszPKCS10FileName) = 0;
1198    virtual HRESULT WINAPI acceptFilePKCS7WStr(LPCWSTR wszPKCS7FileName) = 0;
1199    virtual HRESULT WINAPI createPKCS10WStr(LPCWSTR DNName,LPCWSTR Usage,PCRYPT_DATA_BLOB pPkcs10Blob) = 0;
1200    virtual HRESULT WINAPI acceptPKCS7Blob(PCRYPT_DATA_BLOB pBlobPKCS7) = 0;
1201    virtual PCCERT_CONTEXT WINAPI getCertContextFromPKCS7(PCRYPT_DATA_BLOB pBlobPKCS7) = 0;
1202    virtual HCERTSTORE WINAPI getMyStore(void) = 0;
1203    virtual HCERTSTORE WINAPI getCAStore(void) = 0;
1204    virtual HCERTSTORE WINAPI getROOTHStore(void) = 0;
1205    virtual HRESULT WINAPI enumProvidersWStr(LONG dwIndex,LONG dwFlags,LPWSTR *pbstrProvName) = 0;
1206    virtual HRESULT WINAPI enumContainersWStr(LONG dwIndex,LPWSTR *pbstr) = 0;
1207    virtual HRESULT WINAPI freeRequestInfoBlob(CRYPT_DATA_BLOB pkcs7OrPkcs10) = 0;
1208    virtual HRESULT WINAPI get_MyStoreNameWStr(LPWSTR *szwName) = 0;
1209    virtual HRESULT WINAPI put_MyStoreNameWStr(LPWSTR szwName) = 0;
1210    virtual HRESULT WINAPI get_MyStoreTypeWStr(LPWSTR *szwType) = 0;
1211    virtual HRESULT WINAPI put_MyStoreTypeWStr(LPWSTR szwType) = 0;
1212    virtual HRESULT WINAPI get_MyStoreFlags(LONG *pdwFlags) = 0;
1213    virtual HRESULT WINAPI put_MyStoreFlags(LONG dwFlags) = 0;
1214    virtual HRESULT WINAPI get_CAStoreNameWStr(LPWSTR *szwName) = 0;
1215    virtual HRESULT WINAPI put_CAStoreNameWStr(LPWSTR szwName) = 0;
1216    virtual HRESULT WINAPI get_CAStoreTypeWStr(LPWSTR *szwType) = 0;
1217    virtual HRESULT WINAPI put_CAStoreTypeWStr(LPWSTR szwType) = 0;
1218    virtual HRESULT WINAPI get_CAStoreFlags(LONG *pdwFlags) = 0;
1219    virtual HRESULT WINAPI put_CAStoreFlags(LONG dwFlags) = 0;
1220    virtual HRESULT WINAPI get_RootStoreNameWStr(LPWSTR *szwName) = 0;
1221    virtual HRESULT WINAPI put_RootStoreNameWStr(LPWSTR szwName) = 0;
1222    virtual HRESULT WINAPI get_RootStoreTypeWStr(LPWSTR *szwType) = 0;
1223    virtual HRESULT WINAPI put_RootStoreTypeWStr(LPWSTR szwType) = 0;
1224    virtual HRESULT WINAPI get_RootStoreFlags(LONG *pdwFlags) = 0;
1225    virtual HRESULT WINAPI put_RootStoreFlags(LONG dwFlags) = 0;
1226    virtual HRESULT WINAPI get_RequestStoreNameWStr(LPWSTR *szwName) = 0;
1227    virtual HRESULT WINAPI put_RequestStoreNameWStr(LPWSTR szwName) = 0;
1228    virtual HRESULT WINAPI get_RequestStoreTypeWStr(LPWSTR *szwType) = 0;
1229    virtual HRESULT WINAPI put_RequestStoreTypeWStr(LPWSTR szwType) = 0;
1230    virtual HRESULT WINAPI get_RequestStoreFlags(LONG *pdwFlags) = 0;
1231    virtual HRESULT WINAPI put_RequestStoreFlags(LONG dwFlags) = 0;
1232    virtual HRESULT WINAPI get_ContainerNameWStr(LPWSTR *szwContainer) = 0;
1233    virtual HRESULT WINAPI put_ContainerNameWStr(LPWSTR szwContainer) = 0;
1234    virtual HRESULT WINAPI get_ProviderNameWStr(LPWSTR *szwProvider) = 0;
1235    virtual HRESULT WINAPI put_ProviderNameWStr(LPWSTR szwProvider) = 0;
1236    virtual HRESULT WINAPI get_ProviderType(LONG *pdwType) = 0;
1237    virtual HRESULT WINAPI put_ProviderType(LONG dwType) = 0;
1238    virtual HRESULT WINAPI get_KeySpec(LONG *pdw) = 0;
1239    virtual HRESULT WINAPI put_KeySpec(LONG dw) = 0;
1240    virtual HRESULT WINAPI get_ProviderFlags(LONG *pdwFlags) = 0;
1241    virtual HRESULT WINAPI put_ProviderFlags(LONG dwFlags) = 0;
1242    virtual HRESULT WINAPI get_UseExistingKeySet(WINBOOL *fUseExistingKeys) = 0;
1243    virtual HRESULT WINAPI put_UseExistingKeySet(WINBOOL fUseExistingKeys) = 0;
1244    virtual HRESULT WINAPI get_GenKeyFlags(LONG *pdwFlags) = 0;
1245    virtual HRESULT WINAPI put_GenKeyFlags(LONG dwFlags) = 0;
1246    virtual HRESULT WINAPI get_DeleteRequestCert(WINBOOL *fDelete) = 0;
1247    virtual HRESULT WINAPI put_DeleteRequestCert(WINBOOL fDelete) = 0;
1248    virtual HRESULT WINAPI get_WriteCertToUserDS(WINBOOL *fBool) = 0;
1249    virtual HRESULT WINAPI put_WriteCertToUserDS(WINBOOL fBool) = 0;
1250    virtual HRESULT WINAPI get_EnableT61DNEncoding(WINBOOL *fBool) = 0;
1251    virtual HRESULT WINAPI put_EnableT61DNEncoding(WINBOOL fBool) = 0;
1252    virtual HRESULT WINAPI get_WriteCertToCSP(WINBOOL *fBool) = 0;
1253    virtual HRESULT WINAPI put_WriteCertToCSP(WINBOOL fBool) = 0;
1254    virtual HRESULT WINAPI get_SPCFileNameWStr(LPWSTR *szw) = 0;
1255    virtual HRESULT WINAPI put_SPCFileNameWStr(LPWSTR szw) = 0;
1256    virtual HRESULT WINAPI get_PVKFileNameWStr(LPWSTR *szw) = 0;
1257    virtual HRESULT WINAPI put_PVKFileNameWStr(LPWSTR szw) = 0;
1258    virtual HRESULT WINAPI get_HashAlgorithmWStr(LPWSTR *szw) = 0;
1259    virtual HRESULT WINAPI put_HashAlgorithmWStr(LPWSTR szw) = 0;
1260    virtual HRESULT WINAPI get_RenewalCertificate(PCCERT_CONTEXT *ppCertContext) = 0;
1261    virtual HRESULT WINAPI put_RenewalCertificate(PCCERT_CONTEXT pCertContext) = 0;
1262    virtual HRESULT WINAPI AddCertTypeToRequestWStr(LPWSTR szw) = 0;
1263    virtual HRESULT WINAPI AddNameValuePairToSignatureWStr(LPWSTR Name,LPWSTR Value) = 0;
1264    virtual HRESULT WINAPI AddExtensionsToRequest(PCERT_EXTENSIONS pCertExtensions) = 0;
1265    virtual HRESULT WINAPI AddAuthenticatedAttributesToPKCS7Request(PCRYPT_ATTRIBUTES pAttributes) = 0;
1266    virtual HRESULT WINAPI CreatePKCS7RequestFromRequest(PCRYPT_DATA_BLOB pRequest,PCCERT_CONTEXT pSigningCertContext,PCRYPT_DATA_BLOB pPkcs7Blob) = 0;
1267  };
1268#ifdef __cplusplus
1269  extern "C" {
1270#endif
1271#else
1272  typedef struct IEnrollVtbl {
1273    BEGIN_INTERFACE
1274      HRESULT (WINAPI *QueryInterface)(IEnroll *This,REFIID riid,void **ppvObject);
1275      ULONG (WINAPI *AddRef)(IEnroll *This);
1276      ULONG (WINAPI *Release)(IEnroll *This);
1277      HRESULT (WINAPI *createFilePKCS10WStr)(IEnroll *This,LPCWSTR DNName,LPCWSTR Usage,LPCWSTR wszPKCS10FileName);
1278      HRESULT (WINAPI *acceptFilePKCS7WStr)(IEnroll *This,LPCWSTR wszPKCS7FileName);
1279      HRESULT (WINAPI *createPKCS10WStr)(IEnroll *This,LPCWSTR DNName,LPCWSTR Usage,PCRYPT_DATA_BLOB pPkcs10Blob);
1280      HRESULT (WINAPI *acceptPKCS7Blob)(IEnroll *This,PCRYPT_DATA_BLOB pBlobPKCS7);
1281      PCCERT_CONTEXT (WINAPI *getCertContextFromPKCS7)(IEnroll *This,PCRYPT_DATA_BLOB pBlobPKCS7);
1282      HCERTSTORE (WINAPI *getMyStore)(IEnroll *This);
1283      HCERTSTORE (WINAPI *getCAStore)(IEnroll *This);
1284      HCERTSTORE (WINAPI *getROOTHStore)(IEnroll *This);
1285      HRESULT (WINAPI *enumProvidersWStr)(IEnroll *This,LONG dwIndex,LONG dwFlags,LPWSTR *pbstrProvName);
1286      HRESULT (WINAPI *enumContainersWStr)(IEnroll *This,LONG dwIndex,LPWSTR *pbstr);
1287      HRESULT (WINAPI *freeRequestInfoBlob)(IEnroll *This,CRYPT_DATA_BLOB pkcs7OrPkcs10);
1288      HRESULT (WINAPI *get_MyStoreNameWStr)(IEnroll *This,LPWSTR *szwName);
1289      HRESULT (WINAPI *put_MyStoreNameWStr)(IEnroll *This,LPWSTR szwName);
1290      HRESULT (WINAPI *get_MyStoreTypeWStr)(IEnroll *This,LPWSTR *szwType);
1291      HRESULT (WINAPI *put_MyStoreTypeWStr)(IEnroll *This,LPWSTR szwType);
1292      HRESULT (WINAPI *get_MyStoreFlags)(IEnroll *This,LONG *pdwFlags);
1293      HRESULT (WINAPI *put_MyStoreFlags)(IEnroll *This,LONG dwFlags);
1294      HRESULT (WINAPI *get_CAStoreNameWStr)(IEnroll *This,LPWSTR *szwName);
1295      HRESULT (WINAPI *put_CAStoreNameWStr)(IEnroll *This,LPWSTR szwName);
1296      HRESULT (WINAPI *get_CAStoreTypeWStr)(IEnroll *This,LPWSTR *szwType);
1297      HRESULT (WINAPI *put_CAStoreTypeWStr)(IEnroll *This,LPWSTR szwType);
1298      HRESULT (WINAPI *get_CAStoreFlags)(IEnroll *This,LONG *pdwFlags);
1299      HRESULT (WINAPI *put_CAStoreFlags)(IEnroll *This,LONG dwFlags);
1300      HRESULT (WINAPI *get_RootStoreNameWStr)(IEnroll *This,LPWSTR *szwName);
1301      HRESULT (WINAPI *put_RootStoreNameWStr)(IEnroll *This,LPWSTR szwName);
1302      HRESULT (WINAPI *get_RootStoreTypeWStr)(IEnroll *This,LPWSTR *szwType);
1303      HRESULT (WINAPI *put_RootStoreTypeWStr)(IEnroll *This,LPWSTR szwType);
1304      HRESULT (WINAPI *get_RootStoreFlags)(IEnroll *This,LONG *pdwFlags);
1305      HRESULT (WINAPI *put_RootStoreFlags)(IEnroll *This,LONG dwFlags);
1306      HRESULT (WINAPI *get_RequestStoreNameWStr)(IEnroll *This,LPWSTR *szwName);
1307      HRESULT (WINAPI *put_RequestStoreNameWStr)(IEnroll *This,LPWSTR szwName);
1308      HRESULT (WINAPI *get_RequestStoreTypeWStr)(IEnroll *This,LPWSTR *szwType);
1309      HRESULT (WINAPI *put_RequestStoreTypeWStr)(IEnroll *This,LPWSTR szwType);
1310      HRESULT (WINAPI *get_RequestStoreFlags)(IEnroll *This,LONG *pdwFlags);
1311      HRESULT (WINAPI *put_RequestStoreFlags)(IEnroll *This,LONG dwFlags);
1312      HRESULT (WINAPI *get_ContainerNameWStr)(IEnroll *This,LPWSTR *szwContainer);
1313      HRESULT (WINAPI *put_ContainerNameWStr)(IEnroll *This,LPWSTR szwContainer);
1314      HRESULT (WINAPI *get_ProviderNameWStr)(IEnroll *This,LPWSTR *szwProvider);
1315      HRESULT (WINAPI *put_ProviderNameWStr)(IEnroll *This,LPWSTR szwProvider);
1316      HRESULT (WINAPI *get_ProviderType)(IEnroll *This,LONG *pdwType);
1317      HRESULT (WINAPI *put_ProviderType)(IEnroll *This,LONG dwType);
1318      HRESULT (WINAPI *get_KeySpec)(IEnroll *This,LONG *pdw);
1319      HRESULT (WINAPI *put_KeySpec)(IEnroll *This,LONG dw);
1320      HRESULT (WINAPI *get_ProviderFlags)(IEnroll *This,LONG *pdwFlags);
1321      HRESULT (WINAPI *put_ProviderFlags)(IEnroll *This,LONG dwFlags);
1322      HRESULT (WINAPI *get_UseExistingKeySet)(IEnroll *This,WINBOOL *fUseExistingKeys);
1323      HRESULT (WINAPI *put_UseExistingKeySet)(IEnroll *This,WINBOOL fUseExistingKeys);
1324      HRESULT (WINAPI *get_GenKeyFlags)(IEnroll *This,LONG *pdwFlags);
1325      HRESULT (WINAPI *put_GenKeyFlags)(IEnroll *This,LONG dwFlags);
1326      HRESULT (WINAPI *get_DeleteRequestCert)(IEnroll *This,WINBOOL *fDelete);
1327      HRESULT (WINAPI *put_DeleteRequestCert)(IEnroll *This,WINBOOL fDelete);
1328      HRESULT (WINAPI *get_WriteCertToUserDS)(IEnroll *This,WINBOOL *fBool);
1329      HRESULT (WINAPI *put_WriteCertToUserDS)(IEnroll *This,WINBOOL fBool);
1330      HRESULT (WINAPI *get_EnableT61DNEncoding)(IEnroll *This,WINBOOL *fBool);
1331      HRESULT (WINAPI *put_EnableT61DNEncoding)(IEnroll *This,WINBOOL fBool);
1332      HRESULT (WINAPI *get_WriteCertToCSP)(IEnroll *This,WINBOOL *fBool);
1333      HRESULT (WINAPI *put_WriteCertToCSP)(IEnroll *This,WINBOOL fBool);
1334      HRESULT (WINAPI *get_SPCFileNameWStr)(IEnroll *This,LPWSTR *szw);
1335      HRESULT (WINAPI *put_SPCFileNameWStr)(IEnroll *This,LPWSTR szw);
1336      HRESULT (WINAPI *get_PVKFileNameWStr)(IEnroll *This,LPWSTR *szw);
1337      HRESULT (WINAPI *put_PVKFileNameWStr)(IEnroll *This,LPWSTR szw);
1338      HRESULT (WINAPI *get_HashAlgorithmWStr)(IEnroll *This,LPWSTR *szw);
1339      HRESULT (WINAPI *put_HashAlgorithmWStr)(IEnroll *This,LPWSTR szw);
1340      HRESULT (WINAPI *get_RenewalCertificate)(IEnroll *This,PCCERT_CONTEXT *ppCertContext);
1341      HRESULT (WINAPI *put_RenewalCertificate)(IEnroll *This,PCCERT_CONTEXT pCertContext);
1342      HRESULT (WINAPI *AddCertTypeToRequestWStr)(IEnroll *This,LPWSTR szw);
1343      HRESULT (WINAPI *AddNameValuePairToSignatureWStr)(IEnroll *This,LPWSTR Name,LPWSTR Value);
1344      HRESULT (WINAPI *AddExtensionsToRequest)(IEnroll *This,PCERT_EXTENSIONS pCertExtensions);
1345      HRESULT (WINAPI *AddAuthenticatedAttributesToPKCS7Request)(IEnroll *This,PCRYPT_ATTRIBUTES pAttributes);
1346      HRESULT (WINAPI *CreatePKCS7RequestFromRequest)(IEnroll *This,PCRYPT_DATA_BLOB pRequest,PCCERT_CONTEXT pSigningCertContext,PCRYPT_DATA_BLOB pPkcs7Blob);
1347    END_INTERFACE
1348  } IEnrollVtbl;
1349  struct IEnroll {
1350    CONST_VTBL struct IEnrollVtbl *lpVtbl;
1351  };
1352#ifdef COBJMACROS
1353#define IEnroll_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1354#define IEnroll_AddRef(This) (This)->lpVtbl->AddRef(This)
1355#define IEnroll_Release(This) (This)->lpVtbl->Release(This)
1356#define IEnroll_createFilePKCS10WStr(This,DNName,Usage,wszPKCS10FileName) (This)->lpVtbl->createFilePKCS10WStr(This,DNName,Usage,wszPKCS10FileName)
1357#define IEnroll_acceptFilePKCS7WStr(This,wszPKCS7FileName) (This)->lpVtbl->acceptFilePKCS7WStr(This,wszPKCS7FileName)
1358#define IEnroll_createPKCS10WStr(This,DNName,Usage,pPkcs10Blob) (This)->lpVtbl->createPKCS10WStr(This,DNName,Usage,pPkcs10Blob)
1359#define IEnroll_acceptPKCS7Blob(This,pBlobPKCS7) (This)->lpVtbl->acceptPKCS7Blob(This,pBlobPKCS7)
1360#define IEnroll_getCertContextFromPKCS7(This,pBlobPKCS7) (This)->lpVtbl->getCertContextFromPKCS7(This,pBlobPKCS7)
1361#define IEnroll_getMyStore(This) (This)->lpVtbl->getMyStore(This)
1362#define IEnroll_getCAStore(This) (This)->lpVtbl->getCAStore(This)
1363#define IEnroll_getROOTHStore(This) (This)->lpVtbl->getROOTHStore(This)
1364#define IEnroll_enumProvidersWStr(This,dwIndex,dwFlags,pbstrProvName) (This)->lpVtbl->enumProvidersWStr(This,dwIndex,dwFlags,pbstrProvName)
1365#define IEnroll_enumContainersWStr(This,dwIndex,pbstr) (This)->lpVtbl->enumContainersWStr(This,dwIndex,pbstr)
1366#define IEnroll_freeRequestInfoBlob(This,pkcs7OrPkcs10) (This)->lpVtbl->freeRequestInfoBlob(This,pkcs7OrPkcs10)
1367#define IEnroll_get_MyStoreNameWStr(This,szwName) (This)->lpVtbl->get_MyStoreNameWStr(This,szwName)
1368#define IEnroll_put_MyStoreNameWStr(This,szwName) (This)->lpVtbl->put_MyStoreNameWStr(This,szwName)
1369#define IEnroll_get_MyStoreTypeWStr(This,szwType) (This)->lpVtbl->get_MyStoreTypeWStr(This,szwType)
1370#define IEnroll_put_MyStoreTypeWStr(This,szwType) (This)->lpVtbl->put_MyStoreTypeWStr(This,szwType)
1371#define IEnroll_get_MyStoreFlags(This,pdwFlags) (This)->lpVtbl->get_MyStoreFlags(This,pdwFlags)
1372#define IEnroll_put_MyStoreFlags(This,dwFlags) (This)->lpVtbl->put_MyStoreFlags(This,dwFlags)
1373#define IEnroll_get_CAStoreNameWStr(This,szwName) (This)->lpVtbl->get_CAStoreNameWStr(This,szwName)
1374#define IEnroll_put_CAStoreNameWStr(This,szwName) (This)->lpVtbl->put_CAStoreNameWStr(This,szwName)
1375#define IEnroll_get_CAStoreTypeWStr(This,szwType) (This)->lpVtbl->get_CAStoreTypeWStr(This,szwType)
1376#define IEnroll_put_CAStoreTypeWStr(This,szwType) (This)->lpVtbl->put_CAStoreTypeWStr(This,szwType)
1377#define IEnroll_get_CAStoreFlags(This,pdwFlags) (This)->lpVtbl->get_CAStoreFlags(This,pdwFlags)
1378#define IEnroll_put_CAStoreFlags(This,dwFlags) (This)->lpVtbl->put_CAStoreFlags(This,dwFlags)
1379#define IEnroll_get_RootStoreNameWStr(This,szwName) (This)->lpVtbl->get_RootStoreNameWStr(This,szwName)
1380#define IEnroll_put_RootStoreNameWStr(This,szwName) (This)->lpVtbl->put_RootStoreNameWStr(This,szwName)
1381#define IEnroll_get_RootStoreTypeWStr(This,szwType) (This)->lpVtbl->get_RootStoreTypeWStr(This,szwType)
1382#define IEnroll_put_RootStoreTypeWStr(This,szwType) (This)->lpVtbl->put_RootStoreTypeWStr(This,szwType)
1383#define IEnroll_get_RootStoreFlags(This,pdwFlags) (This)->lpVtbl->get_RootStoreFlags(This,pdwFlags)
1384#define IEnroll_put_RootStoreFlags(This,dwFlags) (This)->lpVtbl->put_RootStoreFlags(This,dwFlags)
1385#define IEnroll_get_RequestStoreNameWStr(This,szwName) (This)->lpVtbl->get_RequestStoreNameWStr(This,szwName)
1386#define IEnroll_put_RequestStoreNameWStr(This,szwName) (This)->lpVtbl->put_RequestStoreNameWStr(This,szwName)
1387#define IEnroll_get_RequestStoreTypeWStr(This,szwType) (This)->lpVtbl->get_RequestStoreTypeWStr(This,szwType)
1388#define IEnroll_put_RequestStoreTypeWStr(This,szwType) (This)->lpVtbl->put_RequestStoreTypeWStr(This,szwType)
1389#define IEnroll_get_RequestStoreFlags(This,pdwFlags) (This)->lpVtbl->get_RequestStoreFlags(This,pdwFlags)
1390#define IEnroll_put_RequestStoreFlags(This,dwFlags) (This)->lpVtbl->put_RequestStoreFlags(This,dwFlags)
1391#define IEnroll_get_ContainerNameWStr(This,szwContainer) (This)->lpVtbl->get_ContainerNameWStr(This,szwContainer)
1392#define IEnroll_put_ContainerNameWStr(This,szwContainer) (This)->lpVtbl->put_ContainerNameWStr(This,szwContainer)
1393#define IEnroll_get_ProviderNameWStr(This,szwProvider) (This)->lpVtbl->get_ProviderNameWStr(This,szwProvider)
1394#define IEnroll_put_ProviderNameWStr(This,szwProvider) (This)->lpVtbl->put_ProviderNameWStr(This,szwProvider)
1395#define IEnroll_get_ProviderType(This,pdwType) (This)->lpVtbl->get_ProviderType(This,pdwType)
1396#define IEnroll_put_ProviderType(This,dwType) (This)->lpVtbl->put_ProviderType(This,dwType)
1397#define IEnroll_get_KeySpec(This,pdw) (This)->lpVtbl->get_KeySpec(This,pdw)
1398#define IEnroll_put_KeySpec(This,dw) (This)->lpVtbl->put_KeySpec(This,dw)
1399#define IEnroll_get_ProviderFlags(This,pdwFlags) (This)->lpVtbl->get_ProviderFlags(This,pdwFlags)
1400#define IEnroll_put_ProviderFlags(This,dwFlags) (This)->lpVtbl->put_ProviderFlags(This,dwFlags)
1401#define IEnroll_get_UseExistingKeySet(This,fUseExistingKeys) (This)->lpVtbl->get_UseExistingKeySet(This,fUseExistingKeys)
1402#define IEnroll_put_UseExistingKeySet(This,fUseExistingKeys) (This)->lpVtbl->put_UseExistingKeySet(This,fUseExistingKeys)
1403#define IEnroll_get_GenKeyFlags(This,pdwFlags) (This)->lpVtbl->get_GenKeyFlags(This,pdwFlags)
1404#define IEnroll_put_GenKeyFlags(This,dwFlags) (This)->lpVtbl->put_GenKeyFlags(This,dwFlags)
1405#define IEnroll_get_DeleteRequestCert(This,fDelete) (This)->lpVtbl->get_DeleteRequestCert(This,fDelete)
1406#define IEnroll_put_DeleteRequestCert(This,fDelete) (This)->lpVtbl->put_DeleteRequestCert(This,fDelete)
1407#define IEnroll_get_WriteCertToUserDS(This,fBool) (This)->lpVtbl->get_WriteCertToUserDS(This,fBool)
1408#define IEnroll_put_WriteCertToUserDS(This,fBool) (This)->lpVtbl->put_WriteCertToUserDS(This,fBool)
1409#define IEnroll_get_EnableT61DNEncoding(This,fBool) (This)->lpVtbl->get_EnableT61DNEncoding(This,fBool)
1410#define IEnroll_put_EnableT61DNEncoding(This,fBool) (This)->lpVtbl->put_EnableT61DNEncoding(This,fBool)
1411#define IEnroll_get_WriteCertToCSP(This,fBool) (This)->lpVtbl->get_WriteCertToCSP(This,fBool)
1412#define IEnroll_put_WriteCertToCSP(This,fBool) (This)->lpVtbl->put_WriteCertToCSP(This,fBool)
1413#define IEnroll_get_SPCFileNameWStr(This,szw) (This)->lpVtbl->get_SPCFileNameWStr(This,szw)
1414#define IEnroll_put_SPCFileNameWStr(This,szw) (This)->lpVtbl->put_SPCFileNameWStr(This,szw)
1415#define IEnroll_get_PVKFileNameWStr(This,szw) (This)->lpVtbl->get_PVKFileNameWStr(This,szw)
1416#define IEnroll_put_PVKFileNameWStr(This,szw) (This)->lpVtbl->put_PVKFileNameWStr(This,szw)
1417#define IEnroll_get_HashAlgorithmWStr(This,szw) (This)->lpVtbl->get_HashAlgorithmWStr(This,szw)
1418#define IEnroll_put_HashAlgorithmWStr(This,szw) (This)->lpVtbl->put_HashAlgorithmWStr(This,szw)
1419#define IEnroll_get_RenewalCertificate(This,ppCertContext) (This)->lpVtbl->get_RenewalCertificate(This,ppCertContext)
1420#define IEnroll_put_RenewalCertificate(This,pCertContext) (This)->lpVtbl->put_RenewalCertificate(This,pCertContext)
1421#define IEnroll_AddCertTypeToRequestWStr(This,szw) (This)->lpVtbl->AddCertTypeToRequestWStr(This,szw)
1422#define IEnroll_AddNameValuePairToSignatureWStr(This,Name,Value) (This)->lpVtbl->AddNameValuePairToSignatureWStr(This,Name,Value)
1423#define IEnroll_AddExtensionsToRequest(This,pCertExtensions) (This)->lpVtbl->AddExtensionsToRequest(This,pCertExtensions)
1424#define IEnroll_AddAuthenticatedAttributesToPKCS7Request(This,pAttributes) (This)->lpVtbl->AddAuthenticatedAttributesToPKCS7Request(This,pAttributes)
1425#define IEnroll_CreatePKCS7RequestFromRequest(This,pRequest,pSigningCertContext,pPkcs7Blob) (This)->lpVtbl->CreatePKCS7RequestFromRequest(This,pRequest,pSigningCertContext,pPkcs7Blob)
1426#endif
1427#endif
1428  HRESULT WINAPI IEnroll_createFilePKCS10WStr_Proxy(IEnroll *This,LPCWSTR DNName,LPCWSTR Usage,LPCWSTR wszPKCS10FileName);
1429  void __RPC_STUB IEnroll_createFilePKCS10WStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1430  HRESULT WINAPI IEnroll_acceptFilePKCS7WStr_Proxy(IEnroll *This,LPCWSTR wszPKCS7FileName);
1431  void __RPC_STUB IEnroll_acceptFilePKCS7WStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1432  HRESULT WINAPI IEnroll_createPKCS10WStr_Proxy(IEnroll *This,LPCWSTR DNName,LPCWSTR Usage,PCRYPT_DATA_BLOB pPkcs10Blob);
1433  void __RPC_STUB IEnroll_createPKCS10WStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1434  HRESULT WINAPI IEnroll_acceptPKCS7Blob_Proxy(IEnroll *This,PCRYPT_DATA_BLOB pBlobPKCS7);
1435  void __RPC_STUB IEnroll_acceptPKCS7Blob_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1436  PCCERT_CONTEXT WINAPI IEnroll_getCertContextFromPKCS7_Proxy(IEnroll *This,PCRYPT_DATA_BLOB pBlobPKCS7);
1437  void __RPC_STUB IEnroll_getCertContextFromPKCS7_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1438  HCERTSTORE WINAPI IEnroll_getMyStore_Proxy(IEnroll *This);
1439  void __RPC_STUB IEnroll_getMyStore_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1440  HCERTSTORE WINAPI IEnroll_getCAStore_Proxy(IEnroll *This);
1441  void __RPC_STUB IEnroll_getCAStore_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1442  HCERTSTORE WINAPI IEnroll_getROOTHStore_Proxy(IEnroll *This);
1443  void __RPC_STUB IEnroll_getROOTHStore_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1444  HRESULT WINAPI IEnroll_enumProvidersWStr_Proxy(IEnroll *This,LONG dwIndex,LONG dwFlags,LPWSTR *pbstrProvName);
1445  void __RPC_STUB IEnroll_enumProvidersWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1446  HRESULT WINAPI IEnroll_enumContainersWStr_Proxy(IEnroll *This,LONG dwIndex,LPWSTR *pbstr);
1447  void __RPC_STUB IEnroll_enumContainersWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1448  HRESULT WINAPI IEnroll_freeRequestInfoBlob_Proxy(IEnroll *This,CRYPT_DATA_BLOB pkcs7OrPkcs10);
1449  void __RPC_STUB IEnroll_freeRequestInfoBlob_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1450  HRESULT WINAPI IEnroll_get_MyStoreNameWStr_Proxy(IEnroll *This,LPWSTR *szwName);
1451  void __RPC_STUB IEnroll_get_MyStoreNameWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1452  HRESULT WINAPI IEnroll_put_MyStoreNameWStr_Proxy(IEnroll *This,LPWSTR szwName);
1453  void __RPC_STUB IEnroll_put_MyStoreNameWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1454  HRESULT WINAPI IEnroll_get_MyStoreTypeWStr_Proxy(IEnroll *This,LPWSTR *szwType);
1455  void __RPC_STUB IEnroll_get_MyStoreTypeWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1456  HRESULT WINAPI IEnroll_put_MyStoreTypeWStr_Proxy(IEnroll *This,LPWSTR szwType);
1457  void __RPC_STUB IEnroll_put_MyStoreTypeWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1458  HRESULT WINAPI IEnroll_get_MyStoreFlags_Proxy(IEnroll *This,LONG *pdwFlags);
1459  void __RPC_STUB IEnroll_get_MyStoreFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1460  HRESULT WINAPI IEnroll_put_MyStoreFlags_Proxy(IEnroll *This,LONG dwFlags);
1461  void __RPC_STUB IEnroll_put_MyStoreFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1462  HRESULT WINAPI IEnroll_get_CAStoreNameWStr_Proxy(IEnroll *This,LPWSTR *szwName);
1463  void __RPC_STUB IEnroll_get_CAStoreNameWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1464  HRESULT WINAPI IEnroll_put_CAStoreNameWStr_Proxy(IEnroll *This,LPWSTR szwName);
1465  void __RPC_STUB IEnroll_put_CAStoreNameWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1466  HRESULT WINAPI IEnroll_get_CAStoreTypeWStr_Proxy(IEnroll *This,LPWSTR *szwType);
1467  void __RPC_STUB IEnroll_get_CAStoreTypeWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1468  HRESULT WINAPI IEnroll_put_CAStoreTypeWStr_Proxy(IEnroll *This,LPWSTR szwType);
1469  void __RPC_STUB IEnroll_put_CAStoreTypeWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1470  HRESULT WINAPI IEnroll_get_CAStoreFlags_Proxy(IEnroll *This,LONG *pdwFlags);
1471  void __RPC_STUB IEnroll_get_CAStoreFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1472  HRESULT WINAPI IEnroll_put_CAStoreFlags_Proxy(IEnroll *This,LONG dwFlags);
1473  void __RPC_STUB IEnroll_put_CAStoreFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1474  HRESULT WINAPI IEnroll_get_RootStoreNameWStr_Proxy(IEnroll *This,LPWSTR *szwName);
1475  void __RPC_STUB IEnroll_get_RootStoreNameWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1476  HRESULT WINAPI IEnroll_put_RootStoreNameWStr_Proxy(IEnroll *This,LPWSTR szwName);
1477  void __RPC_STUB IEnroll_put_RootStoreNameWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1478  HRESULT WINAPI IEnroll_get_RootStoreTypeWStr_Proxy(IEnroll *This,LPWSTR *szwType);
1479  void __RPC_STUB IEnroll_get_RootStoreTypeWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1480  HRESULT WINAPI IEnroll_put_RootStoreTypeWStr_Proxy(IEnroll *This,LPWSTR szwType);
1481  void __RPC_STUB IEnroll_put_RootStoreTypeWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1482  HRESULT WINAPI IEnroll_get_RootStoreFlags_Proxy(IEnroll *This,LONG *pdwFlags);
1483  void __RPC_STUB IEnroll_get_RootStoreFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1484  HRESULT WINAPI IEnroll_put_RootStoreFlags_Proxy(IEnroll *This,LONG dwFlags);
1485  void __RPC_STUB IEnroll_put_RootStoreFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1486  HRESULT WINAPI IEnroll_get_RequestStoreNameWStr_Proxy(IEnroll *This,LPWSTR *szwName);
1487  void __RPC_STUB IEnroll_get_RequestStoreNameWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1488  HRESULT WINAPI IEnroll_put_RequestStoreNameWStr_Proxy(IEnroll *This,LPWSTR szwName);
1489  void __RPC_STUB IEnroll_put_RequestStoreNameWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1490  HRESULT WINAPI IEnroll_get_RequestStoreTypeWStr_Proxy(IEnroll *This,LPWSTR *szwType);
1491  void __RPC_STUB IEnroll_get_RequestStoreTypeWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1492  HRESULT WINAPI IEnroll_put_RequestStoreTypeWStr_Proxy(IEnroll *This,LPWSTR szwType);
1493  void __RPC_STUB IEnroll_put_RequestStoreTypeWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1494  HRESULT WINAPI IEnroll_get_RequestStoreFlags_Proxy(IEnroll *This,LONG *pdwFlags);
1495  void __RPC_STUB IEnroll_get_RequestStoreFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1496  HRESULT WINAPI IEnroll_put_RequestStoreFlags_Proxy(IEnroll *This,LONG dwFlags);
1497  void __RPC_STUB IEnroll_put_RequestStoreFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1498  HRESULT WINAPI IEnroll_get_ContainerNameWStr_Proxy(IEnroll *This,LPWSTR *szwContainer);
1499  void __RPC_STUB IEnroll_get_ContainerNameWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1500  HRESULT WINAPI IEnroll_put_ContainerNameWStr_Proxy(IEnroll *This,LPWSTR szwContainer);
1501  void __RPC_STUB IEnroll_put_ContainerNameWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1502  HRESULT WINAPI IEnroll_get_ProviderNameWStr_Proxy(IEnroll *This,LPWSTR *szwProvider);
1503  void __RPC_STUB IEnroll_get_ProviderNameWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1504  HRESULT WINAPI IEnroll_put_ProviderNameWStr_Proxy(IEnroll *This,LPWSTR szwProvider);
1505  void __RPC_STUB IEnroll_put_ProviderNameWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1506  HRESULT WINAPI IEnroll_get_ProviderType_Proxy(IEnroll *This,LONG *pdwType);
1507  void __RPC_STUB IEnroll_get_ProviderType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1508  HRESULT WINAPI IEnroll_put_ProviderType_Proxy(IEnroll *This,LONG dwType);
1509  void __RPC_STUB IEnroll_put_ProviderType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1510  HRESULT WINAPI IEnroll_get_KeySpec_Proxy(IEnroll *This,LONG *pdw);
1511  void __RPC_STUB IEnroll_get_KeySpec_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1512  HRESULT WINAPI IEnroll_put_KeySpec_Proxy(IEnroll *This,LONG dw);
1513  void __RPC_STUB IEnroll_put_KeySpec_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1514  HRESULT WINAPI IEnroll_get_ProviderFlags_Proxy(IEnroll *This,LONG *pdwFlags);
1515  void __RPC_STUB IEnroll_get_ProviderFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1516  HRESULT WINAPI IEnroll_put_ProviderFlags_Proxy(IEnroll *This,LONG dwFlags);
1517  void __RPC_STUB IEnroll_put_ProviderFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1518  HRESULT WINAPI IEnroll_get_UseExistingKeySet_Proxy(IEnroll *This,WINBOOL *fUseExistingKeys);
1519  void __RPC_STUB IEnroll_get_UseExistingKeySet_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1520  HRESULT WINAPI IEnroll_put_UseExistingKeySet_Proxy(IEnroll *This,WINBOOL fUseExistingKeys);
1521  void __RPC_STUB IEnroll_put_UseExistingKeySet_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1522  HRESULT WINAPI IEnroll_get_GenKeyFlags_Proxy(IEnroll *This,LONG *pdwFlags);
1523  void __RPC_STUB IEnroll_get_GenKeyFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1524  HRESULT WINAPI IEnroll_put_GenKeyFlags_Proxy(IEnroll *This,LONG dwFlags);
1525  void __RPC_STUB IEnroll_put_GenKeyFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1526  HRESULT WINAPI IEnroll_get_DeleteRequestCert_Proxy(IEnroll *This,WINBOOL *fDelete);
1527  void __RPC_STUB IEnroll_get_DeleteRequestCert_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1528  HRESULT WINAPI IEnroll_put_DeleteRequestCert_Proxy(IEnroll *This,WINBOOL fDelete);
1529  void __RPC_STUB IEnroll_put_DeleteRequestCert_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1530  HRESULT WINAPI IEnroll_get_WriteCertToUserDS_Proxy(IEnroll *This,WINBOOL *fBool);
1531  void __RPC_STUB IEnroll_get_WriteCertToUserDS_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1532  HRESULT WINAPI IEnroll_put_WriteCertToUserDS_Proxy(IEnroll *This,WINBOOL fBool);
1533  void __RPC_STUB IEnroll_put_WriteCertToUserDS_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1534  HRESULT WINAPI IEnroll_get_EnableT61DNEncoding_Proxy(IEnroll *This,WINBOOL *fBool);
1535  void __RPC_STUB IEnroll_get_EnableT61DNEncoding_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1536  HRESULT WINAPI IEnroll_put_EnableT61DNEncoding_Proxy(IEnroll *This,WINBOOL fBool);
1537  void __RPC_STUB IEnroll_put_EnableT61DNEncoding_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1538  HRESULT WINAPI IEnroll_get_WriteCertToCSP_Proxy(IEnroll *This,WINBOOL *fBool);
1539  void __RPC_STUB IEnroll_get_WriteCertToCSP_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1540  HRESULT WINAPI IEnroll_put_WriteCertToCSP_Proxy(IEnroll *This,WINBOOL fBool);
1541  void __RPC_STUB IEnroll_put_WriteCertToCSP_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1542  HRESULT WINAPI IEnroll_get_SPCFileNameWStr_Proxy(IEnroll *This,LPWSTR *szw);
1543  void __RPC_STUB IEnroll_get_SPCFileNameWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1544  HRESULT WINAPI IEnroll_put_SPCFileNameWStr_Proxy(IEnroll *This,LPWSTR szw);
1545  void __RPC_STUB IEnroll_put_SPCFileNameWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1546  HRESULT WINAPI IEnroll_get_PVKFileNameWStr_Proxy(IEnroll *This,LPWSTR *szw);
1547  void __RPC_STUB IEnroll_get_PVKFileNameWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1548  HRESULT WINAPI IEnroll_put_PVKFileNameWStr_Proxy(IEnroll *This,LPWSTR szw);
1549  void __RPC_STUB IEnroll_put_PVKFileNameWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1550  HRESULT WINAPI IEnroll_get_HashAlgorithmWStr_Proxy(IEnroll *This,LPWSTR *szw);
1551  void __RPC_STUB IEnroll_get_HashAlgorithmWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1552  HRESULT WINAPI IEnroll_put_HashAlgorithmWStr_Proxy(IEnroll *This,LPWSTR szw);
1553  void __RPC_STUB IEnroll_put_HashAlgorithmWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1554  HRESULT WINAPI IEnroll_get_RenewalCertificate_Proxy(IEnroll *This,PCCERT_CONTEXT *ppCertContext);
1555  void __RPC_STUB IEnroll_get_RenewalCertificate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1556  HRESULT WINAPI IEnroll_put_RenewalCertificate_Proxy(IEnroll *This,PCCERT_CONTEXT pCertContext);
1557  void __RPC_STUB IEnroll_put_RenewalCertificate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1558  HRESULT WINAPI IEnroll_AddCertTypeToRequestWStr_Proxy(IEnroll *This,LPWSTR szw);
1559  void __RPC_STUB IEnroll_AddCertTypeToRequestWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1560  HRESULT WINAPI IEnroll_AddNameValuePairToSignatureWStr_Proxy(IEnroll *This,LPWSTR Name,LPWSTR Value);
1561  void __RPC_STUB IEnroll_AddNameValuePairToSignatureWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1562  HRESULT WINAPI IEnroll_AddExtensionsToRequest_Proxy(IEnroll *This,PCERT_EXTENSIONS pCertExtensions);
1563  void __RPC_STUB IEnroll_AddExtensionsToRequest_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1564  HRESULT WINAPI IEnroll_AddAuthenticatedAttributesToPKCS7Request_Proxy(IEnroll *This,PCRYPT_ATTRIBUTES pAttributes);
1565  void __RPC_STUB IEnroll_AddAuthenticatedAttributesToPKCS7Request_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1566  HRESULT WINAPI IEnroll_CreatePKCS7RequestFromRequest_Proxy(IEnroll *This,PCRYPT_DATA_BLOB pRequest,PCCERT_CONTEXT pSigningCertContext,PCRYPT_DATA_BLOB pPkcs7Blob);
1567  void __RPC_STUB IEnroll_CreatePKCS7RequestFromRequest_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1568#endif
1569
1570#ifndef __IEnroll2_INTERFACE_DEFINED__
1571#define __IEnroll2_INTERFACE_DEFINED__
1572  extern const IID IID_IEnroll2;
1573#if defined(__cplusplus) && !defined(CINTERFACE)
1574#ifdef __cplusplus
1575}
1576#endif
1577  struct IEnroll2 : public IEnroll {
1578  public:
1579    virtual HRESULT WINAPI InstallPKCS7Blob(PCRYPT_DATA_BLOB pBlobPKCS7) = 0;
1580    virtual HRESULT WINAPI Reset(void) = 0;
1581    virtual HRESULT WINAPI GetSupportedKeySpec(LONG *pdwKeySpec) = 0;
1582    virtual HRESULT WINAPI GetKeyLen(WINBOOL fMin,WINBOOL fExchange,LONG *pdwKeySize) = 0;
1583    virtual HRESULT WINAPI EnumAlgs(LONG dwIndex,LONG algClass,LONG *pdwAlgID) = 0;
1584    virtual HRESULT WINAPI GetAlgNameWStr(LONG algID,LPWSTR *ppwsz) = 0;
1585    virtual HRESULT WINAPI put_ReuseHardwareKeyIfUnableToGenNew(WINBOOL fReuseHardwareKeyIfUnableToGenNew) = 0;
1586    virtual HRESULT WINAPI get_ReuseHardwareKeyIfUnableToGenNew(WINBOOL *fReuseHardwareKeyIfUnableToGenNew) = 0;
1587    virtual HRESULT WINAPI put_HashAlgID(LONG hashAlgID) = 0;
1588    virtual HRESULT WINAPI get_HashAlgID(LONG *hashAlgID) = 0;
1589    virtual HRESULT WINAPI SetHStoreMy(HCERTSTORE hStore) = 0;
1590    virtual HRESULT WINAPI SetHStoreCA(HCERTSTORE hStore) = 0;
1591    virtual HRESULT WINAPI SetHStoreROOT(HCERTSTORE hStore) = 0;
1592    virtual HRESULT WINAPI SetHStoreRequest(HCERTSTORE hStore) = 0;
1593    virtual HRESULT WINAPI put_LimitExchangeKeyToEncipherment(WINBOOL fLimitExchangeKeyToEncipherment) = 0;
1594    virtual HRESULT WINAPI get_LimitExchangeKeyToEncipherment(WINBOOL *fLimitExchangeKeyToEncipherment) = 0;
1595    virtual HRESULT WINAPI put_EnableSMIMECapabilities(WINBOOL fEnableSMIMECapabilities) = 0;
1596    virtual HRESULT WINAPI get_EnableSMIMECapabilities(WINBOOL *fEnableSMIMECapabilities) = 0;
1597  };
1598#ifdef __cplusplus
1599  extern "C" {
1600#endif
1601#else
1602  typedef struct IEnroll2Vtbl {
1603    BEGIN_INTERFACE
1604      HRESULT (WINAPI *QueryInterface)(IEnroll2 *This,REFIID riid,void **ppvObject);
1605      ULONG (WINAPI *AddRef)(IEnroll2 *This);
1606      ULONG (WINAPI *Release)(IEnroll2 *This);
1607      HRESULT (WINAPI *createFilePKCS10WStr)(IEnroll2 *This,LPCWSTR DNName,LPCWSTR Usage,LPCWSTR wszPKCS10FileName);
1608      HRESULT (WINAPI *acceptFilePKCS7WStr)(IEnroll2 *This,LPCWSTR wszPKCS7FileName);
1609      HRESULT (WINAPI *createPKCS10WStr)(IEnroll2 *This,LPCWSTR DNName,LPCWSTR Usage,PCRYPT_DATA_BLOB pPkcs10Blob);
1610      HRESULT (WINAPI *acceptPKCS7Blob)(IEnroll2 *This,PCRYPT_DATA_BLOB pBlobPKCS7);
1611      PCCERT_CONTEXT (WINAPI *getCertContextFromPKCS7)(IEnroll2 *This,PCRYPT_DATA_BLOB pBlobPKCS7);
1612      HCERTSTORE (WINAPI *getMyStore)(IEnroll2 *This);
1613      HCERTSTORE (WINAPI *getCAStore)(IEnroll2 *This);
1614      HCERTSTORE (WINAPI *getROOTHStore)(IEnroll2 *This);
1615      HRESULT (WINAPI *enumProvidersWStr)(IEnroll2 *This,LONG dwIndex,LONG dwFlags,LPWSTR *pbstrProvName);
1616      HRESULT (WINAPI *enumContainersWStr)(IEnroll2 *This,LONG dwIndex,LPWSTR *pbstr);
1617      HRESULT (WINAPI *freeRequestInfoBlob)(IEnroll2 *This,CRYPT_DATA_BLOB pkcs7OrPkcs10);
1618      HRESULT (WINAPI *get_MyStoreNameWStr)(IEnroll2 *This,LPWSTR *szwName);
1619      HRESULT (WINAPI *put_MyStoreNameWStr)(IEnroll2 *This,LPWSTR szwName);
1620      HRESULT (WINAPI *get_MyStoreTypeWStr)(IEnroll2 *This,LPWSTR *szwType);
1621      HRESULT (WINAPI *put_MyStoreTypeWStr)(IEnroll2 *This,LPWSTR szwType);
1622      HRESULT (WINAPI *get_MyStoreFlags)(IEnroll2 *This,LONG *pdwFlags);
1623      HRESULT (WINAPI *put_MyStoreFlags)(IEnroll2 *This,LONG dwFlags);
1624      HRESULT (WINAPI *get_CAStoreNameWStr)(IEnroll2 *This,LPWSTR *szwName);
1625      HRESULT (WINAPI *put_CAStoreNameWStr)(IEnroll2 *This,LPWSTR szwName);
1626      HRESULT (WINAPI *get_CAStoreTypeWStr)(IEnroll2 *This,LPWSTR *szwType);
1627      HRESULT (WINAPI *put_CAStoreTypeWStr)(IEnroll2 *This,LPWSTR szwType);
1628      HRESULT (WINAPI *get_CAStoreFlags)(IEnroll2 *This,LONG *pdwFlags);
1629      HRESULT (WINAPI *put_CAStoreFlags)(IEnroll2 *This,LONG dwFlags);
1630      HRESULT (WINAPI *get_RootStoreNameWStr)(IEnroll2 *This,LPWSTR *szwName);
1631      HRESULT (WINAPI *put_RootStoreNameWStr)(IEnroll2 *This,LPWSTR szwName);
1632      HRESULT (WINAPI *get_RootStoreTypeWStr)(IEnroll2 *This,LPWSTR *szwType);
1633      HRESULT (WINAPI *put_RootStoreTypeWStr)(IEnroll2 *This,LPWSTR szwType);
1634      HRESULT (WINAPI *get_RootStoreFlags)(IEnroll2 *This,LONG *pdwFlags);
1635      HRESULT (WINAPI *put_RootStoreFlags)(IEnroll2 *This,LONG dwFlags);
1636      HRESULT (WINAPI *get_RequestStoreNameWStr)(IEnroll2 *This,LPWSTR *szwName);
1637      HRESULT (WINAPI *put_RequestStoreNameWStr)(IEnroll2 *This,LPWSTR szwName);
1638      HRESULT (WINAPI *get_RequestStoreTypeWStr)(IEnroll2 *This,LPWSTR *szwType);
1639      HRESULT (WINAPI *put_RequestStoreTypeWStr)(IEnroll2 *This,LPWSTR szwType);
1640      HRESULT (WINAPI *get_RequestStoreFlags)(IEnroll2 *This,LONG *pdwFlags);
1641      HRESULT (WINAPI *put_RequestStoreFlags)(IEnroll2 *This,LONG dwFlags);
1642      HRESULT (WINAPI *get_ContainerNameWStr)(IEnroll2 *This,LPWSTR *szwContainer);
1643      HRESULT (WINAPI *put_ContainerNameWStr)(IEnroll2 *This,LPWSTR szwContainer);
1644      HRESULT (WINAPI *get_ProviderNameWStr)(IEnroll2 *This,LPWSTR *szwProvider);
1645      HRESULT (WINAPI *put_ProviderNameWStr)(IEnroll2 *This,LPWSTR szwProvider);
1646      HRESULT (WINAPI *get_ProviderType)(IEnroll2 *This,LONG *pdwType);
1647      HRESULT (WINAPI *put_ProviderType)(IEnroll2 *This,LONG dwType);
1648      HRESULT (WINAPI *get_KeySpec)(IEnroll2 *This,LONG *pdw);
1649      HRESULT (WINAPI *put_KeySpec)(IEnroll2 *This,LONG dw);
1650      HRESULT (WINAPI *get_ProviderFlags)(IEnroll2 *This,LONG *pdwFlags);
1651      HRESULT (WINAPI *put_ProviderFlags)(IEnroll2 *This,LONG dwFlags);
1652      HRESULT (WINAPI *get_UseExistingKeySet)(IEnroll2 *This,WINBOOL *fUseExistingKeys);
1653      HRESULT (WINAPI *put_UseExistingKeySet)(IEnroll2 *This,WINBOOL fUseExistingKeys);
1654      HRESULT (WINAPI *get_GenKeyFlags)(IEnroll2 *This,LONG *pdwFlags);
1655      HRESULT (WINAPI *put_GenKeyFlags)(IEnroll2 *This,LONG dwFlags);
1656      HRESULT (WINAPI *get_DeleteRequestCert)(IEnroll2 *This,WINBOOL *fDelete);
1657      HRESULT (WINAPI *put_DeleteRequestCert)(IEnroll2 *This,WINBOOL fDelete);
1658      HRESULT (WINAPI *get_WriteCertToUserDS)(IEnroll2 *This,WINBOOL *fBool);
1659      HRESULT (WINAPI *put_WriteCertToUserDS)(IEnroll2 *This,WINBOOL fBool);
1660      HRESULT (WINAPI *get_EnableT61DNEncoding)(IEnroll2 *This,WINBOOL *fBool);
1661      HRESULT (WINAPI *put_EnableT61DNEncoding)(IEnroll2 *This,WINBOOL fBool);
1662      HRESULT (WINAPI *get_WriteCertToCSP)(IEnroll2 *This,WINBOOL *fBool);
1663      HRESULT (WINAPI *put_WriteCertToCSP)(IEnroll2 *This,WINBOOL fBool);
1664      HRESULT (WINAPI *get_SPCFileNameWStr)(IEnroll2 *This,LPWSTR *szw);
1665      HRESULT (WINAPI *put_SPCFileNameWStr)(IEnroll2 *This,LPWSTR szw);
1666      HRESULT (WINAPI *get_PVKFileNameWStr)(IEnroll2 *This,LPWSTR *szw);
1667      HRESULT (WINAPI *put_PVKFileNameWStr)(IEnroll2 *This,LPWSTR szw);
1668      HRESULT (WINAPI *get_HashAlgorithmWStr)(IEnroll2 *This,LPWSTR *szw);
1669      HRESULT (WINAPI *put_HashAlgorithmWStr)(IEnroll2 *This,LPWSTR szw);
1670      HRESULT (WINAPI *get_RenewalCertificate)(IEnroll2 *This,PCCERT_CONTEXT *ppCertContext);
1671      HRESULT (WINAPI *put_RenewalCertificate)(IEnroll2 *This,PCCERT_CONTEXT pCertContext);
1672      HRESULT (WINAPI *AddCertTypeToRequestWStr)(IEnroll2 *This,LPWSTR szw);
1673      HRESULT (WINAPI *AddNameValuePairToSignatureWStr)(IEnroll2 *This,LPWSTR Name,LPWSTR Value);
1674      HRESULT (WINAPI *AddExtensionsToRequest)(IEnroll2 *This,PCERT_EXTENSIONS pCertExtensions);
1675      HRESULT (WINAPI *AddAuthenticatedAttributesToPKCS7Request)(IEnroll2 *This,PCRYPT_ATTRIBUTES pAttributes);
1676      HRESULT (WINAPI *CreatePKCS7RequestFromRequest)(IEnroll2 *This,PCRYPT_DATA_BLOB pRequest,PCCERT_CONTEXT pSigningCertContext,PCRYPT_DATA_BLOB pPkcs7Blob);
1677      HRESULT (WINAPI *InstallPKCS7Blob)(IEnroll2 *This,PCRYPT_DATA_BLOB pBlobPKCS7);
1678      HRESULT (WINAPI *Reset)(IEnroll2 *This);
1679      HRESULT (WINAPI *GetSupportedKeySpec)(IEnroll2 *This,LONG *pdwKeySpec);
1680      HRESULT (WINAPI *GetKeyLen)(IEnroll2 *This,WINBOOL fMin,WINBOOL fExchange,LONG *pdwKeySize);
1681      HRESULT (WINAPI *EnumAlgs)(IEnroll2 *This,LONG dwIndex,LONG algClass,LONG *pdwAlgID);
1682      HRESULT (WINAPI *GetAlgNameWStr)(IEnroll2 *This,LONG algID,LPWSTR *ppwsz);
1683      HRESULT (WINAPI *put_ReuseHardwareKeyIfUnableToGenNew)(IEnroll2 *This,WINBOOL fReuseHardwareKeyIfUnableToGenNew);
1684      HRESULT (WINAPI *get_ReuseHardwareKeyIfUnableToGenNew)(IEnroll2 *This,WINBOOL *fReuseHardwareKeyIfUnableToGenNew);
1685      HRESULT (WINAPI *put_HashAlgID)(IEnroll2 *This,LONG hashAlgID);
1686      HRESULT (WINAPI *get_HashAlgID)(IEnroll2 *This,LONG *hashAlgID);
1687      HRESULT (WINAPI *SetHStoreMy)(IEnroll2 *This,HCERTSTORE hStore);
1688      HRESULT (WINAPI *SetHStoreCA)(IEnroll2 *This,HCERTSTORE hStore);
1689      HRESULT (WINAPI *SetHStoreROOT)(IEnroll2 *This,HCERTSTORE hStore);
1690      HRESULT (WINAPI *SetHStoreRequest)(IEnroll2 *This,HCERTSTORE hStore);
1691      HRESULT (WINAPI *put_LimitExchangeKeyToEncipherment)(IEnroll2 *This,WINBOOL fLimitExchangeKeyToEncipherment);
1692      HRESULT (WINAPI *get_LimitExchangeKeyToEncipherment)(IEnroll2 *This,WINBOOL *fLimitExchangeKeyToEncipherment);
1693      HRESULT (WINAPI *put_EnableSMIMECapabilities)(IEnroll2 *This,WINBOOL fEnableSMIMECapabilities);
1694      HRESULT (WINAPI *get_EnableSMIMECapabilities)(IEnroll2 *This,WINBOOL *fEnableSMIMECapabilities);
1695    END_INTERFACE
1696  } IEnroll2Vtbl;
1697  struct IEnroll2 {
1698    CONST_VTBL struct IEnroll2Vtbl *lpVtbl;
1699  };
1700#ifdef COBJMACROS
1701#define IEnroll2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1702#define IEnroll2_AddRef(This) (This)->lpVtbl->AddRef(This)
1703#define IEnroll2_Release(This) (This)->lpVtbl->Release(This)
1704#define IEnroll2_createFilePKCS10WStr(This,DNName,Usage,wszPKCS10FileName) (This)->lpVtbl->createFilePKCS10WStr(This,DNName,Usage,wszPKCS10FileName)
1705#define IEnroll2_acceptFilePKCS7WStr(This,wszPKCS7FileName) (This)->lpVtbl->acceptFilePKCS7WStr(This,wszPKCS7FileName)
1706#define IEnroll2_createPKCS10WStr(This,DNName,Usage,pPkcs10Blob) (This)->lpVtbl->createPKCS10WStr(This,DNName,Usage,pPkcs10Blob)
1707#define IEnroll2_acceptPKCS7Blob(This,pBlobPKCS7) (This)->lpVtbl->acceptPKCS7Blob(This,pBlobPKCS7)
1708#define IEnroll2_getCertContextFromPKCS7(This,pBlobPKCS7) (This)->lpVtbl->getCertContextFromPKCS7(This,pBlobPKCS7)
1709#define IEnroll2_getMyStore(This) (This)->lpVtbl->getMyStore(This)
1710#define IEnroll2_getCAStore(This) (This)->lpVtbl->getCAStore(This)
1711#define IEnroll2_getROOTHStore(This) (This)->lpVtbl->getROOTHStore(This)
1712#define IEnroll2_enumProvidersWStr(This,dwIndex,dwFlags,pbstrProvName) (This)->lpVtbl->enumProvidersWStr(This,dwIndex,dwFlags,pbstrProvName)
1713#define IEnroll2_enumContainersWStr(This,dwIndex,pbstr) (This)->lpVtbl->enumContainersWStr(This,dwIndex,pbstr)
1714#define IEnroll2_freeRequestInfoBlob(This,pkcs7OrPkcs10) (This)->lpVtbl->freeRequestInfoBlob(This,pkcs7OrPkcs10)
1715#define IEnroll2_get_MyStoreNameWStr(This,szwName) (This)->lpVtbl->get_MyStoreNameWStr(This,szwName)
1716#define IEnroll2_put_MyStoreNameWStr(This,szwName) (This)->lpVtbl->put_MyStoreNameWStr(This,szwName)
1717#define IEnroll2_get_MyStoreTypeWStr(This,szwType) (This)->lpVtbl->get_MyStoreTypeWStr(This,szwType)
1718#define IEnroll2_put_MyStoreTypeWStr(This,szwType) (This)->lpVtbl->put_MyStoreTypeWStr(This,szwType)
1719#define IEnroll2_get_MyStoreFlags(This,pdwFlags) (This)->lpVtbl->get_MyStoreFlags(This,pdwFlags)
1720#define IEnroll2_put_MyStoreFlags(This,dwFlags) (This)->lpVtbl->put_MyStoreFlags(This,dwFlags)
1721#define IEnroll2_get_CAStoreNameWStr(This,szwName) (This)->lpVtbl->get_CAStoreNameWStr(This,szwName)
1722#define IEnroll2_put_CAStoreNameWStr(This,szwName) (This)->lpVtbl->put_CAStoreNameWStr(This,szwName)
1723#define IEnroll2_get_CAStoreTypeWStr(This,szwType) (This)->lpVtbl->get_CAStoreTypeWStr(This,szwType)
1724#define IEnroll2_put_CAStoreTypeWStr(This,szwType) (This)->lpVtbl->put_CAStoreTypeWStr(This,szwType)
1725#define IEnroll2_get_CAStoreFlags(This,pdwFlags) (This)->lpVtbl->get_CAStoreFlags(This,pdwFlags)
1726#define IEnroll2_put_CAStoreFlags(This,dwFlags) (This)->lpVtbl->put_CAStoreFlags(This,dwFlags)
1727#define IEnroll2_get_RootStoreNameWStr(This,szwName) (This)->lpVtbl->get_RootStoreNameWStr(This,szwName)
1728#define IEnroll2_put_RootStoreNameWStr(This,szwName) (This)->lpVtbl->put_RootStoreNameWStr(This,szwName)
1729#define IEnroll2_get_RootStoreTypeWStr(This,szwType) (This)->lpVtbl->get_RootStoreTypeWStr(This,szwType)
1730#define IEnroll2_put_RootStoreTypeWStr(This,szwType) (This)->lpVtbl->put_RootStoreTypeWStr(This,szwType)
1731#define IEnroll2_get_RootStoreFlags(This,pdwFlags) (This)->lpVtbl->get_RootStoreFlags(This,pdwFlags)
1732#define IEnroll2_put_RootStoreFlags(This,dwFlags) (This)->lpVtbl->put_RootStoreFlags(This,dwFlags)
1733#define IEnroll2_get_RequestStoreNameWStr(This,szwName) (This)->lpVtbl->get_RequestStoreNameWStr(This,szwName)
1734#define IEnroll2_put_RequestStoreNameWStr(This,szwName) (This)->lpVtbl->put_RequestStoreNameWStr(This,szwName)
1735#define IEnroll2_get_RequestStoreTypeWStr(This,szwType) (This)->lpVtbl->get_RequestStoreTypeWStr(This,szwType)
1736#define IEnroll2_put_RequestStoreTypeWStr(This,szwType) (This)->lpVtbl->put_RequestStoreTypeWStr(This,szwType)
1737#define IEnroll2_get_RequestStoreFlags(This,pdwFlags) (This)->lpVtbl->get_RequestStoreFlags(This,pdwFlags)
1738#define IEnroll2_put_RequestStoreFlags(This,dwFlags) (This)->lpVtbl->put_RequestStoreFlags(This,dwFlags)
1739#define IEnroll2_get_ContainerNameWStr(This,szwContainer) (This)->lpVtbl->get_ContainerNameWStr(This,szwContainer)
1740#define IEnroll2_put_ContainerNameWStr(This,szwContainer) (This)->lpVtbl->put_ContainerNameWStr(This,szwContainer)
1741#define IEnroll2_get_ProviderNameWStr(This,szwProvider) (This)->lpVtbl->get_ProviderNameWStr(This,szwProvider)
1742#define IEnroll2_put_ProviderNameWStr(This,szwProvider) (This)->lpVtbl->put_ProviderNameWStr(This,szwProvider)
1743#define IEnroll2_get_ProviderType(This,pdwType) (This)->lpVtbl->get_ProviderType(This,pdwType)
1744#define IEnroll2_put_ProviderType(This,dwType) (This)->lpVtbl->put_ProviderType(This,dwType)
1745#define IEnroll2_get_KeySpec(This,pdw) (This)->lpVtbl->get_KeySpec(This,pdw)
1746#define IEnroll2_put_KeySpec(This,dw) (This)->lpVtbl->put_KeySpec(This,dw)
1747#define IEnroll2_get_ProviderFlags(This,pdwFlags) (This)->lpVtbl->get_ProviderFlags(This,pdwFlags)
1748#define IEnroll2_put_ProviderFlags(This,dwFlags) (This)->lpVtbl->put_ProviderFlags(This,dwFlags)
1749#define IEnroll2_get_UseExistingKeySet(This,fUseExistingKeys) (This)->lpVtbl->get_UseExistingKeySet(This,fUseExistingKeys)
1750#define IEnroll2_put_UseExistingKeySet(This,fUseExistingKeys) (This)->lpVtbl->put_UseExistingKeySet(This,fUseExistingKeys)
1751#define IEnroll2_get_GenKeyFlags(This,pdwFlags) (This)->lpVtbl->get_GenKeyFlags(This,pdwFlags)
1752#define IEnroll2_put_GenKeyFlags(This,dwFlags) (This)->lpVtbl->put_GenKeyFlags(This,dwFlags)
1753#define IEnroll2_get_DeleteRequestCert(This,fDelete) (This)->lpVtbl->get_DeleteRequestCert(This,fDelete)
1754#define IEnroll2_put_DeleteRequestCert(This,fDelete) (This)->lpVtbl->put_DeleteRequestCert(This,fDelete)
1755#define IEnroll2_get_WriteCertToUserDS(This,fBool) (This)->lpVtbl->get_WriteCertToUserDS(This,fBool)
1756#define IEnroll2_put_WriteCertToUserDS(This,fBool) (This)->lpVtbl->put_WriteCertToUserDS(This,fBool)
1757#define IEnroll2_get_EnableT61DNEncoding(This,fBool) (This)->lpVtbl->get_EnableT61DNEncoding(This,fBool)
1758#define IEnroll2_put_EnableT61DNEncoding(This,fBool) (This)->lpVtbl->put_EnableT61DNEncoding(This,fBool)
1759#define IEnroll2_get_WriteCertToCSP(This,fBool) (This)->lpVtbl->get_WriteCertToCSP(This,fBool)
1760#define IEnroll2_put_WriteCertToCSP(This,fBool) (This)->lpVtbl->put_WriteCertToCSP(This,fBool)
1761#define IEnroll2_get_SPCFileNameWStr(This,szw) (This)->lpVtbl->get_SPCFileNameWStr(This,szw)
1762#define IEnroll2_put_SPCFileNameWStr(This,szw) (This)->lpVtbl->put_SPCFileNameWStr(This,szw)
1763#define IEnroll2_get_PVKFileNameWStr(This,szw) (This)->lpVtbl->get_PVKFileNameWStr(This,szw)
1764#define IEnroll2_put_PVKFileNameWStr(This,szw) (This)->lpVtbl->put_PVKFileNameWStr(This,szw)
1765#define IEnroll2_get_HashAlgorithmWStr(This,szw) (This)->lpVtbl->get_HashAlgorithmWStr(This,szw)
1766#define IEnroll2_put_HashAlgorithmWStr(This,szw) (This)->lpVtbl->put_HashAlgorithmWStr(This,szw)
1767#define IEnroll2_get_RenewalCertificate(This,ppCertContext) (This)->lpVtbl->get_RenewalCertificate(This,ppCertContext)
1768#define IEnroll2_put_RenewalCertificate(This,pCertContext) (This)->lpVtbl->put_RenewalCertificate(This,pCertContext)
1769#define IEnroll2_AddCertTypeToRequestWStr(This,szw) (This)->lpVtbl->AddCertTypeToRequestWStr(This,szw)
1770#define IEnroll2_AddNameValuePairToSignatureWStr(This,Name,Value) (This)->lpVtbl->AddNameValuePairToSignatureWStr(This,Name,Value)
1771#define IEnroll2_AddExtensionsToRequest(This,pCertExtensions) (This)->lpVtbl->AddExtensionsToRequest(This,pCertExtensions)
1772#define IEnroll2_AddAuthenticatedAttributesToPKCS7Request(This,pAttributes) (This)->lpVtbl->AddAuthenticatedAttributesToPKCS7Request(This,pAttributes)
1773#define IEnroll2_CreatePKCS7RequestFromRequest(This,pRequest,pSigningCertContext,pPkcs7Blob) (This)->lpVtbl->CreatePKCS7RequestFromRequest(This,pRequest,pSigningCertContext,pPkcs7Blob)
1774#define IEnroll2_InstallPKCS7Blob(This,pBlobPKCS7) (This)->lpVtbl->InstallPKCS7Blob(This,pBlobPKCS7)
1775#define IEnroll2_Reset(This) (This)->lpVtbl->Reset(This)
1776#define IEnroll2_GetSupportedKeySpec(This,pdwKeySpec) (This)->lpVtbl->GetSupportedKeySpec(This,pdwKeySpec)
1777#define IEnroll2_GetKeyLen(This,fMin,fExchange,pdwKeySize) (This)->lpVtbl->GetKeyLen(This,fMin,fExchange,pdwKeySize)
1778#define IEnroll2_EnumAlgs(This,dwIndex,algClass,pdwAlgID) (This)->lpVtbl->EnumAlgs(This,dwIndex,algClass,pdwAlgID)
1779#define IEnroll2_GetAlgNameWStr(This,algID,ppwsz) (This)->lpVtbl->GetAlgNameWStr(This,algID,ppwsz)
1780#define IEnroll2_put_ReuseHardwareKeyIfUnableToGenNew(This,fReuseHardwareKeyIfUnableToGenNew) (This)->lpVtbl->put_ReuseHardwareKeyIfUnableToGenNew(This,fReuseHardwareKeyIfUnableToGenNew)
1781#define IEnroll2_get_ReuseHardwareKeyIfUnableToGenNew(This,fReuseHardwareKeyIfUnableToGenNew) (This)->lpVtbl->get_ReuseHardwareKeyIfUnableToGenNew(This,fReuseHardwareKeyIfUnableToGenNew)
1782#define IEnroll2_put_HashAlgID(This,hashAlgID) (This)->lpVtbl->put_HashAlgID(This,hashAlgID)
1783#define IEnroll2_get_HashAlgID(This,hashAlgID) (This)->lpVtbl->get_HashAlgID(This,hashAlgID)
1784#define IEnroll2_SetHStoreMy(This,hStore) (This)->lpVtbl->SetHStoreMy(This,hStore)
1785#define IEnroll2_SetHStoreCA(This,hStore) (This)->lpVtbl->SetHStoreCA(This,hStore)
1786#define IEnroll2_SetHStoreROOT(This,hStore) (This)->lpVtbl->SetHStoreROOT(This,hStore)
1787#define IEnroll2_SetHStoreRequest(This,hStore) (This)->lpVtbl->SetHStoreRequest(This,hStore)
1788#define IEnroll2_put_LimitExchangeKeyToEncipherment(This,fLimitExchangeKeyToEncipherment) (This)->lpVtbl->put_LimitExchangeKeyToEncipherment(This,fLimitExchangeKeyToEncipherment)
1789#define IEnroll2_get_LimitExchangeKeyToEncipherment(This,fLimitExchangeKeyToEncipherment) (This)->lpVtbl->get_LimitExchangeKeyToEncipherment(This,fLimitExchangeKeyToEncipherment)
1790#define IEnroll2_put_EnableSMIMECapabilities(This,fEnableSMIMECapabilities) (This)->lpVtbl->put_EnableSMIMECapabilities(This,fEnableSMIMECapabilities)
1791#define IEnroll2_get_EnableSMIMECapabilities(This,fEnableSMIMECapabilities) (This)->lpVtbl->get_EnableSMIMECapabilities(This,fEnableSMIMECapabilities)
1792#endif
1793#endif
1794  HRESULT WINAPI IEnroll2_InstallPKCS7Blob_Proxy(IEnroll2 *This,PCRYPT_DATA_BLOB pBlobPKCS7);
1795  void __RPC_STUB IEnroll2_InstallPKCS7Blob_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1796  HRESULT WINAPI IEnroll2_Reset_Proxy(IEnroll2 *This);
1797  void __RPC_STUB IEnroll2_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1798  HRESULT WINAPI IEnroll2_GetSupportedKeySpec_Proxy(IEnroll2 *This,LONG *pdwKeySpec);
1799  void __RPC_STUB IEnroll2_GetSupportedKeySpec_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1800  HRESULT WINAPI IEnroll2_GetKeyLen_Proxy(IEnroll2 *This,WINBOOL fMin,WINBOOL fExchange,LONG *pdwKeySize);
1801  void __RPC_STUB IEnroll2_GetKeyLen_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1802  HRESULT WINAPI IEnroll2_EnumAlgs_Proxy(IEnroll2 *This,LONG dwIndex,LONG algClass,LONG *pdwAlgID);
1803  void __RPC_STUB IEnroll2_EnumAlgs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1804  HRESULT WINAPI IEnroll2_GetAlgNameWStr_Proxy(IEnroll2 *This,LONG algID,LPWSTR *ppwsz);
1805  void __RPC_STUB IEnroll2_GetAlgNameWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1806  HRESULT WINAPI IEnroll2_put_ReuseHardwareKeyIfUnableToGenNew_Proxy(IEnroll2 *This,WINBOOL fReuseHardwareKeyIfUnableToGenNew);
1807  void __RPC_STUB IEnroll2_put_ReuseHardwareKeyIfUnableToGenNew_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1808  HRESULT WINAPI IEnroll2_get_ReuseHardwareKeyIfUnableToGenNew_Proxy(IEnroll2 *This,WINBOOL *fReuseHardwareKeyIfUnableToGenNew);
1809  void __RPC_STUB IEnroll2_get_ReuseHardwareKeyIfUnableToGenNew_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1810  HRESULT WINAPI IEnroll2_put_HashAlgID_Proxy(IEnroll2 *This,LONG hashAlgID);
1811  void __RPC_STUB IEnroll2_put_HashAlgID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1812  HRESULT WINAPI IEnroll2_get_HashAlgID_Proxy(IEnroll2 *This,LONG *hashAlgID);
1813  void __RPC_STUB IEnroll2_get_HashAlgID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1814  HRESULT WINAPI IEnroll2_SetHStoreMy_Proxy(IEnroll2 *This,HCERTSTORE hStore);
1815  void __RPC_STUB IEnroll2_SetHStoreMy_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1816  HRESULT WINAPI IEnroll2_SetHStoreCA_Proxy(IEnroll2 *This,HCERTSTORE hStore);
1817  void __RPC_STUB IEnroll2_SetHStoreCA_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1818  HRESULT WINAPI IEnroll2_SetHStoreROOT_Proxy(IEnroll2 *This,HCERTSTORE hStore);
1819  void __RPC_STUB IEnroll2_SetHStoreROOT_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1820  HRESULT WINAPI IEnroll2_SetHStoreRequest_Proxy(IEnroll2 *This,HCERTSTORE hStore);
1821  void __RPC_STUB IEnroll2_SetHStoreRequest_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1822  HRESULT WINAPI IEnroll2_put_LimitExchangeKeyToEncipherment_Proxy(IEnroll2 *This,WINBOOL fLimitExchangeKeyToEncipherment);
1823  void __RPC_STUB IEnroll2_put_LimitExchangeKeyToEncipherment_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1824  HRESULT WINAPI IEnroll2_get_LimitExchangeKeyToEncipherment_Proxy(IEnroll2 *This,WINBOOL *fLimitExchangeKeyToEncipherment);
1825  void __RPC_STUB IEnroll2_get_LimitExchangeKeyToEncipherment_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1826  HRESULT WINAPI IEnroll2_put_EnableSMIMECapabilities_Proxy(IEnroll2 *This,WINBOOL fEnableSMIMECapabilities);
1827  void __RPC_STUB IEnroll2_put_EnableSMIMECapabilities_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1828  HRESULT WINAPI IEnroll2_get_EnableSMIMECapabilities_Proxy(IEnroll2 *This,WINBOOL *fEnableSMIMECapabilities);
1829  void __RPC_STUB IEnroll2_get_EnableSMIMECapabilities_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
1830#endif
1831
1832#ifndef __IEnroll4_INTERFACE_DEFINED__
1833#define __IEnroll4_INTERFACE_DEFINED__
1834  extern const IID IID_IEnroll4;
1835#if defined(__cplusplus) && !defined(CINTERFACE)
1836#ifdef __cplusplus
1837}
1838#endif
1839  struct IEnroll4 : public IEnroll2 {
1840  public:
1841    virtual HRESULT WINAPI put_ThumbPrintWStr(CRYPT_DATA_BLOB thumbPrintBlob) = 0;
1842    virtual HRESULT WINAPI get_ThumbPrintWStr(PCRYPT_DATA_BLOB thumbPrintBlob) = 0;
1843    virtual HRESULT WINAPI SetPrivateKeyArchiveCertificate(PCCERT_CONTEXT pPrivateKeyArchiveCert) = 0;
1844    virtual PCCERT_CONTEXT WINAPI GetPrivateKeyArchiveCertificate(void) = 0;
1845    virtual HRESULT WINAPI binaryBlobToString(LONG Flags,PCRYPT_DATA_BLOB pblobBinary,LPWSTR *ppwszString) = 0;
1846    virtual HRESULT WINAPI stringToBinaryBlob(LONG Flags,LPCWSTR pwszString,PCRYPT_DATA_BLOB pblobBinary,LONG *pdwSkip,LONG *pdwFlags) = 0;
1847    virtual HRESULT WINAPI addExtensionToRequestWStr(LONG Flags,LPCWSTR pwszName,PCRYPT_DATA_BLOB pblobValue) = 0;
1848    virtual HRESULT WINAPI addAttributeToRequestWStr(LONG Flags,LPCWSTR pwszName,PCRYPT_DATA_BLOB pblobValue) = 0;
1849    virtual HRESULT WINAPI addNameValuePairToRequestWStr(LONG Flags,LPCWSTR pwszName,LPCWSTR pwszValue) = 0;
1850    virtual HRESULT WINAPI resetExtensions(void) = 0;
1851    virtual HRESULT WINAPI resetAttributes(void) = 0;
1852    virtual HRESULT WINAPI createRequestWStr(LONG Flags,LPCWSTR pwszDNName,LPCWSTR pwszUsage,PCRYPT_DATA_BLOB pblobRequest) = 0;
1853    virtual HRESULT WINAPI createFileRequestWStr(LONG Flags,LPCWSTR pwszDNName,LPCWSTR pwszUsage,LPCWSTR pwszRequestFileName) = 0;
1854    virtual HRESULT WINAPI acceptResponseBlob(PCRYPT_DATA_BLOB pblobResponse) = 0;
1855    virtual HRESULT WINAPI acceptFileResponseWStr(LPCWSTR pwszResponseFileName) = 0;
1856    virtual HRESULT WINAPI getCertContextFromResponseBlob(PCRYPT_DATA_BLOB pblobResponse,PCCERT_CONTEXT *ppCertContext) = 0;
1857    virtual HRESULT WINAPI getCertContextFromFileResponseWStr(LPCWSTR pwszResponseFileName,PCCERT_CONTEXT *ppCertContext) = 0;
1858    virtual HRESULT WINAPI createPFXWStr(LPCWSTR pwszPassword,PCRYPT_DATA_BLOB pblobPFX) = 0;
1859    virtual HRESULT WINAPI createFilePFXWStr(LPCWSTR pwszPassword,LPCWSTR pwszPFXFileName) = 0;
1860    virtual HRESULT WINAPI setPendingRequestInfoWStr(LONG lRequestID,LPCWSTR pwszCADNS,LPCWSTR pwszCAName,LPCWSTR pwszFriendlyName) = 0;
1861    virtual HRESULT WINAPI enumPendingRequestWStr(LONG lIndex,LONG lDesiredProperty,LPVOID ppProperty) = 0;
1862    virtual HRESULT WINAPI removePendingRequestWStr(CRYPT_DATA_BLOB thumbPrintBlob) = 0;
1863    virtual HRESULT WINAPI GetKeyLenEx(LONG lSizeSpec,LONG lKeySpec,LONG *pdwKeySize) = 0;
1864    virtual HRESULT WINAPI InstallPKCS7BlobEx(PCRYPT_DATA_BLOB pBlobPKCS7,LONG *plCertInstalled) = 0;
1865    virtual HRESULT WINAPI AddCertTypeToRequestWStrEx(LONG lType,LPCWSTR pwszOIDOrName,LONG lMajorVersion,WINBOOL fMinorVersion,LONG lMinorVersion) = 0;
1866    virtual HRESULT WINAPI getProviderTypeWStr(LPCWSTR pwszProvName,LONG *plProvType) = 0;
1867    virtual HRESULT WINAPI addBlobPropertyToCertificateWStr(LONG lPropertyId,LONG lReserved,PCRYPT_DATA_BLOB pBlobProperty) = 0;
1868    virtual HRESULT WINAPI SetSignerCertificate(PCCERT_CONTEXT pSignerCert) = 0;
1869    virtual HRESULT WINAPI put_ClientId(LONG lClientId) = 0;
1870    virtual HRESULT WINAPI get_ClientId(LONG *plClientId) = 0;
1871    virtual HRESULT WINAPI put_IncludeSubjectKeyID(WINBOOL fInclude) = 0;
1872    virtual HRESULT WINAPI get_IncludeSubjectKeyID(WINBOOL *pfInclude) = 0;
1873  };
1874#ifdef __cplusplus
1875  extern "C" {
1876#endif
1877#else
1878  typedef struct IEnroll4Vtbl {
1879    BEGIN_INTERFACE
1880      HRESULT (WINAPI *QueryInterface)(IEnroll4 *This,REFIID riid,void **ppvObject);
1881      ULONG (WINAPI *AddRef)(IEnroll4 *This);
1882      ULONG (WINAPI *Release)(IEnroll4 *This);
1883      HRESULT (WINAPI *createFilePKCS10WStr)(IEnroll4 *This,LPCWSTR DNName,LPCWSTR Usage,LPCWSTR wszPKCS10FileName);
1884      HRESULT (WINAPI *acceptFilePKCS7WStr)(IEnroll4 *This,LPCWSTR wszPKCS7FileName);
1885      HRESULT (WINAPI *createPKCS10WStr)(IEnroll4 *This,LPCWSTR DNName,LPCWSTR Usage,PCRYPT_DATA_BLOB pPkcs10Blob);
1886      HRESULT (WINAPI *acceptPKCS7Blob)(IEnroll4 *This,PCRYPT_DATA_BLOB pBlobPKCS7);
1887      PCCERT_CONTEXT (WINAPI *getCertContextFromPKCS7)(IEnroll4 *This,PCRYPT_DATA_BLOB pBlobPKCS7);
1888      HCERTSTORE (WINAPI *getMyStore)(IEnroll4 *This);
1889      HCERTSTORE (WINAPI *getCAStore)(IEnroll4 *This);
1890      HCERTSTORE (WINAPI *getROOTHStore)(IEnroll4 *This);
1891      HRESULT (WINAPI *enumProvidersWStr)(IEnroll4 *This,LONG dwIndex,LONG dwFlags,LPWSTR *pbstrProvName);
1892      HRESULT (WINAPI *enumContainersWStr)(IEnroll4 *This,LONG dwIndex,LPWSTR *pbstr);
1893      HRESULT (WINAPI *freeRequestInfoBlob)(IEnroll4 *This,CRYPT_DATA_BLOB pkcs7OrPkcs10);
1894      HRESULT (WINAPI *get_MyStoreNameWStr)(IEnroll4 *This,LPWSTR *szwName);
1895      HRESULT (WINAPI *put_MyStoreNameWStr)(IEnroll4 *This,LPWSTR szwName);
1896      HRESULT (WINAPI *get_MyStoreTypeWStr)(IEnroll4 *This,LPWSTR *szwType);
1897      HRESULT (WINAPI *put_MyStoreTypeWStr)(IEnroll4 *This,LPWSTR szwType);
1898      HRESULT (WINAPI *get_MyStoreFlags)(IEnroll4 *This,LONG *pdwFlags);
1899      HRESULT (WINAPI *put_MyStoreFlags)(IEnroll4 *This,LONG dwFlags);
1900      HRESULT (WINAPI *get_CAStoreNameWStr)(IEnroll4 *This,LPWSTR *szwName);
1901      HRESULT (WINAPI *put_CAStoreNameWStr)(IEnroll4 *This,LPWSTR szwName);
1902      HRESULT (WINAPI *get_CAStoreTypeWStr)(IEnroll4 *This,LPWSTR *szwType);
1903      HRESULT (WINAPI *put_CAStoreTypeWStr)(IEnroll4 *This,LPWSTR szwType);
1904      HRESULT (WINAPI *get_CAStoreFlags)(IEnroll4 *This,LONG *pdwFlags);
1905      HRESULT (WINAPI *put_CAStoreFlags)(IEnroll4 *This,LONG dwFlags);
1906      HRESULT (WINAPI *get_RootStoreNameWStr)(IEnroll4 *This,LPWSTR *szwName);
1907      HRESULT (WINAPI *put_RootStoreNameWStr)(IEnroll4 *This,LPWSTR szwName);
1908      HRESULT (WINAPI *get_RootStoreTypeWStr)(IEnroll4 *This,LPWSTR *szwType);
1909      HRESULT (WINAPI *put_RootStoreTypeWStr)(IEnroll4 *This,LPWSTR szwType);
1910      HRESULT (WINAPI *get_RootStoreFlags)(IEnroll4 *This,LONG *pdwFlags);
1911      HRESULT (WINAPI *put_RootStoreFlags)(IEnroll4 *This,LONG dwFlags);
1912      HRESULT (WINAPI *get_RequestStoreNameWStr)(IEnroll4 *This,LPWSTR *szwName);
1913      HRESULT (WINAPI *put_RequestStoreNameWStr)(IEnroll4 *This,LPWSTR szwName);
1914      HRESULT (WINAPI *get_RequestStoreTypeWStr)(IEnroll4 *This,LPWSTR *szwType);
1915      HRESULT (WINAPI *put_RequestStoreTypeWStr)(IEnroll4 *This,LPWSTR szwType);
1916      HRESULT (WINAPI *get_RequestStoreFlags)(IEnroll4 *This,LONG *pdwFlags);
1917      HRESULT (WINAPI *put_RequestStoreFlags)(IEnroll4 *This,LONG dwFlags);
1918      HRESULT (WINAPI *get_ContainerNameWStr)(IEnroll4 *This,LPWSTR *szwContainer);
1919      HRESULT (WINAPI *put_ContainerNameWStr)(IEnroll4 *This,LPWSTR szwContainer);
1920      HRESULT (WINAPI *get_ProviderNameWStr)(IEnroll4 *This,LPWSTR *szwProvider);
1921      HRESULT (WINAPI *put_ProviderNameWStr)(IEnroll4 *This,LPWSTR szwProvider);
1922      HRESULT (WINAPI *get_ProviderType)(IEnroll4 *This,LONG *pdwType);
1923      HRESULT (WINAPI *put_ProviderType)(IEnroll4 *This,LONG dwType);
1924      HRESULT (WINAPI *get_KeySpec)(IEnroll4 *This,LONG *pdw);
1925      HRESULT (WINAPI *put_KeySpec)(IEnroll4 *This,LONG dw);
1926      HRESULT (WINAPI *get_ProviderFlags)(IEnroll4 *This,LONG *pdwFlags);
1927      HRESULT (WINAPI *put_ProviderFlags)(IEnroll4 *This,LONG dwFlags);
1928      HRESULT (WINAPI *get_UseExistingKeySet)(IEnroll4 *This,WINBOOL *fUseExistingKeys);
1929      HRESULT (WINAPI *put_UseExistingKeySet)(IEnroll4 *This,WINBOOL fUseExistingKeys);
1930      HRESULT (WINAPI *get_GenKeyFlags)(IEnroll4 *This,LONG *pdwFlags);
1931      HRESULT (WINAPI *put_GenKeyFlags)(IEnroll4 *This,LONG dwFlags);
1932      HRESULT (WINAPI *get_DeleteRequestCert)(IEnroll4 *This,WINBOOL *fDelete);
1933      HRESULT (WINAPI *put_DeleteRequestCert)(IEnroll4 *This,WINBOOL fDelete);
1934      HRESULT (WINAPI *get_WriteCertToUserDS)(IEnroll4 *This,WINBOOL *fBool);
1935      HRESULT (WINAPI *put_WriteCertToUserDS)(IEnroll4 *This,WINBOOL fBool);
1936      HRESULT (WINAPI *get_EnableT61DNEncoding)(IEnroll4 *This,WINBOOL *fBool);
1937      HRESULT (WINAPI *put_EnableT61DNEncoding)(IEnroll4 *This,WINBOOL fBool);
1938      HRESULT (WINAPI *get_WriteCertToCSP)(IEnroll4 *This,WINBOOL *fBool);
1939      HRESULT (WINAPI *put_WriteCertToCSP)(IEnroll4 *This,WINBOOL fBool);
1940      HRESULT (WINAPI *get_SPCFileNameWStr)(IEnroll4 *This,LPWSTR *szw);
1941      HRESULT (WINAPI *put_SPCFileNameWStr)(IEnroll4 *This,LPWSTR szw);
1942      HRESULT (WINAPI *get_PVKFileNameWStr)(IEnroll4 *This,LPWSTR *szw);
1943      HRESULT (WINAPI *put_PVKFileNameWStr)(IEnroll4 *This,LPWSTR szw);
1944      HRESULT (WINAPI *get_HashAlgorithmWStr)(IEnroll4 *This,LPWSTR *szw);
1945      HRESULT (WINAPI *put_HashAlgorithmWStr)(IEnroll4 *This,LPWSTR szw);
1946      HRESULT (WINAPI *get_RenewalCertificate)(IEnroll4 *This,PCCERT_CONTEXT *ppCertContext);
1947      HRESULT (WINAPI *put_RenewalCertificate)(IEnroll4 *This,PCCERT_CONTEXT pCertContext);
1948      HRESULT (WINAPI *AddCertTypeToRequestWStr)(IEnroll4 *This,LPWSTR szw);
1949      HRESULT (WINAPI *AddNameValuePairToSignatureWStr)(IEnroll4 *This,LPWSTR Name,LPWSTR Value);
1950      HRESULT (WINAPI *AddExtensionsToRequest)(IEnroll4 *This,PCERT_EXTENSIONS pCertExtensions);
1951      HRESULT (WINAPI *AddAuthenticatedAttributesToPKCS7Request)(IEnroll4 *This,PCRYPT_ATTRIBUTES pAttributes);
1952      HRESULT (WINAPI *CreatePKCS7RequestFromRequest)(IEnroll4 *This,PCRYPT_DATA_BLOB pRequest,PCCERT_CONTEXT pSigningCertContext,PCRYPT_DATA_BLOB pPkcs7Blob);
1953      HRESULT (WINAPI *InstallPKCS7Blob)(IEnroll4 *This,PCRYPT_DATA_BLOB pBlobPKCS7);
1954      HRESULT (WINAPI *Reset)(IEnroll4 *This);
1955      HRESULT (WINAPI *GetSupportedKeySpec)(IEnroll4 *This,LONG *pdwKeySpec);
1956      HRESULT (WINAPI *GetKeyLen)(IEnroll4 *This,WINBOOL fMin,WINBOOL fExchange,LONG *pdwKeySize);
1957      HRESULT (WINAPI *EnumAlgs)(IEnroll4 *This,LONG dwIndex,LONG algClass,LONG *pdwAlgID);
1958      HRESULT (WINAPI *GetAlgNameWStr)(IEnroll4 *This,LONG algID,LPWSTR *ppwsz);
1959      HRESULT (WINAPI *put_ReuseHardwareKeyIfUnableToGenNew)(IEnroll4 *This,WINBOOL fReuseHardwareKeyIfUnableToGenNew);
1960      HRESULT (WINAPI *get_ReuseHardwareKeyIfUnableToGenNew)(IEnroll4 *This,WINBOOL *fReuseHardwareKeyIfUnableToGenNew);
1961      HRESULT (WINAPI *put_HashAlgID)(IEnroll4 *This,LONG hashAlgID);
1962      HRESULT (WINAPI *get_HashAlgID)(IEnroll4 *This,LONG *hashAlgID);
1963      HRESULT (WINAPI *SetHStoreMy)(IEnroll4 *This,HCERTSTORE hStore);
1964      HRESULT (WINAPI *SetHStoreCA)(IEnroll4 *This,HCERTSTORE hStore);
1965      HRESULT (WINAPI *SetHStoreROOT)(IEnroll4 *This,HCERTSTORE hStore);
1966      HRESULT (WINAPI *SetHStoreRequest)(IEnroll4 *This,HCERTSTORE hStore);
1967      HRESULT (WINAPI *put_LimitExchangeKeyToEncipherment)(IEnroll4 *This,WINBOOL fLimitExchangeKeyToEncipherment);
1968      HRESULT (WINAPI *get_LimitExchangeKeyToEncipherment)(IEnroll4 *This,WINBOOL *fLimitExchangeKeyToEncipherment);
1969      HRESULT (WINAPI *put_EnableSMIMECapabilities)(IEnroll4 *This,WINBOOL fEnableSMIMECapabilities);
1970      HRESULT (WINAPI *get_EnableSMIMECapabilities)(IEnroll4 *This,WINBOOL *fEnableSMIMECapabilities);
1971      HRESULT (WINAPI *put_ThumbPrintWStr)(IEnroll4 *This,CRYPT_DATA_BLOB thumbPrintBlob);
1972      HRESULT (WINAPI *get_ThumbPrintWStr)(IEnroll4 *This,PCRYPT_DATA_BLOB thumbPrintBlob);
1973      HRESULT (WINAPI *SetPrivateKeyArchiveCertificate)(IEnroll4 *This,PCCERT_CONTEXT pPrivateKeyArchiveCert);
1974      PCCERT_CONTEXT (WINAPI *GetPrivateKeyArchiveCertificate)(IEnroll4 *This);
1975      HRESULT (WINAPI *binaryBlobToString)(IEnroll4 *This,LONG Flags,PCRYPT_DATA_BLOB pblobBinary,LPWSTR *ppwszString);
1976      HRESULT (WINAPI *stringToBinaryBlob)(IEnroll4 *This,LONG Flags,LPCWSTR pwszString,PCRYPT_DATA_BLOB pblobBinary,LONG *pdwSkip,LONG *pdwFlags);
1977      HRESULT (WINAPI *addExtensionToRequestWStr)(IEnroll4 *This,LONG Flags,LPCWSTR pwszName,PCRYPT_DATA_BLOB pblobValue);
1978      HRESULT (WINAPI *addAttributeToRequestWStr)(IEnroll4 *This,LONG Flags,LPCWSTR pwszName,PCRYPT_DATA_BLOB pblobValue);
1979      HRESULT (WINAPI *addNameValuePairToRequestWStr)(IEnroll4 *This,LONG Flags,LPCWSTR pwszName,LPCWSTR pwszValue);
1980      HRESULT (WINAPI *resetExtensions)(IEnroll4 *This);
1981      HRESULT (WINAPI *resetAttributes)(IEnroll4 *This);
1982      HRESULT (WINAPI *createRequestWStr)(IEnroll4 *This,LONG Flags,LPCWSTR pwszDNName,LPCWSTR pwszUsage,PCRYPT_DATA_BLOB pblobRequest);
1983      HRESULT (WINAPI *createFileRequestWStr)(IEnroll4 *This,LONG Flags,LPCWSTR pwszDNName,LPCWSTR pwszUsage,LPCWSTR pwszRequestFileName);
1984      HRESULT (WINAPI *acceptResponseBlob)(IEnroll4 *This,PCRYPT_DATA_BLOB pblobResponse);
1985      HRESULT (WINAPI *acceptFileResponseWStr)(IEnroll4 *This,LPCWSTR pwszResponseFileName);
1986      HRESULT (WINAPI *getCertContextFromResponseBlob)(IEnroll4 *This,PCRYPT_DATA_BLOB pblobResponse,PCCERT_CONTEXT *ppCertContext);
1987      HRESULT (WINAPI *getCertContextFromFileResponseWStr)(IEnroll4 *This,LPCWSTR pwszResponseFileName,PCCERT_CONTEXT *ppCertContext);
1988      HRESULT (WINAPI *createPFXWStr)(IEnroll4 *This,LPCWSTR pwszPassword,PCRYPT_DATA_BLOB pblobPFX);
1989      HRESULT (WINAPI *createFilePFXWStr)(IEnroll4 *This,LPCWSTR pwszPassword,LPCWSTR pwszPFXFileName);
1990      HRESULT (WINAPI *setPendingRequestInfoWStr)(IEnroll4 *This,LONG lRequestID,LPCWSTR pwszCADNS,LPCWSTR pwszCAName,LPCWSTR pwszFriendlyName);
1991      HRESULT (WINAPI *enumPendingRequestWStr)(IEnroll4 *This,LONG lIndex,LONG lDesiredProperty,LPVOID ppProperty);
1992      HRESULT (WINAPI *removePendingRequestWStr)(IEnroll4 *This,CRYPT_DATA_BLOB thumbPrintBlob);
1993      HRESULT (WINAPI *GetKeyLenEx)(IEnroll4 *This,LONG lSizeSpec,LONG lKeySpec,LONG *pdwKeySize);
1994      HRESULT (WINAPI *InstallPKCS7BlobEx)(IEnroll4 *This,PCRYPT_DATA_BLOB pBlobPKCS7,LONG *plCertInstalled);
1995      HRESULT (WINAPI *AddCertTypeToRequestWStrEx)(IEnroll4 *This,LONG lType,LPCWSTR pwszOIDOrName,LONG lMajorVersion,WINBOOL fMinorVersion,LONG lMinorVersion);
1996      HRESULT (WINAPI *getProviderTypeWStr)(IEnroll4 *This,LPCWSTR pwszProvName,LONG *plProvType);
1997      HRESULT (WINAPI *addBlobPropertyToCertificateWStr)(IEnroll4 *This,LONG lPropertyId,LONG lReserved,PCRYPT_DATA_BLOB pBlobProperty);
1998      HRESULT (WINAPI *SetSignerCertificate)(IEnroll4 *This,PCCERT_CONTEXT pSignerCert);
1999      HRESULT (WINAPI *put_ClientId)(IEnroll4 *This,LONG lClientId);
2000      HRESULT (WINAPI *get_ClientId)(IEnroll4 *This,LONG *plClientId);
2001      HRESULT (WINAPI *put_IncludeSubjectKeyID)(IEnroll4 *This,WINBOOL fInclude);
2002      HRESULT (WINAPI *get_IncludeSubjectKeyID)(IEnroll4 *This,WINBOOL *pfInclude);
2003    END_INTERFACE
2004  } IEnroll4Vtbl;
2005  struct IEnroll4 {
2006    CONST_VTBL struct IEnroll4Vtbl *lpVtbl;
2007  };
2008#ifdef COBJMACROS
2009#define IEnroll4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2010#define IEnroll4_AddRef(This) (This)->lpVtbl->AddRef(This)
2011#define IEnroll4_Release(This) (This)->lpVtbl->Release(This)
2012#define IEnroll4_createFilePKCS10WStr(This,DNName,Usage,wszPKCS10FileName) (This)->lpVtbl->createFilePKCS10WStr(This,DNName,Usage,wszPKCS10FileName)
2013#define IEnroll4_acceptFilePKCS7WStr(This,wszPKCS7FileName) (This)->lpVtbl->acceptFilePKCS7WStr(This,wszPKCS7FileName)
2014#define IEnroll4_createPKCS10WStr(This,DNName,Usage,pPkcs10Blob) (This)->lpVtbl->createPKCS10WStr(This,DNName,Usage,pPkcs10Blob)
2015#define IEnroll4_acceptPKCS7Blob(This,pBlobPKCS7) (This)->lpVtbl->acceptPKCS7Blob(This,pBlobPKCS7)
2016#define IEnroll4_getCertContextFromPKCS7(This,pBlobPKCS7) (This)->lpVtbl->getCertContextFromPKCS7(This,pBlobPKCS7)
2017#define IEnroll4_getMyStore(This) (This)->lpVtbl->getMyStore(This)
2018#define IEnroll4_getCAStore(This) (This)->lpVtbl->getCAStore(This)
2019#define IEnroll4_getROOTHStore(This) (This)->lpVtbl->getROOTHStore(This)
2020#define IEnroll4_enumProvidersWStr(This,dwIndex,dwFlags,pbstrProvName) (This)->lpVtbl->enumProvidersWStr(This,dwIndex,dwFlags,pbstrProvName)
2021#define IEnroll4_enumContainersWStr(This,dwIndex,pbstr) (This)->lpVtbl->enumContainersWStr(This,dwIndex,pbstr)
2022#define IEnroll4_freeRequestInfoBlob(This,pkcs7OrPkcs10) (This)->lpVtbl->freeRequestInfoBlob(This,pkcs7OrPkcs10)
2023#define IEnroll4_get_MyStoreNameWStr(This,szwName) (This)->lpVtbl->get_MyStoreNameWStr(This,szwName)
2024#define IEnroll4_put_MyStoreNameWStr(This,szwName) (This)->lpVtbl->put_MyStoreNameWStr(This,szwName)
2025#define IEnroll4_get_MyStoreTypeWStr(This,szwType) (This)->lpVtbl->get_MyStoreTypeWStr(This,szwType)
2026#define IEnroll4_put_MyStoreTypeWStr(This,szwType) (This)->lpVtbl->put_MyStoreTypeWStr(This,szwType)
2027#define IEnroll4_get_MyStoreFlags(This,pdwFlags) (This)->lpVtbl->get_MyStoreFlags(This,pdwFlags)
2028#define IEnroll4_put_MyStoreFlags(This,dwFlags) (This)->lpVtbl->put_MyStoreFlags(This,dwFlags)
2029#define IEnroll4_get_CAStoreNameWStr(This,szwName) (This)->lpVtbl->get_CAStoreNameWStr(This,szwName)
2030#define IEnroll4_put_CAStoreNameWStr(This,szwName) (This)->lpVtbl->put_CAStoreNameWStr(This,szwName)
2031#define IEnroll4_get_CAStoreTypeWStr(This,szwType) (This)->lpVtbl->get_CAStoreTypeWStr(This,szwType)
2032#define IEnroll4_put_CAStoreTypeWStr(This,szwType) (This)->lpVtbl->put_CAStoreTypeWStr(This,szwType)
2033#define IEnroll4_get_CAStoreFlags(This,pdwFlags) (This)->lpVtbl->get_CAStoreFlags(This,pdwFlags)
2034#define IEnroll4_put_CAStoreFlags(This,dwFlags) (This)->lpVtbl->put_CAStoreFlags(This,dwFlags)
2035#define IEnroll4_get_RootStoreNameWStr(This,szwName) (This)->lpVtbl->get_RootStoreNameWStr(This,szwName)
2036#define IEnroll4_put_RootStoreNameWStr(This,szwName) (This)->lpVtbl->put_RootStoreNameWStr(This,szwName)
2037#define IEnroll4_get_RootStoreTypeWStr(This,szwType) (This)->lpVtbl->get_RootStoreTypeWStr(This,szwType)
2038#define IEnroll4_put_RootStoreTypeWStr(This,szwType) (This)->lpVtbl->put_RootStoreTypeWStr(This,szwType)
2039#define IEnroll4_get_RootStoreFlags(This,pdwFlags) (This)->lpVtbl->get_RootStoreFlags(This,pdwFlags)
2040#define IEnroll4_put_RootStoreFlags(This,dwFlags) (This)->lpVtbl->put_RootStoreFlags(This,dwFlags)
2041#define IEnroll4_get_RequestStoreNameWStr(This,szwName) (This)->lpVtbl->get_RequestStoreNameWStr(This,szwName)
2042#define IEnroll4_put_RequestStoreNameWStr(This,szwName) (This)->lpVtbl->put_RequestStoreNameWStr(This,szwName)
2043#define IEnroll4_get_RequestStoreTypeWStr(This,szwType) (This)->lpVtbl->get_RequestStoreTypeWStr(This,szwType)
2044#define IEnroll4_put_RequestStoreTypeWStr(This,szwType) (This)->lpVtbl->put_RequestStoreTypeWStr(This,szwType)
2045#define IEnroll4_get_RequestStoreFlags(This,pdwFlags) (This)->lpVtbl->get_RequestStoreFlags(This,pdwFlags)
2046#define IEnroll4_put_RequestStoreFlags(This,dwFlags) (This)->lpVtbl->put_RequestStoreFlags(This,dwFlags)
2047#define IEnroll4_get_ContainerNameWStr(This,szwContainer) (This)->lpVtbl->get_ContainerNameWStr(This,szwContainer)
2048#define IEnroll4_put_ContainerNameWStr(This,szwContainer) (This)->lpVtbl->put_ContainerNameWStr(This,szwContainer)
2049#define IEnroll4_get_ProviderNameWStr(This,szwProvider) (This)->lpVtbl->get_ProviderNameWStr(This,szwProvider)
2050#define IEnroll4_put_ProviderNameWStr(This,szwProvider) (This)->lpVtbl->put_ProviderNameWStr(This,szwProvider)
2051#define IEnroll4_get_ProviderType(This,pdwType) (This)->lpVtbl->get_ProviderType(This,pdwType)
2052#define IEnroll4_put_ProviderType(This,dwType) (This)->lpVtbl->put_ProviderType(This,dwType)
2053#define IEnroll4_get_KeySpec(This,pdw) (This)->lpVtbl->get_KeySpec(This,pdw)
2054#define IEnroll4_put_KeySpec(This,dw) (This)->lpVtbl->put_KeySpec(This,dw)
2055#define IEnroll4_get_ProviderFlags(This,pdwFlags) (This)->lpVtbl->get_ProviderFlags(This,pdwFlags)
2056#define IEnroll4_put_ProviderFlags(This,dwFlags) (This)->lpVtbl->put_ProviderFlags(This,dwFlags)
2057#define IEnroll4_get_UseExistingKeySet(This,fUseExistingKeys) (This)->lpVtbl->get_UseExistingKeySet(This,fUseExistingKeys)
2058#define IEnroll4_put_UseExistingKeySet(This,fUseExistingKeys) (This)->lpVtbl->put_UseExistingKeySet(This,fUseExistingKeys)
2059#define IEnroll4_get_GenKeyFlags(This,pdwFlags) (This)->lpVtbl->get_GenKeyFlags(This,pdwFlags)
2060#define IEnroll4_put_GenKeyFlags(This,dwFlags) (This)->lpVtbl->put_GenKeyFlags(This,dwFlags)
2061#define IEnroll4_get_DeleteRequestCert(This,fDelete) (This)->lpVtbl->get_DeleteRequestCert(This,fDelete)
2062#define IEnroll4_put_DeleteRequestCert(This,fDelete) (This)->lpVtbl->put_DeleteRequestCert(This,fDelete)
2063#define IEnroll4_get_WriteCertToUserDS(This,fBool) (This)->lpVtbl->get_WriteCertToUserDS(This,fBool)
2064#define IEnroll4_put_WriteCertToUserDS(This,fBool) (This)->lpVtbl->put_WriteCertToUserDS(This,fBool)
2065#define IEnroll4_get_EnableT61DNEncoding(This,fBool) (This)->lpVtbl->get_EnableT61DNEncoding(This,fBool)
2066#define IEnroll4_put_EnableT61DNEncoding(This,fBool) (This)->lpVtbl->put_EnableT61DNEncoding(This,fBool)
2067#define IEnroll4_get_WriteCertToCSP(This,fBool) (This)->lpVtbl->get_WriteCertToCSP(This,fBool)
2068#define IEnroll4_put_WriteCertToCSP(This,fBool) (This)->lpVtbl->put_WriteCertToCSP(This,fBool)
2069#define IEnroll4_get_SPCFileNameWStr(This,szw) (This)->lpVtbl->get_SPCFileNameWStr(This,szw)
2070#define IEnroll4_put_SPCFileNameWStr(This,szw) (This)->lpVtbl->put_SPCFileNameWStr(This,szw)
2071#define IEnroll4_get_PVKFileNameWStr(This,szw) (This)->lpVtbl->get_PVKFileNameWStr(This,szw)
2072#define IEnroll4_put_PVKFileNameWStr(This,szw) (This)->lpVtbl->put_PVKFileNameWStr(This,szw)
2073#define IEnroll4_get_HashAlgorithmWStr(This,szw) (This)->lpVtbl->get_HashAlgorithmWStr(This,szw)
2074#define IEnroll4_put_HashAlgorithmWStr(This,szw) (This)->lpVtbl->put_HashAlgorithmWStr(This,szw)
2075#define IEnroll4_get_RenewalCertificate(This,ppCertContext) (This)->lpVtbl->get_RenewalCertificate(This,ppCertContext)
2076#define IEnroll4_put_RenewalCertificate(This,pCertContext) (This)->lpVtbl->put_RenewalCertificate(This,pCertContext)
2077#define IEnroll4_AddCertTypeToRequestWStr(This,szw) (This)->lpVtbl->AddCertTypeToRequestWStr(This,szw)
2078#define IEnroll4_AddNameValuePairToSignatureWStr(This,Name,Value) (This)->lpVtbl->AddNameValuePairToSignatureWStr(This,Name,Value)
2079#define IEnroll4_AddExtensionsToRequest(This,pCertExtensions) (This)->lpVtbl->AddExtensionsToRequest(This,pCertExtensions)
2080#define IEnroll4_AddAuthenticatedAttributesToPKCS7Request(This,pAttributes) (This)->lpVtbl->AddAuthenticatedAttributesToPKCS7Request(This,pAttributes)
2081#define IEnroll4_CreatePKCS7RequestFromRequest(This,pRequest,pSigningCertContext,pPkcs7Blob) (This)->lpVtbl->CreatePKCS7RequestFromRequest(This,pRequest,pSigningCertContext,pPkcs7Blob)
2082#define IEnroll4_InstallPKCS7Blob(This,pBlobPKCS7) (This)->lpVtbl->InstallPKCS7Blob(This,pBlobPKCS7)
2083#define IEnroll4_Reset(This) (This)->lpVtbl->Reset(This)
2084#define IEnroll4_GetSupportedKeySpec(This,pdwKeySpec) (This)->lpVtbl->GetSupportedKeySpec(This,pdwKeySpec)
2085#define IEnroll4_GetKeyLen(This,fMin,fExchange,pdwKeySize) (This)->lpVtbl->GetKeyLen(This,fMin,fExchange,pdwKeySize)
2086#define IEnroll4_EnumAlgs(This,dwIndex,algClass,pdwAlgID) (This)->lpVtbl->EnumAlgs(This,dwIndex,algClass,pdwAlgID)
2087#define IEnroll4_GetAlgNameWStr(This,algID,ppwsz) (This)->lpVtbl->GetAlgNameWStr(This,algID,ppwsz)
2088#define IEnroll4_put_ReuseHardwareKeyIfUnableToGenNew(This,fReuseHardwareKeyIfUnableToGenNew) (This)->lpVtbl->put_ReuseHardwareKeyIfUnableToGenNew(This,fReuseHardwareKeyIfUnableToGenNew)
2089#define IEnroll4_get_ReuseHardwareKeyIfUnableToGenNew(This,fReuseHardwareKeyIfUnableToGenNew) (This)->lpVtbl->get_ReuseHardwareKeyIfUnableToGenNew(This,fReuseHardwareKeyIfUnableToGenNew)
2090#define IEnroll4_put_HashAlgID(This,hashAlgID) (This)->lpVtbl->put_HashAlgID(This,hashAlgID)
2091#define IEnroll4_get_HashAlgID(This,hashAlgID) (This)->lpVtbl->get_HashAlgID(This,hashAlgID)
2092#define IEnroll4_SetHStoreMy(This,hStore) (This)->lpVtbl->SetHStoreMy(This,hStore)
2093#define IEnroll4_SetHStoreCA(This,hStore) (This)->lpVtbl->SetHStoreCA(This,hStore)
2094#define IEnroll4_SetHStoreROOT(This,hStore) (This)->lpVtbl->SetHStoreROOT(This,hStore)
2095#define IEnroll4_SetHStoreRequest(This,hStore) (This)->lpVtbl->SetHStoreRequest(This,hStore)
2096#define IEnroll4_put_LimitExchangeKeyToEncipherment(This,fLimitExchangeKeyToEncipherment) (This)->lpVtbl->put_LimitExchangeKeyToEncipherment(This,fLimitExchangeKeyToEncipherment)
2097#define IEnroll4_get_LimitExchangeKeyToEncipherment(This,fLimitExchangeKeyToEncipherment) (This)->lpVtbl->get_LimitExchangeKeyToEncipherment(This,fLimitExchangeKeyToEncipherment)
2098#define IEnroll4_put_EnableSMIMECapabilities(This,fEnableSMIMECapabilities) (This)->lpVtbl->put_EnableSMIMECapabilities(This,fEnableSMIMECapabilities)
2099#define IEnroll4_get_EnableSMIMECapabilities(This,fEnableSMIMECapabilities) (This)->lpVtbl->get_EnableSMIMECapabilities(This,fEnableSMIMECapabilities)
2100#define IEnroll4_put_ThumbPrintWStr(This,thumbPrintBlob) (This)->lpVtbl->put_ThumbPrintWStr(This,thumbPrintBlob)
2101#define IEnroll4_get_ThumbPrintWStr(This,thumbPrintBlob) (This)->lpVtbl->get_ThumbPrintWStr(This,thumbPrintBlob)
2102#define IEnroll4_SetPrivateKeyArchiveCertificate(This,pPrivateKeyArchiveCert) (This)->lpVtbl->SetPrivateKeyArchiveCertificate(This,pPrivateKeyArchiveCert)
2103#define IEnroll4_GetPrivateKeyArchiveCertificate(This) (This)->lpVtbl->GetPrivateKeyArchiveCertificate(This)
2104#define IEnroll4_binaryBlobToString(This,Flags,pblobBinary,ppwszString) (This)->lpVtbl->binaryBlobToString(This,Flags,pblobBinary,ppwszString)
2105#define IEnroll4_stringToBinaryBlob(This,Flags,pwszString,pblobBinary,pdwSkip,pdwFlags) (This)->lpVtbl->stringToBinaryBlob(This,Flags,pwszString,pblobBinary,pdwSkip,pdwFlags)
2106#define IEnroll4_addExtensionToRequestWStr(This,Flags,pwszName,pblobValue) (This)->lpVtbl->addExtensionToRequestWStr(This,Flags,pwszName,pblobValue)
2107#define IEnroll4_addAttributeToRequestWStr(This,Flags,pwszName,pblobValue) (This)->lpVtbl->addAttributeToRequestWStr(This,Flags,pwszName,pblobValue)
2108#define IEnroll4_addNameValuePairToRequestWStr(This,Flags,pwszName,pwszValue) (This)->lpVtbl->addNameValuePairToRequestWStr(This,Flags,pwszName,pwszValue)
2109#define IEnroll4_resetExtensions(This) (This)->lpVtbl->resetExtensions(This)
2110#define IEnroll4_resetAttributes(This) (This)->lpVtbl->resetAttributes(This)
2111#define IEnroll4_createRequestWStr(This,Flags,pwszDNName,pwszUsage,pblobRequest) (This)->lpVtbl->createRequestWStr(This,Flags,pwszDNName,pwszUsage,pblobRequest)
2112#define IEnroll4_createFileRequestWStr(This,Flags,pwszDNName,pwszUsage,pwszRequestFileName) (This)->lpVtbl->createFileRequestWStr(This,Flags,pwszDNName,pwszUsage,pwszRequestFileName)
2113#define IEnroll4_acceptResponseBlob(This,pblobResponse) (This)->lpVtbl->acceptResponseBlob(This,pblobResponse)
2114#define IEnroll4_acceptFileResponseWStr(This,pwszResponseFileName) (This)->lpVtbl->acceptFileResponseWStr(This,pwszResponseFileName)
2115#define IEnroll4_getCertContextFromResponseBlob(This,pblobResponse,ppCertContext) (This)->lpVtbl->getCertContextFromResponseBlob(This,pblobResponse,ppCertContext)
2116#define IEnroll4_getCertContextFromFileResponseWStr(This,pwszResponseFileName,ppCertContext) (This)->lpVtbl->getCertContextFromFileResponseWStr(This,pwszResponseFileName,ppCertContext)
2117#define IEnroll4_createPFXWStr(This,pwszPassword,pblobPFX) (This)->lpVtbl->createPFXWStr(This,pwszPassword,pblobPFX)
2118#define IEnroll4_createFilePFXWStr(This,pwszPassword,pwszPFXFileName) (This)->lpVtbl->createFilePFXWStr(This,pwszPassword,pwszPFXFileName)
2119#define IEnroll4_setPendingRequestInfoWStr(This,lRequestID,pwszCADNS,pwszCAName,pwszFriendlyName) (This)->lpVtbl->setPendingRequestInfoWStr(This,lRequestID,pwszCADNS,pwszCAName,pwszFriendlyName)
2120#define IEnroll4_enumPendingRequestWStr(This,lIndex,lDesiredProperty,ppProperty) (This)->lpVtbl->enumPendingRequestWStr(This,lIndex,lDesiredProperty,ppProperty)
2121#define IEnroll4_removePendingRequestWStr(This,thumbPrintBlob) (This)->lpVtbl->removePendingRequestWStr(This,thumbPrintBlob)
2122#define IEnroll4_GetKeyLenEx(This,lSizeSpec,lKeySpec,pdwKeySize) (This)->lpVtbl->GetKeyLenEx(This,lSizeSpec,lKeySpec,pdwKeySize)
2123#define IEnroll4_InstallPKCS7BlobEx(This,pBlobPKCS7,plCertInstalled) (This)->lpVtbl->InstallPKCS7BlobEx(This,pBlobPKCS7,plCertInstalled)
2124#define IEnroll4_AddCertTypeToRequestWStrEx(This,lType,pwszOIDOrName,lMajorVersion,fMinorVersion,lMinorVersion) (This)->lpVtbl->AddCertTypeToRequestWStrEx(This,lType,pwszOIDOrName,lMajorVersion,fMinorVersion,lMinorVersion)
2125#define IEnroll4_getProviderTypeWStr(This,pwszProvName,plProvType) (This)->lpVtbl->getProviderTypeWStr(This,pwszProvName,plProvType)
2126#define IEnroll4_addBlobPropertyToCertificateWStr(This,lPropertyId,lReserved,pBlobProperty) (This)->lpVtbl->addBlobPropertyToCertificateWStr(This,lPropertyId,lReserved,pBlobProperty)
2127#define IEnroll4_SetSignerCertificate(This,pSignerCert) (This)->lpVtbl->SetSignerCertificate(This,pSignerCert)
2128#define IEnroll4_put_ClientId(This,lClientId) (This)->lpVtbl->put_ClientId(This,lClientId)
2129#define IEnroll4_get_ClientId(This,plClientId) (This)->lpVtbl->get_ClientId(This,plClientId)
2130#define IEnroll4_put_IncludeSubjectKeyID(This,fInclude) (This)->lpVtbl->put_IncludeSubjectKeyID(This,fInclude)
2131#define IEnroll4_get_IncludeSubjectKeyID(This,pfInclude) (This)->lpVtbl->get_IncludeSubjectKeyID(This,pfInclude)
2132#endif
2133#endif
2134  HRESULT WINAPI IEnroll4_put_ThumbPrintWStr_Proxy(IEnroll4 *This,CRYPT_DATA_BLOB thumbPrintBlob);
2135  void __RPC_STUB IEnroll4_put_ThumbPrintWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2136  HRESULT WINAPI IEnroll4_get_ThumbPrintWStr_Proxy(IEnroll4 *This,PCRYPT_DATA_BLOB thumbPrintBlob);
2137  void __RPC_STUB IEnroll4_get_ThumbPrintWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2138  HRESULT WINAPI IEnroll4_SetPrivateKeyArchiveCertificate_Proxy(IEnroll4 *This,PCCERT_CONTEXT pPrivateKeyArchiveCert);
2139  void __RPC_STUB IEnroll4_SetPrivateKeyArchiveCertificate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2140  PCCERT_CONTEXT WINAPI IEnroll4_GetPrivateKeyArchiveCertificate_Proxy(IEnroll4 *This);
2141  void __RPC_STUB IEnroll4_GetPrivateKeyArchiveCertificate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2142  HRESULT WINAPI IEnroll4_binaryBlobToString_Proxy(IEnroll4 *This,LONG Flags,PCRYPT_DATA_BLOB pblobBinary,LPWSTR *ppwszString);
2143  void __RPC_STUB IEnroll4_binaryBlobToString_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2144  HRESULT WINAPI IEnroll4_stringToBinaryBlob_Proxy(IEnroll4 *This,LONG Flags,LPCWSTR pwszString,PCRYPT_DATA_BLOB pblobBinary,LONG *pdwSkip,LONG *pdwFlags);
2145  void __RPC_STUB IEnroll4_stringToBinaryBlob_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2146  HRESULT WINAPI IEnroll4_addExtensionToRequestWStr_Proxy(IEnroll4 *This,LONG Flags,LPCWSTR pwszName,PCRYPT_DATA_BLOB pblobValue);
2147  void __RPC_STUB IEnroll4_addExtensionToRequestWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2148  HRESULT WINAPI IEnroll4_addAttributeToRequestWStr_Proxy(IEnroll4 *This,LONG Flags,LPCWSTR pwszName,PCRYPT_DATA_BLOB pblobValue);
2149  void __RPC_STUB IEnroll4_addAttributeToRequestWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2150  HRESULT WINAPI IEnroll4_addNameValuePairToRequestWStr_Proxy(IEnroll4 *This,LONG Flags,LPCWSTR pwszName,LPCWSTR pwszValue);
2151  void __RPC_STUB IEnroll4_addNameValuePairToRequestWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2152  HRESULT WINAPI IEnroll4_resetExtensions_Proxy(IEnroll4 *This);
2153  void __RPC_STUB IEnroll4_resetExtensions_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2154  HRESULT WINAPI IEnroll4_resetAttributes_Proxy(IEnroll4 *This);
2155  void __RPC_STUB IEnroll4_resetAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2156  HRESULT WINAPI IEnroll4_createRequestWStr_Proxy(IEnroll4 *This,LONG Flags,LPCWSTR pwszDNName,LPCWSTR pwszUsage,PCRYPT_DATA_BLOB pblobRequest);
2157  void __RPC_STUB IEnroll4_createRequestWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2158  HRESULT WINAPI IEnroll4_createFileRequestWStr_Proxy(IEnroll4 *This,LONG Flags,LPCWSTR pwszDNName,LPCWSTR pwszUsage,LPCWSTR pwszRequestFileName);
2159  void __RPC_STUB IEnroll4_createFileRequestWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2160  HRESULT WINAPI IEnroll4_acceptResponseBlob_Proxy(IEnroll4 *This,PCRYPT_DATA_BLOB pblobResponse);
2161  void __RPC_STUB IEnroll4_acceptResponseBlob_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2162  HRESULT WINAPI IEnroll4_acceptFileResponseWStr_Proxy(IEnroll4 *This,LPCWSTR pwszResponseFileName);
2163  void __RPC_STUB IEnroll4_acceptFileResponseWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2164  HRESULT WINAPI IEnroll4_getCertContextFromResponseBlob_Proxy(IEnroll4 *This,PCRYPT_DATA_BLOB pblobResponse,PCCERT_CONTEXT *ppCertContext);
2165  void __RPC_STUB IEnroll4_getCertContextFromResponseBlob_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2166  HRESULT WINAPI IEnroll4_getCertContextFromFileResponseWStr_Proxy(IEnroll4 *This,LPCWSTR pwszResponseFileName,PCCERT_CONTEXT *ppCertContext);
2167  void __RPC_STUB IEnroll4_getCertContextFromFileResponseWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2168  HRESULT WINAPI IEnroll4_createPFXWStr_Proxy(IEnroll4 *This,LPCWSTR pwszPassword,PCRYPT_DATA_BLOB pblobPFX);
2169  void __RPC_STUB IEnroll4_createPFXWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2170  HRESULT WINAPI IEnroll4_createFilePFXWStr_Proxy(IEnroll4 *This,LPCWSTR pwszPassword,LPCWSTR pwszPFXFileName);
2171  void __RPC_STUB IEnroll4_createFilePFXWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2172  HRESULT WINAPI IEnroll4_setPendingRequestInfoWStr_Proxy(IEnroll4 *This,LONG lRequestID,LPCWSTR pwszCADNS,LPCWSTR pwszCAName,LPCWSTR pwszFriendlyName);
2173  void __RPC_STUB IEnroll4_setPendingRequestInfoWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2174  HRESULT WINAPI IEnroll4_enumPendingRequestWStr_Proxy(IEnroll4 *This,LONG lIndex,LONG lDesiredProperty,LPVOID ppProperty);
2175  void __RPC_STUB IEnroll4_enumPendingRequestWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2176  HRESULT WINAPI IEnroll4_removePendingRequestWStr_Proxy(IEnroll4 *This,CRYPT_DATA_BLOB thumbPrintBlob);
2177  void __RPC_STUB IEnroll4_removePendingRequestWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2178  HRESULT WINAPI IEnroll4_GetKeyLenEx_Proxy(IEnroll4 *This,LONG lSizeSpec,LONG lKeySpec,LONG *pdwKeySize);
2179  void __RPC_STUB IEnroll4_GetKeyLenEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2180  HRESULT WINAPI IEnroll4_InstallPKCS7BlobEx_Proxy(IEnroll4 *This,PCRYPT_DATA_BLOB pBlobPKCS7,LONG *plCertInstalled);
2181  void __RPC_STUB IEnroll4_InstallPKCS7BlobEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2182  HRESULT WINAPI IEnroll4_AddCertTypeToRequestWStrEx_Proxy(IEnroll4 *This,LONG lType,LPCWSTR pwszOIDOrName,LONG lMajorVersion,WINBOOL fMinorVersion,LONG lMinorVersion);
2183  void __RPC_STUB IEnroll4_AddCertTypeToRequestWStrEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2184  HRESULT WINAPI IEnroll4_getProviderTypeWStr_Proxy(IEnroll4 *This,LPCWSTR pwszProvName,LONG *plProvType);
2185  void __RPC_STUB IEnroll4_getProviderTypeWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2186  HRESULT WINAPI IEnroll4_addBlobPropertyToCertificateWStr_Proxy(IEnroll4 *This,LONG lPropertyId,LONG lReserved,PCRYPT_DATA_BLOB pBlobProperty);
2187  void __RPC_STUB IEnroll4_addBlobPropertyToCertificateWStr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2188  HRESULT WINAPI IEnroll4_SetSignerCertificate_Proxy(IEnroll4 *This,PCCERT_CONTEXT pSignerCert);
2189  void __RPC_STUB IEnroll4_SetSignerCertificate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2190  HRESULT WINAPI IEnroll4_put_ClientId_Proxy(IEnroll4 *This,LONG lClientId);
2191  void __RPC_STUB IEnroll4_put_ClientId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2192  HRESULT WINAPI IEnroll4_get_ClientId_Proxy(IEnroll4 *This,LONG *plClientId);
2193  void __RPC_STUB IEnroll4_get_ClientId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2194  HRESULT WINAPI IEnroll4_put_IncludeSubjectKeyID_Proxy(IEnroll4 *This,WINBOOL fInclude);
2195  void __RPC_STUB IEnroll4_put_IncludeSubjectKeyID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2196  HRESULT WINAPI IEnroll4_get_IncludeSubjectKeyID_Proxy(IEnroll4 *This,WINBOOL *pfInclude);
2197  void __RPC_STUB IEnroll4_get_IncludeSubjectKeyID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
2198#endif
2199
2200#ifndef __XENROLLLib_LIBRARY_DEFINED__
2201#define __XENROLLLib_LIBRARY_DEFINED__
2202  extern const IID LIBID_XENROLLLib;
2203  extern const CLSID CLSID_CEnroll2;
2204  extern const CLSID CLSID_CEnroll;
2205#ifdef __cplusplus
2206}
2207  class CEnroll2;
2208  class CEnroll;
2209  extern "C" {
2210#endif
2211#endif
2212
2213  IEnroll *WINAPI PIEnrollGetNoCOM(void);
2214  IEnroll2 *WINAPI PIEnroll2GetNoCOM(void);
2215  IEnroll4 *WINAPI PIEnroll4GetNoCOM(void);
2216
2217#define CRYPT_ENUM_ALL_PROVIDERS 0x1
2218#define XEPR_ENUM_FIRST -1
2219#define XEPR_CADNS 0x01
2220#define XEPR_CANAME 0x02
2221#define XEPR_CAFRIENDLYNAME 0x03
2222#define XEPR_REQUESTID 0x04
2223#define XEPR_DATE 0x05
2224#define XEPR_TEMPLATENAME 0x06
2225#define XEPR_VERSION 0x07
2226#define XEPR_HASH 0x08
2227#define XEPR_V1TEMPLATENAME 0x09
2228#define XEPR_V2TEMPLATEOID 0x10
2229#define XECR_PKCS10_V2_0 0x1
2230#define XECR_PKCS7 0x2
2231#define XECR_CMC 0x3
2232#define XECR_PKCS10_V1_5 0x4
2233#define XEKL_KEYSIZE_MIN 0x1
2234#define XEKL_KEYSIZE_MAX 0x2
2235#define XEKL_KEYSIZE_INC 0x3
2236#define XEKL_KEYSIZE_DEFAULT 0x4
2237#define XEKL_KEYSPEC_KEYX 0x1
2238#define XEKL_KEYSPEC_SIG 0x2
2239#define XECT_EXTENSION_V1 0x1
2240#define XECT_EXTENSION_V2 0x2
2241#define XECP_STRING_PROPERTY 0x1
2242#define XECI_DISABLE 0x0
2243#define XECI_XENROLL 0x1
2244#define XECI_AUTOENROLL 0x2
2245#define XECI_REQWIZARD 0x3
2246#define XECI_CERTREQ 0x4
2247
2248  extern RPC_IF_HANDLE __MIDL_itf_xenroll_0269_v0_0_c_ifspec;
2249  extern RPC_IF_HANDLE __MIDL_itf_xenroll_0269_v0_0_s_ifspec;
2250
2251  ULONG __RPC_API BSTR_UserSize(ULONG *,ULONG,BSTR *);
2252  unsigned char *__RPC_API BSTR_UserMarshal(ULONG *,unsigned char *,BSTR *);
2253  unsigned char *__RPC_API BSTR_UserUnmarshal(ULONG *,unsigned char *,BSTR *);
2254  void __RPC_API BSTR_UserFree(ULONG *,BSTR *);
2255  ULONG __RPC_API VARIANT_UserSize(ULONG *,ULONG,VARIANT *);
2256  unsigned char *__RPC_API VARIANT_UserMarshal(ULONG *,unsigned char *,VARIANT *);
2257  unsigned char *__RPC_API VARIANT_UserUnmarshal(ULONG *,unsigned char *,VARIANT *);
2258  void __RPC_API VARIANT_UserFree(ULONG *,VARIANT *);
2259
2260#ifdef __cplusplus
2261}
2262#endif
2263#endif