Win32 API 日本語リファレンス
ホームStorage.Imapi › IFsiItem

IFsiItem

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IID2c941fd9-975b-59be-a960-9a2a262853a5継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7

公式ドキュメント

ファイル項目とディレクトリ項目の両方に共通するプロパティを含む基本インターフェイスです。

メソッド 12

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 7 HRESULT get_Name(LPWSTR* pVal)

ファイルシステムイメージ内のディレクトリ項目またはファイル項目の名前を取得します。

pValLPWSTR*outファイルシステムイメージ内のファイル項目またはディレクトリ項目の名前を格納する文字列です。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。次のエラーコードは操作失敗時に一般的に返されるものですが、返される可能性のあるエラー値はこれらに限られません。

戻り値 説明
E_POINTER
ポインターが無効です。

値: 0x80004003

解説(Remarks)

項目のフルパスを取得するには、IFsiItem::get_FullPath メソッドを呼び出します。

vtbl 8 HRESULT get_FullPath(LPWSTR* pVal)

ファイルシステムイメージ内のファイル項目またはディレクトリ項目のフルパスを取得します。

pValLPWSTR*outファイルシステムイメージ内のファイル項目またはディレクトリ項目の絶対パスを格納する文字列です。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。次のエラーコードは操作失敗時に一般的に返されるものですが、返される可能性のあるエラー値はこれらに限られません。

戻り値 説明
E_POINTER
ポインターが無効です。

値: 0x80004003

vtbl 9 HRESULT get_CreationTime(DOUBLE* pVal)

ディレクトリ項目またはファイル項目が作成され、ファイルシステムイメージに追加された日時を取得します。

pValDOUBLE*outディレクトリ項目またはファイル項目が作成され、ファイルシステムイメージに追加された日時 (UTC 時刻) です。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。次のエラーコードは操作失敗時に一般的に返されるものですが、返される可能性のあるエラー値はこれらに限られません。

戻り値 説明
E_POINTER
ポインターが無効です。

値: 0x80004003

解説(Remarks)

作成日時は、ディレクトリの内容を一覧表示したときにユーザーに表示される属性に反映されます。

IMAPI は CreationTime の拡張属性をサポートしていないため、UDFS はファイルエントリの LastAccessed プロパティが示す値を CreationTime に設定します。

vtbl 10 HRESULT put_CreationTime(DOUBLE newVal)

ディレクトリ項目またはファイル項目が作成され、ファイルシステムイメージに追加された日時を設定します。

newValDOUBLEinディレクトリ項目またはファイル項目が作成され、ファイルシステムイメージに追加された日時 (UTC 時刻) です。既定値は、その項目がイメージに追加された時刻です。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。次のエラーコードは操作失敗時に一般的に返されるものですが、返される可能性のあるエラー値はこれらに限られません。

戻り値 説明
IMAPI_E_READONLY
FileSystemImage オブジェクトが読み取り専用モードです。

値: 0xC0AAB102

E_OUTOFMEMORY
必要なメモリの割り当てに失敗しました。

値: 0x8007000E

解説(Remarks)

IMAPI は CreationTime の拡張属性をサポートしていないため、UDFS はファイルエントリの LastAccessed プロパティが示す値を CreationTime に設定します。

vtbl 11 HRESULT get_LastAccessedTime(DOUBLE* pVal)

ファイルシステムイメージ内のディレクトリ項目またはファイル項目に最後にアクセスした日時を取得します。

pValDOUBLE*outファイルシステムイメージ内のディレクトリ項目またはファイル項目に最後にアクセスした日時 (UTC 時刻) です。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。

解説(Remarks)

IMAPI は現在 CreationTime 拡張属性をサポートしていないため、UDFS (UDF) は LastAccessedTime の値を CreationTime として使用します。

CDFS (ISO 9660) では、File/Directory ディスクリプター内に記録日時のみが格納されるため、このメソッドで取得される LastAccessedTime の値は 0 に設定されます。

vtbl 12 HRESULT put_LastAccessedTime(DOUBLE newVal)

ファイルシステムイメージ内のディレクトリ項目またはファイル項目に最後にアクセスした日時を設定します。

newValDOUBLEinファイルシステムイメージ内のディレクトリ項目またはファイル項目に最後にアクセスした日時 (UTC 時刻) です。既定値は、その項目がイメージに追加された時刻です。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。次のエラーコードは操作失敗時に一般的に返されるものですが、返される可能性のあるエラー値はこれらに限られません。

戻り値 説明
IMAPI_E_READONLY
FileSystemImage オブジェクトが読み取り専用モードです。

値: 0xC0AAB102

E_OUTOFMEMORY
必要なメモリの割り当てに失敗しました。

値: 0x8007000E

解説(Remarks)

IMAPI は現在 CreationTime 拡張属性をサポートしていないため、UDFS (UDF) は LastAccessedTime の値を CreationTime として使用します。

CDFS (ISO 9660) では、File/Directory ディスクリプター内に記録日時のみが格納されるため、LastAccessedTime の値は 0 に設定されます。

vtbl 13 HRESULT get_LastModifiedTime(DOUBLE* pVal)

ファイルシステムイメージ内のディレクトリ項目またはファイル項目が最後に変更された日時を取得します。

pValDOUBLE*outファイルシステムイメージ内のディレクトリ項目またはファイル項目が最後に変更された日時 (UTC 時刻) です。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。

解説(Remarks)

このメソッドを実装する際は、次の点に注意する必要があります。

UDFS (UDF) は、IFsiItem::put_LastModifiedTime で指定された値を CreationTimeLastModifiedTime の両方に使用します。

