bug #12465: QueryInterface now creates an nsScriptableRegion instance, when queried for nsIScriptableRegion.

This commit is contained in:
beard%netscape.com 1999-09-05 18:44:56 +00:00
Родитель 9cecbfb42e
Коммит 25883254da
1 изменённых файлов: 27 добавлений и 5 удалений

Просмотреть файл

@ -17,9 +17,9 @@
*/ */
#include "nsRegionMac.h" #include "nsRegionMac.h"
#include "nsScriptableRegion.h"
#include "prmem.h" #include "prmem.h"
NS_EXPORT nsNativeRegionPool sNativeRegionPool; NS_EXPORT nsNativeRegionPool sNativeRegionPool;
//------------------------------------------------------------------------ //------------------------------------------------------------------------
@ -105,9 +105,6 @@ void nsNativeRegionPool::ReleaseRegion(RgnHandle aRgnHandle)
#pragma mark - #pragma mark -
//------------------------------------------------------------------------
static NS_DEFINE_IID(kRegionIID, NS_IREGION_IID);
//--------------------------------------------------------------------- //---------------------------------------------------------------------
@ -128,10 +125,35 @@ nsRegionMac::~nsRegionMac()
} }
} }
NS_IMPL_QUERY_INTERFACE(nsRegionMac, kRegionIID);
NS_IMPL_ADDREF(nsRegionMac); NS_IMPL_ADDREF(nsRegionMac);
NS_IMPL_RELEASE(nsRegionMac); NS_IMPL_RELEASE(nsRegionMac);
NS_IMETHODIMP nsRegionMac::QueryInterface(REFNSIID aIID, void** aInstancePtr)
{
if (NULL == aInstancePtr) {
return NS_ERROR_NULL_POINTER;
}
*aInstancePtr = NULL;
if (aIID.Equals(NS_GET_IID(nsIRegion)) || aIID.Equals(NS_GET_IID(nsISupports))) {
*aInstancePtr = (void*) this;
NS_ADDREF_THIS();
return NS_OK;
}
if (aIID.Equals(NS_GET_IID(nsIScriptableRegion))) {
nsScriptableRegion* scriptableRegion = new nsScriptableRegion(this);
if (scriptableRegion != nsnull) {
*aInstancePtr = (void*) scriptableRegion;
NS_ADDREF(scriptableRegion);
return NS_OK;
}
return NS_ERROR_OUT_OF_MEMORY;
}
return NS_NOINTERFACE;
}
//--------------------------------------------------------------------- //---------------------------------------------------------------------
nsresult nsRegionMac::Init(void) nsresult nsRegionMac::Init(void)