共用方式為


IAssocHandler::CreateInvoker 方法 (shobjidl_core.h)

擷取 對象,這個物件會啟用目前選取範圍上相關聯處理程序的調用。 叫用者包含驗證目前選取範圍是否受到支援的能力。

語法

HRESULT CreateInvoker(
  [in]  IDataObject          *pdo,
  [out] IAssocHandlerInvoker **ppInvoker
);

參數

[in] pdo

類型: IDataObject*

IDataObject 的指標,代表要叫用處理程序的選取專案或專案。 請注意,如果您只有單一專案, IAssocHandler::Invoke 可能是更好的選擇。 如需詳細資訊,請參閱。

[out] ppInvoker

類型: IAssocHandlerInvoker**

當這個方法傳回時,會包含 IAssocHandlerInvoker 物件的指標位址。 這個對像是用來在確保相關聯處理程式支持選取的項目之後叫用功能表項。

傳回值

類型: HRESULT

如果此方法成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。

備註

IAssocHandler 物件通常用於填入 [開啟方式 ] 功能表。 選取其中一個功能表項時,會呼叫這個方法來啟動所選的應用程式。

叫用和 CreateInvoker

這些方法所使用的 IDataObject 可以代表單一檔案,也可以代表多個檔案的選取範圍。 並非所有應用程式都支援多個檔案選項。 支援該案例的應用程式可能會強制執行其他限制,例如可以一次開啟的檔案數目,或可接受的檔類型組合。

因此,應用程式通常必須判斷處理程式是否支援選取專案,然後再嘗試叫用處理程式。 例如,只有在應用程式知道該處理程式支援有問題的選取專案時,應用程式才會啟用功能表項。

通常可以放心地假設應用程式將支援單一項目的調用;在這些情況下,應用程式通常會呼叫 IAssocHandler::Invoke

針對多個選取案例,應用程式應該呼叫 IAssocHandler::CreateInvoker。 該方法會擷取 IAssocHandlerInvoker 物件,讓呼叫端應用程式先檢查選取專案是否支援 (SupportsSelection) ,然後叫用處理程式 (Invoke) 。

IAssocHandler::Invoke 可以在選取多個檔案時呼叫,但不建議這麼做,因為涉及大型處理負載,而且不保證成功。

規格需求

需求
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平台 Windows
標頭 shobjidl_core.h (包括 Shobjidl.h)

另請參閱

IAssocHandler

IAssocHandler::Invoke

IEnumAssocHandlers