Поделиться через


Метод IPrintCoreHelperPS::CreateInstanceOfMSXMLObject (prcomoem.h)

Метод IPrintCoreHelperPS::CreateInstanceOfMSXMLObject создает экземпляр объекта MSXML.

Синтаксис

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

Параметры

[in] rclsid

CLSID, связанный с данными и кодом, который будет использоваться для создания объекта.

[in] pUnkOuter

Указатель на интерфейс объекта IUnknown (управляемый IUnknown). Этот параметр должен быть null, что означает, что объект не создается в составе агрегата.

[in] dwClsContext

Контекст, в котором будет выполняться код, который управляет вновь созданным объектом. Единственными допустимыми значениями являются null и CLSCTX_INPROC_SERVER, что является значением перечисления CLSCTX (описано в документации по пакету SDK для Microsoft Windows).

[in] riid

Ссылка на идентификатор интерфейса, который будет использоваться для взаимодействия с объектом.

[out] ppv

Указатель на адрес памяти, который получает адрес интерфейса, запрошенного в параметре riid. Если IPrintCoreHelperPS::CreateInstanceOfMSXMLObject успешно возвращается, *ppv содержит адрес запрошенного интерфейса. Если этот метод завершается ошибкой, *ppv содержит NULL.

Возвращаемое значение

IPrintCoreHelperPS::CreateInstanceOfMSXMLObject должен возвращать одно из следующих значений.

Возвращаемый код Описание
S_OK
Экземпляр указанного класса объектов был успешно создан.
CLASS_E_NOAGGREGATION
Указанный класс нельзя создать как часть агрегата.
E_NOINTERFACE
Указанный класс не реализует запрошенный интерфейс, а управляемый интерфейс IUnknown не предоставляет запрошенный интерфейс.
REGDB_E_CLASSNOTREG
Указанный класс не зарегистрирован в базе данных регистрации. Это значение также может указывать на то, что тип сервера, запрошенного в типе перечисления CLSCTX, не зарегистрирован или значения для типов серверов в реестре повреждены.

Замечания

Подключаемый модуль не должен напрямую создавать объект MSXML путем вызова CoCreateInstance (описанного в документации по пакету SDK для Windows). Вместо этого он должен вызывать Pscript для этого. Причина заключается в том, что в определенных условиях, когда драйвер принтера может использоваться, например с более старыми версиями операционной системы, операционная система не должна регистрировать требуемую версию MSXML, которая в настоящее время является версией 6. В таких ситуациях вызов CoCreateInstance может завершиться ошибкой. Однако основной драйвер гарантирует, что в любом месте присутствует драйвер, библиотека DLL средства синтаксического анализа MSXML также присутствует на компьютере, что позволяет при необходимости создать объект MSXML.

Требования

Требование Ценность
целевая платформа Настольный
заголовка prcomoem.h (include Prcomoem.h)