VirtualBoxErrorInfoImpl.cpp revision b8a3aa00d3e073034b15b22a6b04b1a9604f32d6
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync/** @file
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync *
b450d7a1747c5f4fb7c917a8ec1f9ce8440d7ffevboxsync * VirtualBoxErrorInfo COM classe implementation
b450d7a1747c5f4fb7c917a8ec1f9ce8440d7ffevboxsync */
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync/*
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync * Copyright (C) 2006-2007 innotek GmbH
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync *
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync * available from http://www.virtualbox.org. This file is free software;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync * you can redistribute it and/or modify it under the terms of the GNU
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync * General Public License as published by the Free Software Foundation,
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync * in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync * distribution. VirtualBox OSE is distributed in the hope that it will
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync * be useful, but WITHOUT ANY WARRANTY of any kind.
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync *
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync * If you received this file as part of a commercial VirtualBox
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync * distribution, then only the terms of your commercial VirtualBox
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync * license agreement apply instead of the previous paragraph.
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync */
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync#include "VirtualBoxErrorInfoImpl.h"
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync#include "Logging.h"
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
b450d7a1747c5f4fb7c917a8ec1f9ce8440d7ffevboxsync// public initializer/uninitializer for internal purposes only
b450d7a1747c5f4fb7c917a8ec1f9ce8440d7ffevboxsync////////////////////////////////////////////////////////////////////////////////
b450d7a1747c5f4fb7c917a8ec1f9ce8440d7ffevboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncHRESULT VirtualBoxErrorInfo::init (HRESULT aResultCode, const GUID &aIID,
b450d7a1747c5f4fb7c917a8ec1f9ce8440d7ffevboxsync const BSTR aComponent, const BSTR aText,
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync IVirtualBoxErrorInfo *aNext)
b450d7a1747c5f4fb7c917a8ec1f9ce8440d7ffevboxsync{
b450d7a1747c5f4fb7c917a8ec1f9ce8440d7ffevboxsync mResultCode = aResultCode;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync mIID = aIID;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync mComponent = aComponent;
b450d7a1747c5f4fb7c917a8ec1f9ce8440d7ffevboxsync mText = aText;
b450d7a1747c5f4fb7c917a8ec1f9ce8440d7ffevboxsync mNext = aNext;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync return S_OK;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync}
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync// IVirtualBoxErrorInfo properties
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync////////////////////////////////////////////////////////////////////////////////
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncSTDMETHODIMP VirtualBoxErrorInfo::COMGETTER(ResultCode) (HRESULT *aResultCode)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync{
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync if (!aResultCode)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync return E_POINTER;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync *aResultCode = mResultCode;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync return S_OK;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync}
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncSTDMETHODIMP VirtualBoxErrorInfo::COMGETTER(InterfaceID) (GUIDPARAMOUT aIID)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync{
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync if (!aIID)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync return E_POINTER;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync mIID.cloneTo (aIID);
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync return S_OK;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync}
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncSTDMETHODIMP VirtualBoxErrorInfo::COMGETTER(Component) (BSTR *aComponent)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync{
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync if (!aComponent)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync return E_POINTER;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync mComponent.cloneTo (aComponent);
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync return S_OK;
6a795f9e75e30c7f1d75cd45e5de233c71662f58vboxsync}
6a795f9e75e30c7f1d75cd45e5de233c71662f58vboxsync
6a795f9e75e30c7f1d75cd45e5de233c71662f58vboxsyncSTDMETHODIMP VirtualBoxErrorInfo::COMGETTER(Text) (BSTR *aText)
6a795f9e75e30c7f1d75cd45e5de233c71662f58vboxsync{
6a795f9e75e30c7f1d75cd45e5de233c71662f58vboxsync if (!aText)
6a795f9e75e30c7f1d75cd45e5de233c71662f58vboxsync return E_POINTER;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync mText.cloneTo (aText);
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync return S_OK;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync}
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncSTDMETHODIMP VirtualBoxErrorInfo::COMGETTER(Next) (IVirtualBoxErrorInfo **aNext)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync{
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync if (!aNext)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync return E_POINTER;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync /* this will set aNext to NULL if mNext is null */
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync return mNext.queryInterfaceTo (aNext);
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync}
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync#if !defined (VBOX_WITH_XPCOM)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync#if defined (__WIN__)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync/**
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync * Initializes itself by fetching error information from the given error info
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync * object.
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync */
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncHRESULT VirtualBoxErrorInfo::init (IErrorInfo *aInfo)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync{
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync AssertReturn (aInfo, E_FAIL);
75ef08b33f9c67a8dd50748ece1117aed8098d51vboxsync
75ef08b33f9c67a8dd50748ece1117aed8098d51vboxsync HRESULT rc = S_OK;
75ef08b33f9c67a8dd50748ece1117aed8098d51vboxsync
75ef08b33f9c67a8dd50748ece1117aed8098d51vboxsync /* We don't return a failure if talking to IErrorInfo fails below to
75ef08b33f9c67a8dd50748ece1117aed8098d51vboxsync * protect ourselves from bad IErrorInfo implementations (the
75ef08b33f9c67a8dd50748ece1117aed8098d51vboxsync * corresponding fields will simply remain null in this case). */
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync mResultCode = S_OK;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync rc = aInfo->GetGUID (mIID.asOutParam());
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync AssertComRC (rc);
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync rc = aInfo->GetSource (mComponent.asOutParam());
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync AssertComRC (rc);
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync rc = aInfo->GetDescription (mText.asOutParam());
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync AssertComRC (rc);
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync return S_OK;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync}
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync// IErrorInfo methods
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync////////////////////////////////////////////////////////////////////////////////
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncSTDMETHODIMP VirtualBoxErrorInfo::GetDescription (BSTR *description)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync{
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync return COMGETTER(Text) (description);
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync}
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncSTDMETHODIMP VirtualBoxErrorInfo::GetGUID (GUID *guid)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync{
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync return COMGETTER(InterfaceID) (guid);
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync}
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncSTDMETHODIMP VirtualBoxErrorInfo::GetHelpContext (DWORD *pdwHelpContext)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync{
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync return E_NOTIMPL;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync}
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncSTDMETHODIMP VirtualBoxErrorInfo::GetHelpFile (BSTR *pbstrHelpFile)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync{
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync return E_NOTIMPL;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync}
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncSTDMETHODIMP VirtualBoxErrorInfo::GetSource (BSTR *source)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync{
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync return COMGETTER(Component) (source);
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync}
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync#endif // defined (__WIN__)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync#else // !defined (VBOX_WITH_XPCOM)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync/**
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync * Initializes itself by fetching error information from the given error info
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync * object.
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync */
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncHRESULT VirtualBoxErrorInfo::init (nsIException *aInfo)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync{
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync AssertReturn (aInfo, E_FAIL);
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync HRESULT rc = S_OK;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync /* We don't return a failure if talking to nsIException fails below to
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync * protect ourselves from bad nsIException implementations (the
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync * corresponding fields will simply remain null in this case). */
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync rc = aInfo->GetResult (&mResultCode);
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync AssertComRC (rc);
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync Utf8Str message;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync rc = aInfo->GetMessage (message.asOutParam());
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync AssertComRC (rc);
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync mText = message;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync return S_OK;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync}
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync// nsIException methods
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync////////////////////////////////////////////////////////////////////////////////
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync/* readonly attribute string message; */
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncNS_IMETHODIMP VirtualBoxErrorInfo::GetMessage (char **aMessage)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync{
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync if (!aMessage)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync return NS_ERROR_INVALID_POINTER;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync Utf8Str (mText).cloneTo (aMessage);
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync return S_OK;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync}
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync/* readonly attribute nsresult result; */
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncNS_IMETHODIMP VirtualBoxErrorInfo::GetResult (nsresult *aResult)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync{
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync return COMGETTER(ResultCode) (aResult);
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync}
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync/* readonly attribute string name; */
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncNS_IMETHODIMP VirtualBoxErrorInfo::GetName (char **aName)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync{
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync return NS_ERROR_NOT_IMPLEMENTED;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync}
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync/* readonly attribute string filename; */
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncNS_IMETHODIMP VirtualBoxErrorInfo::GetFilename (char **aFilename)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync{
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync return NS_ERROR_NOT_IMPLEMENTED;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync}
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync/* readonly attribute PRUint32 lineNumber; */
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncNS_IMETHODIMP VirtualBoxErrorInfo::GetLineNumber (PRUint32 *aLineNumber)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync{
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync return NS_ERROR_NOT_IMPLEMENTED;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync}
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync/* readonly attribute PRUint32 columnNumber; */
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncNS_IMETHODIMP VirtualBoxErrorInfo::GetColumnNumber (PRUint32 *aColumnNumber)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync{
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync return NS_ERROR_NOT_IMPLEMENTED;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync}
4946f90c5c7016131555f0c925091d4ede6bdde0vboxsync
4946f90c5c7016131555f0c925091d4ede6bdde0vboxsync/* readonly attribute nsIStackFrame location; */
4946f90c5c7016131555f0c925091d4ede6bdde0vboxsyncNS_IMETHODIMP VirtualBoxErrorInfo::GetLocation (nsIStackFrame **aLocation)
4946f90c5c7016131555f0c925091d4ede6bdde0vboxsync{
4946f90c5c7016131555f0c925091d4ede6bdde0vboxsync return NS_ERROR_NOT_IMPLEMENTED;
4946f90c5c7016131555f0c925091d4ede6bdde0vboxsync}
4946f90c5c7016131555f0c925091d4ede6bdde0vboxsync
4946f90c5c7016131555f0c925091d4ede6bdde0vboxsync/* readonly attribute nsIException inner; */
4946f90c5c7016131555f0c925091d4ede6bdde0vboxsyncNS_IMETHODIMP VirtualBoxErrorInfo::GetInner (nsIException **aInner)
4946f90c5c7016131555f0c925091d4ede6bdde0vboxsync{
4946f90c5c7016131555f0c925091d4ede6bdde0vboxsync ComPtr <IVirtualBoxErrorInfo> info;
4946f90c5c7016131555f0c925091d4ede6bdde0vboxsync nsresult rv = COMGETTER(Next) (info.asOutParam());
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync CheckComRCReturnRC (rv);
824104c3b60b9c8d5c03c40658e33ecd6c4fa9e8vboxsync return info.queryInterfaceTo (aInner);
824104c3b60b9c8d5c03c40658e33ecd6c4fa9e8vboxsync}
824104c3b60b9c8d5c03c40658e33ecd6c4fa9e8vboxsync
824104c3b60b9c8d5c03c40658e33ecd6c4fa9e8vboxsync/* readonly attribute nsISupports data; */
824104c3b60b9c8d5c03c40658e33ecd6c4fa9e8vboxsyncNS_IMETHODIMP VirtualBoxErrorInfo::GetData (nsISupports **aData)
824104c3b60b9c8d5c03c40658e33ecd6c4fa9e8vboxsync{
824104c3b60b9c8d5c03c40658e33ecd6c4fa9e8vboxsync return NS_ERROR_NOT_IMPLEMENTED;
824104c3b60b9c8d5c03c40658e33ecd6c4fa9e8vboxsync}
824104c3b60b9c8d5c03c40658e33ecd6c4fa9e8vboxsync
824104c3b60b9c8d5c03c40658e33ecd6c4fa9e8vboxsync/* string toString (); */
824104c3b60b9c8d5c03c40658e33ecd6c4fa9e8vboxsyncNS_IMETHODIMP VirtualBoxErrorInfo::ToString (char **_retval)
824104c3b60b9c8d5c03c40658e33ecd6c4fa9e8vboxsync{
824104c3b60b9c8d5c03c40658e33ecd6c4fa9e8vboxsync return NS_ERROR_NOT_IMPLEMENTED;
824104c3b60b9c8d5c03c40658e33ecd6c4fa9e8vboxsync}
824104c3b60b9c8d5c03c40658e33ecd6c4fa9e8vboxsync
824104c3b60b9c8d5c03c40658e33ecd6c4fa9e8vboxsyncNS_IMPL_THREADSAFE_ISUPPORTS2 (VirtualBoxErrorInfo,
824104c3b60b9c8d5c03c40658e33ecd6c4fa9e8vboxsync nsIException, IVirtualBoxErrorInfo)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync#endif // !defined (VBOX_WITH_XPCOM)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync