Método IPrintCoreUI2::WhyConstrained (prcomoem.h)
O método IPrintCoreUI2::WhyConstrained
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 de OEMUIOBJ.
[in] dwFlags
É reservado e deve ser definido como zero.
[in] pszFeatureKeyword
Ponteiro para um buffer fornecido pelo chamador que contém a palavra-chave de recurso único de interesse para o chamador.
[in] pszOptionKeyword
Ponteiro para um buffer fornecido pelo chamador que contém a palavra-chave de opção.
[out] pmszReasonList
Ponteiro para um buffer fornecido pelo chamador que recebe uma lista dos pares de palavra-chave de recurso/opção 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.
Valor de retorno
O método deve retornar um dos valores a seguir.
Código de retorno | Descrição |
---|---|
|
O método foi bem-sucedido. |
|
O valor em cbSize era menor do 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. |
|
Não há suporte para o método. |
|
O parâmetro poemuiobj apontou para um objeto de contexto inválido.
A palavra-chave do recurso ou a palavra-chave de opção não foi reconhecida. A stickiness do recurso (consulte Substituindo Driver-Supplied Páginas da Folha de Propriedades) não correspondeu à especificada no contexto atual. |
|
Falha no método |
Observações
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 tem suporte apenas durante o IPrintOemUI::D ocumentPropertySheets e funções de IPrintOemUI::D evicePropertySheets e suas rotinas de retorno de chamada da folha de propriedades. Consulte Substituindo páginas da folha de propriedades Driver-Supplied 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 recurso/opção 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 deve 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 verifique 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 continuar com uma segunda chamada para o método.
Requisitos
Requisito | Valor |
---|---|
da Plataforma de Destino | Área de trabalho |
cabeçalho | prcomoem.h (inclua Prcomoem.h) |
Consulte também
IPrintCoreUI2::EnumConstrainedOptions
IPrintOemUI::D evicePropertySheets