次の方法で共有


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 オブジェクトを作成できます。

要件

要件
対象プラットフォーム デスクトップ
Header prcomoem.h (Prcomoem.h を含む)