ICertRequest2 接口是 Windows 操作系统中 CertCli API 中的一部分,是 ICertRequest 接口的扩展版本,用于与证书请求相关的操作。该接口主要提供了一种向证书颁发机构 (CA) 提交证书请求的机制,并添加了一些额外的方法。以下是该接口的基本定义:
DECLARE_INTERFACE_(ICertRequest2, ICertRequest)
{
    STDMETHOD(SubmitEx)(
        /* [in] */ LONG Flags,
        /* [in] */ const BSTR strRequest,
        /* [in] */ LONG dwFlagsEx,
        /* [in] */ const BSTR strAttributes,
        /* [in] */ const BSTR strConfig,
        /* [in] */ const BSTR strSerialNumber) PURE;
    
    STDMETHOD(RetrievePending2)(
        /* [in] */ LONG Flags,
        /* [in] */ LONG dwTable,
        /* [in] */ LONG dwRequestId,
        /* [out] */ BSTR __RPC_FAR *pstrRequest) PURE;
    
    STDMETHOD(GetLastStatus)(
        /* [out] */ LONG __RPC_FAR *pStatus) PURE;
    
    STDMETHOD(GetRequestId)(
        /* [out] */ LONG __RPC_FAR *pRequestId) PURE;
};

这个接口继承了 ICertRequest 接口,并添加了一些额外的方法:

1. SubmitEx: 用于向证书颁发机构 (CA) 提交证书请求。
   HRESULT SubmitEx(LONG Flags, const BSTR strRequest, LONG dwFlagsEx, const BSTR strAttributes, const BSTR strConfig, const BSTR strSerialNumber);

   - Flags: 一个标志,用于指定提交请求的选项。
   - strRequest: 包含证书请求的字符串。
   - dwFlagsEx: 一个标志,用于指定提交请求的附加选项。
   - strAttributes: 包含请求的属性信息的字符串。
   - strConfig: 包含颁发机构配置信息的字符串。
   - strSerialNumber: 包含证书序列号的字符串。

2. RetrievePending2: 用于检索指定标识符的挂起的证书请求。
   HRESULT RetrievePending2(LONG Flags, LONG dwTable, LONG dwRequestId, BSTR __RPC_FAR *pstrRequest);

   - Flags: 一个标志,用于指定检索请求的选项。
   - dwTable: 一个标志,用于指定请求表。
   - dwRequestId: 请求的标识符。
   - pstrRequest: 用于接收挂起请求的字符串。

这个接口允许程序员提交证书请求、检索挂起的请求以及获取请求的相关信息,并提供了更多的选项用于控制请求的行为。在使用这个接口时,你可以通过调用相应的方法来执行这些操作,并根据需要进行处理。


转载请注明出处:http://www.zyzy.cn/article/detail/24144/Win32 API/Certcli.h/ICertRequest2