SHGetDataFromIDListW

相対アイテム識別子リストから拡張プロパティデータを取得する。(Unicode)

SHGetDataFromIDListW psf, pidl, nFormat, pv, cb

psf : [var] 型: IShellFolder* 親 IShellFolder インターフェイスのアドレス。これは、pidl パラメーターが参照する ITEMIDLIST 構造体の直接の親でなければならない。
pidl : [var] 型: PCUITEMID_CHILD psf で指定されたフォルダを基準としてオブジェクトを識別する ITEMIDLIST 構造体へのポインター。
nFormat : [int] 型: int
pv : [intptr] 型: void* この関数が成功した場合に、要求されたデータを受け取るバッファーへのポインター。このバッファーの形式は nFormat によって決まる。nFormat が SHGDFIL_NETRESOURCE の場合、2 つのケースがある。バッファーが十分に大きい場合は、ネットワークリソースの文字列情報 (ネットワーク名、ローカル名、プロバイダー、コメントの各フィールド) がバッファーに格納される。バッファーが十分でない場合は、ネットワークリソース構造体のみがバッファーに格納され、文字列情報のポインターは NULL になる。
cb : [int] 型: int pv のバッファーのサイズ (バイト単位)。

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

解説

相対アイテム識別子リストから拡張プロパティデータを取得する。(Unicode)

[戻り値]
型: HRESULT 成功した場合は S_OK を、それ以外の場合は E_INVALIDARG を返す。

[備考]
この関数は、アイテム識別子リスト (PIDL) へのポインターに存在する情報のみを抽出する。PIDL の内容は PIDL
を作成したフォルダオブジェクトに依存するため、要求した情報がすべて利用できる保証はない。さらに、返される情報は PIDL
が作成された時点でのオブジェクトの状態を反映する。オブジェクトの現在の状態は異なる可能性がある。たとえば、nFormat に
SHGDFIL_FINDDATA を設定すると、関数は WIN32_FIND_DATA
構造体のメンバーの一部にのみ意味のある値を割り当てる場合がある。残りのメンバーはゼロに設定される。ファイルシステムのファイルやフォルダに関する完全な現在の情報を取得するには、GetFileTime
や FindFirstFile などの標準ファイルシステム関数を使用する。psf、pidl、pv、または cb パラメーターが
nFormat パラメーターと一致しない場合、または nFormat が上記の特定の SHGDFIL_ 値のいずれでもない場合は
E_INVALIDARG が返される。
> [!NOTE] > shlobj_core.h ヘッダーは SHGetDataFromIDList を、UNICODE
プリプロセッサ定数の定義に基づいてこの関数の ANSI 版または Unicode
版を自動的に選択するエイリアスとして定義している。エンコーディング中立なエイリアスとそうでないコードを混在して使用すると、コンパイルや実行時のエラーにつながる不一致が発生する場合がある。詳細は
[Conventions for Function
Prototypes](/windows/win32/intl/conventions-for-function-prototypes)
を参照。

情報

プラグイン / モジュールshell32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の shell32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_shell32_gen2.hs