IShellFolder::GetUIObjectOf 方法 (shobjidl_core.h)
取得 對象,這個物件可用來對指定的檔案物件或資料夾執行動作。
語法
HRESULT GetUIObjectOf(
[in] HWND hwndOwner,
[in] UINT cidl,
[in] PCUITEMID_CHILD_ARRAY apidl,
[in] REFIID riid,
[in, out] UINT *rgfReserved,
[out] void **ppv
);
參數
[in] hwndOwner
類型: HWND
客戶端應該指定是否顯示對話框或消息框的擁有者視窗句柄。
[in] cidl
類型: UINT
apidl 參數中指定的檔案物件或子資料夾數目。
[in] apidl
類型: PCUITEMID_CHILD_ARRAY
ITEMIDLIST 結構的指標數位位址,每個結構都會唯一識別相對於父資料夾的檔案物件或子資料夾。 每個專案標識碼清單必須只包含一個 SHITEMID 結構,後面接著終止零。
[in] riid
類型: REFIID
要透過 ppv 擷取之介面 IID 的參考。 這可以是可為專案建立的任何有效介面標識碼。 Shell 所使用的最常見標識碼會列在此參考結尾的批注中。
[in, out] rgfReserved
類型: UINT*
保留的。
[out] ppv
類型: void**
當這個方法成功傳回時,包含 riid中要求的介面指標。
傳回值
類型: HRESULT
如果此方法成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。
備註
如果 cidl 大於一,則只有在可以為 apidl 中指定的所有專案建立一個物件時,IShellFolder::GetUIObjectOf 實作才成功。 如果實作無法為所有專案建立一個對象,這個方法將會失敗。
以下是殼層從此方法要求介面時所使用的最常見介面標識碼。 此清單也會指出 cidl 是否可大於要求的介面。
介面識別碼 | 允許 的 cidl 值 |
---|---|
IContextMenu | cidl 參數可以大於或等於一。 |
IContextMenu2 | cidl 參數可以大於或等於一。 |
IDataObject | cidl 參數可以大於或等於一。 |
IDropTarget | cidl 參數只能是一個。 |
IExtractIcon | cidl 參數只能是一個。 |
IQueryInfo | cidl 參數只能是一個。 |
建議您使用在 Objbase.h 中定義的 IID_PPV_ARGS 宏來封裝 riid 和 ppv 參數。 此宏會根據 ppv 中值所指向的介面提供正確的 IID,這可消除 riid 中可能導致非預期結果的編碼錯誤的可能性。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | shobjidl_core.h (包括 Shobjidl.h) |
Dll | Shell32.dll (4.0 版或更新版本) |