Talk:Code snippets:Finding Window Handles
From MDC
How to add this code to a java file to build into an xpi extension?
Looks pretty insane to me. How about this:
nsCOMPtr<nsIInterfaceRequestor> requestor(do_QueryInterface(aWindow, &rv)); NS_ENSURE_SUCCESS(rv, rv); nsCOMPtr<nsIWebNavigation> nav; rv = requestor->GetInterface(NS_GET_IID(nsIWebNavigation), getter_AddRefs(nav)); NS_ENSURE_SUCCESS(rv, rv); nsCOMPtr<nsIDocShellTreeItem> treeItem(do_QueryInterface(nav, &rv)); NS_ENSURE_SUCCESS(rv, rv); nsCOMPtr<nsIDocShellTreeOwner> treeOwner; rv = treeItem->GetTreeOwner(getter_AddRefs(treeOwner)); NS_ENSURE_SUCCESS(rv, rv); requestor = do_QueryInterface(treeOwner, &rv); NS_ENSURE_SUCCESS(rv, rv); nsCOMPtr<nsIXULWindow> xulWindow; rv = requestor->GetInterface(NS_GET_IID(nsIXULWindow), getter_AddRefs(xulWindow)); NS_ENSURE_SUCCESS(rv, rv); nsCOMPtr<nsIDocShell> docShell; rv = xulWindow->GetDocShell(getter_AddRefs(docShell)); NS_ENSURE_SUCCESS(rv, rv); nsCOMPtr<nsIBaseWindow> baseWindow(do_QueryInterface(docShell, &rv)); NS_ENSURE_SUCCESS(rv, rv); nativeWindow theNativeWindow; rv = baseWindow->GetParentNativeWindow( &theNativeWindow ); NS_ENSURE_SUCCESS(rv, rv); HWND hWnd = reinterpret_cast<HWND>(theNativeWindow); NS_ENSURE_TRUE(mWnd, NS_ERROR_UNEXPECTED);
Note that I'm trying to put together some interfaces for native operating system functionality so hopefully they'll be a proper API for this in the future.