CDFS (ISO 9660) は記録日時を CreationTime および LastModifiedTime として使用します。そのため、CDFS では LastModifiedTime の値が 0 に設定されます。

vtbl 14 HRESULT put_LastModifiedTime(DOUBLE newVal)

ファイルシステムイメージ内で項目が最後に変更された日時を設定します。

newValDOUBLEinファイルシステムイメージ内のディレクトリ項目またはファイル項目が最後に変更された日時 (UTC 時刻) です。既定値は、その項目がイメージに追加された時刻です。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。次のエラーコードは操作失敗時に一般的に返されるものですが、返される可能性のあるエラー値はこれらに限られません。

戻り値 説明
IMAPI_E_READONLY
FileSystemImage オブジェクトが読み取り専用モードです。

値: 0xC0AAB102

E_OUTOFMEMORY
必要なメモリの割り当てに失敗しました。

値: 0x8007000E

解説(Remarks)

最終更新日時は、ディレクトリまたはファイルのプロパティを表示したときにユーザーに表示される属性に反映されます。

このメソッドを実装する際は、次の点に注意する必要があります。

UDFS (UDF) は、IFsiItem::put_LastModifiedTime で指定された値を CreationTimeLastModifiedTime の両方に使用します。

CDFS (ISO 9660) は記録日時を CreationTime および LastModifiedTime として使用します。そのため、CDFS では LastModifiedTime の値が 0 に設定されます。

vtbl 15 HRESULT get_IsHidden(VARIANT_BOOL* pVal)

ファイルシステムイメージ内で項目の隠し属性が設定されているかどうかを判定します。(取得)

pValVARIANT_BOOL*outファイルシステムイメージ内で項目に隠し属性が設定されている場合は VARIANT_TRUE、それ以外の場合は VARIANT_FALSE です。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。次のエラーコードは操作失敗時に一般的に返されるものですが、返される可能性のあるエラー値はこれらに限られません。

戻り値 説明
E_POINTER
ポインターが無効です。

値: 0x80004003

vtbl 16 HRESULT put_IsHidden(VARIANT_BOOL newVal)

ファイルシステムイメージ内で項目の隠し属性が設定されているかどうかを判定します。(設定)

newValVARIANT_BOOLinファイルシステムイメージ内で項目に隠し属性を設定するには VARIANT_TRUE を、それ以外の場合は VARIANT_FALSE を指定します。既定値は VARIANT_FALSE です。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。次のエラーコードは操作失敗時に一般的に返されるものですが、返される可能性のあるエラー値はこれらに限られません。

戻り値 説明
IMAPI_E_READONLY
FileSystemImage オブジェクトが読み取り専用モードです。

値: 0xC0AAB102

E_OUTOFMEMORY
必要なメモリの割り当てに失敗しました。

値: 0x8007000E

vtbl 17 HRESULT FileSystemName(FsiFileSystems fileSystem, LPWSTR* pVal)

指定したファイルシステムに準拠するように変更された項目名を取得します。

fileSystemFsiFileSystemsin名前を準拠させる対象のファイルシステムです。指定可能な値については、FsiFileSystems 列挙型を参照してください。
pValLPWSTR*out指定したファイルシステムに準拠した形式の項目名を格納する文字列です。使用されている文字や名前の長さが指定したファイルシステム種別の要件を満たさない場合、IFsiItem::get_Name プロパティの名前が変更されます。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。次のエラーコードは操作失敗時に一般的に返されるものですが、返される可能性のあるエラー値はこれらに限られません。

戻り値 説明
E_POINTER
ポインターが無効です。

値: 0x80004003

IMAPI_E_INVALID_PARAM
パラメーター %1!ls! に指定された値が無効です。

値: 0xC0AAB101

vtbl 18 HRESULT FileSystemPath(FsiFileSystems fileSystem, LPWSTR* pVal)

指定したファイルシステムに準拠するように変更された項目のフルパスを取得します。

fileSystemFsiFileSystemsinパスを準拠させる対象のファイルシステムです。指定可能な値については、FsiFileSystems 列挙型を参照してください。
pValLPWSTR*out指定したファイルシステムに準拠した形式の項目のフルパスを格納する文字列です。使用されている文字やパスの長さが指定したファイルシステム種別の要件を満たさない場合、IFsiItem::get_FullPath プロパティのパスが変更されます。

戻り値

成功した場合は S_OK が返されますが、実装によっては他の成功コードが返されることもあります。次のエラーコードは操作失敗時に一般的に返されるものですが、返される可能性のあるエラー値はこれらに限られません。

戻り値 説明
E_POINTER
ポインターが無効です。

値: 0x80004003

IMAPI_E_INVALID_PARAM
パラメーター %1!ls! に指定された値が無効です。

値: 0xC0AAB101

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IFsiItem "{2C941FD9-975B-59BE-A960-9A2A262853A5}"
#usecom global IFsiItem IID_IFsiItem "{}"
#comfunc global IFsiItem_get_Name              7 var
#comfunc global IFsiItem_get_FullPath          8 var
#comfunc global IFsiItem_get_CreationTime      9 var
#comfunc global IFsiItem_put_CreationTime      10 double
#comfunc global IFsiItem_get_LastAccessedTime  11 var
#comfunc global IFsiItem_put_LastAccessedTime  12 double
#comfunc global IFsiItem_get_LastModifiedTime  13 var
#comfunc global IFsiItem_put_LastModifiedTime  14 double
#comfunc global IFsiItem_get_IsHidden          15 var
#comfunc global IFsiItem_put_IsHidden          16 int
#comfunc global IFsiItem_FileSystemName        17 int,var
#comfunc global IFsiItem_FileSystemPath        18 int,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。