ファイルプロパティの操作方法について探していてこのページに
たどり着きました。
Delphiサンプルプログラム集の「816_ファイルのプロパティ」に
ついて質問させて下さい。
CAD図面ファイルを扱うソフトを開発していますが、図面の情報を
他のアプリから参照しやすくするため、一時的にファイルのプロパティ
に保存したいと思っています。
そこで、構造化ストレージのサブストレージを利用できないかと考え、
「05_構造化ストレージの操作」のサンプルプログラムを使って
図面ファイルにプロパティを保存して見ましたが、正常に保存できた
のは「会社名」と「最終印刷日」のプロパティだけで他は空白に
なってしまいました。
原因を調べようとDelphi7のデバッグ環境で実行してみたところ、
不思議なことに全て正常に保存できました。
色々試してわかったことは、1つのプロパティに値を書きこむと
プロパティセットが同一の他のプロパティは全てクリアされてしまう
ということです。
「会社名」が保存できたのはこれだけ他とは違うプロパティセット
(FMTID_DocSummaryInfo)だったから。
「最終印刷日」が保存できたのはこれがプロパティセット
FMTID_SummaryInfoで最後に書き込んだプロパティだったから。
(「最終印刷日」の書きこみ部分をコメントアウトすると
「最終更新日」のプロパティが保存されます)
Delphi7のデバッグ環境下では正常動作するので、環境さえ整えば
うまくいく気がします。何かわかることがありましたら教えて下さい。
Windows7, WindowsXPで動作確認しました。ワードなどの
複合ドキュメントなら正常に動作することを確認しています。
|