-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathuCEF_LCL_ResponseFilterRef.pas
69 lines (55 loc) · 1.72 KB
/
uCEF_LCL_ResponseFilterRef.pas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
//----------------------------------------
// Copyright © yanghy. All Rights Reserved.
// Licensed under Lazarus.modifiedLGPL
//----------------------------------------
unit uCEF_LCL_ResponseFilterRef;
{$mode objfpc}{$H+}
{$I cef.inc}
interface
uses
uCEFTypes, uCEFResponseFilter,
uCEF_LCL_EventCallback;
type
TResponseFilterRef = class(TCefResponseFilterOwn)
public
InitFilterPtr: Pointer;
FilterPtr: Pointer;
constructor Create; override;
destructor Destroy; override;
protected
function InitFilter: boolean; override;
function Filter(data_in: Pointer; data_in_size: nativeuint; var data_in_read: nativeuint; data_out: Pointer; data_out_size: nativeuint; var data_out_written: nativeuint): TCefResponseFilterStatus; override;
end;
implementation
function TResponseFilterRef.InitFilter(): boolean;
begin
Result := False;
if (InitFilterPtr <> nil) then
begin
TCEFEventCallback.SendEvent(InitFilterPtr, [@Result]);
end;
end;
function TResponseFilterRef.Filter(data_in: Pointer; data_in_size: nativeuint; var data_in_read: nativeuint; data_out: Pointer; data_out_size: nativeuint; var data_out_written: nativeuint): TCefResponseFilterStatus;
var
RetStatus: Integer;
begin
Result := RESPONSE_FILTER_DONE;
if (FilterPtr <> nil) then
begin
TCEFEventCallback.SendEvent(FilterPtr, [data_in, uint32(data_in_size), @data_in_read, data_out, uint32(data_out_size), @data_out_written, @RetStatus]);
Result := TCefResponseFilterStatus(RetStatus);
end;
end;
constructor TResponseFilterRef.Create;
begin
inherited Create;
InitFilterPtr := nil;
FilterPtr := nil;
end;
destructor TResponseFilterRef.Destroy;
begin
inherited Destroy;
InitFilterPtr := nil;
FilterPtr := nil;
end;
end.