Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

5640 lines
172 KiB

  1. #pragma warning( disable: 4049 ) /* more than 64k source lines */
  2. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  3. /* File created by MIDL compiler version 6.00.0352 */
  4. /* Compiler settings for capicom.idl:
  5. Oicf, W1, Zp8, env=Win32 (32b run)
  6. protocol : dce , ms_ext, c_ext, robust
  7. error checks: allocation ref bounds_check enum stub_data
  8. VC __declspec() decoration level:
  9. __declspec(uuid()), __declspec(selectany), __declspec(novtable)
  10. DECLSPEC_UUID(), MIDL_INTERFACE()
  11. */
  12. //@@MIDL_FILE_HEADING( )
  13. /* verify that the <rpcndr.h> version is high enough to compile this file*/
  14. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  15. #define __REQUIRED_RPCNDR_H_VERSION__ 475
  16. #endif
  17. #include "rpc.h"
  18. #include "rpcndr.h"
  19. #ifndef __RPCNDR_H_VERSION__
  20. #error this stub requires an updated version of <rpcndr.h>
  21. #endif // __RPCNDR_H_VERSION__
  22. #ifndef COM_NO_WINDOWS_H
  23. #include "windows.h"
  24. #include "ole2.h"
  25. #endif /*COM_NO_WINDOWS_H*/
  26. #ifndef __capicom_h__
  27. #define __capicom_h__
  28. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  29. #pragma once
  30. #endif
  31. /* Forward Declarations */
  32. #ifndef __Settings_FWD_DEFINED__
  33. #define __Settings_FWD_DEFINED__
  34. #ifdef __cplusplus
  35. typedef class Settings Settings;
  36. #else
  37. typedef struct Settings Settings;
  38. #endif /* __cplusplus */
  39. #endif /* __Settings_FWD_DEFINED__ */
  40. #ifndef __EKU_FWD_DEFINED__
  41. #define __EKU_FWD_DEFINED__
  42. #ifdef __cplusplus
  43. typedef class EKU EKU;
  44. #else
  45. typedef struct EKU EKU;
  46. #endif /* __cplusplus */
  47. #endif /* __EKU_FWD_DEFINED__ */
  48. #ifndef __EKUs_FWD_DEFINED__
  49. #define __EKUs_FWD_DEFINED__
  50. #ifdef __cplusplus
  51. typedef class EKUs EKUs;
  52. #else
  53. typedef struct EKUs EKUs;
  54. #endif /* __cplusplus */
  55. #endif /* __EKUs_FWD_DEFINED__ */
  56. #ifndef __KeyUsage_FWD_DEFINED__
  57. #define __KeyUsage_FWD_DEFINED__
  58. #ifdef __cplusplus
  59. typedef class KeyUsage KeyUsage;
  60. #else
  61. typedef struct KeyUsage KeyUsage;
  62. #endif /* __cplusplus */
  63. #endif /* __KeyUsage_FWD_DEFINED__ */
  64. #ifndef __ExtendedKeyUsage_FWD_DEFINED__
  65. #define __ExtendedKeyUsage_FWD_DEFINED__
  66. #ifdef __cplusplus
  67. typedef class ExtendedKeyUsage ExtendedKeyUsage;
  68. #else
  69. typedef struct ExtendedKeyUsage ExtendedKeyUsage;
  70. #endif /* __cplusplus */
  71. #endif /* __ExtendedKeyUsage_FWD_DEFINED__ */
  72. #ifndef __BasicConstraints_FWD_DEFINED__
  73. #define __BasicConstraints_FWD_DEFINED__
  74. #ifdef __cplusplus
  75. typedef class BasicConstraints BasicConstraints;
  76. #else
  77. typedef struct BasicConstraints BasicConstraints;
  78. #endif /* __cplusplus */
  79. #endif /* __BasicConstraints_FWD_DEFINED__ */
  80. #ifndef __CertificateStatus_FWD_DEFINED__
  81. #define __CertificateStatus_FWD_DEFINED__
  82. #ifdef __cplusplus
  83. typedef class CertificateStatus CertificateStatus;
  84. #else
  85. typedef struct CertificateStatus CertificateStatus;
  86. #endif /* __cplusplus */
  87. #endif /* __CertificateStatus_FWD_DEFINED__ */
  88. #ifndef __Certificate_FWD_DEFINED__
  89. #define __Certificate_FWD_DEFINED__
  90. #ifdef __cplusplus
  91. typedef class Certificate Certificate;
  92. #else
  93. typedef struct Certificate Certificate;
  94. #endif /* __cplusplus */
  95. #endif /* __Certificate_FWD_DEFINED__ */
  96. #ifndef __Certificates_FWD_DEFINED__
  97. #define __Certificates_FWD_DEFINED__
  98. #ifdef __cplusplus
  99. typedef class Certificates Certificates;
  100. #else
  101. typedef struct Certificates Certificates;
  102. #endif /* __cplusplus */
  103. #endif /* __Certificates_FWD_DEFINED__ */
  104. #ifndef __Chain_FWD_DEFINED__
  105. #define __Chain_FWD_DEFINED__
  106. #ifdef __cplusplus
  107. typedef class Chain Chain;
  108. #else
  109. typedef struct Chain Chain;
  110. #endif /* __cplusplus */
  111. #endif /* __Chain_FWD_DEFINED__ */
  112. #ifndef __Store_FWD_DEFINED__
  113. #define __Store_FWD_DEFINED__
  114. #ifdef __cplusplus
  115. typedef class Store Store;
  116. #else
  117. typedef struct Store Store;
  118. #endif /* __cplusplus */
  119. #endif /* __Store_FWD_DEFINED__ */
  120. #ifndef __Attribute_FWD_DEFINED__
  121. #define __Attribute_FWD_DEFINED__
  122. #ifdef __cplusplus
  123. typedef class Attribute Attribute;
  124. #else
  125. typedef struct Attribute Attribute;
  126. #endif /* __cplusplus */
  127. #endif /* __Attribute_FWD_DEFINED__ */
  128. #ifndef __Attributes_FWD_DEFINED__
  129. #define __Attributes_FWD_DEFINED__
  130. #ifdef __cplusplus
  131. typedef class Attributes Attributes;
  132. #else
  133. typedef struct Attributes Attributes;
  134. #endif /* __cplusplus */
  135. #endif /* __Attributes_FWD_DEFINED__ */
  136. #ifndef __Signer_FWD_DEFINED__
  137. #define __Signer_FWD_DEFINED__
  138. #ifdef __cplusplus
  139. typedef class Signer Signer;
  140. #else
  141. typedef struct Signer Signer;
  142. #endif /* __cplusplus */
  143. #endif /* __Signer_FWD_DEFINED__ */
  144. #ifndef __Signers_FWD_DEFINED__
  145. #define __Signers_FWD_DEFINED__
  146. #ifdef __cplusplus
  147. typedef class Signers Signers;
  148. #else
  149. typedef struct Signers Signers;
  150. #endif /* __cplusplus */
  151. #endif /* __Signers_FWD_DEFINED__ */
  152. #ifndef __SignedData_FWD_DEFINED__
  153. #define __SignedData_FWD_DEFINED__
  154. #ifdef __cplusplus
  155. typedef class SignedData SignedData;
  156. #else
  157. typedef struct SignedData SignedData;
  158. #endif /* __cplusplus */
  159. #endif /* __SignedData_FWD_DEFINED__ */
  160. #ifndef __Algorithm_FWD_DEFINED__
  161. #define __Algorithm_FWD_DEFINED__
  162. #ifdef __cplusplus
  163. typedef class Algorithm Algorithm;
  164. #else
  165. typedef struct Algorithm Algorithm;
  166. #endif /* __cplusplus */
  167. #endif /* __Algorithm_FWD_DEFINED__ */
  168. #ifndef __Recipients_FWD_DEFINED__
  169. #define __Recipients_FWD_DEFINED__
  170. #ifdef __cplusplus
  171. typedef class Recipients Recipients;
  172. #else
  173. typedef struct Recipients Recipients;
  174. #endif /* __cplusplus */
  175. #endif /* __Recipients_FWD_DEFINED__ */
  176. #ifndef __EnvelopedData_FWD_DEFINED__
  177. #define __EnvelopedData_FWD_DEFINED__
  178. #ifdef __cplusplus
  179. typedef class EnvelopedData EnvelopedData;
  180. #else
  181. typedef struct EnvelopedData EnvelopedData;
  182. #endif /* __cplusplus */
  183. #endif /* __EnvelopedData_FWD_DEFINED__ */
  184. #ifndef __EncryptedData_FWD_DEFINED__
  185. #define __EncryptedData_FWD_DEFINED__
  186. #ifdef __cplusplus
  187. typedef class EncryptedData EncryptedData;
  188. #else
  189. typedef struct EncryptedData EncryptedData;
  190. #endif /* __cplusplus */
  191. #endif /* __EncryptedData_FWD_DEFINED__ */
  192. #ifndef __ISettings_FWD_DEFINED__
  193. #define __ISettings_FWD_DEFINED__
  194. typedef interface ISettings ISettings;
  195. #endif /* __ISettings_FWD_DEFINED__ */
  196. #ifndef __IEKU_FWD_DEFINED__
  197. #define __IEKU_FWD_DEFINED__
  198. typedef interface IEKU IEKU;
  199. #endif /* __IEKU_FWD_DEFINED__ */
  200. #ifndef __IEKUs_FWD_DEFINED__
  201. #define __IEKUs_FWD_DEFINED__
  202. typedef interface IEKUs IEKUs;
  203. #endif /* __IEKUs_FWD_DEFINED__ */
  204. #ifndef __IKeyUsage_FWD_DEFINED__
  205. #define __IKeyUsage_FWD_DEFINED__
  206. typedef interface IKeyUsage IKeyUsage;
  207. #endif /* __IKeyUsage_FWD_DEFINED__ */
  208. #ifndef __IExtendedKeyUsage_FWD_DEFINED__
  209. #define __IExtendedKeyUsage_FWD_DEFINED__
  210. typedef interface IExtendedKeyUsage IExtendedKeyUsage;
  211. #endif /* __IExtendedKeyUsage_FWD_DEFINED__ */
  212. #ifndef __IBasicConstraints_FWD_DEFINED__
  213. #define __IBasicConstraints_FWD_DEFINED__
  214. typedef interface IBasicConstraints IBasicConstraints;
  215. #endif /* __IBasicConstraints_FWD_DEFINED__ */
  216. #ifndef __ICertificateStatus_FWD_DEFINED__
  217. #define __ICertificateStatus_FWD_DEFINED__
  218. typedef interface ICertificateStatus ICertificateStatus;
  219. #endif /* __ICertificateStatus_FWD_DEFINED__ */
  220. #ifndef __ICertificate_FWD_DEFINED__
  221. #define __ICertificate_FWD_DEFINED__
  222. typedef interface ICertificate ICertificate;
  223. #endif /* __ICertificate_FWD_DEFINED__ */
  224. #ifndef __ICertificates_FWD_DEFINED__
  225. #define __ICertificates_FWD_DEFINED__
  226. typedef interface ICertificates ICertificates;
  227. #endif /* __ICertificates_FWD_DEFINED__ */
  228. #ifndef __IChain_FWD_DEFINED__
  229. #define __IChain_FWD_DEFINED__
  230. typedef interface IChain IChain;
  231. #endif /* __IChain_FWD_DEFINED__ */
  232. #ifndef __IStore_FWD_DEFINED__
  233. #define __IStore_FWD_DEFINED__
  234. typedef interface IStore IStore;
  235. #endif /* __IStore_FWD_DEFINED__ */
  236. #ifndef __IAttribute_FWD_DEFINED__
  237. #define __IAttribute_FWD_DEFINED__
  238. typedef interface IAttribute IAttribute;
  239. #endif /* __IAttribute_FWD_DEFINED__ */
  240. #ifndef __IAttributes_FWD_DEFINED__
  241. #define __IAttributes_FWD_DEFINED__
  242. typedef interface IAttributes IAttributes;
  243. #endif /* __IAttributes_FWD_DEFINED__ */
  244. #ifndef __ISigner_FWD_DEFINED__
  245. #define __ISigner_FWD_DEFINED__
  246. typedef interface ISigner ISigner;
  247. #endif /* __ISigner_FWD_DEFINED__ */
  248. #ifndef __ISigners_FWD_DEFINED__
  249. #define __ISigners_FWD_DEFINED__
  250. typedef interface ISigners ISigners;
  251. #endif /* __ISigners_FWD_DEFINED__ */
  252. #ifndef __ISignedData_FWD_DEFINED__
  253. #define __ISignedData_FWD_DEFINED__
  254. typedef interface ISignedData ISignedData;
  255. #endif /* __ISignedData_FWD_DEFINED__ */
  256. #ifndef __IAlgorithm_FWD_DEFINED__
  257. #define __IAlgorithm_FWD_DEFINED__
  258. typedef interface IAlgorithm IAlgorithm;
  259. #endif /* __IAlgorithm_FWD_DEFINED__ */
  260. #ifndef __IRecipients_FWD_DEFINED__
  261. #define __IRecipients_FWD_DEFINED__
  262. typedef interface IRecipients IRecipients;
  263. #endif /* __IRecipients_FWD_DEFINED__ */
  264. #ifndef __IEnvelopedData_FWD_DEFINED__
  265. #define __IEnvelopedData_FWD_DEFINED__
  266. typedef interface IEnvelopedData IEnvelopedData;
  267. #endif /* __IEnvelopedData_FWD_DEFINED__ */
  268. #ifndef __IEncryptedData_FWD_DEFINED__
  269. #define __IEncryptedData_FWD_DEFINED__
  270. typedef interface IEncryptedData IEncryptedData;
  271. #endif /* __IEncryptedData_FWD_DEFINED__ */
  272. #ifndef __ICChain_FWD_DEFINED__
  273. #define __ICChain_FWD_DEFINED__
  274. typedef interface ICChain ICChain;
  275. #endif /* __ICChain_FWD_DEFINED__ */
  276. #ifndef __ICCertificate_FWD_DEFINED__
  277. #define __ICCertificate_FWD_DEFINED__
  278. typedef interface ICCertificate ICCertificate;
  279. #endif /* __ICCertificate_FWD_DEFINED__ */
  280. /* header files for imported files */
  281. #include "oaidl.h"
  282. #include "ocidl.h"
  283. #include "wincrypt.h"
  284. #ifdef __cplusplus
  285. extern "C"{
  286. #endif
  287. void * __RPC_USER MIDL_user_allocate(size_t);
  288. void __RPC_USER MIDL_user_free( void * );
  289. #ifndef __CAPICOM_LIBRARY_DEFINED__
  290. #define __CAPICOM_LIBRARY_DEFINED__
  291. /* library CAPICOM */
  292. /* [helpstring][version][uuid] */
  293. typedef
  294. enum CAPICOM_ERROR_CODE
  295. { CAPICOM_E_ENCODE_INVALID_TYPE = 0x80880100,
  296. CAPICOM_E_EKU_INVALID_OID = 0x80880200,
  297. CAPICOM_E_EKU_OID_NOT_INITIALIZED = 0x80880201,
  298. CAPICOM_E_CERTIFICATE_NOT_INITIALIZED = 0x80880210,
  299. CAPICOM_E_CERTIFICATE_NO_PRIVATE_KEY = 0x80880211,
  300. CAPICOM_E_CHAIN_NOT_BUILT = 0x80880220,
  301. CAPICOM_E_STORE_NOT_OPENED = 0x80880230,
  302. CAPICOM_E_STORE_EMPTY = 0x80880231,
  303. CAPICOM_E_STORE_INVALID_OPEN_MODE = 0x80880232,
  304. CAPICOM_E_STORE_INVALID_SAVE_AS_TYPE = 0x80880233,
  305. CAPICOM_E_ATTRIBUTE_NAME_NOT_INITIALIZED = 0x80880240,
  306. CAPICOM_E_ATTRIBUTE_VALUE_NOT_INITIALIZED = 0x80880241,
  307. CAPICOM_E_ATTRIBUTE_INVALID_NAME = 0x80880242,
  308. CAPICOM_E_ATTRIBUTE_INVALID_VALUE = 0x80880243,
  309. CAPICOM_E_SIGNER_NOT_INITIALIZED = 0x80880250,
  310. CAPICOM_E_SIGNER_NOT_FOUND = 0x80880251,
  311. CAPICOM_E_SIGN_NOT_INITIALIZED = 0x80880260,
  312. CAPICOM_E_SIGN_INVALID_TYPE = 0x80880261,
  313. CAPICOM_E_SIGN_NOT_SIGNED = 0x80880262,
  314. CAPICOM_E_INVALID_ALGORITHM = 0x80880270,
  315. CAPICOM_E_INVALID_KEY_LENGTH = 0x80880271,
  316. CAPICOM_E_ENVELOP_NOT_INITIALIZED = 0x80880280,
  317. CAPICOM_E_ENVELOP_INVALID_TYPE = 0x80880281,
  318. CAPICOM_E_ENVELOP_NO_RECIPIENT = 0x80880282,
  319. CAPICOM_E_ENVELOP_RECIPIENT_NOT_FOUND = 0x80880283,
  320. CAPICOM_E_ENCRYPT_NOT_INITIALIZED = 0x80880290,
  321. CAPICOM_E_ENCRYPT_INVALID_TYPE = 0x80880291,
  322. CAPICOM_E_ENCRYPT_NO_SECRET = 0x80880292,
  323. CAPICOM_E_NOT_SUPPORTED = 0x80880900,
  324. CAPICOM_E_UI_DISABLED = 0x80880901,
  325. CAPICOM_E_CANCELLED = 0x80880902,
  326. CAPICOM_E_INTERNAL = 0x80880911,
  327. CAPICOM_E_UNKNOWN = 0x80880999
  328. } CAPICOM_ERROR_CODE;
  329. typedef
  330. enum CAPICOM_ENCODING_TYPE
  331. { CAPICOM_ENCODE_BASE64 = 0,
  332. CAPICOM_ENCODE_BINARY = 1
  333. } CAPICOM_ENCODING_TYPE;
  334. typedef
  335. enum CAPICOM_EKU
  336. { CAPICOM_EKU_OTHER = 0,
  337. CAPICOM_EKU_SERVER_AUTH = 1,
  338. CAPICOM_EKU_CLIENT_AUTH = 2,
  339. CAPICOM_EKU_CODE_SIGNING = 3,
  340. CAPICOM_EKU_EMAIL_PROTECTION = 4
  341. } CAPICOM_EKU;
  342. typedef
  343. enum CAPICOM_CHECK_FLAG
  344. { CAPICOM_CHECK_NONE = 0,
  345. CAPICOM_CHECK_TRUSTED_ROOT = 1,
  346. CAPICOM_CHECK_TIME_VALIDITY = 2,
  347. CAPICOM_CHECK_SIGNATURE_VALIDITY = 4,
  348. CAPICOM_CHECK_ONLINE_REVOCATION_STATUS = 8,
  349. CAPICOM_CHECK_OFFLINE_REVOCATION_STATUS = 16
  350. } CAPICOM_CHECK_FLAG;
  351. typedef
  352. enum CAPICOM_CERT_INFO_TYPE
  353. { CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME = 0,
  354. CAPICOM_CERT_INFO_ISSUER_SIMPLE_NAME = 1,
  355. CAPICOM_CERT_INFO_SUBJECT_EMAIL_NAME = 2,
  356. CAPICOM_CERT_INFO_ISSUER_EMAIL_NAME = 3
  357. } CAPICOM_CERT_INFO_TYPE;
  358. typedef
  359. enum CAPICOM_STORE_LOCATION
  360. { CAPICOM_MEMORY_STORE = 0,
  361. CAPICOM_LOCAL_MACHINE_STORE = 1,
  362. CAPICOM_CURRENT_USER_STORE = 2,
  363. CAPICOM_ACTIVE_DIRECTORY_USER_STORE = 3
  364. } CAPICOM_STORE_LOCATION;
  365. typedef
  366. enum CAPICOM_STORE_OPEN_MODE
  367. { CAPICOM_STORE_OPEN_READ_ONLY = 0,
  368. CAPICOM_STORE_OPEN_READ_WRITE = 1,
  369. CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED = 2
  370. } CAPICOM_STORE_OPEN_MODE;
  371. typedef
  372. enum CAPICOM_ACTIVE_DIRECTORY_SEARCH_LOCATION
  373. { CAPICOM_SEARCH_ANY = 0,
  374. CAPICOM_SEARCH_GLOBAL_CATALOG = 1,
  375. CAPICOM_SEARCH_DEFAULT_DOMAIN = 2
  376. } CAPICOM_ACTIVE_DIRECTORY_SEARCH_LOCATION;
  377. typedef
  378. enum CAPICOM_STORE_SAVE_AS_TYPE
  379. { CAPICOM_STORE_SAVE_AS_SERIALIZED = 0,
  380. CAPICOM_STORE_SAVE_AS_PKCS7 = 1
  381. } CAPICOM_STORE_SAVE_AS_TYPE;
  382. typedef
  383. enum CAPICOM_ATTRIBUTE
  384. { CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME = 0,
  385. CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME = 1,
  386. CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION = 2
  387. } CAPICOM_ATTRIBUTE;
  388. typedef
  389. enum CAPICOM_SIGNED_DATA_VERIFY_FLAG
  390. { CAPICOM_VERIFY_SIGNATURE_ONLY = 0,
  391. CAPICOM_VERIFY_SIGNATURE_AND_CERTIFICATE = 1
  392. } CAPICOM_SIGNED_DATA_VERIFY_FLAG;
  393. typedef
  394. enum CAPICOM_ENCRYPTION_ALGORITHM
  395. { CAPICOM_ENCRYPTION_ALGORITHM_RC2 = 0,
  396. CAPICOM_ENCRYPTION_ALGORITHM_RC4 = 1,
  397. CAPICOM_ENCRYPTION_ALGORITHM_DES = 2,
  398. CAPICOM_ENCRYPTION_ALGORITHM_3DES = 3
  399. } CAPICOM_ENCRYPTION_ALGORITHM;
  400. typedef
  401. enum CAPICOM_ENCRYPTION_KEY_LENGTH
  402. { CAPICOM_ENCRYPTION_KEY_LENGTH_MAXIMUM = 0,
  403. CAPICOM_ENCRYPTION_KEY_LENGTH_40_BITS = 1,
  404. CAPICOM_ENCRYPTION_KEY_LENGTH_56_BITS = 2,
  405. CAPICOM_ENCRYPTION_KEY_LENGTH_128_BITS = 3
  406. } CAPICOM_ENCRYPTION_KEY_LENGTH;
  407. typedef
  408. enum CAPICOM_SECRET_TYPE
  409. { CAPICOM_SECRET_PASSWORD = 0
  410. } CAPICOM_SECRET_TYPE;
  411. EXTERN_C const IID LIBID_CAPICOM;
  412. #ifndef __Constants_MODULE_DEFINED__
  413. #define __Constants_MODULE_DEFINED__
  414. /* module Constants */
  415. /* [dllname] */
  416. const long CAPICOM_MAJOR_VERSION = 1;
  417. const long CAPICOM_MINOR_VERSION = 0;
  418. const LPSTR CAPICOM_VERSION_INFO = "CAPICOM v1.0a";
  419. const LPSTR CAPICOM_MY_STORE = "My";
  420. const LPSTR CAPICOM_CA_STORE = "Ca";
  421. const LPSTR CAPICOM_ROOT_STORE = "Root";
  422. const LPSTR CAPICOM_OTHER_STORE = "AddressBook";
  423. const LPSTR CAPICOM_OID_SERVER_AUTH = "1.3.6.1.5.5.7.3.1";
  424. const LPSTR CAPICOM_OID_CLIENT_AUTH = "1.3.6.1.5.5.7.3.2";
  425. const LPSTR CAPICOM_OID_CODE_SIGNING = "1.3.6.1.5.5.7.3.3";
  426. const LPSTR CAPICOM_OID_EMAIL_PROTECTION = "1.3.6.1.5.5.7.3.4";
  427. const LPSTR CAPICOM_OID_IPSEC_END_SYSTEM = "1.3.6.1.5.5.7.3.5";
  428. const LPSTR CAPICOM_OID_IPSEC_TUNNEL = "1.3.6.1.5.5.7.3.6";
  429. const LPSTR CAPICOM_OID_IPSEC_USER = "1.3.6.1.5.5.7.3.7";
  430. const LPSTR CAPICOM_OID_TIME_STAMPING = "1.3.6.1.5.5.7.3.8";
  431. const LPSTR CAPICOM_OID_CTL_USAGE_SIGNING = "1.3.6.1.4.1.311.10.3.1";
  432. const LPSTR CAPICOM_OID_TIME_STAMP_SIGNING = "1.3.6.1.4.1.311.10.3.2";
  433. const LPSTR CAPICOM_OID_SERVER_GATED_CRYPTO = "1.3.6.1.4.1.311.10.3.3";
  434. const LPSTR CAPICOM_OID_ENCRYPTING_FILE_SYSTEM = "1.3.6.1.4.1.311.10.3.4";
  435. const LPSTR CAPICOM_OID_WHQL_CRYPTO = "1.3.6.1.4.1.311.10.3.5";
  436. const LPSTR CAPICOM_OID_NT5_CRYPTO = "1.3.6.1.4.1.311.10.3.6";
  437. const LPSTR CAPICOM_OID_OEM_WHQL_CRYPTO = "1.3.6.1.4.1.311.10.3.7";
  438. const LPSTR CAPICOM_OID_EMBEDED_NT_CRYPTO = "1.3.6.1.4.1.311.10.3.8";
  439. const LPSTR CAPICOM_OID_ROOT_LIST_SIGNER = "1.3.6.1.4.1.311.10.3.9";
  440. const LPSTR CAPICOM_OID_QUALIFIED_SUBORDINATION = "1.3.6.1.4.1.311.10.3.10";
  441. const LPSTR CAPICOM_OID_KEY_RECOVERY = "1.3.6.1.4.1.311.10.3.11";
  442. const LPSTR CAPICOM_OID_DIGITAL_RIGHTS = "1.3.6.1.4.1.311.10.5.1";
  443. const LPSTR CAPICOM_OID_LICENSES = "1.3.6.1.4.1.311.10.6.1";
  444. const LPSTR CAPICOM_OID_LICENSE_SERVER = "1.3.6.1.4.1.311.10.6.2";
  445. const LPSTR CAPICOM_OID_SMART_CARD_LOGON = "1.3.6.1.4.1.311.20.2.2";
  446. const long CAPICOM_TRUST_IS_NOT_TIME_VALID = 0x1;
  447. const long CAPICOM_TRUST_IS_NOT_TIME_NESTED = 0x2;
  448. const long CAPICOM_TRUST_IS_REVOKED = 0x4;
  449. const long CAPICOM_TRUST_IS_NOT_SIGNATURE_VALID = 0x8;
  450. const long CAPICOM_TRUST_IS_NOT_VALID_FOR_USAGE = 0x10;
  451. const long CAPICOM_TRUST_IS_UNTRUSTED_ROOT = 0x20;
  452. const long CAPICOM_TRUST_REVOCATION_STATUS_UNKNOWN = 0x40;
  453. const long CAPICOM_TRUST_IS_CYCLIC = 0x80;
  454. const long CAPICOM_TRUST_IS_PARTIAL_CHAIN = 0x10000;
  455. const long CAPICOM_TRUST_CTL_IS_NOT_TIME_VALID = 0x20000;
  456. const long CAPICOM_TRUST_CTL_IS_NOT_SIGNATURE_VALID = 0x40000;
  457. const long CAPICOM_TRUST_CTL_IS_NOT_VALID_FOR_USAGE = 0x80000;
  458. #endif /* __Constants_MODULE_DEFINED__ */
  459. EXTERN_C const CLSID CLSID_Settings;
  460. #ifdef __cplusplus
  461. class DECLSPEC_UUID("A996E48C-D3DC-4244-89F7-AFA33EC60679")
  462. Settings;
  463. #endif
  464. EXTERN_C const CLSID CLSID_EKU;
  465. #ifdef __cplusplus
  466. class DECLSPEC_UUID("8535F9A1-738A-40D0-8FB1-10CC8F74E7D3")
  467. EKU;
  468. #endif
  469. EXTERN_C const CLSID CLSID_EKUs;
  470. #ifdef __cplusplus
  471. class DECLSPEC_UUID("F1800663-5BFC-4D1A-8D44-56CE02DDA34F")
  472. EKUs;
  473. #endif
  474. EXTERN_C const CLSID CLSID_KeyUsage;
  475. #ifdef __cplusplus
  476. class DECLSPEC_UUID("9226C95C-38BE-4CC4-B3A2-A867F5199C13")
  477. KeyUsage;
  478. #endif
  479. EXTERN_C const CLSID CLSID_ExtendedKeyUsage;
  480. #ifdef __cplusplus
  481. class DECLSPEC_UUID("42C18607-1B4B-4126-8F1B-76E2DC7F631A")
  482. ExtendedKeyUsage;
  483. #endif
  484. EXTERN_C const CLSID CLSID_BasicConstraints;
  485. #ifdef __cplusplus
  486. class DECLSPEC_UUID("C05AAC6E-3A58-45A9-A203-56952E961E48")
  487. BasicConstraints;
  488. #endif
  489. EXTERN_C const CLSID CLSID_CertificateStatus;
  490. #ifdef __cplusplus
  491. class DECLSPEC_UUID("16951EE6-A455-47CA-A78B-F98DA566B604")
  492. CertificateStatus;
  493. #endif
  494. EXTERN_C const CLSID CLSID_Certificate;
  495. #ifdef __cplusplus
  496. class DECLSPEC_UUID("E38FD381-6404-4041-B5E9-B2739258941F")
  497. Certificate;
  498. #endif
  499. EXTERN_C const CLSID CLSID_Certificates;
  500. #ifdef __cplusplus
  501. class DECLSPEC_UUID("FBAB033B-CDD0-4C5E-81AB-AEA575CD1338")
  502. Certificates;
  503. #endif
  504. EXTERN_C const CLSID CLSID_Chain;
  505. #ifdef __cplusplus
  506. class DECLSPEC_UUID("65104D73-BA60-4160-A95A-4B4782E7AA62")
  507. Chain;
  508. #endif
  509. EXTERN_C const CLSID CLSID_Store;
  510. #ifdef __cplusplus
  511. class DECLSPEC_UUID("78E61E52-0E57-4456-A2F2-517492BCBF8F")
  512. Store;
  513. #endif
  514. EXTERN_C const CLSID CLSID_Attribute;
  515. #ifdef __cplusplus
  516. class DECLSPEC_UUID("54BA1E8F-818D-407F-949D-BAE1692C5C18")
  517. Attribute;
  518. #endif
  519. EXTERN_C const CLSID CLSID_Attributes;
  520. #ifdef __cplusplus
  521. class DECLSPEC_UUID("933013A9-64C8-4485-ACEF-4908C3692A33")
  522. Attributes;
  523. #endif
  524. EXTERN_C const CLSID CLSID_Signer;
  525. #ifdef __cplusplus
  526. class DECLSPEC_UUID("60A9863A-11FD-4080-850E-A8E184FC3A3C")
  527. Signer;
  528. #endif
  529. EXTERN_C const CLSID CLSID_Signers;
  530. #ifdef __cplusplus
  531. class DECLSPEC_UUID("1314C1D8-D3A8-4F8A-BED0-811FD7A8A633")
  532. Signers;
  533. #endif
  534. EXTERN_C const CLSID CLSID_SignedData;
  535. #ifdef __cplusplus
  536. class DECLSPEC_UUID("94AFFFCC-6C05-4814-B123-A941105AA77F")
  537. SignedData;
  538. #endif
  539. EXTERN_C const CLSID CLSID_Algorithm;
  540. #ifdef __cplusplus
  541. class DECLSPEC_UUID("A1EEF42F-5026-4A32-BC5C-2E552B70FD96")
  542. Algorithm;
  543. #endif
  544. EXTERN_C const CLSID CLSID_Recipients;
  545. #ifdef __cplusplus
  546. class DECLSPEC_UUID("96A1B8B0-8F9A-436A-84DE-E23CD6818DA5")
  547. Recipients;
  548. #endif
  549. EXTERN_C const CLSID CLSID_EnvelopedData;
  550. #ifdef __cplusplus
  551. class DECLSPEC_UUID("F3A12E08-EDE9-4160-8B51-334D982A9AD0")
  552. EnvelopedData;
  553. #endif
  554. EXTERN_C const CLSID CLSID_EncryptedData;
  555. #ifdef __cplusplus
  556. class DECLSPEC_UUID("A440BD76-CFE1-4D46-AB1F-15F238437A3D")
  557. EncryptedData;
  558. #endif
  559. #endif /* __CAPICOM_LIBRARY_DEFINED__ */
  560. #ifndef __ISettings_INTERFACE_DEFINED__
  561. #define __ISettings_INTERFACE_DEFINED__
  562. /* interface ISettings */
  563. /* [unique][helpstring][dual][uuid][object] */
  564. EXTERN_C const IID IID_ISettings;
  565. #if defined(__cplusplus) && !defined(CINTERFACE)
  566. MIDL_INTERFACE("A24104F5-46D0-4C0F-926D-665565908E91")
  567. ISettings : public IDispatch
  568. {
  569. public:
  570. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_EnablePromptForCertificateUI(
  571. /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
  572. virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_EnablePromptForCertificateUI(
  573. /* [defaultvalue][in] */ VARIANT_BOOL newVal = 0) = 0;
  574. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ActiveDirectorySearchLocation(
  575. /* [retval][out] */ CAPICOM_ACTIVE_DIRECTORY_SEARCH_LOCATION *pVal) = 0;
  576. virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ActiveDirectorySearchLocation(
  577. /* [defaultvalue][in] */ CAPICOM_ACTIVE_DIRECTORY_SEARCH_LOCATION newVal = CAPICOM_SEARCH_ANY) = 0;
  578. };
  579. #else /* C style interface */
  580. typedef struct ISettingsVtbl
  581. {
  582. BEGIN_INTERFACE
  583. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  584. ISettings * This,
  585. /* [in] */ REFIID riid,
  586. /* [iid_is][out] */ void **ppvObject);
  587. ULONG ( STDMETHODCALLTYPE *AddRef )(
  588. ISettings * This);
  589. ULONG ( STDMETHODCALLTYPE *Release )(
  590. ISettings * This);
  591. HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
  592. ISettings * This,
  593. /* [out] */ UINT *pctinfo);
  594. HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
  595. ISettings * This,
  596. /* [in] */ UINT iTInfo,
  597. /* [in] */ LCID lcid,
  598. /* [out] */ ITypeInfo **ppTInfo);
  599. HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
  600. ISettings * This,
  601. /* [in] */ REFIID riid,
  602. /* [size_is][in] */ LPOLESTR *rgszNames,
  603. /* [in] */ UINT cNames,
  604. /* [in] */ LCID lcid,
  605. /* [size_is][out] */ DISPID *rgDispId);
  606. /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
  607. ISettings * This,
  608. /* [in] */ DISPID dispIdMember,
  609. /* [in] */ REFIID riid,
  610. /* [in] */ LCID lcid,
  611. /* [in] */ WORD wFlags,
  612. /* [out][in] */ DISPPARAMS *pDispParams,
  613. /* [out] */ VARIANT *pVarResult,
  614. /* [out] */ EXCEPINFO *pExcepInfo,
  615. /* [out] */ UINT *puArgErr);
  616. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_EnablePromptForCertificateUI )(
  617. ISettings * This,
  618. /* [retval][out] */ VARIANT_BOOL *pVal);
  619. /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_EnablePromptForCertificateUI )(
  620. ISettings * This,
  621. /* [defaultvalue][in] */ VARIANT_BOOL newVal);
  622. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ActiveDirectorySearchLocation )(
  623. ISettings * This,
  624. /* [retval][out] */ CAPICOM_ACTIVE_DIRECTORY_SEARCH_LOCATION *pVal);
  625. /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ActiveDirectorySearchLocation )(
  626. ISettings * This,
  627. /* [defaultvalue][in] */ CAPICOM_ACTIVE_DIRECTORY_SEARCH_LOCATION newVal);
  628. END_INTERFACE
  629. } ISettingsVtbl;
  630. interface ISettings
  631. {
  632. CONST_VTBL struct ISettingsVtbl *lpVtbl;
  633. };
  634. #ifdef COBJMACROS
  635. #define ISettings_QueryInterface(This,riid,ppvObject) \
  636. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  637. #define ISettings_AddRef(This) \
  638. (This)->lpVtbl -> AddRef(This)
  639. #define ISettings_Release(This) \
  640. (This)->lpVtbl -> Release(This)
  641. #define ISettings_GetTypeInfoCount(This,pctinfo) \
  642. (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  643. #define ISettings_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
  644. (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  645. #define ISettings_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
  646. (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  647. #define ISettings_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
  648. (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  649. #define ISettings_get_EnablePromptForCertificateUI(This,pVal) \
  650. (This)->lpVtbl -> get_EnablePromptForCertificateUI(This,pVal)
  651. #define ISettings_put_EnablePromptForCertificateUI(This,newVal) \
  652. (This)->lpVtbl -> put_EnablePromptForCertificateUI(This,newVal)
  653. #define ISettings_get_ActiveDirectorySearchLocation(This,pVal) \
  654. (This)->lpVtbl -> get_ActiveDirectorySearchLocation(This,pVal)
  655. #define ISettings_put_ActiveDirectorySearchLocation(This,newVal) \
  656. (This)->lpVtbl -> put_ActiveDirectorySearchLocation(This,newVal)
  657. #endif /* COBJMACROS */
  658. #endif /* C style interface */
  659. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ISettings_get_EnablePromptForCertificateUI_Proxy(
  660. ISettings * This,
  661. /* [retval][out] */ VARIANT_BOOL *pVal);
  662. void __RPC_STUB ISettings_get_EnablePromptForCertificateUI_Stub(
  663. IRpcStubBuffer *This,
  664. IRpcChannelBuffer *_pRpcChannelBuffer,
  665. PRPC_MESSAGE _pRpcMessage,
  666. DWORD *_pdwStubPhase);
  667. /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ISettings_put_EnablePromptForCertificateUI_Proxy(
  668. ISettings * This,
  669. /* [defaultvalue][in] */ VARIANT_BOOL newVal);
  670. void __RPC_STUB ISettings_put_EnablePromptForCertificateUI_Stub(
  671. IRpcStubBuffer *This,
  672. IRpcChannelBuffer *_pRpcChannelBuffer,
  673. PRPC_MESSAGE _pRpcMessage,
  674. DWORD *_pdwStubPhase);
  675. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ISettings_get_ActiveDirectorySearchLocation_Proxy(
  676. ISettings * This,
  677. /* [retval][out] */ CAPICOM_ACTIVE_DIRECTORY_SEARCH_LOCATION *pVal);
  678. void __RPC_STUB ISettings_get_ActiveDirectorySearchLocation_Stub(
  679. IRpcStubBuffer *This,
  680. IRpcChannelBuffer *_pRpcChannelBuffer,
  681. PRPC_MESSAGE _pRpcMessage,
  682. DWORD *_pdwStubPhase);
  683. /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ISettings_put_ActiveDirectorySearchLocation_Proxy(
  684. ISettings * This,
  685. /* [defaultvalue][in] */ CAPICOM_ACTIVE_DIRECTORY_SEARCH_LOCATION newVal);
  686. void __RPC_STUB ISettings_put_ActiveDirectorySearchLocation_Stub(
  687. IRpcStubBuffer *This,
  688. IRpcChannelBuffer *_pRpcChannelBuffer,
  689. PRPC_MESSAGE _pRpcMessage,
  690. DWORD *_pdwStubPhase);
  691. #endif /* __ISettings_INTERFACE_DEFINED__ */
  692. #ifndef __IEKU_INTERFACE_DEFINED__
  693. #define __IEKU_INTERFACE_DEFINED__
  694. /* interface IEKU */
  695. /* [unique][helpstring][dual][uuid][object] */
  696. EXTERN_C const IID IID_IEKU;
  697. #if defined(__cplusplus) && !defined(CINTERFACE)
  698. MIDL_INTERFACE("976B7E6D-1002-4051-BFD4-824A74BD74E2")
  699. IEKU : public IDispatch
  700. {
  701. public:
  702. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Name(
  703. /* [retval][out] */ CAPICOM_EKU *pVal) = 0;
  704. virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Name(
  705. /* [in] */ CAPICOM_EKU newVal) = 0;
  706. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_OID(
  707. /* [retval][out] */ BSTR *pVal) = 0;
  708. virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_OID(
  709. /* [in] */ BSTR newVal) = 0;
  710. };
  711. #else /* C style interface */
  712. typedef struct IEKUVtbl
  713. {
  714. BEGIN_INTERFACE
  715. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  716. IEKU * This,
  717. /* [in] */ REFIID riid,
  718. /* [iid_is][out] */ void **ppvObject);
  719. ULONG ( STDMETHODCALLTYPE *AddRef )(
  720. IEKU * This);
  721. ULONG ( STDMETHODCALLTYPE *Release )(
  722. IEKU * This);
  723. HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
  724. IEKU * This,
  725. /* [out] */ UINT *pctinfo);
  726. HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
  727. IEKU * This,
  728. /* [in] */ UINT iTInfo,
  729. /* [in] */ LCID lcid,
  730. /* [out] */ ITypeInfo **ppTInfo);
  731. HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
  732. IEKU * This,
  733. /* [in] */ REFIID riid,
  734. /* [size_is][in] */ LPOLESTR *rgszNames,
  735. /* [in] */ UINT cNames,
  736. /* [in] */ LCID lcid,
  737. /* [size_is][out] */ DISPID *rgDispId);
  738. /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
  739. IEKU * This,
  740. /* [in] */ DISPID dispIdMember,
  741. /* [in] */ REFIID riid,
  742. /* [in] */ LCID lcid,
  743. /* [in] */ WORD wFlags,
  744. /* [out][in] */ DISPPARAMS *pDispParams,
  745. /* [out] */ VARIANT *pVarResult,
  746. /* [out] */ EXCEPINFO *pExcepInfo,
  747. /* [out] */ UINT *puArgErr);
  748. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Name )(
  749. IEKU * This,
  750. /* [retval][out] */ CAPICOM_EKU *pVal);
  751. /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Name )(
  752. IEKU * This,
  753. /* [in] */ CAPICOM_EKU newVal);
  754. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_OID )(
  755. IEKU * This,
  756. /* [retval][out] */ BSTR *pVal);
  757. /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_OID )(
  758. IEKU * This,
  759. /* [in] */ BSTR newVal);
  760. END_INTERFACE
  761. } IEKUVtbl;
  762. interface IEKU
  763. {
  764. CONST_VTBL struct IEKUVtbl *lpVtbl;
  765. };
  766. #ifdef COBJMACROS
  767. #define IEKU_QueryInterface(This,riid,ppvObject) \
  768. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  769. #define IEKU_AddRef(This) \
  770. (This)->lpVtbl -> AddRef(This)
  771. #define IEKU_Release(This) \
  772. (This)->lpVtbl -> Release(This)
  773. #define IEKU_GetTypeInfoCount(This,pctinfo) \
  774. (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  775. #define IEKU_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
  776. (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  777. #define IEKU_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
  778. (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  779. #define IEKU_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
  780. (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  781. #define IEKU_get_Name(This,pVal) \
  782. (This)->lpVtbl -> get_Name(This,pVal)
  783. #define IEKU_put_Name(This,newVal) \
  784. (This)->lpVtbl -> put_Name(This,newVal)
  785. #define IEKU_get_OID(This,pVal) \
  786. (This)->lpVtbl -> get_OID(This,pVal)
  787. #define IEKU_put_OID(This,newVal) \
  788. (This)->lpVtbl -> put_OID(This,newVal)
  789. #endif /* COBJMACROS */
  790. #endif /* C style interface */
  791. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IEKU_get_Name_Proxy(
  792. IEKU * This,
  793. /* [retval][out] */ CAPICOM_EKU *pVal);
  794. void __RPC_STUB IEKU_get_Name_Stub(
  795. IRpcStubBuffer *This,
  796. IRpcChannelBuffer *_pRpcChannelBuffer,
  797. PRPC_MESSAGE _pRpcMessage,
  798. DWORD *_pdwStubPhase);
  799. /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IEKU_put_Name_Proxy(
  800. IEKU * This,
  801. /* [in] */ CAPICOM_EKU newVal);
  802. void __RPC_STUB IEKU_put_Name_Stub(
  803. IRpcStubBuffer *This,
  804. IRpcChannelBuffer *_pRpcChannelBuffer,
  805. PRPC_MESSAGE _pRpcMessage,
  806. DWORD *_pdwStubPhase);
  807. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IEKU_get_OID_Proxy(
  808. IEKU * This,
  809. /* [retval][out] */ BSTR *pVal);
  810. void __RPC_STUB IEKU_get_OID_Stub(
  811. IRpcStubBuffer *This,
  812. IRpcChannelBuffer *_pRpcChannelBuffer,
  813. PRPC_MESSAGE _pRpcMessage,
  814. DWORD *_pdwStubPhase);
  815. /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IEKU_put_OID_Proxy(
  816. IEKU * This,
  817. /* [in] */ BSTR newVal);
  818. void __RPC_STUB IEKU_put_OID_Stub(
  819. IRpcStubBuffer *This,
  820. IRpcChannelBuffer *_pRpcChannelBuffer,
  821. PRPC_MESSAGE _pRpcMessage,
  822. DWORD *_pdwStubPhase);
  823. #endif /* __IEKU_INTERFACE_DEFINED__ */
  824. #ifndef __IEKUs_INTERFACE_DEFINED__
  825. #define __IEKUs_INTERFACE_DEFINED__
  826. /* interface IEKUs */
  827. /* [unique][helpstring][dual][uuid][object] */
  828. EXTERN_C const IID IID_IEKUs;
  829. #if defined(__cplusplus) && !defined(CINTERFACE)
  830. MIDL_INTERFACE("47C87CEC-8C4B-4E3C-8D22-34280274EFD1")
  831. IEKUs : public IDispatch
  832. {
  833. public:
  834. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Item(
  835. /* [in] */ long Index,
  836. /* [retval][out] */ VARIANT *pVal) = 0;
  837. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Count(
  838. /* [retval][out] */ long *pVal) = 0;
  839. virtual /* [restricted][helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum(
  840. /* [retval][out] */ LPUNKNOWN *pVal) = 0;
  841. };
  842. #else /* C style interface */
  843. typedef struct IEKUsVtbl
  844. {
  845. BEGIN_INTERFACE
  846. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  847. IEKUs * This,
  848. /* [in] */ REFIID riid,
  849. /* [iid_is][out] */ void **ppvObject);
  850. ULONG ( STDMETHODCALLTYPE *AddRef )(
  851. IEKUs * This);
  852. ULONG ( STDMETHODCALLTYPE *Release )(
  853. IEKUs * This);
  854. HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
  855. IEKUs * This,
  856. /* [out] */ UINT *pctinfo);
  857. HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
  858. IEKUs * This,
  859. /* [in] */ UINT iTInfo,
  860. /* [in] */ LCID lcid,
  861. /* [out] */ ITypeInfo **ppTInfo);
  862. HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
  863. IEKUs * This,
  864. /* [in] */ REFIID riid,
  865. /* [size_is][in] */ LPOLESTR *rgszNames,
  866. /* [in] */ UINT cNames,
  867. /* [in] */ LCID lcid,
  868. /* [size_is][out] */ DISPID *rgDispId);
  869. /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
  870. IEKUs * This,
  871. /* [in] */ DISPID dispIdMember,
  872. /* [in] */ REFIID riid,
  873. /* [in] */ LCID lcid,
  874. /* [in] */ WORD wFlags,
  875. /* [out][in] */ DISPPARAMS *pDispParams,
  876. /* [out] */ VARIANT *pVarResult,
  877. /* [out] */ EXCEPINFO *pExcepInfo,
  878. /* [out] */ UINT *puArgErr);
  879. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )(
  880. IEKUs * This,
  881. /* [in] */ long Index,
  882. /* [retval][out] */ VARIANT *pVal);
  883. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )(
  884. IEKUs * This,
  885. /* [retval][out] */ long *pVal);
  886. /* [restricted][helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )(
  887. IEKUs * This,
  888. /* [retval][out] */ LPUNKNOWN *pVal);
  889. END_INTERFACE
  890. } IEKUsVtbl;
  891. interface IEKUs
  892. {
  893. CONST_VTBL struct IEKUsVtbl *lpVtbl;
  894. };
  895. #ifdef COBJMACROS
  896. #define IEKUs_QueryInterface(This,riid,ppvObject) \
  897. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  898. #define IEKUs_AddRef(This) \
  899. (This)->lpVtbl -> AddRef(This)
  900. #define IEKUs_Release(This) \
  901. (This)->lpVtbl -> Release(This)
  902. #define IEKUs_GetTypeInfoCount(This,pctinfo) \
  903. (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  904. #define IEKUs_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
  905. (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  906. #define IEKUs_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
  907. (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  908. #define IEKUs_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
  909. (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  910. #define IEKUs_get_Item(This,Index,pVal) \
  911. (This)->lpVtbl -> get_Item(This,Index,pVal)
  912. #define IEKUs_get_Count(This,pVal) \
  913. (This)->lpVtbl -> get_Count(This,pVal)
  914. #define IEKUs_get__NewEnum(This,pVal) \
  915. (This)->lpVtbl -> get__NewEnum(This,pVal)
  916. #endif /* COBJMACROS */
  917. #endif /* C style interface */
  918. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IEKUs_get_Item_Proxy(
  919. IEKUs * This,
  920. /* [in] */ long Index,
  921. /* [retval][out] */ VARIANT *pVal);
  922. void __RPC_STUB IEKUs_get_Item_Stub(
  923. IRpcStubBuffer *This,
  924. IRpcChannelBuffer *_pRpcChannelBuffer,
  925. PRPC_MESSAGE _pRpcMessage,
  926. DWORD *_pdwStubPhase);
  927. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IEKUs_get_Count_Proxy(
  928. IEKUs * This,
  929. /* [retval][out] */ long *pVal);
  930. void __RPC_STUB IEKUs_get_Count_Stub(
  931. IRpcStubBuffer *This,
  932. IRpcChannelBuffer *_pRpcChannelBuffer,
  933. PRPC_MESSAGE _pRpcMessage,
  934. DWORD *_pdwStubPhase);
  935. /* [restricted][helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IEKUs_get__NewEnum_Proxy(
  936. IEKUs * This,
  937. /* [retval][out] */ LPUNKNOWN *pVal);
  938. void __RPC_STUB IEKUs_get__NewEnum_Stub(
  939. IRpcStubBuffer *This,
  940. IRpcChannelBuffer *_pRpcChannelBuffer,
  941. PRPC_MESSAGE _pRpcMessage,
  942. DWORD *_pdwStubPhase);
  943. #endif /* __IEKUs_INTERFACE_DEFINED__ */
  944. #ifndef __IKeyUsage_INTERFACE_DEFINED__
  945. #define __IKeyUsage_INTERFACE_DEFINED__
  946. /* interface IKeyUsage */
  947. /* [unique][helpstring][dual][uuid][object] */
  948. EXTERN_C const IID IID_IKeyUsage;
  949. #if defined(__cplusplus) && !defined(CINTERFACE)
  950. MIDL_INTERFACE("41DD35A8-9FF9-45A6-9A7C-F65B2F085D1F")
  951. IKeyUsage : public IDispatch
  952. {
  953. public:
  954. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsPresent(
  955. /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
  956. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsCritical(
  957. /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
  958. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsDigitalSignatureEnabled(
  959. /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
  960. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsNonRepudiationEnabled(
  961. /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
  962. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsKeyEnciphermentEnabled(
  963. /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
  964. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsDataEnciphermentEnabled(
  965. /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
  966. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsKeyAgreementEnabled(
  967. /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
  968. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsKeyCertSignEnabled(
  969. /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
  970. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsCRLSignEnabled(
  971. /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
  972. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsEncipherOnlyEnabled(
  973. /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
  974. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsDecipherOnlyEnabled(
  975. /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
  976. };
  977. #else /* C style interface */
  978. typedef struct IKeyUsageVtbl
  979. {
  980. BEGIN_INTERFACE
  981. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  982. IKeyUsage * This,
  983. /* [in] */ REFIID riid,
  984. /* [iid_is][out] */ void **ppvObject);
  985. ULONG ( STDMETHODCALLTYPE *AddRef )(
  986. IKeyUsage * This);
  987. ULONG ( STDMETHODCALLTYPE *Release )(
  988. IKeyUsage * This);
  989. HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
  990. IKeyUsage * This,
  991. /* [out] */ UINT *pctinfo);
  992. HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
  993. IKeyUsage * This,
  994. /* [in] */ UINT iTInfo,
  995. /* [in] */ LCID lcid,
  996. /* [out] */ ITypeInfo **ppTInfo);
  997. HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
  998. IKeyUsage * This,
  999. /* [in] */ REFIID riid,
  1000. /* [size_is][in] */ LPOLESTR *rgszNames,
  1001. /* [in] */ UINT cNames,
  1002. /* [in] */ LCID lcid,
  1003. /* [size_is][out] */ DISPID *rgDispId);
  1004. /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
  1005. IKeyUsage * This,
  1006. /* [in] */ DISPID dispIdMember,
  1007. /* [in] */ REFIID riid,
  1008. /* [in] */ LCID lcid,
  1009. /* [in] */ WORD wFlags,
  1010. /* [out][in] */ DISPPARAMS *pDispParams,
  1011. /* [out] */ VARIANT *pVarResult,
  1012. /* [out] */ EXCEPINFO *pExcepInfo,
  1013. /* [out] */ UINT *puArgErr);
  1014. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsPresent )(
  1015. IKeyUsage * This,
  1016. /* [retval][out] */ VARIANT_BOOL *pVal);
  1017. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsCritical )(
  1018. IKeyUsage * This,
  1019. /* [retval][out] */ VARIANT_BOOL *pVal);
  1020. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsDigitalSignatureEnabled )(
  1021. IKeyUsage * This,
  1022. /* [retval][out] */ VARIANT_BOOL *pVal);
  1023. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsNonRepudiationEnabled )(
  1024. IKeyUsage * This,
  1025. /* [retval][out] */ VARIANT_BOOL *pVal);
  1026. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsKeyEnciphermentEnabled )(
  1027. IKeyUsage * This,
  1028. /* [retval][out] */ VARIANT_BOOL *pVal);
  1029. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsDataEnciphermentEnabled )(
  1030. IKeyUsage * This,
  1031. /* [retval][out] */ VARIANT_BOOL *pVal);
  1032. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsKeyAgreementEnabled )(
  1033. IKeyUsage * This,
  1034. /* [retval][out] */ VARIANT_BOOL *pVal);
  1035. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsKeyCertSignEnabled )(
  1036. IKeyUsage * This,
  1037. /* [retval][out] */ VARIANT_BOOL *pVal);
  1038. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsCRLSignEnabled )(
  1039. IKeyUsage * This,
  1040. /* [retval][out] */ VARIANT_BOOL *pVal);
  1041. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsEncipherOnlyEnabled )(
  1042. IKeyUsage * This,
  1043. /* [retval][out] */ VARIANT_BOOL *pVal);
  1044. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsDecipherOnlyEnabled )(
  1045. IKeyUsage * This,
  1046. /* [retval][out] */ VARIANT_BOOL *pVal);
  1047. END_INTERFACE
  1048. } IKeyUsageVtbl;
  1049. interface IKeyUsage
  1050. {
  1051. CONST_VTBL struct IKeyUsageVtbl *lpVtbl;
  1052. };
  1053. #ifdef COBJMACROS
  1054. #define IKeyUsage_QueryInterface(This,riid,ppvObject) \
  1055. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1056. #define IKeyUsage_AddRef(This) \
  1057. (This)->lpVtbl -> AddRef(This)
  1058. #define IKeyUsage_Release(This) \
  1059. (This)->lpVtbl -> Release(This)
  1060. #define IKeyUsage_GetTypeInfoCount(This,pctinfo) \
  1061. (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  1062. #define IKeyUsage_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
  1063. (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  1064. #define IKeyUsage_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
  1065. (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  1066. #define IKeyUsage_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
  1067. (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  1068. #define IKeyUsage_get_IsPresent(This,pVal) \
  1069. (This)->lpVtbl -> get_IsPresent(This,pVal)
  1070. #define IKeyUsage_get_IsCritical(This,pVal) \
  1071. (This)->lpVtbl -> get_IsCritical(This,pVal)
  1072. #define IKeyUsage_get_IsDigitalSignatureEnabled(This,pVal) \
  1073. (This)->lpVtbl -> get_IsDigitalSignatureEnabled(This,pVal)
  1074. #define IKeyUsage_get_IsNonRepudiationEnabled(This,pVal) \
  1075. (This)->lpVtbl -> get_IsNonRepudiationEnabled(This,pVal)
  1076. #define IKeyUsage_get_IsKeyEnciphermentEnabled(This,pVal) \
  1077. (This)->lpVtbl -> get_IsKeyEnciphermentEnabled(This,pVal)
  1078. #define IKeyUsage_get_IsDataEnciphermentEnabled(This,pVal) \
  1079. (This)->lpVtbl -> get_IsDataEnciphermentEnabled(This,pVal)
  1080. #define IKeyUsage_get_IsKeyAgreementEnabled(This,pVal) \
  1081. (This)->lpVtbl -> get_IsKeyAgreementEnabled(This,pVal)
  1082. #define IKeyUsage_get_IsKeyCertSignEnabled(This,pVal) \
  1083. (This)->lpVtbl -> get_IsKeyCertSignEnabled(This,pVal)
  1084. #define IKeyUsage_get_IsCRLSignEnabled(This,pVal) \
  1085. (This)->lpVtbl -> get_IsCRLSignEnabled(This,pVal)
  1086. #define IKeyUsage_get_IsEncipherOnlyEnabled(This,pVal) \
  1087. (This)->lpVtbl -> get_IsEncipherOnlyEnabled(This,pVal)
  1088. #define IKeyUsage_get_IsDecipherOnlyEnabled(This,pVal) \
  1089. (This)->lpVtbl -> get_IsDecipherOnlyEnabled(This,pVal)
  1090. #endif /* COBJMACROS */
  1091. #endif /* C style interface */
  1092. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IKeyUsage_get_IsPresent_Proxy(
  1093. IKeyUsage * This,
  1094. /* [retval][out] */ VARIANT_BOOL *pVal);
  1095. void __RPC_STUB IKeyUsage_get_IsPresent_Stub(
  1096. IRpcStubBuffer *This,
  1097. IRpcChannelBuffer *_pRpcChannelBuffer,
  1098. PRPC_MESSAGE _pRpcMessage,
  1099. DWORD *_pdwStubPhase);
  1100. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IKeyUsage_get_IsCritical_Proxy(
  1101. IKeyUsage * This,
  1102. /* [retval][out] */ VARIANT_BOOL *pVal);
  1103. void __RPC_STUB IKeyUsage_get_IsCritical_Stub(
  1104. IRpcStubBuffer *This,
  1105. IRpcChannelBuffer *_pRpcChannelBuffer,
  1106. PRPC_MESSAGE _pRpcMessage,
  1107. DWORD *_pdwStubPhase);
  1108. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IKeyUsage_get_IsDigitalSignatureEnabled_Proxy(
  1109. IKeyUsage * This,
  1110. /* [retval][out] */ VARIANT_BOOL *pVal);
  1111. void __RPC_STUB IKeyUsage_get_IsDigitalSignatureEnabled_Stub(
  1112. IRpcStubBuffer *This,
  1113. IRpcChannelBuffer *_pRpcChannelBuffer,
  1114. PRPC_MESSAGE _pRpcMessage,
  1115. DWORD *_pdwStubPhase);
  1116. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IKeyUsage_get_IsNonRepudiationEnabled_Proxy(
  1117. IKeyUsage * This,
  1118. /* [retval][out] */ VARIANT_BOOL *pVal);
  1119. void __RPC_STUB IKeyUsage_get_IsNonRepudiationEnabled_Stub(
  1120. IRpcStubBuffer *This,
  1121. IRpcChannelBuffer *_pRpcChannelBuffer,
  1122. PRPC_MESSAGE _pRpcMessage,
  1123. DWORD *_pdwStubPhase);
  1124. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IKeyUsage_get_IsKeyEnciphermentEnabled_Proxy(
  1125. IKeyUsage * This,
  1126. /* [retval][out] */ VARIANT_BOOL *pVal);
  1127. void __RPC_STUB IKeyUsage_get_IsKeyEnciphermentEnabled_Stub(
  1128. IRpcStubBuffer *This,
  1129. IRpcChannelBuffer *_pRpcChannelBuffer,
  1130. PRPC_MESSAGE _pRpcMessage,
  1131. DWORD *_pdwStubPhase);
  1132. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IKeyUsage_get_IsDataEnciphermentEnabled_Proxy(
  1133. IKeyUsage * This,
  1134. /* [retval][out] */ VARIANT_BOOL *pVal);
  1135. void __RPC_STUB IKeyUsage_get_IsDataEnciphermentEnabled_Stub(
  1136. IRpcStubBuffer *This,
  1137. IRpcChannelBuffer *_pRpcChannelBuffer,
  1138. PRPC_MESSAGE _pRpcMessage,
  1139. DWORD *_pdwStubPhase);
  1140. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IKeyUsage_get_IsKeyAgreementEnabled_Proxy(
  1141. IKeyUsage * This,
  1142. /* [retval][out] */ VARIANT_BOOL *pVal);
  1143. void __RPC_STUB IKeyUsage_get_IsKeyAgreementEnabled_Stub(
  1144. IRpcStubBuffer *This,
  1145. IRpcChannelBuffer *_pRpcChannelBuffer,
  1146. PRPC_MESSAGE _pRpcMessage,
  1147. DWORD *_pdwStubPhase);
  1148. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IKeyUsage_get_IsKeyCertSignEnabled_Proxy(
  1149. IKeyUsage * This,
  1150. /* [retval][out] */ VARIANT_BOOL *pVal);
  1151. void __RPC_STUB IKeyUsage_get_IsKeyCertSignEnabled_Stub(
  1152. IRpcStubBuffer *This,
  1153. IRpcChannelBuffer *_pRpcChannelBuffer,
  1154. PRPC_MESSAGE _pRpcMessage,
  1155. DWORD *_pdwStubPhase);
  1156. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IKeyUsage_get_IsCRLSignEnabled_Proxy(
  1157. IKeyUsage * This,
  1158. /* [retval][out] */ VARIANT_BOOL *pVal);
  1159. void __RPC_STUB IKeyUsage_get_IsCRLSignEnabled_Stub(
  1160. IRpcStubBuffer *This,
  1161. IRpcChannelBuffer *_pRpcChannelBuffer,
  1162. PRPC_MESSAGE _pRpcMessage,
  1163. DWORD *_pdwStubPhase);
  1164. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IKeyUsage_get_IsEncipherOnlyEnabled_Proxy(
  1165. IKeyUsage * This,
  1166. /* [retval][out] */ VARIANT_BOOL *pVal);
  1167. void __RPC_STUB IKeyUsage_get_IsEncipherOnlyEnabled_Stub(
  1168. IRpcStubBuffer *This,
  1169. IRpcChannelBuffer *_pRpcChannelBuffer,
  1170. PRPC_MESSAGE _pRpcMessage,
  1171. DWORD *_pdwStubPhase);
  1172. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IKeyUsage_get_IsDecipherOnlyEnabled_Proxy(
  1173. IKeyUsage * This,
  1174. /* [retval][out] */ VARIANT_BOOL *pVal);
  1175. void __RPC_STUB IKeyUsage_get_IsDecipherOnlyEnabled_Stub(
  1176. IRpcStubBuffer *This,
  1177. IRpcChannelBuffer *_pRpcChannelBuffer,
  1178. PRPC_MESSAGE _pRpcMessage,
  1179. DWORD *_pdwStubPhase);
  1180. #endif /* __IKeyUsage_INTERFACE_DEFINED__ */
  1181. #ifndef __IExtendedKeyUsage_INTERFACE_DEFINED__
  1182. #define __IExtendedKeyUsage_INTERFACE_DEFINED__
  1183. /* interface IExtendedKeyUsage */
  1184. /* [unique][helpstring][dual][uuid][object] */
  1185. EXTERN_C const IID IID_IExtendedKeyUsage;
  1186. #if defined(__cplusplus) && !defined(CINTERFACE)
  1187. MIDL_INTERFACE("7289D408-987D-45D1-8DEE-CF9E91C2E90E")
  1188. IExtendedKeyUsage : public IDispatch
  1189. {
  1190. public:
  1191. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsPresent(
  1192. /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
  1193. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsCritical(
  1194. /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
  1195. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_EKUs(
  1196. /* [retval][out] */ IEKUs **pVal) = 0;
  1197. };
  1198. #else /* C style interface */
  1199. typedef struct IExtendedKeyUsageVtbl
  1200. {
  1201. BEGIN_INTERFACE
  1202. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1203. IExtendedKeyUsage * This,
  1204. /* [in] */ REFIID riid,
  1205. /* [iid_is][out] */ void **ppvObject);
  1206. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1207. IExtendedKeyUsage * This);
  1208. ULONG ( STDMETHODCALLTYPE *Release )(
  1209. IExtendedKeyUsage * This);
  1210. HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
  1211. IExtendedKeyUsage * This,
  1212. /* [out] */ UINT *pctinfo);
  1213. HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
  1214. IExtendedKeyUsage * This,
  1215. /* [in] */ UINT iTInfo,
  1216. /* [in] */ LCID lcid,
  1217. /* [out] */ ITypeInfo **ppTInfo);
  1218. HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
  1219. IExtendedKeyUsage * This,
  1220. /* [in] */ REFIID riid,
  1221. /* [size_is][in] */ LPOLESTR *rgszNames,
  1222. /* [in] */ UINT cNames,
  1223. /* [in] */ LCID lcid,
  1224. /* [size_is][out] */ DISPID *rgDispId);
  1225. /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
  1226. IExtendedKeyUsage * This,
  1227. /* [in] */ DISPID dispIdMember,
  1228. /* [in] */ REFIID riid,
  1229. /* [in] */ LCID lcid,
  1230. /* [in] */ WORD wFlags,
  1231. /* [out][in] */ DISPPARAMS *pDispParams,
  1232. /* [out] */ VARIANT *pVarResult,
  1233. /* [out] */ EXCEPINFO *pExcepInfo,
  1234. /* [out] */ UINT *puArgErr);
  1235. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsPresent )(
  1236. IExtendedKeyUsage * This,
  1237. /* [retval][out] */ VARIANT_BOOL *pVal);
  1238. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsCritical )(
  1239. IExtendedKeyUsage * This,
  1240. /* [retval][out] */ VARIANT_BOOL *pVal);
  1241. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_EKUs )(
  1242. IExtendedKeyUsage * This,
  1243. /* [retval][out] */ IEKUs **pVal);
  1244. END_INTERFACE
  1245. } IExtendedKeyUsageVtbl;
  1246. interface IExtendedKeyUsage
  1247. {
  1248. CONST_VTBL struct IExtendedKeyUsageVtbl *lpVtbl;
  1249. };
  1250. #ifdef COBJMACROS
  1251. #define IExtendedKeyUsage_QueryInterface(This,riid,ppvObject) \
  1252. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1253. #define IExtendedKeyUsage_AddRef(This) \
  1254. (This)->lpVtbl -> AddRef(This)
  1255. #define IExtendedKeyUsage_Release(This) \
  1256. (This)->lpVtbl -> Release(This)
  1257. #define IExtendedKeyUsage_GetTypeInfoCount(This,pctinfo) \
  1258. (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  1259. #define IExtendedKeyUsage_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
  1260. (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  1261. #define IExtendedKeyUsage_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
  1262. (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  1263. #define IExtendedKeyUsage_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
  1264. (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  1265. #define IExtendedKeyUsage_get_IsPresent(This,pVal) \
  1266. (This)->lpVtbl -> get_IsPresent(This,pVal)
  1267. #define IExtendedKeyUsage_get_IsCritical(This,pVal) \
  1268. (This)->lpVtbl -> get_IsCritical(This,pVal)
  1269. #define IExtendedKeyUsage_get_EKUs(This,pVal) \
  1270. (This)->lpVtbl -> get_EKUs(This,pVal)
  1271. #endif /* COBJMACROS */
  1272. #endif /* C style interface */
  1273. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IExtendedKeyUsage_get_IsPresent_Proxy(
  1274. IExtendedKeyUsage * This,
  1275. /* [retval][out] */ VARIANT_BOOL *pVal);
  1276. void __RPC_STUB IExtendedKeyUsage_get_IsPresent_Stub(
  1277. IRpcStubBuffer *This,
  1278. IRpcChannelBuffer *_pRpcChannelBuffer,
  1279. PRPC_MESSAGE _pRpcMessage,
  1280. DWORD *_pdwStubPhase);
  1281. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IExtendedKeyUsage_get_IsCritical_Proxy(
  1282. IExtendedKeyUsage * This,
  1283. /* [retval][out] */ VARIANT_BOOL *pVal);
  1284. void __RPC_STUB IExtendedKeyUsage_get_IsCritical_Stub(
  1285. IRpcStubBuffer *This,
  1286. IRpcChannelBuffer *_pRpcChannelBuffer,
  1287. PRPC_MESSAGE _pRpcMessage,
  1288. DWORD *_pdwStubPhase);
  1289. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IExtendedKeyUsage_get_EKUs_Proxy(
  1290. IExtendedKeyUsage * This,
  1291. /* [retval][out] */ IEKUs **pVal);
  1292. void __RPC_STUB IExtendedKeyUsage_get_EKUs_Stub(
  1293. IRpcStubBuffer *This,
  1294. IRpcChannelBuffer *_pRpcChannelBuffer,
  1295. PRPC_MESSAGE _pRpcMessage,
  1296. DWORD *_pdwStubPhase);
  1297. #endif /* __IExtendedKeyUsage_INTERFACE_DEFINED__ */
  1298. #ifndef __IBasicConstraints_INTERFACE_DEFINED__
  1299. #define __IBasicConstraints_INTERFACE_DEFINED__
  1300. /* interface IBasicConstraints */
  1301. /* [unique][helpstring][dual][uuid][object] */
  1302. EXTERN_C const IID IID_IBasicConstraints;
  1303. #if defined(__cplusplus) && !defined(CINTERFACE)
  1304. MIDL_INTERFACE("4E298C47-ABA6-459E-851B-993D6C626EAD")
  1305. IBasicConstraints : public IDispatch
  1306. {
  1307. public:
  1308. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsPresent(
  1309. /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
  1310. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsCritical(
  1311. /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
  1312. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsCertificateAuthority(
  1313. /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
  1314. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsPathLenConstraintPresent(
  1315. /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
  1316. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PathLenConstraint(
  1317. /* [retval][out] */ long *pVal) = 0;
  1318. };
  1319. #else /* C style interface */
  1320. typedef struct IBasicConstraintsVtbl
  1321. {
  1322. BEGIN_INTERFACE
  1323. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1324. IBasicConstraints * This,
  1325. /* [in] */ REFIID riid,
  1326. /* [iid_is][out] */ void **ppvObject);
  1327. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1328. IBasicConstraints * This);
  1329. ULONG ( STDMETHODCALLTYPE *Release )(
  1330. IBasicConstraints * This);
  1331. HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
  1332. IBasicConstraints * This,
  1333. /* [out] */ UINT *pctinfo);
  1334. HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
  1335. IBasicConstraints * This,
  1336. /* [in] */ UINT iTInfo,
  1337. /* [in] */ LCID lcid,
  1338. /* [out] */ ITypeInfo **ppTInfo);
  1339. HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
  1340. IBasicConstraints * This,
  1341. /* [in] */ REFIID riid,
  1342. /* [size_is][in] */ LPOLESTR *rgszNames,
  1343. /* [in] */ UINT cNames,
  1344. /* [in] */ LCID lcid,
  1345. /* [size_is][out] */ DISPID *rgDispId);
  1346. /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
  1347. IBasicConstraints * This,
  1348. /* [in] */ DISPID dispIdMember,
  1349. /* [in] */ REFIID riid,
  1350. /* [in] */ LCID lcid,
  1351. /* [in] */ WORD wFlags,
  1352. /* [out][in] */ DISPPARAMS *pDispParams,
  1353. /* [out] */ VARIANT *pVarResult,
  1354. /* [out] */ EXCEPINFO *pExcepInfo,
  1355. /* [out] */ UINT *puArgErr);
  1356. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsPresent )(
  1357. IBasicConstraints * This,
  1358. /* [retval][out] */ VARIANT_BOOL *pVal);
  1359. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsCritical )(
  1360. IBasicConstraints * This,
  1361. /* [retval][out] */ VARIANT_BOOL *pVal);
  1362. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsCertificateAuthority )(
  1363. IBasicConstraints * This,
  1364. /* [retval][out] */ VARIANT_BOOL *pVal);
  1365. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsPathLenConstraintPresent )(
  1366. IBasicConstraints * This,
  1367. /* [retval][out] */ VARIANT_BOOL *pVal);
  1368. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PathLenConstraint )(
  1369. IBasicConstraints * This,
  1370. /* [retval][out] */ long *pVal);
  1371. END_INTERFACE
  1372. } IBasicConstraintsVtbl;
  1373. interface IBasicConstraints
  1374. {
  1375. CONST_VTBL struct IBasicConstraintsVtbl *lpVtbl;
  1376. };
  1377. #ifdef COBJMACROS
  1378. #define IBasicConstraints_QueryInterface(This,riid,ppvObject) \
  1379. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1380. #define IBasicConstraints_AddRef(This) \
  1381. (This)->lpVtbl -> AddRef(This)
  1382. #define IBasicConstraints_Release(This) \
  1383. (This)->lpVtbl -> Release(This)
  1384. #define IBasicConstraints_GetTypeInfoCount(This,pctinfo) \
  1385. (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  1386. #define IBasicConstraints_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
  1387. (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  1388. #define IBasicConstraints_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
  1389. (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  1390. #define IBasicConstraints_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
  1391. (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  1392. #define IBasicConstraints_get_IsPresent(This,pVal) \
  1393. (This)->lpVtbl -> get_IsPresent(This,pVal)
  1394. #define IBasicConstraints_get_IsCritical(This,pVal) \
  1395. (This)->lpVtbl -> get_IsCritical(This,pVal)
  1396. #define IBasicConstraints_get_IsCertificateAuthority(This,pVal) \
  1397. (This)->lpVtbl -> get_IsCertificateAuthority(This,pVal)
  1398. #define IBasicConstraints_get_IsPathLenConstraintPresent(This,pVal) \
  1399. (This)->lpVtbl -> get_IsPathLenConstraintPresent(This,pVal)
  1400. #define IBasicConstraints_get_PathLenConstraint(This,pVal) \
  1401. (This)->lpVtbl -> get_PathLenConstraint(This,pVal)
  1402. #endif /* COBJMACROS */
  1403. #endif /* C style interface */
  1404. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IBasicConstraints_get_IsPresent_Proxy(
  1405. IBasicConstraints * This,
  1406. /* [retval][out] */ VARIANT_BOOL *pVal);
  1407. void __RPC_STUB IBasicConstraints_get_IsPresent_Stub(
  1408. IRpcStubBuffer *This,
  1409. IRpcChannelBuffer *_pRpcChannelBuffer,
  1410. PRPC_MESSAGE _pRpcMessage,
  1411. DWORD *_pdwStubPhase);
  1412. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IBasicConstraints_get_IsCritical_Proxy(
  1413. IBasicConstraints * This,
  1414. /* [retval][out] */ VARIANT_BOOL *pVal);
  1415. void __RPC_STUB IBasicConstraints_get_IsCritical_Stub(
  1416. IRpcStubBuffer *This,
  1417. IRpcChannelBuffer *_pRpcChannelBuffer,
  1418. PRPC_MESSAGE _pRpcMessage,
  1419. DWORD *_pdwStubPhase);
  1420. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IBasicConstraints_get_IsCertificateAuthority_Proxy(
  1421. IBasicConstraints * This,
  1422. /* [retval][out] */ VARIANT_BOOL *pVal);
  1423. void __RPC_STUB IBasicConstraints_get_IsCertificateAuthority_Stub(
  1424. IRpcStubBuffer *This,
  1425. IRpcChannelBuffer *_pRpcChannelBuffer,
  1426. PRPC_MESSAGE _pRpcMessage,
  1427. DWORD *_pdwStubPhase);
  1428. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IBasicConstraints_get_IsPathLenConstraintPresent_Proxy(
  1429. IBasicConstraints * This,
  1430. /* [retval][out] */ VARIANT_BOOL *pVal);
  1431. void __RPC_STUB IBasicConstraints_get_IsPathLenConstraintPresent_Stub(
  1432. IRpcStubBuffer *This,
  1433. IRpcChannelBuffer *_pRpcChannelBuffer,
  1434. PRPC_MESSAGE _pRpcMessage,
  1435. DWORD *_pdwStubPhase);
  1436. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IBasicConstraints_get_PathLenConstraint_Proxy(
  1437. IBasicConstraints * This,
  1438. /* [retval][out] */ long *pVal);
  1439. void __RPC_STUB IBasicConstraints_get_PathLenConstraint_Stub(
  1440. IRpcStubBuffer *This,
  1441. IRpcChannelBuffer *_pRpcChannelBuffer,
  1442. PRPC_MESSAGE _pRpcMessage,
  1443. DWORD *_pdwStubPhase);
  1444. #endif /* __IBasicConstraints_INTERFACE_DEFINED__ */
  1445. #ifndef __ICertificateStatus_INTERFACE_DEFINED__
  1446. #define __ICertificateStatus_INTERFACE_DEFINED__
  1447. /* interface ICertificateStatus */
  1448. /* [unique][helpstring][dual][uuid][object] */
  1449. EXTERN_C const IID IID_ICertificateStatus;
  1450. #if defined(__cplusplus) && !defined(CINTERFACE)
  1451. MIDL_INTERFACE("AB769053-6D38-49D4-86EF-5FA85ED3AF27")
  1452. ICertificateStatus : public IDispatch
  1453. {
  1454. public:
  1455. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Result(
  1456. /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
  1457. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_CheckFlag(
  1458. /* [retval][out] */ CAPICOM_CHECK_FLAG *pVal) = 0;
  1459. virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_CheckFlag(
  1460. /* [in] */ CAPICOM_CHECK_FLAG newVal) = 0;
  1461. virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE EKU(
  1462. /* [retval][out] */ IEKU **pVal) = 0;
  1463. };
  1464. #else /* C style interface */
  1465. typedef struct ICertificateStatusVtbl
  1466. {
  1467. BEGIN_INTERFACE
  1468. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1469. ICertificateStatus * This,
  1470. /* [in] */ REFIID riid,
  1471. /* [iid_is][out] */ void **ppvObject);
  1472. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1473. ICertificateStatus * This);
  1474. ULONG ( STDMETHODCALLTYPE *Release )(
  1475. ICertificateStatus * This);
  1476. HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
  1477. ICertificateStatus * This,
  1478. /* [out] */ UINT *pctinfo);
  1479. HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
  1480. ICertificateStatus * This,
  1481. /* [in] */ UINT iTInfo,
  1482. /* [in] */ LCID lcid,
  1483. /* [out] */ ITypeInfo **ppTInfo);
  1484. HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
  1485. ICertificateStatus * This,
  1486. /* [in] */ REFIID riid,
  1487. /* [size_is][in] */ LPOLESTR *rgszNames,
  1488. /* [in] */ UINT cNames,
  1489. /* [in] */ LCID lcid,
  1490. /* [size_is][out] */ DISPID *rgDispId);
  1491. /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
  1492. ICertificateStatus * This,
  1493. /* [in] */ DISPID dispIdMember,
  1494. /* [in] */ REFIID riid,
  1495. /* [in] */ LCID lcid,
  1496. /* [in] */ WORD wFlags,
  1497. /* [out][in] */ DISPPARAMS *pDispParams,
  1498. /* [out] */ VARIANT *pVarResult,
  1499. /* [out] */ EXCEPINFO *pExcepInfo,
  1500. /* [out] */ UINT *puArgErr);
  1501. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Result )(
  1502. ICertificateStatus * This,
  1503. /* [retval][out] */ VARIANT_BOOL *pVal);
  1504. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_CheckFlag )(
  1505. ICertificateStatus * This,
  1506. /* [retval][out] */ CAPICOM_CHECK_FLAG *pVal);
  1507. /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_CheckFlag )(
  1508. ICertificateStatus * This,
  1509. /* [in] */ CAPICOM_CHECK_FLAG newVal);
  1510. /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *EKU )(
  1511. ICertificateStatus * This,
  1512. /* [retval][out] */ IEKU **pVal);
  1513. END_INTERFACE
  1514. } ICertificateStatusVtbl;
  1515. interface ICertificateStatus
  1516. {
  1517. CONST_VTBL struct ICertificateStatusVtbl *lpVtbl;
  1518. };
  1519. #ifdef COBJMACROS
  1520. #define ICertificateStatus_QueryInterface(This,riid,ppvObject) \
  1521. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1522. #define ICertificateStatus_AddRef(This) \
  1523. (This)->lpVtbl -> AddRef(This)
  1524. #define ICertificateStatus_Release(This) \
  1525. (This)->lpVtbl -> Release(This)
  1526. #define ICertificateStatus_GetTypeInfoCount(This,pctinfo) \
  1527. (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  1528. #define ICertificateStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
  1529. (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  1530. #define ICertificateStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
  1531. (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  1532. #define ICertificateStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
  1533. (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  1534. #define ICertificateStatus_get_Result(This,pVal) \
  1535. (This)->lpVtbl -> get_Result(This,pVal)
  1536. #define ICertificateStatus_get_CheckFlag(This,pVal) \
  1537. (This)->lpVtbl -> get_CheckFlag(This,pVal)
  1538. #define ICertificateStatus_put_CheckFlag(This,newVal) \
  1539. (This)->lpVtbl -> put_CheckFlag(This,newVal)
  1540. #define ICertificateStatus_EKU(This,pVal) \
  1541. (This)->lpVtbl -> EKU(This,pVal)
  1542. #endif /* COBJMACROS */
  1543. #endif /* C style interface */
  1544. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ICertificateStatus_get_Result_Proxy(
  1545. ICertificateStatus * This,
  1546. /* [retval][out] */ VARIANT_BOOL *pVal);
  1547. void __RPC_STUB ICertificateStatus_get_Result_Stub(
  1548. IRpcStubBuffer *This,
  1549. IRpcChannelBuffer *_pRpcChannelBuffer,
  1550. PRPC_MESSAGE _pRpcMessage,
  1551. DWORD *_pdwStubPhase);
  1552. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ICertificateStatus_get_CheckFlag_Proxy(
  1553. ICertificateStatus * This,
  1554. /* [retval][out] */ CAPICOM_CHECK_FLAG *pVal);
  1555. void __RPC_STUB ICertificateStatus_get_CheckFlag_Stub(
  1556. IRpcStubBuffer *This,
  1557. IRpcChannelBuffer *_pRpcChannelBuffer,
  1558. PRPC_MESSAGE _pRpcMessage,
  1559. DWORD *_pdwStubPhase);
  1560. /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ICertificateStatus_put_CheckFlag_Proxy(
  1561. ICertificateStatus * This,
  1562. /* [in] */ CAPICOM_CHECK_FLAG newVal);
  1563. void __RPC_STUB ICertificateStatus_put_CheckFlag_Stub(
  1564. IRpcStubBuffer *This,
  1565. IRpcChannelBuffer *_pRpcChannelBuffer,
  1566. PRPC_MESSAGE _pRpcMessage,
  1567. DWORD *_pdwStubPhase);
  1568. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ICertificateStatus_EKU_Proxy(
  1569. ICertificateStatus * This,
  1570. /* [retval][out] */ IEKU **pVal);
  1571. void __RPC_STUB ICertificateStatus_EKU_Stub(
  1572. IRpcStubBuffer *This,
  1573. IRpcChannelBuffer *_pRpcChannelBuffer,
  1574. PRPC_MESSAGE _pRpcMessage,
  1575. DWORD *_pdwStubPhase);
  1576. #endif /* __ICertificateStatus_INTERFACE_DEFINED__ */
  1577. #ifndef __ICertificate_INTERFACE_DEFINED__
  1578. #define __ICertificate_INTERFACE_DEFINED__
  1579. /* interface ICertificate */
  1580. /* [unique][helpstring][dual][uuid][object] */
  1581. EXTERN_C const IID IID_ICertificate;
  1582. #if defined(__cplusplus) && !defined(CINTERFACE)
  1583. MIDL_INTERFACE("0BBA0B86-766C-4755-A443-243FF2BD8D29")
  1584. ICertificate : public IDispatch
  1585. {
  1586. public:
  1587. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Version(
  1588. /* [retval][out] */ long *pVal) = 0;
  1589. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SerialNumber(
  1590. /* [retval][out] */ BSTR *pVal) = 0;
  1591. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SubjectName(
  1592. /* [retval][out] */ BSTR *pVal) = 0;
  1593. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IssuerName(
  1594. /* [retval][out] */ BSTR *pVal) = 0;
  1595. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ValidFromDate(
  1596. /* [retval][out] */ DATE *pVal) = 0;
  1597. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ValidToDate(
  1598. /* [retval][out] */ DATE *pVal) = 0;
  1599. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Thumbprint(
  1600. /* [retval][out] */ BSTR *pVal) = 0;
  1601. virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE HasPrivateKey(
  1602. /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
  1603. virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetInfo(
  1604. /* [in] */ CAPICOM_CERT_INFO_TYPE InfoType,
  1605. /* [retval][out] */ BSTR *pVal) = 0;
  1606. virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsValid(
  1607. /* [retval][out] */ ICertificateStatus **pVal) = 0;
  1608. virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE KeyUsage(
  1609. /* [retval][out] */ IKeyUsage **pVal) = 0;
  1610. virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ExtendedKeyUsage(
  1611. /* [retval][out] */ IExtendedKeyUsage **pVal) = 0;
  1612. virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE BasicConstraints(
  1613. /* [retval][out] */ IBasicConstraints **pVal) = 0;
  1614. virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Export(
  1615. /* [defaultvalue][in] */ CAPICOM_ENCODING_TYPE EncodingType,
  1616. /* [retval][out] */ BSTR *pVal) = 0;
  1617. virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Import(
  1618. /* [in] */ BSTR EncodedCertificate) = 0;
  1619. virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Display( void) = 0;
  1620. };
  1621. #else /* C style interface */
  1622. typedef struct ICertificateVtbl
  1623. {
  1624. BEGIN_INTERFACE
  1625. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1626. ICertificate * This,
  1627. /* [in] */ REFIID riid,
  1628. /* [iid_is][out] */ void **ppvObject);
  1629. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1630. ICertificate * This);
  1631. ULONG ( STDMETHODCALLTYPE *Release )(
  1632. ICertificate * This);
  1633. HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
  1634. ICertificate * This,
  1635. /* [out] */ UINT *pctinfo);
  1636. HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
  1637. ICertificate * This,
  1638. /* [in] */ UINT iTInfo,
  1639. /* [in] */ LCID lcid,
  1640. /* [out] */ ITypeInfo **ppTInfo);
  1641. HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
  1642. ICertificate * This,
  1643. /* [in] */ REFIID riid,
  1644. /* [size_is][in] */ LPOLESTR *rgszNames,
  1645. /* [in] */ UINT cNames,
  1646. /* [in] */ LCID lcid,
  1647. /* [size_is][out] */ DISPID *rgDispId);
  1648. /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
  1649. ICertificate * This,
  1650. /* [in] */ DISPID dispIdMember,
  1651. /* [in] */ REFIID riid,
  1652. /* [in] */ LCID lcid,
  1653. /* [in] */ WORD wFlags,
  1654. /* [out][in] */ DISPPARAMS *pDispParams,
  1655. /* [out] */ VARIANT *pVarResult,
  1656. /* [out] */ EXCEPINFO *pExcepInfo,
  1657. /* [out] */ UINT *puArgErr);
  1658. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Version )(
  1659. ICertificate * This,
  1660. /* [retval][out] */ long *pVal);
  1661. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SerialNumber )(
  1662. ICertificate * This,
  1663. /* [retval][out] */ BSTR *pVal);
  1664. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SubjectName )(
  1665. ICertificate * This,
  1666. /* [retval][out] */ BSTR *pVal);
  1667. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IssuerName )(
  1668. ICertificate * This,
  1669. /* [retval][out] */ BSTR *pVal);
  1670. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ValidFromDate )(
  1671. ICertificate * This,
  1672. /* [retval][out] */ DATE *pVal);
  1673. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ValidToDate )(
  1674. ICertificate * This,
  1675. /* [retval][out] */ DATE *pVal);
  1676. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Thumbprint )(
  1677. ICertificate * This,
  1678. /* [retval][out] */ BSTR *pVal);
  1679. /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *HasPrivateKey )(
  1680. ICertificate * This,
  1681. /* [retval][out] */ VARIANT_BOOL *pVal);
  1682. /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetInfo )(
  1683. ICertificate * This,
  1684. /* [in] */ CAPICOM_CERT_INFO_TYPE InfoType,
  1685. /* [retval][out] */ BSTR *pVal);
  1686. /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsValid )(
  1687. ICertificate * This,
  1688. /* [retval][out] */ ICertificateStatus **pVal);
  1689. /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *KeyUsage )(
  1690. ICertificate * This,
  1691. /* [retval][out] */ IKeyUsage **pVal);
  1692. /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ExtendedKeyUsage )(
  1693. ICertificate * This,
  1694. /* [retval][out] */ IExtendedKeyUsage **pVal);
  1695. /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *BasicConstraints )(
  1696. ICertificate * This,
  1697. /* [retval][out] */ IBasicConstraints **pVal);
  1698. /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Export )(
  1699. ICertificate * This,
  1700. /* [defaultvalue][in] */ CAPICOM_ENCODING_TYPE EncodingType,
  1701. /* [retval][out] */ BSTR *pVal);
  1702. /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Import )(
  1703. ICertificate * This,
  1704. /* [in] */ BSTR EncodedCertificate);
  1705. /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Display )(
  1706. ICertificate * This);
  1707. END_INTERFACE
  1708. } ICertificateVtbl;
  1709. interface ICertificate
  1710. {
  1711. CONST_VTBL struct ICertificateVtbl *lpVtbl;
  1712. };
  1713. #ifdef COBJMACROS
  1714. #define ICertificate_QueryInterface(This,riid,ppvObject) \
  1715. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1716. #define ICertificate_AddRef(This) \
  1717. (This)->lpVtbl -> AddRef(This)
  1718. #define ICertificate_Release(This) \
  1719. (This)->lpVtbl -> Release(This)
  1720. #define ICertificate_GetTypeInfoCount(This,pctinfo) \
  1721. (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  1722. #define ICertificate_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
  1723. (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  1724. #define ICertificate_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
  1725. (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  1726. #define ICertificate_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
  1727. (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  1728. #define ICertificate_get_Version(This,pVal) \
  1729. (This)->lpVtbl -> get_Version(This,pVal)
  1730. #define ICertificate_get_SerialNumber(This,pVal) \
  1731. (This)->lpVtbl -> get_SerialNumber(This,pVal)
  1732. #define ICertificate_get_SubjectName(This,pVal) \
  1733. (This)->lpVtbl -> get_SubjectName(This,pVal)
  1734. #define ICertificate_get_IssuerName(This,pVal) \
  1735. (This)->lpVtbl -> get_IssuerName(This,pVal)
  1736. #define ICertificate_get_ValidFromDate(This,pVal) \
  1737. (This)->lpVtbl -> get_ValidFromDate(This,pVal)
  1738. #define ICertificate_get_ValidToDate(This,pVal) \
  1739. (This)->lpVtbl -> get_ValidToDate(This,pVal)
  1740. #define ICertificate_get_Thumbprint(This,pVal) \
  1741. (This)->lpVtbl -> get_Thumbprint(This,pVal)
  1742. #define ICertificate_HasPrivateKey(This,pVal) \
  1743. (This)->lpVtbl -> HasPrivateKey(This,pVal)
  1744. #define ICertificate_GetInfo(This,InfoType,pVal) \
  1745. (This)->lpVtbl -> GetInfo(This,InfoType,pVal)
  1746. #define ICertificate_IsValid(This,pVal) \
  1747. (This)->lpVtbl -> IsValid(This,pVal)
  1748. #define ICertificate_KeyUsage(This,pVal) \
  1749. (This)->lpVtbl -> KeyUsage(This,pVal)
  1750. #define ICertificate_ExtendedKeyUsage(This,pVal) \
  1751. (This)->lpVtbl -> ExtendedKeyUsage(This,pVal)
  1752. #define ICertificate_BasicConstraints(This,pVal) \
  1753. (This)->lpVtbl -> BasicConstraints(This,pVal)
  1754. #define ICertificate_Export(This,EncodingType,pVal) \
  1755. (This)->lpVtbl -> Export(This,EncodingType,pVal)
  1756. #define ICertificate_Import(This,EncodedCertificate) \
  1757. (This)->lpVtbl -> Import(This,EncodedCertificate)
  1758. #define ICertificate_Display(This) \
  1759. (This)->lpVtbl -> Display(This)
  1760. #endif /* COBJMACROS */
  1761. #endif /* C style interface */
  1762. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ICertificate_get_Version_Proxy(
  1763. ICertificate * This,
  1764. /* [retval][out] */ long *pVal);
  1765. void __RPC_STUB ICertificate_get_Version_Stub(
  1766. IRpcStubBuffer *This,
  1767. IRpcChannelBuffer *_pRpcChannelBuffer,
  1768. PRPC_MESSAGE _pRpcMessage,
  1769. DWORD *_pdwStubPhase);
  1770. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ICertificate_get_SerialNumber_Proxy(
  1771. ICertificate * This,
  1772. /* [retval][out] */ BSTR *pVal);
  1773. void __RPC_STUB ICertificate_get_SerialNumber_Stub(
  1774. IRpcStubBuffer *This,
  1775. IRpcChannelBuffer *_pRpcChannelBuffer,
  1776. PRPC_MESSAGE _pRpcMessage,
  1777. DWORD *_pdwStubPhase);
  1778. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ICertificate_get_SubjectName_Proxy(
  1779. ICertificate * This,
  1780. /* [retval][out] */ BSTR *pVal);
  1781. void __RPC_STUB ICertificate_get_SubjectName_Stub(
  1782. IRpcStubBuffer *This,
  1783. IRpcChannelBuffer *_pRpcChannelBuffer,
  1784. PRPC_MESSAGE _pRpcMessage,
  1785. DWORD *_pdwStubPhase);
  1786. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ICertificate_get_IssuerName_Proxy(
  1787. ICertificate * This,
  1788. /* [retval][out] */ BSTR *pVal);
  1789. void __RPC_STUB ICertificate_get_IssuerName_Stub(
  1790. IRpcStubBuffer *This,
  1791. IRpcChannelBuffer *_pRpcChannelBuffer,
  1792. PRPC_MESSAGE _pRpcMessage,
  1793. DWORD *_pdwStubPhase);
  1794. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ICertificate_get_ValidFromDate_Proxy(
  1795. ICertificate * This,
  1796. /* [retval][out] */ DATE *pVal);
  1797. void __RPC_STUB ICertificate_get_ValidFromDate_Stub(
  1798. IRpcStubBuffer *This,
  1799. IRpcChannelBuffer *_pRpcChannelBuffer,
  1800. PRPC_MESSAGE _pRpcMessage,
  1801. DWORD *_pdwStubPhase);
  1802. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ICertificate_get_ValidToDate_Proxy(
  1803. ICertificate * This,
  1804. /* [retval][out] */ DATE *pVal);
  1805. void __RPC_STUB ICertificate_get_ValidToDate_Stub(
  1806. IRpcStubBuffer *This,
  1807. IRpcChannelBuffer *_pRpcChannelBuffer,
  1808. PRPC_MESSAGE _pRpcMessage,
  1809. DWORD *_pdwStubPhase);
  1810. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ICertificate_get_Thumbprint_Proxy(
  1811. ICertificate * This,
  1812. /* [retval][out] */ BSTR *pVal);
  1813. void __RPC_STUB ICertificate_get_Thumbprint_Stub(
  1814. IRpcStubBuffer *This,
  1815. IRpcChannelBuffer *_pRpcChannelBuffer,
  1816. PRPC_MESSAGE _pRpcMessage,
  1817. DWORD *_pdwStubPhase);
  1818. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ICertificate_HasPrivateKey_Proxy(
  1819. ICertificate * This,
  1820. /* [retval][out] */ VARIANT_BOOL *pVal);
  1821. void __RPC_STUB ICertificate_HasPrivateKey_Stub(
  1822. IRpcStubBuffer *This,
  1823. IRpcChannelBuffer *_pRpcChannelBuffer,
  1824. PRPC_MESSAGE _pRpcMessage,
  1825. DWORD *_pdwStubPhase);
  1826. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ICertificate_GetInfo_Proxy(
  1827. ICertificate * This,
  1828. /* [in] */ CAPICOM_CERT_INFO_TYPE InfoType,
  1829. /* [retval][out] */ BSTR *pVal);
  1830. void __RPC_STUB ICertificate_GetInfo_Stub(
  1831. IRpcStubBuffer *This,
  1832. IRpcChannelBuffer *_pRpcChannelBuffer,
  1833. PRPC_MESSAGE _pRpcMessage,
  1834. DWORD *_pdwStubPhase);
  1835. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ICertificate_IsValid_Proxy(
  1836. ICertificate * This,
  1837. /* [retval][out] */ ICertificateStatus **pVal);
  1838. void __RPC_STUB ICertificate_IsValid_Stub(
  1839. IRpcStubBuffer *This,
  1840. IRpcChannelBuffer *_pRpcChannelBuffer,
  1841. PRPC_MESSAGE _pRpcMessage,
  1842. DWORD *_pdwStubPhase);
  1843. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ICertificate_KeyUsage_Proxy(
  1844. ICertificate * This,
  1845. /* [retval][out] */ IKeyUsage **pVal);
  1846. void __RPC_STUB ICertificate_KeyUsage_Stub(
  1847. IRpcStubBuffer *This,
  1848. IRpcChannelBuffer *_pRpcChannelBuffer,
  1849. PRPC_MESSAGE _pRpcMessage,
  1850. DWORD *_pdwStubPhase);
  1851. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ICertificate_ExtendedKeyUsage_Proxy(
  1852. ICertificate * This,
  1853. /* [retval][out] */ IExtendedKeyUsage **pVal);
  1854. void __RPC_STUB ICertificate_ExtendedKeyUsage_Stub(
  1855. IRpcStubBuffer *This,
  1856. IRpcChannelBuffer *_pRpcChannelBuffer,
  1857. PRPC_MESSAGE _pRpcMessage,
  1858. DWORD *_pdwStubPhase);
  1859. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ICertificate_BasicConstraints_Proxy(
  1860. ICertificate * This,
  1861. /* [retval][out] */ IBasicConstraints **pVal);
  1862. void __RPC_STUB ICertificate_BasicConstraints_Stub(
  1863. IRpcStubBuffer *This,
  1864. IRpcChannelBuffer *_pRpcChannelBuffer,
  1865. PRPC_MESSAGE _pRpcMessage,
  1866. DWORD *_pdwStubPhase);
  1867. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ICertificate_Export_Proxy(
  1868. ICertificate * This,
  1869. /* [defaultvalue][in] */ CAPICOM_ENCODING_TYPE EncodingType,
  1870. /* [retval][out] */ BSTR *pVal);
  1871. void __RPC_STUB ICertificate_Export_Stub(
  1872. IRpcStubBuffer *This,
  1873. IRpcChannelBuffer *_pRpcChannelBuffer,
  1874. PRPC_MESSAGE _pRpcMessage,
  1875. DWORD *_pdwStubPhase);
  1876. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ICertificate_Import_Proxy(
  1877. ICertificate * This,
  1878. /* [in] */ BSTR EncodedCertificate);
  1879. void __RPC_STUB ICertificate_Import_Stub(
  1880. IRpcStubBuffer *This,
  1881. IRpcChannelBuffer *_pRpcChannelBuffer,
  1882. PRPC_MESSAGE _pRpcMessage,
  1883. DWORD *_pdwStubPhase);
  1884. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ICertificate_Display_Proxy(
  1885. ICertificate * This);
  1886. void __RPC_STUB ICertificate_Display_Stub(
  1887. IRpcStubBuffer *This,
  1888. IRpcChannelBuffer *_pRpcChannelBuffer,
  1889. PRPC_MESSAGE _pRpcMessage,
  1890. DWORD *_pdwStubPhase);
  1891. #endif /* __ICertificate_INTERFACE_DEFINED__ */
  1892. #ifndef __ICertificates_INTERFACE_DEFINED__
  1893. #define __ICertificates_INTERFACE_DEFINED__
  1894. /* interface ICertificates */
  1895. /* [unique][helpstring][dual][uuid][object] */
  1896. EXTERN_C const IID IID_ICertificates;
  1897. #if defined(__cplusplus) && !defined(CINTERFACE)
  1898. MIDL_INTERFACE("68646716-BDA0-4046-AB82-4444BC93B84A")
  1899. ICertificates : public IDispatch
  1900. {
  1901. public:
  1902. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Item(
  1903. /* [in] */ long Index,
  1904. /* [retval][out] */ VARIANT *pVal) = 0;
  1905. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Count(
  1906. /* [retval][out] */ long *pVal) = 0;
  1907. virtual /* [restricted][helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum(
  1908. /* [retval][out] */ LPUNKNOWN *pVal) = 0;
  1909. };
  1910. #else /* C style interface */
  1911. typedef struct ICertificatesVtbl
  1912. {
  1913. BEGIN_INTERFACE
  1914. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1915. ICertificates * This,
  1916. /* [in] */ REFIID riid,
  1917. /* [iid_is][out] */ void **ppvObject);
  1918. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1919. ICertificates * This);
  1920. ULONG ( STDMETHODCALLTYPE *Release )(
  1921. ICertificates * This);
  1922. HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
  1923. ICertificates * This,
  1924. /* [out] */ UINT *pctinfo);
  1925. HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
  1926. ICertificates * This,
  1927. /* [in] */ UINT iTInfo,
  1928. /* [in] */ LCID lcid,
  1929. /* [out] */ ITypeInfo **ppTInfo);
  1930. HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
  1931. ICertificates * This,
  1932. /* [in] */ REFIID riid,
  1933. /* [size_is][in] */ LPOLESTR *rgszNames,
  1934. /* [in] */ UINT cNames,
  1935. /* [in] */ LCID lcid,
  1936. /* [size_is][out] */ DISPID *rgDispId);
  1937. /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
  1938. ICertificates * This,
  1939. /* [in] */ DISPID dispIdMember,
  1940. /* [in] */ REFIID riid,
  1941. /* [in] */ LCID lcid,
  1942. /* [in] */ WORD wFlags,
  1943. /* [out][in] */ DISPPARAMS *pDispParams,
  1944. /* [out] */ VARIANT *pVarResult,
  1945. /* [out] */ EXCEPINFO *pExcepInfo,
  1946. /* [out] */ UINT *puArgErr);
  1947. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )(
  1948. ICertificates * This,
  1949. /* [in] */ long Index,
  1950. /* [retval][out] */ VARIANT *pVal);
  1951. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )(
  1952. ICertificates * This,
  1953. /* [retval][out] */ long *pVal);
  1954. /* [restricted][helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )(
  1955. ICertificates * This,
  1956. /* [retval][out] */ LPUNKNOWN *pVal);
  1957. END_INTERFACE
  1958. } ICertificatesVtbl;
  1959. interface ICertificates
  1960. {
  1961. CONST_VTBL struct ICertificatesVtbl *lpVtbl;
  1962. };
  1963. #ifdef COBJMACROS
  1964. #define ICertificates_QueryInterface(This,riid,ppvObject) \
  1965. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1966. #define ICertificates_AddRef(This) \
  1967. (This)->lpVtbl -> AddRef(This)
  1968. #define ICertificates_Release(This) \
  1969. (This)->lpVtbl -> Release(This)
  1970. #define ICertificates_GetTypeInfoCount(This,pctinfo) \
  1971. (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  1972. #define ICertificates_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
  1973. (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  1974. #define ICertificates_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
  1975. (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  1976. #define ICertificates_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
  1977. (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  1978. #define ICertificates_get_Item(This,Index,pVal) \
  1979. (This)->lpVtbl -> get_Item(This,Index,pVal)
  1980. #define ICertificates_get_Count(This,pVal) \
  1981. (This)->lpVtbl -> get_Count(This,pVal)
  1982. #define ICertificates_get__NewEnum(This,pVal) \
  1983. (This)->lpVtbl -> get__NewEnum(This,pVal)
  1984. #endif /* COBJMACROS */
  1985. #endif /* C style interface */
  1986. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ICertificates_get_Item_Proxy(
  1987. ICertificates * This,
  1988. /* [in] */ long Index,
  1989. /* [retval][out] */ VARIANT *pVal);
  1990. void __RPC_STUB ICertificates_get_Item_Stub(
  1991. IRpcStubBuffer *This,
  1992. IRpcChannelBuffer *_pRpcChannelBuffer,
  1993. PRPC_MESSAGE _pRpcMessage,
  1994. DWORD *_pdwStubPhase);
  1995. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ICertificates_get_Count_Proxy(
  1996. ICertificates * This,
  1997. /* [retval][out] */ long *pVal);
  1998. void __RPC_STUB ICertificates_get_Count_Stub(
  1999. IRpcStubBuffer *This,
  2000. IRpcChannelBuffer *_pRpcChannelBuffer,
  2001. PRPC_MESSAGE _pRpcMessage,
  2002. DWORD *_pdwStubPhase);
  2003. /* [restricted][helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ICertificates_get__NewEnum_Proxy(
  2004. ICertificates * This,
  2005. /* [retval][out] */ LPUNKNOWN *pVal);
  2006. void __RPC_STUB ICertificates_get__NewEnum_Stub(
  2007. IRpcStubBuffer *This,
  2008. IRpcChannelBuffer *_pRpcChannelBuffer,
  2009. PRPC_MESSAGE _pRpcMessage,
  2010. DWORD *_pdwStubPhase);
  2011. #endif /* __ICertificates_INTERFACE_DEFINED__ */
  2012. #ifndef __IChain_INTERFACE_DEFINED__
  2013. #define __IChain_INTERFACE_DEFINED__
  2014. /* interface IChain */
  2015. /* [unique][helpstring][dual][uuid][object] */
  2016. EXTERN_C const IID IID_IChain;
  2017. #if defined(__cplusplus) && !defined(CINTERFACE)
  2018. MIDL_INTERFACE("77F6F881-5D3A-4F2F-AEF0-E4A2F9AA689D")
  2019. IChain : public IDispatch
  2020. {
  2021. public:
  2022. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Certificates(
  2023. /* [retval][out] */ ICertificates **pVal) = 0;
  2024. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Status(
  2025. /* [defaultvalue][in] */ long Index,
  2026. /* [retval][out] */ long *pVal) = 0;
  2027. virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Build(
  2028. /* [in] */ ICertificate *pICertificate,
  2029. /* [retval][out] */ VARIANT_BOOL *pVal) = 0;
  2030. };
  2031. #else /* C style interface */
  2032. typedef struct IChainVtbl
  2033. {
  2034. BEGIN_INTERFACE
  2035. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  2036. IChain * This,
  2037. /* [in] */ REFIID riid,
  2038. /* [iid_is][out] */ void **ppvObject);
  2039. ULONG ( STDMETHODCALLTYPE *AddRef )(
  2040. IChain * This);
  2041. ULONG ( STDMETHODCALLTYPE *Release )(
  2042. IChain * This);
  2043. HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
  2044. IChain * This,
  2045. /* [out] */ UINT *pctinfo);
  2046. HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
  2047. IChain * This,
  2048. /* [in] */ UINT iTInfo,
  2049. /* [in] */ LCID lcid,
  2050. /* [out] */ ITypeInfo **ppTInfo);
  2051. HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
  2052. IChain * This,
  2053. /* [in] */ REFIID riid,
  2054. /* [size_is][in] */ LPOLESTR *rgszNames,
  2055. /* [in] */ UINT cNames,
  2056. /* [in] */ LCID lcid,
  2057. /* [size_is][out] */ DISPID *rgDispId);
  2058. /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
  2059. IChain * This,
  2060. /* [in] */ DISPID dispIdMember,
  2061. /* [in] */ REFIID riid,
  2062. /* [in] */ LCID lcid,
  2063. /* [in] */ WORD wFlags,
  2064. /* [out][in] */ DISPPARAMS *pDispParams,
  2065. /* [out] */ VARIANT *pVarResult,
  2066. /* [out] */ EXCEPINFO *pExcepInfo,
  2067. /* [out] */ UINT *puArgErr);
  2068. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Certificates )(
  2069. IChain * This,
  2070. /* [retval][out] */ ICertificates **pVal);
  2071. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Status )(
  2072. IChain * This,
  2073. /* [defaultvalue][in] */ long Index,
  2074. /* [retval][out] */ long *pVal);
  2075. /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Build )(
  2076. IChain * This,
  2077. /* [in] */ ICertificate *pICertificate,
  2078. /* [retval][out] */ VARIANT_BOOL *pVal);
  2079. END_INTERFACE
  2080. } IChainVtbl;
  2081. interface IChain
  2082. {
  2083. CONST_VTBL struct IChainVtbl *lpVtbl;
  2084. };
  2085. #ifdef COBJMACROS
  2086. #define IChain_QueryInterface(This,riid,ppvObject) \
  2087. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2088. #define IChain_AddRef(This) \
  2089. (This)->lpVtbl -> AddRef(This)
  2090. #define IChain_Release(This) \
  2091. (This)->lpVtbl -> Release(This)
  2092. #define IChain_GetTypeInfoCount(This,pctinfo) \
  2093. (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  2094. #define IChain_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
  2095. (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  2096. #define IChain_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
  2097. (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  2098. #define IChain_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
  2099. (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  2100. #define IChain_get_Certificates(This,pVal) \
  2101. (This)->lpVtbl -> get_Certificates(This,pVal)
  2102. #define IChain_get_Status(This,Index,pVal) \
  2103. (This)->lpVtbl -> get_Status(This,Index,pVal)
  2104. #define IChain_Build(This,pICertificate,pVal) \
  2105. (This)->lpVtbl -> Build(This,pICertificate,pVal)
  2106. #endif /* COBJMACROS */
  2107. #endif /* C style interface */
  2108. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IChain_get_Certificates_Proxy(
  2109. IChain * This,
  2110. /* [retval][out] */ ICertificates **pVal);
  2111. void __RPC_STUB IChain_get_Certificates_Stub(
  2112. IRpcStubBuffer *This,
  2113. IRpcChannelBuffer *_pRpcChannelBuffer,
  2114. PRPC_MESSAGE _pRpcMessage,
  2115. DWORD *_pdwStubPhase);
  2116. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IChain_get_Status_Proxy(
  2117. IChain * This,
  2118. /* [defaultvalue][in] */ long Index,
  2119. /* [retval][out] */ long *pVal);
  2120. void __RPC_STUB IChain_get_Status_Stub(
  2121. IRpcStubBuffer *This,
  2122. IRpcChannelBuffer *_pRpcChannelBuffer,
  2123. PRPC_MESSAGE _pRpcMessage,
  2124. DWORD *_pdwStubPhase);
  2125. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IChain_Build_Proxy(
  2126. IChain * This,
  2127. /* [in] */ ICertificate *pICertificate,
  2128. /* [retval][out] */ VARIANT_BOOL *pVal);
  2129. void __RPC_STUB IChain_Build_Stub(
  2130. IRpcStubBuffer *This,
  2131. IRpcChannelBuffer *_pRpcChannelBuffer,
  2132. PRPC_MESSAGE _pRpcMessage,
  2133. DWORD *_pdwStubPhase);
  2134. #endif /* __IChain_INTERFACE_DEFINED__ */
  2135. #ifndef __IStore_INTERFACE_DEFINED__
  2136. #define __IStore_INTERFACE_DEFINED__
  2137. /* interface IStore */
  2138. /* [unique][helpstring][dual][uuid][object] */
  2139. EXTERN_C const IID IID_IStore;
  2140. #if defined(__cplusplus) && !defined(CINTERFACE)
  2141. MIDL_INTERFACE("E860EF75-1B63-4254-AF47-960DAA3DD337")
  2142. IStore : public IDispatch
  2143. {
  2144. public:
  2145. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Certificates(
  2146. /* [retval][out] */ ICertificates **pVal) = 0;
  2147. virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Open(
  2148. /* [defaultvalue][in] */ CAPICOM_STORE_LOCATION StoreLocation = CAPICOM_CURRENT_USER_STORE,
  2149. /* [defaultvalue][in] */ BSTR StoreName = L"My",
  2150. /* [defaultvalue][in] */ CAPICOM_STORE_OPEN_MODE OpenMode = CAPICOM_STORE_OPEN_READ_ONLY) = 0;
  2151. virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Add(
  2152. /* [in] */ ICertificate *pVal) = 0;
  2153. virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Remove(
  2154. /* [in] */ ICertificate *pVal) = 0;
  2155. virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Export(
  2156. /* [defaultvalue][in] */ CAPICOM_STORE_SAVE_AS_TYPE SaveAs,
  2157. /* [defaultvalue][in] */ CAPICOM_ENCODING_TYPE EncodingType,
  2158. /* [retval][out] */ BSTR *pVal) = 0;
  2159. virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Import(
  2160. /* [in] */ BSTR EncodedStore) = 0;
  2161. };
  2162. #else /* C style interface */
  2163. typedef struct IStoreVtbl
  2164. {
  2165. BEGIN_INTERFACE
  2166. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  2167. IStore * This,
  2168. /* [in] */ REFIID riid,
  2169. /* [iid_is][out] */ void **ppvObject);
  2170. ULONG ( STDMETHODCALLTYPE *AddRef )(
  2171. IStore * This);
  2172. ULONG ( STDMETHODCALLTYPE *Release )(
  2173. IStore * This);
  2174. HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
  2175. IStore * This,
  2176. /* [out] */ UINT *pctinfo);
  2177. HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
  2178. IStore * This,
  2179. /* [in] */ UINT iTInfo,
  2180. /* [in] */ LCID lcid,
  2181. /* [out] */ ITypeInfo **ppTInfo);
  2182. HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
  2183. IStore * This,
  2184. /* [in] */ REFIID riid,
  2185. /* [size_is][in] */ LPOLESTR *rgszNames,
  2186. /* [in] */ UINT cNames,
  2187. /* [in] */ LCID lcid,
  2188. /* [size_is][out] */ DISPID *rgDispId);
  2189. /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
  2190. IStore * This,
  2191. /* [in] */ DISPID dispIdMember,
  2192. /* [in] */ REFIID riid,
  2193. /* [in] */ LCID lcid,
  2194. /* [in] */ WORD wFlags,
  2195. /* [out][in] */ DISPPARAMS *pDispParams,
  2196. /* [out] */ VARIANT *pVarResult,
  2197. /* [out] */ EXCEPINFO *pExcepInfo,
  2198. /* [out] */ UINT *puArgErr);
  2199. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Certificates )(
  2200. IStore * This,
  2201. /* [retval][out] */ ICertificates **pVal);
  2202. /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Open )(
  2203. IStore * This,
  2204. /* [defaultvalue][in] */ CAPICOM_STORE_LOCATION StoreLocation,
  2205. /* [defaultvalue][in] */ BSTR StoreName,
  2206. /* [defaultvalue][in] */ CAPICOM_STORE_OPEN_MODE OpenMode);
  2207. /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Add )(
  2208. IStore * This,
  2209. /* [in] */ ICertificate *pVal);
  2210. /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Remove )(
  2211. IStore * This,
  2212. /* [in] */ ICertificate *pVal);
  2213. /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Export )(
  2214. IStore * This,
  2215. /* [defaultvalue][in] */ CAPICOM_STORE_SAVE_AS_TYPE SaveAs,
  2216. /* [defaultvalue][in] */ CAPICOM_ENCODING_TYPE EncodingType,
  2217. /* [retval][out] */ BSTR *pVal);
  2218. /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Import )(
  2219. IStore * This,
  2220. /* [in] */ BSTR EncodedStore);
  2221. END_INTERFACE
  2222. } IStoreVtbl;
  2223. interface IStore
  2224. {
  2225. CONST_VTBL struct IStoreVtbl *lpVtbl;
  2226. };
  2227. #ifdef COBJMACROS
  2228. #define IStore_QueryInterface(This,riid,ppvObject) \
  2229. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2230. #define IStore_AddRef(This) \
  2231. (This)->lpVtbl -> AddRef(This)
  2232. #define IStore_Release(This) \
  2233. (This)->lpVtbl -> Release(This)
  2234. #define IStore_GetTypeInfoCount(This,pctinfo) \
  2235. (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  2236. #define IStore_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
  2237. (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  2238. #define IStore_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
  2239. (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  2240. #define IStore_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
  2241. (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  2242. #define IStore_get_Certificates(This,pVal) \
  2243. (This)->lpVtbl -> get_Certificates(This,pVal)
  2244. #define IStore_Open(This,StoreLocation,StoreName,OpenMode) \
  2245. (This)->lpVtbl -> Open(This,StoreLocation,StoreName,OpenMode)
  2246. #define IStore_Add(This,pVal) \
  2247. (This)->lpVtbl -> Add(This,pVal)
  2248. #define IStore_Remove(This,pVal) \
  2249. (This)->lpVtbl -> Remove(This,pVal)
  2250. #define IStore_Export(This,SaveAs,EncodingType,pVal) \
  2251. (This)->lpVtbl -> Export(This,SaveAs,EncodingType,pVal)
  2252. #define IStore_Import(This,EncodedStore) \
  2253. (This)->lpVtbl -> Import(This,EncodedStore)
  2254. #endif /* COBJMACROS */
  2255. #endif /* C style interface */
  2256. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IStore_get_Certificates_Proxy(
  2257. IStore * This,
  2258. /* [retval][out] */ ICertificates **pVal);
  2259. void __RPC_STUB IStore_get_Certificates_Stub(
  2260. IRpcStubBuffer *This,
  2261. IRpcChannelBuffer *_pRpcChannelBuffer,
  2262. PRPC_MESSAGE _pRpcMessage,
  2263. DWORD *_pdwStubPhase);
  2264. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IStore_Open_Proxy(
  2265. IStore * This,
  2266. /* [defaultvalue][in] */ CAPICOM_STORE_LOCATION StoreLocation,
  2267. /* [defaultvalue][in] */ BSTR StoreName,
  2268. /* [defaultvalue][in] */ CAPICOM_STORE_OPEN_MODE OpenMode);
  2269. void __RPC_STUB IStore_Open_Stub(
  2270. IRpcStubBuffer *This,
  2271. IRpcChannelBuffer *_pRpcChannelBuffer,
  2272. PRPC_MESSAGE _pRpcMessage,
  2273. DWORD *_pdwStubPhase);
  2274. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IStore_Add_Proxy(
  2275. IStore * This,
  2276. /* [in] */ ICertificate *pVal);
  2277. void __RPC_STUB IStore_Add_Stub(
  2278. IRpcStubBuffer *This,
  2279. IRpcChannelBuffer *_pRpcChannelBuffer,
  2280. PRPC_MESSAGE _pRpcMessage,
  2281. DWORD *_pdwStubPhase);
  2282. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IStore_Remove_Proxy(
  2283. IStore * This,
  2284. /* [in] */ ICertificate *pVal);
  2285. void __RPC_STUB IStore_Remove_Stub(
  2286. IRpcStubBuffer *This,
  2287. IRpcChannelBuffer *_pRpcChannelBuffer,
  2288. PRPC_MESSAGE _pRpcMessage,
  2289. DWORD *_pdwStubPhase);
  2290. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IStore_Export_Proxy(
  2291. IStore * This,
  2292. /* [defaultvalue][in] */ CAPICOM_STORE_SAVE_AS_TYPE SaveAs,
  2293. /* [defaultvalue][in] */ CAPICOM_ENCODING_TYPE EncodingType,
  2294. /* [retval][out] */ BSTR *pVal);
  2295. void __RPC_STUB IStore_Export_Stub(
  2296. IRpcStubBuffer *This,
  2297. IRpcChannelBuffer *_pRpcChannelBuffer,
  2298. PRPC_MESSAGE _pRpcMessage,
  2299. DWORD *_pdwStubPhase);
  2300. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IStore_Import_Proxy(
  2301. IStore * This,
  2302. /* [in] */ BSTR EncodedStore);
  2303. void __RPC_STUB IStore_Import_Stub(
  2304. IRpcStubBuffer *This,
  2305. IRpcChannelBuffer *_pRpcChannelBuffer,
  2306. PRPC_MESSAGE _pRpcMessage,
  2307. DWORD *_pdwStubPhase);
  2308. #endif /* __IStore_INTERFACE_DEFINED__ */
  2309. #ifndef __IAttribute_INTERFACE_DEFINED__
  2310. #define __IAttribute_INTERFACE_DEFINED__
  2311. /* interface IAttribute */
  2312. /* [unique][helpstring][dual][uuid][object] */
  2313. EXTERN_C const IID IID_IAttribute;
  2314. #if defined(__cplusplus) && !defined(CINTERFACE)
  2315. MIDL_INTERFACE("B17A8D78-B5A6-45F7-BA21-01AB94B08415")
  2316. IAttribute : public IDispatch
  2317. {
  2318. public:
  2319. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Name(
  2320. /* [retval][out] */ CAPICOM_ATTRIBUTE *pVal) = 0;
  2321. virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Name(
  2322. /* [in] */ CAPICOM_ATTRIBUTE newVal) = 0;
  2323. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Value(
  2324. /* [retval][out] */ VARIANT *pVal) = 0;
  2325. virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Value(
  2326. /* [in] */ VARIANT newVal) = 0;
  2327. };
  2328. #else /* C style interface */
  2329. typedef struct IAttributeVtbl
  2330. {
  2331. BEGIN_INTERFACE
  2332. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  2333. IAttribute * This,
  2334. /* [in] */ REFIID riid,
  2335. /* [iid_is][out] */ void **ppvObject);
  2336. ULONG ( STDMETHODCALLTYPE *AddRef )(
  2337. IAttribute * This);
  2338. ULONG ( STDMETHODCALLTYPE *Release )(
  2339. IAttribute * This);
  2340. HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
  2341. IAttribute * This,
  2342. /* [out] */ UINT *pctinfo);
  2343. HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
  2344. IAttribute * This,
  2345. /* [in] */ UINT iTInfo,
  2346. /* [in] */ LCID lcid,
  2347. /* [out] */ ITypeInfo **ppTInfo);
  2348. HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
  2349. IAttribute * This,
  2350. /* [in] */ REFIID riid,
  2351. /* [size_is][in] */ LPOLESTR *rgszNames,
  2352. /* [in] */ UINT cNames,
  2353. /* [in] */ LCID lcid,
  2354. /* [size_is][out] */ DISPID *rgDispId);
  2355. /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
  2356. IAttribute * This,
  2357. /* [in] */ DISPID dispIdMember,
  2358. /* [in] */ REFIID riid,
  2359. /* [in] */ LCID lcid,
  2360. /* [in] */ WORD wFlags,
  2361. /* [out][in] */ DISPPARAMS *pDispParams,
  2362. /* [out] */ VARIANT *pVarResult,
  2363. /* [out] */ EXCEPINFO *pExcepInfo,
  2364. /* [out] */ UINT *puArgErr);
  2365. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Name )(
  2366. IAttribute * This,
  2367. /* [retval][out] */ CAPICOM_ATTRIBUTE *pVal);
  2368. /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Name )(
  2369. IAttribute * This,
  2370. /* [in] */ CAPICOM_ATTRIBUTE newVal);
  2371. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Value )(
  2372. IAttribute * This,
  2373. /* [retval][out] */ VARIANT *pVal);
  2374. /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Value )(
  2375. IAttribute * This,
  2376. /* [in] */ VARIANT newVal);
  2377. END_INTERFACE
  2378. } IAttributeVtbl;
  2379. interface IAttribute
  2380. {
  2381. CONST_VTBL struct IAttributeVtbl *lpVtbl;
  2382. };
  2383. #ifdef COBJMACROS
  2384. #define IAttribute_QueryInterface(This,riid,ppvObject) \
  2385. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2386. #define IAttribute_AddRef(This) \
  2387. (This)->lpVtbl -> AddRef(This)
  2388. #define IAttribute_Release(This) \
  2389. (This)->lpVtbl -> Release(This)
  2390. #define IAttribute_GetTypeInfoCount(This,pctinfo) \
  2391. (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  2392. #define IAttribute_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
  2393. (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  2394. #define IAttribute_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
  2395. (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  2396. #define IAttribute_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
  2397. (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  2398. #define IAttribute_get_Name(This,pVal) \
  2399. (This)->lpVtbl -> get_Name(This,pVal)
  2400. #define IAttribute_put_Name(This,newVal) \
  2401. (This)->lpVtbl -> put_Name(This,newVal)
  2402. #define IAttribute_get_Value(This,pVal) \
  2403. (This)->lpVtbl -> get_Value(This,pVal)
  2404. #define IAttribute_put_Value(This,newVal) \
  2405. (This)->lpVtbl -> put_Value(This,newVal)
  2406. #endif /* COBJMACROS */
  2407. #endif /* C style interface */
  2408. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IAttribute_get_Name_Proxy(
  2409. IAttribute * This,
  2410. /* [retval][out] */ CAPICOM_ATTRIBUTE *pVal);
  2411. void __RPC_STUB IAttribute_get_Name_Stub(
  2412. IRpcStubBuffer *This,
  2413. IRpcChannelBuffer *_pRpcChannelBuffer,
  2414. PRPC_MESSAGE _pRpcMessage,
  2415. DWORD *_pdwStubPhase);
  2416. /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IAttribute_put_Name_Proxy(
  2417. IAttribute * This,
  2418. /* [in] */ CAPICOM_ATTRIBUTE newVal);
  2419. void __RPC_STUB IAttribute_put_Name_Stub(
  2420. IRpcStubBuffer *This,
  2421. IRpcChannelBuffer *_pRpcChannelBuffer,
  2422. PRPC_MESSAGE _pRpcMessage,
  2423. DWORD *_pdwStubPhase);
  2424. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IAttribute_get_Value_Proxy(
  2425. IAttribute * This,
  2426. /* [retval][out] */ VARIANT *pVal);
  2427. void __RPC_STUB IAttribute_get_Value_Stub(
  2428. IRpcStubBuffer *This,
  2429. IRpcChannelBuffer *_pRpcChannelBuffer,
  2430. PRPC_MESSAGE _pRpcMessage,
  2431. DWORD *_pdwStubPhase);
  2432. /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IAttribute_put_Value_Proxy(
  2433. IAttribute * This,
  2434. /* [in] */ VARIANT newVal);
  2435. void __RPC_STUB IAttribute_put_Value_Stub(
  2436. IRpcStubBuffer *This,
  2437. IRpcChannelBuffer *_pRpcChannelBuffer,
  2438. PRPC_MESSAGE _pRpcMessage,
  2439. DWORD *_pdwStubPhase);
  2440. #endif /* __IAttribute_INTERFACE_DEFINED__ */
  2441. #ifndef __IAttributes_INTERFACE_DEFINED__
  2442. #define __IAttributes_INTERFACE_DEFINED__
  2443. /* interface IAttributes */
  2444. /* [unique][helpstring][dual][uuid][object] */
  2445. EXTERN_C const IID IID_IAttributes;
  2446. #if defined(__cplusplus) && !defined(CINTERFACE)
  2447. MIDL_INTERFACE("6ADC653E-D5B9-422A-991A-A2B0119CEDAC")
  2448. IAttributes : public IDispatch
  2449. {
  2450. public:
  2451. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Item(
  2452. /* [in] */ long Index,
  2453. /* [retval][out] */ VARIANT *pVal) = 0;
  2454. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Count(
  2455. /* [retval][out] */ long *pVal) = 0;
  2456. virtual /* [restricted][helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum(
  2457. /* [retval][out] */ LPUNKNOWN *pVal) = 0;
  2458. virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Add(
  2459. /* [in] */ IAttribute *pVal) = 0;
  2460. virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Remove(
  2461. /* [in] */ long Val) = 0;
  2462. virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
  2463. };
  2464. #else /* C style interface */
  2465. typedef struct IAttributesVtbl
  2466. {
  2467. BEGIN_INTERFACE
  2468. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  2469. IAttributes * This,
  2470. /* [in] */ REFIID riid,
  2471. /* [iid_is][out] */ void **ppvObject);
  2472. ULONG ( STDMETHODCALLTYPE *AddRef )(
  2473. IAttributes * This);
  2474. ULONG ( STDMETHODCALLTYPE *Release )(
  2475. IAttributes * This);
  2476. HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
  2477. IAttributes * This,
  2478. /* [out] */ UINT *pctinfo);
  2479. HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
  2480. IAttributes * This,
  2481. /* [in] */ UINT iTInfo,
  2482. /* [in] */ LCID lcid,
  2483. /* [out] */ ITypeInfo **ppTInfo);
  2484. HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
  2485. IAttributes * This,
  2486. /* [in] */ REFIID riid,
  2487. /* [size_is][in] */ LPOLESTR *rgszNames,
  2488. /* [in] */ UINT cNames,
  2489. /* [in] */ LCID lcid,
  2490. /* [size_is][out] */ DISPID *rgDispId);
  2491. /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
  2492. IAttributes * This,
  2493. /* [in] */ DISPID dispIdMember,
  2494. /* [in] */ REFIID riid,
  2495. /* [in] */ LCID lcid,
  2496. /* [in] */ WORD wFlags,
  2497. /* [out][in] */ DISPPARAMS *pDispParams,
  2498. /* [out] */ VARIANT *pVarResult,
  2499. /* [out] */ EXCEPINFO *pExcepInfo,
  2500. /* [out] */ UINT *puArgErr);
  2501. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )(
  2502. IAttributes * This,
  2503. /* [in] */ long Index,
  2504. /* [retval][out] */ VARIANT *pVal);
  2505. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )(
  2506. IAttributes * This,
  2507. /* [retval][out] */ long *pVal);
  2508. /* [restricted][helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )(
  2509. IAttributes * This,
  2510. /* [retval][out] */ LPUNKNOWN *pVal);
  2511. /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Add )(
  2512. IAttributes * This,
  2513. /* [in] */ IAttribute *pVal);
  2514. /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Remove )(
  2515. IAttributes * This,
  2516. /* [in] */ long Val);
  2517. /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Clear )(
  2518. IAttributes * This);
  2519. END_INTERFACE
  2520. } IAttributesVtbl;
  2521. interface IAttributes
  2522. {
  2523. CONST_VTBL struct IAttributesVtbl *lpVtbl;
  2524. };
  2525. #ifdef COBJMACROS
  2526. #define IAttributes_QueryInterface(This,riid,ppvObject) \
  2527. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2528. #define IAttributes_AddRef(This) \
  2529. (This)->lpVtbl -> AddRef(This)
  2530. #define IAttributes_Release(This) \
  2531. (This)->lpVtbl -> Release(This)
  2532. #define IAttributes_GetTypeInfoCount(This,pctinfo) \
  2533. (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  2534. #define IAttributes_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
  2535. (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  2536. #define IAttributes_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
  2537. (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  2538. #define IAttributes_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
  2539. (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  2540. #define IAttributes_get_Item(This,Index,pVal) \
  2541. (This)->lpVtbl -> get_Item(This,Index,pVal)
  2542. #define IAttributes_get_Count(This,pVal) \
  2543. (This)->lpVtbl -> get_Count(This,pVal)
  2544. #define IAttributes_get__NewEnum(This,pVal) \
  2545. (This)->lpVtbl -> get__NewEnum(This,pVal)
  2546. #define IAttributes_Add(This,pVal) \
  2547. (This)->lpVtbl -> Add(This,pVal)
  2548. #define IAttributes_Remove(This,Val) \
  2549. (This)->lpVtbl -> Remove(This,Val)
  2550. #define IAttributes_Clear(This) \
  2551. (This)->lpVtbl -> Clear(This)
  2552. #endif /* COBJMACROS */
  2553. #endif /* C style interface */
  2554. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IAttributes_get_Item_Proxy(
  2555. IAttributes * This,
  2556. /* [in] */ long Index,
  2557. /* [retval][out] */ VARIANT *pVal);
  2558. void __RPC_STUB IAttributes_get_Item_Stub(
  2559. IRpcStubBuffer *This,
  2560. IRpcChannelBuffer *_pRpcChannelBuffer,
  2561. PRPC_MESSAGE _pRpcMessage,
  2562. DWORD *_pdwStubPhase);
  2563. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IAttributes_get_Count_Proxy(
  2564. IAttributes * This,
  2565. /* [retval][out] */ long *pVal);
  2566. void __RPC_STUB IAttributes_get_Count_Stub(
  2567. IRpcStubBuffer *This,
  2568. IRpcChannelBuffer *_pRpcChannelBuffer,
  2569. PRPC_MESSAGE _pRpcMessage,
  2570. DWORD *_pdwStubPhase);
  2571. /* [restricted][helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IAttributes_get__NewEnum_Proxy(
  2572. IAttributes * This,
  2573. /* [retval][out] */ LPUNKNOWN *pVal);
  2574. void __RPC_STUB IAttributes_get__NewEnum_Stub(
  2575. IRpcStubBuffer *This,
  2576. IRpcChannelBuffer *_pRpcChannelBuffer,
  2577. PRPC_MESSAGE _pRpcMessage,
  2578. DWORD *_pdwStubPhase);
  2579. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IAttributes_Add_Proxy(
  2580. IAttributes * This,
  2581. /* [in] */ IAttribute *pVal);
  2582. void __RPC_STUB IAttributes_Add_Stub(
  2583. IRpcStubBuffer *This,
  2584. IRpcChannelBuffer *_pRpcChannelBuffer,
  2585. PRPC_MESSAGE _pRpcMessage,
  2586. DWORD *_pdwStubPhase);
  2587. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IAttributes_Remove_Proxy(
  2588. IAttributes * This,
  2589. /* [in] */ long Val);
  2590. void __RPC_STUB IAttributes_Remove_Stub(
  2591. IRpcStubBuffer *This,
  2592. IRpcChannelBuffer *_pRpcChannelBuffer,
  2593. PRPC_MESSAGE _pRpcMessage,
  2594. DWORD *_pdwStubPhase);
  2595. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IAttributes_Clear_Proxy(
  2596. IAttributes * This);
  2597. void __RPC_STUB IAttributes_Clear_Stub(
  2598. IRpcStubBuffer *This,
  2599. IRpcChannelBuffer *_pRpcChannelBuffer,
  2600. PRPC_MESSAGE _pRpcMessage,
  2601. DWORD *_pdwStubPhase);
  2602. #endif /* __IAttributes_INTERFACE_DEFINED__ */
  2603. #ifndef __ISigner_INTERFACE_DEFINED__
  2604. #define __ISigner_INTERFACE_DEFINED__
  2605. /* interface ISigner */
  2606. /* [unique][helpstring][dual][uuid][object] */
  2607. EXTERN_C const IID IID_ISigner;
  2608. #if defined(__cplusplus) && !defined(CINTERFACE)
  2609. MIDL_INTERFACE("51017B88-1913-49AD-82BE-6BB7C417DCF2")
  2610. ISigner : public IDispatch
  2611. {
  2612. public:
  2613. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Certificate(
  2614. /* [retval][out] */ ICertificate **pVal) = 0;
  2615. virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Certificate(
  2616. /* [in] */ ICertificate *newVal) = 0;
  2617. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_AuthenticatedAttributes(
  2618. /* [retval][out] */ IAttributes **pVal) = 0;
  2619. };
  2620. #else /* C style interface */
  2621. typedef struct ISignerVtbl
  2622. {
  2623. BEGIN_INTERFACE
  2624. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  2625. ISigner * This,
  2626. /* [in] */ REFIID riid,
  2627. /* [iid_is][out] */ void **ppvObject);
  2628. ULONG ( STDMETHODCALLTYPE *AddRef )(
  2629. ISigner * This);
  2630. ULONG ( STDMETHODCALLTYPE *Release )(
  2631. ISigner * This);
  2632. HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
  2633. ISigner * This,
  2634. /* [out] */ UINT *pctinfo);
  2635. HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
  2636. ISigner * This,
  2637. /* [in] */ UINT iTInfo,
  2638. /* [in] */ LCID lcid,
  2639. /* [out] */ ITypeInfo **ppTInfo);
  2640. HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
  2641. ISigner * This,
  2642. /* [in] */ REFIID riid,
  2643. /* [size_is][in] */ LPOLESTR *rgszNames,
  2644. /* [in] */ UINT cNames,
  2645. /* [in] */ LCID lcid,
  2646. /* [size_is][out] */ DISPID *rgDispId);
  2647. /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
  2648. ISigner * This,
  2649. /* [in] */ DISPID dispIdMember,
  2650. /* [in] */ REFIID riid,
  2651. /* [in] */ LCID lcid,
  2652. /* [in] */ WORD wFlags,
  2653. /* [out][in] */ DISPPARAMS *pDispParams,
  2654. /* [out] */ VARIANT *pVarResult,
  2655. /* [out] */ EXCEPINFO *pExcepInfo,
  2656. /* [out] */ UINT *puArgErr);
  2657. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Certificate )(
  2658. ISigner * This,
  2659. /* [retval][out] */ ICertificate **pVal);
  2660. /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Certificate )(
  2661. ISigner * This,
  2662. /* [in] */ ICertificate *newVal);
  2663. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AuthenticatedAttributes )(
  2664. ISigner * This,
  2665. /* [retval][out] */ IAttributes **pVal);
  2666. END_INTERFACE
  2667. } ISignerVtbl;
  2668. interface ISigner
  2669. {
  2670. CONST_VTBL struct ISignerVtbl *lpVtbl;
  2671. };
  2672. #ifdef COBJMACROS
  2673. #define ISigner_QueryInterface(This,riid,ppvObject) \
  2674. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2675. #define ISigner_AddRef(This) \
  2676. (This)->lpVtbl -> AddRef(This)
  2677. #define ISigner_Release(This) \
  2678. (This)->lpVtbl -> Release(This)
  2679. #define ISigner_GetTypeInfoCount(This,pctinfo) \
  2680. (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  2681. #define ISigner_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
  2682. (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  2683. #define ISigner_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
  2684. (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  2685. #define ISigner_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
  2686. (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  2687. #define ISigner_get_Certificate(This,pVal) \
  2688. (This)->lpVtbl -> get_Certificate(This,pVal)
  2689. #define ISigner_put_Certificate(This,newVal) \
  2690. (This)->lpVtbl -> put_Certificate(This,newVal)
  2691. #define ISigner_get_AuthenticatedAttributes(This,pVal) \
  2692. (This)->lpVtbl -> get_AuthenticatedAttributes(This,pVal)
  2693. #endif /* COBJMACROS */
  2694. #endif /* C style interface */
  2695. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ISigner_get_Certificate_Proxy(
  2696. ISigner * This,
  2697. /* [retval][out] */ ICertificate **pVal);
  2698. void __RPC_STUB ISigner_get_Certificate_Stub(
  2699. IRpcStubBuffer *This,
  2700. IRpcChannelBuffer *_pRpcChannelBuffer,
  2701. PRPC_MESSAGE _pRpcMessage,
  2702. DWORD *_pdwStubPhase);
  2703. /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ISigner_put_Certificate_Proxy(
  2704. ISigner * This,
  2705. /* [in] */ ICertificate *newVal);
  2706. void __RPC_STUB ISigner_put_Certificate_Stub(
  2707. IRpcStubBuffer *This,
  2708. IRpcChannelBuffer *_pRpcChannelBuffer,
  2709. PRPC_MESSAGE _pRpcMessage,
  2710. DWORD *_pdwStubPhase);
  2711. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ISigner_get_AuthenticatedAttributes_Proxy(
  2712. ISigner * This,
  2713. /* [retval][out] */ IAttributes **pVal);
  2714. void __RPC_STUB ISigner_get_AuthenticatedAttributes_Stub(
  2715. IRpcStubBuffer *This,
  2716. IRpcChannelBuffer *_pRpcChannelBuffer,
  2717. PRPC_MESSAGE _pRpcMessage,
  2718. DWORD *_pdwStubPhase);
  2719. #endif /* __ISigner_INTERFACE_DEFINED__ */
  2720. #ifndef __ISigners_INTERFACE_DEFINED__
  2721. #define __ISigners_INTERFACE_DEFINED__
  2722. /* interface ISigners */
  2723. /* [unique][helpstring][dual][uuid][object] */
  2724. EXTERN_C const IID IID_ISigners;
  2725. #if defined(__cplusplus) && !defined(CINTERFACE)
  2726. MIDL_INTERFACE("5A0780F8-9E6B-4BB0-BF54-87CD9627A8B4")
  2727. ISigners : public IDispatch
  2728. {
  2729. public:
  2730. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Item(
  2731. /* [in] */ long Index,
  2732. /* [retval][out] */ VARIANT *pVal) = 0;
  2733. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Count(
  2734. /* [retval][out] */ long *pVal) = 0;
  2735. virtual /* [restricted][helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum(
  2736. /* [retval][out] */ LPUNKNOWN *pVal) = 0;
  2737. };
  2738. #else /* C style interface */
  2739. typedef struct ISignersVtbl
  2740. {
  2741. BEGIN_INTERFACE
  2742. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  2743. ISigners * This,
  2744. /* [in] */ REFIID riid,
  2745. /* [iid_is][out] */ void **ppvObject);
  2746. ULONG ( STDMETHODCALLTYPE *AddRef )(
  2747. ISigners * This);
  2748. ULONG ( STDMETHODCALLTYPE *Release )(
  2749. ISigners * This);
  2750. HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
  2751. ISigners * This,
  2752. /* [out] */ UINT *pctinfo);
  2753. HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
  2754. ISigners * This,
  2755. /* [in] */ UINT iTInfo,
  2756. /* [in] */ LCID lcid,
  2757. /* [out] */ ITypeInfo **ppTInfo);
  2758. HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
  2759. ISigners * This,
  2760. /* [in] */ REFIID riid,
  2761. /* [size_is][in] */ LPOLESTR *rgszNames,
  2762. /* [in] */ UINT cNames,
  2763. /* [in] */ LCID lcid,
  2764. /* [size_is][out] */ DISPID *rgDispId);
  2765. /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
  2766. ISigners * This,
  2767. /* [in] */ DISPID dispIdMember,
  2768. /* [in] */ REFIID riid,
  2769. /* [in] */ LCID lcid,
  2770. /* [in] */ WORD wFlags,
  2771. /* [out][in] */ DISPPARAMS *pDispParams,
  2772. /* [out] */ VARIANT *pVarResult,
  2773. /* [out] */ EXCEPINFO *pExcepInfo,
  2774. /* [out] */ UINT *puArgErr);
  2775. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )(
  2776. ISigners * This,
  2777. /* [in] */ long Index,
  2778. /* [retval][out] */ VARIANT *pVal);
  2779. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )(
  2780. ISigners * This,
  2781. /* [retval][out] */ long *pVal);
  2782. /* [restricted][helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )(
  2783. ISigners * This,
  2784. /* [retval][out] */ LPUNKNOWN *pVal);
  2785. END_INTERFACE
  2786. } ISignersVtbl;
  2787. interface ISigners
  2788. {
  2789. CONST_VTBL struct ISignersVtbl *lpVtbl;
  2790. };
  2791. #ifdef COBJMACROS
  2792. #define ISigners_QueryInterface(This,riid,ppvObject) \
  2793. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2794. #define ISigners_AddRef(This) \
  2795. (This)->lpVtbl -> AddRef(This)
  2796. #define ISigners_Release(This) \
  2797. (This)->lpVtbl -> Release(This)
  2798. #define ISigners_GetTypeInfoCount(This,pctinfo) \
  2799. (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  2800. #define ISigners_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
  2801. (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  2802. #define ISigners_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
  2803. (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  2804. #define ISigners_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
  2805. (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  2806. #define ISigners_get_Item(This,Index,pVal) \
  2807. (This)->lpVtbl -> get_Item(This,Index,pVal)
  2808. #define ISigners_get_Count(This,pVal) \
  2809. (This)->lpVtbl -> get_Count(This,pVal)
  2810. #define ISigners_get__NewEnum(This,pVal) \
  2811. (This)->lpVtbl -> get__NewEnum(This,pVal)
  2812. #endif /* COBJMACROS */
  2813. #endif /* C style interface */
  2814. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ISigners_get_Item_Proxy(
  2815. ISigners * This,
  2816. /* [in] */ long Index,
  2817. /* [retval][out] */ VARIANT *pVal);
  2818. void __RPC_STUB ISigners_get_Item_Stub(
  2819. IRpcStubBuffer *This,
  2820. IRpcChannelBuffer *_pRpcChannelBuffer,
  2821. PRPC_MESSAGE _pRpcMessage,
  2822. DWORD *_pdwStubPhase);
  2823. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ISigners_get_Count_Proxy(
  2824. ISigners * This,
  2825. /* [retval][out] */ long *pVal);
  2826. void __RPC_STUB ISigners_get_Count_Stub(
  2827. IRpcStubBuffer *This,
  2828. IRpcChannelBuffer *_pRpcChannelBuffer,
  2829. PRPC_MESSAGE _pRpcMessage,
  2830. DWORD *_pdwStubPhase);
  2831. /* [restricted][helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ISigners_get__NewEnum_Proxy(
  2832. ISigners * This,
  2833. /* [retval][out] */ LPUNKNOWN *pVal);
  2834. void __RPC_STUB ISigners_get__NewEnum_Stub(
  2835. IRpcStubBuffer *This,
  2836. IRpcChannelBuffer *_pRpcChannelBuffer,
  2837. PRPC_MESSAGE _pRpcMessage,
  2838. DWORD *_pdwStubPhase);
  2839. #endif /* __ISigners_INTERFACE_DEFINED__ */
  2840. #ifndef __ISignedData_INTERFACE_DEFINED__
  2841. #define __ISignedData_INTERFACE_DEFINED__
  2842. /* interface ISignedData */
  2843. /* [unique][helpstring][dual][uuid][object] */
  2844. EXTERN_C const IID IID_ISignedData;
  2845. #if defined(__cplusplus) && !defined(CINTERFACE)
  2846. MIDL_INTERFACE("AE9C454B-FC65-4C10-B130-CD9B45BA948B")
  2847. ISignedData : public IDispatch
  2848. {
  2849. public:
  2850. virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Content(
  2851. /* [in] */ BSTR newVal) = 0;
  2852. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Content(
  2853. /* [retval][out] */ BSTR *pVal) = 0;
  2854. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Signers(
  2855. /* [retval][out] */ ISigners **pVal) = 0;
  2856. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Certificates(
  2857. /* [retval][out] */ ICertificates **pVal) = 0;
  2858. virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Sign(
  2859. /* [defaultvalue][in] */ ISigner *pSigner,
  2860. /* [defaultvalue][in] */ VARIANT_BOOL bDetached,
  2861. /* [defaultvalue][in] */ CAPICOM_ENCODING_TYPE EncodingType,
  2862. /* [retval][out] */ BSTR *pVal) = 0;
  2863. virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CoSign(
  2864. /* [defaultvalue][in] */ ISigner *pSigner,
  2865. /* [defaultvalue][in] */ CAPICOM_ENCODING_TYPE EncodingType,
  2866. /* [retval][out] */ BSTR *pVal) = 0;
  2867. virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Verify(
  2868. /* [in] */ BSTR SignedMessage,
  2869. /* [defaultvalue][in] */ VARIANT_BOOL bDetached = 0,
  2870. /* [defaultvalue][in] */ CAPICOM_SIGNED_DATA_VERIFY_FLAG VerifyFlag = CAPICOM_VERIFY_SIGNATURE_AND_CERTIFICATE) = 0;
  2871. };
  2872. #else /* C style interface */
  2873. typedef struct ISignedDataVtbl
  2874. {
  2875. BEGIN_INTERFACE
  2876. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  2877. ISignedData * This,
  2878. /* [in] */ REFIID riid,
  2879. /* [iid_is][out] */ void **ppvObject);
  2880. ULONG ( STDMETHODCALLTYPE *AddRef )(
  2881. ISignedData * This);
  2882. ULONG ( STDMETHODCALLTYPE *Release )(
  2883. ISignedData * This);
  2884. HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
  2885. ISignedData * This,
  2886. /* [out] */ UINT *pctinfo);
  2887. HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
  2888. ISignedData * This,
  2889. /* [in] */ UINT iTInfo,
  2890. /* [in] */ LCID lcid,
  2891. /* [out] */ ITypeInfo **ppTInfo);
  2892. HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
  2893. ISignedData * This,
  2894. /* [in] */ REFIID riid,
  2895. /* [size_is][in] */ LPOLESTR *rgszNames,
  2896. /* [in] */ UINT cNames,
  2897. /* [in] */ LCID lcid,
  2898. /* [size_is][out] */ DISPID *rgDispId);
  2899. /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
  2900. ISignedData * This,
  2901. /* [in] */ DISPID dispIdMember,
  2902. /* [in] */ REFIID riid,
  2903. /* [in] */ LCID lcid,
  2904. /* [in] */ WORD wFlags,
  2905. /* [out][in] */ DISPPARAMS *pDispParams,
  2906. /* [out] */ VARIANT *pVarResult,
  2907. /* [out] */ EXCEPINFO *pExcepInfo,
  2908. /* [out] */ UINT *puArgErr);
  2909. /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Content )(
  2910. ISignedData * This,
  2911. /* [in] */ BSTR newVal);
  2912. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Content )(
  2913. ISignedData * This,
  2914. /* [retval][out] */ BSTR *pVal);
  2915. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Signers )(
  2916. ISignedData * This,
  2917. /* [retval][out] */ ISigners **pVal);
  2918. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Certificates )(
  2919. ISignedData * This,
  2920. /* [retval][out] */ ICertificates **pVal);
  2921. /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Sign )(
  2922. ISignedData * This,
  2923. /* [defaultvalue][in] */ ISigner *pSigner,
  2924. /* [defaultvalue][in] */ VARIANT_BOOL bDetached,
  2925. /* [defaultvalue][in] */ CAPICOM_ENCODING_TYPE EncodingType,
  2926. /* [retval][out] */ BSTR *pVal);
  2927. /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CoSign )(
  2928. ISignedData * This,
  2929. /* [defaultvalue][in] */ ISigner *pSigner,
  2930. /* [defaultvalue][in] */ CAPICOM_ENCODING_TYPE EncodingType,
  2931. /* [retval][out] */ BSTR *pVal);
  2932. /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Verify )(
  2933. ISignedData * This,
  2934. /* [in] */ BSTR SignedMessage,
  2935. /* [defaultvalue][in] */ VARIANT_BOOL bDetached,
  2936. /* [defaultvalue][in] */ CAPICOM_SIGNED_DATA_VERIFY_FLAG VerifyFlag);
  2937. END_INTERFACE
  2938. } ISignedDataVtbl;
  2939. interface ISignedData
  2940. {
  2941. CONST_VTBL struct ISignedDataVtbl *lpVtbl;
  2942. };
  2943. #ifdef COBJMACROS
  2944. #define ISignedData_QueryInterface(This,riid,ppvObject) \
  2945. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2946. #define ISignedData_AddRef(This) \
  2947. (This)->lpVtbl -> AddRef(This)
  2948. #define ISignedData_Release(This) \
  2949. (This)->lpVtbl -> Release(This)
  2950. #define ISignedData_GetTypeInfoCount(This,pctinfo) \
  2951. (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  2952. #define ISignedData_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
  2953. (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  2954. #define ISignedData_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
  2955. (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  2956. #define ISignedData_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
  2957. (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  2958. #define ISignedData_put_Content(This,newVal) \
  2959. (This)->lpVtbl -> put_Content(This,newVal)
  2960. #define ISignedData_get_Content(This,pVal) \
  2961. (This)->lpVtbl -> get_Content(This,pVal)
  2962. #define ISignedData_get_Signers(This,pVal) \
  2963. (This)->lpVtbl -> get_Signers(This,pVal)
  2964. #define ISignedData_get_Certificates(This,pVal) \
  2965. (This)->lpVtbl -> get_Certificates(This,pVal)
  2966. #define ISignedData_Sign(This,pSigner,bDetached,EncodingType,pVal) \
  2967. (This)->lpVtbl -> Sign(This,pSigner,bDetached,EncodingType,pVal)
  2968. #define ISignedData_CoSign(This,pSigner,EncodingType,pVal) \
  2969. (This)->lpVtbl -> CoSign(This,pSigner,EncodingType,pVal)
  2970. #define ISignedData_Verify(This,SignedMessage,bDetached,VerifyFlag) \
  2971. (This)->lpVtbl -> Verify(This,SignedMessage,bDetached,VerifyFlag)
  2972. #endif /* COBJMACROS */
  2973. #endif /* C style interface */
  2974. /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ISignedData_put_Content_Proxy(
  2975. ISignedData * This,
  2976. /* [in] */ BSTR newVal);
  2977. void __RPC_STUB ISignedData_put_Content_Stub(
  2978. IRpcStubBuffer *This,
  2979. IRpcChannelBuffer *_pRpcChannelBuffer,
  2980. PRPC_MESSAGE _pRpcMessage,
  2981. DWORD *_pdwStubPhase);
  2982. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ISignedData_get_Content_Proxy(
  2983. ISignedData * This,
  2984. /* [retval][out] */ BSTR *pVal);
  2985. void __RPC_STUB ISignedData_get_Content_Stub(
  2986. IRpcStubBuffer *This,
  2987. IRpcChannelBuffer *_pRpcChannelBuffer,
  2988. PRPC_MESSAGE _pRpcMessage,
  2989. DWORD *_pdwStubPhase);
  2990. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ISignedData_get_Signers_Proxy(
  2991. ISignedData * This,
  2992. /* [retval][out] */ ISigners **pVal);
  2993. void __RPC_STUB ISignedData_get_Signers_Stub(
  2994. IRpcStubBuffer *This,
  2995. IRpcChannelBuffer *_pRpcChannelBuffer,
  2996. PRPC_MESSAGE _pRpcMessage,
  2997. DWORD *_pdwStubPhase);
  2998. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ISignedData_get_Certificates_Proxy(
  2999. ISignedData * This,
  3000. /* [retval][out] */ ICertificates **pVal);
  3001. void __RPC_STUB ISignedData_get_Certificates_Stub(
  3002. IRpcStubBuffer *This,
  3003. IRpcChannelBuffer *_pRpcChannelBuffer,
  3004. PRPC_MESSAGE _pRpcMessage,
  3005. DWORD *_pdwStubPhase);
  3006. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ISignedData_Sign_Proxy(
  3007. ISignedData * This,
  3008. /* [defaultvalue][in] */ ISigner *pSigner,
  3009. /* [defaultvalue][in] */ VARIANT_BOOL bDetached,
  3010. /* [defaultvalue][in] */ CAPICOM_ENCODING_TYPE EncodingType,
  3011. /* [retval][out] */ BSTR *pVal);
  3012. void __RPC_STUB ISignedData_Sign_Stub(
  3013. IRpcStubBuffer *This,
  3014. IRpcChannelBuffer *_pRpcChannelBuffer,
  3015. PRPC_MESSAGE _pRpcMessage,
  3016. DWORD *_pdwStubPhase);
  3017. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ISignedData_CoSign_Proxy(
  3018. ISignedData * This,
  3019. /* [defaultvalue][in] */ ISigner *pSigner,
  3020. /* [defaultvalue][in] */ CAPICOM_ENCODING_TYPE EncodingType,
  3021. /* [retval][out] */ BSTR *pVal);
  3022. void __RPC_STUB ISignedData_CoSign_Stub(
  3023. IRpcStubBuffer *This,
  3024. IRpcChannelBuffer *_pRpcChannelBuffer,
  3025. PRPC_MESSAGE _pRpcMessage,
  3026. DWORD *_pdwStubPhase);
  3027. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ISignedData_Verify_Proxy(
  3028. ISignedData * This,
  3029. /* [in] */ BSTR SignedMessage,
  3030. /* [defaultvalue][in] */ VARIANT_BOOL bDetached,
  3031. /* [defaultvalue][in] */ CAPICOM_SIGNED_DATA_VERIFY_FLAG VerifyFlag);
  3032. void __RPC_STUB ISignedData_Verify_Stub(
  3033. IRpcStubBuffer *This,
  3034. IRpcChannelBuffer *_pRpcChannelBuffer,
  3035. PRPC_MESSAGE _pRpcMessage,
  3036. DWORD *_pdwStubPhase);
  3037. #endif /* __ISignedData_INTERFACE_DEFINED__ */
  3038. #ifndef __IAlgorithm_INTERFACE_DEFINED__
  3039. #define __IAlgorithm_INTERFACE_DEFINED__
  3040. /* interface IAlgorithm */
  3041. /* [unique][helpstring][dual][uuid][object] */
  3042. EXTERN_C const IID IID_IAlgorithm;
  3043. #if defined(__cplusplus) && !defined(CINTERFACE)
  3044. MIDL_INTERFACE("BF3D04A9-B0DA-4153-B45E-6CCFA5AC715B")
  3045. IAlgorithm : public IDispatch
  3046. {
  3047. public:
  3048. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Name(
  3049. /* [retval][out] */ CAPICOM_ENCRYPTION_ALGORITHM *pVal) = 0;
  3050. virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Name(
  3051. /* [in] */ CAPICOM_ENCRYPTION_ALGORITHM newVal) = 0;
  3052. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_KeyLength(
  3053. /* [retval][out] */ CAPICOM_ENCRYPTION_KEY_LENGTH *pVal) = 0;
  3054. virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_KeyLength(
  3055. /* [in] */ CAPICOM_ENCRYPTION_KEY_LENGTH newVal) = 0;
  3056. };
  3057. #else /* C style interface */
  3058. typedef struct IAlgorithmVtbl
  3059. {
  3060. BEGIN_INTERFACE
  3061. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  3062. IAlgorithm * This,
  3063. /* [in] */ REFIID riid,
  3064. /* [iid_is][out] */ void **ppvObject);
  3065. ULONG ( STDMETHODCALLTYPE *AddRef )(
  3066. IAlgorithm * This);
  3067. ULONG ( STDMETHODCALLTYPE *Release )(
  3068. IAlgorithm * This);
  3069. HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
  3070. IAlgorithm * This,
  3071. /* [out] */ UINT *pctinfo);
  3072. HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
  3073. IAlgorithm * This,
  3074. /* [in] */ UINT iTInfo,
  3075. /* [in] */ LCID lcid,
  3076. /* [out] */ ITypeInfo **ppTInfo);
  3077. HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
  3078. IAlgorithm * This,
  3079. /* [in] */ REFIID riid,
  3080. /* [size_is][in] */ LPOLESTR *rgszNames,
  3081. /* [in] */ UINT cNames,
  3082. /* [in] */ LCID lcid,
  3083. /* [size_is][out] */ DISPID *rgDispId);
  3084. /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
  3085. IAlgorithm * This,
  3086. /* [in] */ DISPID dispIdMember,
  3087. /* [in] */ REFIID riid,
  3088. /* [in] */ LCID lcid,
  3089. /* [in] */ WORD wFlags,
  3090. /* [out][in] */ DISPPARAMS *pDispParams,
  3091. /* [out] */ VARIANT *pVarResult,
  3092. /* [out] */ EXCEPINFO *pExcepInfo,
  3093. /* [out] */ UINT *puArgErr);
  3094. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Name )(
  3095. IAlgorithm * This,
  3096. /* [retval][out] */ CAPICOM_ENCRYPTION_ALGORITHM *pVal);
  3097. /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Name )(
  3098. IAlgorithm * This,
  3099. /* [in] */ CAPICOM_ENCRYPTION_ALGORITHM newVal);
  3100. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_KeyLength )(
  3101. IAlgorithm * This,
  3102. /* [retval][out] */ CAPICOM_ENCRYPTION_KEY_LENGTH *pVal);
  3103. /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_KeyLength )(
  3104. IAlgorithm * This,
  3105. /* [in] */ CAPICOM_ENCRYPTION_KEY_LENGTH newVal);
  3106. END_INTERFACE
  3107. } IAlgorithmVtbl;
  3108. interface IAlgorithm
  3109. {
  3110. CONST_VTBL struct IAlgorithmVtbl *lpVtbl;
  3111. };
  3112. #ifdef COBJMACROS
  3113. #define IAlgorithm_QueryInterface(This,riid,ppvObject) \
  3114. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  3115. #define IAlgorithm_AddRef(This) \
  3116. (This)->lpVtbl -> AddRef(This)
  3117. #define IAlgorithm_Release(This) \
  3118. (This)->lpVtbl -> Release(This)
  3119. #define IAlgorithm_GetTypeInfoCount(This,pctinfo) \
  3120. (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  3121. #define IAlgorithm_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
  3122. (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  3123. #define IAlgorithm_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
  3124. (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  3125. #define IAlgorithm_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
  3126. (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  3127. #define IAlgorithm_get_Name(This,pVal) \
  3128. (This)->lpVtbl -> get_Name(This,pVal)
  3129. #define IAlgorithm_put_Name(This,newVal) \
  3130. (This)->lpVtbl -> put_Name(This,newVal)
  3131. #define IAlgorithm_get_KeyLength(This,pVal) \
  3132. (This)->lpVtbl -> get_KeyLength(This,pVal)
  3133. #define IAlgorithm_put_KeyLength(This,newVal) \
  3134. (This)->lpVtbl -> put_KeyLength(This,newVal)
  3135. #endif /* COBJMACROS */
  3136. #endif /* C style interface */
  3137. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IAlgorithm_get_Name_Proxy(
  3138. IAlgorithm * This,
  3139. /* [retval][out] */ CAPICOM_ENCRYPTION_ALGORITHM *pVal);
  3140. void __RPC_STUB IAlgorithm_get_Name_Stub(
  3141. IRpcStubBuffer *This,
  3142. IRpcChannelBuffer *_pRpcChannelBuffer,
  3143. PRPC_MESSAGE _pRpcMessage,
  3144. DWORD *_pdwStubPhase);
  3145. /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IAlgorithm_put_Name_Proxy(
  3146. IAlgorithm * This,
  3147. /* [in] */ CAPICOM_ENCRYPTION_ALGORITHM newVal);
  3148. void __RPC_STUB IAlgorithm_put_Name_Stub(
  3149. IRpcStubBuffer *This,
  3150. IRpcChannelBuffer *_pRpcChannelBuffer,
  3151. PRPC_MESSAGE _pRpcMessage,
  3152. DWORD *_pdwStubPhase);
  3153. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IAlgorithm_get_KeyLength_Proxy(
  3154. IAlgorithm * This,
  3155. /* [retval][out] */ CAPICOM_ENCRYPTION_KEY_LENGTH *pVal);
  3156. void __RPC_STUB IAlgorithm_get_KeyLength_Stub(
  3157. IRpcStubBuffer *This,
  3158. IRpcChannelBuffer *_pRpcChannelBuffer,
  3159. PRPC_MESSAGE _pRpcMessage,
  3160. DWORD *_pdwStubPhase);
  3161. /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IAlgorithm_put_KeyLength_Proxy(
  3162. IAlgorithm * This,
  3163. /* [in] */ CAPICOM_ENCRYPTION_KEY_LENGTH newVal);
  3164. void __RPC_STUB IAlgorithm_put_KeyLength_Stub(
  3165. IRpcStubBuffer *This,
  3166. IRpcChannelBuffer *_pRpcChannelBuffer,
  3167. PRPC_MESSAGE _pRpcMessage,
  3168. DWORD *_pdwStubPhase);
  3169. #endif /* __IAlgorithm_INTERFACE_DEFINED__ */
  3170. #ifndef __IRecipients_INTERFACE_DEFINED__
  3171. #define __IRecipients_INTERFACE_DEFINED__
  3172. /* interface IRecipients */
  3173. /* [unique][helpstring][dual][uuid][object] */
  3174. EXTERN_C const IID IID_IRecipients;
  3175. #if defined(__cplusplus) && !defined(CINTERFACE)
  3176. MIDL_INTERFACE("A694C896-FC38-4C34-AE61-3B1A95984C14")
  3177. IRecipients : public IDispatch
  3178. {
  3179. public:
  3180. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Item(
  3181. /* [in] */ long Index,
  3182. /* [retval][out] */ VARIANT *pVal) = 0;
  3183. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Count(
  3184. /* [retval][out] */ long *pVal) = 0;
  3185. virtual /* [restricted][helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum(
  3186. /* [retval][out] */ LPUNKNOWN *pVal) = 0;
  3187. virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Add(
  3188. /* [in] */ ICertificate *pVal) = 0;
  3189. virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Remove(
  3190. /* [in] */ long Val) = 0;
  3191. virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
  3192. };
  3193. #else /* C style interface */
  3194. typedef struct IRecipientsVtbl
  3195. {
  3196. BEGIN_INTERFACE
  3197. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  3198. IRecipients * This,
  3199. /* [in] */ REFIID riid,
  3200. /* [iid_is][out] */ void **ppvObject);
  3201. ULONG ( STDMETHODCALLTYPE *AddRef )(
  3202. IRecipients * This);
  3203. ULONG ( STDMETHODCALLTYPE *Release )(
  3204. IRecipients * This);
  3205. HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
  3206. IRecipients * This,
  3207. /* [out] */ UINT *pctinfo);
  3208. HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
  3209. IRecipients * This,
  3210. /* [in] */ UINT iTInfo,
  3211. /* [in] */ LCID lcid,
  3212. /* [out] */ ITypeInfo **ppTInfo);
  3213. HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
  3214. IRecipients * This,
  3215. /* [in] */ REFIID riid,
  3216. /* [size_is][in] */ LPOLESTR *rgszNames,
  3217. /* [in] */ UINT cNames,
  3218. /* [in] */ LCID lcid,
  3219. /* [size_is][out] */ DISPID *rgDispId);
  3220. /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
  3221. IRecipients * This,
  3222. /* [in] */ DISPID dispIdMember,
  3223. /* [in] */ REFIID riid,
  3224. /* [in] */ LCID lcid,
  3225. /* [in] */ WORD wFlags,
  3226. /* [out][in] */ DISPPARAMS *pDispParams,
  3227. /* [out] */ VARIANT *pVarResult,
  3228. /* [out] */ EXCEPINFO *pExcepInfo,
  3229. /* [out] */ UINT *puArgErr);
  3230. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Item )(
  3231. IRecipients * This,
  3232. /* [in] */ long Index,
  3233. /* [retval][out] */ VARIANT *pVal);
  3234. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )(
  3235. IRecipients * This,
  3236. /* [retval][out] */ long *pVal);
  3237. /* [restricted][helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )(
  3238. IRecipients * This,
  3239. /* [retval][out] */ LPUNKNOWN *pVal);
  3240. /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Add )(
  3241. IRecipients * This,
  3242. /* [in] */ ICertificate *pVal);
  3243. /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Remove )(
  3244. IRecipients * This,
  3245. /* [in] */ long Val);
  3246. /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Clear )(
  3247. IRecipients * This);
  3248. END_INTERFACE
  3249. } IRecipientsVtbl;
  3250. interface IRecipients
  3251. {
  3252. CONST_VTBL struct IRecipientsVtbl *lpVtbl;
  3253. };
  3254. #ifdef COBJMACROS
  3255. #define IRecipients_QueryInterface(This,riid,ppvObject) \
  3256. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  3257. #define IRecipients_AddRef(This) \
  3258. (This)->lpVtbl -> AddRef(This)
  3259. #define IRecipients_Release(This) \
  3260. (This)->lpVtbl -> Release(This)
  3261. #define IRecipients_GetTypeInfoCount(This,pctinfo) \
  3262. (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  3263. #define IRecipients_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
  3264. (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  3265. #define IRecipients_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
  3266. (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  3267. #define IRecipients_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
  3268. (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  3269. #define IRecipients_get_Item(This,Index,pVal) \
  3270. (This)->lpVtbl -> get_Item(This,Index,pVal)
  3271. #define IRecipients_get_Count(This,pVal) \
  3272. (This)->lpVtbl -> get_Count(This,pVal)
  3273. #define IRecipients_get__NewEnum(This,pVal) \
  3274. (This)->lpVtbl -> get__NewEnum(This,pVal)
  3275. #define IRecipients_Add(This,pVal) \
  3276. (This)->lpVtbl -> Add(This,pVal)
  3277. #define IRecipients_Remove(This,Val) \
  3278. (This)->lpVtbl -> Remove(This,Val)
  3279. #define IRecipients_Clear(This) \
  3280. (This)->lpVtbl -> Clear(This)
  3281. #endif /* COBJMACROS */
  3282. #endif /* C style interface */
  3283. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRecipients_get_Item_Proxy(
  3284. IRecipients * This,
  3285. /* [in] */ long Index,
  3286. /* [retval][out] */ VARIANT *pVal);
  3287. void __RPC_STUB IRecipients_get_Item_Stub(
  3288. IRpcStubBuffer *This,
  3289. IRpcChannelBuffer *_pRpcChannelBuffer,
  3290. PRPC_MESSAGE _pRpcMessage,
  3291. DWORD *_pdwStubPhase);
  3292. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRecipients_get_Count_Proxy(
  3293. IRecipients * This,
  3294. /* [retval][out] */ long *pVal);
  3295. void __RPC_STUB IRecipients_get_Count_Stub(
  3296. IRpcStubBuffer *This,
  3297. IRpcChannelBuffer *_pRpcChannelBuffer,
  3298. PRPC_MESSAGE _pRpcMessage,
  3299. DWORD *_pdwStubPhase);
  3300. /* [restricted][helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRecipients_get__NewEnum_Proxy(
  3301. IRecipients * This,
  3302. /* [retval][out] */ LPUNKNOWN *pVal);
  3303. void __RPC_STUB IRecipients_get__NewEnum_Stub(
  3304. IRpcStubBuffer *This,
  3305. IRpcChannelBuffer *_pRpcChannelBuffer,
  3306. PRPC_MESSAGE _pRpcMessage,
  3307. DWORD *_pdwStubPhase);
  3308. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRecipients_Add_Proxy(
  3309. IRecipients * This,
  3310. /* [in] */ ICertificate *pVal);
  3311. void __RPC_STUB IRecipients_Add_Stub(
  3312. IRpcStubBuffer *This,
  3313. IRpcChannelBuffer *_pRpcChannelBuffer,
  3314. PRPC_MESSAGE _pRpcMessage,
  3315. DWORD *_pdwStubPhase);
  3316. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRecipients_Remove_Proxy(
  3317. IRecipients * This,
  3318. /* [in] */ long Val);
  3319. void __RPC_STUB IRecipients_Remove_Stub(
  3320. IRpcStubBuffer *This,
  3321. IRpcChannelBuffer *_pRpcChannelBuffer,
  3322. PRPC_MESSAGE _pRpcMessage,
  3323. DWORD *_pdwStubPhase);
  3324. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRecipients_Clear_Proxy(
  3325. IRecipients * This);
  3326. void __RPC_STUB IRecipients_Clear_Stub(
  3327. IRpcStubBuffer *This,
  3328. IRpcChannelBuffer *_pRpcChannelBuffer,
  3329. PRPC_MESSAGE _pRpcMessage,
  3330. DWORD *_pdwStubPhase);
  3331. #endif /* __IRecipients_INTERFACE_DEFINED__ */
  3332. #ifndef __IEnvelopedData_INTERFACE_DEFINED__
  3333. #define __IEnvelopedData_INTERFACE_DEFINED__
  3334. /* interface IEnvelopedData */
  3335. /* [unique][helpstring][dual][uuid][object] */
  3336. EXTERN_C const IID IID_IEnvelopedData;
  3337. #if defined(__cplusplus) && !defined(CINTERFACE)
  3338. MIDL_INTERFACE("F6CB6A20-CC18-4424-AE57-6F2AA3DC2059")
  3339. IEnvelopedData : public IDispatch
  3340. {
  3341. public:
  3342. virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Content(
  3343. /* [in] */ BSTR newVal) = 0;
  3344. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Content(
  3345. /* [retval][out] */ BSTR *pVal) = 0;
  3346. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Algorithm(
  3347. /* [retval][out] */ IAlgorithm **pVal) = 0;
  3348. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Recipients(
  3349. /* [retval][out] */ IRecipients **pVal) = 0;
  3350. virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Encrypt(
  3351. /* [defaultvalue][in] */ CAPICOM_ENCODING_TYPE EncodingType,
  3352. /* [retval][out] */ BSTR *pVal) = 0;
  3353. virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Decrypt(
  3354. /* [in] */ BSTR EnvelopedMessage) = 0;
  3355. };
  3356. #else /* C style interface */
  3357. typedef struct IEnvelopedDataVtbl
  3358. {
  3359. BEGIN_INTERFACE
  3360. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  3361. IEnvelopedData * This,
  3362. /* [in] */ REFIID riid,
  3363. /* [iid_is][out] */ void **ppvObject);
  3364. ULONG ( STDMETHODCALLTYPE *AddRef )(
  3365. IEnvelopedData * This);
  3366. ULONG ( STDMETHODCALLTYPE *Release )(
  3367. IEnvelopedData * This);
  3368. HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
  3369. IEnvelopedData * This,
  3370. /* [out] */ UINT *pctinfo);
  3371. HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
  3372. IEnvelopedData * This,
  3373. /* [in] */ UINT iTInfo,
  3374. /* [in] */ LCID lcid,
  3375. /* [out] */ ITypeInfo **ppTInfo);
  3376. HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
  3377. IEnvelopedData * This,
  3378. /* [in] */ REFIID riid,
  3379. /* [size_is][in] */ LPOLESTR *rgszNames,
  3380. /* [in] */ UINT cNames,
  3381. /* [in] */ LCID lcid,
  3382. /* [size_is][out] */ DISPID *rgDispId);
  3383. /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
  3384. IEnvelopedData * This,
  3385. /* [in] */ DISPID dispIdMember,
  3386. /* [in] */ REFIID riid,
  3387. /* [in] */ LCID lcid,
  3388. /* [in] */ WORD wFlags,
  3389. /* [out][in] */ DISPPARAMS *pDispParams,
  3390. /* [out] */ VARIANT *pVarResult,
  3391. /* [out] */ EXCEPINFO *pExcepInfo,
  3392. /* [out] */ UINT *puArgErr);
  3393. /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Content )(
  3394. IEnvelopedData * This,
  3395. /* [in] */ BSTR newVal);
  3396. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Content )(
  3397. IEnvelopedData * This,
  3398. /* [retval][out] */ BSTR *pVal);
  3399. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Algorithm )(
  3400. IEnvelopedData * This,
  3401. /* [retval][out] */ IAlgorithm **pVal);
  3402. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Recipients )(
  3403. IEnvelopedData * This,
  3404. /* [retval][out] */ IRecipients **pVal);
  3405. /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Encrypt )(
  3406. IEnvelopedData * This,
  3407. /* [defaultvalue][in] */ CAPICOM_ENCODING_TYPE EncodingType,
  3408. /* [retval][out] */ BSTR *pVal);
  3409. /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Decrypt )(
  3410. IEnvelopedData * This,
  3411. /* [in] */ BSTR EnvelopedMessage);
  3412. END_INTERFACE
  3413. } IEnvelopedDataVtbl;
  3414. interface IEnvelopedData
  3415. {
  3416. CONST_VTBL struct IEnvelopedDataVtbl *lpVtbl;
  3417. };
  3418. #ifdef COBJMACROS
  3419. #define IEnvelopedData_QueryInterface(This,riid,ppvObject) \
  3420. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  3421. #define IEnvelopedData_AddRef(This) \
  3422. (This)->lpVtbl -> AddRef(This)
  3423. #define IEnvelopedData_Release(This) \
  3424. (This)->lpVtbl -> Release(This)
  3425. #define IEnvelopedData_GetTypeInfoCount(This,pctinfo) \
  3426. (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  3427. #define IEnvelopedData_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
  3428. (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  3429. #define IEnvelopedData_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
  3430. (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  3431. #define IEnvelopedData_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
  3432. (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  3433. #define IEnvelopedData_put_Content(This,newVal) \
  3434. (This)->lpVtbl -> put_Content(This,newVal)
  3435. #define IEnvelopedData_get_Content(This,pVal) \
  3436. (This)->lpVtbl -> get_Content(This,pVal)
  3437. #define IEnvelopedData_get_Algorithm(This,pVal) \
  3438. (This)->lpVtbl -> get_Algorithm(This,pVal)
  3439. #define IEnvelopedData_get_Recipients(This,pVal) \
  3440. (This)->lpVtbl -> get_Recipients(This,pVal)
  3441. #define IEnvelopedData_Encrypt(This,EncodingType,pVal) \
  3442. (This)->lpVtbl -> Encrypt(This,EncodingType,pVal)
  3443. #define IEnvelopedData_Decrypt(This,EnvelopedMessage) \
  3444. (This)->lpVtbl -> Decrypt(This,EnvelopedMessage)
  3445. #endif /* COBJMACROS */
  3446. #endif /* C style interface */
  3447. /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IEnvelopedData_put_Content_Proxy(
  3448. IEnvelopedData * This,
  3449. /* [in] */ BSTR newVal);
  3450. void __RPC_STUB IEnvelopedData_put_Content_Stub(
  3451. IRpcStubBuffer *This,
  3452. IRpcChannelBuffer *_pRpcChannelBuffer,
  3453. PRPC_MESSAGE _pRpcMessage,
  3454. DWORD *_pdwStubPhase);
  3455. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IEnvelopedData_get_Content_Proxy(
  3456. IEnvelopedData * This,
  3457. /* [retval][out] */ BSTR *pVal);
  3458. void __RPC_STUB IEnvelopedData_get_Content_Stub(
  3459. IRpcStubBuffer *This,
  3460. IRpcChannelBuffer *_pRpcChannelBuffer,
  3461. PRPC_MESSAGE _pRpcMessage,
  3462. DWORD *_pdwStubPhase);
  3463. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IEnvelopedData_get_Algorithm_Proxy(
  3464. IEnvelopedData * This,
  3465. /* [retval][out] */ IAlgorithm **pVal);
  3466. void __RPC_STUB IEnvelopedData_get_Algorithm_Stub(
  3467. IRpcStubBuffer *This,
  3468. IRpcChannelBuffer *_pRpcChannelBuffer,
  3469. PRPC_MESSAGE _pRpcMessage,
  3470. DWORD *_pdwStubPhase);
  3471. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IEnvelopedData_get_Recipients_Proxy(
  3472. IEnvelopedData * This,
  3473. /* [retval][out] */ IRecipients **pVal);
  3474. void __RPC_STUB IEnvelopedData_get_Recipients_Stub(
  3475. IRpcStubBuffer *This,
  3476. IRpcChannelBuffer *_pRpcChannelBuffer,
  3477. PRPC_MESSAGE _pRpcMessage,
  3478. DWORD *_pdwStubPhase);
  3479. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IEnvelopedData_Encrypt_Proxy(
  3480. IEnvelopedData * This,
  3481. /* [defaultvalue][in] */ CAPICOM_ENCODING_TYPE EncodingType,
  3482. /* [retval][out] */ BSTR *pVal);
  3483. void __RPC_STUB IEnvelopedData_Encrypt_Stub(
  3484. IRpcStubBuffer *This,
  3485. IRpcChannelBuffer *_pRpcChannelBuffer,
  3486. PRPC_MESSAGE _pRpcMessage,
  3487. DWORD *_pdwStubPhase);
  3488. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IEnvelopedData_Decrypt_Proxy(
  3489. IEnvelopedData * This,
  3490. /* [in] */ BSTR EnvelopedMessage);
  3491. void __RPC_STUB IEnvelopedData_Decrypt_Stub(
  3492. IRpcStubBuffer *This,
  3493. IRpcChannelBuffer *_pRpcChannelBuffer,
  3494. PRPC_MESSAGE _pRpcMessage,
  3495. DWORD *_pdwStubPhase);
  3496. #endif /* __IEnvelopedData_INTERFACE_DEFINED__ */
  3497. #ifndef __IEncryptedData_INTERFACE_DEFINED__
  3498. #define __IEncryptedData_INTERFACE_DEFINED__
  3499. /* interface IEncryptedData */
  3500. /* [unique][helpstring][dual][uuid][object] */
  3501. EXTERN_C const IID IID_IEncryptedData;
  3502. #if defined(__cplusplus) && !defined(CINTERFACE)
  3503. MIDL_INTERFACE("C4778A66-972F-42E4-87C5-5CC16F7931CA")
  3504. IEncryptedData : public IDispatch
  3505. {
  3506. public:
  3507. virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Content(
  3508. /* [in] */ BSTR newVal) = 0;
  3509. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Content(
  3510. /* [retval][out] */ BSTR *pVal) = 0;
  3511. virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Algorithm(
  3512. /* [retval][out] */ IAlgorithm **pVal) = 0;
  3513. virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetSecret(
  3514. /* [in] */ BSTR newVal,
  3515. /* [defaultvalue][in] */ CAPICOM_SECRET_TYPE SecretType = CAPICOM_SECRET_PASSWORD) = 0;
  3516. virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Encrypt(
  3517. /* [defaultvalue][in] */ CAPICOM_ENCODING_TYPE EncodingType,
  3518. /* [retval][out] */ BSTR *pVal) = 0;
  3519. virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Decrypt(
  3520. /* [in] */ BSTR EncryptedMessage) = 0;
  3521. };
  3522. #else /* C style interface */
  3523. typedef struct IEncryptedDataVtbl
  3524. {
  3525. BEGIN_INTERFACE
  3526. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  3527. IEncryptedData * This,
  3528. /* [in] */ REFIID riid,
  3529. /* [iid_is][out] */ void **ppvObject);
  3530. ULONG ( STDMETHODCALLTYPE *AddRef )(
  3531. IEncryptedData * This);
  3532. ULONG ( STDMETHODCALLTYPE *Release )(
  3533. IEncryptedData * This);
  3534. HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
  3535. IEncryptedData * This,
  3536. /* [out] */ UINT *pctinfo);
  3537. HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
  3538. IEncryptedData * This,
  3539. /* [in] */ UINT iTInfo,
  3540. /* [in] */ LCID lcid,
  3541. /* [out] */ ITypeInfo **ppTInfo);
  3542. HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
  3543. IEncryptedData * This,
  3544. /* [in] */ REFIID riid,
  3545. /* [size_is][in] */ LPOLESTR *rgszNames,
  3546. /* [in] */ UINT cNames,
  3547. /* [in] */ LCID lcid,
  3548. /* [size_is][out] */ DISPID *rgDispId);
  3549. /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
  3550. IEncryptedData * This,
  3551. /* [in] */ DISPID dispIdMember,
  3552. /* [in] */ REFIID riid,
  3553. /* [in] */ LCID lcid,
  3554. /* [in] */ WORD wFlags,
  3555. /* [out][in] */ DISPPARAMS *pDispParams,
  3556. /* [out] */ VARIANT *pVarResult,
  3557. /* [out] */ EXCEPINFO *pExcepInfo,
  3558. /* [out] */ UINT *puArgErr);
  3559. /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Content )(
  3560. IEncryptedData * This,
  3561. /* [in] */ BSTR newVal);
  3562. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Content )(
  3563. IEncryptedData * This,
  3564. /* [retval][out] */ BSTR *pVal);
  3565. /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Algorithm )(
  3566. IEncryptedData * This,
  3567. /* [retval][out] */ IAlgorithm **pVal);
  3568. /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetSecret )(
  3569. IEncryptedData * This,
  3570. /* [in] */ BSTR newVal,
  3571. /* [defaultvalue][in] */ CAPICOM_SECRET_TYPE SecretType);
  3572. /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Encrypt )(
  3573. IEncryptedData * This,
  3574. /* [defaultvalue][in] */ CAPICOM_ENCODING_TYPE EncodingType,
  3575. /* [retval][out] */ BSTR *pVal);
  3576. /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Decrypt )(
  3577. IEncryptedData * This,
  3578. /* [in] */ BSTR EncryptedMessage);
  3579. END_INTERFACE
  3580. } IEncryptedDataVtbl;
  3581. interface IEncryptedData
  3582. {
  3583. CONST_VTBL struct IEncryptedDataVtbl *lpVtbl;
  3584. };
  3585. #ifdef COBJMACROS
  3586. #define IEncryptedData_QueryInterface(This,riid,ppvObject) \
  3587. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  3588. #define IEncryptedData_AddRef(This) \
  3589. (This)->lpVtbl -> AddRef(This)
  3590. #define IEncryptedData_Release(This) \
  3591. (This)->lpVtbl -> Release(This)
  3592. #define IEncryptedData_GetTypeInfoCount(This,pctinfo) \
  3593. (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  3594. #define IEncryptedData_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
  3595. (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  3596. #define IEncryptedData_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
  3597. (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  3598. #define IEncryptedData_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
  3599. (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  3600. #define IEncryptedData_put_Content(This,newVal) \
  3601. (This)->lpVtbl -> put_Content(This,newVal)
  3602. #define IEncryptedData_get_Content(This,pVal) \
  3603. (This)->lpVtbl -> get_Content(This,pVal)
  3604. #define IEncryptedData_get_Algorithm(This,pVal) \
  3605. (This)->lpVtbl -> get_Algorithm(This,pVal)
  3606. #define IEncryptedData_SetSecret(This,newVal,SecretType) \
  3607. (This)->lpVtbl -> SetSecret(This,newVal,SecretType)
  3608. #define IEncryptedData_Encrypt(This,EncodingType,pVal) \
  3609. (This)->lpVtbl -> Encrypt(This,EncodingType,pVal)
  3610. #define IEncryptedData_Decrypt(This,EncryptedMessage) \
  3611. (This)->lpVtbl -> Decrypt(This,EncryptedMessage)
  3612. #endif /* COBJMACROS */
  3613. #endif /* C style interface */
  3614. /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IEncryptedData_put_Content_Proxy(
  3615. IEncryptedData * This,
  3616. /* [in] */ BSTR newVal);
  3617. void __RPC_STUB IEncryptedData_put_Content_Stub(
  3618. IRpcStubBuffer *This,
  3619. IRpcChannelBuffer *_pRpcChannelBuffer,
  3620. PRPC_MESSAGE _pRpcMessage,
  3621. DWORD *_pdwStubPhase);
  3622. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IEncryptedData_get_Content_Proxy(
  3623. IEncryptedData * This,
  3624. /* [retval][out] */ BSTR *pVal);
  3625. void __RPC_STUB IEncryptedData_get_Content_Stub(
  3626. IRpcStubBuffer *This,
  3627. IRpcChannelBuffer *_pRpcChannelBuffer,
  3628. PRPC_MESSAGE _pRpcMessage,
  3629. DWORD *_pdwStubPhase);
  3630. /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IEncryptedData_get_Algorithm_Proxy(
  3631. IEncryptedData * This,
  3632. /* [retval][out] */ IAlgorithm **pVal);
  3633. void __RPC_STUB IEncryptedData_get_Algorithm_Stub(
  3634. IRpcStubBuffer *This,
  3635. IRpcChannelBuffer *_pRpcChannelBuffer,
  3636. PRPC_MESSAGE _pRpcMessage,
  3637. DWORD *_pdwStubPhase);
  3638. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IEncryptedData_SetSecret_Proxy(
  3639. IEncryptedData * This,
  3640. /* [in] */ BSTR newVal,
  3641. /* [defaultvalue][in] */ CAPICOM_SECRET_TYPE SecretType);
  3642. void __RPC_STUB IEncryptedData_SetSecret_Stub(
  3643. IRpcStubBuffer *This,
  3644. IRpcChannelBuffer *_pRpcChannelBuffer,
  3645. PRPC_MESSAGE _pRpcMessage,
  3646. DWORD *_pdwStubPhase);
  3647. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IEncryptedData_Encrypt_Proxy(
  3648. IEncryptedData * This,
  3649. /* [defaultvalue][in] */ CAPICOM_ENCODING_TYPE EncodingType,
  3650. /* [retval][out] */ BSTR *pVal);
  3651. void __RPC_STUB IEncryptedData_Encrypt_Stub(
  3652. IRpcStubBuffer *This,
  3653. IRpcChannelBuffer *_pRpcChannelBuffer,
  3654. PRPC_MESSAGE _pRpcMessage,
  3655. DWORD *_pdwStubPhase);
  3656. /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IEncryptedData_Decrypt_Proxy(
  3657. IEncryptedData * This,
  3658. /* [in] */ BSTR EncryptedMessage);
  3659. void __RPC_STUB IEncryptedData_Decrypt_Stub(
  3660. IRpcStubBuffer *This,
  3661. IRpcChannelBuffer *_pRpcChannelBuffer,
  3662. PRPC_MESSAGE _pRpcMessage,
  3663. DWORD *_pdwStubPhase);
  3664. #endif /* __IEncryptedData_INTERFACE_DEFINED__ */
  3665. #ifndef __ICChain_INTERFACE_DEFINED__
  3666. #define __ICChain_INTERFACE_DEFINED__
  3667. /* interface ICChain */
  3668. /* [unique][helpstring][local][uuid][object] */
  3669. EXTERN_C const IID IID_ICChain;
  3670. #if defined(__cplusplus) && !defined(CINTERFACE)
  3671. MIDL_INTERFACE("02DF22F8-CF55-465d-97A8-9D6F2EF9817C")
  3672. ICChain : public IUnknown
  3673. {
  3674. public:
  3675. virtual HRESULT STDMETHODCALLTYPE GetContext(
  3676. /* [out] */ PCCERT_CHAIN_CONTEXT *ppChainContext) = 0;
  3677. };
  3678. #else /* C style interface */
  3679. typedef struct ICChainVtbl
  3680. {
  3681. BEGIN_INTERFACE
  3682. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  3683. ICChain * This,
  3684. /* [in] */ REFIID riid,
  3685. /* [iid_is][out] */ void **ppvObject);
  3686. ULONG ( STDMETHODCALLTYPE *AddRef )(
  3687. ICChain * This);
  3688. ULONG ( STDMETHODCALLTYPE *Release )(
  3689. ICChain * This);
  3690. HRESULT ( STDMETHODCALLTYPE *GetContext )(
  3691. ICChain * This,
  3692. /* [out] */ PCCERT_CHAIN_CONTEXT *ppChainContext);
  3693. END_INTERFACE
  3694. } ICChainVtbl;
  3695. interface ICChain
  3696. {
  3697. CONST_VTBL struct ICChainVtbl *lpVtbl;
  3698. };
  3699. #ifdef COBJMACROS
  3700. #define ICChain_QueryInterface(This,riid,ppvObject) \
  3701. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  3702. #define ICChain_AddRef(This) \
  3703. (This)->lpVtbl -> AddRef(This)
  3704. #define ICChain_Release(This) \
  3705. (This)->lpVtbl -> Release(This)
  3706. #define ICChain_GetContext(This,ppChainContext) \
  3707. (This)->lpVtbl -> GetContext(This,ppChainContext)
  3708. #endif /* COBJMACROS */
  3709. #endif /* C style interface */
  3710. HRESULT STDMETHODCALLTYPE ICChain_GetContext_Proxy(
  3711. ICChain * This,
  3712. /* [out] */ PCCERT_CHAIN_CONTEXT *ppChainContext);
  3713. void __RPC_STUB ICChain_GetContext_Stub(
  3714. IRpcStubBuffer *This,
  3715. IRpcChannelBuffer *_pRpcChannelBuffer,
  3716. PRPC_MESSAGE _pRpcMessage,
  3717. DWORD *_pdwStubPhase);
  3718. #endif /* __ICChain_INTERFACE_DEFINED__ */
  3719. #ifndef __ICCertificate_INTERFACE_DEFINED__
  3720. #define __ICCertificate_INTERFACE_DEFINED__
  3721. /* interface ICCertificate */
  3722. /* [unique][helpstring][local][uuid][object] */
  3723. EXTERN_C const IID IID_ICCertificate;
  3724. #if defined(__cplusplus) && !defined(CINTERFACE)
  3725. MIDL_INTERFACE("873AE377-8509-44ba-BD12-5F0723DE6656")
  3726. ICCertificate : public IUnknown
  3727. {
  3728. public:
  3729. virtual HRESULT STDMETHODCALLTYPE GetContext(
  3730. /* [out] */ PCCERT_CONTEXT *ppCertContext) = 0;
  3731. };
  3732. #else /* C style interface */
  3733. typedef struct ICCertificateVtbl
  3734. {
  3735. BEGIN_INTERFACE
  3736. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  3737. ICCertificate * This,
  3738. /* [in] */ REFIID riid,
  3739. /* [iid_is][out] */ void **ppvObject);
  3740. ULONG ( STDMETHODCALLTYPE *AddRef )(
  3741. ICCertificate * This);
  3742. ULONG ( STDMETHODCALLTYPE *Release )(
  3743. ICCertificate * This);
  3744. HRESULT ( STDMETHODCALLTYPE *GetContext )(
  3745. ICCertificate * This,
  3746. /* [out] */ PCCERT_CONTEXT *ppCertContext);
  3747. END_INTERFACE
  3748. } ICCertificateVtbl;
  3749. interface ICCertificate
  3750. {
  3751. CONST_VTBL struct ICCertificateVtbl *lpVtbl;
  3752. };
  3753. #ifdef COBJMACROS
  3754. #define ICCertificate_QueryInterface(This,riid,ppvObject) \
  3755. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  3756. #define ICCertificate_AddRef(This) \
  3757. (This)->lpVtbl -> AddRef(This)
  3758. #define ICCertificate_Release(This) \
  3759. (This)->lpVtbl -> Release(This)
  3760. #define ICCertificate_GetContext(This,ppCertContext) \
  3761. (This)->lpVtbl -> GetContext(This,ppCertContext)
  3762. #endif /* COBJMACROS */
  3763. #endif /* C style interface */
  3764. HRESULT STDMETHODCALLTYPE ICCertificate_GetContext_Proxy(
  3765. ICCertificate * This,
  3766. /* [out] */ PCCERT_CONTEXT *ppCertContext);
  3767. void __RPC_STUB ICCertificate_GetContext_Stub(
  3768. IRpcStubBuffer *This,
  3769. IRpcChannelBuffer *_pRpcChannelBuffer,
  3770. PRPC_MESSAGE _pRpcMessage,
  3771. DWORD *_pdwStubPhase);
  3772. #endif /* __ICCertificate_INTERFACE_DEFINED__ */
  3773. /* Additional Prototypes for ALL interfaces */
  3774. unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
  3775. unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
  3776. unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
  3777. void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
  3778. unsigned long __RPC_USER VARIANT_UserSize( unsigned long *, unsigned long , VARIANT * );
  3779. unsigned char * __RPC_USER VARIANT_UserMarshal( unsigned long *, unsigned char *, VARIANT * );
  3780. unsigned char * __RPC_USER VARIANT_UserUnmarshal(unsigned long *, unsigned char *, VARIANT * );
  3781. void __RPC_USER VARIANT_UserFree( unsigned long *, VARIANT * );
  3782. /* end of Additional Prototypes */
  3783. #ifdef __cplusplus
  3784. }
  3785. #endif
  3786. #endif