2014-06-30 19:39:45 +04:00
|
|
|
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
|
|
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
2012-05-21 15:12:37 +04:00
|
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
2002-03-22 02:47:46 +03:00
|
|
|
|
|
|
|
#ifndef nsXPCOM_h__
|
|
|
|
# include "nsXPCOM.h"
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef nsCOMPtr_h__
|
|
|
|
# include "nsCOMPtr.h"
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#include "nsComponentManagerUtils.h"
|
2004-11-25 01:48:45 +03:00
|
|
|
#include "nsServiceManagerUtils.h"
|
|
|
|
|
2005-04-06 07:35:24 +04:00
|
|
|
#include "nsIComponentManager.h"
|
|
|
|
|
|
|
|
#ifndef MOZILLA_INTERNAL_API
|
2004-11-25 01:48:45 +03:00
|
|
|
|
2014-06-27 05:35:39 +04:00
|
|
|
nsresult CallGetService(const nsCID& aCID, const nsIID& aIID, void** aResult) {
|
|
|
|
nsCOMPtr<nsIServiceManager> servMgr;
|
|
|
|
nsresult status = NS_GetServiceManager(getter_AddRefs(servMgr));
|
|
|
|
if (servMgr) {
|
|
|
|
status = servMgr->GetService(aCID, aIID, aResult);
|
|
|
|
}
|
|
|
|
return status;
|
2004-11-25 01:48:45 +03:00
|
|
|
}
|
|
|
|
|
2014-06-27 05:35:39 +04:00
|
|
|
nsresult CallGetService(const char* aContractID, const nsIID& aIID,
|
|
|
|
void** aResult) {
|
|
|
|
nsCOMPtr<nsIServiceManager> servMgr;
|
|
|
|
nsresult status = NS_GetServiceManager(getter_AddRefs(servMgr));
|
|
|
|
if (servMgr) {
|
|
|
|
status = servMgr->GetServiceByContractID(aContractID, aIID, aResult);
|
|
|
|
}
|
|
|
|
return status;
|
2004-11-25 01:48:45 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
#else
|
|
|
|
|
|
|
|
# include "nsComponentManager.h"
|
|
|
|
|
2014-06-27 05:35:39 +04:00
|
|
|
nsresult CallGetService(const nsCID& aCID, const nsIID& aIID, void** aResult) {
|
|
|
|
nsComponentManagerImpl* compMgr = nsComponentManagerImpl::gComponentManager;
|
2017-07-27 00:00:10 +03:00
|
|
|
if (!compMgr) {
|
2014-06-27 05:35:39 +04:00
|
|
|
return NS_ERROR_NOT_INITIALIZED;
|
|
|
|
}
|
2004-11-25 01:48:45 +03:00
|
|
|
|
2014-06-27 05:35:39 +04:00
|
|
|
return compMgr->nsComponentManagerImpl::GetService(aCID, aIID, aResult);
|
2004-11-25 01:48:45 +03:00
|
|
|
}
|
|
|
|
|
2014-06-27 05:35:39 +04:00
|
|
|
nsresult CallGetService(const char* aContractID, const nsIID& aIID,
|
|
|
|
void** aResult) {
|
|
|
|
nsComponentManagerImpl* compMgr = nsComponentManagerImpl::gComponentManager;
|
2017-07-27 00:00:10 +03:00
|
|
|
if (!compMgr) {
|
2014-06-27 05:35:39 +04:00
|
|
|
return NS_ERROR_NOT_INITIALIZED;
|
|
|
|
}
|
|
|
|
|
|
|
|
return compMgr->nsComponentManagerImpl::GetServiceByContractID(aContractID,
|
|
|
|
aIID, aResult);
|
2004-11-25 01:48:45 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
2004-11-23 23:53:38 +03:00
|
|
|
|
2005-04-06 07:35:24 +04:00
|
|
|
#ifndef MOZILLA_INTERNAL_API
|
2002-03-22 02:47:46 +03:00
|
|
|
|
2014-06-27 05:35:39 +04:00
|
|
|
nsresult CallCreateInstance(const nsCID& aCID, nsISupports* aDelegate,
|
|
|
|
const nsIID& aIID, void** aResult) {
|
|
|
|
nsCOMPtr<nsIComponentManager> compMgr;
|
|
|
|
nsresult status = NS_GetComponentManager(getter_AddRefs(compMgr));
|
|
|
|
if (compMgr) {
|
|
|
|
status = compMgr->CreateInstance(aCID, aDelegate, aIID, aResult);
|
|
|
|
}
|
|
|
|
return status;
|
2004-11-23 23:53:38 +03:00
|
|
|
}
|
|
|
|
|
2014-06-27 05:35:39 +04:00
|
|
|
nsresult CallCreateInstance(const char* aContractID, nsISupports* aDelegate,
|
|
|
|
const nsIID& aIID, void** aResult) {
|
|
|
|
nsCOMPtr<nsIComponentManager> compMgr;
|
|
|
|
nsresult status = NS_GetComponentManager(getter_AddRefs(compMgr));
|
|
|
|
if (compMgr)
|
|
|
|
status = compMgr->CreateInstanceByContractID(aContractID, aDelegate, aIID,
|
|
|
|
aResult);
|
|
|
|
return status;
|
2004-11-23 23:53:38 +03:00
|
|
|
}
|
|
|
|
|
2014-06-27 05:35:39 +04:00
|
|
|
nsresult CallGetClassObject(const nsCID& aCID, const nsIID& aIID,
|
|
|
|
void** aResult) {
|
|
|
|
nsCOMPtr<nsIComponentManager> compMgr;
|
|
|
|
nsresult status = NS_GetComponentManager(getter_AddRefs(compMgr));
|
|
|
|
if (compMgr) {
|
|
|
|
status = compMgr->GetClassObject(aCID, aIID, aResult);
|
|
|
|
}
|
|
|
|
return status;
|
2004-11-23 23:53:38 +03:00
|
|
|
}
|
|
|
|
|
2014-06-27 05:35:39 +04:00
|
|
|
nsresult CallGetClassObject(const char* aContractID, const nsIID& aIID,
|
|
|
|
void** aResult) {
|
|
|
|
nsCOMPtr<nsIComponentManager> compMgr;
|
|
|
|
nsresult status = NS_GetComponentManager(getter_AddRefs(compMgr));
|
|
|
|
if (compMgr)
|
|
|
|
status = compMgr->GetClassObjectByContractID(aContractID, aIID, aResult);
|
|
|
|
return status;
|
2004-11-23 23:53:38 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
#else
|
|
|
|
|
|
|
|
# include "nsComponentManager.h"
|
|
|
|
|
2014-06-27 05:35:39 +04:00
|
|
|
nsresult CallCreateInstance(const nsCID& aCID, nsISupports* aDelegate,
|
|
|
|
const nsIID& aIID, void** aResult) {
|
|
|
|
nsComponentManagerImpl* compMgr = nsComponentManagerImpl::gComponentManager;
|
|
|
|
if (NS_WARN_IF(!compMgr)) {
|
|
|
|
return NS_ERROR_NOT_INITIALIZED;
|
|
|
|
}
|
2004-11-23 23:53:38 +03:00
|
|
|
|
2014-06-27 05:35:39 +04:00
|
|
|
return compMgr->nsComponentManagerImpl::CreateInstance(aCID, aDelegate, aIID,
|
|
|
|
aResult);
|
2004-11-23 23:53:38 +03:00
|
|
|
}
|
2002-04-05 01:35:32 +04:00
|
|
|
|
2014-06-27 05:35:39 +04:00
|
|
|
nsresult CallCreateInstance(const char* aContractID, nsISupports* aDelegate,
|
|
|
|
const nsIID& aIID, void** aResult) {
|
|
|
|
nsComponentManagerImpl* compMgr = nsComponentManagerImpl::gComponentManager;
|
|
|
|
if (NS_WARN_IF(!compMgr)) {
|
|
|
|
return NS_ERROR_NOT_INITIALIZED;
|
|
|
|
}
|
|
|
|
|
|
|
|
return compMgr->nsComponentManagerImpl::CreateInstanceByContractID(
|
|
|
|
aContractID, aDelegate, aIID, aResult);
|
2004-11-23 23:53:38 +03:00
|
|
|
}
|
|
|
|
|
2014-06-27 05:35:39 +04:00
|
|
|
nsresult CallGetClassObject(const nsCID& aCID, const nsIID& aIID,
|
|
|
|
void** aResult) {
|
|
|
|
nsComponentManagerImpl* compMgr = nsComponentManagerImpl::gComponentManager;
|
|
|
|
if (NS_WARN_IF(!compMgr)) {
|
|
|
|
return NS_ERROR_NOT_INITIALIZED;
|
|
|
|
}
|
2004-11-23 23:53:38 +03:00
|
|
|
|
2014-06-27 05:35:39 +04:00
|
|
|
return compMgr->nsComponentManagerImpl::GetClassObject(aCID, aIID, aResult);
|
2004-11-23 23:53:38 +03:00
|
|
|
}
|
|
|
|
|
2014-06-27 05:35:39 +04:00
|
|
|
nsresult CallGetClassObject(const char* aContractID, const nsIID& aIID,
|
|
|
|
void** aResult) {
|
|
|
|
nsComponentManagerImpl* compMgr = nsComponentManagerImpl::gComponentManager;
|
|
|
|
if (NS_WARN_IF(!compMgr)) {
|
|
|
|
return NS_ERROR_NOT_INITIALIZED;
|
|
|
|
}
|
|
|
|
|
|
|
|
return compMgr->nsComponentManagerImpl::GetClassObjectByContractID(
|
|
|
|
aContractID, aIID, aResult);
|
2004-11-23 23:53:38 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
2014-06-27 05:35:39 +04:00
|
|
|
nsresult nsCreateInstanceByCID::operator()(const nsIID& aIID,
|
|
|
|
void** aInstancePtr) const {
|
2016-04-14 18:30:59 +03:00
|
|
|
nsresult status = CallCreateInstance(mCID, nullptr, aIID, aInstancePtr);
|
2014-06-27 05:35:39 +04:00
|
|
|
if (NS_FAILED(status)) {
|
|
|
|
*aInstancePtr = 0;
|
|
|
|
}
|
|
|
|
if (mErrorPtr) {
|
|
|
|
*mErrorPtr = status;
|
|
|
|
}
|
|
|
|
return status;
|
2002-03-22 02:47:46 +03:00
|
|
|
}
|
|
|
|
|
2014-06-27 05:35:39 +04:00
|
|
|
nsresult nsCreateInstanceByContractID::operator()(const nsIID& aIID,
|
|
|
|
void** aInstancePtr) const {
|
2016-04-14 18:30:59 +03:00
|
|
|
nsresult status =
|
|
|
|
CallCreateInstance(mContractID, nullptr, aIID, aInstancePtr);
|
2014-06-27 05:35:39 +04:00
|
|
|
if (NS_FAILED(status)) {
|
|
|
|
*aInstancePtr = 0;
|
|
|
|
}
|
|
|
|
if (mErrorPtr) {
|
|
|
|
*mErrorPtr = status;
|
|
|
|
}
|
|
|
|
return status;
|
2002-03-22 02:47:46 +03:00
|
|
|
}
|
|
|
|
|
2014-06-27 05:35:39 +04:00
|
|
|
nsresult nsCreateInstanceFromFactory::operator()(const nsIID& aIID,
|
|
|
|
void** aInstancePtr) const {
|
2016-04-14 18:30:59 +03:00
|
|
|
nsresult status = mFactory->CreateInstance(nullptr, aIID, aInstancePtr);
|
2014-06-27 05:35:39 +04:00
|
|
|
if (NS_FAILED(status)) {
|
|
|
|
*aInstancePtr = 0;
|
|
|
|
}
|
|
|
|
if (mErrorPtr) {
|
|
|
|
*mErrorPtr = status;
|
|
|
|
}
|
|
|
|
return status;
|
2004-10-02 04:44:13 +04:00
|
|
|
}
|
|
|
|
|
2014-06-27 05:35:39 +04:00
|
|
|
nsresult nsGetClassObjectByCID::operator()(const nsIID& aIID,
|
|
|
|
void** aInstancePtr) const {
|
|
|
|
nsresult status = CallGetClassObject(mCID, aIID, aInstancePtr);
|
|
|
|
if (NS_FAILED(status)) {
|
|
|
|
*aInstancePtr = 0;
|
|
|
|
}
|
|
|
|
if (mErrorPtr) {
|
|
|
|
*mErrorPtr = status;
|
|
|
|
}
|
|
|
|
return status;
|
2004-10-02 04:44:13 +04:00
|
|
|
}
|
|
|
|
|
2014-06-27 05:35:39 +04:00
|
|
|
nsresult nsGetClassObjectByContractID::operator()(const nsIID& aIID,
|
|
|
|
void** aInstancePtr) const {
|
|
|
|
nsresult status = CallGetClassObject(mContractID, aIID, aInstancePtr);
|
|
|
|
if (NS_FAILED(status)) {
|
|
|
|
*aInstancePtr = 0;
|
|
|
|
}
|
|
|
|
if (mErrorPtr) {
|
|
|
|
*mErrorPtr = status;
|
|
|
|
}
|
|
|
|
return status;
|
2004-10-02 04:44:13 +04:00
|
|
|
}
|
|
|
|
|
2014-06-27 05:35:39 +04:00
|
|
|
nsresult nsGetServiceByCID::operator()(const nsIID& aIID,
|
|
|
|
void** aInstancePtr) const {
|
|
|
|
nsresult status = CallGetService(mCID, aIID, aInstancePtr);
|
|
|
|
if (NS_FAILED(status)) {
|
|
|
|
*aInstancePtr = 0;
|
|
|
|
}
|
2004-11-25 01:48:45 +03:00
|
|
|
|
2014-06-27 05:35:39 +04:00
|
|
|
return status;
|
2004-11-25 01:48:45 +03:00
|
|
|
}
|
|
|
|
|
2014-06-27 05:35:39 +04:00
|
|
|
nsresult nsGetServiceByCIDWithError::operator()(const nsIID& aIID,
|
|
|
|
void** aInstancePtr) const {
|
|
|
|
nsresult status = CallGetService(mCID, aIID, aInstancePtr);
|
|
|
|
if (NS_FAILED(status)) {
|
|
|
|
*aInstancePtr = 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (mErrorPtr) {
|
|
|
|
*mErrorPtr = status;
|
|
|
|
}
|
|
|
|
return status;
|
2002-03-22 02:47:46 +03:00
|
|
|
}
|
|
|
|
|
2014-06-27 05:35:39 +04:00
|
|
|
nsresult nsGetServiceByContractID::operator()(const nsIID& aIID,
|
|
|
|
void** aInstancePtr) const {
|
|
|
|
nsresult status = CallGetService(mContractID, aIID, aInstancePtr);
|
|
|
|
if (NS_FAILED(status)) {
|
|
|
|
*aInstancePtr = 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
return status;
|
2004-11-25 01:48:45 +03:00
|
|
|
}
|
|
|
|
|
2014-06-27 05:35:39 +04:00
|
|
|
nsresult nsGetServiceByContractIDWithError::operator()(
|
|
|
|
const nsIID& aIID, void** aInstancePtr) const {
|
|
|
|
nsresult status = CallGetService(mContractID, aIID, aInstancePtr);
|
|
|
|
if (NS_FAILED(status)) {
|
|
|
|
*aInstancePtr = 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (mErrorPtr) {
|
|
|
|
*mErrorPtr = status;
|
|
|
|
}
|
|
|
|
return status;
|
2002-03-22 02:47:46 +03:00
|
|
|
}
|