Método IPrintCoreHelperUni::SetOptions (prcomoem.h)

O método IPrintCoreHelperUni::SetOptions define vários pares de opção de recurso ao mesmo tempo.

Sintaxe

HRESULT SetOptions(
  [in, optional] IN PDEVMODE                      pDevmode,
  [in]           IN DWORD                         cbSize,
  [in]           IN BOOL                          bResolveConflicts,
  [in]           IN const PRINT_FEATURE_OPTION [] pFOPairs,
  [in]           IN DWORD                         cPairs,
  [out]          OUT PDWORD                       pcPairsWritten,
  [out]          OUT PDWORD                       pdwResult
);

Parâmetros

[in, optional] pDevmode

Um ponteiro para uma estrutura DEVMODEW . Se esse ponteiro for fornecido, IPrintCoreHelperUni::SetOptions deverá usar a estrutura DEVMODEW apontada por pDevmode em vez da estrutura DEVMODEW padrão ou atual. Se esse método for chamado do provedor de plug-in ou de IPrintOemPS::D evMode, esse parâmetro será necessário. Na maioria das outras situações, o parâmetro deve ser NULL. Quando o driver principal define pDevmode como NULL, ele modifica seu estado interno em vez do da estrutura DEVMODEW passada. Isso é necessário durante operações como substituição completa da interface do usuário, em que a estrutura DEVMODEW retornada por uma DDI, como DrvDocumentPropertySheets, está sendo atendida pelo módulo de interface do usuário do driver principal.

[in] cbSize

O tamanho, em bytes, da estrutura DEVMODEW apontada pelo parâmetro pDevmode .

[in] bResolveConflicts

Um valor booliano que indica se IPrintCoreHelperUni::SetOptions deve resolve conflitos que surgem de uma ou mais restrições na exibição GPD do arquivo de configuração, bem como restrições para a funcionalidade implementada pelo Unidrv ou pelo processador de impressão. Se TRUE, esse método deverá tentar resolve o conflito. Se FALSE, esse método não deve tentar resolve conflitos.

[in] pFOPairs

Uma matriz de elementos PRINT_FEATURE_OPTION , em que cada elemento contém um par de opções de recurso. Cada par de opções de recurso lista um recurso e a opção para selecionar para esse recurso. Todas as configurações são aplicadas sequencialmente. As duplicatas não são permitidas, mas as configurações que aparecem posteriormente na matriz (ou seja, em um índice mais alto) substituem aquelas que aparecem anteriormente na matriz.

[in] cPairs

O número de pares de opção de recurso que são apontados pelo parâmetro pFOPairs .

[out] pcPairsWritten

Um ponteiro para uma variável que recebe o número de pares de opções de recurso que foram salvos com êxito antes de IPrintCoreHelperUni::SetOptions retornar ou falhar. Se esse método retornar com êxito, pcPairsWritten terá o mesmo valor que cPairs. Se o método falhar, pcPairsWritten poderá ter qualquer valor de zero por meio do valor de cPairs. Esse parâmetro é opcional e pode ser NULL.

[out] pdwResult

Um ponteiro para uma variável que recebe o status da resolução de conflitos. O status pode ser um dos valores a seguir.

Valor Descrição
SETOPTIONS_RESULT_NO_CONFLICT Nenhuma restrição especificada na exibição GPD do arquivo de configuração foi violada em relação à nova configuração.
SETOPTIONS_RESULT_CONFLICT_RESOLVED Pelo menos uma restrição especificada na exibição GPD do arquivo de configuração foi violada e o chamador solicitou que o método resolve conflitos. Esse valor resulta em configurações alteradas com conflitos resolvidos.
SETOPTIONS_RESULT_CONFLICT_NOT_RESOLVED Pelo menos uma restrição especificada na exibição GPD do arquivo de configuração foi violada e o chamador solicitou que o método não resolve conflitos. As configurações não são alteradas e os conflitos permanecem.

Retornar valor

IPrintCoreHelperUni::SetOptions deve retornar um dos seguintes valores.

Código de retorno Descrição
S_OK A operação foi realizada com êxito.
E_INVALIDARG Um ou mais argumentos são inválidos ou não há suporte para o recurso.
E_OUTOFMEMORY Não foi possível alocar memória para a matriz de resultados.

Para outras falhas, o método deve retornar um código de erro COM padrão.

Comentários

IPrintCoreHelperUni::SetOptions pode ser usado para fazer várias alterações de configurações simultaneamente e para resolve restrições depois que todas as opções selecionadas tiverem sido definidas. As alterações nas opções são aplicadas sequencialmente, começando do início da matriz pFOPairs , portanto, se o mesmo recurso aparecer duas vezes nessa matriz, somente a última opção para o recurso será selecionada. As alterações nas opções não são confirmadas, a menos que o parâmetro bResolveConflicts seja TRUE.

Para a maioria dos cenários, o parâmetro bResolveConflicts deve ser definido como TRUE. Defina esse parâmetro como FALSE se você quiser solicitar que o usuário resolve conflitos.

Requisitos

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

Confira também

IPrintCoreHelperUni

IPrintCoreHelperUni::GetOption