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