Condividi tramite


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)

Vedi anche

IPrintCoreHelperPS

IPrintCoreHelperPS::GetOptions