En un peu plus élégant:
Code : Tout sélectionner
;
; Disable WebGadget RightClick [Using a hook]
;
Global hHook.l
ProcedureDLL DisableWebGadgetRightClick(nCode, wParam, lParam)
Static *MOUSESTRUCT.MOUSEHOOKSTRUCT,Name.s
If nCode < 0
ProcedureReturn CallNextHookEx_(hHook, nCode, wParam, lParam)
EndIf
*MOUSESTRUCT.MOUSEHOOKSTRUCT = lParam
Select wParam
Case #WM_RBUTTONUP,#WM_RBUTTONDOWN
Name=Space(100)
GetClassName_(*MOUSESTRUCT\hwnd,@Name,99)
If Name="Internet Explorer_Server"
ProcedureReturn 1
EndIf
EndSelect
ProcedureReturn CallNextHookEx_(hHook, nCode, wParam, lParam)
EndProcedure
;
If OpenWindow(0,0,0,600,600, "Disable WebGadget right-click", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(0))
WebGadgetHandle = WebGadget(1,0,0,600,400,"http://www.purebasic.com")
;
hHook = SetWindowsHookEx_(#WH_MOUSE, @DisableWebGadgetRightClick(), GetModuleHandle_(0), GetWindowThreadProcessId_(WindowID(0),0))
;
StringGadget(2, 0, 401, 600, 200, "Right-click still works here !")
EndIf
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
EndSelect
ForEver
UnhookWindowsHookEx_(hHook)
EndIf