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