Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Как запретить всплывающее меню при нажатии правой кнопки мыши?

01.01.2007

Взято из FAQ:https://blackman.km.ru/myfaq/cont4.phtml

Перевод материала с сайта members.home.com/hfournier/webbrowser.htm

Вам необходимо включить интерфейс IDocHostUIHandler.

Для этого Вам понадобятся два файла: ieConst.pas и IEDocHostUIHandler.pas.

В методе ShowContextMenu интерфейса IDocHostUIHandler,

необходимо изменить возвращаемое значение с E_NOTIMPL на S_OK.

После этого меню перестанет реагировать на правое нажатие кнопки мыши.

Добавьте два модуля, упомянутые выше в секцию Uses и добавьте следующий код:

... var
Form1
: TForm1;
FDocHostUIHandler: TDocHostUIHandler;
...
implementation
...
procedure TForm1
.FormCreate(Sender: TObject);
begin
 
FDocHostUIHandler := TDocHostUIHandler.Create;
end;
 
procedure TForm1
.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 
FDocHostUIHandler.Free;
end;
procedure TForm1
.WebBrowser1NavigateComplete2(Sender: TObject;
pDisp
: IDispatch; var URL: OleVariant);
var
  hr
: HResult;
 
CustDoc: ICustomDoc;
begin
  hr
:= WebBrowser1.Document.QueryInterface(ICustomDoc, CustDoc);
 
if hr = S_OK then CustDoc.SetUIHandler(FDocHostUIHandler);
end;