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,这是Microsoft Windows SDK文档) 中描述的 CLSCTX 枚举 (的值。

[in] riid

对将用于与 对象通信的接口标识符的引用。

[out] ppv

指向内存地址的指针,该内存地址接收 riid 参数中请求的接口的地址。 如果 IPrintCoreHelperPS::CreateInstanceOfMSXMLObject 成功返回,则 *ppv 包含所请求接口的地址。 如果此方法失败,则 *ppv 包含 NULL

返回值

IPrintCoreHelperPS::CreateInstanceOfMSXMLObject 应返回以下值之一。

返回代码 说明
S_OK
已成功创建指定对象类的实例。
CLASS_E_NOAGGREGATION
不能将指定的类创建为聚合的一部分。
E_NOINTERFACE
指定的类不实现请求的接口,或者控制 IUnknown 接口不公开请求的接口。
REGDB_E_CLASSNOTREG
指定的类未在注册数据库中注册。 此值还可以指示在 CLSCTX 枚举类型中请求的服务器类型未注册,或者注册表中服务器类型的值已损坏。

注解

插件不应通过调用 Windows SDK 文档) 中所述的 CoCreateInstance (直接创建 MSXML 对象。 相反,它应调用 Pscript 来执行此操作。 原因是,在某些可能使用打印机驱动程序的情况下(例如,在较旧的操作系统版本中),操作系统不需要注册所需的 MSXML 版本,该版本当前为版本 6。 在这种情况下,调用 CoCreateInstance 可能会失败。 但是,核心驱动程序可确保无论驱动程序位于何处,MSXML 分析程序 DLL 也存在于计算机上,以便在需要时创建 MSXML 对象。

要求

要求
目标平台 桌面
标头 prcomoem.h (包括 Prcomoem.h)