IAssocHandler::Invoke 方法 (shobjidl_core.h)
直接叫用相關聯的處理程式。
語法
HRESULT Invoke(
[in] IDataObject *pdo
);
參數
[in] pdo
類型: IDataObject*
IDataObject 的指標,代表要叫用處理程序的選取專案。 請注意,您不應該使用選取多個專案來呼叫 IAssocHandler::Invoke 。 如果您有多個專案,請改為呼叫 IAssocHandler::CreateInvoker 。 如需詳細資訊,請參閱。
傳回值
類型: 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) |