Added |do_CreateInstance()|, |do_GetService()| both by CID and ProgID. See bugs #17364, #17448. r={travis, dp}

git-svn-id: svn://10.0.0.236/trunk@53045 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
scc%netscape.com
1999-11-10 00:14:54 +00:00
parent 34b13b24f7
commit 9fec22a94d
5 changed files with 231 additions and 4 deletions

View File

@@ -96,13 +96,23 @@ static NS_DEFINE_CID(kNoCID, NS_NO_CID);
nsresult
nsCreateInstance::operator()( const nsIID& aIID, void** answer ) const
nsCreateInstanceByCID::operator()( const nsIID& aIID, void** aInstancePtr ) const
{
nsresult status = nsComponentManager::CreateInstance(mCID, mOuter, aIID, aInstancePtr);
if ( mErrorPtr )
*mErrorPtr = status;
return status;
}
nsresult
nsCreateInstanceByProgID::operator()( const nsIID& aIID, void** aInstancePtr ) const
{
nsresult status;
if ( mFactory )
status = mFactory->CreateInstance(mOuter, aIID, answer);
if ( mProgID )
status = nsComponentManager::CreateInstance(mProgID, mOuter, aIID, aInstancePtr);
else
status = NS_ERROR_NULL_POINTER;
status = NS_ERROR_NULL_POINTER;
if ( mErrorPtr )
*mErrorPtr = status;