im trying to extend pelle's win32 sample code by adding a URI
listener.

i inherited & stubbed nsIURIContentListener in webbrowserchrome.

i added this line after baseWindow->Create():

    //rv returns 0
    rv = webBrowser-
>SetParentURIContentListener((nsIURIContentListener*)(chrome.get()) );

i get a unhandled exception (0×0041b025) when i click on a link. here
is the stack:

nsCOMPtr_base::assign_with_AddRef()
nsCOMPtr::operator=(nsIWebBrowser * rhs=0×025371d0)
WebBrowserChrome::SetWebBrowser(nsIWebBrowser *
aWebBrowser=0×025371d0)

im new to mozilla stuff - am i creating the listener correctly? do i
need to replace the assignment with some sort of addref?

thanks
amitabh

------------------------------------

NS_IMETHODIMP WebBrowserChrome::SetWebBrowser(nsIWebBrowser *
aWebBrowser)
{
    mWebBrowser = aWebBrowser;
    return NS_OK;
}

-----------------------------------

nsresult MozEmbed::CreateBrowser(void* aNativeWindow, PRInt32 x,
PRInt32 y, PRInt32 width, PRInt32 height)
{
    nativeWindow = aNativeWindow;

    nsresult rv;

    nsCOMPtr<nsIBaseWindow> baseWindow;
    webBrowser = do_CreateInstance(NS_WEBBROWSER_CONTRACTID, &rv);
    if (NS_FAILED(rv)) {
            printf("do_CreateInstance webBrowser\n");
    }
    baseWindow = do_QueryInterface(webBrowser);
    rv = baseWindow->InitWindow(nativeWindow, 0, x, y, width, height);
    if (NS_FAILED(rv)) {
            printf("InitWindow\n");
    }

    nsIWebBrowserChrome **aNewWindow = getter_AddRefs(chrome);
    CallQueryInterface(static_cast<nsIWebBrowserChrome*>(new
WebBrowserChrome(this)), aNewWindow);
    rv = webBrowser->SetContainerWindow(chrome.get());
    chrome->SetWebBrowser(webBrowser);

    rv = baseWindow->Create();
    if (NS_FAILED(rv)) {
            printf("Create\n");
    }

    //*** AG - listener code ***
    rv = webBrowser-
>SetParentURIContentListener((nsIURIContentListener*)(chrome.get()) );

    rv =baseWindow->SetVisibility(PR_TRUE);
    if (NS_FAILED(rv)) {
            printf("SetVisibility\n");
    }

    webNavigation = do_QueryInterface(webBrowser);

    SetFocus(true);

    return 0;
}
_______________________________________________
dev-embedding mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-embedding

Reply via email to