IMoniker_RelativePathTo

このモニカーと指定したモニカーの間の相対モニカーを作成する。

IMoniker_RelativePathTo this, pmkOther, ppmkRelPath

this : [comobj] IMoniker インターフェースの COM オブジェクト変数
pmkOther : [comobj] 相対パスを取る対象となるモニカーの IMoniker インターフェースへのポインタ。
ppmkRelPath : [comobj] 相対モニカーへのインターフェースポインタを受け取る IMoniker ポインタ変数へのポインタ。成功時、実装は新しいモニカーに対して AddRef を呼び出さなければならない。呼び出し側は Release を呼び出す責任がある。エラーが発生した場合、実装は *ppmkRelPath を NULL に設定する。

(プラグイン / モジュール : com_misc.dll)

解説

このモニカーと指定したモニカーの間の相対モニカーを作成する。

[戻り値]
このメソッドは、標準の戻り値 E_OUTOFMEMORY および E_UNEXPECTED のほか、以下の値を返す場合がある。
(以下省略)

[備考]
相対モニカーは相対パス ("..\backup" など) に類似している。例えば、あるモニカーがパス
"c:\projects\secret\art\pict1.bmp" を表し、別のモニカーが
"c:\projects\secret\docs\chap1.txt" を表すとする。最初のモニカーに対して RelativePathTo
を呼び出し、2 番目のモニカーを pmkOther パラメータとして渡すと、パス "..\docs\chap1.txt"
を表す相対モニカーが作成される。呼び出し側への注意: モニカークライアントは通常 RelativePathTo
を呼び出す必要はない。このメソッドは主にリンクオブジェクト用の既定ハンドラから呼び出される。リンクオブジェクトは、リンクソースを識別するために絶対モニカーと相対モニカーの両方を保持する。(これにより、ユーザーがコンテナとソースの両方のファイルを含むディレクトリツリーを移動した場合でもリンク追跡が可能になる。)
既定ハンドラはこのメソッドを呼び出して、コンテナドキュメントからリンクソースへの相対モニカーを作成する。(すなわち、コンテナドキュメントを識別するモニカーに対して
RelativePathTo を呼び出し、リンクソースを識別するモニカーを pmkOther パラメータとして渡す。) もし
RelativePathTo を呼び出す場合は、絶対モニカー
(例えばファイルモニカー、または最左コンポーネントが絶対パスを表すファイルモニカーである複合モニカー)
に対してのみ呼び出すこと。相対モニカーに対してはこのメソッドを呼び出してはならない。実装者への注意: RelativePathTo
の実装はまず、pmkOther が自分が認識しており特別な処理を提供できるクラス (例えばこのモニカーと同じクラスの場合)
のモニカーかどうかを判定すべきである。そうであれば、実装は相対パスを判定すべきである。そうでなければ、両方のモニカーを
MonikerRelativePathTo
関数に渡すべきである。これは汎用ケースを正しく処理する。相対パスを判定する最初のステップは、このモニカーと pmkOther
の共通接頭部を判定することである。次のステップは、このモニカーと pmkOther をそれぞれ 2 つの部分に分割することである。仮に
(P, myTail) と (P, otherTail) とする (P は共通接頭部)。正しい相対パスは myTail の逆と
otherTail の合成である。すなわち、Comp() を合成操作、Inv() を逆操作とすると、Comp( Inv( myTail
), otherTail ) となる。モニカーの種類によっては、IMoniker::Inverse メソッドで myTail
の逆を構築できない。例えば、ファイルモニカーは逆としてアンチモニカーを返すが、その RelativePathTo メソッドは myTail
の逆を構築するために、それぞれパス ".." を表す 1 つ以上のファイルモニカーを使用しなければならない。実装固有の注意:
(以下省略)

情報

プラグイン / モジュールcom_misc.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の com_misc.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_com_misc_gen2.hs