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