IPersistFile_IsDirty

オブジェクトが最後に現在のファイルに保存されて以来変更されたかどうかを判定する。

IPersistFile_IsDirty this

this : [comobj] IPersistFile インターフェースの COM オブジェクト変数

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

解説

オブジェクトが最後に現在のファイルに保存されて以来変更されたかどうかを判定する。

[戻り値]
オブジェクトが変更されたことを示すには S_OK を返す。そうでなければ S_FALSE を返す。

[備考]
このメソッドはオブジェクトを閉じる前に保存する必要があるかどうかを判定するのに使用する。オブジェクトのダーティフラグは
IPersistFile::Save メソッド内で条件付きでクリアされる。呼び出し側へのメモ OLE は IsDirty
を呼び出さない。アプリケーションがオブジェクトをファイルに保存している場合を除いて、これを呼び出すことはない。エラー戻りコードはオブジェクトが変更されたことの指標として扱うべきである。このメソッドが明示的に
S_FALSE を返さない限り、オブジェクトは保存が必要と想定するべきである。実装者へのメモ
内包オブジェクトを持たないオブジェクトは、単に自身のダーティフラグを確認して適切な結果を返せばよい。1
つ以上の内包オブジェクトを持つコンテナーは、最後に保存されて以来いずれかの内包オブジェクトが変更されたときに設定される内部ダーティフラグを保持しなければならない。そのためにコンテナーは
IAdviseSink インターフェースを実装してアドバイスシンクを保持するべきである。次にコンテナーはデータ変更通知のために
IDataObject::DAdvise を呼び出して各リンクまたは埋め込みを登録できる。こうするとコンテナーは
IAdviseSink::OnDataChange
通知を受け取ったときに内部ダーティフラグを設定できる。コンテナーがデータ変更通知を登録しない場合、IPersistFile::IsDirty
の実装は各内包オブジェクトに対して IPersistStorage::IsDirty
を呼び出して変更されたかどうかを判定する。コンテナーは保存するたびにダーティフラグをクリアできる。ただしオブジェクトが保存されたファイルが保存後に現在の作業ファイルであり続ける場合に限る。したがってダーティフラグは成功した保存または名前を付けて保存操作後にはクリアされるが、「コピーを別名で保存...」操作後にはクリアされない。

情報

プラグイン / モジュール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