Compartir a través de


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

El método IPrintCoreHelperUni::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, IPrintCoreHelperUni::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 de complementos o desde IPrintOemPS::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 las 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 IPrintCoreHelperUni::SetOptions debe resolver conflictos que surgen de una o varias restricciones en la vista GPD del archivo de configuración, así como restricciones para la funcionalidad implementada por Unidrv 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.

[in] pFOPairs

Matriz de PRINT_FEATURE_OPTION elementos, donde cada elemento contiene un par de opciones de características. Cada par de opciones de características enumera 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 IPrintCoreHelperUni::SetOptions devolvieran o no se hubieran podido realizar. 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 siguientes valores.

Valor Descripción
SETOPTIONS_RESULT_NO_CONFLICT No se infringió ninguna restricción especificada en la vista GPD del archivo de configuración, en relación con la nueva configuración.
SETOPTIONS_RESULT_CONFLICT_RESOLVED Se infringió al menos una restricción que se especificó en la vista GPD del archivo de configuración y el autor de la llamada solicitó que el método debería resolver 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 del archivo de configuración y el autor de la llamada solicitó que el método no resuelva conflictos. La configuración no cambia y los conflictos permanecen.

Valor devuelto

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

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

IPrintCoreHelperUni::SetOptions se puede usar para realizar varios cambios de configuración 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 a menos que el parámetro bResolveConflicts sea TRUE.

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

Requisitos

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

Consulte también

IPrintCoreHelperUni

IPrintCoreHelperUni::GetOption