Xenroll.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:295k
源码类别:

模拟服务器

开发平台:

C/C++

  1. void __RPC_STUB IEnroll_get_ProviderFlags_Stub(
  2.     IRpcStubBuffer *This,
  3.     IRpcChannelBuffer *_pRpcChannelBuffer,
  4.     PRPC_MESSAGE _pRpcMessage,
  5.     DWORD *_pdwStubPhase);
  6. /* [propput] */ HRESULT STDMETHODCALLTYPE IEnroll_put_ProviderFlags_Proxy( 
  7.     IEnroll * This,
  8.     /* [in] */ LONG dwFlags);
  9. void __RPC_STUB IEnroll_put_ProviderFlags_Stub(
  10.     IRpcStubBuffer *This,
  11.     IRpcChannelBuffer *_pRpcChannelBuffer,
  12.     PRPC_MESSAGE _pRpcMessage,
  13.     DWORD *_pdwStubPhase);
  14. /* [propget] */ HRESULT STDMETHODCALLTYPE IEnroll_get_UseExistingKeySet_Proxy( 
  15.     IEnroll * This,
  16.     /* [out] */ BOOL *fUseExistingKeys);
  17. void __RPC_STUB IEnroll_get_UseExistingKeySet_Stub(
  18.     IRpcStubBuffer *This,
  19.     IRpcChannelBuffer *_pRpcChannelBuffer,
  20.     PRPC_MESSAGE _pRpcMessage,
  21.     DWORD *_pdwStubPhase);
  22. /* [propput] */ HRESULT STDMETHODCALLTYPE IEnroll_put_UseExistingKeySet_Proxy( 
  23.     IEnroll * This,
  24.     /* [in] */ BOOL fUseExistingKeys);
  25. void __RPC_STUB IEnroll_put_UseExistingKeySet_Stub(
  26.     IRpcStubBuffer *This,
  27.     IRpcChannelBuffer *_pRpcChannelBuffer,
  28.     PRPC_MESSAGE _pRpcMessage,
  29.     DWORD *_pdwStubPhase);
  30. /* [propget] */ HRESULT STDMETHODCALLTYPE IEnroll_get_GenKeyFlags_Proxy( 
  31.     IEnroll * This,
  32.     /* [out] */ LONG *pdwFlags);
  33. void __RPC_STUB IEnroll_get_GenKeyFlags_Stub(
  34.     IRpcStubBuffer *This,
  35.     IRpcChannelBuffer *_pRpcChannelBuffer,
  36.     PRPC_MESSAGE _pRpcMessage,
  37.     DWORD *_pdwStubPhase);
  38. /* [propput] */ HRESULT STDMETHODCALLTYPE IEnroll_put_GenKeyFlags_Proxy( 
  39.     IEnroll * This,
  40.     /* [in] */ LONG dwFlags);
  41. void __RPC_STUB IEnroll_put_GenKeyFlags_Stub(
  42.     IRpcStubBuffer *This,
  43.     IRpcChannelBuffer *_pRpcChannelBuffer,
  44.     PRPC_MESSAGE _pRpcMessage,
  45.     DWORD *_pdwStubPhase);
  46. /* [propget] */ HRESULT STDMETHODCALLTYPE IEnroll_get_DeleteRequestCert_Proxy( 
  47.     IEnroll * This,
  48.     /* [out] */ BOOL *fDelete);
  49. void __RPC_STUB IEnroll_get_DeleteRequestCert_Stub(
  50.     IRpcStubBuffer *This,
  51.     IRpcChannelBuffer *_pRpcChannelBuffer,
  52.     PRPC_MESSAGE _pRpcMessage,
  53.     DWORD *_pdwStubPhase);
  54. /* [propput] */ HRESULT STDMETHODCALLTYPE IEnroll_put_DeleteRequestCert_Proxy( 
  55.     IEnroll * This,
  56.     /* [in] */ BOOL fDelete);
  57. void __RPC_STUB IEnroll_put_DeleteRequestCert_Stub(
  58.     IRpcStubBuffer *This,
  59.     IRpcChannelBuffer *_pRpcChannelBuffer,
  60.     PRPC_MESSAGE _pRpcMessage,
  61.     DWORD *_pdwStubPhase);
  62. /* [propget] */ HRESULT STDMETHODCALLTYPE IEnroll_get_WriteCertToUserDS_Proxy( 
  63.     IEnroll * This,
  64.     /* [out] */ BOOL *fBool);
  65. void __RPC_STUB IEnroll_get_WriteCertToUserDS_Stub(
  66.     IRpcStubBuffer *This,
  67.     IRpcChannelBuffer *_pRpcChannelBuffer,
  68.     PRPC_MESSAGE _pRpcMessage,
  69.     DWORD *_pdwStubPhase);
  70. /* [propput] */ HRESULT STDMETHODCALLTYPE IEnroll_put_WriteCertToUserDS_Proxy( 
  71.     IEnroll * This,
  72.     /* [in] */ BOOL fBool);
  73. void __RPC_STUB IEnroll_put_WriteCertToUserDS_Stub(
  74.     IRpcStubBuffer *This,
  75.     IRpcChannelBuffer *_pRpcChannelBuffer,
  76.     PRPC_MESSAGE _pRpcMessage,
  77.     DWORD *_pdwStubPhase);
  78. /* [propget] */ HRESULT STDMETHODCALLTYPE IEnroll_get_EnableT61DNEncoding_Proxy( 
  79.     IEnroll * This,
  80.     /* [out] */ BOOL *fBool);
  81. void __RPC_STUB IEnroll_get_EnableT61DNEncoding_Stub(
  82.     IRpcStubBuffer *This,
  83.     IRpcChannelBuffer *_pRpcChannelBuffer,
  84.     PRPC_MESSAGE _pRpcMessage,
  85.     DWORD *_pdwStubPhase);
  86. /* [propput] */ HRESULT STDMETHODCALLTYPE IEnroll_put_EnableT61DNEncoding_Proxy( 
  87.     IEnroll * This,
  88.     /* [in] */ BOOL fBool);
  89. void __RPC_STUB IEnroll_put_EnableT61DNEncoding_Stub(
  90.     IRpcStubBuffer *This,
  91.     IRpcChannelBuffer *_pRpcChannelBuffer,
  92.     PRPC_MESSAGE _pRpcMessage,
  93.     DWORD *_pdwStubPhase);
  94. /* [propget] */ HRESULT STDMETHODCALLTYPE IEnroll_get_WriteCertToCSP_Proxy( 
  95.     IEnroll * This,
  96.     /* [out] */ BOOL *fBool);
  97. void __RPC_STUB IEnroll_get_WriteCertToCSP_Stub(
  98.     IRpcStubBuffer *This,
  99.     IRpcChannelBuffer *_pRpcChannelBuffer,
  100.     PRPC_MESSAGE _pRpcMessage,
  101.     DWORD *_pdwStubPhase);
  102. /* [propput] */ HRESULT STDMETHODCALLTYPE IEnroll_put_WriteCertToCSP_Proxy( 
  103.     IEnroll * This,
  104.     /* [in] */ BOOL fBool);
  105. void __RPC_STUB IEnroll_put_WriteCertToCSP_Stub(
  106.     IRpcStubBuffer *This,
  107.     IRpcChannelBuffer *_pRpcChannelBuffer,
  108.     PRPC_MESSAGE _pRpcMessage,
  109.     DWORD *_pdwStubPhase);
  110. /* [propget] */ HRESULT STDMETHODCALLTYPE IEnroll_get_SPCFileNameWStr_Proxy( 
  111.     IEnroll * This,
  112.     /* [out] */ LPWSTR *szw);
  113. void __RPC_STUB IEnroll_get_SPCFileNameWStr_Stub(
  114.     IRpcStubBuffer *This,
  115.     IRpcChannelBuffer *_pRpcChannelBuffer,
  116.     PRPC_MESSAGE _pRpcMessage,
  117.     DWORD *_pdwStubPhase);
  118. /* [propput] */ HRESULT STDMETHODCALLTYPE IEnroll_put_SPCFileNameWStr_Proxy( 
  119.     IEnroll * This,
  120.     /* [in] */ LPWSTR szw);
  121. void __RPC_STUB IEnroll_put_SPCFileNameWStr_Stub(
  122.     IRpcStubBuffer *This,
  123.     IRpcChannelBuffer *_pRpcChannelBuffer,
  124.     PRPC_MESSAGE _pRpcMessage,
  125.     DWORD *_pdwStubPhase);
  126. /* [propget] */ HRESULT STDMETHODCALLTYPE IEnroll_get_PVKFileNameWStr_Proxy( 
  127.     IEnroll * This,
  128.     /* [out] */ LPWSTR *szw);
  129. void __RPC_STUB IEnroll_get_PVKFileNameWStr_Stub(
  130.     IRpcStubBuffer *This,
  131.     IRpcChannelBuffer *_pRpcChannelBuffer,
  132.     PRPC_MESSAGE _pRpcMessage,
  133.     DWORD *_pdwStubPhase);
  134. /* [propput] */ HRESULT STDMETHODCALLTYPE IEnroll_put_PVKFileNameWStr_Proxy( 
  135.     IEnroll * This,
  136.     /* [in] */ LPWSTR szw);
  137. void __RPC_STUB IEnroll_put_PVKFileNameWStr_Stub(
  138.     IRpcStubBuffer *This,
  139.     IRpcChannelBuffer *_pRpcChannelBuffer,
  140.     PRPC_MESSAGE _pRpcMessage,
  141.     DWORD *_pdwStubPhase);
  142. /* [propget] */ HRESULT STDMETHODCALLTYPE IEnroll_get_HashAlgorithmWStr_Proxy( 
  143.     IEnroll * This,
  144.     /* [out] */ LPWSTR *szw);
  145. void __RPC_STUB IEnroll_get_HashAlgorithmWStr_Stub(
  146.     IRpcStubBuffer *This,
  147.     IRpcChannelBuffer *_pRpcChannelBuffer,
  148.     PRPC_MESSAGE _pRpcMessage,
  149.     DWORD *_pdwStubPhase);
  150. /* [propput] */ HRESULT STDMETHODCALLTYPE IEnroll_put_HashAlgorithmWStr_Proxy( 
  151.     IEnroll * This,
  152.     /* [in] */ LPWSTR szw);
  153. void __RPC_STUB IEnroll_put_HashAlgorithmWStr_Stub(
  154.     IRpcStubBuffer *This,
  155.     IRpcChannelBuffer *_pRpcChannelBuffer,
  156.     PRPC_MESSAGE _pRpcMessage,
  157.     DWORD *_pdwStubPhase);
  158. /* [propget] */ HRESULT STDMETHODCALLTYPE IEnroll_get_RenewalCertificate_Proxy( 
  159.     IEnroll * This,
  160.     /* [out] */ PCCERT_CONTEXT *ppCertContext);
  161. void __RPC_STUB IEnroll_get_RenewalCertificate_Stub(
  162.     IRpcStubBuffer *This,
  163.     IRpcChannelBuffer *_pRpcChannelBuffer,
  164.     PRPC_MESSAGE _pRpcMessage,
  165.     DWORD *_pdwStubPhase);
  166. /* [propput] */ HRESULT STDMETHODCALLTYPE IEnroll_put_RenewalCertificate_Proxy( 
  167.     IEnroll * This,
  168.     /* [in] */ PCCERT_CONTEXT pCertContext);
  169. void __RPC_STUB IEnroll_put_RenewalCertificate_Stub(
  170.     IRpcStubBuffer *This,
  171.     IRpcChannelBuffer *_pRpcChannelBuffer,
  172.     PRPC_MESSAGE _pRpcMessage,
  173.     DWORD *_pdwStubPhase);
  174. HRESULT STDMETHODCALLTYPE IEnroll_AddCertTypeToRequestWStr_Proxy( 
  175.     IEnroll * This,
  176.     /* [in] */ LPWSTR szw);
  177. void __RPC_STUB IEnroll_AddCertTypeToRequestWStr_Stub(
  178.     IRpcStubBuffer *This,
  179.     IRpcChannelBuffer *_pRpcChannelBuffer,
  180.     PRPC_MESSAGE _pRpcMessage,
  181.     DWORD *_pdwStubPhase);
  182. HRESULT STDMETHODCALLTYPE IEnroll_AddNameValuePairToSignatureWStr_Proxy( 
  183.     IEnroll * This,
  184.     /* [in] */ LPWSTR Name,
  185.     /* [in] */ LPWSTR Value);
  186. void __RPC_STUB IEnroll_AddNameValuePairToSignatureWStr_Stub(
  187.     IRpcStubBuffer *This,
  188.     IRpcChannelBuffer *_pRpcChannelBuffer,
  189.     PRPC_MESSAGE _pRpcMessage,
  190.     DWORD *_pdwStubPhase);
  191. HRESULT STDMETHODCALLTYPE IEnroll_AddExtensionsToRequest_Proxy( 
  192.     IEnroll * This,
  193.     /* [in] */ PCERT_EXTENSIONS pCertExtensions);
  194. void __RPC_STUB IEnroll_AddExtensionsToRequest_Stub(
  195.     IRpcStubBuffer *This,
  196.     IRpcChannelBuffer *_pRpcChannelBuffer,
  197.     PRPC_MESSAGE _pRpcMessage,
  198.     DWORD *_pdwStubPhase);
  199. HRESULT STDMETHODCALLTYPE IEnroll_AddAuthenticatedAttributesToPKCS7Request_Proxy( 
  200.     IEnroll * This,
  201.     /* [in] */ PCRYPT_ATTRIBUTES pAttributes);
  202. void __RPC_STUB IEnroll_AddAuthenticatedAttributesToPKCS7Request_Stub(
  203.     IRpcStubBuffer *This,
  204.     IRpcChannelBuffer *_pRpcChannelBuffer,
  205.     PRPC_MESSAGE _pRpcMessage,
  206.     DWORD *_pdwStubPhase);
  207. HRESULT STDMETHODCALLTYPE IEnroll_CreatePKCS7RequestFromRequest_Proxy( 
  208.     IEnroll * This,
  209.     /* [in] */ PCRYPT_DATA_BLOB pRequest,
  210.     /* [in] */ PCCERT_CONTEXT pSigningCertContext,
  211.     /* [out] */ PCRYPT_DATA_BLOB pPkcs7Blob);
  212. void __RPC_STUB IEnroll_CreatePKCS7RequestFromRequest_Stub(
  213.     IRpcStubBuffer *This,
  214.     IRpcChannelBuffer *_pRpcChannelBuffer,
  215.     PRPC_MESSAGE _pRpcMessage,
  216.     DWORD *_pdwStubPhase);
  217. #endif  /* __IEnroll_INTERFACE_DEFINED__ */
  218. #ifndef __IEnroll2_INTERFACE_DEFINED__
  219. #define __IEnroll2_INTERFACE_DEFINED__
  220. /* interface IEnroll2 */
  221. /* [unique][helpstring][local][uuid][object] */ 
  222. EXTERN_C const IID IID_IEnroll2;
  223. #if defined(__cplusplus) && !defined(CINTERFACE)
  224.     
  225.     MIDL_INTERFACE("c080e199-b7df-11d2-a421-00c04f79fe8e")
  226.     IEnroll2 : public IEnroll
  227.     {
  228.     public:
  229.         virtual HRESULT STDMETHODCALLTYPE InstallPKCS7Blob( 
  230.             /* [in] */ PCRYPT_DATA_BLOB pBlobPKCS7) = 0;
  231.         
  232.         virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
  233.         
  234.         virtual HRESULT STDMETHODCALLTYPE GetSupportedKeySpec( 
  235.             /* [out] */ LONG *pdwKeySpec) = 0;
  236.         
  237.         virtual HRESULT STDMETHODCALLTYPE GetKeyLen( 
  238.             /* [in] */ BOOL fMin,
  239.             /* [in] */ BOOL fExchange,
  240.             /* [out] */ LONG *pdwKeySize) = 0;
  241.         
  242.         virtual HRESULT STDMETHODCALLTYPE EnumAlgs( 
  243.             /* [in] */ LONG dwIndex,
  244.             /* [in] */ LONG algClass,
  245.             /* [out] */ LONG *pdwAlgID) = 0;
  246.         
  247.         virtual HRESULT STDMETHODCALLTYPE GetAlgNameWStr( 
  248.             /* [in] */ LONG algID,
  249.             /* [out] */ LPWSTR *ppwsz) = 0;
  250.         
  251.         virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ReuseHardwareKeyIfUnableToGenNew( 
  252.             /* [in] */ BOOL fReuseHardwareKeyIfUnableToGenNew) = 0;
  253.         
  254.         virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ReuseHardwareKeyIfUnableToGenNew( 
  255.             /* [out] */ BOOL *fReuseHardwareKeyIfUnableToGenNew) = 0;
  256.         
  257.         virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_HashAlgID( 
  258.             /* [in] */ LONG hashAlgID) = 0;
  259.         
  260.         virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HashAlgID( 
  261.             /* [retval][out] */ LONG *hashAlgID) = 0;
  262.         
  263.         virtual HRESULT STDMETHODCALLTYPE SetHStoreMy( 
  264.             /* [in] */ HCERTSTORE hStore) = 0;
  265.         
  266.         virtual HRESULT STDMETHODCALLTYPE SetHStoreCA( 
  267.             /* [in] */ HCERTSTORE hStore) = 0;
  268.         
  269.         virtual HRESULT STDMETHODCALLTYPE SetHStoreROOT( 
  270.             /* [in] */ HCERTSTORE hStore) = 0;
  271.         
  272.         virtual HRESULT STDMETHODCALLTYPE SetHStoreRequest( 
  273.             /* [in] */ HCERTSTORE hStore) = 0;
  274.         
  275.         virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_LimitExchangeKeyToEncipherment( 
  276.             /* [in] */ BOOL fLimitExchangeKeyToEncipherment) = 0;
  277.         
  278.         virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_LimitExchangeKeyToEncipherment( 
  279.             /* [retval][out] */ BOOL *fLimitExchangeKeyToEncipherment) = 0;
  280.         
  281.         virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_EnableSMIMECapabilities( 
  282.             /* [in] */ BOOL fEnableSMIMECapabilities) = 0;
  283.         
  284.         virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_EnableSMIMECapabilities( 
  285.             /* [retval][out] */ BOOL *fEnableSMIMECapabilities) = 0;
  286.         
  287.     };
  288.     
  289. #else  /* C style interface */
  290.     typedef struct IEnroll2Vtbl
  291.     {
  292.         BEGIN_INTERFACE
  293.         
  294.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  295.             IEnroll2 * This,
  296.             /* [in] */ REFIID riid,
  297.             /* [iid_is][out] */ void **ppvObject);
  298.         
  299.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  300.             IEnroll2 * This);
  301.         
  302.         ULONG ( STDMETHODCALLTYPE *Release )( 
  303.             IEnroll2 * This);
  304.         
  305.         HRESULT ( STDMETHODCALLTYPE *createFilePKCS10WStr )( 
  306.             IEnroll2 * This,
  307.             /* [in] */ LPCWSTR DNName,
  308.             /* [in] */ LPCWSTR Usage,
  309.             /* [in] */ LPCWSTR wszPKCS10FileName);
  310.         
  311.         HRESULT ( STDMETHODCALLTYPE *acceptFilePKCS7WStr )( 
  312.             IEnroll2 * This,
  313.             /* [in] */ LPCWSTR wszPKCS7FileName);
  314.         
  315.         HRESULT ( STDMETHODCALLTYPE *createPKCS10WStr )( 
  316.             IEnroll2 * This,
  317.             /* [in] */ LPCWSTR DNName,
  318.             /* [in] */ LPCWSTR Usage,
  319.             /* [out] */ PCRYPT_DATA_BLOB pPkcs10Blob);
  320.         
  321.         HRESULT ( STDMETHODCALLTYPE *acceptPKCS7Blob )( 
  322.             IEnroll2 * This,
  323.             /* [in] */ PCRYPT_DATA_BLOB pBlobPKCS7);
  324.         
  325.         PCCERT_CONTEXT ( STDMETHODCALLTYPE *getCertContextFromPKCS7 )( 
  326.             IEnroll2 * This,
  327.             /* [in] */ PCRYPT_DATA_BLOB pBlobPKCS7);
  328.         
  329.         HCERTSTORE ( STDMETHODCALLTYPE *getMyStore )( 
  330.             IEnroll2 * This);
  331.         
  332.         HCERTSTORE ( STDMETHODCALLTYPE *getCAStore )( 
  333.             IEnroll2 * This);
  334.         
  335.         HCERTSTORE ( STDMETHODCALLTYPE *getROOTHStore )( 
  336.             IEnroll2 * This);
  337.         
  338.         HRESULT ( STDMETHODCALLTYPE *enumProvidersWStr )( 
  339.             IEnroll2 * This,
  340.             /* [in] */ LONG dwIndex,
  341.             /* [in] */ LONG dwFlags,
  342.             /* [out] */ LPWSTR *pbstrProvName);
  343.         
  344.         HRESULT ( STDMETHODCALLTYPE *enumContainersWStr )( 
  345.             IEnroll2 * This,
  346.             /* [in] */ LONG dwIndex,
  347.             /* [out] */ LPWSTR *pbstr);
  348.         
  349.         HRESULT ( STDMETHODCALLTYPE *freeRequestInfoBlob )( 
  350.             IEnroll2 * This,
  351.             /* [in] */ CRYPT_DATA_BLOB pkcs7OrPkcs10);
  352.         
  353.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_MyStoreNameWStr )( 
  354.             IEnroll2 * This,
  355.             /* [out] */ LPWSTR *szwName);
  356.         
  357.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_MyStoreNameWStr )( 
  358.             IEnroll2 * This,
  359.             /* [in] */ LPWSTR szwName);
  360.         
  361.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_MyStoreTypeWStr )( 
  362.             IEnroll2 * This,
  363.             /* [out] */ LPWSTR *szwType);
  364.         
  365.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_MyStoreTypeWStr )( 
  366.             IEnroll2 * This,
  367.             /* [in] */ LPWSTR szwType);
  368.         
  369.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_MyStoreFlags )( 
  370.             IEnroll2 * This,
  371.             /* [out] */ LONG *pdwFlags);
  372.         
  373.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_MyStoreFlags )( 
  374.             IEnroll2 * This,
  375.             /* [in] */ LONG dwFlags);
  376.         
  377.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_CAStoreNameWStr )( 
  378.             IEnroll2 * This,
  379.             /* [out] */ LPWSTR *szwName);
  380.         
  381.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_CAStoreNameWStr )( 
  382.             IEnroll2 * This,
  383.             /* [in] */ LPWSTR szwName);
  384.         
  385.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_CAStoreTypeWStr )( 
  386.             IEnroll2 * This,
  387.             /* [out] */ LPWSTR *szwType);
  388.         
  389.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_CAStoreTypeWStr )( 
  390.             IEnroll2 * This,
  391.             /* [in] */ LPWSTR szwType);
  392.         
  393.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_CAStoreFlags )( 
  394.             IEnroll2 * This,
  395.             /* [out] */ LONG *pdwFlags);
  396.         
  397.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_CAStoreFlags )( 
  398.             IEnroll2 * This,
  399.             /* [in] */ LONG dwFlags);
  400.         
  401.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RootStoreNameWStr )( 
  402.             IEnroll2 * This,
  403.             /* [out] */ LPWSTR *szwName);
  404.         
  405.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_RootStoreNameWStr )( 
  406.             IEnroll2 * This,
  407.             /* [in] */ LPWSTR szwName);
  408.         
  409.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RootStoreTypeWStr )( 
  410.             IEnroll2 * This,
  411.             /* [out] */ LPWSTR *szwType);
  412.         
  413.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_RootStoreTypeWStr )( 
  414.             IEnroll2 * This,
  415.             /* [in] */ LPWSTR szwType);
  416.         
  417.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RootStoreFlags )( 
  418.             IEnroll2 * This,
  419.             /* [out] */ LONG *pdwFlags);
  420.         
  421.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_RootStoreFlags )( 
  422.             IEnroll2 * This,
  423.             /* [in] */ LONG dwFlags);
  424.         
  425.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RequestStoreNameWStr )( 
  426.             IEnroll2 * This,
  427.             /* [out] */ LPWSTR *szwName);
  428.         
  429.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_RequestStoreNameWStr )( 
  430.             IEnroll2 * This,
  431.             /* [in] */ LPWSTR szwName);
  432.         
  433.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RequestStoreTypeWStr )( 
  434.             IEnroll2 * This,
  435.             /* [out] */ LPWSTR *szwType);
  436.         
  437.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_RequestStoreTypeWStr )( 
  438.             IEnroll2 * This,
  439.             /* [in] */ LPWSTR szwType);
  440.         
  441.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RequestStoreFlags )( 
  442.             IEnroll2 * This,
  443.             /* [out] */ LONG *pdwFlags);
  444.         
  445.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_RequestStoreFlags )( 
  446.             IEnroll2 * This,
  447.             /* [in] */ LONG dwFlags);
  448.         
  449.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ContainerNameWStr )( 
  450.             IEnroll2 * This,
  451.             /* [out] */ LPWSTR *szwContainer);
  452.         
  453.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ContainerNameWStr )( 
  454.             IEnroll2 * This,
  455.             /* [in] */ LPWSTR szwContainer);
  456.         
  457.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ProviderNameWStr )( 
  458.             IEnroll2 * This,
  459.             /* [out] */ LPWSTR *szwProvider);
  460.         
  461.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ProviderNameWStr )( 
  462.             IEnroll2 * This,
  463.             /* [in] */ LPWSTR szwProvider);
  464.         
  465.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ProviderType )( 
  466.             IEnroll2 * This,
  467.             /* [out] */ LONG *pdwType);
  468.         
  469.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ProviderType )( 
  470.             IEnroll2 * This,
  471.             /* [in] */ LONG dwType);
  472.         
  473.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_KeySpec )( 
  474.             IEnroll2 * This,
  475.             /* [out] */ LONG *pdw);
  476.         
  477.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_KeySpec )( 
  478.             IEnroll2 * This,
  479.             /* [in] */ LONG dw);
  480.         
  481.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ProviderFlags )( 
  482.             IEnroll2 * This,
  483.             /* [out] */ LONG *pdwFlags);
  484.         
  485.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ProviderFlags )( 
  486.             IEnroll2 * This,
  487.             /* [in] */ LONG dwFlags);
  488.         
  489.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_UseExistingKeySet )( 
  490.             IEnroll2 * This,
  491.             /* [out] */ BOOL *fUseExistingKeys);
  492.         
  493.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_UseExistingKeySet )( 
  494.             IEnroll2 * This,
  495.             /* [in] */ BOOL fUseExistingKeys);
  496.         
  497.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_GenKeyFlags )( 
  498.             IEnroll2 * This,
  499.             /* [out] */ LONG *pdwFlags);
  500.         
  501.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_GenKeyFlags )( 
  502.             IEnroll2 * This,
  503.             /* [in] */ LONG dwFlags);
  504.         
  505.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_DeleteRequestCert )( 
  506.             IEnroll2 * This,
  507.             /* [out] */ BOOL *fDelete);
  508.         
  509.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_DeleteRequestCert )( 
  510.             IEnroll2 * This,
  511.             /* [in] */ BOOL fDelete);
  512.         
  513.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_WriteCertToUserDS )( 
  514.             IEnroll2 * This,
  515.             /* [out] */ BOOL *fBool);
  516.         
  517.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_WriteCertToUserDS )( 
  518.             IEnroll2 * This,
  519.             /* [in] */ BOOL fBool);
  520.         
  521.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_EnableT61DNEncoding )( 
  522.             IEnroll2 * This,
  523.             /* [out] */ BOOL *fBool);
  524.         
  525.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_EnableT61DNEncoding )( 
  526.             IEnroll2 * This,
  527.             /* [in] */ BOOL fBool);
  528.         
  529.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_WriteCertToCSP )( 
  530.             IEnroll2 * This,
  531.             /* [out] */ BOOL *fBool);
  532.         
  533.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_WriteCertToCSP )( 
  534.             IEnroll2 * This,
  535.             /* [in] */ BOOL fBool);
  536.         
  537.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SPCFileNameWStr )( 
  538.             IEnroll2 * This,
  539.             /* [out] */ LPWSTR *szw);
  540.         
  541.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_SPCFileNameWStr )( 
  542.             IEnroll2 * This,
  543.             /* [in] */ LPWSTR szw);
  544.         
  545.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PVKFileNameWStr )( 
  546.             IEnroll2 * This,
  547.             /* [out] */ LPWSTR *szw);
  548.         
  549.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PVKFileNameWStr )( 
  550.             IEnroll2 * This,
  551.             /* [in] */ LPWSTR szw);
  552.         
  553.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HashAlgorithmWStr )( 
  554.             IEnroll2 * This,
  555.             /* [out] */ LPWSTR *szw);
  556.         
  557.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_HashAlgorithmWStr )( 
  558.             IEnroll2 * This,
  559.             /* [in] */ LPWSTR szw);
  560.         
  561.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RenewalCertificate )( 
  562.             IEnroll2 * This,
  563.             /* [out] */ PCCERT_CONTEXT *ppCertContext);
  564.         
  565.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_RenewalCertificate )( 
  566.             IEnroll2 * This,
  567.             /* [in] */ PCCERT_CONTEXT pCertContext);
  568.         
  569.         HRESULT ( STDMETHODCALLTYPE *AddCertTypeToRequestWStr )( 
  570.             IEnroll2 * This,
  571.             /* [in] */ LPWSTR szw);
  572.         
  573.         HRESULT ( STDMETHODCALLTYPE *AddNameValuePairToSignatureWStr )( 
  574.             IEnroll2 * This,
  575.             /* [in] */ LPWSTR Name,
  576.             /* [in] */ LPWSTR Value);
  577.         
  578.         HRESULT ( STDMETHODCALLTYPE *AddExtensionsToRequest )( 
  579.             IEnroll2 * This,
  580.             /* [in] */ PCERT_EXTENSIONS pCertExtensions);
  581.         
  582.         HRESULT ( STDMETHODCALLTYPE *AddAuthenticatedAttributesToPKCS7Request )( 
  583.             IEnroll2 * This,
  584.             /* [in] */ PCRYPT_ATTRIBUTES pAttributes);
  585.         
  586.         HRESULT ( STDMETHODCALLTYPE *CreatePKCS7RequestFromRequest )( 
  587.             IEnroll2 * This,
  588.             /* [in] */ PCRYPT_DATA_BLOB pRequest,
  589.             /* [in] */ PCCERT_CONTEXT pSigningCertContext,
  590.             /* [out] */ PCRYPT_DATA_BLOB pPkcs7Blob);
  591.         
  592.         HRESULT ( STDMETHODCALLTYPE *InstallPKCS7Blob )( 
  593.             IEnroll2 * This,
  594.             /* [in] */ PCRYPT_DATA_BLOB pBlobPKCS7);
  595.         
  596.         HRESULT ( STDMETHODCALLTYPE *Reset )( 
  597.             IEnroll2 * This);
  598.         
  599.         HRESULT ( STDMETHODCALLTYPE *GetSupportedKeySpec )( 
  600.             IEnroll2 * This,
  601.             /* [out] */ LONG *pdwKeySpec);
  602.         
  603.         HRESULT ( STDMETHODCALLTYPE *GetKeyLen )( 
  604.             IEnroll2 * This,
  605.             /* [in] */ BOOL fMin,
  606.             /* [in] */ BOOL fExchange,
  607.             /* [out] */ LONG *pdwKeySize);
  608.         
  609.         HRESULT ( STDMETHODCALLTYPE *EnumAlgs )( 
  610.             IEnroll2 * This,
  611.             /* [in] */ LONG dwIndex,
  612.             /* [in] */ LONG algClass,
  613.             /* [out] */ LONG *pdwAlgID);
  614.         
  615.         HRESULT ( STDMETHODCALLTYPE *GetAlgNameWStr )( 
  616.             IEnroll2 * This,
  617.             /* [in] */ LONG algID,
  618.             /* [out] */ LPWSTR *ppwsz);
  619.         
  620.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ReuseHardwareKeyIfUnableToGenNew )( 
  621.             IEnroll2 * This,
  622.             /* [in] */ BOOL fReuseHardwareKeyIfUnableToGenNew);
  623.         
  624.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ReuseHardwareKeyIfUnableToGenNew )( 
  625.             IEnroll2 * This,
  626.             /* [out] */ BOOL *fReuseHardwareKeyIfUnableToGenNew);
  627.         
  628.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_HashAlgID )( 
  629.             IEnroll2 * This,
  630.             /* [in] */ LONG hashAlgID);
  631.         
  632.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HashAlgID )( 
  633.             IEnroll2 * This,
  634.             /* [retval][out] */ LONG *hashAlgID);
  635.         
  636.         HRESULT ( STDMETHODCALLTYPE *SetHStoreMy )( 
  637.             IEnroll2 * This,
  638.             /* [in] */ HCERTSTORE hStore);
  639.         
  640.         HRESULT ( STDMETHODCALLTYPE *SetHStoreCA )( 
  641.             IEnroll2 * This,
  642.             /* [in] */ HCERTSTORE hStore);
  643.         
  644.         HRESULT ( STDMETHODCALLTYPE *SetHStoreROOT )( 
  645.             IEnroll2 * This,
  646.             /* [in] */ HCERTSTORE hStore);
  647.         
  648.         HRESULT ( STDMETHODCALLTYPE *SetHStoreRequest )( 
  649.             IEnroll2 * This,
  650.             /* [in] */ HCERTSTORE hStore);
  651.         
  652.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_LimitExchangeKeyToEncipherment )( 
  653.             IEnroll2 * This,
  654.             /* [in] */ BOOL fLimitExchangeKeyToEncipherment);
  655.         
  656.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_LimitExchangeKeyToEncipherment )( 
  657.             IEnroll2 * This,
  658.             /* [retval][out] */ BOOL *fLimitExchangeKeyToEncipherment);
  659.         
  660.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_EnableSMIMECapabilities )( 
  661.             IEnroll2 * This,
  662.             /* [in] */ BOOL fEnableSMIMECapabilities);
  663.         
  664.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_EnableSMIMECapabilities )( 
  665.             IEnroll2 * This,
  666.             /* [retval][out] */ BOOL *fEnableSMIMECapabilities);
  667.         
  668.         END_INTERFACE
  669.     } IEnroll2Vtbl;
  670.     interface IEnroll2
  671.     {
  672.         CONST_VTBL struct IEnroll2Vtbl *lpVtbl;
  673.     };
  674.     
  675. #ifdef COBJMACROS
  676. #define IEnroll2_QueryInterface(This,riid,ppvObject)
  677.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  678. #define IEnroll2_AddRef(This)
  679.     (This)->lpVtbl -> AddRef(This)
  680. #define IEnroll2_Release(This)
  681.     (This)->lpVtbl -> Release(This)
  682. #define IEnroll2_createFilePKCS10WStr(This,DNName,Usage,wszPKCS10FileName)
  683.     (This)->lpVtbl -> createFilePKCS10WStr(This,DNName,Usage,wszPKCS10FileName)
  684. #define IEnroll2_acceptFilePKCS7WStr(This,wszPKCS7FileName)
  685.     (This)->lpVtbl -> acceptFilePKCS7WStr(This,wszPKCS7FileName)
  686. #define IEnroll2_createPKCS10WStr(This,DNName,Usage,pPkcs10Blob)
  687.     (This)->lpVtbl -> createPKCS10WStr(This,DNName,Usage,pPkcs10Blob)
  688. #define IEnroll2_acceptPKCS7Blob(This,pBlobPKCS7)
  689.     (This)->lpVtbl -> acceptPKCS7Blob(This,pBlobPKCS7)
  690. #define IEnroll2_getCertContextFromPKCS7(This,pBlobPKCS7)
  691.     (This)->lpVtbl -> getCertContextFromPKCS7(This,pBlobPKCS7)
  692. #define IEnroll2_getMyStore(This)
  693.     (This)->lpVtbl -> getMyStore(This)
  694. #define IEnroll2_getCAStore(This)
  695.     (This)->lpVtbl -> getCAStore(This)
  696. #define IEnroll2_getROOTHStore(This)
  697.     (This)->lpVtbl -> getROOTHStore(This)
  698. #define IEnroll2_enumProvidersWStr(This,dwIndex,dwFlags,pbstrProvName)
  699.     (This)->lpVtbl -> enumProvidersWStr(This,dwIndex,dwFlags,pbstrProvName)
  700. #define IEnroll2_enumContainersWStr(This,dwIndex,pbstr)
  701.     (This)->lpVtbl -> enumContainersWStr(This,dwIndex,pbstr)
  702. #define IEnroll2_freeRequestInfoBlob(This,pkcs7OrPkcs10)
  703.     (This)->lpVtbl -> freeRequestInfoBlob(This,pkcs7OrPkcs10)
  704. #define IEnroll2_get_MyStoreNameWStr(This,szwName)
  705.     (This)->lpVtbl -> get_MyStoreNameWStr(This,szwName)
  706. #define IEnroll2_put_MyStoreNameWStr(This,szwName)
  707.     (This)->lpVtbl -> put_MyStoreNameWStr(This,szwName)
  708. #define IEnroll2_get_MyStoreTypeWStr(This,szwType)
  709.     (This)->lpVtbl -> get_MyStoreTypeWStr(This,szwType)
  710. #define IEnroll2_put_MyStoreTypeWStr(This,szwType)
  711.     (This)->lpVtbl -> put_MyStoreTypeWStr(This,szwType)
  712. #define IEnroll2_get_MyStoreFlags(This,pdwFlags)
  713.     (This)->lpVtbl -> get_MyStoreFlags(This,pdwFlags)
  714. #define IEnroll2_put_MyStoreFlags(This,dwFlags)
  715.     (This)->lpVtbl -> put_MyStoreFlags(This,dwFlags)
  716. #define IEnroll2_get_CAStoreNameWStr(This,szwName)
  717.     (This)->lpVtbl -> get_CAStoreNameWStr(This,szwName)
  718. #define IEnroll2_put_CAStoreNameWStr(This,szwName)
  719.     (This)->lpVtbl -> put_CAStoreNameWStr(This,szwName)
  720. #define IEnroll2_get_CAStoreTypeWStr(This,szwType)
  721.     (This)->lpVtbl -> get_CAStoreTypeWStr(This,szwType)
  722. #define IEnroll2_put_CAStoreTypeWStr(This,szwType)
  723.     (This)->lpVtbl -> put_CAStoreTypeWStr(This,szwType)
  724. #define IEnroll2_get_CAStoreFlags(This,pdwFlags)
  725.     (This)->lpVtbl -> get_CAStoreFlags(This,pdwFlags)
  726. #define IEnroll2_put_CAStoreFlags(This,dwFlags)
  727.     (This)->lpVtbl -> put_CAStoreFlags(This,dwFlags)
  728. #define IEnroll2_get_RootStoreNameWStr(This,szwName)
  729.     (This)->lpVtbl -> get_RootStoreNameWStr(This,szwName)
  730. #define IEnroll2_put_RootStoreNameWStr(This,szwName)
  731.     (This)->lpVtbl -> put_RootStoreNameWStr(This,szwName)
  732. #define IEnroll2_get_RootStoreTypeWStr(This,szwType)
  733.     (This)->lpVtbl -> get_RootStoreTypeWStr(This,szwType)
  734. #define IEnroll2_put_RootStoreTypeWStr(This,szwType)
  735.     (This)->lpVtbl -> put_RootStoreTypeWStr(This,szwType)
  736. #define IEnroll2_get_RootStoreFlags(This,pdwFlags)
  737.     (This)->lpVtbl -> get_RootStoreFlags(This,pdwFlags)
  738. #define IEnroll2_put_RootStoreFlags(This,dwFlags)
  739.     (This)->lpVtbl -> put_RootStoreFlags(This,dwFlags)
  740. #define IEnroll2_get_RequestStoreNameWStr(This,szwName)
  741.     (This)->lpVtbl -> get_RequestStoreNameWStr(This,szwName)
  742. #define IEnroll2_put_RequestStoreNameWStr(This,szwName)
  743.     (This)->lpVtbl -> put_RequestStoreNameWStr(This,szwName)
  744. #define IEnroll2_get_RequestStoreTypeWStr(This,szwType)
  745.     (This)->lpVtbl -> get_RequestStoreTypeWStr(This,szwType)
  746. #define IEnroll2_put_RequestStoreTypeWStr(This,szwType)
  747.     (This)->lpVtbl -> put_RequestStoreTypeWStr(This,szwType)
  748. #define IEnroll2_get_RequestStoreFlags(This,pdwFlags)
  749.     (This)->lpVtbl -> get_RequestStoreFlags(This,pdwFlags)
  750. #define IEnroll2_put_RequestStoreFlags(This,dwFlags)
  751.     (This)->lpVtbl -> put_RequestStoreFlags(This,dwFlags)
  752. #define IEnroll2_get_ContainerNameWStr(This,szwContainer)
  753.     (This)->lpVtbl -> get_ContainerNameWStr(This,szwContainer)
  754. #define IEnroll2_put_ContainerNameWStr(This,szwContainer)
  755.     (This)->lpVtbl -> put_ContainerNameWStr(This,szwContainer)
  756. #define IEnroll2_get_ProviderNameWStr(This,szwProvider)
  757.     (This)->lpVtbl -> get_ProviderNameWStr(This,szwProvider)
  758. #define IEnroll2_put_ProviderNameWStr(This,szwProvider)
  759.     (This)->lpVtbl -> put_ProviderNameWStr(This,szwProvider)
  760. #define IEnroll2_get_ProviderType(This,pdwType)
  761.     (This)->lpVtbl -> get_ProviderType(This,pdwType)
  762. #define IEnroll2_put_ProviderType(This,dwType)
  763.     (This)->lpVtbl -> put_ProviderType(This,dwType)
  764. #define IEnroll2_get_KeySpec(This,pdw)
  765.     (This)->lpVtbl -> get_KeySpec(This,pdw)
  766. #define IEnroll2_put_KeySpec(This,dw)
  767.     (This)->lpVtbl -> put_KeySpec(This,dw)
  768. #define IEnroll2_get_ProviderFlags(This,pdwFlags)
  769.     (This)->lpVtbl -> get_ProviderFlags(This,pdwFlags)
  770. #define IEnroll2_put_ProviderFlags(This,dwFlags)
  771.     (This)->lpVtbl -> put_ProviderFlags(This,dwFlags)
  772. #define IEnroll2_get_UseExistingKeySet(This,fUseExistingKeys)
  773.     (This)->lpVtbl -> get_UseExistingKeySet(This,fUseExistingKeys)
  774. #define IEnroll2_put_UseExistingKeySet(This,fUseExistingKeys)
  775.     (This)->lpVtbl -> put_UseExistingKeySet(This,fUseExistingKeys)
  776. #define IEnroll2_get_GenKeyFlags(This,pdwFlags)
  777.     (This)->lpVtbl -> get_GenKeyFlags(This,pdwFlags)
  778. #define IEnroll2_put_GenKeyFlags(This,dwFlags)
  779.     (This)->lpVtbl -> put_GenKeyFlags(This,dwFlags)
  780. #define IEnroll2_get_DeleteRequestCert(This,fDelete)
  781.     (This)->lpVtbl -> get_DeleteRequestCert(This,fDelete)
  782. #define IEnroll2_put_DeleteRequestCert(This,fDelete)
  783.     (This)->lpVtbl -> put_DeleteRequestCert(This,fDelete)
  784. #define IEnroll2_get_WriteCertToUserDS(This,fBool)
  785.     (This)->lpVtbl -> get_WriteCertToUserDS(This,fBool)
  786. #define IEnroll2_put_WriteCertToUserDS(This,fBool)
  787.     (This)->lpVtbl -> put_WriteCertToUserDS(This,fBool)
  788. #define IEnroll2_get_EnableT61DNEncoding(This,fBool)
  789.     (This)->lpVtbl -> get_EnableT61DNEncoding(This,fBool)
  790. #define IEnroll2_put_EnableT61DNEncoding(This,fBool)
  791.     (This)->lpVtbl -> put_EnableT61DNEncoding(This,fBool)
  792. #define IEnroll2_get_WriteCertToCSP(This,fBool)
  793.     (This)->lpVtbl -> get_WriteCertToCSP(This,fBool)
  794. #define IEnroll2_put_WriteCertToCSP(This,fBool)
  795.     (This)->lpVtbl -> put_WriteCertToCSP(This,fBool)
  796. #define IEnroll2_get_SPCFileNameWStr(This,szw)
  797.     (This)->lpVtbl -> get_SPCFileNameWStr(This,szw)
  798. #define IEnroll2_put_SPCFileNameWStr(This,szw)
  799.     (This)->lpVtbl -> put_SPCFileNameWStr(This,szw)
  800. #define IEnroll2_get_PVKFileNameWStr(This,szw)
  801.     (This)->lpVtbl -> get_PVKFileNameWStr(This,szw)
  802. #define IEnroll2_put_PVKFileNameWStr(This,szw)
  803.     (This)->lpVtbl -> put_PVKFileNameWStr(This,szw)
  804. #define IEnroll2_get_HashAlgorithmWStr(This,szw)
  805.     (This)->lpVtbl -> get_HashAlgorithmWStr(This,szw)
  806. #define IEnroll2_put_HashAlgorithmWStr(This,szw)
  807.     (This)->lpVtbl -> put_HashAlgorithmWStr(This,szw)
  808. #define IEnroll2_get_RenewalCertificate(This,ppCertContext)
  809.     (This)->lpVtbl -> get_RenewalCertificate(This,ppCertContext)
  810. #define IEnroll2_put_RenewalCertificate(This,pCertContext)
  811.     (This)->lpVtbl -> put_RenewalCertificate(This,pCertContext)
  812. #define IEnroll2_AddCertTypeToRequestWStr(This,szw)
  813.     (This)->lpVtbl -> AddCertTypeToRequestWStr(This,szw)
  814. #define IEnroll2_AddNameValuePairToSignatureWStr(This,Name,Value)
  815.     (This)->lpVtbl -> AddNameValuePairToSignatureWStr(This,Name,Value)
  816. #define IEnroll2_AddExtensionsToRequest(This,pCertExtensions)
  817.     (This)->lpVtbl -> AddExtensionsToRequest(This,pCertExtensions)
  818. #define IEnroll2_AddAuthenticatedAttributesToPKCS7Request(This,pAttributes)
  819.     (This)->lpVtbl -> AddAuthenticatedAttributesToPKCS7Request(This,pAttributes)
  820. #define IEnroll2_CreatePKCS7RequestFromRequest(This,pRequest,pSigningCertContext,pPkcs7Blob)
  821.     (This)->lpVtbl -> CreatePKCS7RequestFromRequest(This,pRequest,pSigningCertContext,pPkcs7Blob)
  822. #define IEnroll2_InstallPKCS7Blob(This,pBlobPKCS7)
  823.     (This)->lpVtbl -> InstallPKCS7Blob(This,pBlobPKCS7)
  824. #define IEnroll2_Reset(This)
  825.     (This)->lpVtbl -> Reset(This)
  826. #define IEnroll2_GetSupportedKeySpec(This,pdwKeySpec)
  827.     (This)->lpVtbl -> GetSupportedKeySpec(This,pdwKeySpec)
  828. #define IEnroll2_GetKeyLen(This,fMin,fExchange,pdwKeySize)
  829.     (This)->lpVtbl -> GetKeyLen(This,fMin,fExchange,pdwKeySize)
  830. #define IEnroll2_EnumAlgs(This,dwIndex,algClass,pdwAlgID)
  831.     (This)->lpVtbl -> EnumAlgs(This,dwIndex,algClass,pdwAlgID)
  832. #define IEnroll2_GetAlgNameWStr(This,algID,ppwsz)
  833.     (This)->lpVtbl -> GetAlgNameWStr(This,algID,ppwsz)
  834. #define IEnroll2_put_ReuseHardwareKeyIfUnableToGenNew(This,fReuseHardwareKeyIfUnableToGenNew)
  835.     (This)->lpVtbl -> put_ReuseHardwareKeyIfUnableToGenNew(This,fReuseHardwareKeyIfUnableToGenNew)
  836. #define IEnroll2_get_ReuseHardwareKeyIfUnableToGenNew(This,fReuseHardwareKeyIfUnableToGenNew)
  837.     (This)->lpVtbl -> get_ReuseHardwareKeyIfUnableToGenNew(This,fReuseHardwareKeyIfUnableToGenNew)
  838. #define IEnroll2_put_HashAlgID(This,hashAlgID)
  839.     (This)->lpVtbl -> put_HashAlgID(This,hashAlgID)
  840. #define IEnroll2_get_HashAlgID(This,hashAlgID)
  841.     (This)->lpVtbl -> get_HashAlgID(This,hashAlgID)
  842. #define IEnroll2_SetHStoreMy(This,hStore)
  843.     (This)->lpVtbl -> SetHStoreMy(This,hStore)
  844. #define IEnroll2_SetHStoreCA(This,hStore)
  845.     (This)->lpVtbl -> SetHStoreCA(This,hStore)
  846. #define IEnroll2_SetHStoreROOT(This,hStore)
  847.     (This)->lpVtbl -> SetHStoreROOT(This,hStore)
  848. #define IEnroll2_SetHStoreRequest(This,hStore)
  849.     (This)->lpVtbl -> SetHStoreRequest(This,hStore)
  850. #define IEnroll2_put_LimitExchangeKeyToEncipherment(This,fLimitExchangeKeyToEncipherment)
  851.     (This)->lpVtbl -> put_LimitExchangeKeyToEncipherment(This,fLimitExchangeKeyToEncipherment)
  852. #define IEnroll2_get_LimitExchangeKeyToEncipherment(This,fLimitExchangeKeyToEncipherment)
  853.     (This)->lpVtbl -> get_LimitExchangeKeyToEncipherment(This,fLimitExchangeKeyToEncipherment)
  854. #define IEnroll2_put_EnableSMIMECapabilities(This,fEnableSMIMECapabilities)
  855.     (This)->lpVtbl -> put_EnableSMIMECapabilities(This,fEnableSMIMECapabilities)
  856. #define IEnroll2_get_EnableSMIMECapabilities(This,fEnableSMIMECapabilities)
  857.     (This)->lpVtbl -> get_EnableSMIMECapabilities(This,fEnableSMIMECapabilities)
  858. #endif /* COBJMACROS */
  859. #endif  /* C style interface */
  860. HRESULT STDMETHODCALLTYPE IEnroll2_InstallPKCS7Blob_Proxy( 
  861.     IEnroll2 * This,
  862.     /* [in] */ PCRYPT_DATA_BLOB pBlobPKCS7);
  863. void __RPC_STUB IEnroll2_InstallPKCS7Blob_Stub(
  864.     IRpcStubBuffer *This,
  865.     IRpcChannelBuffer *_pRpcChannelBuffer,
  866.     PRPC_MESSAGE _pRpcMessage,
  867.     DWORD *_pdwStubPhase);
  868. HRESULT STDMETHODCALLTYPE IEnroll2_Reset_Proxy( 
  869.     IEnroll2 * This);
  870. void __RPC_STUB IEnroll2_Reset_Stub(
  871.     IRpcStubBuffer *This,
  872.     IRpcChannelBuffer *_pRpcChannelBuffer,
  873.     PRPC_MESSAGE _pRpcMessage,
  874.     DWORD *_pdwStubPhase);
  875. HRESULT STDMETHODCALLTYPE IEnroll2_GetSupportedKeySpec_Proxy( 
  876.     IEnroll2 * This,
  877.     /* [out] */ LONG *pdwKeySpec);
  878. void __RPC_STUB IEnroll2_GetSupportedKeySpec_Stub(
  879.     IRpcStubBuffer *This,
  880.     IRpcChannelBuffer *_pRpcChannelBuffer,
  881.     PRPC_MESSAGE _pRpcMessage,
  882.     DWORD *_pdwStubPhase);
  883. HRESULT STDMETHODCALLTYPE IEnroll2_GetKeyLen_Proxy( 
  884.     IEnroll2 * This,
  885.     /* [in] */ BOOL fMin,
  886.     /* [in] */ BOOL fExchange,
  887.     /* [out] */ LONG *pdwKeySize);
  888. void __RPC_STUB IEnroll2_GetKeyLen_Stub(
  889.     IRpcStubBuffer *This,
  890.     IRpcChannelBuffer *_pRpcChannelBuffer,
  891.     PRPC_MESSAGE _pRpcMessage,
  892.     DWORD *_pdwStubPhase);
  893. HRESULT STDMETHODCALLTYPE IEnroll2_EnumAlgs_Proxy( 
  894.     IEnroll2 * This,
  895.     /* [in] */ LONG dwIndex,
  896.     /* [in] */ LONG algClass,
  897.     /* [out] */ LONG *pdwAlgID);
  898. void __RPC_STUB IEnroll2_EnumAlgs_Stub(
  899.     IRpcStubBuffer *This,
  900.     IRpcChannelBuffer *_pRpcChannelBuffer,
  901.     PRPC_MESSAGE _pRpcMessage,
  902.     DWORD *_pdwStubPhase);
  903. HRESULT STDMETHODCALLTYPE IEnroll2_GetAlgNameWStr_Proxy( 
  904.     IEnroll2 * This,
  905.     /* [in] */ LONG algID,
  906.     /* [out] */ LPWSTR *ppwsz);
  907. void __RPC_STUB IEnroll2_GetAlgNameWStr_Stub(
  908.     IRpcStubBuffer *This,
  909.     IRpcChannelBuffer *_pRpcChannelBuffer,
  910.     PRPC_MESSAGE _pRpcMessage,
  911.     DWORD *_pdwStubPhase);
  912. /* [propput] */ HRESULT STDMETHODCALLTYPE IEnroll2_put_ReuseHardwareKeyIfUnableToGenNew_Proxy( 
  913.     IEnroll2 * This,
  914.     /* [in] */ BOOL fReuseHardwareKeyIfUnableToGenNew);
  915. void __RPC_STUB IEnroll2_put_ReuseHardwareKeyIfUnableToGenNew_Stub(
  916.     IRpcStubBuffer *This,
  917.     IRpcChannelBuffer *_pRpcChannelBuffer,
  918.     PRPC_MESSAGE _pRpcMessage,
  919.     DWORD *_pdwStubPhase);
  920. /* [propget] */ HRESULT STDMETHODCALLTYPE IEnroll2_get_ReuseHardwareKeyIfUnableToGenNew_Proxy( 
  921.     IEnroll2 * This,
  922.     /* [out] */ BOOL *fReuseHardwareKeyIfUnableToGenNew);
  923. void __RPC_STUB IEnroll2_get_ReuseHardwareKeyIfUnableToGenNew_Stub(
  924.     IRpcStubBuffer *This,
  925.     IRpcChannelBuffer *_pRpcChannelBuffer,
  926.     PRPC_MESSAGE _pRpcMessage,
  927.     DWORD *_pdwStubPhase);
  928. /* [propput] */ HRESULT STDMETHODCALLTYPE IEnroll2_put_HashAlgID_Proxy( 
  929.     IEnroll2 * This,
  930.     /* [in] */ LONG hashAlgID);
  931. void __RPC_STUB IEnroll2_put_HashAlgID_Stub(
  932.     IRpcStubBuffer *This,
  933.     IRpcChannelBuffer *_pRpcChannelBuffer,
  934.     PRPC_MESSAGE _pRpcMessage,
  935.     DWORD *_pdwStubPhase);
  936. /* [propget] */ HRESULT STDMETHODCALLTYPE IEnroll2_get_HashAlgID_Proxy( 
  937.     IEnroll2 * This,
  938.     /* [retval][out] */ LONG *hashAlgID);
  939. void __RPC_STUB IEnroll2_get_HashAlgID_Stub(
  940.     IRpcStubBuffer *This,
  941.     IRpcChannelBuffer *_pRpcChannelBuffer,
  942.     PRPC_MESSAGE _pRpcMessage,
  943.     DWORD *_pdwStubPhase);
  944. HRESULT STDMETHODCALLTYPE IEnroll2_SetHStoreMy_Proxy( 
  945.     IEnroll2 * This,
  946.     /* [in] */ HCERTSTORE hStore);
  947. void __RPC_STUB IEnroll2_SetHStoreMy_Stub(
  948.     IRpcStubBuffer *This,
  949.     IRpcChannelBuffer *_pRpcChannelBuffer,
  950.     PRPC_MESSAGE _pRpcMessage,
  951.     DWORD *_pdwStubPhase);
  952. HRESULT STDMETHODCALLTYPE IEnroll2_SetHStoreCA_Proxy( 
  953.     IEnroll2 * This,
  954.     /* [in] */ HCERTSTORE hStore);
  955. void __RPC_STUB IEnroll2_SetHStoreCA_Stub(
  956.     IRpcStubBuffer *This,
  957.     IRpcChannelBuffer *_pRpcChannelBuffer,
  958.     PRPC_MESSAGE _pRpcMessage,
  959.     DWORD *_pdwStubPhase);
  960. HRESULT STDMETHODCALLTYPE IEnroll2_SetHStoreROOT_Proxy( 
  961.     IEnroll2 * This,
  962.     /* [in] */ HCERTSTORE hStore);
  963. void __RPC_STUB IEnroll2_SetHStoreROOT_Stub(
  964.     IRpcStubBuffer *This,
  965.     IRpcChannelBuffer *_pRpcChannelBuffer,
  966.     PRPC_MESSAGE _pRpcMessage,
  967.     DWORD *_pdwStubPhase);
  968. HRESULT STDMETHODCALLTYPE IEnroll2_SetHStoreRequest_Proxy( 
  969.     IEnroll2 * This,
  970.     /* [in] */ HCERTSTORE hStore);
  971. void __RPC_STUB IEnroll2_SetHStoreRequest_Stub(
  972.     IRpcStubBuffer *This,
  973.     IRpcChannelBuffer *_pRpcChannelBuffer,
  974.     PRPC_MESSAGE _pRpcMessage,
  975.     DWORD *_pdwStubPhase);
  976. /* [propput] */ HRESULT STDMETHODCALLTYPE IEnroll2_put_LimitExchangeKeyToEncipherment_Proxy( 
  977.     IEnroll2 * This,
  978.     /* [in] */ BOOL fLimitExchangeKeyToEncipherment);
  979. void __RPC_STUB IEnroll2_put_LimitExchangeKeyToEncipherment_Stub(
  980.     IRpcStubBuffer *This,
  981.     IRpcChannelBuffer *_pRpcChannelBuffer,
  982.     PRPC_MESSAGE _pRpcMessage,
  983.     DWORD *_pdwStubPhase);
  984. /* [propget] */ HRESULT STDMETHODCALLTYPE IEnroll2_get_LimitExchangeKeyToEncipherment_Proxy( 
  985.     IEnroll2 * This,
  986.     /* [retval][out] */ BOOL *fLimitExchangeKeyToEncipherment);
  987. void __RPC_STUB IEnroll2_get_LimitExchangeKeyToEncipherment_Stub(
  988.     IRpcStubBuffer *This,
  989.     IRpcChannelBuffer *_pRpcChannelBuffer,
  990.     PRPC_MESSAGE _pRpcMessage,
  991.     DWORD *_pdwStubPhase);
  992. /* [propput] */ HRESULT STDMETHODCALLTYPE IEnroll2_put_EnableSMIMECapabilities_Proxy( 
  993.     IEnroll2 * This,
  994.     /* [in] */ BOOL fEnableSMIMECapabilities);
  995. void __RPC_STUB IEnroll2_put_EnableSMIMECapabilities_Stub(
  996.     IRpcStubBuffer *This,
  997.     IRpcChannelBuffer *_pRpcChannelBuffer,
  998.     PRPC_MESSAGE _pRpcMessage,
  999.     DWORD *_pdwStubPhase);
  1000. /* [propget] */ HRESULT STDMETHODCALLTYPE IEnroll2_get_EnableSMIMECapabilities_Proxy( 
  1001.     IEnroll2 * This,
  1002.     /* [retval][out] */ BOOL *fEnableSMIMECapabilities);
  1003. void __RPC_STUB IEnroll2_get_EnableSMIMECapabilities_Stub(
  1004.     IRpcStubBuffer *This,
  1005.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1006.     PRPC_MESSAGE _pRpcMessage,
  1007.     DWORD *_pdwStubPhase);
  1008. #endif  /* __IEnroll2_INTERFACE_DEFINED__ */
  1009. #ifndef __IEnroll4_INTERFACE_DEFINED__
  1010. #define __IEnroll4_INTERFACE_DEFINED__
  1011. /* interface IEnroll4 */
  1012. /* [unique][helpstring][local][uuid][object] */ 
  1013. EXTERN_C const IID IID_IEnroll4;
  1014. #if defined(__cplusplus) && !defined(CINTERFACE)
  1015.     
  1016.     MIDL_INTERFACE("f8053fe5-78f4-448f-a0db-41d61b73446b")
  1017.     IEnroll4 : public IEnroll2
  1018.     {
  1019.     public:
  1020.         virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ThumbPrintWStr( 
  1021.             /* [in] */ CRYPT_DATA_BLOB thumbPrintBlob) = 0;
  1022.         
  1023.         virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ThumbPrintWStr( 
  1024.             /* [retval][out] */ PCRYPT_DATA_BLOB thumbPrintBlob) = 0;
  1025.         
  1026.         virtual HRESULT STDMETHODCALLTYPE SetPrivateKeyArchiveCertificate( 
  1027.             /* [in] */ PCCERT_CONTEXT pPrivateKeyArchiveCert) = 0;
  1028.         
  1029.         virtual PCCERT_CONTEXT STDMETHODCALLTYPE GetPrivateKeyArchiveCertificate( void) = 0;
  1030.         
  1031.         virtual HRESULT STDMETHODCALLTYPE binaryBlobToString( 
  1032.             /* [in] */ LONG Flags,
  1033.             /* [in] */ PCRYPT_DATA_BLOB pblobBinary,
  1034.             /* [out] */ LPWSTR *ppwszString) = 0;
  1035.         
  1036.         virtual HRESULT STDMETHODCALLTYPE stringToBinaryBlob( 
  1037.             /* [in] */ LONG Flags,
  1038.             /* [in] */ LPCWSTR pwszString,
  1039.             /* [out] */ PCRYPT_DATA_BLOB pblobBinary,
  1040.             /* [out] */ LONG *pdwSkip,
  1041.             /* [out] */ LONG *pdwFlags) = 0;
  1042.         
  1043.         virtual HRESULT STDMETHODCALLTYPE addExtensionToRequestWStr( 
  1044.             /* [in] */ LONG Flags,
  1045.             /* [in] */ LPCWSTR pwszName,
  1046.             /* [in] */ PCRYPT_DATA_BLOB pblobValue) = 0;
  1047.         
  1048.         virtual HRESULT STDMETHODCALLTYPE addAttributeToRequestWStr( 
  1049.             /* [in] */ LONG Flags,
  1050.             /* [in] */ LPCWSTR pwszName,
  1051.             /* [in] */ PCRYPT_DATA_BLOB pblobValue) = 0;
  1052.         
  1053.         virtual HRESULT STDMETHODCALLTYPE addNameValuePairToRequestWStr( 
  1054.             /* [in] */ LONG Flags,
  1055.             /* [in] */ LPCWSTR pwszName,
  1056.             /* [in] */ LPCWSTR pwszValue) = 0;
  1057.         
  1058.         virtual HRESULT STDMETHODCALLTYPE resetExtensions( void) = 0;
  1059.         
  1060.         virtual HRESULT STDMETHODCALLTYPE resetAttributes( void) = 0;
  1061.         
  1062.         virtual HRESULT STDMETHODCALLTYPE createRequestWStr( 
  1063.             /* [in] */ LONG Flags,
  1064.             /* [in] */ LPCWSTR pwszDNName,
  1065.             /* [in] */ LPCWSTR pwszUsage,
  1066.             /* [out] */ PCRYPT_DATA_BLOB pblobRequest) = 0;
  1067.         
  1068.         virtual HRESULT STDMETHODCALLTYPE createFileRequestWStr( 
  1069.             /* [in] */ LONG Flags,
  1070.             /* [in] */ LPCWSTR pwszDNName,
  1071.             /* [in] */ LPCWSTR pwszUsage,
  1072.             /* [in] */ LPCWSTR pwszRequestFileName) = 0;
  1073.         
  1074.         virtual HRESULT STDMETHODCALLTYPE acceptResponseBlob( 
  1075.             /* [in] */ PCRYPT_DATA_BLOB pblobResponse) = 0;
  1076.         
  1077.         virtual HRESULT STDMETHODCALLTYPE acceptFileResponseWStr( 
  1078.             /* [in] */ LPCWSTR pwszResponseFileName) = 0;
  1079.         
  1080.         virtual HRESULT STDMETHODCALLTYPE getCertContextFromResponseBlob( 
  1081.             /* [in] */ PCRYPT_DATA_BLOB pblobResponse,
  1082.             /* [out] */ PCCERT_CONTEXT *ppCertContext) = 0;
  1083.         
  1084.         virtual HRESULT STDMETHODCALLTYPE getCertContextFromFileResponseWStr( 
  1085.             /* [in] */ LPCWSTR pwszResponseFileName,
  1086.             /* [out] */ PCCERT_CONTEXT *ppCertContext) = 0;
  1087.         
  1088.         virtual HRESULT STDMETHODCALLTYPE createPFXWStr( 
  1089.             /* [in] */ LPCWSTR pwszPassword,
  1090.             /* [out] */ PCRYPT_DATA_BLOB pblobPFX) = 0;
  1091.         
  1092.         virtual HRESULT STDMETHODCALLTYPE createFilePFXWStr( 
  1093.             /* [in] */ LPCWSTR pwszPassword,
  1094.             /* [in] */ LPCWSTR pwszPFXFileName) = 0;
  1095.         
  1096.         virtual HRESULT STDMETHODCALLTYPE setPendingRequestInfoWStr( 
  1097.             /* [in] */ LONG lRequestID,
  1098.             /* [in] */ LPCWSTR pwszCADNS,
  1099.             /* [in] */ LPCWSTR pwszCAName,
  1100.             /* [in] */ LPCWSTR pwszFriendlyName) = 0;
  1101.         
  1102.         virtual HRESULT STDMETHODCALLTYPE enumPendingRequestWStr( 
  1103.             /* [in] */ LONG lIndex,
  1104.             /* [in] */ LONG lDesiredProperty,
  1105.             /* [out] */ LPVOID ppProperty) = 0;
  1106.         
  1107.         virtual HRESULT STDMETHODCALLTYPE removePendingRequestWStr( 
  1108.             /* [in] */ CRYPT_DATA_BLOB thumbPrintBlob) = 0;
  1109.         
  1110.         virtual HRESULT STDMETHODCALLTYPE GetKeyLenEx( 
  1111.             /* [in] */ LONG lSizeSpec,
  1112.             /* [in] */ LONG lKeySpec,
  1113.             /* [retval][out] */ LONG *pdwKeySize) = 0;
  1114.         
  1115.         virtual HRESULT STDMETHODCALLTYPE InstallPKCS7BlobEx( 
  1116.             /* [in] */ PCRYPT_DATA_BLOB pBlobPKCS7,
  1117.             /* [retval][out] */ LONG *plCertInstalled) = 0;
  1118.         
  1119.         virtual HRESULT STDMETHODCALLTYPE AddCertTypeToRequestWStrEx( 
  1120.             /* [in] */ LONG lType,
  1121.             /* [in] */ LPCWSTR pwszOIDOrName,
  1122.             /* [in] */ LONG lMajorVersion,
  1123.             /* [in] */ BOOL fMinorVersion,
  1124.             /* [in] */ LONG lMinorVersion) = 0;
  1125.         
  1126.         virtual HRESULT STDMETHODCALLTYPE getProviderTypeWStr( 
  1127.             /* [in] */ LPCWSTR pwszProvName,
  1128.             /* [retval][out] */ LONG *plProvType) = 0;
  1129.         
  1130.         virtual HRESULT STDMETHODCALLTYPE addBlobPropertyToCertificateWStr( 
  1131.             /* [in] */ LONG lPropertyId,
  1132.             /* [in] */ LONG lReserved,
  1133.             /* [in] */ PCRYPT_DATA_BLOB pBlobProperty) = 0;
  1134.         
  1135.         virtual HRESULT STDMETHODCALLTYPE SetSignerCertificate( 
  1136.             /* [in] */ PCCERT_CONTEXT pSignerCert) = 0;
  1137.         
  1138.         virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ClientId( 
  1139.             /* [in] */ LONG lClientId) = 0;
  1140.         
  1141.         virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ClientId( 
  1142.             /* [retval][out] */ LONG *plClientId) = 0;
  1143.         
  1144.         virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_IncludeSubjectKeyID( 
  1145.             /* [in] */ BOOL fInclude) = 0;
  1146.         
  1147.         virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IncludeSubjectKeyID( 
  1148.             /* [retval][out] */ BOOL *pfInclude) = 0;
  1149.         
  1150.     };
  1151.     
  1152. #else  /* C style interface */
  1153.     typedef struct IEnroll4Vtbl
  1154.     {
  1155.         BEGIN_INTERFACE
  1156.         
  1157.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1158.             IEnroll4 * This,
  1159.             /* [in] */ REFIID riid,
  1160.             /* [iid_is][out] */ void **ppvObject);
  1161.         
  1162.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1163.             IEnroll4 * This);
  1164.         
  1165.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1166.             IEnroll4 * This);
  1167.         
  1168.         HRESULT ( STDMETHODCALLTYPE *createFilePKCS10WStr )( 
  1169.             IEnroll4 * This,
  1170.             /* [in] */ LPCWSTR DNName,
  1171.             /* [in] */ LPCWSTR Usage,
  1172.             /* [in] */ LPCWSTR wszPKCS10FileName);
  1173.         
  1174.         HRESULT ( STDMETHODCALLTYPE *acceptFilePKCS7WStr )( 
  1175.             IEnroll4 * This,
  1176.             /* [in] */ LPCWSTR wszPKCS7FileName);
  1177.         
  1178.         HRESULT ( STDMETHODCALLTYPE *createPKCS10WStr )( 
  1179.             IEnroll4 * This,
  1180.             /* [in] */ LPCWSTR DNName,
  1181.             /* [in] */ LPCWSTR Usage,
  1182.             /* [out] */ PCRYPT_DATA_BLOB pPkcs10Blob);
  1183.         
  1184.         HRESULT ( STDMETHODCALLTYPE *acceptPKCS7Blob )( 
  1185.             IEnroll4 * This,
  1186.             /* [in] */ PCRYPT_DATA_BLOB pBlobPKCS7);
  1187.         
  1188.         PCCERT_CONTEXT ( STDMETHODCALLTYPE *getCertContextFromPKCS7 )( 
  1189.             IEnroll4 * This,
  1190.             /* [in] */ PCRYPT_DATA_BLOB pBlobPKCS7);
  1191.         
  1192.         HCERTSTORE ( STDMETHODCALLTYPE *getMyStore )( 
  1193.             IEnroll4 * This);
  1194.         
  1195.         HCERTSTORE ( STDMETHODCALLTYPE *getCAStore )( 
  1196.             IEnroll4 * This);
  1197.         
  1198.         HCERTSTORE ( STDMETHODCALLTYPE *getROOTHStore )( 
  1199.             IEnroll4 * This);
  1200.         
  1201.         HRESULT ( STDMETHODCALLTYPE *enumProvidersWStr )( 
  1202.             IEnroll4 * This,
  1203.             /* [in] */ LONG dwIndex,
  1204.             /* [in] */ LONG dwFlags,
  1205.             /* [out] */ LPWSTR *pbstrProvName);
  1206.         
  1207.         HRESULT ( STDMETHODCALLTYPE *enumContainersWStr )( 
  1208.             IEnroll4 * This,
  1209.             /* [in] */ LONG dwIndex,
  1210.             /* [out] */ LPWSTR *pbstr);
  1211.         
  1212.         HRESULT ( STDMETHODCALLTYPE *freeRequestInfoBlob )( 
  1213.             IEnroll4 * This,
  1214.             /* [in] */ CRYPT_DATA_BLOB pkcs7OrPkcs10);
  1215.         
  1216.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_MyStoreNameWStr )( 
  1217.             IEnroll4 * This,
  1218.             /* [out] */ LPWSTR *szwName);
  1219.         
  1220.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_MyStoreNameWStr )( 
  1221.             IEnroll4 * This,
  1222.             /* [in] */ LPWSTR szwName);
  1223.         
  1224.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_MyStoreTypeWStr )( 
  1225.             IEnroll4 * This,
  1226.             /* [out] */ LPWSTR *szwType);
  1227.         
  1228.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_MyStoreTypeWStr )( 
  1229.             IEnroll4 * This,
  1230.             /* [in] */ LPWSTR szwType);
  1231.         
  1232.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_MyStoreFlags )( 
  1233.             IEnroll4 * This,
  1234.             /* [out] */ LONG *pdwFlags);
  1235.         
  1236.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_MyStoreFlags )( 
  1237.             IEnroll4 * This,
  1238.             /* [in] */ LONG dwFlags);
  1239.         
  1240.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_CAStoreNameWStr )( 
  1241.             IEnroll4 * This,
  1242.             /* [out] */ LPWSTR *szwName);
  1243.         
  1244.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_CAStoreNameWStr )( 
  1245.             IEnroll4 * This,
  1246.             /* [in] */ LPWSTR szwName);
  1247.         
  1248.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_CAStoreTypeWStr )( 
  1249.             IEnroll4 * This,
  1250.             /* [out] */ LPWSTR *szwType);
  1251.         
  1252.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_CAStoreTypeWStr )( 
  1253.             IEnroll4 * This,
  1254.             /* [in] */ LPWSTR szwType);
  1255.         
  1256.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_CAStoreFlags )( 
  1257.             IEnroll4 * This,
  1258.             /* [out] */ LONG *pdwFlags);
  1259.         
  1260.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_CAStoreFlags )( 
  1261.             IEnroll4 * This,
  1262.             /* [in] */ LONG dwFlags);
  1263.         
  1264.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RootStoreNameWStr )( 
  1265.             IEnroll4 * This,
  1266.             /* [out] */ LPWSTR *szwName);
  1267.         
  1268.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_RootStoreNameWStr )( 
  1269.             IEnroll4 * This,
  1270.             /* [in] */ LPWSTR szwName);
  1271.         
  1272.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RootStoreTypeWStr )( 
  1273.             IEnroll4 * This,
  1274.             /* [out] */ LPWSTR *szwType);
  1275.         
  1276.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_RootStoreTypeWStr )( 
  1277.             IEnroll4 * This,
  1278.             /* [in] */ LPWSTR szwType);
  1279.         
  1280.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RootStoreFlags )( 
  1281.             IEnroll4 * This,
  1282.             /* [out] */ LONG *pdwFlags);
  1283.         
  1284.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_RootStoreFlags )( 
  1285.             IEnroll4 * This,
  1286.             /* [in] */ LONG dwFlags);
  1287.         
  1288.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RequestStoreNameWStr )( 
  1289.             IEnroll4 * This,
  1290.             /* [out] */ LPWSTR *szwName);
  1291.         
  1292.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_RequestStoreNameWStr )( 
  1293.             IEnroll4 * This,
  1294.             /* [in] */ LPWSTR szwName);
  1295.         
  1296.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RequestStoreTypeWStr )( 
  1297.             IEnroll4 * This,
  1298.             /* [out] */ LPWSTR *szwType);
  1299.         
  1300.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_RequestStoreTypeWStr )( 
  1301.             IEnroll4 * This,
  1302.             /* [in] */ LPWSTR szwType);
  1303.         
  1304.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RequestStoreFlags )( 
  1305.             IEnroll4 * This,
  1306.             /* [out] */ LONG *pdwFlags);
  1307.         
  1308.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_RequestStoreFlags )( 
  1309.             IEnroll4 * This,
  1310.             /* [in] */ LONG dwFlags);
  1311.         
  1312.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ContainerNameWStr )( 
  1313.             IEnroll4 * This,
  1314.             /* [out] */ LPWSTR *szwContainer);
  1315.         
  1316.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ContainerNameWStr )( 
  1317.             IEnroll4 * This,
  1318.             /* [in] */ LPWSTR szwContainer);
  1319.         
  1320.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ProviderNameWStr )( 
  1321.             IEnroll4 * This,
  1322.             /* [out] */ LPWSTR *szwProvider);
  1323.         
  1324.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ProviderNameWStr )( 
  1325.             IEnroll4 * This,
  1326.             /* [in] */ LPWSTR szwProvider);
  1327.         
  1328.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ProviderType )( 
  1329.             IEnroll4 * This,
  1330.             /* [out] */ LONG *pdwType);
  1331.         
  1332.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ProviderType )( 
  1333.             IEnroll4 * This,
  1334.             /* [in] */ LONG dwType);
  1335.         
  1336.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_KeySpec )( 
  1337.             IEnroll4 * This,
  1338.             /* [out] */ LONG *pdw);
  1339.         
  1340.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_KeySpec )( 
  1341.             IEnroll4 * This,
  1342.             /* [in] */ LONG dw);
  1343.         
  1344.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ProviderFlags )( 
  1345.             IEnroll4 * This,
  1346.             /* [out] */ LONG *pdwFlags);
  1347.         
  1348.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ProviderFlags )( 
  1349.             IEnroll4 * This,
  1350.             /* [in] */ LONG dwFlags);
  1351.         
  1352.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_UseExistingKeySet )( 
  1353.             IEnroll4 * This,
  1354.             /* [out] */ BOOL *fUseExistingKeys);
  1355.         
  1356.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_UseExistingKeySet )( 
  1357.             IEnroll4 * This,
  1358.             /* [in] */ BOOL fUseExistingKeys);
  1359.         
  1360.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_GenKeyFlags )( 
  1361.             IEnroll4 * This,
  1362.             /* [out] */ LONG *pdwFlags);
  1363.         
  1364.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_GenKeyFlags )( 
  1365.             IEnroll4 * This,
  1366.             /* [in] */ LONG dwFlags);
  1367.         
  1368.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_DeleteRequestCert )( 
  1369.             IEnroll4 * This,
  1370.             /* [out] */ BOOL *fDelete);
  1371.         
  1372.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_DeleteRequestCert )( 
  1373.             IEnroll4 * This,
  1374.             /* [in] */ BOOL fDelete);
  1375.         
  1376.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_WriteCertToUserDS )( 
  1377.             IEnroll4 * This,
  1378.             /* [out] */ BOOL *fBool);
  1379.         
  1380.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_WriteCertToUserDS )( 
  1381.             IEnroll4 * This,
  1382.             /* [in] */ BOOL fBool);
  1383.         
  1384.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_EnableT61DNEncoding )( 
  1385.             IEnroll4 * This,
  1386.             /* [out] */ BOOL *fBool);
  1387.         
  1388.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_EnableT61DNEncoding )( 
  1389.             IEnroll4 * This,
  1390.             /* [in] */ BOOL fBool);
  1391.         
  1392.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_WriteCertToCSP )( 
  1393.             IEnroll4 * This,
  1394.             /* [out] */ BOOL *fBool);
  1395.         
  1396.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_WriteCertToCSP )( 
  1397.             IEnroll4 * This,
  1398.             /* [in] */ BOOL fBool);
  1399.         
  1400.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SPCFileNameWStr )( 
  1401.             IEnroll4 * This,
  1402.             /* [out] */ LPWSTR *szw);
  1403.         
  1404.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_SPCFileNameWStr )( 
  1405.             IEnroll4 * This,
  1406.             /* [in] */ LPWSTR szw);
  1407.         
  1408.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PVKFileNameWStr )( 
  1409.             IEnroll4 * This,
  1410.             /* [out] */ LPWSTR *szw);
  1411.         
  1412.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PVKFileNameWStr )( 
  1413.             IEnroll4 * This,
  1414.             /* [in] */ LPWSTR szw);
  1415.         
  1416.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HashAlgorithmWStr )( 
  1417.             IEnroll4 * This,
  1418.             /* [out] */ LPWSTR *szw);
  1419.         
  1420.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_HashAlgorithmWStr )( 
  1421.             IEnroll4 * This,
  1422.             /* [in] */ LPWSTR szw);
  1423.         
  1424.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RenewalCertificate )( 
  1425.             IEnroll4 * This,
  1426.             /* [out] */ PCCERT_CONTEXT *ppCertContext);
  1427.         
  1428.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_RenewalCertificate )( 
  1429.             IEnroll4 * This,
  1430.             /* [in] */ PCCERT_CONTEXT pCertContext);
  1431.         
  1432.         HRESULT ( STDMETHODCALLTYPE *AddCertTypeToRequestWStr )( 
  1433.             IEnroll4 * This,
  1434.             /* [in] */ LPWSTR szw);
  1435.         
  1436.         HRESULT ( STDMETHODCALLTYPE *AddNameValuePairToSignatureWStr )( 
  1437.             IEnroll4 * This,
  1438.             /* [in] */ LPWSTR Name,
  1439.             /* [in] */ LPWSTR Value);
  1440.         
  1441.         HRESULT ( STDMETHODCALLTYPE *AddExtensionsToRequest )( 
  1442.             IEnroll4 * This,
  1443.             /* [in] */ PCERT_EXTENSIONS pCertExtensions);
  1444.         
  1445.         HRESULT ( STDMETHODCALLTYPE *AddAuthenticatedAttributesToPKCS7Request )( 
  1446.             IEnroll4 * This,
  1447.             /* [in] */ PCRYPT_ATTRIBUTES pAttributes);
  1448.         
  1449.         HRESULT ( STDMETHODCALLTYPE *CreatePKCS7RequestFromRequest )( 
  1450.             IEnroll4 * This,
  1451.             /* [in] */ PCRYPT_DATA_BLOB pRequest,
  1452.             /* [in] */ PCCERT_CONTEXT pSigningCertContext,
  1453.             /* [out] */ PCRYPT_DATA_BLOB pPkcs7Blob);
  1454.         
  1455.         HRESULT ( STDMETHODCALLTYPE *InstallPKCS7Blob )( 
  1456.             IEnroll4 * This,
  1457.             /* [in] */ PCRYPT_DATA_BLOB pBlobPKCS7);
  1458.         
  1459.         HRESULT ( STDMETHODCALLTYPE *Reset )( 
  1460.             IEnroll4 * This);
  1461.         
  1462.         HRESULT ( STDMETHODCALLTYPE *GetSupportedKeySpec )( 
  1463.             IEnroll4 * This,
  1464.             /* [out] */ LONG *pdwKeySpec);
  1465.         
  1466.         HRESULT ( STDMETHODCALLTYPE *GetKeyLen )( 
  1467.             IEnroll4 * This,
  1468.             /* [in] */ BOOL fMin,
  1469.             /* [in] */ BOOL fExchange,
  1470.             /* [out] */ LONG *pdwKeySize);
  1471.         
  1472.         HRESULT ( STDMETHODCALLTYPE *EnumAlgs )( 
  1473.             IEnroll4 * This,
  1474.             /* [in] */ LONG dwIndex,
  1475.             /* [in] */ LONG algClass,
  1476.             /* [out] */ LONG *pdwAlgID);
  1477.         
  1478.         HRESULT ( STDMETHODCALLTYPE *GetAlgNameWStr )( 
  1479.             IEnroll4 * This,
  1480.             /* [in] */ LONG algID,
  1481.             /* [out] */ LPWSTR *ppwsz);
  1482.         
  1483.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ReuseHardwareKeyIfUnableToGenNew )( 
  1484.             IEnroll4 * This,
  1485.             /* [in] */ BOOL fReuseHardwareKeyIfUnableToGenNew);
  1486.         
  1487.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ReuseHardwareKeyIfUnableToGenNew )( 
  1488.             IEnroll4 * This,
  1489.             /* [out] */ BOOL *fReuseHardwareKeyIfUnableToGenNew);
  1490.         
  1491.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_HashAlgID )( 
  1492.             IEnroll4 * This,
  1493.             /* [in] */ LONG hashAlgID);
  1494.         
  1495.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HashAlgID )( 
  1496.             IEnroll4 * This,
  1497.             /* [retval][out] */ LONG *hashAlgID);
  1498.         
  1499.         HRESULT ( STDMETHODCALLTYPE *SetHStoreMy )( 
  1500.             IEnroll4 * This,
  1501.             /* [in] */ HCERTSTORE hStore);
  1502.         
  1503.         HRESULT ( STDMETHODCALLTYPE *SetHStoreCA )( 
  1504.             IEnroll4 * This,
  1505.             /* [in] */ HCERTSTORE hStore);
  1506.         
  1507.         HRESULT ( STDMETHODCALLTYPE *SetHStoreROOT )( 
  1508.             IEnroll4 * This,
  1509.             /* [in] */ HCERTSTORE hStore);
  1510.         
  1511.         HRESULT ( STDMETHODCALLTYPE *SetHStoreRequest )( 
  1512.             IEnroll4 * This,
  1513.             /* [in] */ HCERTSTORE hStore);
  1514.         
  1515.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_LimitExchangeKeyToEncipherment )( 
  1516.             IEnroll4 * This,
  1517.             /* [in] */ BOOL fLimitExchangeKeyToEncipherment);
  1518.         
  1519.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_LimitExchangeKeyToEncipherment )( 
  1520.             IEnroll4 * This,
  1521.             /* [retval][out] */ BOOL *fLimitExchangeKeyToEncipherment);
  1522.         
  1523.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_EnableSMIMECapabilities )( 
  1524.             IEnroll4 * This,
  1525.             /* [in] */ BOOL fEnableSMIMECapabilities);
  1526.         
  1527.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_EnableSMIMECapabilities )( 
  1528.             IEnroll4 * This,
  1529.             /* [retval][out] */ BOOL *fEnableSMIMECapabilities);
  1530.         
  1531.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ThumbPrintWStr )( 
  1532.             IEnroll4 * This,
  1533.             /* [in] */ CRYPT_DATA_BLOB thumbPrintBlob);
  1534.         
  1535.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ThumbPrintWStr )( 
  1536.             IEnroll4 * This,
  1537.             /* [retval][out] */ PCRYPT_DATA_BLOB thumbPrintBlob);
  1538.         
  1539.         HRESULT ( STDMETHODCALLTYPE *SetPrivateKeyArchiveCertificate )( 
  1540.             IEnroll4 * This,
  1541.             /* [in] */ PCCERT_CONTEXT pPrivateKeyArchiveCert);
  1542.         
  1543.         PCCERT_CONTEXT ( STDMETHODCALLTYPE *GetPrivateKeyArchiveCertificate )( 
  1544.             IEnroll4 * This);
  1545.         
  1546.         HRESULT ( STDMETHODCALLTYPE *binaryBlobToString )( 
  1547.             IEnroll4 * This,
  1548.             /* [in] */ LONG Flags,
  1549.             /* [in] */ PCRYPT_DATA_BLOB pblobBinary,
  1550.             /* [out] */ LPWSTR *ppwszString);
  1551.         
  1552.         HRESULT ( STDMETHODCALLTYPE *stringToBinaryBlob )( 
  1553.             IEnroll4 * This,
  1554.             /* [in] */ LONG Flags,
  1555.             /* [in] */ LPCWSTR pwszString,
  1556.             /* [out] */ PCRYPT_DATA_BLOB pblobBinary,
  1557.             /* [out] */ LONG *pdwSkip,
  1558.             /* [out] */ LONG *pdwFlags);
  1559.         
  1560.         HRESULT ( STDMETHODCALLTYPE *addExtensionToRequestWStr )( 
  1561.             IEnroll4 * This,
  1562.             /* [in] */ LONG Flags,
  1563.             /* [in] */ LPCWSTR pwszName,
  1564.             /* [in] */ PCRYPT_DATA_BLOB pblobValue);
  1565.         
  1566.         HRESULT ( STDMETHODCALLTYPE *addAttributeToRequestWStr )( 
  1567.             IEnroll4 * This,
  1568.             /* [in] */ LONG Flags,
  1569.             /* [in] */ LPCWSTR pwszName,
  1570.             /* [in] */ PCRYPT_DATA_BLOB pblobValue);
  1571.         
  1572.         HRESULT ( STDMETHODCALLTYPE *addNameValuePairToRequestWStr )( 
  1573.             IEnroll4 * This,
  1574.             /* [in] */ LONG Flags,
  1575.             /* [in] */ LPCWSTR pwszName,
  1576.             /* [in] */ LPCWSTR pwszValue);
  1577.         
  1578.         HRESULT ( STDMETHODCALLTYPE *resetExtensions )( 
  1579.             IEnroll4 * This);
  1580.         
  1581.         HRESULT ( STDMETHODCALLTYPE *resetAttributes )( 
  1582.             IEnroll4 * This);
  1583.         
  1584.         HRESULT ( STDMETHODCALLTYPE *createRequestWStr )( 
  1585.             IEnroll4 * This,
  1586.             /* [in] */ LONG Flags,
  1587.             /* [in] */ LPCWSTR pwszDNName,
  1588.             /* [in] */ LPCWSTR pwszUsage,
  1589.             /* [out] */ PCRYPT_DATA_BLOB pblobRequest);
  1590.         
  1591.         HRESULT ( STDMETHODCALLTYPE *createFileRequestWStr )( 
  1592.             IEnroll4 * This,
  1593.             /* [in] */ LONG Flags,
  1594.             /* [in] */ LPCWSTR pwszDNName,
  1595.             /* [in] */ LPCWSTR pwszUsage,
  1596.             /* [in] */ LPCWSTR pwszRequestFileName);
  1597.         
  1598.         HRESULT ( STDMETHODCALLTYPE *acceptResponseBlob )( 
  1599.             IEnroll4 * This,
  1600.             /* [in] */ PCRYPT_DATA_BLOB pblobResponse);
  1601.         
  1602.         HRESULT ( STDMETHODCALLTYPE *acceptFileResponseWStr )( 
  1603.             IEnroll4 * This,
  1604.             /* [in] */ LPCWSTR pwszResponseFileName);
  1605.         
  1606.         HRESULT ( STDMETHODCALLTYPE *getCertContextFromResponseBlob )( 
  1607.             IEnroll4 * This,
  1608.             /* [in] */ PCRYPT_DATA_BLOB pblobResponse,
  1609.             /* [out] */ PCCERT_CONTEXT *ppCertContext);
  1610.         
  1611.         HRESULT ( STDMETHODCALLTYPE *getCertContextFromFileResponseWStr )( 
  1612.             IEnroll4 * This,
  1613.             /* [in] */ LPCWSTR pwszResponseFileName,
  1614.             /* [out] */ PCCERT_CONTEXT *ppCertContext);
  1615.         
  1616.         HRESULT ( STDMETHODCALLTYPE *createPFXWStr )( 
  1617.             IEnroll4 * This,
  1618.             /* [in] */ LPCWSTR pwszPassword,
  1619.             /* [out] */ PCRYPT_DATA_BLOB pblobPFX);
  1620.         
  1621.         HRESULT ( STDMETHODCALLTYPE *createFilePFXWStr )( 
  1622.             IEnroll4 * This,
  1623.             /* [in] */ LPCWSTR pwszPassword,
  1624.             /* [in] */ LPCWSTR pwszPFXFileName);
  1625.         
  1626.         HRESULT ( STDMETHODCALLTYPE *setPendingRequestInfoWStr )( 
  1627.             IEnroll4 * This,
  1628.             /* [in] */ LONG lRequestID,
  1629.             /* [in] */ LPCWSTR pwszCADNS,
  1630.             /* [in] */ LPCWSTR pwszCAName,
  1631.             /* [in] */ LPCWSTR pwszFriendlyName);
  1632.         
  1633.         HRESULT ( STDMETHODCALLTYPE *enumPendingRequestWStr )( 
  1634.             IEnroll4 * This,
  1635.             /* [in] */ LONG lIndex,
  1636.             /* [in] */ LONG lDesiredProperty,
  1637.             /* [out] */ LPVOID ppProperty);
  1638.         
  1639.         HRESULT ( STDMETHODCALLTYPE *removePendingRequestWStr )( 
  1640.             IEnroll4 * This,
  1641.             /* [in] */ CRYPT_DATA_BLOB thumbPrintBlob);
  1642.         
  1643.         HRESULT ( STDMETHODCALLTYPE *GetKeyLenEx )( 
  1644.             IEnroll4 * This,
  1645.             /* [in] */ LONG lSizeSpec,
  1646.             /* [in] */ LONG lKeySpec,
  1647.             /* [retval][out] */ LONG *pdwKeySize);
  1648.         
  1649.         HRESULT ( STDMETHODCALLTYPE *InstallPKCS7BlobEx )( 
  1650.             IEnroll4 * This,
  1651.             /* [in] */ PCRYPT_DATA_BLOB pBlobPKCS7,
  1652.             /* [retval][out] */ LONG *plCertInstalled);
  1653.         
  1654.         HRESULT ( STDMETHODCALLTYPE *AddCertTypeToRequestWStrEx )( 
  1655.             IEnroll4 * This,
  1656.             /* [in] */ LONG lType,
  1657.             /* [in] */ LPCWSTR pwszOIDOrName,
  1658.             /* [in] */ LONG lMajorVersion,
  1659.             /* [in] */ BOOL fMinorVersion,
  1660.             /* [in] */ LONG lMinorVersion);
  1661.         
  1662.         HRESULT ( STDMETHODCALLTYPE *getProviderTypeWStr )( 
  1663.             IEnroll4 * This,
  1664.             /* [in] */ LPCWSTR pwszProvName,
  1665.             /* [retval][out] */ LONG *plProvType);
  1666.         
  1667.         HRESULT ( STDMETHODCALLTYPE *addBlobPropertyToCertificateWStr )( 
  1668.             IEnroll4 * This,
  1669.             /* [in] */ LONG lPropertyId,
  1670.             /* [in] */ LONG lReserved,
  1671.             /* [in] */ PCRYPT_DATA_BLOB pBlobProperty);
  1672.         
  1673.         HRESULT ( STDMETHODCALLTYPE *SetSignerCertificate )( 
  1674.             IEnroll4 * This,
  1675.             /* [in] */ PCCERT_CONTEXT pSignerCert);
  1676.         
  1677.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ClientId )( 
  1678.             IEnroll4 * This,
  1679.             /* [in] */ LONG lClientId);
  1680.         
  1681.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClientId )( 
  1682.             IEnroll4 * This,
  1683.             /* [retval][out] */ LONG *plClientId);
  1684.         
  1685.         /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_IncludeSubjectKeyID )( 
  1686.             IEnroll4 * This,
  1687.             /* [in] */ BOOL fInclude);
  1688.         
  1689.         /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_IncludeSubjectKeyID )( 
  1690.             IEnroll4 * This,
  1691.             /* [retval][out] */ BOOL *pfInclude);
  1692.         
  1693.         END_INTERFACE
  1694.     } IEnroll4Vtbl;
  1695.     interface IEnroll4
  1696.     {
  1697.         CONST_VTBL struct IEnroll4Vtbl *lpVtbl;
  1698.     };
  1699.     
  1700. #ifdef COBJMACROS
  1701. #define IEnroll4_QueryInterface(This,riid,ppvObject)
  1702.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1703. #define IEnroll4_AddRef(This)
  1704.     (This)->lpVtbl -> AddRef(This)
  1705. #define IEnroll4_Release(This)
  1706.     (This)->lpVtbl -> Release(This)
  1707. #define IEnroll4_createFilePKCS10WStr(This,DNName,Usage,wszPKCS10FileName)
  1708.     (This)->lpVtbl -> createFilePKCS10WStr(This,DNName,Usage,wszPKCS10FileName)
  1709. #define IEnroll4_acceptFilePKCS7WStr(This,wszPKCS7FileName)
  1710.     (This)->lpVtbl -> acceptFilePKCS7WStr(This,wszPKCS7FileName)
  1711. #define IEnroll4_createPKCS10WStr(This,DNName,Usage,pPkcs10Blob)
  1712.     (This)->lpVtbl -> createPKCS10WStr(This,DNName,Usage,pPkcs10Blob)
  1713. #define IEnroll4_acceptPKCS7Blob(This,pBlobPKCS7)
  1714.     (This)->lpVtbl -> acceptPKCS7Blob(This,pBlobPKCS7)
  1715. #define IEnroll4_getCertContextFromPKCS7(This,pBlobPKCS7)
  1716.     (This)->lpVtbl -> getCertContextFromPKCS7(This,pBlobPKCS7)
  1717. #define IEnroll4_getMyStore(This)
  1718.     (This)->lpVtbl -> getMyStore(This)
  1719. #define IEnroll4_getCAStore(This)
  1720.     (This)->lpVtbl -> getCAStore(This)
  1721. #define IEnroll4_getROOTHStore(This)
  1722.     (This)->lpVtbl -> getROOTHStore(This)
  1723. #define IEnroll4_enumProvidersWStr(This,dwIndex,dwFlags,pbstrProvName)
  1724.     (This)->lpVtbl -> enumProvidersWStr(This,dwIndex,dwFlags,pbstrProvName)
  1725. #define IEnroll4_enumContainersWStr(This,dwIndex,pbstr)
  1726.     (This)->lpVtbl -> enumContainersWStr(This,dwIndex,pbstr)
  1727. #define IEnroll4_freeRequestInfoBlob(This,pkcs7OrPkcs10)
  1728.     (This)->lpVtbl -> freeRequestInfoBlob(This,pkcs7OrPkcs10)
  1729. #define IEnroll4_get_MyStoreNameWStr(This,szwName)
  1730.     (This)->lpVtbl -> get_MyStoreNameWStr(This,szwName)
  1731. #define IEnroll4_put_MyStoreNameWStr(This,szwName)
  1732.     (This)->lpVtbl -> put_MyStoreNameWStr(This,szwName)
  1733. #define IEnroll4_get_MyStoreTypeWStr(This,szwType)
  1734.     (This)->lpVtbl -> get_MyStoreTypeWStr(This,szwType)
  1735. #define IEnroll4_put_MyStoreTypeWStr(This,szwType)
  1736.     (This)->lpVtbl -> put_MyStoreTypeWStr(This,szwType)
  1737. #define IEnroll4_get_MyStoreFlags(This,pdwFlags)
  1738.     (This)->lpVtbl -> get_MyStoreFlags(This,pdwFlags)
  1739. #define IEnroll4_put_MyStoreFlags(This,dwFlags)
  1740.     (This)->lpVtbl -> put_MyStoreFlags(This,dwFlags)
  1741. #define IEnroll4_get_CAStoreNameWStr(This,szwName)
  1742.     (This)->lpVtbl -> get_CAStoreNameWStr(This,szwName)
  1743. #define IEnroll4_put_CAStoreNameWStr(This,szwName)
  1744.     (This)->lpVtbl -> put_CAStoreNameWStr(This,szwName)
  1745. #define IEnroll4_get_CAStoreTypeWStr(This,szwType)
  1746.     (This)->lpVtbl -> get_CAStoreTypeWStr(This,szwType)
  1747. #define IEnroll4_put_CAStoreTypeWStr(This,szwType)
  1748.     (This)->lpVtbl -> put_CAStoreTypeWStr(This,szwType)
  1749. #define IEnroll4_get_CAStoreFlags(This,pdwFlags)
  1750.     (This)->lpVtbl -> get_CAStoreFlags(This,pdwFlags)
  1751. #define IEnroll4_put_CAStoreFlags(This,dwFlags)
  1752.     (This)->lpVtbl -> put_CAStoreFlags(This,dwFlags)
  1753. #define IEnroll4_get_RootStoreNameWStr(This,szwName)
  1754.     (This)->lpVtbl -> get_RootStoreNameWStr(This,szwName)
  1755. #define IEnroll4_put_RootStoreNameWStr(This,szwName)
  1756.     (This)->lpVtbl -> put_RootStoreNameWStr(This,szwName)
  1757. #define IEnroll4_get_RootStoreTypeWStr(This,szwType)
  1758.     (This)->lpVtbl -> get_RootStoreTypeWStr(This,szwType)
  1759. #define IEnroll4_put_RootStoreTypeWStr(This,szwType)
  1760.     (This)->lpVtbl -> put_RootStoreTypeWStr(This,szwType)
  1761. #define IEnroll4_get_RootStoreFlags(This,pdwFlags)
  1762.     (This)->lpVtbl -> get_RootStoreFlags(This,pdwFlags)
  1763. #define IEnroll4_put_RootStoreFlags(This,dwFlags)
  1764.     (This)->lpVtbl -> put_RootStoreFlags(This,dwFlags)
  1765. #define IEnroll4_get_RequestStoreNameWStr(This,szwName)
  1766.     (This)->lpVtbl -> get_RequestStoreNameWStr(This,szwName)
  1767. #define IEnroll4_put_RequestStoreNameWStr(This,szwName)
  1768.     (This)->lpVtbl -> put_RequestStoreNameWStr(This,szwName)
  1769. #define IEnroll4_get_RequestStoreTypeWStr(This,szwType)
  1770.     (This)->lpVtbl -> get_RequestStoreTypeWStr(This,szwType)
  1771. #define IEnroll4_put_RequestStoreTypeWStr(This,szwType)
  1772.     (This)->lpVtbl -> put_RequestStoreTypeWStr(This,szwType)
  1773. #define IEnroll4_get_RequestStoreFlags(This,pdwFlags)
  1774.     (This)->lpVtbl -> get_RequestStoreFlags(This,pdwFlags)
  1775. #define IEnroll4_put_RequestStoreFlags(This,dwFlags)
  1776.     (This)->lpVtbl -> put_RequestStoreFlags(This,dwFlags)
  1777. #define IEnroll4_get_ContainerNameWStr(This,szwContainer)
  1778.     (This)->lpVtbl -> get_ContainerNameWStr(This,szwContainer)
  1779. #define IEnroll4_put_ContainerNameWStr(This,szwContainer)
  1780.     (This)->lpVtbl -> put_ContainerNameWStr(This,szwContainer)
  1781. #define IEnroll4_get_ProviderNameWStr(This,szwProvider)
  1782.     (This)->lpVtbl -> get_ProviderNameWStr(This,szwProvider)
  1783. #define IEnroll4_put_ProviderNameWStr(This,szwProvider)
  1784.     (This)->lpVtbl -> put_ProviderNameWStr(This,szwProvider)
  1785. #define IEnroll4_get_ProviderType(This,pdwType)
  1786.     (This)->lpVtbl -> get_ProviderType(This,pdwType)
  1787. #define IEnroll4_put_ProviderType(This,dwType)
  1788.     (This)->lpVtbl -> put_ProviderType(This,dwType)
  1789. #define IEnroll4_get_KeySpec(This,pdw)
  1790.     (This)->lpVtbl -> get_KeySpec(This,pdw)
  1791. #define IEnroll4_put_KeySpec(This,dw)
  1792.     (This)->lpVtbl -> put_KeySpec(This,dw)
  1793. #define IEnroll4_get_ProviderFlags(This,pdwFlags)
  1794.     (This)->lpVtbl -> get_ProviderFlags(This,pdwFlags)
  1795. #define IEnroll4_put_ProviderFlags(This,dwFlags)
  1796.     (This)->lpVtbl -> put_ProviderFlags(This,dwFlags)
  1797. #define IEnroll4_get_UseExistingKeySet(This,fUseExistingKeys)
  1798.     (This)->lpVtbl -> get_UseExistingKeySet(This,fUseExistingKeys)
  1799. #define IEnroll4_put_UseExistingKeySet(This,fUseExistingKeys)
  1800.     (This)->lpVtbl -> put_UseExistingKeySet(This,fUseExistingKeys)
  1801. #define IEnroll4_get_GenKeyFlags(This,pdwFlags)
  1802.     (This)->lpVtbl -> get_GenKeyFlags(This,pdwFlags)
  1803. #define IEnroll4_put_GenKeyFlags(This,dwFlags)
  1804.     (This)->lpVtbl -> put_GenKeyFlags(This,dwFlags)
  1805. #define IEnroll4_get_DeleteRequestCert(This,fDelete)
  1806.     (This)->lpVtbl -> get_DeleteRequestCert(This,fDelete)
  1807. #define IEnroll4_put_DeleteRequestCert(This,fDelete)
  1808.     (This)->lpVtbl -> put_DeleteRequestCert(This,fDelete)
  1809. #define IEnroll4_get_WriteCertToUserDS(This,fBool)
  1810.     (This)->lpVtbl -> get_WriteCertToUserDS(This,fBool)
  1811. #define IEnroll4_put_WriteCertToUserDS(This,fBool)
  1812.     (This)->lpVtbl -> put_WriteCertToUserDS(This,fBool)
  1813. #define IEnroll4_get_EnableT61DNEncoding(This,fBool)
  1814.     (This)->lpVtbl -> get_EnableT61DNEncoding(This,fBool)
  1815. #define IEnroll4_put_EnableT61DNEncoding(This,fBool)
  1816.     (This)->lpVtbl -> put_EnableT61DNEncoding(This,fBool)
  1817. #define IEnroll4_get_WriteCertToCSP(This,fBool)
  1818.     (This)->lpVtbl -> get_WriteCertToCSP(This,fBool)
  1819. #define IEnroll4_put_WriteCertToCSP(This,fBool)
  1820.     (This)->lpVtbl -> put_WriteCertToCSP(This,fBool)
  1821. #define IEnroll4_get_SPCFileNameWStr(This,szw)
  1822.     (This)->lpVtbl -> get_SPCFileNameWStr(This,szw)
  1823. #define IEnroll4_put_SPCFileNameWStr(This,szw)
  1824.     (This)->lpVtbl -> put_SPCFileNameWStr(This,szw)
  1825. #define IEnroll4_get_PVKFileNameWStr(This,szw)
  1826.     (This)->lpVtbl -> get_PVKFileNameWStr(This,szw)
  1827. #define IEnroll4_put_PVKFileNameWStr(This,szw)
  1828.     (This)->lpVtbl -> put_PVKFileNameWStr(This,szw)
  1829. #define IEnroll4_get_HashAlgorithmWStr(This,szw)
  1830.     (This)->lpVtbl -> get_HashAlgorithmWStr(This,szw)
  1831. #define IEnroll4_put_HashAlgorithmWStr(This,szw)
  1832.     (This)->lpVtbl -> put_HashAlgorithmWStr(This,szw)
  1833. #define IEnroll4_get_RenewalCertificate(This,ppCertContext)
  1834.     (This)->lpVtbl -> get_RenewalCertificate(This,ppCertContext)
  1835. #define IEnroll4_put_RenewalCertificate(This,pCertContext)
  1836.     (This)->lpVtbl -> put_RenewalCertificate(This,pCertContext)
  1837. #define IEnroll4_AddCertTypeToRequestWStr(This,szw)
  1838.     (This)->lpVtbl -> AddCertTypeToRequestWStr(This,szw)
  1839. #define IEnroll4_AddNameValuePairToSignatureWStr(This,Name,Value)
  1840.     (This)->lpVtbl -> AddNameValuePairToSignatureWStr(This,Name,Value)
  1841. #define IEnroll4_AddExtensionsToRequest(This,pCertExtensions)
  1842.     (This)->lpVtbl -> AddExtensionsToRequest(This,pCertExtensions)
  1843. #define IEnroll4_AddAuthenticatedAttributesToPKCS7Request(This,pAttributes)
  1844.     (This)->lpVtbl -> AddAuthenticatedAttributesToPKCS7Request(This,pAttributes)
  1845. #define IEnroll4_CreatePKCS7RequestFromRequest(This,pRequest,pSigningCertContext,pPkcs7Blob)
  1846.     (This)->lpVtbl -> CreatePKCS7RequestFromRequest(This,pRequest,pSigningCertContext,pPkcs7Blob)
  1847. #define IEnroll4_InstallPKCS7Blob(This,pBlobPKCS7)
  1848.     (This)->lpVtbl -> InstallPKCS7Blob(This,pBlobPKCS7)
  1849. #define IEnroll4_Reset(This)
  1850.     (This)->lpVtbl -> Reset(This)
  1851. #define IEnroll4_GetSupportedKeySpec(This,pdwKeySpec)
  1852.     (This)->lpVtbl -> GetSupportedKeySpec(This,pdwKeySpec)
  1853. #define IEnroll4_GetKeyLen(This,fMin,fExchange,pdwKeySize)
  1854.     (This)->lpVtbl -> GetKeyLen(This,fMin,fExchange,pdwKeySize)
  1855. #define IEnroll4_EnumAlgs(This,dwIndex,algClass,pdwAlgID)
  1856.     (This)->lpVtbl -> EnumAlgs(This,dwIndex,algClass,pdwAlgID)
  1857. #define IEnroll4_GetAlgNameWStr(This,algID,ppwsz)
  1858.     (This)->lpVtbl -> GetAlgNameWStr(This,algID,ppwsz)
  1859. #define IEnroll4_put_ReuseHardwareKeyIfUnableToGenNew(This,fReuseHardwareKeyIfUnableToGenNew)
  1860.     (This)->lpVtbl -> put_ReuseHardwareKeyIfUnableToGenNew(This,fReuseHardwareKeyIfUnableToGenNew)
  1861. #define IEnroll4_get_ReuseHardwareKeyIfUnableToGenNew(This,fReuseHardwareKeyIfUnableToGenNew)
  1862.     (This)->lpVtbl -> get_ReuseHardwareKeyIfUnableToGenNew(This,fReuseHardwareKeyIfUnableToGenNew)
  1863. #define IEnroll4_put_HashAlgID(This,hashAlgID)
  1864.     (This)->lpVtbl -> put_HashAlgID(This,hashAlgID)
  1865. #define IEnroll4_get_HashAlgID(This,hashAlgID)
  1866.     (This)->lpVtbl -> get_HashAlgID(This,hashAlgID)
  1867. #define IEnroll4_SetHStoreMy(This,hStore)
  1868.     (This)->lpVtbl -> SetHStoreMy(This,hStore)
  1869. #define IEnroll4_SetHStoreCA(This,hStore)
  1870.     (This)->lpVtbl -> SetHStoreCA(This,hStore)
  1871. #define IEnroll4_SetHStoreROOT(This,hStore)
  1872.     (This)->lpVtbl -> SetHStoreROOT(This,hStore)
  1873. #define IEnroll4_SetHStoreRequest(This,hStore)
  1874.     (This)->lpVtbl -> SetHStoreRequest(This,hStore)
  1875. #define IEnroll4_put_LimitExchangeKeyToEncipherment(This,fLimitExchangeKeyToEncipherment)
  1876.     (This)->lpVtbl -> put_LimitExchangeKeyToEncipherment(This,fLimitExchangeKeyToEncipherment)
  1877. #define IEnroll4_get_LimitExchangeKeyToEncipherment(This,fLimitExchangeKeyToEncipherment)
  1878.     (This)->lpVtbl -> get_LimitExchangeKeyToEncipherment(This,fLimitExchangeKeyToEncipherment)
  1879. #define IEnroll4_put_EnableSMIMECapabilities(This,fEnableSMIMECapabilities)
  1880.     (This)->lpVtbl -> put_EnableSMIMECapabilities(This,fEnableSMIMECapabilities)
  1881. #define IEnroll4_get_EnableSMIMECapabilities(This,fEnableSMIMECapabilities)
  1882.     (This)->lpVtbl -> get_EnableSMIMECapabilities(This,fEnableSMIMECapabilities)
  1883. #define IEnroll4_put_ThumbPrintWStr(This,thumbPrintBlob)
  1884.     (This)->lpVtbl -> put_ThumbPrintWStr(This,thumbPrintBlob)
  1885. #define IEnroll4_get_ThumbPrintWStr(This,thumbPrintBlob)
  1886.     (This)->lpVtbl -> get_ThumbPrintWStr(This,thumbPrintBlob)
  1887. #define IEnroll4_SetPrivateKeyArchiveCertificate(This,pPrivateKeyArchiveCert)
  1888.     (This)->lpVtbl -> SetPrivateKeyArchiveCertificate(This,pPrivateKeyArchiveCert)
  1889. #define IEnroll4_GetPrivateKeyArchiveCertificate(This)
  1890.     (This)->lpVtbl -> GetPrivateKeyArchiveCertificate(This)
  1891. #define IEnroll4_binaryBlobToString(This,Flags,pblobBinary,ppwszString)
  1892.     (This)->lpVtbl -> binaryBlobToString(This,Flags,pblobBinary,ppwszString)
  1893. #define IEnroll4_stringToBinaryBlob(This,Flags,pwszString,pblobBinary,pdwSkip,pdwFlags)
  1894.     (This)->lpVtbl -> stringToBinaryBlob(This,Flags,pwszString,pblobBinary,pdwSkip,pdwFlags)
  1895. #define IEnroll4_addExtensionToRequestWStr(This,Flags,pwszName,pblobValue)
  1896.     (This)->lpVtbl -> addExtensionToRequestWStr(This,Flags,pwszName,pblobValue)
  1897. #define IEnroll4_addAttributeToRequestWStr(This,Flags,pwszName,pblobValue)
  1898.     (This)->lpVtbl -> addAttributeToRequestWStr(This,Flags,pwszName,pblobValue)
  1899. #define IEnroll4_addNameValuePairToRequestWStr(This,Flags,pwszName,pwszValue)
  1900.     (This)->lpVtbl -> addNameValuePairToRequestWStr(This,Flags,pwszName,pwszValue)
  1901. #define IEnroll4_resetExtensions(This)
  1902.     (This)->lpVtbl -> resetExtensions(This)
  1903. #define IEnroll4_resetAttributes(This)
  1904.     (This)->lpVtbl -> resetAttributes(This)
  1905. #define IEnroll4_createRequestWStr(This,Flags,pwszDNName,pwszUsage,pblobRequest)
  1906.     (This)->lpVtbl -> createRequestWStr(This,Flags,pwszDNName,pwszUsage,pblobRequest)
  1907. #define IEnroll4_createFileRequestWStr(This,Flags,pwszDNName,pwszUsage,pwszRequestFileName)
  1908.     (This)->lpVtbl -> createFileRequestWStr(This,Flags,pwszDNName,pwszUsage,pwszRequestFileName)
  1909. #define IEnroll4_acceptResponseBlob(This,pblobResponse)
  1910.     (This)->lpVtbl -> acceptResponseBlob(This,pblobResponse)
  1911. #define IEnroll4_acceptFileResponseWStr(This,pwszResponseFileName)
  1912.     (This)->lpVtbl -> acceptFileResponseWStr(This,pwszResponseFileName)
  1913. #define IEnroll4_getCertContextFromResponseBlob(This,pblobResponse,ppCertContext)
  1914.     (This)->lpVtbl -> getCertContextFromResponseBlob(This,pblobResponse,ppCertContext)
  1915. #define IEnroll4_getCertContextFromFileResponseWStr(This,pwszResponseFileName,ppCertContext)
  1916.     (This)->lpVtbl -> getCertContextFromFileResponseWStr(This,pwszResponseFileName,ppCertContext)
  1917. #define IEnroll4_createPFXWStr(This,pwszPassword,pblobPFX)
  1918.     (This)->lpVtbl -> createPFXWStr(This,pwszPassword,pblobPFX)
  1919. #define IEnroll4_createFilePFXWStr(This,pwszPassword,pwszPFXFileName)
  1920.     (This)->lpVtbl -> createFilePFXWStr(This,pwszPassword,pwszPFXFileName)
  1921. #define IEnroll4_setPendingRequestInfoWStr(This,lRequestID,pwszCADNS,pwszCAName,pwszFriendlyName)
  1922.     (This)->lpVtbl -> setPendingRequestInfoWStr(This,lRequestID,pwszCADNS,pwszCAName,pwszFriendlyName)
  1923. #define IEnroll4_enumPendingRequestWStr(This,lIndex,lDesiredProperty,ppProperty)
  1924.     (This)->lpVtbl -> enumPendingRequestWStr(This,lIndex,lDesiredProperty,ppProperty)
  1925. #define IEnroll4_removePendingRequestWStr(This,thumbPrintBlob)
  1926.     (This)->lpVtbl -> removePendingRequestWStr(This,thumbPrintBlob)
  1927. #define IEnroll4_GetKeyLenEx(This,lSizeSpec,lKeySpec,pdwKeySize)
  1928.     (This)->lpVtbl -> GetKeyLenEx(This,lSizeSpec,lKeySpec,pdwKeySize)
  1929. #define IEnroll4_InstallPKCS7BlobEx(This,pBlobPKCS7,plCertInstalled)
  1930.     (This)->lpVtbl -> InstallPKCS7BlobEx(This,pBlobPKCS7,plCertInstalled)
  1931. #define IEnroll4_AddCertTypeToRequestWStrEx(This,lType,pwszOIDOrName,lMajorVersion,fMinorVersion,lMinorVersion)
  1932.     (This)->lpVtbl -> AddCertTypeToRequestWStrEx(This,lType,pwszOIDOrName,lMajorVersion,fMinorVersion,lMinorVersion)
  1933. #define IEnroll4_getProviderTypeWStr(This,pwszProvName,plProvType)
  1934.     (This)->lpVtbl -> getProviderTypeWStr(This,pwszProvName,plProvType)
  1935. #define IEnroll4_addBlobPropertyToCertificateWStr(This,lPropertyId,lReserved,pBlobProperty)
  1936.     (This)->lpVtbl -> addBlobPropertyToCertificateWStr(This,lPropertyId,lReserved,pBlobProperty)
  1937. #define IEnroll4_SetSignerCertificate(This,pSignerCert)
  1938.     (This)->lpVtbl -> SetSignerCertificate(This,pSignerCert)
  1939. #define IEnroll4_put_ClientId(This,lClientId)
  1940.     (This)->lpVtbl -> put_ClientId(This,lClientId)
  1941. #define IEnroll4_get_ClientId(This,plClientId)
  1942.     (This)->lpVtbl -> get_ClientId(This,plClientId)
  1943. #define IEnroll4_put_IncludeSubjectKeyID(This,fInclude)
  1944.     (This)->lpVtbl -> put_IncludeSubjectKeyID(This,fInclude)
  1945. #define IEnroll4_get_IncludeSubjectKeyID(This,pfInclude)
  1946.     (This)->lpVtbl -> get_IncludeSubjectKeyID(This,pfInclude)
  1947. #endif /* COBJMACROS */
  1948. #endif  /* C style interface */
  1949. /* [propput] */ HRESULT STDMETHODCALLTYPE IEnroll4_put_ThumbPrintWStr_Proxy( 
  1950.     IEnroll4 * This,
  1951.     /* [in] */ CRYPT_DATA_BLOB thumbPrintBlob);
  1952. void __RPC_STUB IEnroll4_put_ThumbPrintWStr_Stub(
  1953.     IRpcStubBuffer *This,
  1954.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1955.     PRPC_MESSAGE _pRpcMessage,
  1956.     DWORD *_pdwStubPhase);
  1957. /* [propget] */ HRESULT STDMETHODCALLTYPE IEnroll4_get_ThumbPrintWStr_Proxy( 
  1958.     IEnroll4 * This,
  1959.     /* [retval][out] */ PCRYPT_DATA_BLOB thumbPrintBlob);
  1960. void __RPC_STUB IEnroll4_get_ThumbPrintWStr_Stub(
  1961.     IRpcStubBuffer *This,
  1962.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1963.     PRPC_MESSAGE _pRpcMessage,
  1964.     DWORD *_pdwStubPhase);
  1965. HRESULT STDMETHODCALLTYPE IEnroll4_SetPrivateKeyArchiveCertificate_Proxy( 
  1966.     IEnroll4 * This,
  1967.     /* [in] */ PCCERT_CONTEXT pPrivateKeyArchiveCert);
  1968. void __RPC_STUB IEnroll4_SetPrivateKeyArchiveCertificate_Stub(
  1969.     IRpcStubBuffer *This,
  1970.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1971.     PRPC_MESSAGE _pRpcMessage,
  1972.     DWORD *_pdwStubPhase);
  1973. PCCERT_CONTEXT STDMETHODCALLTYPE IEnroll4_GetPrivateKeyArchiveCertificate_Proxy( 
  1974.     IEnroll4 * This);
  1975. void __RPC_STUB IEnroll4_GetPrivateKeyArchiveCertificate_Stub(
  1976.     IRpcStubBuffer *This,
  1977.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1978.     PRPC_MESSAGE _pRpcMessage,
  1979.     DWORD *_pdwStubPhase);
  1980. HRESULT STDMETHODCALLTYPE IEnroll4_binaryBlobToString_Proxy( 
  1981.     IEnroll4 * This,
  1982.     /* [in] */ LONG Flags,
  1983.     /* [in] */ PCRYPT_DATA_BLOB pblobBinary,
  1984.     /* [out] */ LPWSTR *ppwszString);
  1985. void __RPC_STUB IEnroll4_binaryBlobToString_Stub(
  1986.     IRpcStubBuffer *This,
  1987.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1988.     PRPC_MESSAGE _pRpcMessage,
  1989.     DWORD *_pdwStubPhase);
  1990. HRESULT STDMETHODCALLTYPE IEnroll4_stringToBinaryBlob_Proxy( 
  1991.     IEnroll4 * This,
  1992.     /* [in] */ LONG Flags,
  1993.     /* [in] */ LPCWSTR pwszString,
  1994.     /* [out] */ PCRYPT_DATA_BLOB pblobBinary,
  1995.     /* [out] */ LONG *pdwSkip,
  1996.     /* [out] */ LONG *pdwFlags);
  1997. void __RPC_STUB IEnroll4_stringToBinaryBlob_Stub(
  1998.     IRpcStubBuffer *This,
  1999.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2000.     PRPC_MESSAGE _pRpcMessage,
  2001.     DWORD *_pdwStubPhase);
  2002. HRESULT STDMETHODCALLTYPE IEnroll4_addExtensionToRequestWStr_Proxy( 
  2003.     IEnroll4 * This,
  2004.     /* [in] */ LONG Flags,
  2005.     /* [in] */ LPCWSTR pwszName,
  2006.     /* [in] */ PCRYPT_DATA_BLOB pblobValue);
  2007. void __RPC_STUB IEnroll4_addExtensionToRequestWStr_Stub(
  2008.     IRpcStubBuffer *This,
  2009.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2010.     PRPC_MESSAGE _pRpcMessage,
  2011.     DWORD *_pdwStubPhase);
  2012. HRESULT STDMETHODCALLTYPE IEnroll4_addAttributeToRequestWStr_Proxy( 
  2013.     IEnroll4 * This,
  2014.     /* [in] */ LONG Flags,
  2015.     /* [in] */ LPCWSTR pwszName,
  2016.     /* [in] */ PCRYPT_DATA_BLOB pblobValue);
  2017. void __RPC_STUB IEnroll4_addAttributeToRequestWStr_Stub(
  2018.     IRpcStubBuffer *This,
  2019.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2020.     PRPC_MESSAGE _pRpcMessage,
  2021.     DWORD *_pdwStubPhase);
  2022. HRESULT STDMETHODCALLTYPE IEnroll4_addNameValuePairToRequestWStr_Proxy( 
  2023.     IEnroll4 * This,
  2024.     /* [in] */ LONG Flags,
  2025.     /* [in] */ LPCWSTR pwszName,
  2026.     /* [in] */ LPCWSTR pwszValue);
  2027. void __RPC_STUB IEnroll4_addNameValuePairToRequestWStr_Stub(
  2028.     IRpcStubBuffer *This,
  2029.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2030.     PRPC_MESSAGE _pRpcMessage,
  2031.     DWORD *_pdwStubPhase);
  2032. HRESULT STDMETHODCALLTYPE IEnroll4_resetExtensions_Proxy( 
  2033.     IEnroll4 * This);
  2034. void __RPC_STUB IEnroll4_resetExtensions_Stub(
  2035.     IRpcStubBuffer *This,
  2036.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2037.     PRPC_MESSAGE _pRpcMessage,
  2038.     DWORD *_pdwStubPhase);
  2039. HRESULT STDMETHODCALLTYPE IEnroll4_resetAttributes_Proxy( 
  2040.     IEnroll4 * This);
  2041. void __RPC_STUB IEnroll4_resetAttributes_Stub(
  2042.     IRpcStubBuffer *This,
  2043.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2044.     PRPC_MESSAGE _pRpcMessage,
  2045.     DWORD *_pdwStubPhase);
  2046. HRESULT STDMETHODCALLTYPE IEnroll4_createRequestWStr_Proxy( 
  2047.     IEnroll4 * This,
  2048.     /* [in] */ LONG Flags,
  2049.     /* [in] */ LPCWSTR pwszDNName,
  2050.     /* [in] */ LPCWSTR pwszUsage,
  2051.     /* [out] */ PCRYPT_DATA_BLOB pblobRequest);
  2052. void __RPC_STUB IEnroll4_createRequestWStr_Stub(
  2053.     IRpcStubBuffer *This,
  2054.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2055.     PRPC_MESSAGE _pRpcMessage,
  2056.     DWORD *_pdwStubPhase);
  2057. HRESULT STDMETHODCALLTYPE IEnroll4_createFileRequestWStr_Proxy( 
  2058.     IEnroll4 * This,
  2059.     /* [in] */ LONG Flags,
  2060.     /* [in] */ LPCWSTR pwszDNName,
  2061.     /* [in] */ LPCWSTR pwszUsage,
  2062.     /* [in] */ LPCWSTR pwszRequestFileName);
  2063. void __RPC_STUB IEnroll4_createFileRequestWStr_Stub(
  2064.     IRpcStubBuffer *This,
  2065.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2066.     PRPC_MESSAGE _pRpcMessage,
  2067.     DWORD *_pdwStubPhase);
  2068. HRESULT STDMETHODCALLTYPE IEnroll4_acceptResponseBlob_Proxy( 
  2069.     IEnroll4 * This,
  2070.     /* [in] */ PCRYPT_DATA_BLOB pblobResponse);
  2071. void __RPC_STUB IEnroll4_acceptResponseBlob_Stub(
  2072.     IRpcStubBuffer *This,
  2073.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2074.     PRPC_MESSAGE _pRpcMessage,
  2075.     DWORD *_pdwStubPhase);
  2076. HRESULT STDMETHODCALLTYPE IEnroll4_acceptFileResponseWStr_Proxy( 
  2077.     IEnroll4 * This,
  2078.     /* [in] */ LPCWSTR pwszResponseFileName);
  2079. void __RPC_STUB IEnroll4_acceptFileResponseWStr_Stub(
  2080.     IRpcStubBuffer *This,
  2081.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2082.     PRPC_MESSAGE _pRpcMessage,
  2083.     DWORD *_pdwStubPhase);
  2084. HRESULT STDMETHODCALLTYPE IEnroll4_getCertContextFromResponseBlob_Proxy( 
  2085.     IEnroll4 * This,
  2086.     /* [in] */ PCRYPT_DATA_BLOB pblobResponse,
  2087.     /* [out] */ PCCERT_CONTEXT *ppCertContext);
  2088. void __RPC_STUB IEnroll4_getCertContextFromResponseBlob_Stub(
  2089.     IRpcStubBuffer *This,
  2090.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2091.     PRPC_MESSAGE _pRpcMessage,
  2092.     DWORD *_pdwStubPhase);
  2093. HRESULT STDMETHODCALLTYPE IEnroll4_getCertContextFromFileResponseWStr_Proxy( 
  2094.     IEnroll4 * This,
  2095.     /* [in] */ LPCWSTR pwszResponseFileName,
  2096.     /* [out] */ PCCERT_CONTEXT *ppCertContext);
  2097. void __RPC_STUB IEnroll4_getCertContextFromFileResponseWStr_Stub(
  2098.     IRpcStubBuffer *This,
  2099.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2100.     PRPC_MESSAGE _pRpcMessage,
  2101.     DWORD *_pdwStubPhase);
  2102. HRESULT STDMETHODCALLTYPE IEnroll4_createPFXWStr_Proxy( 
  2103.     IEnroll4 * This,
  2104.     /* [in] */ LPCWSTR pwszPassword,
  2105.     /* [out] */ PCRYPT_DATA_BLOB pblobPFX);
  2106. void __RPC_STUB IEnroll4_createPFXWStr_Stub(
  2107.     IRpcStubBuffer *This,
  2108.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2109.     PRPC_MESSAGE _pRpcMessage,
  2110.     DWORD *_pdwStubPhase);
  2111. HRESULT STDMETHODCALLTYPE IEnroll4_createFilePFXWStr_Proxy( 
  2112.     IEnroll4 * This,
  2113.     /* [in] */ LPCWSTR pwszPassword,
  2114.     /* [in] */ LPCWSTR pwszPFXFileName);
  2115. void __RPC_STUB IEnroll4_createFilePFXWStr_Stub(
  2116.     IRpcStubBuffer *This,
  2117.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2118.     PRPC_MESSAGE _pRpcMessage,
  2119.     DWORD *_pdwStubPhase);
  2120. HRESULT STDMETHODCALLTYPE IEnroll4_setPendingRequestInfoWStr_Proxy( 
  2121.     IEnroll4 * This,
  2122.     /* [in] */ LONG lRequestID,
  2123.     /* [in] */ LPCWSTR pwszCADNS,
  2124.     /* [in] */ LPCWSTR pwszCAName,
  2125.     /* [in] */ LPCWSTR pwszFriendlyName);
  2126. void __RPC_STUB IEnroll4_setPendingRequestInfoWStr_Stub(
  2127.     IRpcStubBuffer *This,
  2128.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2129.     PRPC_MESSAGE _pRpcMessage,
  2130.     DWORD *_pdwStubPhase);
  2131. HRESULT STDMETHODCALLTYPE IEnroll4_enumPendingRequestWStr_Proxy( 
  2132.     IEnroll4 * This,
  2133.     /* [in] */ LONG lIndex,
  2134.     /* [in] */ LONG lDesiredProperty,
  2135.     /* [out] */ LPVOID ppProperty);
  2136. void __RPC_STUB IEnroll4_enumPendingRequestWStr_Stub(
  2137.     IRpcStubBuffer *This,
  2138.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2139.     PRPC_MESSAGE _pRpcMessage,
  2140.     DWORD *_pdwStubPhase);
  2141. HRESULT STDMETHODCALLTYPE IEnroll4_removePendingRequestWStr_Proxy( 
  2142.     IEnroll4 * This,
  2143.     /* [in] */ CRYPT_DATA_BLOB thumbPrintBlob);
  2144. void __RPC_STUB IEnroll4_removePendingRequestWStr_Stub(
  2145.     IRpcStubBuffer *This,
  2146.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2147.     PRPC_MESSAGE _pRpcMessage,
  2148.     DWORD *_pdwStubPhase);
  2149. HRESULT STDMETHODCALLTYPE IEnroll4_GetKeyLenEx_Proxy( 
  2150.     IEnroll4 * This,
  2151.     /* [in] */ LONG lSizeSpec,
  2152.     /* [in] */ LONG lKeySpec,
  2153.     /* [retval][out] */ LONG *pdwKeySize);
  2154. void __RPC_STUB IEnroll4_GetKeyLenEx_Stub(
  2155.     IRpcStubBuffer *This,
  2156.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2157.     PRPC_MESSAGE _pRpcMessage,
  2158.     DWORD *_pdwStubPhase);
  2159. HRESULT STDMETHODCALLTYPE IEnroll4_InstallPKCS7BlobEx_Proxy( 
  2160.     IEnroll4 * This,
  2161.     /* [in] */ PCRYPT_DATA_BLOB pBlobPKCS7,
  2162.     /* [retval][out] */ LONG *plCertInstalled);
  2163. void __RPC_STUB IEnroll4_InstallPKCS7BlobEx_Stub(
  2164.     IRpcStubBuffer *This,
  2165.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2166.     PRPC_MESSAGE _pRpcMessage,
  2167.     DWORD *_pdwStubPhase);
  2168. HRESULT STDMETHODCALLTYPE IEnroll4_AddCertTypeToRequestWStrEx_Proxy( 
  2169.     IEnroll4 * This,
  2170.     /* [in] */ LONG lType,
  2171.     /* [in] */ LPCWSTR pwszOIDOrName,
  2172.     /* [in] */ LONG lMajorVersion,
  2173.     /* [in] */ BOOL fMinorVersion,
  2174.     /* [in] */ LONG lMinorVersion);
  2175. void __RPC_STUB IEnroll4_AddCertTypeToRequestWStrEx_Stub(
  2176.     IRpcStubBuffer *This,
  2177.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2178.     PRPC_MESSAGE _pRpcMessage,
  2179.     DWORD *_pdwStubPhase);
  2180. HRESULT STDMETHODCALLTYPE IEnroll4_getProviderTypeWStr_Proxy( 
  2181.     IEnroll4 * This,
  2182.     /* [in] */ LPCWSTR pwszProvName,
  2183.     /* [retval][out] */ LONG *plProvType);
  2184. void __RPC_STUB IEnroll4_getProviderTypeWStr_Stub(
  2185.     IRpcStubBuffer *This,
  2186.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2187.     PRPC_MESSAGE _pRpcMessage,
  2188.     DWORD *_pdwStubPhase);
  2189. HRESULT STDMETHODCALLTYPE IEnroll4_addBlobPropertyToCertificateWStr_Proxy( 
  2190.     IEnroll4 * This,
  2191.     /* [in] */ LONG lPropertyId,
  2192.     /* [in] */ LONG lReserved,
  2193.     /* [in] */ PCRYPT_DATA_BLOB pBlobProperty);
  2194. void __RPC_STUB IEnroll4_addBlobPropertyToCertificateWStr_Stub(
  2195.     IRpcStubBuffer *This,
  2196.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2197.     PRPC_MESSAGE _pRpcMessage,
  2198.     DWORD *_pdwStubPhase);
  2199. HRESULT STDMETHODCALLTYPE IEnroll4_SetSignerCertificate_Proxy( 
  2200.     IEnroll4 * This,
  2201.     /* [in] */ PCCERT_CONTEXT pSignerCert);
  2202. void __RPC_STUB IEnroll4_SetSignerCertificate_Stub(
  2203.     IRpcStubBuffer *This,
  2204.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2205.     PRPC_MESSAGE _pRpcMessage,
  2206.     DWORD *_pdwStubPhase);
  2207. /* [propput] */ HRESULT STDMETHODCALLTYPE IEnroll4_put_ClientId_Proxy( 
  2208.     IEnroll4 * This,
  2209.     /* [in] */ LONG lClientId);
  2210. void __RPC_STUB IEnroll4_put_ClientId_Stub(
  2211.     IRpcStubBuffer *This,
  2212.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2213.     PRPC_MESSAGE _pRpcMessage,
  2214.     DWORD *_pdwStubPhase);
  2215. /* [propget] */ HRESULT STDMETHODCALLTYPE IEnroll4_get_ClientId_Proxy( 
  2216.     IEnroll4 * This,
  2217.     /* [retval][out] */ LONG *plClientId);
  2218. void __RPC_STUB IEnroll4_get_ClientId_Stub(
  2219.     IRpcStubBuffer *This,
  2220.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2221.     PRPC_MESSAGE _pRpcMessage,
  2222.     DWORD *_pdwStubPhase);
  2223. /* [propput] */ HRESULT STDMETHODCALLTYPE IEnroll4_put_IncludeSubjectKeyID_Proxy( 
  2224.     IEnroll4 * This,
  2225.     /* [in] */ BOOL fInclude);
  2226. void __RPC_STUB IEnroll4_put_IncludeSubjectKeyID_Stub(
  2227.     IRpcStubBuffer *This,
  2228.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2229.     PRPC_MESSAGE _pRpcMessage,
  2230.     DWORD *_pdwStubPhase);
  2231. /* [propget] */ HRESULT STDMETHODCALLTYPE IEnroll4_get_IncludeSubjectKeyID_Proxy( 
  2232.     IEnroll4 * This,
  2233.     /* [retval][out] */ BOOL *pfInclude);
  2234. void __RPC_STUB IEnroll4_get_IncludeSubjectKeyID_Stub(
  2235.     IRpcStubBuffer *This,
  2236.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2237.     PRPC_MESSAGE _pRpcMessage,
  2238.     DWORD *_pdwStubPhase);
  2239. #endif  /* __IEnroll4_INTERFACE_DEFINED__ */
  2240. #ifndef __XENROLLLib_LIBRARY_DEFINED__
  2241. #define __XENROLLLib_LIBRARY_DEFINED__
  2242. /* library XENROLLLib */
  2243. /* [helpstring][version][uuid] */ 
  2244. EXTERN_C const IID LIBID_XENROLLLib;
  2245. EXTERN_C const CLSID CLSID_CEnroll;
  2246. #ifdef __cplusplus
  2247. class DECLSPEC_UUID("43F8F289-7A20-11D0-8F06-00C04FC295E1")
  2248. CEnroll;
  2249. #endif
  2250. #endif /* __XENROLLLib_LIBRARY_DEFINED__ */
  2251. /* interface __MIDL_itf_xenroll_0259 */
  2252. /* [local] */ 
  2253. extern "C" IEnroll * WINAPI PIEnrollGetNoCOM(void);
  2254. extern "C" IEnroll2 * WINAPI PIEnroll2GetNoCOM(void);
  2255. extern "C" IEnroll4 * WINAPI PIEnroll4GetNoCOM(void);
  2256. #define CRYPT_ENUM_ALL_PROVIDERS  0x1
  2257. #define XEPR_ENUM_FIRST        -1
  2258. #define XEPR_CADNS           0x01
  2259. #define XEPR_CANAME          0x02
  2260. #define XEPR_CAFRIENDLYNAME  0x03
  2261. #define XEPR_REQUESTID       0x04
  2262. #define XEPR_DATE            0x05
  2263. #define XEPR_TEMPLATENAME    0x06
  2264. #define XEPR_VERSION         0x07
  2265. #define XEPR_HASH            0x08
  2266. #define XEPR_V1TEMPLATENAME  0x09
  2267. #define XEPR_V2TEMPLATEOID   0x10
  2268. #define XECR_PKCS10_V2_0     0x1
  2269. #define XECR_PKCS7           0x2
  2270. #define XECR_CMC             0x3
  2271. #define XECR_PKCS10_V1_5     0x4
  2272. #define XEKL_KEYSIZE_MIN     0x1
  2273. #define XEKL_KEYSIZE_MAX     0x2
  2274. #define XEKL_KEYSIZE_INC     0x3
  2275. #define XEKL_KEYSIZE_DEFAULT 0x4
  2276. #define XEKL_KEYSPEC_KEYX    0x1
  2277. #define XEKL_KEYSPEC_SIG     0x2
  2278. #define XECT_EXTENSION_V1    0x1
  2279. #define XECT_EXTENSION_V2    0x2
  2280. #define XECP_STRING_PROPERTY 0x1
  2281. #define XECI_DISABLE     0x0
  2282. #define XECI_XENROLL     0x1
  2283. #define XECI_AUTOENROLL  0x2
  2284. #define XECI_REQWIZARD   0x3
  2285. #define XECI_CERTREQ     0x4
  2286. extern RPC_IF_HANDLE __MIDL_itf_xenroll_0259_v0_0_c_ifspec;
  2287. extern RPC_IF_HANDLE __MIDL_itf_xenroll_0259_v0_0_s_ifspec;
  2288. /* Additional Prototypes for ALL interfaces */
  2289. unsigned long             __RPC_USER  BSTR_UserSize(     unsigned long *, unsigned long            , BSTR * ); 
  2290. unsigned char * __RPC_USER  BSTR_UserMarshal(  unsigned long *, unsigned char *, BSTR * ); 
  2291. unsigned char * __RPC_USER  BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * ); 
  2292. void                      __RPC_USER  BSTR_UserFree(     unsigned long *, BSTR * ); 
  2293. unsigned long             __RPC_USER  VARIANT_UserSize(     unsigned long *, unsigned long            , VARIANT * ); 
  2294. unsigned char * __RPC_USER  VARIANT_UserMarshal(  unsigned long *, unsigned char *, VARIANT * ); 
  2295. unsigned char * __RPC_USER  VARIANT_UserUnmarshal(unsigned long *, unsigned char *, VARIANT * ); 
  2296. void                      __RPC_USER  VARIANT_UserFree(     unsigned long *, VARIANT * ); 
  2297. /* end of Additional Prototypes */
  2298. #ifdef __cplusplus
  2299. }
  2300. #endif
  2301. #endif