Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Блокировка рисунков в WebBrowser'e [D6, WinXP]


НовичОк ©   (2004-08-07 04:10:00) 

Как можно предотвратить загрузку картинок при просмотре страницы в WebBrowser'e?

Заранее спасибо за ответы!


VID   (2004-08-07 13:40:00) [1]

юзаем TEmbeddedWB


easy   (2004-08-07 11:52:00) [2]

unit WebBrowseWithImgControl;

interface

uses
 Windows, Messages, SysUtils, Classes, Controls, OleCtrls, SHDocVw,activex;

type
 TWebBrowseWithImgControl = class(TWebBrowser, IDispatch)
 private
   FDisplayImades: Boolean;
   { Private declarations }
 protected
   function IDispatch.Invoke = Invoke;
   function Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
     Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HResult;
     stdcall;
   { Protected declarations }
 public
   constructor Create(AOwner: TComponent); override;
   { Public declarations }
 published
   property DisplayImages: boolean read FDisplayImades write FDisplayImades default true;
   { Published declarations }
 end;

procedure Register;

implementation

procedure Register;
begin
 RegisterComponents('Internet', [TWebBrowseWithImgControl]);
end;

{ TWebBrowseWithImgControl }

constructor TWebBrowseWithImgControl.Create(AOwner: TComponent);
begin
 inherited;
 FDisplayImades := true;
end;

function TWebBrowseWithImgControl.Invoke(DispID: Integer; const IID: TGUID;
 LocaleID: Integer; Flags: Word; var Params; VarResult, ExcepInfo,
 ArgErr: Pointer): HResult;
const
 DISPID_AMBIENT_DLCONTROL = -5512;
 DLCTL_DLIMAGES = $00000010;

begin
if (Flags and DISPATCH_PROPERTYGET <> 0) and (VarResult <> nil) then
 begin
   Result := S_OK;
   case DispID of DISPID_AMBIENT_DLCONTROL:
   if FDisplayImades then
     PVariant(VarResult)^ := Integer(DLCTL_DLIMAGES) else
     PVariant(VarResult)^ := Integer(not DLCTL_DLIMAGES);
   else
     Result := DISP_E_MEMBERNOTFOUND;
   end;
 end else
   Result := DISP_E_MEMBERNOTFOUND;
end;

end.


примерно так..


easy   (2004-08-07 10:33:00) [3]

написать наследника WebBrowser'а, перекрыть ему Invoke а там -

function TMyWebBrowser.Invoke(DispID: Integer; const IID: TGUID;
 LocaleID: Integer; Flags: Word; var Params; VarResult, ExcepInfo,
 ArgErr: Pointer): HResult;
const
 DISPID_AMBIENT_DLCONTROL = -5512;
 DLCTL_DLIMAGES = $00000010;
begin
if (Flags and DISPATCH_PROPERTYGET <> 0) and (VarResult <> nil) then
 begin
   Result := S_OK;
   case DispID of DISPID_AMBIENT_DLCONTROL:
     PVariant(VarResult)^ := Integer(not DLCTL_DLIMAGES);
   else
     Result := DISP_E_MEMBERNOTFOUND;
   end;
 end else
   Result := DISP_E_MEMBERNOTFOUND;
end;


примерно так..


Наверх

Титульная страница Поиск, карта сайта Написать письмо