Método ICertRequest::RetrievePending (certcli.h)

O método RetrievePending recupera a disposição de um certificado status de uma solicitação anterior que pode ter retornado anteriormente CR_DISP_INCOMPLETE ou CR_DISP_UNDER_SUBMISSION.

Se a disposição resultante status for CR_DISP_ISSUED, você poderá recuperar o certificado emitido chamando ICertRequest3::GetCertificate. Se uma disposição diferente de CR_DISP_ISSUED for retornada, chame ICertRequest3::GetLastStatus, ICertRequest3::GetDispositionMessage ou ambos os métodos para obter mais informações.

Sintaxe

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

Parâmetros

[in] RequestId

A ID da solicitação que havia retornado anteriormente CR_DISP_INCOMPLETE ou CR_DISP_UNDER_SUBMISSION.

[in] strConfig

Representa uma cadeia de caracteres de configuração válida para o servidor dos Serviços de Certificados. A cadeia de caracteres pode ser uma URL HTTPS para um servidor de registro ou no formato ComputerName\CAName, em que ComputerName é o nome de rede do servidor e CAName é o nome comum da autoridade de certificação, conforme inserido durante a instalação dos Serviços de Certificados. Para obter informações sobre o nome da cadeia de caracteres de configuração, consulte ICertConfig.

Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Não há suporte para uma URL HTTPS como entrada.

[out, retval] pDisposition

Um ponteiro para o valor de disposição da solicitação.

Retornar valor

C++

Se o método for bem-sucedido, o método retornará S_OK.

Após a conclusão bem-sucedida dessa função, *pDisposition é definido como um dos valores na tabela a seguir.

Se o método falhar, ele retornará um valor HRESULT que indica o erro. Para obter uma lista de códigos de erro comuns, consulte Valores HRESULT comuns.

VB

O valor retornado especifica a disposição da solicitação. A disposição é um dos valores a seguir.
Código de retorno Descrição
CR_DISP_INCOMPLETE
A solicitação não foi concluída
CR_DISP_ERROR
Falha na solicitação
CR_DISP_DENIED
Solicitação negada
CR_DISP_ISSUED
Certificado emitido
CR_DISP_ISSUED_OUT_OF_BAND
Certificado emitido separadamente
CR_DISP_UNDER_SUBMISSION
Solicitação feita em envio

Comentários

Uma chamada bem-sucedida para esse método gera um evento EXITEVENT_CERTRETRIEVEPENDING. Um módulo de saída ativo receberá uma notificação desse evento (por meio de uma chamada para ICertExit3::Notify) se o módulo de saída especificar esse evento ao chamar ICertExit3::Initialize.

Exemplos

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 );

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho certcli.h (inclua Certsrv.h)
Biblioteca Certidl.lib
DLL Certcli.dll

Confira também

CCertRequest

ICertConfig

ICertRequest

ICertRequest2

ICertRequest3