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 |
---|---|
|
Il metodo è riuscito. |
|
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. |
|
Il metodo non è supportato. |
|
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. |
|
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::EnumConstrainedOptions
IPrintOemUI::D evicePropertySheets