モニカーの表示名を取得する。
IMoniker_GetDisplayName this, pbc, pmkToLeft, ppszDisplayName
this : [comobj] IMoniker インターフェースの COM オブジェクト変数 pbc : [comobj] この操作で使用するバインドコンテキストの IBindCtx インターフェースへのポインタ。バインドコンテキストは、バインド処理中にバインドされたオブジェクトをキャッシュし、バインドコンテキストを使用するすべての操作に適用されるパラメータを含み、モニカー実装がその環境について情報を取得するための手段を提供する。 pmkToLeft : [comobj] モニカーが複合モニカーの一部である場合、このモニカーの左側にあるモニカーへのポインタ。このパラメータは主にモニカー実装者が複合モニカーの各構成要素間の連携を可能にするために使用する。モニカークライアントは NULL を渡すべきである。 ppszDisplayName : [var] モニカーの表示名文字列へのポインタを受け取るポインタ変数のアドレス。実装は ppszDisplayName に返す文字列を IMalloc::Alloc を用いて割り当てる必要があり、呼び出し側はそれを解放するために IMalloc::Free を呼び出す責任がある。呼び出し側と本メソッドの実装は共に CoGetMalloc が返す COM タスクアロケータを使用する。エラーが発生した場合、実装は *ppszDisplayName を NULL に設定しなければならない。
(プラグイン / モジュール : com_misc.dll)
モニカーの表示名を取得する。
[戻り値]
このメソッドは、標準の戻り値 E_OUTOFMEMORY のほか、以下の値を返す場合がある。
(以下省略)
[備考]
GetDisplayName
はモニカーを表示可能な形式で表現した文字列を提供する。表示名はモニカーの内部状態の完全な表現ではなく、単にユーザーが読める形式である。その結果、2
つの異なるモニカーが同じ表示名を持つことも (まれだが) ありうる。モニカーの表示名を MkParseDisplayName
関数に渡した場合に元のモニカーに戻せる保証はないが、戻せない場合はまれである。呼び出し側への注意:
モニカーの表示名を取得する操作はコストが高い場合がある。効率のため、GetDisplayName
の最初の呼び出しに成功した結果をキャッシュし、繰り返し呼び出すのを避けるとよい。実装者への注意:
表示名が変わらないモニカークラスを記述する場合は、単純に表示名をキャッシュし、要求時にキャッシュ済みの名前を返せばよい。表示名が時間の経過とともに変わる可能性がある場合、現在の表示名を取得するためにはオブジェクトのストレージにアクセスするか、オブジェクトにバインドする必要があるかもしれず、いずれもコストが高い操作になりうる。その場合、GetDisplayName
の実装は、バインドコンテキストの BIND_OPTS 構造体で指定された時間までに名前を取得できないとき
MK_E_EXCEEDEDDEADLINE を返すべきである。汎用複合モニカーの一部となることを意図したモニカーは、先行するデリミタ
('\' 等) を表示名の一部として含めるべきである。例えば、項目モニカーが返す表示名には、CreateItemMoniker
関数で作成時に指定したデリミタが含まれる。ファイルモニカーの表示名にはデリミタは含まれない。ファイルモニカーは常に複合の最左コンポーネントになるためである。実装固有の注意:
(以下省略)
| プラグイン / モジュール | com_misc.dll |
| バージョン | 1.0 |
| 作成日 | 2026/04/16 |
| 著作者 | IronHSP / CsWin32 bridge |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の com_misc.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_com_misc_gen2.hs |