共用方式為


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 宏來封裝 riidppv 參數。 此宏會根據 ppv 中值所指向的介面提供正確的 IID,這可消除 riid 中可能導致非預期結果的編碼錯誤的可能性。

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 shobjidl_core.h (包括 Shobjidl.h)
Dll Shell32.dll (4.0 版或更新版本)

另請參閱

IShellFolder

IShellFolder2