Metodo IPrintCoreHelper::SetOptions (prcomoem.h)
Il metodo IPrintCoreHelper::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, IPrintCoreHelper::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 o IPrintOemUni::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 IPrintCoreHelper::SetOptions deve risolvere i conflitti che derivano da uno o più vincoli specificati nella visualizzazione GPD o PPD del file di configurazione, nonché vincoli per le funzionalità implementate da Unidrv o 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. Per altre informazioni, vedere la sezione Osservazioni.
[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 IPrintCoreHelper::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 | Nessun vincolo specificato nella visualizzazione GPD o PPD del file di configurazione è stato violato, rispetto alla nuova impostazione. |
SETOPTIONS_RESULT_CONFLICT_RESOLVED | Almeno un vincolo specificato nella visualizzazione GPD o 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 GPD o 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
IPrintCoreHelper::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
IPrintCoreHelper::SetOptions può essere usato per modificare più 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à. Le modifiche apportate alle opzioni non vengono sottoposte a commit, ovvero salvate nel Registro di sistema, 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) |