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


Метод 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 (описано в документации по Microsoft Windows SDK).

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

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть prcomoem.h (включая Prcomoem.h)