IAssocHandler::Invoke 方法 (shobjidl_core.h)

直接调用关联的处理程序。

语法

HRESULT Invoke(
  [in] IDataObject *pdo
);

参数

[in] pdo

类型: IDataObject*

指向 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)