次の方法で共有


IParseDisplayName::P arseDisplayName メソッド (oleidl.h)

指定した表示名を解析し、対応するモニカーを作成します。

構文

HRESULT ParseDisplayName(
  [in]  IBindCtx *pbc,
  [in]  LPOLESTR pszDisplayName,
  [out] ULONG    *pchEaten,
  [out] IMoniker **ppmkOut
);

パラメーター

[in] pbc

このバインド操作で使用されるバインド コンテキストへのポインター。 「IBindCtx」を参照してください。

[in] pszDisplayName

解析する表示名。

[out] pchEaten

ppmkOut モニカーに対応する表示名の文字数を受け取る変数へのポインター。

[out] ppmkOut

結果のモニカーへのインターフェイス ポインターを受け取る IMoniker ポインター変数へのポインター。 エラーが発生した場合、実装は *ppmkOut を NULL に設定 します。 *ppmkOutNULL 以外の場合、実装では AddRef を呼び出す必要があります。 Release を呼び出すのは呼び出し元の責任です。

戻り値

このメソッドは、E_OUTOFMEMORYおよびE_UNEXPECTED標準の戻り値と、次の値を返すことができます。

リターン コード 説明
S_OK
メソッドは正常に完了しました。
MK_E_SYNTAX
表示名に構文エラーがあります。 pszDisplayName をモニカーに部分的にしか解決できなかったため、解析に失敗しました。 この場合、*pchEaten には、モニカー プレフィックスに正常に解析された文字数があります。 パラメーター ppmkOutNULL にする必要があります。
MK_E_NOOBJECT
表示名は、この名前空間内のコンポーネントを識別しません。
E_INVALIDARG
1 つ以上のパラメーターが無効です。

注釈

一般に、構文的に有効であり、オブジェクトを表す pszDisplayName の 最大プレフィックスは、このメソッドで使用し、モニカーに変換する必要があります。

通常、このメソッドは MkParseDisplayName または MkParseDisplayNameEx によって呼び出されます。 解析操作の最初の手順では、これらの関数は、"@ProgID" または "ProgID" 表記で識別されたクラスのインスタンスから IParseDisplayName インターフェイスを直接取得できます。 後続の解析手順では、中間オブジェクトのインターフェイスに対してクエリを実行できます。

MkParseDisplayName と MkParseDisplayNameEx のメイン ループは、IMoniker インターフェイス (現在保持されているモニカーの IMoniker::P arseDisplayName) で同等のメソッドを呼び出すことによって、次のモニカー部分を検索します。 IMoniker::P arseDisplayName のこの呼び出しでは、MkParseDisplayName または MkParseDisplayNameEx 関数は pmkToLeft パラメーターに NULL を渡します。 現在保持されているモニカーがジェネリック 複合の場合、 IMoniker::P arseDisplayName の呼び出しは、その複合によって最後の部分に転送され、 pmkToLeft の部分の左側に複合のプレフィックスが渡されます。

一部のモニカー クラスは、特定の種類のオブジェクトのみを指定するように設計されているため、内部的にこの解析を処理できます。 他のユーザーは、解析プロセスを実行するために、指定したオブジェクトにバインドする必要があります。 通常どおり、これらのオブジェクトは IMoniker::P arseDisplayName によって解放されるのではなく、IBindCtx::RegisterObjectBound または IBindCtx::GetRunningObjectTable の後に IRunningObjectTable::Register を使用してバインド コンテキストに転送する必要があります。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー oleidl.h

こちらもご覧ください

IMoniker::P arseDisplayName

IParseDisplayName

MkParseDisplayName

MkParseDisplayNameEx