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