Compartilhar via


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

O método IPrintCoreHelper::SetOptions define vários pares de opções 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, IPrintCoreHelper::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 ou IPrintOemUni::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 a 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 IPrintCoreHelper::SetOptions deve resolve conflitos que surgem de uma ou mais restrições especificadas na exibição GPD ou PPD do arquivo de configuração, bem como restrições para a funcionalidade implementada por Unidrv ou Pscript ou o 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. Para obter mais informações, consulte a seção Comentários.

[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ções de recurso 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 IPrintCoreHelper::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 ou PPD 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 ou PPD 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 ou PPD 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

IPrintCoreHelper::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

IPrintCoreHelper::SetOptions pode ser usado para alterar várias 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 desde o início da matriz pFOPairs , portanto, se o mesmo recurso aparecer duas vezes nessa matriz, apenas a última opção para o recurso será selecionada. As alterações nas opções não são confirmadas (ou seja, salvas no registro), 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

IPrintCoreHelper

IPrintCoreHelper::GetOption