從相對識別碼清單擷取擴充屬性資料。
語法
SHSTDAPI SHGetDataFromIDListW(
[in] IShellFolder *psf,
[in] PCUITEMID_CHILD pidl,
int nFormat,
[out] void *pv,
int cb
);
參數
[in] psf
類型: IShellFolder*
母介面 IShellFolder 的位址。 這必須是 pidl 參數所參考的 ITEMIDLIST 結構的直接父節點。
[in] pidl
類型: PCUITEMID_CHILD
指向 ITEMIDLIST 結構的指標,該結構可識別物件相對於 psf 中指定的資料夾。
nFormat
類型:int
資料被請求的格式。 此參數必須設為以下其中一個值。
SHGDFIL_FINDDATA
用於檔案系統物件的格式。 pv 參數是WIN32_FIND_DATA結構的位址。
SHGDFIL_NETRESOURCE
用於網路資源的格式。 pv 參數是 NETRESOURCE 結構的位址。
SHGDFIL_DESCRIPTIONID
4.71 版。 用於網路資源的格式。 pv 參數是 SHDESCRIPTIONID 結構的位址。
[out] pv
類型: 無效*
一個指向緩衝區的指標,當此函式成功返回時,該指標會接收所請求的資料。 此緩衝區的格式由 nFormat 決定。
如果 nFormat 是 SHGDFIL_NETRESOURCE,則有兩種可能的情況。 如果緩衝區夠大,網路資源的字串資訊(網路名稱、本地名稱、提供者和註解欄位)會被放入緩衝區。 若緩衝區不夠大,僅將網路資源結構放入緩衝區,字串資訊指標則為 NULL。
cb
類型:int
pv 時緩衝區大小,以位元組為單位。
返回值
類型: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。
備註
shlobj_core.h 標頭將 SHGetDataFromIDList 定義為別名,根據 UNICODE 預處理器常數的定義自動選擇此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型 的慣例。
需求
| Requirement | 價值觀 |
|---|---|
| 最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
| 支援的最低伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
| 目標平臺 | 窗戶 |
| Header | shlobj_core.h(包括Shlobj.h、Shlobj_core.h) |
| Library | Shell32.lib |
| DLL | Shell32.dll(版本 4.0 或更新版本) |
| API 集 | ext-ms-win-shell-shell32-l1-2-1 (Windows 10 版本 10.0.10240 中引進) |