Compartir a través de


Método IPrintCoreHelper::SetOptions (prcomoem.h)

El método IPrintCoreHelper::SetOptions establece varios pares de opción de características al mismo tiempo.

Sintaxis

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
);

Parámetros

[in, optional] pDevmode

Puntero a una estructura DEVMODEW . Si se proporciona este puntero, IPrintCoreHelper::SetOptions debe usar la estructura DEVMODEW a la que apunta pDevmode en lugar de la estructura DEVMODEW predeterminada o actual. Si se llama a este método desde el proveedor del complemento o desde IPrintOemPS::D evMode o IPrintOemUni::D evMode, se requiere este parámetro. En la mayoría de las otras situaciones, el parámetro debe ser NULL. Cuando el controlador principal establece pDevmode en NULL, modifica su estado interno en lugar del de la estructura DEVMODEW pasada. Esto es necesario durante operaciones como el reemplazo completo de la interfaz de usuario, donde la estructura DEVMODEW devuelta por un DDI, como DrvDocumentPropertySheets, está siendo administrada por el módulo de interfaz de usuario del controlador principal.

[in] cbSize

Tamaño, en bytes, de la estructura DEVMODEW a la que apunta el parámetro pDevmode .

[in] bResolveConflicts

Valor booleano que indica si IPrintCoreHelper::SetOptions debe resolver conflictos que surgen de una o varias restricciones especificadas en la vista GPD o PPD del archivo de configuración, así como restricciones para la funcionalidad implementada por Unidrv o Pscript o el procesador de impresión. Si es TRUE, este método debe intentar resolver el conflicto. Si es FALSE, este método no debe intentar resolver conflictos. Para obtener más información, vea la sección Comentarios.

[in] pFOPairs

Matriz de elementos PRINT_FEATURE_OPTION , donde cada elemento contiene un par de opciones de características. Cada par de opciones de características muestra una característica y la opción que se va a seleccionar para esa característica. Todas las configuraciones se aplican secuencialmente. No se permiten duplicados, pero la configuración que aparece más adelante en la matriz (es decir, en un índice superior) invalida las que aparecen anteriormente en la matriz.

[in] cPairs

Número de pares de opción de características a los que apunta el parámetro pFOPairs .

[out] pcPairsWritten

Puntero a una variable que recibe el número de pares de opción de características que se guardaron correctamente antes de que IPrintCoreHelper::SetOptions devolvió o produjo un error. Si este método devuelve correctamente, *pcPairsWritten tendrá el mismo valor que cPairs. Si se produce un error en el método,*pcPairsWritten puede tener cualquier valor de cero a través del valor de cPairs. Este parámetro es opcional y puede ser NULL.

[out] pdwResult

Puntero a una variable que recibe el estado de la resolución de conflictos. El estado puede ser uno de los valores siguientes.

Valor Descripción
SETOPTIONS_RESULT_NO_CONFLICT No se infringió ninguna restricción especificada en la vista GPD o PPD del archivo de configuración, en relación con la nueva configuración.
SETOPTIONS_RESULT_CONFLICT_RESOLVED Se infringió al menos una restricción especificada en la vista GPD o PPD del archivo de configuración, y el autor de la llamada solicitó que el método resolvera conflictos. Este valor da como resultado una configuración modificada con conflictos resueltos.
SETOPTIONS_RESULT_CONFLICT_NOT_RESOLVED Se infringió al menos una restricción especificada en la vista GPD o PPD del archivo de configuración, y el autor de la llamada solicitó que el método no resuelva los conflictos. La configuración no cambia y los conflictos permanecen.

Valor devuelto

IPrintCoreHelper::SetOptions debe devolver uno de los valores siguientes.

Código devuelto Descripción
S_OK La operación se realizó correctamente.
E_INVALIDARG Uno o varios de los argumentos no son válidos o no se admite la característica.
E_OUTOFMEMORY No se pudo asignar memoria para la matriz de resultados.

Para otros errores, el método debe devolver un código de error COM estándar.

Comentarios

IPrintCoreHelper::SetOptions se puede usar para cambiar varias configuraciones simultáneamente y para resolver restricciones una vez establecidas todas las opciones seleccionadas. Los cambios en las opciones se aplican secuencialmente, empezando desde el principio de la matriz pFOPairs , por lo que si la misma característica aparece dos veces en esta matriz, solo se seleccionará la última opción de la característica. Los cambios en las opciones no se confirman (es decir, se guardan en el Registro) a menos que el parámetro bResolveConflicts sea TRUE.

En la mayoría de los escenarios, el parámetro bResolveConflicts debe establecerse en TRUE. Establezca este parámetro en FALSE si desea pedir al usuario que resuelva los conflictos.

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado prcomoem.h (incluya Prcomoem.h)

Consulte también

IPrintCoreHelper

IPrintCoreHelper::GetOption