このモニカーが識別するオブジェクトが最後に変更された時刻を取得する。
IMoniker_GetTimeOfLastChange this, pbc, pmkToLeft, pFileTime
this : [comobj] IMoniker インターフェースの COM オブジェクト変数
pbc : [comobj] このバインド操作で使用するバインドコンテキストへのポインタ。バインドコンテキストは、バインド処理中にバインドされたオブジェクトをキャッシュし、バインドコンテキストを使用するすべての操作に適用されるパラメータを含み、モニカー実装がその環境について情報を取得するための手段を提供する。詳細は IBindCtx を参照のこと。
pmkToLeft : [comobj] モニカーが複合モニカーの一部である場合、このモニカーの左側にあるモニカーへのポインタ。このパラメータは主にモニカー実装者が複合モニカーの各構成要素間の連携を可能にするために使用する。モニカークライアントは NULL を渡すべきである。
pFileTime : [var] 最終変更時刻を受け取る FILETIME 構造体へのポインタ。{0xFFFFFFFF,0x7FFFFFFF} という値はエラーを示す (例えば、時間制限を超過した、情報が利用できない、など)。
(プラグイン / モジュール : com_misc.dll)
このモニカーが識別するオブジェクトが最後に変更された時刻を取得する。 [戻り値] このメソッドは、標準の戻り値 E_OUTOFMEMORY のほか、以下の値を返す場合がある。 (以下省略) [備考] 正確には、返される時刻はそれ以降変更がないことを COM が確認できる最も早い時刻であり、したがってオブジェクトの実際の最終変更時刻よりも後になる場合がある。呼び出し側への注意: モニカーが識別するオブジェクトから返された情報をキャッシュしている場合、その情報が最新であることを確認したくなるだろう。そのためには、GetTimeOfLastChange を呼び出し、返された時刻と最後にオブジェクトから情報を取得した時刻を比較すればよい。 リンクオブジェクト内に保存されたモニカーの場合、GetTimeOfLastChange は主に既定ハンドラの IOleObject::IsUpToDate の実装から呼び出される。コンテナアプリケーションは IOleObject::IsUpToDate を呼び出して、リンクオブジェクト (またはリンクオブジェクトを含む埋め込みオブジェクト) が実際にバインドすることなく最新かどうかを判定する。これにより、ユーザーがドキュメントを開いた際に、どのリンクオブジェクトを更新する必要があるかを素早く判定できる。アプリケーションはドキュメント内のすべてのリンクオブジェクトをバインドする代わりに、更新が必要なもののみ (ユーザーに確認した上で) バインドできる。実装者への注意: リンクオブジェクトの場合、このメソッドはユーザーが複合ドキュメントを最初に開く際に呼び出されるため、この操作を素早く実行することが重要である。したがって、GetTimeOfLastChange の実装はオブジェクトにバインドすべきではない。加えて、実装はバインドコンテキスト内のデッドラインパラメータをチェックし、指定時間までに操作を完了できない場合は MK_E_EXCEEDEDDEADLINE を返すべきである。以下は実装で使用できる戦略の例である。 (以下省略)
| プラグイン / モジュール | 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 |