IShellWindows 接口 (exdisp.h)

提供对打开的 Shell 窗口集合的访问。

继承

IShellWindows 接口继承自 IDispatch 接口。 IShellWindows 还具有以下类型的成员:

方法

IShellWindows 接口包含以下方法。

 
IShellWindows::_NewEnum

检索 Shell 窗口集合的枚举器。
IShellWindows::FindWindowSW

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

获取 Shell 窗口集合中的窗口数。
IShellWindows::Item

返回指定索引的已注册 Shell 窗口。
IShellWindows::OnActivated

在 Shell 窗口的激活状态更改时发生。
IShellWindows::OnCreated

在为框架创建新的 Shell 窗口时发生。
IShellWindows::OnNavigate

在 Shell 窗口导航到新位置时发生。
IShellWindows::P rocessAttachDetach

已弃用。 始终返回 S_OK。
IShellWindows::Register

将打开的窗口注册为 Shell 窗口;窗口由句柄指定。
IShellWindows::RegisterPending

将挂起的窗口注册为 Shell 窗口;窗口由绝对 PIDL 指定。
IShellWindows::Revoke

撤销 Shell 窗口的注册,并从 Shell 窗口集合中删除该窗口。

注解

Shell 窗口是通过调用 IShellWindows::Register 或 IShellWindows::RegisterPending 注册的窗口。 注册后,指定的窗口将添加到 Shell 窗口的集合中,并授予一个唯一标识集合中窗口的 Cookie。 可以通过调用 IShellWindows::Revoke 取消注册窗口。

Shell Windows 集合包括文件资源管理器窗口和 Web 浏览器窗口 Internet Explorer 和第三方 Web 浏览器) 。 通常每个 Shell 窗口都实现 IDispatch; IShellWindows::ItemIShellWindows::FindWindowSW 提供了访问 Shell 窗口的 IDispatch 接口的方法。 有关详细信息,请参阅 Dispatch Interface and Automation Functions

IID IID_IShellWindows (85CB6900-4D95-11CF-960C-0080C7F4EE85)
CLSID CLSID_ShellWindows (9BA05972-F6A8-11CF-A442-00A0C90A8F39)
 

以下示例演示如何检索 IShellWindows 实例。

#include "exdisp.h"
                
...

IShellWindows *psw;
HRESULT hr;

hr = CoInitialize(NULL);
if (SUCCEEDED(hr))
{
    hr = CoCreateInstance(
        CLSID_ShellWindows,
        NULL,
        CLSCTX_ALL,
        IID_IShellWindows,
        (void**)&psw
    );
    
    if (SUCCEEDED(hr))
    {
        // Use the IShellWindows instance...
        
        psw->Release();
    }
}

要求

要求
目标平台 Windows
标头 exdisp.h

另请参阅

CoCreateInstance

CoInitialize

DShellWindowsEvents

IDispatch

ShellWindows