IPersistFile_GetCurFile

オブジェクトに関連付けられたファイルの現在の名前を取得する。現在の作業ファイルがない場合は、オブジェクトの既定の保存プロンプトを取得する。

IPersistFile_GetCurFile this, ppszFileName

this : [comobj] IPersistFile インターフェースの COM オブジェクト変数
ppszFileName : [var] 現在のファイルのパス、または既定のファイル名プロンプト(例えば *.txt)。エラーが発生した場合 ppszFileName は NULL に設定される。

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

解説

オブジェクトに関連付けられたファイルの現在の名前を取得する。現在の作業ファイルがない場合は、オブジェクトの既定の保存プロンプトを取得する。

[戻り値]
このメソッドは以下の値を返すことがある。
(以下省略)

[備考]
このメソッドは ppszFileName パラメーターで返される文字列のメモリを IMalloc::Alloc
メソッドを使って確保する。呼び出し側は IMalloc::Free
メソッドを呼び出して文字列を解放する責任がある。呼び出し側とこのメソッドの双方は CoGetMalloc の呼び出しで取得できる OLE
タスクアロケーターを使用する。ppszFileName で返されるファイル名は、ドキュメントがロードされたときに
IPersistFile::Load の呼び出しで指定されたものである。あるいはドキュメントが別のファイルに保存された場合は
IPersistFile::SaveCompleted
で指定されたものである。オブジェクトに現在の作業ファイルがない場合は、[名前を付けて保存]
ダイアログボックスに表示する既定のプロンプトを提供すべきである。例えばワードプロセッサオブジェクトの既定の保存プロンプトは「*.txt」などになる。呼び出し側へのメモ
OLE は GetCurFile
メソッドを呼び出さない。アプリケーションがこのインターフェースの保存メソッドも呼び出している場合を除いて、このメソッドを呼び出すことはない。オブジェクトを保存する際、IPersistFile::Save
を呼び出す前にこのメソッドを呼び出して、オブジェクトに関連付けられたファイルがあるかどうかを判定できる。このメソッドが S_OK
を返した場合、IPersistFile::Save を filename が NULL かつ fRemember パラメーターが TRUE
で呼び出して、オブジェクトに現在のファイルに自身を保存するよう指示できる。このメソッドが S_FALSE を返した場合は
ppszFileName
パラメーターで返された保存プロンプトを使ってエンドユーザーにファイル名の提供を求め、ユーザーが入力したファイル名を指定して
IPersistFile::Save を呼び出して名前を付けて保存操作を行える。

情報

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