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