Code: Select all
Enumeration
#Web_0
#Window_0
#String_0
#Button_0
EndEnumeration
Procedure.l WebBrowser_Scroll(Gadget.l,X.l,Y.l)
If X = #Null And Y = #Null
ProcedureReturn #False
EndIf
Res.l = #False
IWebBrowser2.IWebBrowser2 = GetWindowLong_(GadgetID(Gadget),#GWL_USERDATA)
IDispatch.IDispatch = #Null
IHTMLDocument2.IHTMLDocument2 = #Null
IHTMLElement.IHTMLElement = #Null
IHTMLElement2.IHTMLElement2 = #Null
If IWebBrowser2
If IWebBrowser2\get_document(@IDispatch) = #S_OK ;And IDispatch
If IDispatch\QueryInterface(?IID_IHTMLDocument2, @IHTMLDocument2.IHTMLDocument2) = #S_OK And IHTMLDocument2
If IHTMLDocument2\get_body(@IHTMLElement.IHTMLElement) = #S_OK And IHTMLElement
If IHTMLElement\QueryInterface(?IID_IHTMLElement2,@IHTMLElement2) = #S_OK And IHTMLElement2
If IHTMLElement2\put_scrollTop(Y) = #S_OK And IHTMLElement2\put_scrollLeft(X) = #S_OK
Res = #True
EndIf
IHTMLElement2\Release()
EndIf
IHTMLElement\Release()
EndIf
IHTMLDocument2\Release()
EndIf
IDispatch\Release()
EndIf
IWebBrowser2\Release()
EndIf
ProcedureReturn Res
EndProcedure
If OpenWindow(#Window_0,#Null,#Null,1000,700,#NULL$,#PB_Window_SystemMenu)
If CreateGadgetList(WindowID(#Window_0))
WebGadget(#Web_0,#Null,20,1000, 700, "about:blank")
ButtonGadget(#Button_0,#Null,#Null,170,20,"Scroll")
EndIf
Repeat
EventID = WaitWindowEvent()
Select EventID
Case #PB_Event_Gadget
Select EventGadget()
Case #Button_0
For i = 1 To 100
WebBrowser_Scroll(#Web_0,100,100)
Debug i
Next i
EndSelect
EndSelect
Until EventID = #PB_Event_CloseWindow
EndIf
DataSection
IID_IHTMLDocument2:
Data.l $332C4425
Data.w $26CB, $11D0
Data.b $B4, $83, $00, $C0, $4F, $D9, $01, $19
IID_IHTMLElement2:
Data.l $3050F434
Data.w $98B5, $11CF
Data.b $BB, $82, $00, $AA, $00, $BD, $CE, $0B
EndDataSection