次の方法で共有


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 列挙型で要求したサーバーの種類が登録されていないか、レジストリ内のサーバーの種類の値が破損していることを示すこともできます。

備考

このプラグインでは、CoCreateInstance を呼び出して MSXML オブジェクトを直接作成しないでください (Windows SDK のドキュメントで説明)。 代わりに、Pscript を呼び出して呼び出す必要があります。 その理由は、以前のバージョンのオペレーティング システムなど、プリンター ドライバーが使用される可能性がある特定の条件下では、オペレーティング システムが必要なバージョンの MSXML (現在はバージョン 6) を登録する必要がないためです。 このような状況では、CoCreateInstance の呼び出しが失敗する可能性があります。 ただし、コア ドライバーは、ドライバーが存在する場所を問わず、MSXML パーサー DLL もマシン上に存在することを保証し、必要に応じて MSXML オブジェクトを作成できるようにします。

必要条件

要件 価値
ターゲット プラットフォーム デスクトップ
ヘッダー prcomoem.h (Prcomoem.h を含む)