Интерфейс IShellWindows (exdisp.h)

Предоставляет доступ к коллекции открытых окон оболочки.

Наследование

Интерфейс IShellWindows наследуется от интерфейса IDispatch . IShellWindows также имеет следующие типы элементов:

Методы

Интерфейс IShellWindows содержит следующие методы.

 
IShellWindows::_NewEnum

Извлекает перечислитель для коллекции окон оболочки.
IShellWindows::FindWindowSW

Находит окно в коллекции окон оболочки и возвращает дескриптор окна и интерфейс IDispatch.
IShellWindows::get_Count

Возвращает количество окон в коллекции окон оболочки.
IShellWindows::Item

Возвращает зарегистрированное окно оболочки для указанного индекса.
IShellWindows::OnActivated

Происходит при изменении состояния активации окна оболочки.
IShellWindows::OnCreated

Происходит при создании нового окна оболочки для кадра.
IShellWindows::OnNavigate

Происходит при переходе окна оболочки в новое расположение.
IShellWindows::P rocessAttachDetach

Не рекомендуется. Всегда возвращает S_OK.
IShellWindows::Register

Регистрирует открытое окно как окно оболочки; окно задается дескриптором.
IShellWindows::RegisterPending

Регистрирует ожидающее окно в качестве окна оболочки; окно задается абсолютным значением PIDL.
IShellWindows::Revoke

Отменяет регистрацию окна оболочки и удаляет окно из коллекции окон оболочки.

Комментарии

Окно оболочки — это окно, зарегистрированное путем вызова IShellWindows::Register или IShellWindows::RegisterPending. После регистрации указанное окно добавляется в коллекцию окон оболочки и предоставляется файл cookie, который однозначно идентифицирует окно в коллекции. Окно можно отменить, вызвав метод IShellWindows::Revoke.

Коллекция окон оболочки включает окна проводника и окна веб-браузера Internet Обозреватель и сторонние веб-браузеры). Обычно каждое окно оболочки реализует IDispatch; IShellWindows::Item и IShellWindows::FindWindowSW предоставляют способы доступа к интерфейсу IDispatch окна оболочки . Дополнительные сведения см. в разделах Интерфейс диспетчеризации и Функции автоматизации.

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
Header exdisp.h

См. также раздел

CoCreateInstance

CoInitialize

DShellWindowsEvents

IDispatch

ShellWindows