IShellWindows::FindWindowSW 方法 (exdisp.h)

在 Shell 窗口集合中查找一个窗口,并返回该窗口的句柄和 IDispatch 接口。

语法

HRESULT FindWindowSW(
  [in]          VARIANT   *pvarLoc,
  [in]          VARIANT   *pvarLocRoot,
  [in]          int       swClass,
  [out]         long      *phwnd,
                int       swfwOptions,
  [out, retval] IDispatch **ppdispOut
);

参数

[in] pvarLoc

类型: VARIANT*

类型为 VT_VARIANT 的 VARIANT |VT_BYREF。 将 pvarLoc 的值设置为指定要查找的窗口的绝对 PIDL (PIDLIST_ABSOLUTE) 。 (请参阅 remarks.)

[in] pvarLocRoot

类型: VARIANT*

必须为 NULL 或 VT_EMPTY 类型。

[in] swClass

类型: int

一个或多个 ShellWindowTypeConstants 标志,用于指定要包含在搜索中的窗口类型。

[out] phwnd

类型: long*

与指定搜索条件匹配的窗口的句柄;如果未找到此类窗口,则为 NULL

swfwOptions

类型: int

一个或多个指定搜索选项 的 ShellWindowFindWindowOptions 标志。

[out, retval] ppdispOut

类型: IDispatch**

对窗口的 IDispatch 接口的引用;如果未找到此类窗口,则为 NULL

返回值

类型: HRESULT

以下值之一或标准结果代码。

返回代码 说明
S_OK
找到与指定搜索条件匹配的窗口。
S_FALSE
找不到与指定搜索条件匹配的窗口。
E_NOINTERFACE
找到窗口,但无法获取对窗口 IDispatch 接口的引用。 仅当设置了 SWFO_NEEDDISPATCH 标志时发生。
E_PENDING
已找到一个窗口,但该窗口正在等待打开。 仅当设置了 SWFO_INCLUDEPENDING 标志时发生。

备注

如果设置了 SWFO_COOKIEPASSED 标志, pvarLoc 将解释为 Cookie 而不是 PIDL。

要求

   
目标平台 Windows
标头 exdisp.h
DLL Shdocvw.dll (版本 5.00.2014.0216 或更高版本)