Compartilhar via


Método IPrintCoreUI2::WhyConstrained (prcomoem.h)

O IPrintCoreUI2::WhyConstrained método determina por que a seleção de recurso/opção especificada é restrita.

Sintaxe

HRESULT WhyConstrained(
  [in]  POEMUIOBJ poemuiobj,
  [in]  DWORD     dwFlags,
  [in]  PCSTR     pszFeatureKeyword,
  [in]  PCSTR     pszOptionKeyword,
  [out] PZZSTR    pmszReasonList,
  [in]  DWORD     cbSize,
  [out] PDWORD    pcbNeeded
);

Parâmetros

[in] poemuiobj

Ponteiro para o contexto atual, uma estrutura OEMUIOBJ .

[in] dwFlags

É reservado e deve ser definido como zero.

[in] pszFeatureKeyword

Ponteiro para um buffer fornecido pelo chamador que contém o único recurso palavra-chave de interesse para o chamador.

[in] pszOptionKeyword

Ponteiro para um buffer fornecido pelo chamador que contém a opção palavra-chave.

[out] pmszReasonList

Ponteiro para um buffer fornecido pelo chamador que recebe uma lista do recurso/opção palavra-chave pares que colocam restrições no recurso/opção especificado. Essa lista está em MULTI_SZ formato com cada item na lista separado do próximo por um caractere nulo. A lista é encerrada com dois caracteres nulos.

Defina esse parâmetro como NULL para simplesmente consultar o tamanho (*pcbNeeded) da lista de motivos sem ter a lista preenchida.

[in] cbSize

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

[out] pcbNeeded

Ponteiro para um local de memória que recebe o tamanho real, em bytes, da lista de motivos.

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

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

E_NOTIMPL
O método não tem suporte.
E_INVALIDARG
O parâmetro poemuiobj apontou para um objeto de contexto inválido.

O recurso palavra-chave ou opção palavra-chave não foi reconhecido.

A stickiness do recurso (consulte Substituindo Driver-Supplied páginas de folha de propriedades) não correspondeu à especificada no contexto atual.

E_FAIL
Falha no método

Comentários

Esse método tem suporte apenas para plug-ins de interface do usuário do Windows XP Pscript5 que substituem totalmente as páginas de interface do usuário padrão do driver principal e só tem suporte durante as funções IPrintOemUI::D ocumentPropertySheets e IPrintOemUI::D evicePropertySheets e suas rotinas de retorno de chamada da folha de propriedades. Consulte Substituindo Driver-Supplied páginas de folha de propriedades para obter mais informações.

Quando um usuário da interface do usuário do OEM tenta selecionar um item restrito, o chamador pode usar esse método para exibir uma mensagem explicando por que o item é restrito. Quando esse método retorna, pmszReasonList aponta para uma lista de um ou mais pares de recursos/opções que aparecem nas configurações atuais do driver, mas entram em conflito com as palavras-chave de recurso/opção selecionadas. Se não houver conflitos, o método deverá retornar S_OK, pmszReasonList deverá ser preenchido com uma cadeia de caracteres ASCII vazia contendo apenas um caractere nulo e *pcbNeeded deve ser definido como 1.

Para reduzir a necessidade de fazer duas chamadas por acesso a dados, passe o 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 .

Requisitos

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

Confira também

IPrintCoreUI2

IPrintCoreUI2::EnumConstrainedOptions

IPrintOemUI::D evicePropertySheets

IPrintOemUI::D ocumentPropertySheets

OEMUIOBJ