getElementById() gibt immer ein IHTMLElement pointer zurück, für alle Elemente. Wenn du also ein IHTMLInputElement willst, dann musst du das erst danach mit QueryInterface() von dem IHTMLElement pointer erfragen.
Du rufst hier also nicht get_value() auf, sondern was auch immer an gleicher Stelle im IHTMLElement VTable steht. Das ist natürlich falsch. Einfach noch ein QueryInterface() (und passendes Release()) dazwischen packen und dann sollte das klappen.
WebGadget: 'Grosse' Datenmengen an Callback übermitteln
ah, jetzt ja!freak hat geschrieben:Einfach noch ein QueryInterface() (und passendes Release()) dazwischen packen und dann sollte das klappen.

Code: Alles auswählen
#Window=0
#WebGadget=0
If OpenWindow(#Window, #PB_Ignore, #PB_Ignore, 300, 300, "")
If CreateGadgetList(WindowID(#Window))
WebGadget(#WebGadget, 0, 0, 300, 300, "C:\test.html")
; get webgadgets IWebBrowser2 interface:
Browser.IWebBrowser2 = GetWindowLong_(GadgetID(#WebGadget), #GWL_USERDATA)
; wait for page to be loaded..
Repeat
While WindowEvent(): Delay(1): Wend
Until GetGadgetAttribute(#WebGadget, #PB_Web_Busy) = 0
If Browser\get_Document(@DocumentDispatch.IDispatch) = #S_OK
If DocumentDispatch\QueryInterface(?IID_IHTMLDocument3, @Document.IHTMLDocument3) = #S_OK
If Document\getElementById("MeinTextFeld", @HTMLElement.IHTMLElement) = #S_OK
If HTMLElement\QueryInterface(?IID_IHTMLInputElement, @HTMLInputElement.IHTMLInputElement) = #S_OK
If HTMLInputElement\get_Value(@bstr) = #S_OK
If bstr
Value.s = PeekS(bstr, -1, #PB_Unicode)
Debug ">>" + Value + "<<"
SysFreeString_(bstr)
EndIf
EndIf
HTMLInputElement\Release()
EndIf
HTMLElement\Release()
EndIf
Document\Release()
EndIf
DocumentDispatch\Release()
EndIf
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
EndIf
End
DataSection
IID_IHTMLDocument3: ; {3050f485-98b5-11cf-bb82-00aa00bdce0b}
Data.l $3050F485
Data.w $98B5, $11CF
Data.b $BB, $82, $00, $AA, $00, $BD, $CE, $0B
IID_IHTMLInputElement: ; {3050f5d2-98b5-11cf-bb82-00aa00bdce0b}
Data.l $3050F5D2
Data.w $98B5, $11CF
Data.b $BB, $82, $00, $AA, $00, $BD, $CE, $0B
EndDataSection

Grüße ... Kiffi
a²+b²=mc²