michael@0: /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #ifndef nsXPCOM_h__ michael@0: #include "nsXPCOM.h" michael@0: #endif michael@0: michael@0: #ifndef nsCOMPtr_h__ michael@0: #include "nsCOMPtr.h" michael@0: #endif michael@0: michael@0: #include "nsComponentManagerUtils.h" michael@0: #include "nsServiceManagerUtils.h" michael@0: michael@0: #include "nsIComponentManager.h" michael@0: michael@0: #ifndef MOZILLA_INTERNAL_API michael@0: michael@0: nsresult michael@0: CallGetService(const nsCID &aCID, const nsIID &aIID, void **aResult) michael@0: { michael@0: nsCOMPtr servMgr; michael@0: nsresult status = NS_GetServiceManager(getter_AddRefs(servMgr)); michael@0: if (servMgr) michael@0: status = servMgr->GetService(aCID, aIID, aResult); michael@0: return status; michael@0: } michael@0: michael@0: nsresult michael@0: CallGetService(const char *aContractID, const nsIID &aIID, void **aResult) michael@0: { michael@0: nsCOMPtr servMgr; michael@0: nsresult status = NS_GetServiceManager(getter_AddRefs(servMgr)); michael@0: if (servMgr) michael@0: status = servMgr->GetServiceByContractID(aContractID, aIID, aResult); michael@0: return status; michael@0: } michael@0: michael@0: #else michael@0: michael@0: #include "nsComponentManager.h" michael@0: michael@0: nsresult michael@0: CallGetService(const nsCID &aCID, const nsIID &aIID, void **aResult) michael@0: { michael@0: nsComponentManagerImpl *compMgr = nsComponentManagerImpl::gComponentManager; michael@0: if (NS_WARN_IF(!compMgr)) michael@0: return NS_ERROR_NOT_INITIALIZED; michael@0: michael@0: return compMgr->nsComponentManagerImpl::GetService(aCID, aIID, aResult); michael@0: } michael@0: michael@0: nsresult michael@0: CallGetService(const char *aContractID, const nsIID &aIID, void **aResult) michael@0: { michael@0: nsComponentManagerImpl *compMgr = nsComponentManagerImpl::gComponentManager; michael@0: if (NS_WARN_IF(!compMgr)) michael@0: return NS_ERROR_NOT_INITIALIZED; michael@0: michael@0: return compMgr-> michael@0: nsComponentManagerImpl::GetServiceByContractID(aContractID, michael@0: aIID, aResult); michael@0: } michael@0: michael@0: #endif michael@0: michael@0: #ifndef MOZILLA_INTERNAL_API michael@0: michael@0: nsresult michael@0: CallCreateInstance(const nsCID &aCID, nsISupports *aDelegate, michael@0: const nsIID &aIID, void **aResult) michael@0: { michael@0: nsCOMPtr compMgr; michael@0: nsresult status = NS_GetComponentManager(getter_AddRefs(compMgr)); michael@0: if (compMgr) michael@0: status = compMgr->CreateInstance(aCID, aDelegate, aIID, aResult); michael@0: return status; michael@0: } michael@0: michael@0: nsresult michael@0: CallCreateInstance(const char *aContractID, nsISupports *aDelegate, michael@0: const nsIID &aIID, void **aResult) michael@0: { michael@0: nsCOMPtr compMgr; michael@0: nsresult status = NS_GetComponentManager(getter_AddRefs(compMgr)); michael@0: if (compMgr) michael@0: status = compMgr->CreateInstanceByContractID(aContractID, aDelegate, michael@0: aIID, aResult); michael@0: return status; michael@0: } michael@0: michael@0: nsresult michael@0: CallGetClassObject(const nsCID &aCID, const nsIID &aIID, void **aResult) michael@0: { michael@0: nsCOMPtr compMgr; michael@0: nsresult status = NS_GetComponentManager(getter_AddRefs(compMgr)); michael@0: if (compMgr) michael@0: status = compMgr->GetClassObject(aCID, aIID, aResult); michael@0: return status; michael@0: } michael@0: michael@0: nsresult michael@0: CallGetClassObject(const char *aContractID, const nsIID &aIID, void **aResult) michael@0: { michael@0: nsCOMPtr compMgr; michael@0: nsresult status = NS_GetComponentManager(getter_AddRefs(compMgr)); michael@0: if (compMgr) michael@0: status = compMgr->GetClassObjectByContractID(aContractID, aIID, michael@0: aResult); michael@0: return status; michael@0: } michael@0: michael@0: #else michael@0: michael@0: #include "nsComponentManager.h" michael@0: michael@0: nsresult michael@0: CallCreateInstance(const nsCID &aCID, nsISupports *aDelegate, michael@0: const nsIID &aIID, void **aResult) michael@0: { michael@0: nsComponentManagerImpl *compMgr = nsComponentManagerImpl::gComponentManager; michael@0: if (NS_WARN_IF(!compMgr)) michael@0: return NS_ERROR_NOT_INITIALIZED; michael@0: michael@0: return compMgr-> michael@0: nsComponentManagerImpl::CreateInstance(aCID, aDelegate, aIID, aResult); michael@0: } michael@0: michael@0: nsresult michael@0: CallCreateInstance(const char *aContractID, nsISupports *aDelegate, michael@0: const nsIID &aIID, void **aResult) michael@0: { michael@0: nsComponentManagerImpl *compMgr = nsComponentManagerImpl::gComponentManager; michael@0: if (NS_WARN_IF(!compMgr)) michael@0: return NS_ERROR_NOT_INITIALIZED; michael@0: michael@0: return compMgr-> michael@0: nsComponentManagerImpl::CreateInstanceByContractID(aContractID, michael@0: aDelegate, aIID, michael@0: aResult); michael@0: } michael@0: michael@0: nsresult michael@0: CallGetClassObject(const nsCID &aCID, const nsIID &aIID, void **aResult) michael@0: { michael@0: nsComponentManagerImpl *compMgr = nsComponentManagerImpl::gComponentManager; michael@0: if (NS_WARN_IF(!compMgr)) michael@0: return NS_ERROR_NOT_INITIALIZED; michael@0: michael@0: return compMgr-> michael@0: nsComponentManagerImpl::GetClassObject(aCID, aIID, aResult); michael@0: } michael@0: michael@0: nsresult michael@0: CallGetClassObject(const char *aContractID, const nsIID &aIID, void **aResult) michael@0: { michael@0: nsComponentManagerImpl *compMgr = nsComponentManagerImpl::gComponentManager; michael@0: if (NS_WARN_IF(!compMgr)) michael@0: return NS_ERROR_NOT_INITIALIZED; michael@0: michael@0: return compMgr-> michael@0: nsComponentManagerImpl::GetClassObjectByContractID(aContractID, aIID, michael@0: aResult); michael@0: } michael@0: michael@0: #endif michael@0: michael@0: nsresult michael@0: nsCreateInstanceByCID::operator()( const nsIID& aIID, void** aInstancePtr ) const michael@0: { michael@0: nsresult status = CallCreateInstance(mCID, mOuter, aIID, aInstancePtr); michael@0: if ( NS_FAILED(status) ) michael@0: *aInstancePtr = 0; michael@0: if ( mErrorPtr ) michael@0: *mErrorPtr = status; michael@0: return status; michael@0: } michael@0: michael@0: nsresult michael@0: nsCreateInstanceByContractID::operator()( const nsIID& aIID, void** aInstancePtr ) const michael@0: { michael@0: nsresult status = CallCreateInstance(mContractID, mOuter, aIID, aInstancePtr); michael@0: if (NS_FAILED(status)) michael@0: *aInstancePtr = 0; michael@0: if ( mErrorPtr ) michael@0: *mErrorPtr = status; michael@0: return status; michael@0: } michael@0: michael@0: nsresult michael@0: nsCreateInstanceFromFactory::operator()( const nsIID& aIID, void** aInstancePtr ) const michael@0: { michael@0: nsresult status = mFactory->CreateInstance(mOuter, aIID, aInstancePtr); michael@0: if ( NS_FAILED(status) ) michael@0: *aInstancePtr = 0; michael@0: if ( mErrorPtr ) michael@0: *mErrorPtr = status; michael@0: return status; michael@0: } michael@0: michael@0: michael@0: nsresult michael@0: nsGetClassObjectByCID::operator()( const nsIID& aIID, void** aInstancePtr ) const michael@0: { michael@0: nsresult status = CallGetClassObject(mCID, aIID, aInstancePtr); michael@0: if ( NS_FAILED(status) ) michael@0: *aInstancePtr = 0; michael@0: if ( mErrorPtr ) michael@0: *mErrorPtr = status; michael@0: return status; michael@0: } michael@0: michael@0: nsresult michael@0: nsGetClassObjectByContractID::operator()( const nsIID& aIID, void** aInstancePtr ) const michael@0: { michael@0: nsresult status = CallGetClassObject(mContractID, aIID, aInstancePtr); michael@0: if ( NS_FAILED(status) ) michael@0: *aInstancePtr = 0; michael@0: if ( mErrorPtr ) michael@0: *mErrorPtr = status; michael@0: return status; michael@0: } michael@0: michael@0: michael@0: nsresult michael@0: nsGetServiceByCID::operator()( const nsIID& aIID, void** aInstancePtr ) const michael@0: { michael@0: nsresult status = CallGetService(mCID, aIID, aInstancePtr); michael@0: if ( NS_FAILED(status) ) michael@0: *aInstancePtr = 0; michael@0: michael@0: return status; michael@0: } michael@0: michael@0: nsresult michael@0: nsGetServiceByCIDWithError::operator()( const nsIID& aIID, void** aInstancePtr ) const michael@0: { michael@0: nsresult status = CallGetService(mCID, aIID, aInstancePtr); michael@0: if ( NS_FAILED(status) ) michael@0: *aInstancePtr = 0; michael@0: michael@0: if ( mErrorPtr ) michael@0: *mErrorPtr = status; michael@0: return status; michael@0: } michael@0: michael@0: nsresult michael@0: nsGetServiceByContractID::operator()( const nsIID& aIID, void** aInstancePtr ) const michael@0: { michael@0: nsresult status = CallGetService(mContractID, aIID, aInstancePtr); michael@0: if ( NS_FAILED(status) ) michael@0: *aInstancePtr = 0; michael@0: michael@0: return status; michael@0: } michael@0: michael@0: nsresult michael@0: nsGetServiceByContractIDWithError::operator()( const nsIID& aIID, void** aInstancePtr ) const michael@0: { michael@0: nsresult status = CallGetService(mContractID, aIID, aInstancePtr); michael@0: if ( NS_FAILED(status) ) michael@0: *aInstancePtr = 0; michael@0: michael@0: if ( mErrorPtr ) michael@0: *mErrorPtr = status; michael@0: return status; michael@0: }