Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unit Unit1;
- interface
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls, CefVcl, CefLib;
- type
- TMyRenderProcessHandler = class(TCefRenderProcessHandlerOwn)
- protected
- function OnBeforeNavigation(const browser: ICefBrowser;
- const frame: ICefFrame; const request: ICefRequest;
- navigationType: TCefNavigationType; isRedirect: Boolean): Boolean;
- override;
- end;
- type
- TForm1 = class(TForm)
- procedure FormCreate(Sender: TObject);
- private
- FChromium: TChromium;
- public
- { Public declarations }
- end;
- var
- Form1: TForm1;
- MiddleDown: Boolean;
- implementation
- {$R *.dfm}
- function MouseProc(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
- var
- HookStruct: TMouseHookStruct;
- begin
- HookStruct := PMouseHookStruct(lParam)^;
- if (nCode >= 0) then
- begin
- case wParam of
- WM_MBUTTONDOWN: MiddleDown := True;
- WM_LBUTTONDOWN, WM_RBUTTONDOWN: MiddleDown := False;
- end;
- end;
- Result := CallNextHookEx(0, nCode, wParam, lParam);
- end;
- procedure TForm1.FormCreate(Sender: TObject);
- var
- ThreadID: DWORD;
- begin
- FChromium := TChromium.Create(Self);
- FChromium.Parent := Self;
- FChromium.SetBounds(8, 8, 500, 500);
- FChromium.Load('http://www.google.com');
- ThreadID := GetWindowThreadProcessId(FChromium.Browser.Host.WindowHandle, nil);
- SetWindowsHookEx(WH_MOUSE, MouseProc, 0, ThreadID);
- end;
- { TMyRenderProcessHandler }
- function TMyRenderProcessHandler.OnBeforeNavigation(
- const browser: ICefBrowser; const frame: ICefFrame;
- const request: ICefRequest; navigationType: TCefNavigationType;
- isRedirect: Boolean): Boolean;
- begin
- Result := False;
- if MiddleDown and (navigationType = NAVIGATION_LINK_CLICKED) then
- begin
- Result := True;
- ShowMessage('Link was clicked by a middle mouse button!');
- end;
- end;
- initialization
- CefRenderProcessHandler := TMyRenderProcessHandler.Create;
- end.
Advertisement
Add Comment
Please, Sign In to add comment