Форум: "Прочее";
Текущий архив: 2006.08.06;
Скачать: [xml.tar.bz2];
ВнизРаботал ли кто с Active Accessibility? Найти похожие ветки
← →
Gero © (2006-07-06 15:14) [0]Возникла проблема. Собственно, нужно получить IHTMLWindow2 окна Internet Explorer, зная Handle окна.
Написал такой код, используя Active Accessibility:
function GetIWindowFromHandle(Wnd: THandle): IHTMLWindow2;
var
Acc: IAccessible;
SProv: IServiceProvider;
Disp: IDispatch;
Window: IHTMLWindow2;
Hr: HRESULT;
begin
Result := nil;
if Assigned(AccessibleObjectFromWindow) then
begin
Hr := AccessibleObjectFromWindow(Wnd, OBJID_WINDOW, @IID_IAccessible, Disp);
if Succeeded(Hr) then
begin
Acc := Disp as IAccessible;
Hr := Acc.QueryInterface(IID_IServiceProvider, SProv);
if Succeeded(Hr) then
begin
Hr := SProv.QueryService(IHTMLWindow2, IHTMLWindow2, Window);
// Window почему-то равен nil
end;
end;
end;
end;
Собственно все проходит нормально, я получаю ссылку на ServiceProvider, а затем по идее, должен получить ссылку на IHTMLWindow2, путем вызова QueryService, но этого почему-то не происходит.
Если кто сталкивался с подобным, надеюсь на помощь.
← →
Ломброзо © (2006-07-06 15:37) [1]Оно?
http://support.microsoft.com/kb/q249232/
← →
Ломброзо © (2006-07-06 15:40) [2]Там же и второй способ, попроще
http://support.microsoft.com/kb/176792/EN-US/
Указатель на окно, разумеется, нужно получить от документа
← →
Gero © (2006-07-07 00:52) [3]Спасибо, пригодилось.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2006.08.06;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.016 c