Método IPrintOemPrintTicketProvider::BindPrinter (prcomoem.h)

El método IPrintOemPrintTicketProvider::BindPrinter permite al controlador principal asociar un conjunto de identificadores uniformes de recursos (URI) de espacio de nombres privados con un dispositivo. Este método también permite que el complemento almacene en caché información (como el controlador de impresora) que se puede usar más adelante.

Sintaxis

HRESULT BindPrinter(
  [in]  HANDLE     hPrinter,
  [in]  INT        version,
  [out] POEMPTOPTS pOptions,
  [out] INT        *cNamespaces,
  [out] BSTR       **ppNamespaces
);

Parámetros

[in] hPrinter

Identificador de impresión del administrador de colas, proporcionado por Unidrv. El proveedor no debe cerrar este identificador en ningún momento, ya que el cliente del proveedor es responsable de administrar la duración de este identificador. El proveedor puede almacenar en caché el identificador de impresión; todas las llamadas futuras en este objeto son relativas a la impresora asociada a este identificador.

[in] version

Número de versión principal del esquema de impresión. Windows Vista solo admite la versión 1.

[out] pOptions

Puntero a una variable que recibe uno de los siguientes valores enumerados:

OEMPT_DEFAULT

El sistema coloca una codificación binaria (un objeto binario grande [BLOB]) de la estructura DEVMODEW privada en el vale de impresión en una conversión de un DEVMODEW a un vale de impresión.

OEMPT_NOSNAPSHOT

El sistema no colocará una codificación binaria (un BLOB) de la estructura DEVMODEW privada en el vale de impresión en una conversión de un DEVMODEW a un vale de impresión. Utilice este valor si todos los miembros DEVMODEW públicos y privados están totalmente representados en el vale de impresión.

El objeto OEM al que se llama debe establecer el valor al que apunta este parámetro.

[out] cNamespaces

Puntero a una variable que recibe el número de URI de espacio de nombres privados que se usan en el complemento. Este número representa el recuento de cadenas de la matriz a la que apunta *ppNamespaces.

[out] ppNamespaces

Puntero a una variable que recibe la dirección del primer elemento de una matriz BSTR. El complemento rellena cada posición de matriz con un URI de espacio de nombres. Para obtener más información sobre este parámetro, vea la siguiente sección Comentarios.

Valor devuelto

IPrintOemPrintTicketProvider::BindPrinter debe devolver uno de los valores siguientes.

Código devuelto Descripción
S_OK La operación se realizó correctamente.
E_VERSION_NOT_SUPPORTED El complemento no admite la versión del esquema de impresión especificado en el parámetro version .

Comentarios

El complemento es responsable de asignar memoria para la matriz a la que apunta el parámetro ppNamespaces y para las cadenas de URI del espacio de nombres. La matriz debe asignarse mediante la función CoTaskMemAlloc ; las cadenas de espacio de nombres se deben asignar mediante la función SysAllocString . Ambas funciones se describen en la documentación de Microsoft Windows SDK. La matriz a la que apunta el parámetro ppNamespaces no es necesaria para contener los espacios de nombres para las palabras clave de esquema de impresión o el marco de esquema de impresión.

El enlace a un dispositivo permite al proveedor almacenar en caché determinados objetos y identificadores que necesitará para los servicios futuros de vale de impresión o funcionalidades de impresión en ese dispositivo. Por ejemplo, el identificador de la impresora en hPrinter se puede almacenar en caché. Se garantiza que se llama a IPrintOemPrintTicketProvider::BindPrinter solo una vez.

Un objeto IPrintOemPrintTicketProvider no tiene que poder enlazar más de una vez. El administrador de vales de impresión siempre usa diferentes instancias de objeto IPrintOemPrintTicketProvider para enlazar a diferentes dispositivos. Todos los recursos que se adquieren en una llamada correcta a IPrintOemPrintTicketProvider::BindPrinter deben liberarse cuando el recuento de referencias de un objeto IPrintOemPrintTicketProvider es cero. (Tenga en cuenta que el proveedor no debe cerrar el identificador que se pasó a la llamada a BindPrinter). El administrador de vales de impresión puede crear varios proveedores para el mismo dispositivo, en versiones diferentes, si se admiten varias versiones.

Requisitos

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

Consulte también

IPrintOemPrintTicketProvider

IPrintOemPrintTicketProvider::ConvertDevModeToPrintTicket

IPrintOemPrintTicketProvider::ConvertPrintTicketToDevMode

IPrintOemPrintTicketProvider::GetSupportedVersions