Hi all,
based upon basic code from my previous post (Create a BHO with pb) i´m now trying to
retrieve all links of the current page. My Code is as follows:
Doesn´t work ! I used sample C code from SDK to port this to pb
It works until here:
l = pd -> l is not an object
if i try (commenting out l = pd):
l = col.item(BYVAL vi, BYVAL vi) -> gpf at u$ = l.href
Still struggling with Objects. What am i doing wrong ?
Thanks in advance,
Guenther
based upon basic code from my previous post (Create a BHO with pb) i´m now trying to
retrieve all links of the current page. My Code is as follows:
Code:
CLASS CDWebBrowserEvents2 $CLSID_DWEBBROWSEREVENTS2 AS EVENT '*********************************************************************************************** ' catch webrowser event here (not all possible events listed, save if inherits from IDispatch) '*********************************************************************************************** INSTANCE document AS IHTMLDocument2 INTERFACE DWebBrowserEvents2 $IID_DWEBBROWSEREVENTS2 AS EVENT INHERIT IDISPATCH METHOD Form1_WebBrowser1_DocumentComplete <&H00000103> (BYVAL pDisp AS DISPATCH, URL AS VARIANT) '*********************************************************************************************** ' document is available now ' ' MSGBOX "DocumentComplete" + $CRLF + VARIANT$(URL) '*********************************************************************************************** LOCAL ie AS IWebBrowser2 ' Microsoft WebBrowser Object LOCAL col AS IHTMLElementCollection LOCAL l AS IHTMLLinkElement LOCAL n AS LONG LOCAL i AS LONG LOCAL d$ LOCAL u$ ie=pDisp IF ISFALSE(ISOBJECT(ie)) THEN MSGBOX "Unable to create an object reference to the document interface." EXIT METHOD END IF document = ie.document 'get document object col = document.links 'get element collection n = col.length 'property get ' MSGBOX STR$(n) LOCAL pd AS IDISPATCH LOCAL vi AS VARIANT i=1 'retrieve second link vi=i pd = col.item(BYVAL vi, BYVAL vi) 'pd is a valid object !! ' l = col.item(BYVAL vi, BYVAL vi) 'LOCAL riid AS GUID 'LOCAL hr AS LONG ' ' riid = $IID_MSHTML_IHTMLLinkElement ' hr = pd.QueryInterface(riid, BYVAL VARPTR(l)) l = pd 'get link element IF ISFALSE(ISOBJECT(l)) THEN MSGBOX "Unable to create an object reference to the link element." EXIT METHOD END IF u$ = l.href 'get link url ' for i=0 to n 'enumerate all links ' vi=i ' pd = col.item(byval vi, byval vi) ' l = pd ' u$ = l.href ' d$=d$+u$+$crlf ' next i MSGBOX d$ END METHOD METHOD Form1_WebBrowser1_OnQuit <&H000000FD> () ' PURPOSE: Fired when application is quiting. ' EVENTS END docevents END METHOD END INTERFACE END CLASS
Doesn´t work ! I used sample C code from SDK to port this to pb
It works until here:
l = pd -> l is not an object
if i try (commenting out l = pd):
l = col.item(BYVAL vi, BYVAL vi) -> gpf at u$ = l.href
Still struggling with Objects. What am i doing wrong ?
Thanks in advance,
Guenther
Comment