![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Блокировка рисунков в 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;
примерно так..