Metodo IPrintCoreHelperPS::SetOptions (prcomoem.h)
Il metodo IPrintCoreHelperPS::SetOptions imposta contemporaneamente più coppie di opzioni di funzionalità.
Sintassi
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
);
Parametri
[in, optional] pDevmode
Puntatore a una struttura DEVMODEW . Se viene fornito questo puntatore, IPrintCoreHelperPS::SetOptions deve usare la struttura DEVMODEW a cui punta pDevmode anziché la struttura DEVMODEW predefinita o corrente. Se questo metodo viene chiamato dal provider plug-in o da IPrintOemPS::D evMode, questo parametro è obbligatorio. Nella maggior parte delle altre situazioni, il parametro deve essere NULL. Quando il driver principale imposta pDevmode su NULL, modifica lo stato interno anziché quello della struttura DEVMODEW passata. Questa operazione è necessaria durante operazioni come la sostituzione completa dell'interfaccia utente, in cui la struttura DEVMODEW restituita da un DDI, ad esempio DrvDocumentPropertySheets, viene eseguita dal modulo dell'interfaccia utente del driver principale.
[in] cbSize
Dimensione, in byte, della struttura DEVMODEW a cui punta il parametro pDevmode .
[in] bResolveConflicts
Valore booleano che indica se IPrintCoreHelperPS::SetOptions deve risolvere i conflitti che derivano da uno o più vincoli nella visualizzazione PPD del file di configurazione, nonché vincoli per le funzionalità implementate da Pscript o dal processore di stampa. Se TRUE, questo metodo deve tentare di risolvere il conflitto. Se FALSE, questo metodo non deve tentare di risolvere i conflitti.
[in] pFOPairs
Matrice di elementi PRINT_FEATURE_OPTION , in cui ogni elemento contiene una coppia di opzioni di funzionalità. Ogni coppia di opzioni di funzionalità elenca una funzionalità e l'opzione da selezionare per tale funzionalità. Tutte le impostazioni vengono applicate in sequenza. I duplicati non sono consentiti, ma le impostazioni visualizzate più avanti nella matrice (ovvero in corrispondenza di un indice superiore) eseguono l'override di quelle visualizzate in precedenza nella matrice.
[in] cPairs
Numero di coppie di opzioni di funzionalità a cui punta il parametro pFOPairs .
[out] pcPairsWritten
Puntatore a una variabile che riceve il numero di coppie di opzioni di funzionalità salvate correttamente prima che IPrintCoreHelperPS::SetOptions restituisca o abbia avuto esito negativo. Se questo metodo viene restituito correttamente, pcPairsWritten avrà lo stesso valore di cPairs. Se il metodo ha esito negativo, pcPairsWritten può avere qualsiasi valore compreso tra zero e il valore di cPairs. Questo parametro è facoltativo e può essere NULL.
[out] pdwResult
Puntatore a una variabile che riceve lo stato della risoluzione dei conflitti. Lo stato può essere uno dei valori seguenti.
Valore | Descrizione |
---|---|
SETOPTIONS_RESULT_NO_CONFLICT | Non è stato violato alcun vincolo specificato nella visualizzazione PPD del file di configurazione, rispetto alla nuova impostazione. |
SETOPTIONS_RESULT_CONFLICT_RESOLVED | Almeno un vincolo specificato nella visualizzazione PPD del file di configurazione è stato violato e il chiamante ha richiesto che il metodo debba risolvere i conflitti. Questo valore genera impostazioni modificate con conflitti risolti. |
SETOPTIONS_RESULT_CONFLICT_NOT_RESOLVED | Almeno un vincolo specificato nella visualizzazione PPD del file di configurazione è stato violato e il chiamante ha richiesto che il metodo non debba risolvere i conflitti. Le impostazioni non cambiano e i conflitti rimangono. |
Valore restituito
IPrintCoreHelperPS::SetOptions deve restituire uno dei valori seguenti.
Codice restituito | Descrizione |
---|---|
S_OK | Operazione completata. |
E_INVALIDARG | Uno o più argomenti non sono validi oppure la funzionalità non è supportata. |
E_OUTOFMEMORY | Impossibile allocare la memoria per la matrice di risultati. |
Per altri errori, il metodo deve restituire un codice di errore COM standard.
Commenti
IPrintCoreHelperPS::SetOptions può essere usato per apportare più modifiche alle impostazioni contemporaneamente e risolvere i vincoli dopo che tutte le opzioni selezionate sono state impostate. Le modifiche apportate alle opzioni vengono applicate in sequenza, a partire dall'inizio della matrice pFOPairs , quindi se la stessa funzionalità viene visualizzata due volte in questa matrice, verrà selezionata solo l'ultima opzione per la funzionalità. Non viene eseguito il commit delle modifiche apportate alle opzioni a meno che il parametro bResolveConflicts non sia TRUE.
Per la maggior parte degli scenari, il parametro bResolveConflicts deve essere impostato su TRUE. Impostare questo parametro su FALSE se si desidera richiedere all'utente di risolvere i conflitti.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Desktop |
Intestazione | prcomoem.h (include Prcomoem.h) |