/** @file
*
* VirtualBoxErrorInfo COM class implementation
*/
/*
* Copyright (C) 2006-2013 Oracle Corporation
*
* This file is part of VirtualBox Open Source Edition (OSE), as
* available from http://www.virtualbox.org. This file is free software;
* General Public License (GPL) as published by the Free Software
* Foundation, in version 2 as it comes in the "COPYING" file of the
* VirtualBox OSE distribution. VirtualBox OSE is distributed in the
* hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
*/
#include "VirtualBoxErrorInfoImpl.h"
#include "Logging.h"
// public initializer/uninitializer for internal purposes only
////////////////////////////////////////////////////////////////////////////////
const char *pcszComponent,
{
m_resultDetail = 0; /* Not being used. */
return S_OK;
}
const char *pcszComponent,
{
return hr;
}
{
/* Recursively create VirtualBoxErrorInfo instances for the next objects. */
if (pInfo)
{
}
else
return S_OK;
}
// IVirtualBoxErrorInfo properties
////////////////////////////////////////////////////////////////////////////////
{
return S_OK;
}
{
return S_OK;
}
{
return S_OK;
}
{
return S_OK;
}
{
return S_OK;
}
{
/* this will set aNext to NULL if mNext is null */
}
#if !defined(VBOX_WITH_XPCOM)
/**
* Initializes itself by fetching error information from the given error info
* object.
*/
{
/* We don't return a failure if talking to IErrorInfo fails below to
* protect ourselves from bad IErrorInfo implementations (the
* corresponding fields will simply remain null in this case). */
m_resultCode = S_OK;
m_resultDetail = 0;
return S_OK;
}
// IErrorInfo methods
////////////////////////////////////////////////////////////////////////////////
{
}
{
return rc;
}
{
return E_NOTIMPL;
}
{
return E_NOTIMPL;
}
{
}
#else // defined(VBOX_WITH_XPCOM)
/**
* Initializes itself by fetching error information from the given error info
* object.
*/
{
/* We don't return a failure if talking to nsIException fails below to
* protect ourselves from bad nsIException implementations (the
* corresponding fields will simply remain null in this case). */
m_resultDetail = 0; /* Not being used. */
if (NS_SUCCEEDED(rc))
{
}
else
return S_OK;
}
// nsIException methods
////////////////////////////////////////////////////////////////////////////////
/* readonly attribute string message; */
{
return S_OK;
}
/* readonly attribute nsresult result; */
{
if (!aResult)
return NS_ERROR_INVALID_POINTER;
return rc;
}
/* readonly attribute string name; */
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* readonly attribute string filename; */
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* readonly attribute PRUint32 lineNumber; */
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* readonly attribute PRUint32 columnNumber; */
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* readonly attribute nsIStackFrame location; */
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* readonly attribute nsIException inner; */
{
}
/* readonly attribute nsISupports data; */
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* string toString(); */
{
return NS_ERROR_NOT_IMPLEMENTED;
}
#endif // defined(VBOX_WITH_XPCOM)
/* vi: set tabstop=4 shiftwidth=4 expandtab: */