Metodo IPrintCoreUI2::WhyConstrained (prcomoem.h)

Il IPrintCoreUI2::WhyConstrained metodo determina il motivo per cui la selezione di funzionalità/opzione specificata è vincolata.

Sintassi

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

Parametri

[in] poemuiobj

Puntatore al contesto corrente, struttura OEMUIOBJ .

[in] dwFlags

È riservato e deve essere impostato su zero.

[in] pszFeatureKeyword

Puntatore a un buffer fornito dal chiamante contenente la singola parola chiave della funzionalità di interesse per il chiamante.

[in] pszOptionKeyword

Puntatore a un buffer fornito dal chiamante contenente la parola chiave dell'opzione.

[out] pmszReasonList

Puntatore a un buffer fornito dal chiamante che riceve un elenco delle coppie di parole chiave funzionalità/opzione che inserisce vincoli nella funzionalità/opzione specificata. Questo elenco è in formato MULTI_SZ con ogni elemento nell'elenco separato dal successivo in base a un carattere Null. L'elenco viene terminato con due caratteri Null.

Impostare questo parametro su NULL per eseguire semplicemente una query sulle dimensioni (*pcbNeed) dell'elenco motivo senza aver compilato l'elenco.

[in] cbSize

Specifica le dimensioni, in byte, del buffer a cui punta pmszReasonList.

[out] pcbNeeded

Puntatore a una posizione di memoria che riceve le dimensioni effettive, in byte, dell'elenco dei motivi.

Valore restituito

Il metodo deve restituire uno dei valori seguenti.

Codice restituito Descrizione
S_OK
Il metodo è riuscito.
E_OUTOFMEMORY
Il valore in cbSize è minore del numero di byte da scrivere nel buffer di output (il buffer a cui punta pmszReasonList).

Il metodo è stato chiamato con pmszReasonList impostato su NULL.

E_NOTIMPL
Il metodo non è supportato.
E_INVALIDARG
Il parametro poemuiobj punta a un oggetto contesto non valido.

La parola chiave della funzionalità o la parola chiave dell'opzione non è stata riconosciuta.

La funzionalità di resistenza (vedere Sostituzione Driver-Supplied Pagine foglio proprietà) non corrisponde a quella specificata nel contesto corrente.

E_FAIL
Il metodo non è riuscito

Commenti

Questo metodo è supportato solo per i plug-in dell'interfaccia utente di Windows XP Pscript5 che sostituisci completamente le pagine standard dell'interfaccia utente del driver di base e viene supportato solo durante le funzioni IPrintOemUI::D ocumentPropertySheets e IPrintOemUI::D evicePropertySheets e le relative routine di callback del foglio delle proprietà. Per altre informazioni, vedere Sostituzione di pagine del foglio delle proprietà Driver-Supplied .

Quando un utente dell'interfaccia utente OEM tenta di selezionare un elemento vincolato, il chiamante può usare questo metodo per visualizzare un messaggio che spiega perché l'elemento è vincolato. Quando questo metodo restituisce, pmszReasonList punta a un elenco di una o più coppie di funzionalità/opzione visualizzate nelle impostazioni del driver correnti, ma in conflitto con le parole chiave di funzionalità/opzione selezionate. Se non sono presenti conflitti, il metodo deve restituire S_OK, pmszReasonList deve essere compilato con una stringa ASCII vuota contenente solo un carattere Null e *pcbNeeded deve essere impostato su 1.

Per ridurre la necessità di effettuare due chiamate per accesso ai dati, passare il metodo un buffer di output di dimensioni fisse (ad esempio 1 KB) e quindi controllare il valore restituito dalla funzione. Se il metodo restituisce S_OK, il buffer contiene già i dati di interesse. Se il metodo restituisce E_OUTOFMEMORY, il valore in *pcbNeeded è la dimensione del buffer necessaria per contenere i dati di interesse. Il chiamante deve quindi allocare un buffer di dimensioni maggiori e procedere con una seconda chiamata al metodo.

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione prcomoem.h (include Prcomoem.h)

Vedi anche

IPrintCoreUI2

IPrintCoreUI2::EnumConstrainedOptions

IPrintOemUI::D evicePropertySheets

IPrintOemUI::D ocumentPropertySheets

OEMUIOBJ