Método IPrintCoreHelperPS::CreateInstanceOfMSXMLObject (prcomoem.h)

El método IPrintCoreHelperPS::CreateInstanceOfMSXMLObject crea una instancia de un objeto MSXML.

Sintaxis

HRESULT CreateInstanceOfMSXMLObject(
  [in]  IN REFCLSID  rclsid,
  [in]  IN LPUNKNOWN pUnkOuter,
  [in]  IN DWORD     dwClsContext,
  [in]  IN REFIID    riid,
  [out] OUT LPVOID   *ppv
);

Parámetros

[in] rclsid

CLSID asociado a los datos y el código que se usarán para crear el objeto.

[in] pUnkOuter

Puntero a la interfaz IUnknown del objeto agregado (el control IUnknown). Este parámetro debe ser NULL, lo que significa que el objeto no se está creando como parte de un agregado.

[in] dwClsContext

Contexto en el que se ejecutará el código que administra el objeto recién creado. Los únicos valores válidos son NULL y CLSCTX_INPROC_SERVER, que es un valor de la enumeración CLSCTX (que se describe en la documentación de Microsoft Windows SDK).

[in] riid

Referencia al identificador de la interfaz que se usará para comunicarse con el objeto .

[out] ppv

Puntero a una dirección de memoria que recibe la dirección de la interfaz que se solicita en el parámetro riid . Si IPrintCoreHelperPS::CreateInstanceOfMSXMLObject devuelve correctamente, *ppv contiene la dirección de la interfaz solicitada. Si se produce un error en este método, *ppv contiene NULL.

Valor devuelto

IPrintCoreHelperPS::CreateInstanceOfMSXMLObject debe devolver uno de los valores siguientes.

Código devuelto Descripción
S_OK
Se creó correctamente una instancia de la clase de objeto especificada.
CLASS_E_NOAGGREGATION
La clase especificada no se puede crear como parte de un agregado.
E_NOINTERFACE
La clase especificada no implementa la interfaz solicitada o la interfaz IUnknown de control no expone la interfaz solicitada.
REGDB_E_CLASSNOTREG
Una clase especificada no está registrada en la base de datos de registro. Este valor también puede indicar que el tipo de servidor solicitado en el tipo de enumeración CLSCTX no está registrado o que los valores de los tipos de servidor del Registro están dañados.

Comentarios

El complemento no debe crear directamente un objeto MSXML llamando a CoCreateInstance (descrito en la documentación de Windows SDK). En su lugar, debe llamar a Pscript para hacerlo. El motivo es que, en determinadas condiciones en las que se pueda usar el controlador de impresora, como con versiones anteriores del sistema operativo, el sistema operativo no necesita registrar la versión necesaria de MSXML, que actualmente es la versión 6. En tales situaciones, se puede producir un error al llamar a CoCreateInstance. Sin embargo, el controlador principal garantiza que siempre que el controlador esté presente, el archivo DLL del analizador MSXML también está presente en la máquina, lo que permite crear un objeto MSXML cuando sea necesario.

Requisitos

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