# VirtualBox COM result codes

This section describes all VirtualBox-specific COM result codes that may be returned by methods of VirtualBox COM interfaces in addition to standard COM result codes. More...

## Variables
const HRESULT | VBOX_E_OBJECT_NOT_FOUND = 0x80BB0001
| Object corresponding to the supplied arguments does not exist.
const HRESULT | VBOX_E_INVALID_VM_STATE = 0x80BB0002
| Current virtual machine state prevents the operation.
const HRESULT | VBOX_E_VM_ERROR = 0x80BB0003
| Virtual machine error occurred attempting the operation.
const HRESULT | VBOX_E_FILE_ERROR = 0x80BB0004
| File not accessible or erroneous file contents.
const HRESULT | VBOX_E_IPRT_ERROR = 0x80BB0005
| Runtime subsystem error.
const HRESULT | VBOX_E_PDM_ERROR = 0x80BB0006
| Pluggable Device Manager error.
const HRESULT | VBOX_E_INVALID_OBJECT_STATE = 0x80BB0007
| Current object state prohibits operation.
const HRESULT | VBOX_E_HOST_ERROR = 0x80BB0008
| Host operating system related error.
const HRESULT | VBOX_E_NOT_SUPPORTED = 0x80BB0009
| Requested operation is not supported.
const HRESULT | VBOX_E_XML_ERROR = 0x80BB000A
| Invalid XML found.
const HRESULT | VBOX_E_INVALID_SESSION_STATE = 0x80BB000B
| Current session state prohibits operation.
const HRESULT | VBOX_E_OBJECT_IN_USE = 0x80BB000C
| Object being in use prohibits operation.
const HRESULT | VBOX_E_DONT_CALL_AGAIN = 0x80BB000D
| Returned by callback methods which does not need to be called again because the client does not actually make use of them.

## Detailed Description

This section describes all VirtualBox-specific COM result codes that may be returned by methods of VirtualBox COM interfaces in addition to standard COM result codes.

Note that along with the result code, every VirtualBox method returns extended error information through the IVirtualBoxErrorInfo interface on failure. This interface is a preferred way to present the error to the end user because it contains a human readable description of the error. Raw result codes, both standard and described in this section, are intended to be used by programs to analyze the reason of a failure and select an appropriate course of action without involving the end user (for example, retry the operation later or make a different call).

The standard COM result codes that may originate from our methods include:

E_INVALIDARG | Returned when the value of the method's argument is not within the range of valid values. This should not be confused with situations when the value is within the range but simply doesn't suit the current object state and there is a possibility that it will be accepted later (in such cases VirtualBox-specific codes are returned, for example, VBOX_E_OBJECT_NOT_FOUND).
E_POINTER | Returned if a memory pointer for the output argument is invalid (for example, `null`). Note that when pointers representing input arguments (such as strings) are invalid, E_INVALIDARG is returned.
E_ACCESSDENIED | Returned when the called object is not ready. Since the lifetime of a public COM object cannot be fully controlled by the implementation, VirtualBox maintains the readiness state for all objects it creates and returns this code in response to any method call on the object that was deactivated by VirtualBox and is not functioning any more.
E_OUTOFMEMORY | Returned when a memory allocation operation fails.

## Variable Documentation

const HRESULT VBOX_E_OBJECT_NOT_FOUND = 0x80BB0001

Object corresponding to the supplied arguments does not exist.

const HRESULT VBOX_E_INVALID_VM_STATE = 0x80BB0002

Current virtual machine state prevents the operation.

const HRESULT VBOX_E_VM_ERROR = 0x80BB0003

Virtual machine error occurred attempting the operation.

const HRESULT VBOX_E_FILE_ERROR = 0x80BB0004

File not accessible or erroneous file contents.

const HRESULT VBOX_E_IPRT_ERROR = 0x80BB0005

Runtime subsystem error.

const HRESULT VBOX_E_PDM_ERROR = 0x80BB0006

Pluggable Device Manager error.

const HRESULT VBOX_E_INVALID_OBJECT_STATE = 0x80BB0007

Current object state prohibits operation.

const HRESULT VBOX_E_HOST_ERROR = 0x80BB0008

Host operating system related error.

const HRESULT VBOX_E_NOT_SUPPORTED = 0x80BB0009

Requested operation is not supported.

const HRESULT VBOX_E_XML_ERROR = 0x80BB000A

Invalid XML found.

const HRESULT VBOX_E_INVALID_SESSION_STATE = 0x80BB000B

Current session state prohibits operation.

const HRESULT VBOX_E_OBJECT_IN_USE = 0x80BB000C

Object being in use prohibits operation.

const HRESULT VBOX_E_DONT_CALL_AGAIN = 0x80BB000D

Returned by callback methods which does not need to be called again because the client does not actually make use of them.