ICertRequest::RetrievePending 方法 (certcli.h)

RetrievePending 方法从先前可能已返回CR_DISP_INCOMPLETE或CR_DISP_UNDER_SUBMISSION的早期请求中检索证书的处置状态。

如果生成的处置状态为CR_DISP_ISSUED,可以通过调用 ICertRequest3::GetCertificate 来检索颁发的证书。 如果返回除 CR_DISP_ISSUED 以外的处置,请调用 ICertRequest3::GetLastStatusICertRequest3::GetDispositionMessage 或这两种方法获取详细信息。

语法

HRESULT RetrievePending(
  [in]          LONG       RequestId,
  [in]          const BSTR strConfig,
  [out, retval] LONG       *pDisposition
);

参数

[in] RequestId

以前返回的请求的 ID CR_DISP_INCOMPLETE 或 CR_DISP_UNDER_SUBMISSION。

[in] strConfig

表示证书服务服务器的有效配置字符串。 字符串可以是注册服务器的 HTTPS URL,也可以采用 ComputerName\CAName 格式,其中 ComputerName 是服务器的网络名称, CAName证书颁发机构的公用名称,如证书服务设置过程中输入的。 有关配置字符串名称的信息,请参阅 ICertConfig

Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 不支持将 HTTPS URL 作为输入。

[out, retval] pDisposition

指向请求处置值的指针。

返回值

C++

如果方法成功,该方法将返回S_OK。

成功完成此函数后,*pDisposition 设置为下表中的值之一。

如果方法失败,它将返回一个 指示错误的 HRESULT 值。 有关常见错误代码的列表,请参阅 通用 HRESULT 值

VB

返回值指定请求的处置。 处置是以下值之一。
返回代码 说明
CR_DISP_INCOMPLETE
请求未完成
CR_DISP_ERROR
申请失败。
CR_DISP_DENIED
已拒绝请求
CR_DISP_ISSUED
证书颁发日期
CR_DISP_ISSUED_OUT_OF_BAND
单独颁发的证书
CR_DISP_UNDER_SUBMISSION
在提交下的请求

注解

成功调用此方法会生成EXITEVENT_CERTRETRIEVEPENDING事件。 如果退出模块在调用 ICertExit3:: Initialize 时指定了此事件,则活动退出模块将通过调用 ICertExit3::Notify) 接收此事件的通知 (。

示例

BSTR    bstrCA = NULL;
long    nReqID, nDisp;

// In this example, the request ID is hard-coded.
nReqID = 1234;

// Note use of two '\' in C++ to produce one '\'.
bstrCA = SysAllocString(L"server01\\myCAName");

// pCertRequest is previously instantiated ICertRequest
// object pointer. Retrieve the status for the specified request.
hr = pCertRequest->RetrievePending( nReqID, bstrCA, &nDisp );
if (FAILED(hr))
{
    printf("Failed RetrievePending [%x]\n", hr);
    goto error;
}
else
{
    // Use the disposition value as needed...
}
// Free BSTR resource.
if ( NULL != bstrCA )
    SysFreeString( bstrCA );

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 certcli.h (包括 Certsrv.h)
Library Certidl.lib
DLL Certcli.dll

另请参阅

CCertRequest

ICertConfig

ICertRequest

ICertRequest2

ICertRequest3