Método IPrintCorePS2::GetOptions (prcomoem.h)

O IPrintCorePS2::GetOptions método recupera as configurações atuais do recurso do driver no formato de uma lista de pares de recursos/opções palavra-chave.

Sintaxe

HRESULT GetOptions(
  [in]  PDEVOBJ pdevobj,
  [in]  DWORD   dwFlags,
  [in]  PCZZSTR pmszFeaturesRequested,
  [in]  DWORD   cbIn,
  [out] PZZSTR  pmszFeatureOptionBuf,
  [in]  DWORD   cbSize,
  [out] PDWORD  pcbNeeded
);

Parâmetros

[in] pdevobj

Ponteiro para uma estrutura DEVOBJ .

[in] dwFlags

É reservado e deve ser definido como zero.

[in] pmszFeaturesRequested

Ponteiro para o buffer fornecido pelo chamador que contém uma lista de palavras-chave de recurso (no formato MULTI_SZ) cujas configurações são solicitadas. Defina esse parâmetro como NULL para obter configurações para todos os recursos.

[in] cbIn

Especifica o tamanho, em bytes, do buffer apontado por pmszFeaturesRequested. O tamanho inclui o último MULTI_SZ caractere nulo.

[out] pmszFeatureOptionBuf

Ponteiro para um buffer fornecido pelo chamador que recebe uma lista de pares de recurso/opção palavra-chave (no formato MULTI_SZ) obtidos das configurações do driver. Cada recurso/opção palavra-chave par contém o nome palavra-chave do recurso, um caractere nulo, a opção palavra-chave nome e outro caractere nulo. A lista é encerrada por dois caracteres NULL.

[in] cbSize

Especifica o tamanho, em bytes, do buffer apontado por pmszFeatureOptionBuf.

[out] pcbNeeded

Ponteiro para um local de memória que recebe o tamanho real, em bytes, dos dados solicitados.

Retornar valor

O método deve retornar um dos valores a seguir.

Código de retorno Descrição
S_OK
O método foi bem-sucedido.
E_OUTOFMEMORY
O valor em cbSize era menor que o número de bytes a serem gravados no buffer de saída (o buffer apontado por pmszFeatureOptionBuf).

O método foi chamado com pmszFeatureOptionBuf definido como NULL.

E_INVALIDARG
O buffer de entrada (o buffer apontado por pmszFeaturesRequested) foi fornecido, mas seu conteúdo não estava no formato MULTI_SZ.

O parâmetro pdevobj apontou para um objeto de contexto de driver inválido.

E_NOTIMPL
O método não tem suporte.
E_FAIL
O método falhou.

Comentários

Esse método dá suporte a recursos autoadesivas de documento e de impressora . Ele só terá suporte depois que o driver principal concluir o processamento drvEnablePDEV , que define todas as configurações de opção. Uma chamada para IPrintCorePS2::GetOptions quando não há suporte deve fazer com que ela retorne E_NOTIMPL. Por exemplo, quando o driver principal chama o método IPrintOemPS::EnablePDEV de um plug-in de renderização, o driver ainda está ocupado com seu processamento DrvEnablePDEV , portanto, se o plug-in chamar IPrintCorePS2::GetOptions dentro do método IPrintOemPS::D evMode do plug-in, o plug-in receberá o valor retornado E_NOTIMPL. No entanto, como o método IPrintOemPS::EnablePDEV do plug-in é chamado depois que o driver principal conclui o processamento drvEnablePDEV , o plug-in é capaz de chamar IPrintCorePS2::GetOptions com êxito dentro de seu método IPrintOemPS::EnablePDEV .

Se um recurso solicitado palavra-chave não for reconhecido ou o recurso for reconhecido, mas não houver nenhuma seleção de opção para ele, o recurso será ignorado e o recurso/opção palavra-chave par não será colocado no buffer de saída.

Para reduzir a necessidade de fazer duas chamadas por acesso a dados, passe ao método um buffer de saída de um tamanho fixo (1 KB, por exemplo) e, em seguida, marcar o valor retornado da função. Se o método retornar S_OK, o buffer já conterá os dados de interesse. Se o método retornar E_OUTOFMEMORY, o valor em *pcbNeeded será o tamanho do buffer necessário para manter os dados de interesse. Em seguida, o chamador deve alocar um buffer desse tamanho maior e prosseguir com uma segunda chamada para o método .

Esse método tem suporte para qualquer plug-in de renderização Pscript5.

Para obter mais informações, consulte Usando GetOptions e SetOptions.

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho prcomoem.h (inclua Prcomoem.h)

Confira também

DEVOBJ

DrvEnablePDEV

IPrintCorePS2

IPrintOemPS::D evMode

IPrintOemPS::EnablePDEV