Made webshell implement nsIInterfaceRequestor. This paves the way for me to start changing people to not use nsIContentViewerContainer::QueryCapability(). r=pavlov

git-svn-id: svn://10.0.0.236/trunk@53404 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
tbogard%aol.net
1999-11-13 04:06:23 +00:00
parent 9e3940cd0d
commit fc9e43113e
2 changed files with 68 additions and 50 deletions

View File

@@ -20,6 +20,7 @@
* Contributor(s):
*/
#include "nsIWebShell.h"
#include "nsIInterfaceRequestor.h"
#include "nsIDocumentLoader.h"
#include "nsIContentViewer.h"
#include "nsIDocumentViewer.h"
@@ -156,7 +157,9 @@ class nsWebShell : public nsIWebShell,
public nsIProgressEventSink, // should go away (nsIDocLoaderObs)
public nsIPrompt,
public nsIRefreshURI,
public nsIClipboardCommands
public nsIClipboardCommands,
public nsIInterfaceRequestor
{
public:
nsWebShell();
@@ -167,6 +170,9 @@ public:
// nsISupports
NS_DECL_ISUPPORTS
// nsIInterfaceRequestor
NS_DECL_NSIINTERFACEREQUESTOR
// nsIContentViewerContainer
NS_IMETHOD QueryCapability(const nsIID &aIID, void** aResult);
NS_IMETHOD Embed(nsIContentViewer* aDocViewer,
@@ -766,9 +772,8 @@ nsWebShell::QueryInterface(REFNSIID aIID, void** aInstancePtr)
{
nsresult rv = NS_NOINTERFACE;
if (NULL == aInstancePtr) {
return NS_ERROR_NULL_POINTER;
}
NS_ENSURE_ARG_POINTER(aInstancePtr);
if (aIID.Equals(kIWebShellServicesIID)) {
*aInstancePtr = (void*)(nsIWebShellServices*)this;
NS_ADDREF_THIS();
@@ -811,7 +816,7 @@ nsWebShell::QueryInterface(REFNSIID aIID, void** aInstancePtr)
NS_ADDREF_THIS();
return NS_OK;
}
if (aIID.Equals(nsIPrompt::GetIID())) {
if (aIID.Equals(NS_GET_IID(nsIPrompt))) {
*aInstancePtr = (void*) ((nsIPrompt*)this);
NS_ADDREF_THIS();
return NS_OK;
@@ -845,29 +850,33 @@ nsWebShell::QueryInterface(REFNSIID aIID, void** aInstancePtr)
return rv;
}
NS_IMETHODIMP
nsWebShell::GetInterface(const nsIID &aIID, void** aInstancePtr)
{
NS_ENSURE_ARG_POINTER(aInstancePtr);
if(aIID.Equals(NS_GET_IID(nsILinkHandler)))
{
*aInstancePtr = NS_STATIC_CAST(nsILinkHandler*, this);
NS_ADDREF_THIS();
return NS_OK;
}
else if(aIID.Equals(NS_GET_IID(nsIScriptContextOwner)))
{
*aInstancePtr = NS_STATIC_CAST(nsIScriptContextOwner*, this);
NS_ADDREF_THIS();
return NS_OK;
}
else if(mPluginManager) //XXX this seems a little wrong. MMP
return mPluginManager->QueryInterface(aIID, aInstancePtr);
return NS_NOINTERFACE;
}
NS_IMETHODIMP
nsWebShell::QueryCapability(const nsIID &aIID, void** aInstancePtr)
{
if (nsnull == aInstancePtr) {
return NS_ERROR_NULL_POINTER;
}
if (aIID.Equals(kILinkHandlerIID)) {
*aInstancePtr = (void*) ((nsILinkHandler*)this);
NS_ADDREF_THIS();
return NS_OK;
}
if (aIID.Equals(kIScriptContextOwnerIID)) {
*aInstancePtr = (void*) ((nsIScriptContextOwner*)this);
NS_ADDREF_THIS();
return NS_OK;
}
//XXX this seems a little wrong. MMP
if (nsnull != mPluginManager)
return mPluginManager->QueryInterface(aIID, aInstancePtr);
return NS_NOINTERFACE;
return GetInterface(aIID, aInstancePtr);
}
NS_IMETHODIMP