
/*
 *  DO NOT EDIT! This is a generated file.
 *
 *  XPCOM IDL (XPIDL) definition for VirtualBox Main API (COM interfaces)
 *  generated from XIDL (XML interface definition).
 *
 *  Source    : src/VBox/Main/idl/VirtualBox.xidl
 *  Generator : src/VBox/Main/idl/xpidl.xsl
 */

#include "nsISupports.idl"
#include "nsIException.idl"


[ptr] native booleanPtr (PRBool);
[ptr] native octetPtr   (PRUint8);
[ptr] native shortPtr   (PRInt16);
[ptr] native ushortPtr  (PRUint16);
[ptr] native longPtr    (PRInt32);
[ptr] native llongPtr   (PRInt64);
[ptr] native ulongPtr   (PRUint32);
[ptr] native ullongPtr  (PRUint64);


[ptr] native stringPtr  (string);
[ptr] native wcharPtr   (wchar);
[ptr] native wstringPtr (wstring);

%{C++
/* currently, nsISupportsImpl.h lacks the below-like macros */
#define NS_IMPL_THREADSAFE_QUERY_INTERFACE1_CI NS_IMPL_QUERY_INTERFACE1_CI
#define NS_IMPL_THREADSAFE_QUERY_INTERFACE2_CI NS_IMPL_QUERY_INTERFACE2_CI
#define NS_IMPL_THREADSAFE_QUERY_INTERFACE3_CI NS_IMPL_QUERY_INTERFACE3_CI
#define NS_IMPL_THREADSAFE_QUERY_INTERFACE4_CI NS_IMPL_QUERY_INTERFACE4_CI
#define NS_IMPL_THREADSAFE_QUERY_INTERFACE5_CI NS_IMPL_QUERY_INTERFACE5_CI
#define NS_IMPL_THREADSAFE_QUERY_INTERFACE6_CI NS_IMPL_QUERY_INTERFACE6_CI
#define NS_IMPL_THREADSAFE_QUERY_INTERFACE7_CI NS_IMPL_QUERY_INTERFACE7_CI
#define NS_IMPL_THREADSAFE_QUERY_INTERFACE8_CI NS_IMPL_QUERY_INTERFACE8_CI
#ifndef NS_IMPL_THREADSAFE_ISUPPORTS1_CI
# define NS_IMPL_THREADSAFE_ISUPPORTS1_CI(_class, _interface)                 \
  NS_IMPL_THREADSAFE_ADDREF(_class)                                           \
  NS_IMPL_THREADSAFE_RELEASE(_class)                                          \
  NS_IMPL_THREADSAFE_QUERY_INTERFACE1_CI(_class, _interface)                  \
  NS_IMPL_CI_INTERFACE_GETTER1(_class, _interface)
#endif
#ifndef NS_IMPL_THREADSAFE_ISUPPORTS2_CI
# define NS_IMPL_THREADSAFE_ISUPPORTS2_CI(_class, _i1, _i2)                   \
  NS_IMPL_THREADSAFE_ADDREF(_class)                                           \
  NS_IMPL_THREADSAFE_RELEASE(_class)                                          \
  NS_IMPL_THREADSAFE_QUERY_INTERFACE2_CI(_class, _i1, _i2)                    \
  NS_IMPL_CI_INTERFACE_GETTER2(_class, _i1, _i2)
#endif
#ifndef NS_IMPL_THREADSAFE_ISUPPORTS3_CI
# define NS_IMPL_THREADSAFE_ISUPPORTS3_CI(_class, _i1, _i2, _i3)              \
  NS_IMPL_THREADSAFE_ADDREF(_class)                                           \
  NS_IMPL_THREADSAFE_RELEASE(_class)                                          \
  NS_IMPL_THREADSAFE_QUERY_INTERFACE3_CI(_class, _i1, _i2, _i3)               \
  NS_IMPL_CI_INTERFACE_GETTER3(_class, _i1, _i2, _i3)
#endif
#ifndef NS_IMPL_THREADSAFE_ISUPPORTS4_CI
# define NS_IMPL_THREADSAFE_ISUPPORTS4_CI(_class, _i1, _i2, _i3, _i4)         \
  NS_IMPL_THREADSAFE_ADDREF(_class)                                           \
  NS_IMPL_THREADSAFE_RELEASE(_class)                                          \
  NS_IMPL_THREADSAFE_QUERY_INTERFACE4_CI(_class, _i1, _i2, _i3, _i4)          \
  NS_IMPL_CI_INTERFACE_GETTER4(_class, _i1, _i2, _i3, _i4)
#endif
#ifndef NS_IMPL_THREADSAFE_ISUPPORTS5_CI
# define NS_IMPL_THREADSAFE_ISUPPORTS5_CI(_class, _i1, _i2, _i3, _i4, _i5)    \
  NS_IMPL_THREADSAFE_ADDREF(_class)                                           \
  NS_IMPL_THREADSAFE_RELEASE(_class)                                          \
  NS_IMPL_THREADSAFE_QUERY_INTERFACE5_CI(_class, _i1, _i2, _i3, _i4, _i5)     \
  NS_IMPL_CI_INTERFACE_GETTER5(_class, _i1, _i2, _i3, _i4, _i5)
#endif
#ifndef NS_IMPL_THREADSAFE_ISUPPORTS6_CI
# define NS_IMPL_THREADSAFE_ISUPPORTS6_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6) \
  NS_IMPL_THREADSAFE_ADDREF(_class) \
  NS_IMPL_THREADSAFE_RELEASE(_class) \
  NS_IMPL_THREADSAFE_QUERY_INTERFACE6_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6) \
  NS_IMPL_CI_INTERFACE_GETTER6(_class, _i1, _i2, _i3, _i4, _i5, _i6)
#endif
#ifndef NS_IMPL_THREADSAFE_ISUPPORTS7_CI
# define NS_IMPL_THREADSAFE_ISUPPORTS7_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7) \
  NS_IMPL_THREADSAFE_ADDREF(_class) \
  NS_IMPL_THREADSAFE_RELEASE(_class) \
  NS_IMPL_THREADSAFE_QUERY_INTERFACE7_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7) \
  NS_IMPL_CI_INTERFACE_GETTER7(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7)
#endif
#ifndef NS_IMPL_THREADSAFE_ISUPPORTS8_CI
# define NS_IMPL_THREADSAFE_ISUPPORTS8_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7, _i8) \
  NS_IMPL_THREADSAFE_ADDREF(_class) \
  NS_IMPL_THREADSAFE_RELEASE(_class) \
  NS_IMPL_THREADSAFE_QUERY_INTERFACE8_CI(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7, _i8) \
  NS_IMPL_CI_INTERFACE_GETTER8(_class, _i1, _i2, _i3, _i4, _i5, _i6, _i7, _i8)
#endif
#ifndef NS_IMPL_QUERY_INTERFACE1_AMBIGUOUS_CI
# define NS_IMPL_QUERY_INTERFACE1_AMBIGUOUS_CI(_class, _i1, _ic1)             \
  NS_INTERFACE_MAP_BEGIN(_class)                                              \
    NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(_i1, _ic1)                               \
    NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, _ic1)                       \
    NS_IMPL_QUERY_CLASSINFO(_class)                                           \
  NS_INTERFACE_MAP_END
#endif
#ifndef NS_IMPL_QUERY_INTERFACE2_AMBIGUOUS_CI
# define NS_IMPL_QUERY_INTERFACE2_AMBIGUOUS_CI(_class, _i1, _ic1,             \
                                               _i2, _ic2)                     \
  NS_INTERFACE_MAP_BEGIN(_class)                                              \
    NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(_i1, _ic1)                               \
    NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(_i2, _ic2)                               \
    NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, _ic1)                       \
    NS_IMPL_QUERY_CLASSINFO(_class)                                           \
  NS_INTERFACE_MAP_END
#endif
#ifndef NS_IMPL_QUERY_INTERFACE3_AMBIGUOUS_CI
# define NS_IMPL_QUERY_INTERFACE3_AMBIGUOUS_CI(_class, _i1, _ic1,             \
                                               _i2, _ic2, _i3, _ic3)          \
  NS_INTERFACE_MAP_BEGIN(_class)                                              \
    NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(_i1, _ic1)                               \
    NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(_i2, _ic2)                               \
    NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(_i3, _ic3)                               \
    NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, _ic1)                       \
    NS_IMPL_QUERY_CLASSINFO(_class)                                           \
  NS_INTERFACE_MAP_END
#endif
#define NS_IMPL_THREADSAFE_QUERY_INTERFACE1_AMBIGUOUS_CI NS_IMPL_QUERY_INTERFACE1_AMBIGUOUS_CI
#define NS_IMPL_THREADSAFE_QUERY_INTERFACE2_AMBIGUOUS_CI NS_IMPL_QUERY_INTERFACE2_AMBIGUOUS_CI
#define NS_IMPL_THREADSAFE_QUERY_INTERFACE3_AMBIGUOUS_CI NS_IMPL_QUERY_INTERFACE3_AMBIGUOUS_CI
#ifndef NS_IMPL_THREADSAFE_ISUPPORTS1_AMBIGUOUS_CI
# define NS_IMPL_THREADSAFE_ISUPPORTS1_AMBIGUOUS_CI(_class, _i1, _ic1)        \
  NS_IMPL_THREADSAFE_ADDREF(_class)                                           \
  NS_IMPL_THREADSAFE_RELEASE(_class)                                          \
  NS_IMPL_THREADSAFE_QUERY_INTERFACE1_AMBIGUOUS_CI(_class, _i1, _ic1)         \
  NS_IMPL_CI_INTERFACE_GETTER1(_class, _i1)
#endif
#ifndef NS_IMPL_THREADSAFE_ISUPPORTS2_AMBIGUOUS_CI
# define NS_IMPL_THREADSAFE_ISUPPORTS2_AMBIGUOUS_CI(_class, _i1, _ic1,        \
                                                     _i2, _ic2)               \
  NS_IMPL_THREADSAFE_ADDREF(_class)                                           \
  NS_IMPL_THREADSAFE_RELEASE(_class)                                          \
  NS_IMPL_THREADSAFE_QUERY_INTERFACE2_AMBIGUOUS_CI(_class, _i1, _ic1,         \
                                                   _i2, _ic2)                 \
  NS_IMPL_CI_INTERFACE_GETTER2(_class, _i1, _i2)
#endif
#ifndef NS_IMPL_THREADSAFE_ISUPPORTS3_AMBIGUOUS_CI
# define NS_IMPL_THREADSAFE_ISUPPORTS3_AMBIGUOUS_CI(_class, _i1, _ic1,        \
                                                     _i2, _ic2, _i3, _ic3)    \
  NS_IMPL_THREADSAFE_ADDREF(_class)                                           \
  NS_IMPL_THREADSAFE_RELEASE(_class)                                          \
  NS_IMPL_THREADSAFE_QUERY_INTERFACE3_AMBIGUOUS_CI(_class, _i1, _ic1,         \
                                                   _i2, _ic2, _i3, _ic3)      \
  NS_IMPL_CI_INTERFACE_GETTER3(_class, _i1, _i2, _i3)
#endif
  
%}

%{C++
#ifndef VBOX_EXTERN_C
# ifdef __cplusplus
#  define VBOX_EXTERN_C extern "C"
# else // !__cplusplus
#  define VBOX_EXTERN_C extern
# endif // !__cplusplus
#endif // !VBOX_EXTERN_C
// result codes declared in API spec
#define VBOX_E_OBJECT_NOT_FOUND ((nsresult)0x80BB0001)
#define VBOX_E_INVALID_VM_STATE ((nsresult)0x80BB0002)
#define VBOX_E_VM_ERROR ((nsresult)0x80BB0003)
#define VBOX_E_FILE_ERROR ((nsresult)0x80BB0004)
#define VBOX_E_IPRT_ERROR ((nsresult)0x80BB0005)
#define VBOX_E_PDM_ERROR ((nsresult)0x80BB0006)
#define VBOX_E_INVALID_OBJECT_STATE ((nsresult)0x80BB0007)
#define VBOX_E_HOST_ERROR ((nsresult)0x80BB0008)
#define VBOX_E_NOT_SUPPORTED ((nsresult)0x80BB0009)
#define VBOX_E_XML_ERROR ((nsresult)0x80BB000A)
#define VBOX_E_INVALID_SESSION_STATE ((nsresult)0x80BB000B)
#define VBOX_E_OBJECT_IN_USE ((nsresult)0x80BB000C)
#define VBOX_E_PASSWORD_INCORRECT ((nsresult)0x80BB000D)
#define VBOX_E_MAXIMUM_REACHED ((nsresult)0x80BB000E)
#define VBOX_E_GSTCTL_GUEST_ERROR ((nsresult)0x80BB000F)
#define VBOX_E_TIMEOUT ((nsresult)0x80BB0010)
%}

interface IVirtualBoxErrorInfo;
interface INATNetwork;
interface ICloudNetwork;
interface IDHCPServer;
interface IDHCPConfig;
interface IDHCPGlobalConfig;
interface IDHCPGroupCondition;
interface IDHCPGroupConfig;
interface IDHCPIndividualConfig;
interface IVirtualBox;
interface IVFSExplorer;
interface ICertificate;
interface IAppliance;
interface IVirtualSystemDescription;
interface IUnattended;
interface IInternalMachineControl;
interface IGraphicsAdapter;
interface IBIOSSettings;
interface IRecordingScreenSettings;
interface IRecordingSettings;
interface IPCIAddress;
interface IPCIDeviceAttachment;
interface IMachine;
interface IEmulatedUSB;
interface IVRDEServerInfo;
interface IConsole;
interface IHostNetworkInterface;
interface IHostVideoInputDevice;
interface IHostUpdate;
interface IHost;
interface ISystemProperties;
interface IGuestOSType;
interface IAdditionsFacility;
interface IDnDBase;
interface IDnDSource;
interface IGuestDnDSource;
interface IDnDTarget;
interface IGuestDnDTarget;
interface IGuestSession;
interface IProcess;
interface IGuestProcess;
interface IDirectory;
interface IGuestDirectory;
interface IFile;
interface IGuestFile;
interface IFsObjInfo;
interface IGuestFsObjInfo;
interface IGuest;
interface IProgress;
interface IInternalProgressControl;
interface ISnapshot;
interface IMediumAttachment;
interface IMedium;
interface IMediumFormat;
interface IDataStream;
interface IMediumIO;
interface IToken;
interface IKeyboard;
interface IMousePointerShape;
interface IMouse;
interface IDisplaySourceBitmap;
interface IFramebuffer;
interface IFramebufferOverlay;
interface IGuestScreenInfo;
interface IDisplay;
interface INetworkAdapter;
interface ISerialPort;
interface IParallelPort;
interface IMachineDebugger;
interface IUSBDeviceFilters;
interface IUSBController;
interface IUSBDevice;
interface IUSBDeviceFilter;
interface IHostUSBDevice;
interface IHostUSBDeviceFilter;
interface IUSBProxyBackend;
interface IAudioAdapter;
interface IVRDEServer;
interface ISharedFolder;
interface IInternalSessionControl;
interface ISession;
interface IStorageController;
interface IPerformanceMetric;
interface IPerformanceCollector;
interface INATEngine;
interface IExtPackPlugIn;
interface IExtPackBase;
interface IExtPack;
interface IExtPackFile;
interface IExtPackManager;
interface IBandwidthGroup;
interface IBandwidthControl;
interface IVirtualBoxClient;
interface IEventSource;
interface IEventListener;
interface IEvent;
interface IReusableEvent;
interface IMachineEvent;
interface IMachineStateChangedEvent;
interface IMachineDataChangedEvent;
interface IMediumRegisteredEvent;
interface IMediumConfigChangedEvent;
interface IMachineRegisteredEvent;
interface ISessionStateChangedEvent;
interface IGuestPropertyChangedEvent;
interface ISnapshotEvent;
interface ISnapshotTakenEvent;
interface ISnapshotDeletedEvent;
interface ISnapshotRestoredEvent;
interface ISnapshotChangedEvent;
interface IMousePointerShapeChangedEvent;
interface IMouseCapabilityChangedEvent;
interface IKeyboardLedsChangedEvent;
interface IStateChangedEvent;
interface IAdditionsStateChangedEvent;
interface INetworkAdapterChangedEvent;
interface IAudioAdapterChangedEvent;
interface ISerialPortChangedEvent;
interface IParallelPortChangedEvent;
interface IStorageControllerChangedEvent;
interface IMediumChangedEvent;
interface IClipboardModeChangedEvent;
interface IClipboardFileTransferModeChangedEvent;
interface IDnDModeChangedEvent;
interface ICPUChangedEvent;
interface ICPUExecutionCapChangedEvent;
interface IGuestKeyboardEvent;
interface IGuestMouseEvent;
interface IGuestMultiTouchEvent;
interface IGuestSessionEvent;
interface IGuestSessionStateChangedEvent;
interface IGuestSessionRegisteredEvent;
interface IGuestProcessEvent;
interface IGuestProcessRegisteredEvent;
interface IGuestProcessStateChangedEvent;
interface IGuestProcessIOEvent;
interface IGuestProcessInputNotifyEvent;
interface IGuestProcessOutputEvent;
interface IGuestFileEvent;
interface IGuestFileRegisteredEvent;
interface IGuestFileStateChangedEvent;
interface IGuestFileIOEvent;
interface IGuestFileOffsetChangedEvent;
interface IGuestFileSizeChangedEvent;
interface IGuestFileReadEvent;
interface IGuestFileWriteEvent;
interface IVRDEServerChangedEvent;
interface IVRDEServerInfoChangedEvent;
interface IRecordingChangedEvent;
interface IUSBControllerChangedEvent;
interface IUSBDeviceStateChangedEvent;
interface ISharedFolderChangedEvent;
interface IRuntimeErrorEvent;
interface IEventSourceChangedEvent;
interface IExtraDataChangedEvent;
interface IVetoEvent;
interface IExtraDataCanChangeEvent;
interface ICanShowWindowEvent;
interface IShowWindowEvent;
interface INATRedirectEvent;
interface IHostPCIDevicePlugEvent;
interface IVBoxSVCAvailabilityChangedEvent;
interface IBandwidthGroupChangedEvent;
interface IGuestMonitorChangedEvent;
interface IGuestUserStateChangedEvent;
interface IStorageDeviceChangedEvent;
interface INATNetworkChangedEvent;
interface INATNetworkStartStopEvent;
interface INATNetworkAlterEvent;
interface INATNetworkCreationDeletionEvent;
interface INATNetworkSettingEvent;
interface INATNetworkPortForwardEvent;
interface IHostNameResolutionConfigurationChangeEvent;
interface IProgressEvent;
interface IProgressPercentageChangedEvent;
interface IProgressTaskCompletedEvent;
interface ICursorPositionChangedEvent;
interface IGuestAdditionsStatusChangedEvent;
interface IGuestMonitorInfoChangedEvent;
interface IStringArray;
interface IFormValue;
interface IBooleanFormValue;
interface IRangedIntegerFormValue;
interface IStringFormValue;
interface IChoiceFormValue;
interface IForm;
interface IVirtualSystemDescriptionForm;
interface ICloudNetworkGatewayInfo;
interface ICloudClient;
interface ICloudProfile;
interface ICloudProvider;
interface ICloudProviderManager;

[
    uuid(b4cc23c2-96f2-419d-830b-bd13c1135dfb),
    scriptable
]
interface SettingsVersion
{
    const PRUint32 Null = 0;
    const PRUint32 v1_0 = 1;
    const PRUint32 v1_1 = 2;
    const PRUint32 v1_2 = 3;
    const PRUint32 v1_3pre = 4;
    const PRUint32 v1_3 = 5;
    const PRUint32 v1_4 = 6;
    const PRUint32 v1_5 = 7;
    const PRUint32 v1_6 = 8;
    const PRUint32 v1_7 = 9;
    const PRUint32 v1_8 = 10;
    const PRUint32 v1_9 = 11;
    const PRUint32 v1_10 = 12;
    const PRUint32 v1_11 = 13;
    const PRUint32 v1_12 = 14;
    const PRUint32 v1_13 = 15;
    const PRUint32 v1_14 = 16;
    const PRUint32 v1_15 = 17;
    const PRUint32 v1_16 = 18;
    const PRUint32 v1_17 = 19;
    const PRUint32 v1_18 = 20;
    const PRUint32 Future = 99999;
};


/* IDL typedef for enum SettingsVersion and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 SettingsVersion_T;
%{C++
# define SettingsVersion_Null SettingsVersion::Null
# define SettingsVersion_v1_0 SettingsVersion::v1_0
# define SettingsVersion_v1_1 SettingsVersion::v1_1
# define SettingsVersion_v1_2 SettingsVersion::v1_2
# define SettingsVersion_v1_3pre SettingsVersion::v1_3pre
# define SettingsVersion_v1_3 SettingsVersion::v1_3
# define SettingsVersion_v1_4 SettingsVersion::v1_4
# define SettingsVersion_v1_5 SettingsVersion::v1_5
# define SettingsVersion_v1_6 SettingsVersion::v1_6
# define SettingsVersion_v1_7 SettingsVersion::v1_7
# define SettingsVersion_v1_8 SettingsVersion::v1_8
# define SettingsVersion_v1_9 SettingsVersion::v1_9
# define SettingsVersion_v1_10 SettingsVersion::v1_10
# define SettingsVersion_v1_11 SettingsVersion::v1_11
# define SettingsVersion_v1_12 SettingsVersion::v1_12
# define SettingsVersion_v1_13 SettingsVersion::v1_13
# define SettingsVersion_v1_14 SettingsVersion::v1_14
# define SettingsVersion_v1_15 SettingsVersion::v1_15
# define SettingsVersion_v1_16 SettingsVersion::v1_16
# define SettingsVersion_v1_17 SettingsVersion::v1_17
# define SettingsVersion_v1_18 SettingsVersion::v1_18
# define SettingsVersion_Future SettingsVersion::Future
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum SettingsVersion_T {
    SettingsVersion_Null = SettingsVersion::Null,
    SettingsVersion_v1_0 = SettingsVersion::v1_0,
    SettingsVersion_v1_1 = SettingsVersion::v1_1,
    SettingsVersion_v1_2 = SettingsVersion::v1_2,
    SettingsVersion_v1_3pre = SettingsVersion::v1_3pre,
    SettingsVersion_v1_3 = SettingsVersion::v1_3,
    SettingsVersion_v1_4 = SettingsVersion::v1_4,
    SettingsVersion_v1_5 = SettingsVersion::v1_5,
    SettingsVersion_v1_6 = SettingsVersion::v1_6,
    SettingsVersion_v1_7 = SettingsVersion::v1_7,
    SettingsVersion_v1_8 = SettingsVersion::v1_8,
    SettingsVersion_v1_9 = SettingsVersion::v1_9,
    SettingsVersion_v1_10 = SettingsVersion::v1_10,
    SettingsVersion_v1_11 = SettingsVersion::v1_11,
    SettingsVersion_v1_12 = SettingsVersion::v1_12,
    SettingsVersion_v1_13 = SettingsVersion::v1_13,
    SettingsVersion_v1_14 = SettingsVersion::v1_14,
    SettingsVersion_v1_15 = SettingsVersion::v1_15,
    SettingsVersion_v1_16 = SettingsVersion::v1_16,
    SettingsVersion_v1_17 = SettingsVersion::v1_17,
    SettingsVersion_v1_18 = SettingsVersion::v1_18,
    SettingsVersion_Future = SettingsVersion::Future,
    SettingsVersion_32BitHack = 0x7fffffff
} SettingsVersion_T;
# ifdef AssertCompileSize
AssertCompileSize(SettingsVersion_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(1da0007c-ddf7-4be8-bcac-d84a1558785f),
    scriptable
]
interface AccessMode
{
    const PRUint32 ReadOnly = 1;
    const PRUint32 ReadWrite = 2;
};


/* IDL typedef for enum AccessMode and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 AccessMode_T;
%{C++
# define AccessMode_ReadOnly AccessMode::ReadOnly
# define AccessMode_ReadWrite AccessMode::ReadWrite
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum AccessMode_T {
    AccessMode_ReadOnly = AccessMode::ReadOnly,
    AccessMode_ReadWrite = AccessMode::ReadWrite,
    AccessMode_32BitHack = 0x7fffffff
} AccessMode_T;
# ifdef AssertCompileSize
AssertCompileSize(AccessMode_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(00bc01b5-00a4-48db-000a-9061008357aa),
    scriptable
]
interface MachineState
{
    const PRUint32 Null = 0;
    const PRUint32 PoweredOff = 1;
    const PRUint32 Saved = 2;
    const PRUint32 Teleported = 3;
    const PRUint32 Aborted = 4;
    const PRUint32 Running = 5;
    const PRUint32 Paused = 6;
    const PRUint32 Stuck = 7;
    const PRUint32 Teleporting = 8;
    const PRUint32 LiveSnapshotting = 9;
    const PRUint32 Starting = 10;
    const PRUint32 Stopping = 11;
    const PRUint32 Saving = 12;
    const PRUint32 Restoring = 13;
    const PRUint32 TeleportingPausedVM = 14;
    const PRUint32 TeleportingIn = 15;
    const PRUint32 DeletingSnapshotOnline = 16;
    const PRUint32 DeletingSnapshotPaused = 17;
    const PRUint32 OnlineSnapshotting = 18;
    const PRUint32 RestoringSnapshot = 19;
    const PRUint32 DeletingSnapshot = 20;
    const PRUint32 SettingUp = 21;
    const PRUint32 Snapshotting = 22;
    const PRUint32 FirstOnline = 5;
    const PRUint32 LastOnline = 18;
    const PRUint32 FirstTransient = 8;
    const PRUint32 LastTransient = 22;
};


/* IDL typedef for enum MachineState and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 MachineState_T;
%{C++
# define MachineState_Null MachineState::Null
# define MachineState_PoweredOff MachineState::PoweredOff
# define MachineState_Saved MachineState::Saved
# define MachineState_Teleported MachineState::Teleported
# define MachineState_Aborted MachineState::Aborted
# define MachineState_Running MachineState::Running
# define MachineState_Paused MachineState::Paused
# define MachineState_Stuck MachineState::Stuck
# define MachineState_Teleporting MachineState::Teleporting
# define MachineState_LiveSnapshotting MachineState::LiveSnapshotting
# define MachineState_Starting MachineState::Starting
# define MachineState_Stopping MachineState::Stopping
# define MachineState_Saving MachineState::Saving
# define MachineState_Restoring MachineState::Restoring
# define MachineState_TeleportingPausedVM MachineState::TeleportingPausedVM
# define MachineState_TeleportingIn MachineState::TeleportingIn
# define MachineState_DeletingSnapshotOnline MachineState::DeletingSnapshotOnline
# define MachineState_DeletingSnapshotPaused MachineState::DeletingSnapshotPaused
# define MachineState_OnlineSnapshotting MachineState::OnlineSnapshotting
# define MachineState_RestoringSnapshot MachineState::RestoringSnapshot
# define MachineState_DeletingSnapshot MachineState::DeletingSnapshot
# define MachineState_SettingUp MachineState::SettingUp
# define MachineState_Snapshotting MachineState::Snapshotting
# define MachineState_FirstOnline MachineState::FirstOnline
# define MachineState_LastOnline MachineState::LastOnline
# define MachineState_FirstTransient MachineState::FirstTransient
# define MachineState_LastTransient MachineState::LastTransient
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum MachineState_T {
    MachineState_Null = MachineState::Null,
    MachineState_PoweredOff = MachineState::PoweredOff,
    MachineState_Saved = MachineState::Saved,
    MachineState_Teleported = MachineState::Teleported,
    MachineState_Aborted = MachineState::Aborted,
    MachineState_Running = MachineState::Running,
    MachineState_Paused = MachineState::Paused,
    MachineState_Stuck = MachineState::Stuck,
    MachineState_Teleporting = MachineState::Teleporting,
    MachineState_LiveSnapshotting = MachineState::LiveSnapshotting,
    MachineState_Starting = MachineState::Starting,
    MachineState_Stopping = MachineState::Stopping,
    MachineState_Saving = MachineState::Saving,
    MachineState_Restoring = MachineState::Restoring,
    MachineState_TeleportingPausedVM = MachineState::TeleportingPausedVM,
    MachineState_TeleportingIn = MachineState::TeleportingIn,
    MachineState_DeletingSnapshotOnline = MachineState::DeletingSnapshotOnline,
    MachineState_DeletingSnapshotPaused = MachineState::DeletingSnapshotPaused,
    MachineState_OnlineSnapshotting = MachineState::OnlineSnapshotting,
    MachineState_RestoringSnapshot = MachineState::RestoringSnapshot,
    MachineState_DeletingSnapshot = MachineState::DeletingSnapshot,
    MachineState_SettingUp = MachineState::SettingUp,
    MachineState_Snapshotting = MachineState::Snapshotting,
    MachineState_FirstOnline = MachineState::FirstOnline,
    MachineState_LastOnline = MachineState::LastOnline,
    MachineState_FirstTransient = MachineState::FirstTransient,
    MachineState_LastTransient = MachineState::LastTransient,
    MachineState_32BitHack = 0x7fffffff
} MachineState_T;
# ifdef AssertCompileSize
AssertCompileSize(MachineState_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(cf2700c0-ea4b-47ae-9725-7810114b94d8),
    scriptable
]
interface SessionState
{
    const PRUint32 Null = 0;
    const PRUint32 Unlocked = 1;
    const PRUint32 Locked = 2;
    const PRUint32 Spawning = 3;
    const PRUint32 Unlocking = 4;
};


/* IDL typedef for enum SessionState and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 SessionState_T;
%{C++
# define SessionState_Null SessionState::Null
# define SessionState_Unlocked SessionState::Unlocked
# define SessionState_Locked SessionState::Locked
# define SessionState_Spawning SessionState::Spawning
# define SessionState_Unlocking SessionState::Unlocking
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum SessionState_T {
    SessionState_Null = SessionState::Null,
    SessionState_Unlocked = SessionState::Unlocked,
    SessionState_Locked = SessionState::Locked,
    SessionState_Spawning = SessionState::Spawning,
    SessionState_Unlocking = SessionState::Unlocking,
    SessionState_32BitHack = 0x7fffffff
} SessionState_T;
# ifdef AssertCompileSize
AssertCompileSize(SessionState_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(3fcfe589-ca66-468f-e313-656f9d0b2eb6),
    scriptable
]
interface CPUPropertyType
{
    const PRUint32 Null = 0;
    const PRUint32 PAE = 1;
    const PRUint32 LongMode = 2;
    const PRUint32 TripleFaultReset = 3;
    const PRUint32 APIC = 4;
    const PRUint32 X2APIC = 5;
    const PRUint32 IBPBOnVMExit = 6;
    const PRUint32 IBPBOnVMEntry = 7;
    const PRUint32 HWVirt = 8;
    const PRUint32 SpecCtrl = 9;
    const PRUint32 SpecCtrlByHost = 10;
    const PRUint32 L1DFlushOnEMTScheduling = 11;
    const PRUint32 L1DFlushOnVMEntry = 12;
    const PRUint32 MDSClearOnEMTScheduling = 13;
    const PRUint32 MDSClearOnVMEntry = 14;
};


/* IDL typedef for enum CPUPropertyType and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 CPUPropertyType_T;
%{C++
# define CPUPropertyType_Null CPUPropertyType::Null
# define CPUPropertyType_PAE CPUPropertyType::PAE
# define CPUPropertyType_LongMode CPUPropertyType::LongMode
# define CPUPropertyType_TripleFaultReset CPUPropertyType::TripleFaultReset
# define CPUPropertyType_APIC CPUPropertyType::APIC
# define CPUPropertyType_X2APIC CPUPropertyType::X2APIC
# define CPUPropertyType_IBPBOnVMExit CPUPropertyType::IBPBOnVMExit
# define CPUPropertyType_IBPBOnVMEntry CPUPropertyType::IBPBOnVMEntry
# define CPUPropertyType_HWVirt CPUPropertyType::HWVirt
# define CPUPropertyType_SpecCtrl CPUPropertyType::SpecCtrl
# define CPUPropertyType_SpecCtrlByHost CPUPropertyType::SpecCtrlByHost
# define CPUPropertyType_L1DFlushOnEMTScheduling CPUPropertyType::L1DFlushOnEMTScheduling
# define CPUPropertyType_L1DFlushOnVMEntry CPUPropertyType::L1DFlushOnVMEntry
# define CPUPropertyType_MDSClearOnEMTScheduling CPUPropertyType::MDSClearOnEMTScheduling
# define CPUPropertyType_MDSClearOnVMEntry CPUPropertyType::MDSClearOnVMEntry
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum CPUPropertyType_T {
    CPUPropertyType_Null = CPUPropertyType::Null,
    CPUPropertyType_PAE = CPUPropertyType::PAE,
    CPUPropertyType_LongMode = CPUPropertyType::LongMode,
    CPUPropertyType_TripleFaultReset = CPUPropertyType::TripleFaultReset,
    CPUPropertyType_APIC = CPUPropertyType::APIC,
    CPUPropertyType_X2APIC = CPUPropertyType::X2APIC,
    CPUPropertyType_IBPBOnVMExit = CPUPropertyType::IBPBOnVMExit,
    CPUPropertyType_IBPBOnVMEntry = CPUPropertyType::IBPBOnVMEntry,
    CPUPropertyType_HWVirt = CPUPropertyType::HWVirt,
    CPUPropertyType_SpecCtrl = CPUPropertyType::SpecCtrl,
    CPUPropertyType_SpecCtrlByHost = CPUPropertyType::SpecCtrlByHost,
    CPUPropertyType_L1DFlushOnEMTScheduling = CPUPropertyType::L1DFlushOnEMTScheduling,
    CPUPropertyType_L1DFlushOnVMEntry = CPUPropertyType::L1DFlushOnVMEntry,
    CPUPropertyType_MDSClearOnEMTScheduling = CPUPropertyType::MDSClearOnEMTScheduling,
    CPUPropertyType_MDSClearOnVMEntry = CPUPropertyType::MDSClearOnVMEntry,
    CPUPropertyType_32BitHack = 0x7fffffff
} CPUPropertyType_T;
# ifdef AssertCompileSize
AssertCompileSize(CPUPropertyType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(bc05551e-e288-467e-1ea3-233de08e4480),
    scriptable
]
interface HWVirtExPropertyType
{
    const PRUint32 Null = 0;
    const PRUint32 Enabled = 1;
    const PRUint32 VPID = 2;
    const PRUint32 NestedPaging = 3;
    const PRUint32 UnrestrictedExecution = 4;
    const PRUint32 LargePages = 5;
    const PRUint32 Force = 6;
    const PRUint32 UseNativeApi = 7;
};


/* IDL typedef for enum HWVirtExPropertyType and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 HWVirtExPropertyType_T;
%{C++
# define HWVirtExPropertyType_Null HWVirtExPropertyType::Null
# define HWVirtExPropertyType_Enabled HWVirtExPropertyType::Enabled
# define HWVirtExPropertyType_VPID HWVirtExPropertyType::VPID
# define HWVirtExPropertyType_NestedPaging HWVirtExPropertyType::NestedPaging
# define HWVirtExPropertyType_UnrestrictedExecution HWVirtExPropertyType::UnrestrictedExecution
# define HWVirtExPropertyType_LargePages HWVirtExPropertyType::LargePages
# define HWVirtExPropertyType_Force HWVirtExPropertyType::Force
# define HWVirtExPropertyType_UseNativeApi HWVirtExPropertyType::UseNativeApi
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum HWVirtExPropertyType_T {
    HWVirtExPropertyType_Null = HWVirtExPropertyType::Null,
    HWVirtExPropertyType_Enabled = HWVirtExPropertyType::Enabled,
    HWVirtExPropertyType_VPID = HWVirtExPropertyType::VPID,
    HWVirtExPropertyType_NestedPaging = HWVirtExPropertyType::NestedPaging,
    HWVirtExPropertyType_UnrestrictedExecution = HWVirtExPropertyType::UnrestrictedExecution,
    HWVirtExPropertyType_LargePages = HWVirtExPropertyType::LargePages,
    HWVirtExPropertyType_Force = HWVirtExPropertyType::Force,
    HWVirtExPropertyType_UseNativeApi = HWVirtExPropertyType::UseNativeApi,
    HWVirtExPropertyType_32BitHack = 0x7fffffff
} HWVirtExPropertyType_T;
# ifdef AssertCompileSize
AssertCompileSize(HWVirtExPropertyType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(696453ec-3742-4a05-bead-658ccbf2c944),
    scriptable
]
interface ParavirtProvider
{
    const PRUint32 None = 0;
    const PRUint32 Default = 1;
    const PRUint32 Legacy = 2;
    const PRUint32 Minimal = 3;
    const PRUint32 HyperV = 4;
    const PRUint32 KVM = 5;
};


/* IDL typedef for enum ParavirtProvider and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 ParavirtProvider_T;
%{C++
# define ParavirtProvider_None ParavirtProvider::None
# define ParavirtProvider_Default ParavirtProvider::Default
# define ParavirtProvider_Legacy ParavirtProvider::Legacy
# define ParavirtProvider_Minimal ParavirtProvider::Minimal
# define ParavirtProvider_HyperV ParavirtProvider::HyperV
# define ParavirtProvider_KVM ParavirtProvider::KVM
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum ParavirtProvider_T {
    ParavirtProvider_None = ParavirtProvider::None,
    ParavirtProvider_Default = ParavirtProvider::Default,
    ParavirtProvider_Legacy = ParavirtProvider::Legacy,
    ParavirtProvider_Minimal = ParavirtProvider::Minimal,
    ParavirtProvider_HyperV = ParavirtProvider::HyperV,
    ParavirtProvider_KVM = ParavirtProvider::KVM,
    ParavirtProvider_32BitHack = 0x7fffffff
} ParavirtProvider_T;
# ifdef AssertCompileSize
AssertCompileSize(ParavirtProvider_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(678aaf14-2815-4c3e-b20a-e86ed0216498),
    scriptable
]
interface LockType
{
    const PRUint32 Null = 0;
    const PRUint32 Shared = 1;
    const PRUint32 Write = 2;
    const PRUint32 VM = 3;
};


/* IDL typedef for enum LockType and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 LockType_T;
%{C++
# define LockType_Null LockType::Null
# define LockType_Shared LockType::Shared
# define LockType_Write LockType::Write
# define LockType_VM LockType::VM
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum LockType_T {
    LockType_Null = LockType::Null,
    LockType_Shared = LockType::Shared,
    LockType_Write = LockType::Write,
    LockType_VM = LockType::VM,
    LockType_32BitHack = 0x7fffffff
} LockType_T;
# ifdef AssertCompileSize
AssertCompileSize(LockType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(A13C02CB-0C2C-421E-8317-AC0E8AAA153A),
    scriptable
]
interface SessionType
{
    const PRUint32 Null = 0;
    const PRUint32 WriteLock = 1;
    const PRUint32 Remote = 2;
    const PRUint32 Shared = 3;
};


/* IDL typedef for enum SessionType and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 SessionType_T;
%{C++
# define SessionType_Null SessionType::Null
# define SessionType_WriteLock SessionType::WriteLock
# define SessionType_Remote SessionType::Remote
# define SessionType_Shared SessionType::Shared
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum SessionType_T {
    SessionType_Null = SessionType::Null,
    SessionType_WriteLock = SessionType::WriteLock,
    SessionType_Remote = SessionType::Remote,
    SessionType_Shared = SessionType::Shared,
    SessionType_32BitHack = 0x7fffffff
} SessionType_T;
# ifdef AssertCompileSize
AssertCompileSize(SessionType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(cb977be1-d1fb-41f8-ad7e-951736c6cb3e),
    scriptable
]
interface DeviceType
{
    const PRUint32 Null = 0;
    const PRUint32 Floppy = 1;
    const PRUint32 DVD = 2;
    const PRUint32 HardDisk = 3;
    const PRUint32 Network = 4;
    const PRUint32 USB = 5;
    const PRUint32 SharedFolder = 6;
    const PRUint32 Graphics3D = 7;
};


/* IDL typedef for enum DeviceType and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 DeviceType_T;
%{C++
# define DeviceType_Null DeviceType::Null
# define DeviceType_Floppy DeviceType::Floppy
# define DeviceType_DVD DeviceType::DVD
# define DeviceType_HardDisk DeviceType::HardDisk
# define DeviceType_Network DeviceType::Network
# define DeviceType_USB DeviceType::USB
# define DeviceType_SharedFolder DeviceType::SharedFolder
# define DeviceType_Graphics3D DeviceType::Graphics3D
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum DeviceType_T {
    DeviceType_Null = DeviceType::Null,
    DeviceType_Floppy = DeviceType::Floppy,
    DeviceType_DVD = DeviceType::DVD,
    DeviceType_HardDisk = DeviceType::HardDisk,
    DeviceType_Network = DeviceType::Network,
    DeviceType_USB = DeviceType::USB,
    DeviceType_SharedFolder = DeviceType::SharedFolder,
    DeviceType_Graphics3D = DeviceType::Graphics3D,
    DeviceType_32BitHack = 0x7fffffff
} DeviceType_T;
# ifdef AssertCompileSize
AssertCompileSize(DeviceType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(6FC8AEAA-130A-4eb5-8954-3F921422D707),
    scriptable
]
interface DeviceActivity
{
    const PRUint32 Null = 0;
    const PRUint32 Idle = 1;
    const PRUint32 Reading = 2;
    const PRUint32 Writing = 3;
};


/* IDL typedef for enum DeviceActivity and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 DeviceActivity_T;
%{C++
# define DeviceActivity_Null DeviceActivity::Null
# define DeviceActivity_Idle DeviceActivity::Idle
# define DeviceActivity_Reading DeviceActivity::Reading
# define DeviceActivity_Writing DeviceActivity::Writing
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum DeviceActivity_T {
    DeviceActivity_Null = DeviceActivity::Null,
    DeviceActivity_Idle = DeviceActivity::Idle,
    DeviceActivity_Reading = DeviceActivity::Reading,
    DeviceActivity_Writing = DeviceActivity::Writing,
    DeviceActivity_32BitHack = 0x7fffffff
} DeviceActivity_T;
# ifdef AssertCompileSize
AssertCompileSize(DeviceActivity_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(33364716-4008-4701-8f14-be0fa3d62950),
    scriptable
]
interface ClipboardMode
{
    const PRUint32 Disabled = 0;
    const PRUint32 HostToGuest = 1;
    const PRUint32 GuestToHost = 2;
    const PRUint32 Bidirectional = 3;
};


/* IDL typedef for enum ClipboardMode and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 ClipboardMode_T;
%{C++
# define ClipboardMode_Disabled ClipboardMode::Disabled
# define ClipboardMode_HostToGuest ClipboardMode::HostToGuest
# define ClipboardMode_GuestToHost ClipboardMode::GuestToHost
# define ClipboardMode_Bidirectional ClipboardMode::Bidirectional
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum ClipboardMode_T {
    ClipboardMode_Disabled = ClipboardMode::Disabled,
    ClipboardMode_HostToGuest = ClipboardMode::HostToGuest,
    ClipboardMode_GuestToHost = ClipboardMode::GuestToHost,
    ClipboardMode_Bidirectional = ClipboardMode::Bidirectional,
    ClipboardMode_32BitHack = 0x7fffffff
} ClipboardMode_T;
# ifdef AssertCompileSize
AssertCompileSize(ClipboardMode_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(07af8800-f936-4b33-9172-cd400e83c148),
    scriptable
]
interface DnDMode
{
    const PRUint32 Disabled = 0;
    const PRUint32 HostToGuest = 1;
    const PRUint32 GuestToHost = 2;
    const PRUint32 Bidirectional = 3;
};


/* IDL typedef for enum DnDMode and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 DnDMode_T;
%{C++
# define DnDMode_Disabled DnDMode::Disabled
# define DnDMode_HostToGuest DnDMode::HostToGuest
# define DnDMode_GuestToHost DnDMode::GuestToHost
# define DnDMode_Bidirectional DnDMode::Bidirectional
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum DnDMode_T {
    DnDMode_Disabled = DnDMode::Disabled,
    DnDMode_HostToGuest = DnDMode::HostToGuest,
    DnDMode_GuestToHost = DnDMode::GuestToHost,
    DnDMode_Bidirectional = DnDMode::Bidirectional,
    DnDMode_32BitHack = 0x7fffffff
} DnDMode_T;
# ifdef AssertCompileSize
AssertCompileSize(DnDMode_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(7c91096e-499e-4eca-9f9b-9001438d7855),
    scriptable
]
interface Scope
{
    const PRUint32 Global = 0;
    const PRUint32 Machine = 1;
    const PRUint32 Session = 2;
};


/* IDL typedef for enum Scope and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 Scope_T;
%{C++
# define Scope_Global Scope::Global
# define Scope_Machine Scope::Machine
# define Scope_Session Scope::Session
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum Scope_T {
    Scope_Global = Scope::Global,
    Scope_Machine = Scope::Machine,
    Scope_Session = Scope::Session,
    Scope_32BitHack = 0x7fffffff
} Scope_T;
# ifdef AssertCompileSize
AssertCompileSize(Scope_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(ae4fb9f7-29d2-45b4-b2c7-d579603135d5),
    scriptable
]
interface BIOSBootMenuMode
{
    const PRUint32 Disabled = 0;
    const PRUint32 MenuOnly = 1;
    const PRUint32 MessageAndMenu = 2;
};


/* IDL typedef for enum BIOSBootMenuMode and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 BIOSBootMenuMode_T;
%{C++
# define BIOSBootMenuMode_Disabled BIOSBootMenuMode::Disabled
# define BIOSBootMenuMode_MenuOnly BIOSBootMenuMode::MenuOnly
# define BIOSBootMenuMode_MessageAndMenu BIOSBootMenuMode::MessageAndMenu
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum BIOSBootMenuMode_T {
    BIOSBootMenuMode_Disabled = BIOSBootMenuMode::Disabled,
    BIOSBootMenuMode_MenuOnly = BIOSBootMenuMode::MenuOnly,
    BIOSBootMenuMode_MessageAndMenu = BIOSBootMenuMode::MessageAndMenu,
    BIOSBootMenuMode_32BitHack = 0x7fffffff
} BIOSBootMenuMode_T;
# ifdef AssertCompileSize
AssertCompileSize(BIOSBootMenuMode_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(c6884ba5-3cc4-4a92-a7f6-4410f9fd894e),
    scriptable
]
interface APICMode
{
    const PRUint32 Disabled = 0;
    const PRUint32 APIC = 1;
    const PRUint32 X2APIC = 2;
};


/* IDL typedef for enum APICMode and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 APICMode_T;
%{C++
# define APICMode_Disabled APICMode::Disabled
# define APICMode_APIC APICMode::APIC
# define APICMode_X2APIC APICMode::X2APIC
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum APICMode_T {
    APICMode_Disabled = APICMode::Disabled,
    APICMode_APIC = APICMode::APIC,
    APICMode_X2APIC = APICMode::X2APIC,
    APICMode_32BitHack = 0x7fffffff
} APICMode_T;
# ifdef AssertCompileSize
AssertCompileSize(APICMode_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(fed0e385-dc5a-4cef-b9e2-66bafb6af6aa),
    scriptable
]
interface ProcessorFeature
{
    const PRUint32 HWVirtEx = 0;
    const PRUint32 PAE = 1;
    const PRUint32 LongMode = 2;
    const PRUint32 NestedPaging = 3;
    const PRUint32 UnrestrictedGuest = 4;
    const PRUint32 NestedHWVirt = 5;
};


/* IDL typedef for enum ProcessorFeature and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 ProcessorFeature_T;
%{C++
# define ProcessorFeature_HWVirtEx ProcessorFeature::HWVirtEx
# define ProcessorFeature_PAE ProcessorFeature::PAE
# define ProcessorFeature_LongMode ProcessorFeature::LongMode
# define ProcessorFeature_NestedPaging ProcessorFeature::NestedPaging
# define ProcessorFeature_UnrestrictedGuest ProcessorFeature::UnrestrictedGuest
# define ProcessorFeature_NestedHWVirt ProcessorFeature::NestedHWVirt
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum ProcessorFeature_T {
    ProcessorFeature_HWVirtEx = ProcessorFeature::HWVirtEx,
    ProcessorFeature_PAE = ProcessorFeature::PAE,
    ProcessorFeature_LongMode = ProcessorFeature::LongMode,
    ProcessorFeature_NestedPaging = ProcessorFeature::NestedPaging,
    ProcessorFeature_UnrestrictedGuest = ProcessorFeature::UnrestrictedGuest,
    ProcessorFeature_NestedHWVirt = ProcessorFeature::NestedHWVirt,
    ProcessorFeature_32BitHack = 0x7fffffff
} ProcessorFeature_T;
# ifdef AssertCompileSize
AssertCompileSize(ProcessorFeature_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(b903f264-c230-483e-ac74-2b37ce60d371),
    scriptable
]
interface FirmwareType
{
    const PRUint32 BIOS = 1;
    const PRUint32 EFI = 2;
    const PRUint32 EFI32 = 3;
    const PRUint32 EFI64 = 4;
    const PRUint32 EFIDUAL = 5;
};


/* IDL typedef for enum FirmwareType and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 FirmwareType_T;
%{C++
# define FirmwareType_BIOS FirmwareType::BIOS
# define FirmwareType_EFI FirmwareType::EFI
# define FirmwareType_EFI32 FirmwareType::EFI32
# define FirmwareType_EFI64 FirmwareType::EFI64
# define FirmwareType_EFIDUAL FirmwareType::EFIDUAL
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum FirmwareType_T {
    FirmwareType_BIOS = FirmwareType::BIOS,
    FirmwareType_EFI = FirmwareType::EFI,
    FirmwareType_EFI32 = FirmwareType::EFI32,
    FirmwareType_EFI64 = FirmwareType::EFI64,
    FirmwareType_EFIDUAL = FirmwareType::EFIDUAL,
    FirmwareType_32BitHack = 0x7fffffff
} FirmwareType_T;
# ifdef AssertCompileSize
AssertCompileSize(FirmwareType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(19964e93-0050-45c4-9382-a7bccc53e666),
    scriptable
]
interface PointingHIDType
{
    const PRUint32 None = 1;
    const PRUint32 PS2Mouse = 2;
    const PRUint32 USBMouse = 3;
    const PRUint32 USBTablet = 4;
    const PRUint32 ComboMouse = 5;
    const PRUint32 USBMultiTouch = 6;
};


/* IDL typedef for enum PointingHIDType and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 PointingHIDType_T;
%{C++
# define PointingHIDType_None PointingHIDType::None
# define PointingHIDType_PS2Mouse PointingHIDType::PS2Mouse
# define PointingHIDType_USBMouse PointingHIDType::USBMouse
# define PointingHIDType_USBTablet PointingHIDType::USBTablet
# define PointingHIDType_ComboMouse PointingHIDType::ComboMouse
# define PointingHIDType_USBMultiTouch PointingHIDType::USBMultiTouch
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum PointingHIDType_T {
    PointingHIDType_None = PointingHIDType::None,
    PointingHIDType_PS2Mouse = PointingHIDType::PS2Mouse,
    PointingHIDType_USBMouse = PointingHIDType::USBMouse,
    PointingHIDType_USBTablet = PointingHIDType::USBTablet,
    PointingHIDType_ComboMouse = PointingHIDType::ComboMouse,
    PointingHIDType_USBMultiTouch = PointingHIDType::USBMultiTouch,
    PointingHIDType_32BitHack = 0x7fffffff
} PointingHIDType_T;
# ifdef AssertCompileSize
AssertCompileSize(PointingHIDType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(383e43d7-5c7c-4ec8-9cb8-eda1bccd6699),
    scriptable
]
interface KeyboardHIDType
{
    const PRUint32 None = 1;
    const PRUint32 PS2Keyboard = 2;
    const PRUint32 USBKeyboard = 3;
    const PRUint32 ComboKeyboard = 4;
};


/* IDL typedef for enum KeyboardHIDType and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 KeyboardHIDType_T;
%{C++
# define KeyboardHIDType_None KeyboardHIDType::None
# define KeyboardHIDType_PS2Keyboard KeyboardHIDType::PS2Keyboard
# define KeyboardHIDType_USBKeyboard KeyboardHIDType::USBKeyboard
# define KeyboardHIDType_ComboKeyboard KeyboardHIDType::ComboKeyboard
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum KeyboardHIDType_T {
    KeyboardHIDType_None = KeyboardHIDType::None,
    KeyboardHIDType_PS2Keyboard = KeyboardHIDType::PS2Keyboard,
    KeyboardHIDType_USBKeyboard = KeyboardHIDType::USBKeyboard,
    KeyboardHIDType_ComboKeyboard = KeyboardHIDType::ComboKeyboard,
    KeyboardHIDType_32BitHack = 0x7fffffff
} KeyboardHIDType_T;
# ifdef AssertCompileSize
AssertCompileSize(KeyboardHIDType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(afb2bf39-8b1e-4f9f-8948-d1b887f83eb0),
    scriptable
]
interface BitmapFormat
{
    const PRUint32 Opaque = 0;
    const PRUint32 BGR = 0x20524742;
    const PRUint32 BGR0 = 0x30524742;
    const PRUint32 BGRA = 0x41524742;
    const PRUint32 RGBA = 0x41424752;
    const PRUint32 PNG = 0x20474E50;
    const PRUint32 JPEG = 0x4745504A;
};


/* IDL typedef for enum BitmapFormat and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 BitmapFormat_T;
%{C++
# define BitmapFormat_Opaque BitmapFormat::Opaque
# define BitmapFormat_BGR BitmapFormat::BGR
# define BitmapFormat_BGR0 BitmapFormat::BGR0
# define BitmapFormat_BGRA BitmapFormat::BGRA
# define BitmapFormat_RGBA BitmapFormat::RGBA
# define BitmapFormat_PNG BitmapFormat::PNG
# define BitmapFormat_JPEG BitmapFormat::JPEG
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum BitmapFormat_T {
    BitmapFormat_Opaque = BitmapFormat::Opaque,
    BitmapFormat_BGR = BitmapFormat::BGR,
    BitmapFormat_BGR0 = BitmapFormat::BGR0,
    BitmapFormat_BGRA = BitmapFormat::BGRA,
    BitmapFormat_RGBA = BitmapFormat::RGBA,
    BitmapFormat_PNG = BitmapFormat::PNG,
    BitmapFormat_JPEG = BitmapFormat::JPEG,
    BitmapFormat_32BitHack = 0x7fffffff
} BitmapFormat_T;
# ifdef AssertCompileSize
AssertCompileSize(BitmapFormat_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(00f5b10f-0021-4513-00f7-5bf4000982bf),
    scriptable
]
interface DHCPOption
{
    const PRUint32 SubnetMask = 1;
    const PRUint32 TimeOffset = 2;
    const PRUint32 Routers = 3;
    const PRUint32 TimeServers = 4;
    const PRUint32 NameServers = 5;
    const PRUint32 DomainNameServers = 6;
    const PRUint32 LogServers = 7;
    const PRUint32 CookieServers = 8;
    const PRUint32 LPRServers = 9;
    const PRUint32 ImpressServers = 10;
    const PRUint32 ResourseLocationServers = 11;
    const PRUint32 HostName = 12;
    const PRUint32 BootFileSize = 13;
    const PRUint32 MeritDumpFile = 14;
    const PRUint32 DomainName = 15;
    const PRUint32 SwapServer = 16;
    const PRUint32 RootPath = 17;
    const PRUint32 ExtensionPath = 18;
    const PRUint32 IPForwarding = 19;
    const PRUint32 OptNonLocalSourceRouting = 20;
    const PRUint32 PolicyFilter = 21;
    const PRUint32 MaxDgramReassemblySize = 22;
    const PRUint32 DefaultIPTTL = 23;
    const PRUint32 PathMTUAgingTimeout = 24;
    const PRUint32 PathMTUPlateauTable = 25;
    const PRUint32 InterfaceMTU = 26;
    const PRUint32 AllSubnetsAreLocal = 27;
    const PRUint32 BroadcastAddress = 28;
    const PRUint32 PerformMaskDiscovery = 29;
    const PRUint32 MaskSupplier = 30;
    const PRUint32 PerformRouterDiscovery = 31;
    const PRUint32 RouterSolicitationAddress = 32;
    const PRUint32 StaticRoute = 33;
    const PRUint32 TrailerEncapsulation = 34;
    const PRUint32 ARPCacheTimeout = 35;
    const PRUint32 EthernetEncapsulation = 36;
    const PRUint32 TCPDefaultTTL = 37;
    const PRUint32 TCPKeepaliveInterval = 38;
    const PRUint32 TCPKeepaliveGarbage = 39;
    const PRUint32 NISDomain = 40;
    const PRUint32 NISServers = 41;
    const PRUint32 NTPServers = 42;
    const PRUint32 VendorSpecificInfo = 43;
    const PRUint32 NetBIOSNameServers = 44;
    const PRUint32 NetBIOSDatagramServers = 45;
    const PRUint32 NetBIOSNodeType = 46;
    const PRUint32 NetBIOSScope = 47;
    const PRUint32 XWindowsFontServers = 48;
    const PRUint32 XWindowsDisplayManager = 49;
    const PRUint32 NetWareIPDomainName = 62;
    const PRUint32 NetWareIPInformation = 63;
    const PRUint32 NISPlusDomain = 64;
    const PRUint32 NISPlusServers = 65;
    const PRUint32 TFTPServerName = 66;
    const PRUint32 BootfileName = 67;
    const PRUint32 MobileIPHomeAgents = 68;
    const PRUint32 SMTPServers = 69;
    const PRUint32 POP3Servers = 70;
    const PRUint32 NNTPServers = 71;
    const PRUint32 WWWServers = 72;
    const PRUint32 FingerServers = 73;
    const PRUint32 IRCServers = 74;
    const PRUint32 StreetTalkServers = 75;
    const PRUint32 STDAServers = 76;
    const PRUint32 SLPDirectoryAgent = 78;
    const PRUint32 SLPServiceScope = 79;
    const PRUint32 DomainSearch = 119;
};


/* IDL typedef for enum DHCPOption and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 DHCPOption_T;
%{C++
# define DHCPOption_SubnetMask DHCPOption::SubnetMask
# define DHCPOption_TimeOffset DHCPOption::TimeOffset
# define DHCPOption_Routers DHCPOption::Routers
# define DHCPOption_TimeServers DHCPOption::TimeServers
# define DHCPOption_NameServers DHCPOption::NameServers
# define DHCPOption_DomainNameServers DHCPOption::DomainNameServers
# define DHCPOption_LogServers DHCPOption::LogServers
# define DHCPOption_CookieServers DHCPOption::CookieServers
# define DHCPOption_LPRServers DHCPOption::LPRServers
# define DHCPOption_ImpressServers DHCPOption::ImpressServers
# define DHCPOption_ResourseLocationServers DHCPOption::ResourseLocationServers
# define DHCPOption_HostName DHCPOption::HostName
# define DHCPOption_BootFileSize DHCPOption::BootFileSize
# define DHCPOption_MeritDumpFile DHCPOption::MeritDumpFile
# define DHCPOption_DomainName DHCPOption::DomainName
# define DHCPOption_SwapServer DHCPOption::SwapServer
# define DHCPOption_RootPath DHCPOption::RootPath
# define DHCPOption_ExtensionPath DHCPOption::ExtensionPath
# define DHCPOption_IPForwarding DHCPOption::IPForwarding
# define DHCPOption_OptNonLocalSourceRouting DHCPOption::OptNonLocalSourceRouting
# define DHCPOption_PolicyFilter DHCPOption::PolicyFilter
# define DHCPOption_MaxDgramReassemblySize DHCPOption::MaxDgramReassemblySize
# define DHCPOption_DefaultIPTTL DHCPOption::DefaultIPTTL
# define DHCPOption_PathMTUAgingTimeout DHCPOption::PathMTUAgingTimeout
# define DHCPOption_PathMTUPlateauTable DHCPOption::PathMTUPlateauTable
# define DHCPOption_InterfaceMTU DHCPOption::InterfaceMTU
# define DHCPOption_AllSubnetsAreLocal DHCPOption::AllSubnetsAreLocal
# define DHCPOption_BroadcastAddress DHCPOption::BroadcastAddress
# define DHCPOption_PerformMaskDiscovery DHCPOption::PerformMaskDiscovery
# define DHCPOption_MaskSupplier DHCPOption::MaskSupplier
# define DHCPOption_PerformRouterDiscovery DHCPOption::PerformRouterDiscovery
# define DHCPOption_RouterSolicitationAddress DHCPOption::RouterSolicitationAddress
# define DHCPOption_StaticRoute DHCPOption::StaticRoute
# define DHCPOption_TrailerEncapsulation DHCPOption::TrailerEncapsulation
# define DHCPOption_ARPCacheTimeout DHCPOption::ARPCacheTimeout
# define DHCPOption_EthernetEncapsulation DHCPOption::EthernetEncapsulation
# define DHCPOption_TCPDefaultTTL DHCPOption::TCPDefaultTTL
# define DHCPOption_TCPKeepaliveInterval DHCPOption::TCPKeepaliveInterval
# define DHCPOption_TCPKeepaliveGarbage DHCPOption::TCPKeepaliveGarbage
# define DHCPOption_NISDomain DHCPOption::NISDomain
# define DHCPOption_NISServers DHCPOption::NISServers
# define DHCPOption_NTPServers DHCPOption::NTPServers
# define DHCPOption_VendorSpecificInfo DHCPOption::VendorSpecificInfo
# define DHCPOption_NetBIOSNameServers DHCPOption::NetBIOSNameServers
# define DHCPOption_NetBIOSDatagramServers DHCPOption::NetBIOSDatagramServers
# define DHCPOption_NetBIOSNodeType DHCPOption::NetBIOSNodeType
# define DHCPOption_NetBIOSScope DHCPOption::NetBIOSScope
# define DHCPOption_XWindowsFontServers DHCPOption::XWindowsFontServers
# define DHCPOption_XWindowsDisplayManager DHCPOption::XWindowsDisplayManager
# define DHCPOption_NetWareIPDomainName DHCPOption::NetWareIPDomainName
# define DHCPOption_NetWareIPInformation DHCPOption::NetWareIPInformation
# define DHCPOption_NISPlusDomain DHCPOption::NISPlusDomain
# define DHCPOption_NISPlusServers DHCPOption::NISPlusServers
# define DHCPOption_TFTPServerName DHCPOption::TFTPServerName
# define DHCPOption_BootfileName DHCPOption::BootfileName
# define DHCPOption_MobileIPHomeAgents DHCPOption::MobileIPHomeAgents
# define DHCPOption_SMTPServers DHCPOption::SMTPServers
# define DHCPOption_POP3Servers DHCPOption::POP3Servers
# define DHCPOption_NNTPServers DHCPOption::NNTPServers
# define DHCPOption_WWWServers DHCPOption::WWWServers
# define DHCPOption_FingerServers DHCPOption::FingerServers
# define DHCPOption_IRCServers DHCPOption::IRCServers
# define DHCPOption_StreetTalkServers DHCPOption::StreetTalkServers
# define DHCPOption_STDAServers DHCPOption::STDAServers
# define DHCPOption_SLPDirectoryAgent DHCPOption::SLPDirectoryAgent
# define DHCPOption_SLPServiceScope DHCPOption::SLPServiceScope
# define DHCPOption_DomainSearch DHCPOption::DomainSearch
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum DHCPOption_T {
    DHCPOption_SubnetMask = DHCPOption::SubnetMask,
    DHCPOption_TimeOffset = DHCPOption::TimeOffset,
    DHCPOption_Routers = DHCPOption::Routers,
    DHCPOption_TimeServers = DHCPOption::TimeServers,
    DHCPOption_NameServers = DHCPOption::NameServers,
    DHCPOption_DomainNameServers = DHCPOption::DomainNameServers,
    DHCPOption_LogServers = DHCPOption::LogServers,
    DHCPOption_CookieServers = DHCPOption::CookieServers,
    DHCPOption_LPRServers = DHCPOption::LPRServers,
    DHCPOption_ImpressServers = DHCPOption::ImpressServers,
    DHCPOption_ResourseLocationServers = DHCPOption::ResourseLocationServers,
    DHCPOption_HostName = DHCPOption::HostName,
    DHCPOption_BootFileSize = DHCPOption::BootFileSize,
    DHCPOption_MeritDumpFile = DHCPOption::MeritDumpFile,
    DHCPOption_DomainName = DHCPOption::DomainName,
    DHCPOption_SwapServer = DHCPOption::SwapServer,
    DHCPOption_RootPath = DHCPOption::RootPath,
    DHCPOption_ExtensionPath = DHCPOption::ExtensionPath,
    DHCPOption_IPForwarding = DHCPOption::IPForwarding,
    DHCPOption_OptNonLocalSourceRouting = DHCPOption::OptNonLocalSourceRouting,
    DHCPOption_PolicyFilter = DHCPOption::PolicyFilter,
    DHCPOption_MaxDgramReassemblySize = DHCPOption::MaxDgramReassemblySize,
    DHCPOption_DefaultIPTTL = DHCPOption::DefaultIPTTL,
    DHCPOption_PathMTUAgingTimeout = DHCPOption::PathMTUAgingTimeout,
    DHCPOption_PathMTUPlateauTable = DHCPOption::PathMTUPlateauTable,
    DHCPOption_InterfaceMTU = DHCPOption::InterfaceMTU,
    DHCPOption_AllSubnetsAreLocal = DHCPOption::AllSubnetsAreLocal,
    DHCPOption_BroadcastAddress = DHCPOption::BroadcastAddress,
    DHCPOption_PerformMaskDiscovery = DHCPOption::PerformMaskDiscovery,
    DHCPOption_MaskSupplier = DHCPOption::MaskSupplier,
    DHCPOption_PerformRouterDiscovery = DHCPOption::PerformRouterDiscovery,
    DHCPOption_RouterSolicitationAddress = DHCPOption::RouterSolicitationAddress,
    DHCPOption_StaticRoute = DHCPOption::StaticRoute,
    DHCPOption_TrailerEncapsulation = DHCPOption::TrailerEncapsulation,
    DHCPOption_ARPCacheTimeout = DHCPOption::ARPCacheTimeout,
    DHCPOption_EthernetEncapsulation = DHCPOption::EthernetEncapsulation,
    DHCPOption_TCPDefaultTTL = DHCPOption::TCPDefaultTTL,
    DHCPOption_TCPKeepaliveInterval = DHCPOption::TCPKeepaliveInterval,
    DHCPOption_TCPKeepaliveGarbage = DHCPOption::TCPKeepaliveGarbage,
    DHCPOption_NISDomain = DHCPOption::NISDomain,
    DHCPOption_NISServers = DHCPOption::NISServers,
    DHCPOption_NTPServers = DHCPOption::NTPServers,
    DHCPOption_VendorSpecificInfo = DHCPOption::VendorSpecificInfo,
    DHCPOption_NetBIOSNameServers = DHCPOption::NetBIOSNameServers,
    DHCPOption_NetBIOSDatagramServers = DHCPOption::NetBIOSDatagramServers,
    DHCPOption_NetBIOSNodeType = DHCPOption::NetBIOSNodeType,
    DHCPOption_NetBIOSScope = DHCPOption::NetBIOSScope,
    DHCPOption_XWindowsFontServers = DHCPOption::XWindowsFontServers,
    DHCPOption_XWindowsDisplayManager = DHCPOption::XWindowsDisplayManager,
    DHCPOption_NetWareIPDomainName = DHCPOption::NetWareIPDomainName,
    DHCPOption_NetWareIPInformation = DHCPOption::NetWareIPInformation,
    DHCPOption_NISPlusDomain = DHCPOption::NISPlusDomain,
    DHCPOption_NISPlusServers = DHCPOption::NISPlusServers,
    DHCPOption_TFTPServerName = DHCPOption::TFTPServerName,
    DHCPOption_BootfileName = DHCPOption::BootfileName,
    DHCPOption_MobileIPHomeAgents = DHCPOption::MobileIPHomeAgents,
    DHCPOption_SMTPServers = DHCPOption::SMTPServers,
    DHCPOption_POP3Servers = DHCPOption::POP3Servers,
    DHCPOption_NNTPServers = DHCPOption::NNTPServers,
    DHCPOption_WWWServers = DHCPOption::WWWServers,
    DHCPOption_FingerServers = DHCPOption::FingerServers,
    DHCPOption_IRCServers = DHCPOption::IRCServers,
    DHCPOption_StreetTalkServers = DHCPOption::StreetTalkServers,
    DHCPOption_STDAServers = DHCPOption::STDAServers,
    DHCPOption_SLPDirectoryAgent = DHCPOption::SLPDirectoryAgent,
    DHCPOption_SLPServiceScope = DHCPOption::SLPServiceScope,
    DHCPOption_DomainSearch = DHCPOption::DomainSearch,
    DHCPOption_32BitHack = 0x7fffffff
} DHCPOption_T;
# ifdef AssertCompileSize
AssertCompileSize(DHCPOption_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(84b6d460-2838-4682-c0d6-ef5b573ef28a),
    scriptable
]
interface DHCPOptionEncoding
{
    const PRUint32 Normal = 0;
    const PRUint32 Hex = 1;
};


/* IDL typedef for enum DHCPOptionEncoding and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 DHCPOptionEncoding_T;
%{C++
# define DHCPOptionEncoding_Normal DHCPOptionEncoding::Normal
# define DHCPOptionEncoding_Hex DHCPOptionEncoding::Hex
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum DHCPOptionEncoding_T {
    DHCPOptionEncoding_Normal = DHCPOptionEncoding::Normal,
    DHCPOptionEncoding_Hex = DHCPOptionEncoding::Hex,
    DHCPOptionEncoding_32BitHack = 0x7fffffff
} DHCPOptionEncoding_T;
# ifdef AssertCompileSize
AssertCompileSize(DHCPOptionEncoding_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(469c42e4-b9ec-43f2-bdcb-9e9d1eb434ae),
    scriptable
]
interface DHCPConfigScope
{
    const PRUint32 Global = 0;
    const PRUint32 Group = 1;
    const PRUint32 MachineNIC = 2;
    const PRUint32 MAC = 3;
};


/* IDL typedef for enum DHCPConfigScope and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 DHCPConfigScope_T;
%{C++
# define DHCPConfigScope_Global DHCPConfigScope::Global
# define DHCPConfigScope_Group DHCPConfigScope::Group
# define DHCPConfigScope_MachineNIC DHCPConfigScope::MachineNIC
# define DHCPConfigScope_MAC DHCPConfigScope::MAC
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum DHCPConfigScope_T {
    DHCPConfigScope_Global = DHCPConfigScope::Global,
    DHCPConfigScope_Group = DHCPConfigScope::Group,
    DHCPConfigScope_MachineNIC = DHCPConfigScope::MachineNIC,
    DHCPConfigScope_MAC = DHCPConfigScope::MAC,
    DHCPConfigScope_32BitHack = 0x7fffffff
} DHCPConfigScope_T;
# ifdef AssertCompileSize
AssertCompileSize(DHCPConfigScope_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(2cb9280f-ada2-4194-dee8-bfb8ad77119d),
    scriptable
]
interface DHCPGroupConditionType
{
    const PRUint32 MAC = 0;
    const PRUint32 MACWildcard = 1;
    const PRUint32 vendorClassID = 2;
    const PRUint32 vendorClassIDWildcard = 3;
    const PRUint32 userClassID = 4;
    const PRUint32 userClassIDWildcard = 5;
};


/* IDL typedef for enum DHCPGroupConditionType and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 DHCPGroupConditionType_T;
%{C++
# define DHCPGroupConditionType_MAC DHCPGroupConditionType::MAC
# define DHCPGroupConditionType_MACWildcard DHCPGroupConditionType::MACWildcard
# define DHCPGroupConditionType_vendorClassID DHCPGroupConditionType::vendorClassID
# define DHCPGroupConditionType_vendorClassIDWildcard DHCPGroupConditionType::vendorClassIDWildcard
# define DHCPGroupConditionType_userClassID DHCPGroupConditionType::userClassID
# define DHCPGroupConditionType_userClassIDWildcard DHCPGroupConditionType::userClassIDWildcard
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum DHCPGroupConditionType_T {
    DHCPGroupConditionType_MAC = DHCPGroupConditionType::MAC,
    DHCPGroupConditionType_MACWildcard = DHCPGroupConditionType::MACWildcard,
    DHCPGroupConditionType_vendorClassID = DHCPGroupConditionType::vendorClassID,
    DHCPGroupConditionType_vendorClassIDWildcard = DHCPGroupConditionType::vendorClassIDWildcard,
    DHCPGroupConditionType_userClassID = DHCPGroupConditionType::userClassID,
    DHCPGroupConditionType_userClassIDWildcard = DHCPGroupConditionType::userClassIDWildcard,
    DHCPGroupConditionType_32BitHack = 0x7fffffff
} DHCPGroupConditionType_T;
# ifdef AssertCompileSize
AssertCompileSize(DHCPGroupConditionType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(813999ba-b949-48a8-9230-aadc6285e2f2),
    scriptable
]
interface VFSType
{
    const PRUint32 File = 1;
    const PRUint32 Cloud = 2;
    const PRUint32 S3 = 3;
    const PRUint32 WebDav = 4;
};


/* IDL typedef for enum VFSType and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 VFSType_T;
%{C++
# define VFSType_File VFSType::File
# define VFSType_Cloud VFSType::Cloud
# define VFSType_S3 VFSType::S3
# define VFSType_WebDav VFSType::WebDav
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum VFSType_T {
    VFSType_File = VFSType::File,
    VFSType_Cloud = VFSType::Cloud,
    VFSType_S3 = VFSType::S3,
    VFSType_WebDav = VFSType::WebDav,
    VFSType_32BitHack = 0x7fffffff
} VFSType_T;
# ifdef AssertCompileSize
AssertCompileSize(VFSType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(0a981523-3b20-4004-8ee3-dfd322202ace),
    scriptable
]
interface ImportOptions
{
    const PRUint32 KeepAllMACs = 1;
    const PRUint32 KeepNATMACs = 2;
    const PRUint32 ImportToVDI = 3;
};


/* IDL typedef for enum ImportOptions and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 ImportOptions_T;
%{C++
# define ImportOptions_KeepAllMACs ImportOptions::KeepAllMACs
# define ImportOptions_KeepNATMACs ImportOptions::KeepNATMACs
# define ImportOptions_ImportToVDI ImportOptions::ImportToVDI
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum ImportOptions_T {
    ImportOptions_KeepAllMACs = ImportOptions::KeepAllMACs,
    ImportOptions_KeepNATMACs = ImportOptions::KeepNATMACs,
    ImportOptions_ImportToVDI = ImportOptions::ImportToVDI,
    ImportOptions_32BitHack = 0x7fffffff
} ImportOptions_T;
# ifdef AssertCompileSize
AssertCompileSize(ImportOptions_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(8f45eb08-fd34-41ee-af95-a880bdee5554),
    scriptable
]
interface ExportOptions
{
    const PRUint32 CreateManifest = 1;
    const PRUint32 ExportDVDImages = 2;
    const PRUint32 StripAllMACs = 3;
    const PRUint32 StripAllNonNATMACs = 4;
};


/* IDL typedef for enum ExportOptions and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 ExportOptions_T;
%{C++
# define ExportOptions_CreateManifest ExportOptions::CreateManifest
# define ExportOptions_ExportDVDImages ExportOptions::ExportDVDImages
# define ExportOptions_StripAllMACs ExportOptions::StripAllMACs
# define ExportOptions_StripAllNonNATMACs ExportOptions::StripAllNonNATMACs
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum ExportOptions_T {
    ExportOptions_CreateManifest = ExportOptions::CreateManifest,
    ExportOptions_ExportDVDImages = ExportOptions::ExportDVDImages,
    ExportOptions_StripAllMACs = ExportOptions::StripAllMACs,
    ExportOptions_StripAllNonNATMACs = ExportOptions::StripAllNonNATMACs,
    ExportOptions_32BitHack = 0x7fffffff
} ExportOptions_T;
# ifdef AssertCompileSize
AssertCompileSize(ExportOptions_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(9e232a99-51d0-4dbd-96a0-ffac4bc3e2a8),
    scriptable
]
interface CertificateVersion
{
    const PRUint32 V1 = 1;
    const PRUint32 V2 = 2;
    const PRUint32 V3 = 3;
    const PRUint32 Unknown = 99;
};


/* IDL typedef for enum CertificateVersion and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 CertificateVersion_T;
%{C++
# define CertificateVersion_V1 CertificateVersion::V1
# define CertificateVersion_V2 CertificateVersion::V2
# define CertificateVersion_V3 CertificateVersion::V3
# define CertificateVersion_Unknown CertificateVersion::Unknown
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum CertificateVersion_T {
    CertificateVersion_V1 = CertificateVersion::V1,
    CertificateVersion_V2 = CertificateVersion::V2,
    CertificateVersion_V3 = CertificateVersion::V3,
    CertificateVersion_Unknown = CertificateVersion::Unknown,
    CertificateVersion_32BitHack = 0x7fffffff
} CertificateVersion_T;
# ifdef AssertCompileSize
AssertCompileSize(CertificateVersion_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(9078595f-74cf-4454-8787-34a8f72beed5),
    scriptable
]
interface VirtualSystemDescriptionType
{
    const PRUint32 Ignore = 1;
    const PRUint32 OS = 2;
    const PRUint32 Name = 3;
    const PRUint32 Product = 4;
    const PRUint32 Vendor = 5;
    const PRUint32 Version = 6;
    const PRUint32 ProductUrl = 7;
    const PRUint32 VendorUrl = 8;
    const PRUint32 Description = 9;
    const PRUint32 License = 10;
    const PRUint32 Miscellaneous = 11;
    const PRUint32 CPU = 12;
    const PRUint32 Memory = 13;
    const PRUint32 HardDiskControllerIDE = 14;
    const PRUint32 HardDiskControllerSATA = 15;
    const PRUint32 HardDiskControllerSCSI = 16;
    const PRUint32 HardDiskControllerSAS = 17;
    const PRUint32 HardDiskImage = 18;
    const PRUint32 Floppy = 19;
    const PRUint32 CDROM = 20;
    const PRUint32 NetworkAdapter = 21;
    const PRUint32 USBController = 22;
    const PRUint32 SoundCard = 23;
    const PRUint32 SettingsFile = 24;
    const PRUint32 BaseFolder = 25;
    const PRUint32 PrimaryGroup = 26;
    const PRUint32 CloudInstanceShape = 27;
    const PRUint32 CloudDomain = 28;
    const PRUint32 CloudBootDiskSize = 29;
    const PRUint32 CloudBucket = 30;
    const PRUint32 CloudOCIVCN = 31;
    const PRUint32 CloudPublicIP = 32;
    const PRUint32 CloudProfileName = 33;
    const PRUint32 CloudOCISubnet = 34;
    const PRUint32 CloudKeepObject = 35;
    const PRUint32 CloudLaunchInstance = 36;
    const PRUint32 CloudInstanceId = 37;
    const PRUint32 CloudImageId = 38;
    const PRUint32 CloudInstanceState = 39;
    const PRUint32 CloudImageState = 40;
    const PRUint32 CloudInstanceDisplayName = 41;
    const PRUint32 CloudImageDisplayName = 42;
    const PRUint32 CloudOCILaunchMode = 43;
    const PRUint32 CloudPrivateIP = 44;
    const PRUint32 CloudBootVolumeId = 45;
    const PRUint32 CloudOCIVCNCompartment = 46;
    const PRUint32 CloudOCISubnetCompartment = 47;
    const PRUint32 CloudPublicSSHKey = 48;
    const PRUint32 BootingFirmware = 49;
};


/* IDL typedef for enum VirtualSystemDescriptionType and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 VirtualSystemDescriptionType_T;
%{C++
# define VirtualSystemDescriptionType_Ignore VirtualSystemDescriptionType::Ignore
# define VirtualSystemDescriptionType_OS VirtualSystemDescriptionType::OS
# define VirtualSystemDescriptionType_Name VirtualSystemDescriptionType::Name
# define VirtualSystemDescriptionType_Product VirtualSystemDescriptionType::Product
# define VirtualSystemDescriptionType_Vendor VirtualSystemDescriptionType::Vendor
# define VirtualSystemDescriptionType_Version VirtualSystemDescriptionType::Version
# define VirtualSystemDescriptionType_ProductUrl VirtualSystemDescriptionType::ProductUrl
# define VirtualSystemDescriptionType_VendorUrl VirtualSystemDescriptionType::VendorUrl
# define VirtualSystemDescriptionType_Description VirtualSystemDescriptionType::Description
# define VirtualSystemDescriptionType_License VirtualSystemDescriptionType::License
# define VirtualSystemDescriptionType_Miscellaneous VirtualSystemDescriptionType::Miscellaneous
# define VirtualSystemDescriptionType_CPU VirtualSystemDescriptionType::CPU
# define VirtualSystemDescriptionType_Memory VirtualSystemDescriptionType::Memory
# define VirtualSystemDescriptionType_HardDiskControllerIDE VirtualSystemDescriptionType::HardDiskControllerIDE
# define VirtualSystemDescriptionType_HardDiskControllerSATA VirtualSystemDescriptionType::HardDiskControllerSATA
# define VirtualSystemDescriptionType_HardDiskControllerSCSI VirtualSystemDescriptionType::HardDiskControllerSCSI
# define VirtualSystemDescriptionType_HardDiskControllerSAS VirtualSystemDescriptionType::HardDiskControllerSAS
# define VirtualSystemDescriptionType_HardDiskImage VirtualSystemDescriptionType::HardDiskImage
# define VirtualSystemDescriptionType_Floppy VirtualSystemDescriptionType::Floppy
# define VirtualSystemDescriptionType_CDROM VirtualSystemDescriptionType::CDROM
# define VirtualSystemDescriptionType_NetworkAdapter VirtualSystemDescriptionType::NetworkAdapter
# define VirtualSystemDescriptionType_USBController VirtualSystemDescriptionType::USBController
# define VirtualSystemDescriptionType_SoundCard VirtualSystemDescriptionType::SoundCard
# define VirtualSystemDescriptionType_SettingsFile VirtualSystemDescriptionType::SettingsFile
# define VirtualSystemDescriptionType_BaseFolder VirtualSystemDescriptionType::BaseFolder
# define VirtualSystemDescriptionType_PrimaryGroup VirtualSystemDescriptionType::PrimaryGroup
# define VirtualSystemDescriptionType_CloudInstanceShape VirtualSystemDescriptionType::CloudInstanceShape
# define VirtualSystemDescriptionType_CloudDomain VirtualSystemDescriptionType::CloudDomain
# define VirtualSystemDescriptionType_CloudBootDiskSize VirtualSystemDescriptionType::CloudBootDiskSize
# define VirtualSystemDescriptionType_CloudBucket VirtualSystemDescriptionType::CloudBucket
# define VirtualSystemDescriptionType_CloudOCIVCN VirtualSystemDescriptionType::CloudOCIVCN
# define VirtualSystemDescriptionType_CloudPublicIP VirtualSystemDescriptionType::CloudPublicIP
# define VirtualSystemDescriptionType_CloudProfileName VirtualSystemDescriptionType::CloudProfileName
# define VirtualSystemDescriptionType_CloudOCISubnet VirtualSystemDescriptionType::CloudOCISubnet
# define VirtualSystemDescriptionType_CloudKeepObject VirtualSystemDescriptionType::CloudKeepObject
# define VirtualSystemDescriptionType_CloudLaunchInstance VirtualSystemDescriptionType::CloudLaunchInstance
# define VirtualSystemDescriptionType_CloudInstanceId VirtualSystemDescriptionType::CloudInstanceId
# define VirtualSystemDescriptionType_CloudImageId VirtualSystemDescriptionType::CloudImageId
# define VirtualSystemDescriptionType_CloudInstanceState VirtualSystemDescriptionType::CloudInstanceState
# define VirtualSystemDescriptionType_CloudImageState VirtualSystemDescriptionType::CloudImageState
# define VirtualSystemDescriptionType_CloudInstanceDisplayName VirtualSystemDescriptionType::CloudInstanceDisplayName
# define VirtualSystemDescriptionType_CloudImageDisplayName VirtualSystemDescriptionType::CloudImageDisplayName
# define VirtualSystemDescriptionType_CloudOCILaunchMode VirtualSystemDescriptionType::CloudOCILaunchMode
# define VirtualSystemDescriptionType_CloudPrivateIP VirtualSystemDescriptionType::CloudPrivateIP
# define VirtualSystemDescriptionType_CloudBootVolumeId VirtualSystemDescriptionType::CloudBootVolumeId
# define VirtualSystemDescriptionType_CloudOCIVCNCompartment VirtualSystemDescriptionType::CloudOCIVCNCompartment
# define VirtualSystemDescriptionType_CloudOCISubnetCompartment VirtualSystemDescriptionType::CloudOCISubnetCompartment
# define VirtualSystemDescriptionType_CloudPublicSSHKey VirtualSystemDescriptionType::CloudPublicSSHKey
# define VirtualSystemDescriptionType_BootingFirmware VirtualSystemDescriptionType::BootingFirmware
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum VirtualSystemDescriptionType_T {
    VirtualSystemDescriptionType_Ignore = VirtualSystemDescriptionType::Ignore,
    VirtualSystemDescriptionType_OS = VirtualSystemDescriptionType::OS,
    VirtualSystemDescriptionType_Name = VirtualSystemDescriptionType::Name,
    VirtualSystemDescriptionType_Product = VirtualSystemDescriptionType::Product,
    VirtualSystemDescriptionType_Vendor = VirtualSystemDescriptionType::Vendor,
    VirtualSystemDescriptionType_Version = VirtualSystemDescriptionType::Version,
    VirtualSystemDescriptionType_ProductUrl = VirtualSystemDescriptionType::ProductUrl,
    VirtualSystemDescriptionType_VendorUrl = VirtualSystemDescriptionType::VendorUrl,
    VirtualSystemDescriptionType_Description = VirtualSystemDescriptionType::Description,
    VirtualSystemDescriptionType_License = VirtualSystemDescriptionType::License,
    VirtualSystemDescriptionType_Miscellaneous = VirtualSystemDescriptionType::Miscellaneous,
    VirtualSystemDescriptionType_CPU = VirtualSystemDescriptionType::CPU,
    VirtualSystemDescriptionType_Memory = VirtualSystemDescriptionType::Memory,
    VirtualSystemDescriptionType_HardDiskControllerIDE = VirtualSystemDescriptionType::HardDiskControllerIDE,
    VirtualSystemDescriptionType_HardDiskControllerSATA = VirtualSystemDescriptionType::HardDiskControllerSATA,
    VirtualSystemDescriptionType_HardDiskControllerSCSI = VirtualSystemDescriptionType::HardDiskControllerSCSI,
    VirtualSystemDescriptionType_HardDiskControllerSAS = VirtualSystemDescriptionType::HardDiskControllerSAS,
    VirtualSystemDescriptionType_HardDiskImage = VirtualSystemDescriptionType::HardDiskImage,
    VirtualSystemDescriptionType_Floppy = VirtualSystemDescriptionType::Floppy,
    VirtualSystemDescriptionType_CDROM = VirtualSystemDescriptionType::CDROM,
    VirtualSystemDescriptionType_NetworkAdapter = VirtualSystemDescriptionType::NetworkAdapter,
    VirtualSystemDescriptionType_USBController = VirtualSystemDescriptionType::USBController,
    VirtualSystemDescriptionType_SoundCard = VirtualSystemDescriptionType::SoundCard,
    VirtualSystemDescriptionType_SettingsFile = VirtualSystemDescriptionType::SettingsFile,
    VirtualSystemDescriptionType_BaseFolder = VirtualSystemDescriptionType::BaseFolder,
    VirtualSystemDescriptionType_PrimaryGroup = VirtualSystemDescriptionType::PrimaryGroup,
    VirtualSystemDescriptionType_CloudInstanceShape = VirtualSystemDescriptionType::CloudInstanceShape,
    VirtualSystemDescriptionType_CloudDomain = VirtualSystemDescriptionType::CloudDomain,
    VirtualSystemDescriptionType_CloudBootDiskSize = VirtualSystemDescriptionType::CloudBootDiskSize,
    VirtualSystemDescriptionType_CloudBucket = VirtualSystemDescriptionType::CloudBucket,
    VirtualSystemDescriptionType_CloudOCIVCN = VirtualSystemDescriptionType::CloudOCIVCN,
    VirtualSystemDescriptionType_CloudPublicIP = VirtualSystemDescriptionType::CloudPublicIP,
    VirtualSystemDescriptionType_CloudProfileName = VirtualSystemDescriptionType::CloudProfileName,
    VirtualSystemDescriptionType_CloudOCISubnet = VirtualSystemDescriptionType::CloudOCISubnet,
    VirtualSystemDescriptionType_CloudKeepObject = VirtualSystemDescriptionType::CloudKeepObject,
    VirtualSystemDescriptionType_CloudLaunchInstance = VirtualSystemDescriptionType::CloudLaunchInstance,
    VirtualSystemDescriptionType_CloudInstanceId = VirtualSystemDescriptionType::CloudInstanceId,
    VirtualSystemDescriptionType_CloudImageId = VirtualSystemDescriptionType::CloudImageId,
    VirtualSystemDescriptionType_CloudInstanceState = VirtualSystemDescriptionType::CloudInstanceState,
    VirtualSystemDescriptionType_CloudImageState = VirtualSystemDescriptionType::CloudImageState,
    VirtualSystemDescriptionType_CloudInstanceDisplayName = VirtualSystemDescriptionType::CloudInstanceDisplayName,
    VirtualSystemDescriptionType_CloudImageDisplayName = VirtualSystemDescriptionType::CloudImageDisplayName,
    VirtualSystemDescriptionType_CloudOCILaunchMode = VirtualSystemDescriptionType::CloudOCILaunchMode,
    VirtualSystemDescriptionType_CloudPrivateIP = VirtualSystemDescriptionType::CloudPrivateIP,
    VirtualSystemDescriptionType_CloudBootVolumeId = VirtualSystemDescriptionType::CloudBootVolumeId,
    VirtualSystemDescriptionType_CloudOCIVCNCompartment = VirtualSystemDescriptionType::CloudOCIVCNCompartment,
    VirtualSystemDescriptionType_CloudOCISubnetCompartment = VirtualSystemDescriptionType::CloudOCISubnetCompartment,
    VirtualSystemDescriptionType_CloudPublicSSHKey = VirtualSystemDescriptionType::CloudPublicSSHKey,
    VirtualSystemDescriptionType_BootingFirmware = VirtualSystemDescriptionType::BootingFirmware,
    VirtualSystemDescriptionType_32BitHack = 0x7fffffff
} VirtualSystemDescriptionType_T;
# ifdef AssertCompileSize
AssertCompileSize(VirtualSystemDescriptionType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(56d9403f-3425-4118-9919-36f2a9b8c77c),
    scriptable
]
interface VirtualSystemDescriptionValueType
{
    const PRUint32 Reference = 1;
    const PRUint32 Original = 2;
    const PRUint32 Auto = 3;
    const PRUint32 ExtraConfig = 4;
};


/* IDL typedef for enum VirtualSystemDescriptionValueType and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 VirtualSystemDescriptionValueType_T;
%{C++
# define VirtualSystemDescriptionValueType_Reference VirtualSystemDescriptionValueType::Reference
# define VirtualSystemDescriptionValueType_Original VirtualSystemDescriptionValueType::Original
# define VirtualSystemDescriptionValueType_Auto VirtualSystemDescriptionValueType::Auto
# define VirtualSystemDescriptionValueType_ExtraConfig VirtualSystemDescriptionValueType::ExtraConfig
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum VirtualSystemDescriptionValueType_T {
    VirtualSystemDescriptionValueType_Reference = VirtualSystemDescriptionValueType::Reference,
    VirtualSystemDescriptionValueType_Original = VirtualSystemDescriptionValueType::Original,
    VirtualSystemDescriptionValueType_Auto = VirtualSystemDescriptionValueType::Auto,
    VirtualSystemDescriptionValueType_ExtraConfig = VirtualSystemDescriptionValueType::ExtraConfig,
    VirtualSystemDescriptionValueType_32BitHack = 0x7fffffff
} VirtualSystemDescriptionValueType_T;
# ifdef AssertCompileSize
AssertCompileSize(VirtualSystemDescriptionValueType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(11E3F06B-DEC1-48B9-BDC4-1E618D72893C),
    scriptable
]
interface RecordingDestination
{
    const PRUint32 None = 0;
    const PRUint32 File = 1;
};


/* IDL typedef for enum RecordingDestination and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 RecordingDestination_T;
%{C++
# define RecordingDestination_None RecordingDestination::None
# define RecordingDestination_File RecordingDestination::File
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum RecordingDestination_T {
    RecordingDestination_None = RecordingDestination::None,
    RecordingDestination_File = RecordingDestination::File,
    RecordingDestination_32BitHack = 0x7fffffff
} RecordingDestination_T;
# ifdef AssertCompileSize
AssertCompileSize(RecordingDestination_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(A7DDC6A5-DAA8-4485-B860-E9F2E98A7794),
    scriptable
]
interface RecordingFeature
{
    const PRUint32 None = 0;
    const PRUint32 Video = 1;
    const PRUint32 Audio = 2;
};


/* IDL typedef for enum RecordingFeature and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 RecordingFeature_T;
%{C++
# define RecordingFeature_None RecordingFeature::None
# define RecordingFeature_Video RecordingFeature::Video
# define RecordingFeature_Audio RecordingFeature::Audio
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum RecordingFeature_T {
    RecordingFeature_None = RecordingFeature::None,
    RecordingFeature_Video = RecordingFeature::Video,
    RecordingFeature_Audio = RecordingFeature::Audio,
    RecordingFeature_32BitHack = 0x7fffffff
} RecordingFeature_T;
# ifdef AssertCompileSize
AssertCompileSize(RecordingFeature_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(0AEFF775-053A-42F8-9C00-E445107DBED8),
    scriptable
]
interface RecordingAudioCodec
{
    const PRUint32 None = 0;
    const PRUint32 WavPCM = 1;
    const PRUint32 Opus = 2;
};


/* IDL typedef for enum RecordingAudioCodec and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 RecordingAudioCodec_T;
%{C++
# define RecordingAudioCodec_None RecordingAudioCodec::None
# define RecordingAudioCodec_WavPCM RecordingAudioCodec::WavPCM
# define RecordingAudioCodec_Opus RecordingAudioCodec::Opus
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum RecordingAudioCodec_T {
    RecordingAudioCodec_None = RecordingAudioCodec::None,
    RecordingAudioCodec_WavPCM = RecordingAudioCodec::WavPCM,
    RecordingAudioCodec_Opus = RecordingAudioCodec::Opus,
    RecordingAudioCodec_32BitHack = 0x7fffffff
} RecordingAudioCodec_T;
# ifdef AssertCompileSize
AssertCompileSize(RecordingAudioCodec_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(663BFC39-AFFF-49FA-98DD-322A857E877B),
    scriptable
]
interface RecordingVideoCodec
{
    const PRUint32 None = 0;
    const PRUint32 VP8 = 1;
    const PRUint32 VP9 = 2;
    const PRUint32 AV1 = 3;
};


/* IDL typedef for enum RecordingVideoCodec and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 RecordingVideoCodec_T;
%{C++
# define RecordingVideoCodec_None RecordingVideoCodec::None
# define RecordingVideoCodec_VP8 RecordingVideoCodec::VP8
# define RecordingVideoCodec_VP9 RecordingVideoCodec::VP9
# define RecordingVideoCodec_AV1 RecordingVideoCodec::AV1
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum RecordingVideoCodec_T {
    RecordingVideoCodec_None = RecordingVideoCodec::None,
    RecordingVideoCodec_VP8 = RecordingVideoCodec::VP8,
    RecordingVideoCodec_VP9 = RecordingVideoCodec::VP9,
    RecordingVideoCodec_AV1 = RecordingVideoCodec::AV1,
    RecordingVideoCodec_32BitHack = 0x7fffffff
} RecordingVideoCodec_T;
# ifdef AssertCompileSize
AssertCompileSize(RecordingVideoCodec_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(5576D890-48EE-449A-A81B-B776233598B7),
    scriptable
]
interface RecordingVideoScalingMethod
{
    const PRUint32 None = 0;
    const PRUint32 NearestNeighbor = 1;
    const PRUint32 Bilinear = 2;
    const PRUint32 Bicubic = 3;
};


/* IDL typedef for enum RecordingVideoScalingMethod and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 RecordingVideoScalingMethod_T;
%{C++
# define RecordingVideoScalingMethod_None RecordingVideoScalingMethod::None
# define RecordingVideoScalingMethod_NearestNeighbor RecordingVideoScalingMethod::NearestNeighbor
# define RecordingVideoScalingMethod_Bilinear RecordingVideoScalingMethod::Bilinear
# define RecordingVideoScalingMethod_Bicubic RecordingVideoScalingMethod::Bicubic
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum RecordingVideoScalingMethod_T {
    RecordingVideoScalingMethod_None = RecordingVideoScalingMethod::None,
    RecordingVideoScalingMethod_NearestNeighbor = RecordingVideoScalingMethod::NearestNeighbor,
    RecordingVideoScalingMethod_Bilinear = RecordingVideoScalingMethod::Bilinear,
    RecordingVideoScalingMethod_Bicubic = RecordingVideoScalingMethod::Bicubic,
    RecordingVideoScalingMethod_32BitHack = 0x7fffffff
} RecordingVideoScalingMethod_T;
# ifdef AssertCompileSize
AssertCompileSize(RecordingVideoScalingMethod_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(D4EFB692-9F98-4112-88D3-A16FBE2BF6A8),
    scriptable
]
interface RecordingVideoRateControlMode
{
    const PRUint32 CBR = 0;
    const PRUint32 VBR = 1;
};


/* IDL typedef for enum RecordingVideoRateControlMode and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 RecordingVideoRateControlMode_T;
%{C++
# define RecordingVideoRateControlMode_CBR RecordingVideoRateControlMode::CBR
# define RecordingVideoRateControlMode_VBR RecordingVideoRateControlMode::VBR
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum RecordingVideoRateControlMode_T {
    RecordingVideoRateControlMode_CBR = RecordingVideoRateControlMode::CBR,
    RecordingVideoRateControlMode_VBR = RecordingVideoRateControlMode::VBR,
    RecordingVideoRateControlMode_32BitHack = 0x7fffffff
} RecordingVideoRateControlMode_T;
# ifdef AssertCompileSize
AssertCompileSize(RecordingVideoRateControlMode_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(3e009bb0-2b57-4283-a39b-4c363d4f0808),
    scriptable
]
interface GraphicsControllerType
{
    const PRUint32 Null = 0;
    const PRUint32 VBoxVGA = 1;
    const PRUint32 VMSVGA = 2;
    const PRUint32 VBoxSVGA = 3;
};


/* IDL typedef for enum GraphicsControllerType and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 GraphicsControllerType_T;
%{C++
# define GraphicsControllerType_Null GraphicsControllerType::Null
# define GraphicsControllerType_VBoxVGA GraphicsControllerType::VBoxVGA
# define GraphicsControllerType_VMSVGA GraphicsControllerType::VMSVGA
# define GraphicsControllerType_VBoxSVGA GraphicsControllerType::VBoxSVGA
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum GraphicsControllerType_T {
    GraphicsControllerType_Null = GraphicsControllerType::Null,
    GraphicsControllerType_VBoxVGA = GraphicsControllerType::VBoxVGA,
    GraphicsControllerType_VMSVGA = GraphicsControllerType::VMSVGA,
    GraphicsControllerType_VBoxSVGA = GraphicsControllerType::VBoxSVGA,
    GraphicsControllerType_32BitHack = 0x7fffffff
} GraphicsControllerType_T;
# ifdef AssertCompileSize
AssertCompileSize(GraphicsControllerType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(67897c50-7cca-47a9-83f6-ce8fd8eb5441),
    scriptable
]
interface CleanupMode
{
    const PRUint32 UnregisterOnly = 1;
    const PRUint32 DetachAllReturnNone = 2;
    const PRUint32 DetachAllReturnHardDisksOnly = 3;
    const PRUint32 Full = 4;
};


/* IDL typedef for enum CleanupMode and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 CleanupMode_T;
%{C++
# define CleanupMode_UnregisterOnly CleanupMode::UnregisterOnly
# define CleanupMode_DetachAllReturnNone CleanupMode::DetachAllReturnNone
# define CleanupMode_DetachAllReturnHardDisksOnly CleanupMode::DetachAllReturnHardDisksOnly
# define CleanupMode_Full CleanupMode::Full
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum CleanupMode_T {
    CleanupMode_UnregisterOnly = CleanupMode::UnregisterOnly,
    CleanupMode_DetachAllReturnNone = CleanupMode::DetachAllReturnNone,
    CleanupMode_DetachAllReturnHardDisksOnly = CleanupMode::DetachAllReturnHardDisksOnly,
    CleanupMode_Full = CleanupMode::Full,
    CleanupMode_32BitHack = 0x7fffffff
} CleanupMode_T;
# ifdef AssertCompileSize
AssertCompileSize(CleanupMode_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(A7A159FE-5096-4B8D-8C3C-D033CB0B35A8),
    scriptable
]
interface CloneMode
{
    const PRUint32 MachineState = 1;
    const PRUint32 MachineAndChildStates = 2;
    const PRUint32 AllStates = 3;
};


/* IDL typedef for enum CloneMode and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 CloneMode_T;
%{C++
# define CloneMode_MachineState CloneMode::MachineState
# define CloneMode_MachineAndChildStates CloneMode::MachineAndChildStates
# define CloneMode_AllStates CloneMode::AllStates
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum CloneMode_T {
    CloneMode_MachineState = CloneMode::MachineState,
    CloneMode_MachineAndChildStates = CloneMode::MachineAndChildStates,
    CloneMode_AllStates = CloneMode::AllStates,
    CloneMode_32BitHack = 0x7fffffff
} CloneMode_T;
# ifdef AssertCompileSize
AssertCompileSize(CloneMode_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(22243f8e-96ab-497c-8cf0-f40a566c630b),
    scriptable
]
interface CloneOptions
{
    const PRUint32 Link = 1;
    const PRUint32 KeepAllMACs = 2;
    const PRUint32 KeepNATMACs = 3;
    const PRUint32 KeepDiskNames = 4;
    const PRUint32 KeepHwUUIDs = 5;
};


/* IDL typedef for enum CloneOptions and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 CloneOptions_T;
%{C++
# define CloneOptions_Link CloneOptions::Link
# define CloneOptions_KeepAllMACs CloneOptions::KeepAllMACs
# define CloneOptions_KeepNATMACs CloneOptions::KeepNATMACs
# define CloneOptions_KeepDiskNames CloneOptions::KeepDiskNames
# define CloneOptions_KeepHwUUIDs CloneOptions::KeepHwUUIDs
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum CloneOptions_T {
    CloneOptions_Link = CloneOptions::Link,
    CloneOptions_KeepAllMACs = CloneOptions::KeepAllMACs,
    CloneOptions_KeepNATMACs = CloneOptions::KeepNATMACs,
    CloneOptions_KeepDiskNames = CloneOptions::KeepDiskNames,
    CloneOptions_KeepHwUUIDs = CloneOptions::KeepHwUUIDs,
    CloneOptions_32BitHack = 0x7fffffff
} CloneOptions_T;
# ifdef AssertCompileSize
AssertCompileSize(CloneOptions_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(6bb96740-cf34-470d-aab2-2cd48ea2e10e),
    scriptable
]
interface AutostopType
{
    const PRUint32 Disabled = 1;
    const PRUint32 SaveState = 2;
    const PRUint32 PowerOff = 3;
    const PRUint32 AcpiShutdown = 4;
};


/* IDL typedef for enum AutostopType and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 AutostopType_T;
%{C++
# define AutostopType_Disabled AutostopType::Disabled
# define AutostopType_SaveState AutostopType::SaveState
# define AutostopType_PowerOff AutostopType::PowerOff
# define AutostopType_AcpiShutdown AutostopType::AcpiShutdown
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum AutostopType_T {
    AutostopType_Disabled = AutostopType::Disabled,
    AutostopType_SaveState = AutostopType::SaveState,
    AutostopType_PowerOff = AutostopType::PowerOff,
    AutostopType_AcpiShutdown = AutostopType::AcpiShutdown,
    AutostopType_32BitHack = 0x7fffffff
} AutostopType_T;
# ifdef AssertCompileSize
AssertCompileSize(AutostopType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(6fa72dd5-19b7-46ba-bc52-f223c98c7d80),
    scriptable
]
interface VMProcPriority
{
    const PRUint32 Invalid = 0;
    const PRUint32 Default = 1;
    const PRUint32 Flat = 2;
    const PRUint32 Low = 3;
    const PRUint32 Normal = 5;
    const PRUint32 High = 6;
};


/* IDL typedef for enum VMProcPriority and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 VMProcPriority_T;
%{C++
# define VMProcPriority_Invalid VMProcPriority::Invalid
# define VMProcPriority_Default VMProcPriority::Default
# define VMProcPriority_Flat VMProcPriority::Flat
# define VMProcPriority_Low VMProcPriority::Low
# define VMProcPriority_Normal VMProcPriority::Normal
# define VMProcPriority_High VMProcPriority::High
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum VMProcPriority_T {
    VMProcPriority_Invalid = VMProcPriority::Invalid,
    VMProcPriority_Default = VMProcPriority::Default,
    VMProcPriority_Flat = VMProcPriority::Flat,
    VMProcPriority_Low = VMProcPriority::Low,
    VMProcPriority_Normal = VMProcPriority::Normal,
    VMProcPriority_High = VMProcPriority::High,
    VMProcPriority_32BitHack = 0x7fffffff
} VMProcPriority_T;
# ifdef AssertCompileSize
AssertCompileSize(VMProcPriority_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(1aa54aaf-2497-45a2-bfb1-8eb225e93d5b),
    scriptable
]
interface HostNetworkInterfaceMediumType
{
    const PRUint32 Unknown = 0;
    const PRUint32 Ethernet = 1;
    const PRUint32 PPP = 2;
    const PRUint32 SLIP = 3;
};


/* IDL typedef for enum HostNetworkInterfaceMediumType and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 HostNetworkInterfaceMediumType_T;
%{C++
# define HostNetworkInterfaceMediumType_Unknown HostNetworkInterfaceMediumType::Unknown
# define HostNetworkInterfaceMediumType_Ethernet HostNetworkInterfaceMediumType::Ethernet
# define HostNetworkInterfaceMediumType_PPP HostNetworkInterfaceMediumType::PPP
# define HostNetworkInterfaceMediumType_SLIP HostNetworkInterfaceMediumType::SLIP
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum HostNetworkInterfaceMediumType_T {
    HostNetworkInterfaceMediumType_Unknown = HostNetworkInterfaceMediumType::Unknown,
    HostNetworkInterfaceMediumType_Ethernet = HostNetworkInterfaceMediumType::Ethernet,
    HostNetworkInterfaceMediumType_PPP = HostNetworkInterfaceMediumType::PPP,
    HostNetworkInterfaceMediumType_SLIP = HostNetworkInterfaceMediumType::SLIP,
    HostNetworkInterfaceMediumType_32BitHack = 0x7fffffff
} HostNetworkInterfaceMediumType_T;
# ifdef AssertCompileSize
AssertCompileSize(HostNetworkInterfaceMediumType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(CC474A69-2710-434B-8D99-C38E5D5A6F41),
    scriptable
]
interface HostNetworkInterfaceStatus
{
    const PRUint32 Unknown = 0;
    const PRUint32 Up = 1;
    const PRUint32 Down = 2;
};


/* IDL typedef for enum HostNetworkInterfaceStatus and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 HostNetworkInterfaceStatus_T;
%{C++
# define HostNetworkInterfaceStatus_Unknown HostNetworkInterfaceStatus::Unknown
# define HostNetworkInterfaceStatus_Up HostNetworkInterfaceStatus::Up
# define HostNetworkInterfaceStatus_Down HostNetworkInterfaceStatus::Down
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum HostNetworkInterfaceStatus_T {
    HostNetworkInterfaceStatus_Unknown = HostNetworkInterfaceStatus::Unknown,
    HostNetworkInterfaceStatus_Up = HostNetworkInterfaceStatus::Up,
    HostNetworkInterfaceStatus_Down = HostNetworkInterfaceStatus::Down,
    HostNetworkInterfaceStatus_32BitHack = 0x7fffffff
} HostNetworkInterfaceStatus_T;
# ifdef AssertCompileSize
AssertCompileSize(HostNetworkInterfaceStatus_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(67431b00-9946-48a2-bc02-b25c5919f4f3),
    scriptable
]
interface HostNetworkInterfaceType
{
    const PRUint32 Bridged = 1;
    const PRUint32 HostOnly = 2;
};


/* IDL typedef for enum HostNetworkInterfaceType and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 HostNetworkInterfaceType_T;
%{C++
# define HostNetworkInterfaceType_Bridged HostNetworkInterfaceType::Bridged
# define HostNetworkInterfaceType_HostOnly HostNetworkInterfaceType::HostOnly
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum HostNetworkInterfaceType_T {
    HostNetworkInterfaceType_Bridged = HostNetworkInterfaceType::Bridged,
    HostNetworkInterfaceType_HostOnly = HostNetworkInterfaceType::HostOnly,
    HostNetworkInterfaceType_32BitHack = 0x7fffffff
} HostNetworkInterfaceType_T;
# ifdef AssertCompileSize
AssertCompileSize(HostNetworkInterfaceType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(885264b3-b517-40fc-ce46-36e3bae895a4),
    scriptable
]
interface ProxyMode
{
    const PRUint32 System = 0;
    const PRUint32 NoProxy = 1;
    const PRUint32 Manual = 2;
};


/* IDL typedef for enum ProxyMode and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 ProxyMode_T;
%{C++
# define ProxyMode_System ProxyMode::System
# define ProxyMode_NoProxy ProxyMode::NoProxy
# define ProxyMode_Manual ProxyMode::Manual
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum ProxyMode_T {
    ProxyMode_System = ProxyMode::System,
    ProxyMode_NoProxy = ProxyMode::NoProxy,
    ProxyMode_Manual = ProxyMode::Manual,
    ProxyMode_32BitHack = 0x7fffffff
} ProxyMode_T;
# ifdef AssertCompileSize
AssertCompileSize(ProxyMode_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(c4b10d74-dd48-4ff4-9a40-785a2a389ade),
    scriptable
]
interface AdditionsFacilityType
{
    const PRUint32 None = 0;
    const PRUint32 VBoxGuestDriver = 20;
    const PRUint32 AutoLogon = 90;
    const PRUint32 VBoxService = 100;
    const PRUint32 VBoxTrayClient = 101;
    const PRUint32 Seamless = 1000;
    const PRUint32 Graphics = 1100;
    const PRUint32 MonitorAttach = 1101;
    const PRUint32 All = 2147483646;
};


/* IDL typedef for enum AdditionsFacilityType and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 AdditionsFacilityType_T;
%{C++
# define AdditionsFacilityType_None AdditionsFacilityType::None
# define AdditionsFacilityType_VBoxGuestDriver AdditionsFacilityType::VBoxGuestDriver
# define AdditionsFacilityType_AutoLogon AdditionsFacilityType::AutoLogon
# define AdditionsFacilityType_VBoxService AdditionsFacilityType::VBoxService
# define AdditionsFacilityType_VBoxTrayClient AdditionsFacilityType::VBoxTrayClient
# define AdditionsFacilityType_Seamless AdditionsFacilityType::Seamless
# define AdditionsFacilityType_Graphics AdditionsFacilityType::Graphics
# define AdditionsFacilityType_MonitorAttach AdditionsFacilityType::MonitorAttach
# define AdditionsFacilityType_All AdditionsFacilityType::All
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum AdditionsFacilityType_T {
    AdditionsFacilityType_None = AdditionsFacilityType::None,
    AdditionsFacilityType_VBoxGuestDriver = AdditionsFacilityType::VBoxGuestDriver,
    AdditionsFacilityType_AutoLogon = AdditionsFacilityType::AutoLogon,
    AdditionsFacilityType_VBoxService = AdditionsFacilityType::VBoxService,
    AdditionsFacilityType_VBoxTrayClient = AdditionsFacilityType::VBoxTrayClient,
    AdditionsFacilityType_Seamless = AdditionsFacilityType::Seamless,
    AdditionsFacilityType_Graphics = AdditionsFacilityType::Graphics,
    AdditionsFacilityType_MonitorAttach = AdditionsFacilityType::MonitorAttach,
    AdditionsFacilityType_All = AdditionsFacilityType::All,
    AdditionsFacilityType_32BitHack = 0x7fffffff
} AdditionsFacilityType_T;
# ifdef AssertCompileSize
AssertCompileSize(AdditionsFacilityType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(446451b2-c88d-4e5d-84c9-91bc7f533f5f),
    scriptable
]
interface AdditionsFacilityClass
{
    const PRUint32 None = 0;
    const PRUint32 Driver = 10;
    const PRUint32 Service = 30;
    const PRUint32 Program = 50;
    const PRUint32 Feature = 100;
    const PRUint32 ThirdParty = 999;
    const PRUint32 All = 2147483646;
};


/* IDL typedef for enum AdditionsFacilityClass and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 AdditionsFacilityClass_T;
%{C++
# define AdditionsFacilityClass_None AdditionsFacilityClass::None
# define AdditionsFacilityClass_Driver AdditionsFacilityClass::Driver
# define AdditionsFacilityClass_Service AdditionsFacilityClass::Service
# define AdditionsFacilityClass_Program AdditionsFacilityClass::Program
# define AdditionsFacilityClass_Feature AdditionsFacilityClass::Feature
# define AdditionsFacilityClass_ThirdParty AdditionsFacilityClass::ThirdParty
# define AdditionsFacilityClass_All AdditionsFacilityClass::All
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum AdditionsFacilityClass_T {
    AdditionsFacilityClass_None = AdditionsFacilityClass::None,
    AdditionsFacilityClass_Driver = AdditionsFacilityClass::Driver,
    AdditionsFacilityClass_Service = AdditionsFacilityClass::Service,
    AdditionsFacilityClass_Program = AdditionsFacilityClass::Program,
    AdditionsFacilityClass_Feature = AdditionsFacilityClass::Feature,
    AdditionsFacilityClass_ThirdParty = AdditionsFacilityClass::ThirdParty,
    AdditionsFacilityClass_All = AdditionsFacilityClass::All,
    AdditionsFacilityClass_32BitHack = 0x7fffffff
} AdditionsFacilityClass_T;
# ifdef AssertCompileSize
AssertCompileSize(AdditionsFacilityClass_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(ce06f9e1-394e-4fe9-9368-5a88c567dbde),
    scriptable
]
interface AdditionsFacilityStatus
{
    const PRUint32 Inactive = 0;
    const PRUint32 Paused = 1;
    const PRUint32 PreInit = 20;
    const PRUint32 Init = 30;
    const PRUint32 Active = 50;
    const PRUint32 Terminating = 100;
    const PRUint32 Terminated = 101;
    const PRUint32 Failed = 800;
    const PRUint32 Unknown = 999;
};


/* IDL typedef for enum AdditionsFacilityStatus and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 AdditionsFacilityStatus_T;
%{C++
# define AdditionsFacilityStatus_Inactive AdditionsFacilityStatus::Inactive
# define AdditionsFacilityStatus_Paused AdditionsFacilityStatus::Paused
# define AdditionsFacilityStatus_PreInit AdditionsFacilityStatus::PreInit
# define AdditionsFacilityStatus_Init AdditionsFacilityStatus::Init
# define AdditionsFacilityStatus_Active AdditionsFacilityStatus::Active
# define AdditionsFacilityStatus_Terminating AdditionsFacilityStatus::Terminating
# define AdditionsFacilityStatus_Terminated AdditionsFacilityStatus::Terminated
# define AdditionsFacilityStatus_Failed AdditionsFacilityStatus::Failed
# define AdditionsFacilityStatus_Unknown AdditionsFacilityStatus::Unknown
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum AdditionsFacilityStatus_T {
    AdditionsFacilityStatus_Inactive = AdditionsFacilityStatus::Inactive,
    AdditionsFacilityStatus_Paused = AdditionsFacilityStatus::Paused,
    AdditionsFacilityStatus_PreInit = AdditionsFacilityStatus::PreInit,
    AdditionsFacilityStatus_Init = AdditionsFacilityStatus::Init,
    AdditionsFacilityStatus_Active = AdditionsFacilityStatus::Active,
    AdditionsFacilityStatus_Terminating = AdditionsFacilityStatus::Terminating,
    AdditionsFacilityStatus_Terminated = AdditionsFacilityStatus::Terminated,
    AdditionsFacilityStatus_Failed = AdditionsFacilityStatus::Failed,
    AdditionsFacilityStatus_Unknown = AdditionsFacilityStatus::Unknown,
    AdditionsFacilityStatus_32BitHack = 0x7fffffff
} AdditionsFacilityStatus_T;
# ifdef AssertCompileSize
AssertCompileSize(AdditionsFacilityStatus_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(a25417ee-a9dd-4f5b-b0dc-377860087754),
    scriptable
]
interface AdditionsRunLevelType
{
    const PRUint32 None = 0;
    const PRUint32 System = 1;
    const PRUint32 Userland = 2;
    const PRUint32 Desktop = 3;
};


/* IDL typedef for enum AdditionsRunLevelType and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 AdditionsRunLevelType_T;
%{C++
# define AdditionsRunLevelType_None AdditionsRunLevelType::None
# define AdditionsRunLevelType_System AdditionsRunLevelType::System
# define AdditionsRunLevelType_Userland AdditionsRunLevelType::Userland
# define AdditionsRunLevelType_Desktop AdditionsRunLevelType::Desktop
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum AdditionsRunLevelType_T {
    AdditionsRunLevelType_None = AdditionsRunLevelType::None,
    AdditionsRunLevelType_System = AdditionsRunLevelType::System,
    AdditionsRunLevelType_Userland = AdditionsRunLevelType::Userland,
    AdditionsRunLevelType_Desktop = AdditionsRunLevelType::Desktop,
    AdditionsRunLevelType_32BitHack = 0x7fffffff
} AdditionsRunLevelType_T;
# ifdef AssertCompileSize
AssertCompileSize(AdditionsRunLevelType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(726a818d-18d6-4389-94e8-3e9e6826171a),
    scriptable
]
interface AdditionsUpdateFlag
{
    const PRUint32 None = 0;
    const PRUint32 WaitForUpdateStartOnly = 1;
};


/* IDL typedef for enum AdditionsUpdateFlag and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 AdditionsUpdateFlag_T;
%{C++
# define AdditionsUpdateFlag_None AdditionsUpdateFlag::None
# define AdditionsUpdateFlag_WaitForUpdateStartOnly AdditionsUpdateFlag::WaitForUpdateStartOnly
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum AdditionsUpdateFlag_T {
    AdditionsUpdateFlag_None = AdditionsUpdateFlag::None,
    AdditionsUpdateFlag_WaitForUpdateStartOnly = AdditionsUpdateFlag::WaitForUpdateStartOnly,
    AdditionsUpdateFlag_32BitHack = 0x7fffffff
} AdditionsUpdateFlag_T;
# ifdef AssertCompileSize
AssertCompileSize(AdditionsUpdateFlag_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(ac2669da-4624-44f2-85b5-0b0bfb8d8673),
    scriptable
]
interface GuestSessionStatus
{
    const PRUint32 Undefined = 0;
    const PRUint32 Starting = 10;
    const PRUint32 Started = 100;
    const PRUint32 Terminating = 480;
    const PRUint32 Terminated = 500;
    const PRUint32 TimedOutKilled = 512;
    const PRUint32 TimedOutAbnormally = 513;
    const PRUint32 Down = 600;
    const PRUint32 Error = 800;
};


/* IDL typedef for enum GuestSessionStatus and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 GuestSessionStatus_T;
%{C++
# define GuestSessionStatus_Undefined GuestSessionStatus::Undefined
# define GuestSessionStatus_Starting GuestSessionStatus::Starting
# define GuestSessionStatus_Started GuestSessionStatus::Started
# define GuestSessionStatus_Terminating GuestSessionStatus::Terminating
# define GuestSessionStatus_Terminated GuestSessionStatus::Terminated
# define GuestSessionStatus_TimedOutKilled GuestSessionStatus::TimedOutKilled
# define GuestSessionStatus_TimedOutAbnormally GuestSessionStatus::TimedOutAbnormally
# define GuestSessionStatus_Down GuestSessionStatus::Down
# define GuestSessionStatus_Error GuestSessionStatus::Error
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum GuestSessionStatus_T {
    GuestSessionStatus_Undefined = GuestSessionStatus::Undefined,
    GuestSessionStatus_Starting = GuestSessionStatus::Starting,
    GuestSessionStatus_Started = GuestSessionStatus::Started,
    GuestSessionStatus_Terminating = GuestSessionStatus::Terminating,
    GuestSessionStatus_Terminated = GuestSessionStatus::Terminated,
    GuestSessionStatus_TimedOutKilled = GuestSessionStatus::TimedOutKilled,
    GuestSessionStatus_TimedOutAbnormally = GuestSessionStatus::TimedOutAbnormally,
    GuestSessionStatus_Down = GuestSessionStatus::Down,
    GuestSessionStatus_Error = GuestSessionStatus::Error,
    GuestSessionStatus_32BitHack = 0x7fffffff
} GuestSessionStatus_T;
# ifdef AssertCompileSize
AssertCompileSize(GuestSessionStatus_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(bb7a372a-f635-4e11-a81a-e707f3a52ef5),
    scriptable
]
interface GuestSessionWaitForFlag
{
    const PRUint32 None = 0;
    const PRUint32 Start = 1;
    const PRUint32 Terminate = 2;
    const PRUint32 Status = 4;
};


/* IDL typedef for enum GuestSessionWaitForFlag and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 GuestSessionWaitForFlag_T;
%{C++
# define GuestSessionWaitForFlag_None GuestSessionWaitForFlag::None
# define GuestSessionWaitForFlag_Start GuestSessionWaitForFlag::Start
# define GuestSessionWaitForFlag_Terminate GuestSessionWaitForFlag::Terminate
# define GuestSessionWaitForFlag_Status GuestSessionWaitForFlag::Status
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum GuestSessionWaitForFlag_T {
    GuestSessionWaitForFlag_None = GuestSessionWaitForFlag::None,
    GuestSessionWaitForFlag_Start = GuestSessionWaitForFlag::Start,
    GuestSessionWaitForFlag_Terminate = GuestSessionWaitForFlag::Terminate,
    GuestSessionWaitForFlag_Status = GuestSessionWaitForFlag::Status,
    GuestSessionWaitForFlag_32BitHack = 0x7fffffff
} GuestSessionWaitForFlag_T;
# ifdef AssertCompileSize
AssertCompileSize(GuestSessionWaitForFlag_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(c0f6a8a5-fdb6-42bf-a582-56c6f82bcd2d),
    scriptable
]
interface GuestSessionWaitResult
{
    const PRUint32 None = 0;
    const PRUint32 Start = 1;
    const PRUint32 Terminate = 2;
    const PRUint32 Status = 3;
    const PRUint32 Error = 4;
    const PRUint32 Timeout = 5;
    const PRUint32 WaitFlagNotSupported = 6;
};


/* IDL typedef for enum GuestSessionWaitResult and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 GuestSessionWaitResult_T;
%{C++
# define GuestSessionWaitResult_None GuestSessionWaitResult::None
# define GuestSessionWaitResult_Start GuestSessionWaitResult::Start
# define GuestSessionWaitResult_Terminate GuestSessionWaitResult::Terminate
# define GuestSessionWaitResult_Status GuestSessionWaitResult::Status
# define GuestSessionWaitResult_Error GuestSessionWaitResult::Error
# define GuestSessionWaitResult_Timeout GuestSessionWaitResult::Timeout
# define GuestSessionWaitResult_WaitFlagNotSupported GuestSessionWaitResult::WaitFlagNotSupported
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum GuestSessionWaitResult_T {
    GuestSessionWaitResult_None = GuestSessionWaitResult::None,
    GuestSessionWaitResult_Start = GuestSessionWaitResult::Start,
    GuestSessionWaitResult_Terminate = GuestSessionWaitResult::Terminate,
    GuestSessionWaitResult_Status = GuestSessionWaitResult::Status,
    GuestSessionWaitResult_Error = GuestSessionWaitResult::Error,
    GuestSessionWaitResult_Timeout = GuestSessionWaitResult::Timeout,
    GuestSessionWaitResult_WaitFlagNotSupported = GuestSessionWaitResult::WaitFlagNotSupported,
    GuestSessionWaitResult_32BitHack = 0x7fffffff
} GuestSessionWaitResult_T;
# ifdef AssertCompileSize
AssertCompileSize(GuestSessionWaitResult_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(b2a82b02-fd3d-4fc2-ba84-6ba5ac8be198),
    scriptable
]
interface GuestUserState
{
    const PRUint32 Unknown = 0;
    const PRUint32 LoggedIn = 1;
    const PRUint32 LoggedOut = 2;
    const PRUint32 Locked = 3;
    const PRUint32 Unlocked = 4;
    const PRUint32 Disabled = 5;
    const PRUint32 Idle = 6;
    const PRUint32 InUse = 7;
    const PRUint32 Created = 8;
    const PRUint32 Deleted = 9;
    const PRUint32 SessionChanged = 10;
    const PRUint32 CredentialsChanged = 11;
    const PRUint32 RoleChanged = 12;
    const PRUint32 GroupAdded = 13;
    const PRUint32 GroupRemoved = 14;
    const PRUint32 Elevated = 15;
};


/* IDL typedef for enum GuestUserState and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 GuestUserState_T;
%{C++
# define GuestUserState_Unknown GuestUserState::Unknown
# define GuestUserState_LoggedIn GuestUserState::LoggedIn
# define GuestUserState_LoggedOut GuestUserState::LoggedOut
# define GuestUserState_Locked GuestUserState::Locked
# define GuestUserState_Unlocked GuestUserState::Unlocked
# define GuestUserState_Disabled GuestUserState::Disabled
# define GuestUserState_Idle GuestUserState::Idle
# define GuestUserState_InUse GuestUserState::InUse
# define GuestUserState_Created GuestUserState::Created
# define GuestUserState_Deleted GuestUserState::Deleted
# define GuestUserState_SessionChanged GuestUserState::SessionChanged
# define GuestUserState_CredentialsChanged GuestUserState::CredentialsChanged
# define GuestUserState_RoleChanged GuestUserState::RoleChanged
# define GuestUserState_GroupAdded GuestUserState::GroupAdded
# define GuestUserState_GroupRemoved GuestUserState::GroupRemoved
# define GuestUserState_Elevated GuestUserState::Elevated
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum GuestUserState_T {
    GuestUserState_Unknown = GuestUserState::Unknown,
    GuestUserState_LoggedIn = GuestUserState::LoggedIn,
    GuestUserState_LoggedOut = GuestUserState::LoggedOut,
    GuestUserState_Locked = GuestUserState::Locked,
    GuestUserState_Unlocked = GuestUserState::Unlocked,
    GuestUserState_Disabled = GuestUserState::Disabled,
    GuestUserState_Idle = GuestUserState::Idle,
    GuestUserState_InUse = GuestUserState::InUse,
    GuestUserState_Created = GuestUserState::Created,
    GuestUserState_Deleted = GuestUserState::Deleted,
    GuestUserState_SessionChanged = GuestUserState::SessionChanged,
    GuestUserState_CredentialsChanged = GuestUserState::CredentialsChanged,
    GuestUserState_RoleChanged = GuestUserState::RoleChanged,
    GuestUserState_GroupAdded = GuestUserState::GroupAdded,
    GuestUserState_GroupRemoved = GuestUserState::GroupRemoved,
    GuestUserState_Elevated = GuestUserState::Elevated,
    GuestUserState_32BitHack = 0x7fffffff
} GuestUserState_T;
# ifdef AssertCompileSize
AssertCompileSize(GuestUserState_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(ad32f789-4279-4530-979c-f16892e1c263),
    scriptable
]
interface FileSeekOrigin
{
    const PRUint32 Begin = 0;
    const PRUint32 Current = 1;
    const PRUint32 End = 2;
};


/* IDL typedef for enum FileSeekOrigin and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 FileSeekOrigin_T;
%{C++
# define FileSeekOrigin_Begin FileSeekOrigin::Begin
# define FileSeekOrigin_Current FileSeekOrigin::Current
# define FileSeekOrigin_End FileSeekOrigin::End
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum FileSeekOrigin_T {
    FileSeekOrigin_Begin = FileSeekOrigin::Begin,
    FileSeekOrigin_Current = FileSeekOrigin::Current,
    FileSeekOrigin_End = FileSeekOrigin::End,
    FileSeekOrigin_32BitHack = 0x7fffffff
} FileSeekOrigin_T;
# ifdef AssertCompileSize
AssertCompileSize(FileSeekOrigin_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(5d38c1dd-2604-4ddf-92e5-0c0cdd3bdbd5),
    scriptable
]
interface ProcessInputFlag
{
    const PRUint32 None = 0;
    const PRUint32 EndOfFile = 1;
};


/* IDL typedef for enum ProcessInputFlag and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 ProcessInputFlag_T;
%{C++
# define ProcessInputFlag_None ProcessInputFlag::None
# define ProcessInputFlag_EndOfFile ProcessInputFlag::EndOfFile
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum ProcessInputFlag_T {
    ProcessInputFlag_None = ProcessInputFlag::None,
    ProcessInputFlag_EndOfFile = ProcessInputFlag::EndOfFile,
    ProcessInputFlag_32BitHack = 0x7fffffff
} ProcessInputFlag_T;
# ifdef AssertCompileSize
AssertCompileSize(ProcessInputFlag_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(9979e85a-52bb-40b7-870c-57115e27e0f1),
    scriptable
]
interface ProcessOutputFlag
{
    const PRUint32 None = 0;
    const PRUint32 StdErr = 1;
};


/* IDL typedef for enum ProcessOutputFlag and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 ProcessOutputFlag_T;
%{C++
# define ProcessOutputFlag_None ProcessOutputFlag::None
# define ProcessOutputFlag_StdErr ProcessOutputFlag::StdErr
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum ProcessOutputFlag_T {
    ProcessOutputFlag_None = ProcessOutputFlag::None,
    ProcessOutputFlag_StdErr = ProcessOutputFlag::StdErr,
    ProcessOutputFlag_32BitHack = 0x7fffffff
} ProcessOutputFlag_T;
# ifdef AssertCompileSize
AssertCompileSize(ProcessOutputFlag_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(23b550c7-78e1-437e-98f0-65fd9757bcd2),
    scriptable
]
interface ProcessWaitForFlag
{
    const PRUint32 None = 0;
    const PRUint32 Start = 1;
    const PRUint32 Terminate = 2;
    const PRUint32 StdIn = 4;
    const PRUint32 StdOut = 8;
    const PRUint32 StdErr = 16;
};


/* IDL typedef for enum ProcessWaitForFlag and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 ProcessWaitForFlag_T;
%{C++
# define ProcessWaitForFlag_None ProcessWaitForFlag::None
# define ProcessWaitForFlag_Start ProcessWaitForFlag::Start
# define ProcessWaitForFlag_Terminate ProcessWaitForFlag::Terminate
# define ProcessWaitForFlag_StdIn ProcessWaitForFlag::StdIn
# define ProcessWaitForFlag_StdOut ProcessWaitForFlag::StdOut
# define ProcessWaitForFlag_StdErr ProcessWaitForFlag::StdErr
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum ProcessWaitForFlag_T {
    ProcessWaitForFlag_None = ProcessWaitForFlag::None,
    ProcessWaitForFlag_Start = ProcessWaitForFlag::Start,
    ProcessWaitForFlag_Terminate = ProcessWaitForFlag::Terminate,
    ProcessWaitForFlag_StdIn = ProcessWaitForFlag::StdIn,
    ProcessWaitForFlag_StdOut = ProcessWaitForFlag::StdOut,
    ProcessWaitForFlag_StdErr = ProcessWaitForFlag::StdErr,
    ProcessWaitForFlag_32BitHack = 0x7fffffff
} ProcessWaitForFlag_T;
# ifdef AssertCompileSize
AssertCompileSize(ProcessWaitForFlag_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(40719cbe-f192-4fe9-a231-6697b3c8e2b4),
    scriptable
]
interface ProcessWaitResult
{
    const PRUint32 None = 0;
    const PRUint32 Start = 1;
    const PRUint32 Terminate = 2;
    const PRUint32 Status = 3;
    const PRUint32 Error = 4;
    const PRUint32 Timeout = 5;
    const PRUint32 StdIn = 6;
    const PRUint32 StdOut = 7;
    const PRUint32 StdErr = 8;
    const PRUint32 WaitFlagNotSupported = 9;
};


/* IDL typedef for enum ProcessWaitResult and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 ProcessWaitResult_T;
%{C++
# define ProcessWaitResult_None ProcessWaitResult::None
# define ProcessWaitResult_Start ProcessWaitResult::Start
# define ProcessWaitResult_Terminate ProcessWaitResult::Terminate
# define ProcessWaitResult_Status ProcessWaitResult::Status
# define ProcessWaitResult_Error ProcessWaitResult::Error
# define ProcessWaitResult_Timeout ProcessWaitResult::Timeout
# define ProcessWaitResult_StdIn ProcessWaitResult::StdIn
# define ProcessWaitResult_StdOut ProcessWaitResult::StdOut
# define ProcessWaitResult_StdErr ProcessWaitResult::StdErr
# define ProcessWaitResult_WaitFlagNotSupported ProcessWaitResult::WaitFlagNotSupported
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum ProcessWaitResult_T {
    ProcessWaitResult_None = ProcessWaitResult::None,
    ProcessWaitResult_Start = ProcessWaitResult::Start,
    ProcessWaitResult_Terminate = ProcessWaitResult::Terminate,
    ProcessWaitResult_Status = ProcessWaitResult::Status,
    ProcessWaitResult_Error = ProcessWaitResult::Error,
    ProcessWaitResult_Timeout = ProcessWaitResult::Timeout,
    ProcessWaitResult_StdIn = ProcessWaitResult::StdIn,
    ProcessWaitResult_StdOut = ProcessWaitResult::StdOut,
    ProcessWaitResult_StdErr = ProcessWaitResult::StdErr,
    ProcessWaitResult_WaitFlagNotSupported = ProcessWaitResult::WaitFlagNotSupported,
    ProcessWaitResult_32BitHack = 0x7fffffff
} ProcessWaitResult_T;
# ifdef AssertCompileSize
AssertCompileSize(ProcessWaitResult_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(791909d7-4c64-2fa4-4303-adb10658d347),
    scriptable
]
interface FileCopyFlag
{
    const PRUint32 None = 0;
    const PRUint32 NoReplace = 1;
    const PRUint32 FollowLinks = 2;
    const PRUint32 Update = 4;
};


/* IDL typedef for enum FileCopyFlag and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 FileCopyFlag_T;
%{C++
# define FileCopyFlag_None FileCopyFlag::None
# define FileCopyFlag_NoReplace FileCopyFlag::NoReplace
# define FileCopyFlag_FollowLinks FileCopyFlag::FollowLinks
# define FileCopyFlag_Update FileCopyFlag::Update
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum FileCopyFlag_T {
    FileCopyFlag_None = FileCopyFlag::None,
    FileCopyFlag_NoReplace = FileCopyFlag::NoReplace,
    FileCopyFlag_FollowLinks = FileCopyFlag::FollowLinks,
    FileCopyFlag_Update = FileCopyFlag::Update,
    FileCopyFlag_32BitHack = 0x7fffffff
} FileCopyFlag_T;
# ifdef AssertCompileSize
AssertCompileSize(FileCopyFlag_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(2450a05d-80c6-4c96-9a17-94d73293ff86),
    scriptable
]
interface FsObjMoveFlag
{
    const PRUint32 None = 0;
    const PRUint32 Replace = 1;
    const PRUint32 FollowLinks = 2;
    const PRUint32 AllowDirectoryMoves = 4;
};


/* IDL typedef for enum FsObjMoveFlag and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 FsObjMoveFlag_T;
%{C++
# define FsObjMoveFlag_None FsObjMoveFlag::None
# define FsObjMoveFlag_Replace FsObjMoveFlag::Replace
# define FsObjMoveFlag_FollowLinks FsObjMoveFlag::FollowLinks
# define FsObjMoveFlag_AllowDirectoryMoves FsObjMoveFlag::AllowDirectoryMoves
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum FsObjMoveFlag_T {
    FsObjMoveFlag_None = FsObjMoveFlag::None,
    FsObjMoveFlag_Replace = FsObjMoveFlag::Replace,
    FsObjMoveFlag_FollowLinks = FsObjMoveFlag::FollowLinks,
    FsObjMoveFlag_AllowDirectoryMoves = FsObjMoveFlag::AllowDirectoryMoves,
    FsObjMoveFlag_32BitHack = 0x7fffffff
} FsObjMoveFlag_T;
# ifdef AssertCompileSize
AssertCompileSize(FsObjMoveFlag_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(bd721b0e-ced5-4f79-b368-249897c32a36),
    scriptable
]
interface DirectoryCreateFlag
{
    const PRUint32 None = 0;
    const PRUint32 Parents = 1;
};


/* IDL typedef for enum DirectoryCreateFlag and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 DirectoryCreateFlag_T;
%{C++
# define DirectoryCreateFlag_None DirectoryCreateFlag::None
# define DirectoryCreateFlag_Parents DirectoryCreateFlag::Parents
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum DirectoryCreateFlag_T {
    DirectoryCreateFlag_None = DirectoryCreateFlag::None,
    DirectoryCreateFlag_Parents = DirectoryCreateFlag::Parents,
    DirectoryCreateFlag_32BitHack = 0x7fffffff
} DirectoryCreateFlag_T;
# ifdef AssertCompileSize
AssertCompileSize(DirectoryCreateFlag_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(b5901856-d064-4fbc-ab06-2909ba106154),
    scriptable
]
interface DirectoryCopyFlag
{
    const PRUint32 None = 0;
    const PRUint32 CopyIntoExisting = 1;
};


/* IDL typedef for enum DirectoryCopyFlag and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 DirectoryCopyFlag_T;
%{C++
# define DirectoryCopyFlag_None DirectoryCopyFlag::None
# define DirectoryCopyFlag_CopyIntoExisting DirectoryCopyFlag::CopyIntoExisting
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum DirectoryCopyFlag_T {
    DirectoryCopyFlag_None = DirectoryCopyFlag::None,
    DirectoryCopyFlag_CopyIntoExisting = DirectoryCopyFlag::CopyIntoExisting,
    DirectoryCopyFlag_32BitHack = 0x7fffffff
} DirectoryCopyFlag_T;
# ifdef AssertCompileSize
AssertCompileSize(DirectoryCopyFlag_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(455aabf0-7692-48f6-9061-f21579b65769),
    scriptable
]
interface DirectoryRemoveRecFlag
{
    const PRUint32 None = 0;
    const PRUint32 ContentAndDir = 1;
    const PRUint32 ContentOnly = 2;
};


/* IDL typedef for enum DirectoryRemoveRecFlag and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 DirectoryRemoveRecFlag_T;
%{C++
# define DirectoryRemoveRecFlag_None DirectoryRemoveRecFlag::None
# define DirectoryRemoveRecFlag_ContentAndDir DirectoryRemoveRecFlag::ContentAndDir
# define DirectoryRemoveRecFlag_ContentOnly DirectoryRemoveRecFlag::ContentOnly
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum DirectoryRemoveRecFlag_T {
    DirectoryRemoveRecFlag_None = DirectoryRemoveRecFlag::None,
    DirectoryRemoveRecFlag_ContentAndDir = DirectoryRemoveRecFlag::ContentAndDir,
    DirectoryRemoveRecFlag_ContentOnly = DirectoryRemoveRecFlag::ContentOnly,
    DirectoryRemoveRecFlag_32BitHack = 0x7fffffff
} DirectoryRemoveRecFlag_T;
# ifdef AssertCompileSize
AssertCompileSize(DirectoryRemoveRecFlag_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(59bbf3a1-4e23-d7cf-05d5-ccae32080ed2),
    scriptable
]
interface FsObjRenameFlag
{
    const PRUint32 NoReplace = 0;
    const PRUint32 Replace = 1;
};


/* IDL typedef for enum FsObjRenameFlag and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 FsObjRenameFlag_T;
%{C++
# define FsObjRenameFlag_NoReplace FsObjRenameFlag::NoReplace
# define FsObjRenameFlag_Replace FsObjRenameFlag::Replace
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum FsObjRenameFlag_T {
    FsObjRenameFlag_NoReplace = FsObjRenameFlag::NoReplace,
    FsObjRenameFlag_Replace = FsObjRenameFlag::Replace,
    FsObjRenameFlag_32BitHack = 0x7fffffff
} FsObjRenameFlag_T;
# ifdef AssertCompileSize
AssertCompileSize(FsObjRenameFlag_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(C544CD2B-F02D-4886-9901-71C523DB8DC5),
    scriptable
]
interface ProcessCreateFlag
{
    const PRUint32 None = 0;
    const PRUint32 WaitForProcessStartOnly = 1;
    const PRUint32 IgnoreOrphanedProcesses = 2;
    const PRUint32 Hidden = 4;
    const PRUint32 Profile = 8;
    const PRUint32 WaitForStdOut = 16;
    const PRUint32 WaitForStdErr = 32;
    const PRUint32 ExpandArguments = 64;
    const PRUint32 UnquotedArguments = 128;
};


/* IDL typedef for enum ProcessCreateFlag and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 ProcessCreateFlag_T;
%{C++
# define ProcessCreateFlag_None ProcessCreateFlag::None
# define ProcessCreateFlag_WaitForProcessStartOnly ProcessCreateFlag::WaitForProcessStartOnly
# define ProcessCreateFlag_IgnoreOrphanedProcesses ProcessCreateFlag::IgnoreOrphanedProcesses
# define ProcessCreateFlag_Hidden ProcessCreateFlag::Hidden
# define ProcessCreateFlag_Profile ProcessCreateFlag::Profile
# define ProcessCreateFlag_WaitForStdOut ProcessCreateFlag::WaitForStdOut
# define ProcessCreateFlag_WaitForStdErr ProcessCreateFlag::WaitForStdErr
# define ProcessCreateFlag_ExpandArguments ProcessCreateFlag::ExpandArguments
# define ProcessCreateFlag_UnquotedArguments ProcessCreateFlag::UnquotedArguments
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum ProcessCreateFlag_T {
    ProcessCreateFlag_None = ProcessCreateFlag::None,
    ProcessCreateFlag_WaitForProcessStartOnly = ProcessCreateFlag::WaitForProcessStartOnly,
    ProcessCreateFlag_IgnoreOrphanedProcesses = ProcessCreateFlag::IgnoreOrphanedProcesses,
    ProcessCreateFlag_Hidden = ProcessCreateFlag::Hidden,
    ProcessCreateFlag_Profile = ProcessCreateFlag::Profile,
    ProcessCreateFlag_WaitForStdOut = ProcessCreateFlag::WaitForStdOut,
    ProcessCreateFlag_WaitForStdErr = ProcessCreateFlag::WaitForStdErr,
    ProcessCreateFlag_ExpandArguments = ProcessCreateFlag::ExpandArguments,
    ProcessCreateFlag_UnquotedArguments = ProcessCreateFlag::UnquotedArguments,
    ProcessCreateFlag_32BitHack = 0x7fffffff
} ProcessCreateFlag_T;
# ifdef AssertCompileSize
AssertCompileSize(ProcessCreateFlag_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(ee8cac50-e232-49fe-806b-d1214d9c2e49),
    scriptable
]
interface ProcessPriority
{
    const PRUint32 Invalid = 0;
    const PRUint32 Default = 1;
};


/* IDL typedef for enum ProcessPriority and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 ProcessPriority_T;
%{C++
# define ProcessPriority_Invalid ProcessPriority::Invalid
# define ProcessPriority_Default ProcessPriority::Default
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum ProcessPriority_T {
    ProcessPriority_Invalid = ProcessPriority::Invalid,
    ProcessPriority_Default = ProcessPriority::Default,
    ProcessPriority_32BitHack = 0x7fffffff
} ProcessPriority_T;
# ifdef AssertCompileSize
AssertCompileSize(ProcessPriority_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(37794668-f8f1-4714-98a5-6f8fa2ed0118),
    scriptable
]
interface SymlinkType
{
    const PRUint32 Unknown = 0;
    const PRUint32 Directory = 1;
    const PRUint32 File = 2;
};


/* IDL typedef for enum SymlinkType and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 SymlinkType_T;
%{C++
# define SymlinkType_Unknown SymlinkType::Unknown
# define SymlinkType_Directory SymlinkType::Directory
# define SymlinkType_File SymlinkType::File
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum SymlinkType_T {
    SymlinkType_Unknown = SymlinkType::Unknown,
    SymlinkType_Directory = SymlinkType::Directory,
    SymlinkType_File = SymlinkType::File,
    SymlinkType_32BitHack = 0x7fffffff
} SymlinkType_T;
# ifdef AssertCompileSize
AssertCompileSize(SymlinkType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(b7fe2b9d-790e-4b25-8adf-1ca33026931f),
    scriptable
]
interface SymlinkReadFlag
{
    const PRUint32 None = 0;
    const PRUint32 NoSymlinks = 1;
};


/* IDL typedef for enum SymlinkReadFlag and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 SymlinkReadFlag_T;
%{C++
# define SymlinkReadFlag_None SymlinkReadFlag::None
# define SymlinkReadFlag_NoSymlinks SymlinkReadFlag::NoSymlinks
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum SymlinkReadFlag_T {
    SymlinkReadFlag_None = SymlinkReadFlag::None,
    SymlinkReadFlag_NoSymlinks = SymlinkReadFlag::NoSymlinks,
    SymlinkReadFlag_32BitHack = 0x7fffffff
} SymlinkReadFlag_T;
# ifdef AssertCompileSize
AssertCompileSize(SymlinkReadFlag_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(4d52368f-5b48-4bfe-b486-acf89139b52f),
    scriptable
]
interface ProcessStatus
{
    const PRUint32 Undefined = 0;
    const PRUint32 Starting = 10;
    const PRUint32 Started = 100;
    const PRUint32 Paused = 110;
    const PRUint32 Terminating = 480;
    const PRUint32 TerminatedNormally = 500;
    const PRUint32 TerminatedSignal = 510;
    const PRUint32 TerminatedAbnormally = 511;
    const PRUint32 TimedOutKilled = 512;
    const PRUint32 TimedOutAbnormally = 513;
    const PRUint32 Down = 600;
    const PRUint32 Error = 800;
};


/* IDL typedef for enum ProcessStatus and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 ProcessStatus_T;
%{C++
# define ProcessStatus_Undefined ProcessStatus::Undefined
# define ProcessStatus_Starting ProcessStatus::Starting
# define ProcessStatus_Started ProcessStatus::Started
# define ProcessStatus_Paused ProcessStatus::Paused
# define ProcessStatus_Terminating ProcessStatus::Terminating
# define ProcessStatus_TerminatedNormally ProcessStatus::TerminatedNormally
# define ProcessStatus_TerminatedSignal ProcessStatus::TerminatedSignal
# define ProcessStatus_TerminatedAbnormally ProcessStatus::TerminatedAbnormally
# define ProcessStatus_TimedOutKilled ProcessStatus::TimedOutKilled
# define ProcessStatus_TimedOutAbnormally ProcessStatus::TimedOutAbnormally
# define ProcessStatus_Down ProcessStatus::Down
# define ProcessStatus_Error ProcessStatus::Error
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum ProcessStatus_T {
    ProcessStatus_Undefined = ProcessStatus::Undefined,
    ProcessStatus_Starting = ProcessStatus::Starting,
    ProcessStatus_Started = ProcessStatus::Started,
    ProcessStatus_Paused = ProcessStatus::Paused,
    ProcessStatus_Terminating = ProcessStatus::Terminating,
    ProcessStatus_TerminatedNormally = ProcessStatus::TerminatedNormally,
    ProcessStatus_TerminatedSignal = ProcessStatus::TerminatedSignal,
    ProcessStatus_TerminatedAbnormally = ProcessStatus::TerminatedAbnormally,
    ProcessStatus_TimedOutKilled = ProcessStatus::TimedOutKilled,
    ProcessStatus_TimedOutAbnormally = ProcessStatus::TimedOutAbnormally,
    ProcessStatus_Down = ProcessStatus::Down,
    ProcessStatus_Error = ProcessStatus::Error,
    ProcessStatus_32BitHack = 0x7fffffff
} ProcessStatus_T;
# ifdef AssertCompileSize
AssertCompileSize(ProcessStatus_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(a4a0ef9c-29cc-4805-9803-c8215ae9da6c),
    scriptable
]
interface ProcessInputStatus
{
    const PRUint32 Undefined = 0;
    const PRUint32 Broken = 1;
    const PRUint32 Available = 10;
    const PRUint32 Written = 50;
    const PRUint32 Overflow = 100;
};


/* IDL typedef for enum ProcessInputStatus and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 ProcessInputStatus_T;
%{C++
# define ProcessInputStatus_Undefined ProcessInputStatus::Undefined
# define ProcessInputStatus_Broken ProcessInputStatus::Broken
# define ProcessInputStatus_Available ProcessInputStatus::Available
# define ProcessInputStatus_Written ProcessInputStatus::Written
# define ProcessInputStatus_Overflow ProcessInputStatus::Overflow
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum ProcessInputStatus_T {
    ProcessInputStatus_Undefined = ProcessInputStatus::Undefined,
    ProcessInputStatus_Broken = ProcessInputStatus::Broken,
    ProcessInputStatus_Available = ProcessInputStatus::Available,
    ProcessInputStatus_Written = ProcessInputStatus::Written,
    ProcessInputStatus_Overflow = ProcessInputStatus::Overflow,
    ProcessInputStatus_32BitHack = 0x7fffffff
} ProcessInputStatus_T;
# ifdef AssertCompileSize
AssertCompileSize(ProcessInputStatus_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(97303a5b-42e8-0a55-d16f-d2a92c295261),
    scriptable
]
interface PathStyle
{
    const PRUint32 DOS = 1;
    const PRUint32 UNIX = 2;
    const PRUint32 Unknown = 8;
};


/* IDL typedef for enum PathStyle and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 PathStyle_T;
%{C++
# define PathStyle_DOS PathStyle::DOS
# define PathStyle_UNIX PathStyle::UNIX
# define PathStyle_Unknown PathStyle::Unknown
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum PathStyle_T {
    PathStyle_DOS = PathStyle::DOS,
    PathStyle_UNIX = PathStyle::UNIX,
    PathStyle_Unknown = PathStyle::Unknown,
    PathStyle_32BitHack = 0x7fffffff
} PathStyle_T;
# ifdef AssertCompileSize
AssertCompileSize(PathStyle_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(231a578f-47fb-ea30-3b3e-8489558227f0),
    scriptable
]
interface FileAccessMode
{
    const PRUint32 ReadOnly = 1;
    const PRUint32 WriteOnly = 2;
    const PRUint32 ReadWrite = 3;
    const PRUint32 AppendOnly = 4;
    const PRUint32 AppendRead = 5;
};


/* IDL typedef for enum FileAccessMode and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 FileAccessMode_T;
%{C++
# define FileAccessMode_ReadOnly FileAccessMode::ReadOnly
# define FileAccessMode_WriteOnly FileAccessMode::WriteOnly
# define FileAccessMode_ReadWrite FileAccessMode::ReadWrite
# define FileAccessMode_AppendOnly FileAccessMode::AppendOnly
# define FileAccessMode_AppendRead FileAccessMode::AppendRead
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum FileAccessMode_T {
    FileAccessMode_ReadOnly = FileAccessMode::ReadOnly,
    FileAccessMode_WriteOnly = FileAccessMode::WriteOnly,
    FileAccessMode_ReadWrite = FileAccessMode::ReadWrite,
    FileAccessMode_AppendOnly = FileAccessMode::AppendOnly,
    FileAccessMode_AppendRead = FileAccessMode::AppendRead,
    FileAccessMode_32BitHack = 0x7fffffff
} FileAccessMode_T;
# ifdef AssertCompileSize
AssertCompileSize(FileAccessMode_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(12bc97e2-4fc6-a8b4-4f84-0cbf4ab970d2),
    scriptable
]
interface FileOpenAction
{
    const PRUint32 OpenExisting = 1;
    const PRUint32 OpenOrCreate = 2;
    const PRUint32 CreateNew = 3;
    const PRUint32 CreateOrReplace = 4;
    const PRUint32 OpenExistingTruncated = 5;
    const PRUint32 AppendOrCreate = 99;
};


/* IDL typedef for enum FileOpenAction and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 FileOpenAction_T;
%{C++
# define FileOpenAction_OpenExisting FileOpenAction::OpenExisting
# define FileOpenAction_OpenOrCreate FileOpenAction::OpenOrCreate
# define FileOpenAction_CreateNew FileOpenAction::CreateNew
# define FileOpenAction_CreateOrReplace FileOpenAction::CreateOrReplace
# define FileOpenAction_OpenExistingTruncated FileOpenAction::OpenExistingTruncated
# define FileOpenAction_AppendOrCreate FileOpenAction::AppendOrCreate
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum FileOpenAction_T {
    FileOpenAction_OpenExisting = FileOpenAction::OpenExisting,
    FileOpenAction_OpenOrCreate = FileOpenAction::OpenOrCreate,
    FileOpenAction_CreateNew = FileOpenAction::CreateNew,
    FileOpenAction_CreateOrReplace = FileOpenAction::CreateOrReplace,
    FileOpenAction_OpenExistingTruncated = FileOpenAction::OpenExistingTruncated,
    FileOpenAction_AppendOrCreate = FileOpenAction::AppendOrCreate,
    FileOpenAction_32BitHack = 0x7fffffff
} FileOpenAction_T;
# ifdef AssertCompileSize
AssertCompileSize(FileOpenAction_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(f87dfe58-425b-c5ba-7d6d-22adeea25de1),
    scriptable
]
interface FileSharingMode
{
    const PRUint32 Read = 1;
    const PRUint32 Write = 2;
    const PRUint32 ReadWrite = 3;
    const PRUint32 Delete = 4;
    const PRUint32 ReadDelete = 5;
    const PRUint32 WriteDelete = 6;
    const PRUint32 All = 7;
};


/* IDL typedef for enum FileSharingMode and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 FileSharingMode_T;
%{C++
# define FileSharingMode_Read FileSharingMode::Read
# define FileSharingMode_Write FileSharingMode::Write
# define FileSharingMode_ReadWrite FileSharingMode::ReadWrite
# define FileSharingMode_Delete FileSharingMode::Delete
# define FileSharingMode_ReadDelete FileSharingMode::ReadDelete
# define FileSharingMode_WriteDelete FileSharingMode::WriteDelete
# define FileSharingMode_All FileSharingMode::All
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum FileSharingMode_T {
    FileSharingMode_Read = FileSharingMode::Read,
    FileSharingMode_Write = FileSharingMode::Write,
    FileSharingMode_ReadWrite = FileSharingMode::ReadWrite,
    FileSharingMode_Delete = FileSharingMode::Delete,
    FileSharingMode_ReadDelete = FileSharingMode::ReadDelete,
    FileSharingMode_WriteDelete = FileSharingMode::WriteDelete,
    FileSharingMode_All = FileSharingMode::All,
    FileSharingMode_32BitHack = 0x7fffffff
} FileSharingMode_T;
# ifdef AssertCompileSize
AssertCompileSize(FileSharingMode_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(4671abd4-f70c-42aa-8542-6c169cb87a5c),
    scriptable
]
interface FileOpenExFlag
{
    const PRUint32 None = 0;
};


/* IDL typedef for enum FileOpenExFlag and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 FileOpenExFlag_T;
%{C++
# define FileOpenExFlag_None FileOpenExFlag::None
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum FileOpenExFlag_T {
    FileOpenExFlag_None = FileOpenExFlag::None,
    FileOpenExFlag_32BitHack = 0x7fffffff
} FileOpenExFlag_T;
# ifdef AssertCompileSize
AssertCompileSize(FileOpenExFlag_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(8c86468b-b97b-4080-8914-e29f5b0abd2c),
    scriptable
]
interface FileStatus
{
    const PRUint32 Undefined = 0;
    const PRUint32 Opening = 10;
    const PRUint32 Open = 100;
    const PRUint32 Closing = 150;
    const PRUint32 Closed = 200;
    const PRUint32 Down = 600;
    const PRUint32 Error = 800;
};


/* IDL typedef for enum FileStatus and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 FileStatus_T;
%{C++
# define FileStatus_Undefined FileStatus::Undefined
# define FileStatus_Opening FileStatus::Opening
# define FileStatus_Open FileStatus::Open
# define FileStatus_Closing FileStatus::Closing
# define FileStatus_Closed FileStatus::Closed
# define FileStatus_Down FileStatus::Down
# define FileStatus_Error FileStatus::Error
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum FileStatus_T {
    FileStatus_Undefined = FileStatus::Undefined,
    FileStatus_Opening = FileStatus::Opening,
    FileStatus_Open = FileStatus::Open,
    FileStatus_Closing = FileStatus::Closing,
    FileStatus_Closed = FileStatus::Closed,
    FileStatus_Down = FileStatus::Down,
    FileStatus_Error = FileStatus::Error,
    FileStatus_32BitHack = 0x7fffffff
} FileStatus_T;
# ifdef AssertCompileSize
AssertCompileSize(FileStatus_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(34a0d1aa-491e-e209-e150-84964d6cee5f),
    scriptable
]
interface FsObjType
{
    const PRUint32 Unknown = 1;
    const PRUint32 Fifo = 2;
    const PRUint32 DevChar = 3;
    const PRUint32 Directory = 4;
    const PRUint32 DevBlock = 5;
    const PRUint32 File = 6;
    const PRUint32 Symlink = 7;
    const PRUint32 Socket = 8;
    const PRUint32 WhiteOut = 9;
};


/* IDL typedef for enum FsObjType and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 FsObjType_T;
%{C++
# define FsObjType_Unknown FsObjType::Unknown
# define FsObjType_Fifo FsObjType::Fifo
# define FsObjType_DevChar FsObjType::DevChar
# define FsObjType_Directory FsObjType::Directory
# define FsObjType_DevBlock FsObjType::DevBlock
# define FsObjType_File FsObjType::File
# define FsObjType_Symlink FsObjType::Symlink
# define FsObjType_Socket FsObjType::Socket
# define FsObjType_WhiteOut FsObjType::WhiteOut
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum FsObjType_T {
    FsObjType_Unknown = FsObjType::Unknown,
    FsObjType_Fifo = FsObjType::Fifo,
    FsObjType_DevChar = FsObjType::DevChar,
    FsObjType_Directory = FsObjType::Directory,
    FsObjType_DevBlock = FsObjType::DevBlock,
    FsObjType_File = FsObjType::File,
    FsObjType_Symlink = FsObjType::Symlink,
    FsObjType_Socket = FsObjType::Socket,
    FsObjType_WhiteOut = FsObjType::WhiteOut,
    FsObjType_32BitHack = 0x7fffffff
} FsObjType_T;
# ifdef AssertCompileSize
AssertCompileSize(FsObjType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(17609e74-778e-4d0e-8827-35f5230f287b),
    scriptable
]
interface DnDAction
{
    const PRUint32 Ignore = 0;
    const PRUint32 Copy = 1;
    const PRUint32 Move = 2;
    const PRUint32 Link = 3;
};


/* IDL typedef for enum DnDAction and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 DnDAction_T;
%{C++
# define DnDAction_Ignore DnDAction::Ignore
# define DnDAction_Copy DnDAction::Copy
# define DnDAction_Move DnDAction::Move
# define DnDAction_Link DnDAction::Link
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum DnDAction_T {
    DnDAction_Ignore = DnDAction::Ignore,
    DnDAction_Copy = DnDAction::Copy,
    DnDAction_Move = DnDAction::Move,
    DnDAction_Link = DnDAction::Link,
    DnDAction_32BitHack = 0x7fffffff
} DnDAction_T;
# ifdef AssertCompileSize
AssertCompileSize(DnDAction_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(5138837a-8fd2-4194-a1b0-08f7bc3949d0),
    scriptable
]
interface DirectoryOpenFlag
{
    const PRUint32 None = 0;
    const PRUint32 NoSymlinks = 1;
};


/* IDL typedef for enum DirectoryOpenFlag and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 DirectoryOpenFlag_T;
%{C++
# define DirectoryOpenFlag_None DirectoryOpenFlag::None
# define DirectoryOpenFlag_NoSymlinks DirectoryOpenFlag::NoSymlinks
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum DirectoryOpenFlag_T {
    DirectoryOpenFlag_None = DirectoryOpenFlag::None,
    DirectoryOpenFlag_NoSymlinks = DirectoryOpenFlag::NoSymlinks,
    DirectoryOpenFlag_32BitHack = 0x7fffffff
} DirectoryOpenFlag_T;
# ifdef AssertCompileSize
AssertCompileSize(DirectoryOpenFlag_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(ef41e980-e012-43cd-9dea-479d4ef14d13),
    scriptable
]
interface MediumState
{
    const PRUint32 NotCreated = 0;
    const PRUint32 Created = 1;
    const PRUint32 LockedRead = 2;
    const PRUint32 LockedWrite = 3;
    const PRUint32 Inaccessible = 4;
    const PRUint32 Creating = 5;
    const PRUint32 Deleting = 6;
};


/* IDL typedef for enum MediumState and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 MediumState_T;
%{C++
# define MediumState_NotCreated MediumState::NotCreated
# define MediumState_Created MediumState::Created
# define MediumState_LockedRead MediumState::LockedRead
# define MediumState_LockedWrite MediumState::LockedWrite
# define MediumState_Inaccessible MediumState::Inaccessible
# define MediumState_Creating MediumState::Creating
# define MediumState_Deleting MediumState::Deleting
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum MediumState_T {
    MediumState_NotCreated = MediumState::NotCreated,
    MediumState_Created = MediumState::Created,
    MediumState_LockedRead = MediumState::LockedRead,
    MediumState_LockedWrite = MediumState::LockedWrite,
    MediumState_Inaccessible = MediumState::Inaccessible,
    MediumState_Creating = MediumState::Creating,
    MediumState_Deleting = MediumState::Deleting,
    MediumState_32BitHack = 0x7fffffff
} MediumState_T;
# ifdef AssertCompileSize
AssertCompileSize(MediumState_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(fe663fb5-c244-4e1b-9d81-c628b417dd04),
    scriptable
]
interface MediumType
{
    const PRUint32 Normal = 0;
    const PRUint32 Immutable = 1;
    const PRUint32 Writethrough = 2;
    const PRUint32 Shareable = 3;
    const PRUint32 Readonly = 4;
    const PRUint32 MultiAttach = 5;
};


/* IDL typedef for enum MediumType and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 MediumType_T;
%{C++
# define MediumType_Normal MediumType::Normal
# define MediumType_Immutable MediumType::Immutable
# define MediumType_Writethrough MediumType::Writethrough
# define MediumType_Shareable MediumType::Shareable
# define MediumType_Readonly MediumType::Readonly
# define MediumType_MultiAttach MediumType::MultiAttach
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum MediumType_T {
    MediumType_Normal = MediumType::Normal,
    MediumType_Immutable = MediumType::Immutable,
    MediumType_Writethrough = MediumType::Writethrough,
    MediumType_Shareable = MediumType::Shareable,
    MediumType_Readonly = MediumType::Readonly,
    MediumType_MultiAttach = MediumType::MultiAttach,
    MediumType_32BitHack = 0x7fffffff
} MediumType_T;
# ifdef AssertCompileSize
AssertCompileSize(MediumType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(0282e97f-4ef3-4411-a8e0-47c384803cb6),
    scriptable
]
interface MediumVariant
{
    const PRUint32 Standard = 0;
    const PRUint32 VmdkSplit2G = 0x01;
    const PRUint32 VmdkRawDisk = 0x02;
    const PRUint32 VmdkStreamOptimized = 0x04;
    const PRUint32 VmdkESX = 0x08;
    const PRUint32 VdiZeroExpand = 0x100;
    const PRUint32 Fixed = 0x10000;
    const PRUint32 Diff = 0x20000;
    const PRUint32 Formatted = 0x20000000;
    const PRUint32 NoCreateDir = 0x40000000;
};


/* IDL typedef for enum MediumVariant and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 MediumVariant_T;
%{C++
# define MediumVariant_Standard MediumVariant::Standard
# define MediumVariant_VmdkSplit2G MediumVariant::VmdkSplit2G
# define MediumVariant_VmdkRawDisk MediumVariant::VmdkRawDisk
# define MediumVariant_VmdkStreamOptimized MediumVariant::VmdkStreamOptimized
# define MediumVariant_VmdkESX MediumVariant::VmdkESX
# define MediumVariant_VdiZeroExpand MediumVariant::VdiZeroExpand
# define MediumVariant_Fixed MediumVariant::Fixed
# define MediumVariant_Diff MediumVariant::Diff
# define MediumVariant_Formatted MediumVariant::Formatted
# define MediumVariant_NoCreateDir MediumVariant::NoCreateDir
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum MediumVariant_T {
    MediumVariant_Standard = MediumVariant::Standard,
    MediumVariant_VmdkSplit2G = MediumVariant::VmdkSplit2G,
    MediumVariant_VmdkRawDisk = MediumVariant::VmdkRawDisk,
    MediumVariant_VmdkStreamOptimized = MediumVariant::VmdkStreamOptimized,
    MediumVariant_VmdkESX = MediumVariant::VmdkESX,
    MediumVariant_VdiZeroExpand = MediumVariant::VdiZeroExpand,
    MediumVariant_Fixed = MediumVariant::Fixed,
    MediumVariant_Diff = MediumVariant::Diff,
    MediumVariant_Formatted = MediumVariant::Formatted,
    MediumVariant_NoCreateDir = MediumVariant::NoCreateDir,
    MediumVariant_32BitHack = 0x7fffffff
} MediumVariant_T;
# ifdef AssertCompileSize
AssertCompileSize(MediumVariant_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(d90ea51e-a3f1-4a01-beb1-c1723c0d3ba7),
    scriptable
]
interface DataType
{
    const PRUint32 Int32 = 0;
    const PRUint32 Int8 = 1;
    const PRUint32 String = 2;
};


/* IDL typedef for enum DataType and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 DataType_T;
%{C++
# define DataType_Int32 DataType::Int32
# define DataType_Int8 DataType::Int8
# define DataType_String DataType::String
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum DataType_T {
    DataType_Int32 = DataType::Int32,
    DataType_Int8 = DataType::Int8,
    DataType_String = DataType::String,
    DataType_32BitHack = 0x7fffffff
} DataType_T;
# ifdef AssertCompileSize
AssertCompileSize(DataType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(86884dcf-1d6b-4f1b-b4bf-f5aa44959d60),
    scriptable
]
interface DataFlags
{
    const PRUint32 None = 0x00;
    const PRUint32 Mandatory = 0x01;
    const PRUint32 Expert = 0x02;
    const PRUint32 Array = 0x04;
    const PRUint32 FlagMask = 0x07;
};


/* IDL typedef for enum DataFlags and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 DataFlags_T;
%{C++
# define DataFlags_None DataFlags::None
# define DataFlags_Mandatory DataFlags::Mandatory
# define DataFlags_Expert DataFlags::Expert
# define DataFlags_Array DataFlags::Array
# define DataFlags_FlagMask DataFlags::FlagMask
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum DataFlags_T {
    DataFlags_None = DataFlags::None,
    DataFlags_Mandatory = DataFlags::Mandatory,
    DataFlags_Expert = DataFlags::Expert,
    DataFlags_Array = DataFlags::Array,
    DataFlags_FlagMask = DataFlags::FlagMask,
    DataFlags_32BitHack = 0x7fffffff
} DataFlags_T;
# ifdef AssertCompileSize
AssertCompileSize(DataFlags_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(7342ba79-7ce0-4d94-8f86-5ed5a185d9bd),
    scriptable
]
interface MediumFormatCapabilities
{
    const PRUint32 Uuid = 0x01;
    const PRUint32 CreateFixed = 0x02;
    const PRUint32 CreateDynamic = 0x04;
    const PRUint32 CreateSplit2G = 0x08;
    const PRUint32 Differencing = 0x10;
    const PRUint32 Asynchronous = 0x20;
    const PRUint32 File = 0x40;
    const PRUint32 Properties = 0x80;
    const PRUint32 TcpNetworking = 0x100;
    const PRUint32 VFS = 0x200;
    const PRUint32 Discard = 0x400;
    const PRUint32 Preferred = 0x800;
    const PRUint32 CapabilityMask = 0xFFF;
};


/* IDL typedef for enum MediumFormatCapabilities and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 MediumFormatCapabilities_T;
%{C++
# define MediumFormatCapabilities_Uuid MediumFormatCapabilities::Uuid
# define MediumFormatCapabilities_CreateFixed MediumFormatCapabilities::CreateFixed
# define MediumFormatCapabilities_CreateDynamic MediumFormatCapabilities::CreateDynamic
# define MediumFormatCapabilities_CreateSplit2G MediumFormatCapabilities::CreateSplit2G
# define MediumFormatCapabilities_Differencing MediumFormatCapabilities::Differencing
# define MediumFormatCapabilities_Asynchronous MediumFormatCapabilities::Asynchronous
# define MediumFormatCapabilities_File MediumFormatCapabilities::File
# define MediumFormatCapabilities_Properties MediumFormatCapabilities::Properties
# define MediumFormatCapabilities_TcpNetworking MediumFormatCapabilities::TcpNetworking
# define MediumFormatCapabilities_VFS MediumFormatCapabilities::VFS
# define MediumFormatCapabilities_Discard MediumFormatCapabilities::Discard
# define MediumFormatCapabilities_Preferred MediumFormatCapabilities::Preferred
# define MediumFormatCapabilities_CapabilityMask MediumFormatCapabilities::CapabilityMask
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum MediumFormatCapabilities_T {
    MediumFormatCapabilities_Uuid = MediumFormatCapabilities::Uuid,
    MediumFormatCapabilities_CreateFixed = MediumFormatCapabilities::CreateFixed,
    MediumFormatCapabilities_CreateDynamic = MediumFormatCapabilities::CreateDynamic,
    MediumFormatCapabilities_CreateSplit2G = MediumFormatCapabilities::CreateSplit2G,
    MediumFormatCapabilities_Differencing = MediumFormatCapabilities::Differencing,
    MediumFormatCapabilities_Asynchronous = MediumFormatCapabilities::Asynchronous,
    MediumFormatCapabilities_File = MediumFormatCapabilities::File,
    MediumFormatCapabilities_Properties = MediumFormatCapabilities::Properties,
    MediumFormatCapabilities_TcpNetworking = MediumFormatCapabilities::TcpNetworking,
    MediumFormatCapabilities_VFS = MediumFormatCapabilities::VFS,
    MediumFormatCapabilities_Discard = MediumFormatCapabilities::Discard,
    MediumFormatCapabilities_Preferred = MediumFormatCapabilities::Preferred,
    MediumFormatCapabilities_CapabilityMask = MediumFormatCapabilities::CapabilityMask,
    MediumFormatCapabilities_32BitHack = 0x7fffffff
} MediumFormatCapabilities_T;
# ifdef AssertCompileSize
AssertCompileSize(MediumFormatCapabilities_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(360066eb-d19e-4fa1-57ef-fed434fbe2a9),
    scriptable
]
interface PartitionTableType
{
    const PRUint32 MBR = 1;
    const PRUint32 GPT = 2;
};


/* IDL typedef for enum PartitionTableType and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 PartitionTableType_T;
%{C++
# define PartitionTableType_MBR PartitionTableType::MBR
# define PartitionTableType_GPT PartitionTableType::GPT
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum PartitionTableType_T {
    PartitionTableType_MBR = PartitionTableType::MBR,
    PartitionTableType_GPT = PartitionTableType::GPT,
    PartitionTableType_32BitHack = 0x7fffffff
} PartitionTableType_T;
# ifdef AssertCompileSize
AssertCompileSize(PartitionTableType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(ef29ea38-409b-49c7-a817-c858d426dfba),
    scriptable
]
interface KeyboardLED
{
    const PRUint32 NumLock = 0x01;
    const PRUint32 CapsLock = 0x02;
    const PRUint32 ScrollLock = 0x04;
};


/* IDL typedef for enum KeyboardLED and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 KeyboardLED_T;
%{C++
# define KeyboardLED_NumLock KeyboardLED::NumLock
# define KeyboardLED_CapsLock KeyboardLED::CapsLock
# define KeyboardLED_ScrollLock KeyboardLED::ScrollLock
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum KeyboardLED_T {
    KeyboardLED_NumLock = KeyboardLED::NumLock,
    KeyboardLED_CapsLock = KeyboardLED::CapsLock,
    KeyboardLED_ScrollLock = KeyboardLED::ScrollLock,
    KeyboardLED_32BitHack = 0x7fffffff
} KeyboardLED_T;
# ifdef AssertCompileSize
AssertCompileSize(KeyboardLED_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(9ee094b8-b28a-4d56-a166-973cb588d7f8),
    scriptable
]
interface MouseButtonState
{
    const PRUint32 LeftButton = 0x01;
    const PRUint32 RightButton = 0x02;
    const PRUint32 MiddleButton = 0x04;
    const PRUint32 WheelUp = 0x08;
    const PRUint32 WheelDown = 0x10;
    const PRUint32 XButton1 = 0x20;
    const PRUint32 XButton2 = 0x40;
    const PRUint32 MouseStateMask = 0x7F;
};


/* IDL typedef for enum MouseButtonState and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 MouseButtonState_T;
%{C++
# define MouseButtonState_LeftButton MouseButtonState::LeftButton
# define MouseButtonState_RightButton MouseButtonState::RightButton
# define MouseButtonState_MiddleButton MouseButtonState::MiddleButton
# define MouseButtonState_WheelUp MouseButtonState::WheelUp
# define MouseButtonState_WheelDown MouseButtonState::WheelDown
# define MouseButtonState_XButton1 MouseButtonState::XButton1
# define MouseButtonState_XButton2 MouseButtonState::XButton2
# define MouseButtonState_MouseStateMask MouseButtonState::MouseStateMask
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum MouseButtonState_T {
    MouseButtonState_LeftButton = MouseButtonState::LeftButton,
    MouseButtonState_RightButton = MouseButtonState::RightButton,
    MouseButtonState_MiddleButton = MouseButtonState::MiddleButton,
    MouseButtonState_WheelUp = MouseButtonState::WheelUp,
    MouseButtonState_WheelDown = MouseButtonState::WheelDown,
    MouseButtonState_XButton1 = MouseButtonState::XButton1,
    MouseButtonState_XButton2 = MouseButtonState::XButton2,
    MouseButtonState_MouseStateMask = MouseButtonState::MouseStateMask,
    MouseButtonState_32BitHack = 0x7fffffff
} MouseButtonState_T;
# ifdef AssertCompileSize
AssertCompileSize(MouseButtonState_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(3f942686-2506-421c-927c-90d4b45f4a38),
    scriptable
]
interface TouchContactState
{
    const PRUint32 None = 0x00;
    const PRUint32 InContact = 0x01;
    const PRUint32 InRange = 0x02;
    const PRUint32 ContactStateMask = 0x03;
};


/* IDL typedef for enum TouchContactState and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 TouchContactState_T;
%{C++
# define TouchContactState_None TouchContactState::None
# define TouchContactState_InContact TouchContactState::InContact
# define TouchContactState_InRange TouchContactState::InRange
# define TouchContactState_ContactStateMask TouchContactState::ContactStateMask
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum TouchContactState_T {
    TouchContactState_None = TouchContactState::None,
    TouchContactState_InContact = TouchContactState::InContact,
    TouchContactState_InRange = TouchContactState::InRange,
    TouchContactState_ContactStateMask = TouchContactState::ContactStateMask,
    TouchContactState_32BitHack = 0x7fffffff
} TouchContactState_T;
# ifdef AssertCompileSize
AssertCompileSize(TouchContactState_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(cc395839-30fa-4ca5-ae65-e6360e3edd7a),
    scriptable
]
interface FramebufferCapabilities
{
    const PRUint32 UpdateImage = 0x01;
    const PRUint32 VHWA = 0x02;
    const PRUint32 VisibleRegion = 0x04;
    const PRUint32 RenderCursor = 0x08;
    const PRUint32 MoveCursor = 0x10;
};


/* IDL typedef for enum FramebufferCapabilities and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 FramebufferCapabilities_T;
%{C++
# define FramebufferCapabilities_UpdateImage FramebufferCapabilities::UpdateImage
# define FramebufferCapabilities_VHWA FramebufferCapabilities::VHWA
# define FramebufferCapabilities_VisibleRegion FramebufferCapabilities::VisibleRegion
# define FramebufferCapabilities_RenderCursor FramebufferCapabilities::RenderCursor
# define FramebufferCapabilities_MoveCursor FramebufferCapabilities::MoveCursor
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum FramebufferCapabilities_T {
    FramebufferCapabilities_UpdateImage = FramebufferCapabilities::UpdateImage,
    FramebufferCapabilities_VHWA = FramebufferCapabilities::VHWA,
    FramebufferCapabilities_VisibleRegion = FramebufferCapabilities::VisibleRegion,
    FramebufferCapabilities_RenderCursor = FramebufferCapabilities::RenderCursor,
    FramebufferCapabilities_MoveCursor = FramebufferCapabilities::MoveCursor,
    FramebufferCapabilities_32BitHack = 0x7fffffff
} FramebufferCapabilities_T;
# ifdef AssertCompileSize
AssertCompileSize(FramebufferCapabilities_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(6b8d3f71-39cb-459e-a916-48917ed43e19),
    scriptable
]
interface GuestMonitorStatus
{
    const PRUint32 Disabled = 0;
    const PRUint32 Enabled = 1;
    const PRUint32 Blank = 2;
};


/* IDL typedef for enum GuestMonitorStatus and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 GuestMonitorStatus_T;
%{C++
# define GuestMonitorStatus_Disabled GuestMonitorStatus::Disabled
# define GuestMonitorStatus_Enabled GuestMonitorStatus::Enabled
# define GuestMonitorStatus_Blank GuestMonitorStatus::Blank
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum GuestMonitorStatus_T {
    GuestMonitorStatus_Disabled = GuestMonitorStatus::Disabled,
    GuestMonitorStatus_Enabled = GuestMonitorStatus::Enabled,
    GuestMonitorStatus_Blank = GuestMonitorStatus::Blank,
    GuestMonitorStatus_32BitHack = 0x7fffffff
} GuestMonitorStatus_T;
# ifdef AssertCompileSize
AssertCompileSize(GuestMonitorStatus_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(8fa1964c-8774-11e9-ae5d-1f419105e68d),
    scriptable
]
interface ScreenLayoutMode
{
    const PRUint32 Apply = 0;
    const PRUint32 Reset = 1;
    const PRUint32 Attach = 2;
    const PRUint32 Silent = 3;
};


/* IDL typedef for enum ScreenLayoutMode and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 ScreenLayoutMode_T;
%{C++
# define ScreenLayoutMode_Apply ScreenLayoutMode::Apply
# define ScreenLayoutMode_Reset ScreenLayoutMode::Reset
# define ScreenLayoutMode_Attach ScreenLayoutMode::Attach
# define ScreenLayoutMode_Silent ScreenLayoutMode::Silent
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum ScreenLayoutMode_T {
    ScreenLayoutMode_Apply = ScreenLayoutMode::Apply,
    ScreenLayoutMode_Reset = ScreenLayoutMode::Reset,
    ScreenLayoutMode_Attach = ScreenLayoutMode::Attach,
    ScreenLayoutMode_Silent = ScreenLayoutMode::Silent,
    ScreenLayoutMode_32BitHack = 0x7fffffff
} ScreenLayoutMode_T;
# ifdef AssertCompileSize
AssertCompileSize(ScreenLayoutMode_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(524a8f9d-4b86-4b51-877d-1aa27c4ebeac),
    scriptable
]
interface NetworkAttachmentType
{
    const PRUint32 Null = 0;
    const PRUint32 NAT = 1;
    const PRUint32 Bridged = 2;
    const PRUint32 Internal = 3;
    const PRUint32 HostOnly = 4;
    const PRUint32 Generic = 5;
    const PRUint32 NATNetwork = 6;
    const PRUint32 Cloud = 7;
};


/* IDL typedef for enum NetworkAttachmentType and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 NetworkAttachmentType_T;
%{C++
# define NetworkAttachmentType_Null NetworkAttachmentType::Null
# define NetworkAttachmentType_NAT NetworkAttachmentType::NAT
# define NetworkAttachmentType_Bridged NetworkAttachmentType::Bridged
# define NetworkAttachmentType_Internal NetworkAttachmentType::Internal
# define NetworkAttachmentType_HostOnly NetworkAttachmentType::HostOnly
# define NetworkAttachmentType_Generic NetworkAttachmentType::Generic
# define NetworkAttachmentType_NATNetwork NetworkAttachmentType::NATNetwork
# define NetworkAttachmentType_Cloud NetworkAttachmentType::Cloud
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum NetworkAttachmentType_T {
    NetworkAttachmentType_Null = NetworkAttachmentType::Null,
    NetworkAttachmentType_NAT = NetworkAttachmentType::NAT,
    NetworkAttachmentType_Bridged = NetworkAttachmentType::Bridged,
    NetworkAttachmentType_Internal = NetworkAttachmentType::Internal,
    NetworkAttachmentType_HostOnly = NetworkAttachmentType::HostOnly,
    NetworkAttachmentType_Generic = NetworkAttachmentType::Generic,
    NetworkAttachmentType_NATNetwork = NetworkAttachmentType::NATNetwork,
    NetworkAttachmentType_Cloud = NetworkAttachmentType::Cloud,
    NetworkAttachmentType_32BitHack = 0x7fffffff
} NetworkAttachmentType_T;
# ifdef AssertCompileSize
AssertCompileSize(NetworkAttachmentType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(3c2281e4-d952-4e87-8c7d-24379cb6a81c),
    scriptable
]
interface NetworkAdapterType
{
    const PRUint32 Null = 0;
    const PRUint32 Am79C970A = 1;
    const PRUint32 Am79C973 = 2;
    const PRUint32 I82540EM = 3;
    const PRUint32 I82543GC = 4;
    const PRUint32 I82545EM = 5;
    const PRUint32 Virtio = 6;
    const PRUint32 Am79C960 = 7;
    const PRUint32 Virtio_1_0 = 8;
};


/* IDL typedef for enum NetworkAdapterType and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 NetworkAdapterType_T;
%{C++
# define NetworkAdapterType_Null NetworkAdapterType::Null
# define NetworkAdapterType_Am79C970A NetworkAdapterType::Am79C970A
# define NetworkAdapterType_Am79C973 NetworkAdapterType::Am79C973
# define NetworkAdapterType_I82540EM NetworkAdapterType::I82540EM
# define NetworkAdapterType_I82543GC NetworkAdapterType::I82543GC
# define NetworkAdapterType_I82545EM NetworkAdapterType::I82545EM
# define NetworkAdapterType_Virtio NetworkAdapterType::Virtio
# define NetworkAdapterType_Am79C960 NetworkAdapterType::Am79C960
# define NetworkAdapterType_Virtio_1_0 NetworkAdapterType::Virtio_1_0
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum NetworkAdapterType_T {
    NetworkAdapterType_Null = NetworkAdapterType::Null,
    NetworkAdapterType_Am79C970A = NetworkAdapterType::Am79C970A,
    NetworkAdapterType_Am79C973 = NetworkAdapterType::Am79C973,
    NetworkAdapterType_I82540EM = NetworkAdapterType::I82540EM,
    NetworkAdapterType_I82543GC = NetworkAdapterType::I82543GC,
    NetworkAdapterType_I82545EM = NetworkAdapterType::I82545EM,
    NetworkAdapterType_Virtio = NetworkAdapterType::Virtio,
    NetworkAdapterType_Am79C960 = NetworkAdapterType::Am79C960,
    NetworkAdapterType_Virtio_1_0 = NetworkAdapterType::Virtio_1_0,
    NetworkAdapterType_32BitHack = 0x7fffffff
} NetworkAdapterType_T;
# ifdef AssertCompileSize
AssertCompileSize(NetworkAdapterType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(c963768a-376f-4c85-8d84-d8ced4b7269e),
    scriptable
]
interface NetworkAdapterPromiscModePolicy
{
    const PRUint32 Deny = 1;
    const PRUint32 AllowNetwork = 2;
    const PRUint32 AllowAll = 3;
};


/* IDL typedef for enum NetworkAdapterPromiscModePolicy and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 NetworkAdapterPromiscModePolicy_T;
%{C++
# define NetworkAdapterPromiscModePolicy_Deny NetworkAdapterPromiscModePolicy::Deny
# define NetworkAdapterPromiscModePolicy_AllowNetwork NetworkAdapterPromiscModePolicy::AllowNetwork
# define NetworkAdapterPromiscModePolicy_AllowAll NetworkAdapterPromiscModePolicy::AllowAll
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum NetworkAdapterPromiscModePolicy_T {
    NetworkAdapterPromiscModePolicy_Deny = NetworkAdapterPromiscModePolicy::Deny,
    NetworkAdapterPromiscModePolicy_AllowNetwork = NetworkAdapterPromiscModePolicy::AllowNetwork,
    NetworkAdapterPromiscModePolicy_AllowAll = NetworkAdapterPromiscModePolicy::AllowAll,
    NetworkAdapterPromiscModePolicy_32BitHack = 0x7fffffff
} NetworkAdapterPromiscModePolicy_T;
# ifdef AssertCompileSize
AssertCompileSize(NetworkAdapterPromiscModePolicy_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(7485fcfd-d603-470a-87af-26d33beb7de9),
    scriptable
]
interface PortMode
{
    const PRUint32 Disconnected = 0;
    const PRUint32 HostPipe = 1;
    const PRUint32 HostDevice = 2;
    const PRUint32 RawFile = 3;
    const PRUint32 TCP = 4;
};


/* IDL typedef for enum PortMode and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 PortMode_T;
%{C++
# define PortMode_Disconnected PortMode::Disconnected
# define PortMode_HostPipe PortMode::HostPipe
# define PortMode_HostDevice PortMode::HostDevice
# define PortMode_RawFile PortMode::RawFile
# define PortMode_TCP PortMode::TCP
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum PortMode_T {
    PortMode_Disconnected = PortMode::Disconnected,
    PortMode_HostPipe = PortMode::HostPipe,
    PortMode_HostDevice = PortMode::HostDevice,
    PortMode_RawFile = PortMode::RawFile,
    PortMode_TCP = PortMode::TCP,
    PortMode_32BitHack = 0x7fffffff
} PortMode_T;
# ifdef AssertCompileSize
AssertCompileSize(PortMode_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(c8899d39-0b90-4265-9d02-1e38bd4d1b39),
    scriptable
]
interface UartType
{
    const PRUint32 U16450 = 0;
    const PRUint32 U16550A = 1;
    const PRUint32 U16750 = 2;
};


/* IDL typedef for enum UartType and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 UartType_T;
%{C++
# define UartType_U16450 UartType::U16450
# define UartType_U16550A UartType::U16550A
# define UartType_U16750 UartType::U16750
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum UartType_T {
    UartType_U16450 = UartType::U16450,
    UartType_U16550A = UartType::U16550A,
    UartType_U16750 = UartType::U16750,
    UartType_32BitHack = 0x7fffffff
} UartType_T;
# ifdef AssertCompileSize
AssertCompileSize(UartType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(56029577-31f7-44d2-3334-7ecbf95294b6),
    scriptable
]
interface VMExecutionEngine
{
    const PRUint32 NotSet = 0;
    const PRUint32 RawMode = 1;
    const PRUint32 HwVirt = 2;
    const PRUint32 NativeApi = 3;
};


/* IDL typedef for enum VMExecutionEngine and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 VMExecutionEngine_T;
%{C++
# define VMExecutionEngine_NotSet VMExecutionEngine::NotSet
# define VMExecutionEngine_RawMode VMExecutionEngine::RawMode
# define VMExecutionEngine_HwVirt VMExecutionEngine::HwVirt
# define VMExecutionEngine_NativeApi VMExecutionEngine::NativeApi
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum VMExecutionEngine_T {
    VMExecutionEngine_NotSet = VMExecutionEngine::NotSet,
    VMExecutionEngine_RawMode = VMExecutionEngine::RawMode,
    VMExecutionEngine_HwVirt = VMExecutionEngine::HwVirt,
    VMExecutionEngine_NativeApi = VMExecutionEngine::NativeApi,
    VMExecutionEngine_32BitHack = 0x7fffffff
} VMExecutionEngine_T;
# ifdef AssertCompileSize
AssertCompileSize(VMExecutionEngine_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(8fdd1c6a-5412-41da-ab07-7baed7d6e18e),
    scriptable
]
interface USBControllerType
{
    const PRUint32 Null = 0;
    const PRUint32 OHCI = 1;
    const PRUint32 EHCI = 2;
    const PRUint32 XHCI = 3;
    const PRUint32 Last = 4;
};


/* IDL typedef for enum USBControllerType and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 USBControllerType_T;
%{C++
# define USBControllerType_Null USBControllerType::Null
# define USBControllerType_OHCI USBControllerType::OHCI
# define USBControllerType_EHCI USBControllerType::EHCI
# define USBControllerType_XHCI USBControllerType::XHCI
# define USBControllerType_Last USBControllerType::Last
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum USBControllerType_T {
    USBControllerType_Null = USBControllerType::Null,
    USBControllerType_OHCI = USBControllerType::OHCI,
    USBControllerType_EHCI = USBControllerType::EHCI,
    USBControllerType_XHCI = USBControllerType::XHCI,
    USBControllerType_Last = USBControllerType::Last,
    USBControllerType_32BitHack = 0x7fffffff
} USBControllerType_T;
# ifdef AssertCompileSize
AssertCompileSize(USBControllerType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(d2915840-ea26-4fb4-b72a-21eaf6b888ff),
    scriptable
]
interface USBConnectionSpeed
{
    const PRUint32 Null = 0;
    const PRUint32 Low = 1;
    const PRUint32 Full = 2;
    const PRUint32 High = 3;
    const PRUint32 Super = 4;
    const PRUint32 SuperPlus = 5;
};


/* IDL typedef for enum USBConnectionSpeed and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 USBConnectionSpeed_T;
%{C++
# define USBConnectionSpeed_Null USBConnectionSpeed::Null
# define USBConnectionSpeed_Low USBConnectionSpeed::Low
# define USBConnectionSpeed_Full USBConnectionSpeed::Full
# define USBConnectionSpeed_High USBConnectionSpeed::High
# define USBConnectionSpeed_Super USBConnectionSpeed::Super
# define USBConnectionSpeed_SuperPlus USBConnectionSpeed::SuperPlus
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum USBConnectionSpeed_T {
    USBConnectionSpeed_Null = USBConnectionSpeed::Null,
    USBConnectionSpeed_Low = USBConnectionSpeed::Low,
    USBConnectionSpeed_Full = USBConnectionSpeed::Full,
    USBConnectionSpeed_High = USBConnectionSpeed::High,
    USBConnectionSpeed_Super = USBConnectionSpeed::Super,
    USBConnectionSpeed_SuperPlus = USBConnectionSpeed::SuperPlus,
    USBConnectionSpeed_32BitHack = 0x7fffffff
} USBConnectionSpeed_T;
# ifdef AssertCompileSize
AssertCompileSize(USBConnectionSpeed_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(b99a2e65-67fb-4882-82fd-f3e5e8193ab4),
    scriptable
]
interface USBDeviceState
{
    const PRUint32 NotSupported = 0;
    const PRUint32 Unavailable = 1;
    const PRUint32 Busy = 2;
    const PRUint32 Available = 3;
    const PRUint32 Held = 4;
    const PRUint32 Captured = 5;
};


/* IDL typedef for enum USBDeviceState and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 USBDeviceState_T;
%{C++
# define USBDeviceState_NotSupported USBDeviceState::NotSupported
# define USBDeviceState_Unavailable USBDeviceState::Unavailable
# define USBDeviceState_Busy USBDeviceState::Busy
# define USBDeviceState_Available USBDeviceState::Available
# define USBDeviceState_Held USBDeviceState::Held
# define USBDeviceState_Captured USBDeviceState::Captured
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum USBDeviceState_T {
    USBDeviceState_NotSupported = USBDeviceState::NotSupported,
    USBDeviceState_Unavailable = USBDeviceState::Unavailable,
    USBDeviceState_Busy = USBDeviceState::Busy,
    USBDeviceState_Available = USBDeviceState::Available,
    USBDeviceState_Held = USBDeviceState::Held,
    USBDeviceState_Captured = USBDeviceState::Captured,
    USBDeviceState_32BitHack = 0x7fffffff
} USBDeviceState_T;
# ifdef AssertCompileSize
AssertCompileSize(USBDeviceState_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(cbc30a49-2f4e-43b5-9da6-121320475933),
    scriptable
]
interface USBDeviceFilterAction
{
    const PRUint32 Null = 0;
    const PRUint32 Ignore = 1;
    const PRUint32 Hold = 2;
};


/* IDL typedef for enum USBDeviceFilterAction and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 USBDeviceFilterAction_T;
%{C++
# define USBDeviceFilterAction_Null USBDeviceFilterAction::Null
# define USBDeviceFilterAction_Ignore USBDeviceFilterAction::Ignore
# define USBDeviceFilterAction_Hold USBDeviceFilterAction::Hold
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum USBDeviceFilterAction_T {
    USBDeviceFilterAction_Null = USBDeviceFilterAction::Null,
    USBDeviceFilterAction_Ignore = USBDeviceFilterAction::Ignore,
    USBDeviceFilterAction_Hold = USBDeviceFilterAction::Hold,
    USBDeviceFilterAction_32BitHack = 0x7fffffff
} USBDeviceFilterAction_T;
# ifdef AssertCompileSize
AssertCompileSize(USBDeviceFilterAction_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(4bcc3d73-c2fe-40db-b72f-0c2ca9d68496),
    scriptable
]
interface AudioDriverType
{
    const PRUint32 Null = 0;
    const PRUint32 WinMM = 1;
    const PRUint32 OSS = 2;
    const PRUint32 ALSA = 3;
    const PRUint32 DirectSound = 4;
    const PRUint32 CoreAudio = 5;
    const PRUint32 MMPM = 6;
    const PRUint32 Pulse = 7;
    const PRUint32 SolAudio = 8;
};


/* IDL typedef for enum AudioDriverType and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 AudioDriverType_T;
%{C++
# define AudioDriverType_Null AudioDriverType::Null
# define AudioDriverType_WinMM AudioDriverType::WinMM
# define AudioDriverType_OSS AudioDriverType::OSS
# define AudioDriverType_ALSA AudioDriverType::ALSA
# define AudioDriverType_DirectSound AudioDriverType::DirectSound
# define AudioDriverType_CoreAudio AudioDriverType::CoreAudio
# define AudioDriverType_MMPM AudioDriverType::MMPM
# define AudioDriverType_Pulse AudioDriverType::Pulse
# define AudioDriverType_SolAudio AudioDriverType::SolAudio
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum AudioDriverType_T {
    AudioDriverType_Null = AudioDriverType::Null,
    AudioDriverType_WinMM = AudioDriverType::WinMM,
    AudioDriverType_OSS = AudioDriverType::OSS,
    AudioDriverType_ALSA = AudioDriverType::ALSA,
    AudioDriverType_DirectSound = AudioDriverType::DirectSound,
    AudioDriverType_CoreAudio = AudioDriverType::CoreAudio,
    AudioDriverType_MMPM = AudioDriverType::MMPM,
    AudioDriverType_Pulse = AudioDriverType::Pulse,
    AudioDriverType_SolAudio = AudioDriverType::SolAudio,
    AudioDriverType_32BitHack = 0x7fffffff
} AudioDriverType_T;
# ifdef AssertCompileSize
AssertCompileSize(AudioDriverType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(7afd395c-42c3-444e-8788-3ce80292f36c),
    scriptable
]
interface AudioControllerType
{
    const PRUint32 AC97 = 0;
    const PRUint32 SB16 = 1;
    const PRUint32 HDA = 2;
};


/* IDL typedef for enum AudioControllerType and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 AudioControllerType_T;
%{C++
# define AudioControllerType_AC97 AudioControllerType::AC97
# define AudioControllerType_SB16 AudioControllerType::SB16
# define AudioControllerType_HDA AudioControllerType::HDA
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum AudioControllerType_T {
    AudioControllerType_AC97 = AudioControllerType::AC97,
    AudioControllerType_SB16 = AudioControllerType::SB16,
    AudioControllerType_HDA = AudioControllerType::HDA,
    AudioControllerType_32BitHack = 0x7fffffff
} AudioControllerType_T;
# ifdef AssertCompileSize
AssertCompileSize(AudioControllerType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(7b406301-f520-420c-9805-8ce11c086370),
    scriptable
]
interface AudioCodecType
{
    const PRUint32 Null = 0;
    const PRUint32 SB16 = 1;
    const PRUint32 STAC9700 = 2;
    const PRUint32 AD1980 = 3;
    const PRUint32 STAC9221 = 4;
};


/* IDL typedef for enum AudioCodecType and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 AudioCodecType_T;
%{C++
# define AudioCodecType_Null AudioCodecType::Null
# define AudioCodecType_SB16 AudioCodecType::SB16
# define AudioCodecType_STAC9700 AudioCodecType::STAC9700
# define AudioCodecType_AD1980 AudioCodecType::AD1980
# define AudioCodecType_STAC9221 AudioCodecType::STAC9221
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum AudioCodecType_T {
    AudioCodecType_Null = AudioCodecType::Null,
    AudioCodecType_SB16 = AudioCodecType::SB16,
    AudioCodecType_STAC9700 = AudioCodecType::STAC9700,
    AudioCodecType_AD1980 = AudioCodecType::AD1980,
    AudioCodecType_STAC9221 = AudioCodecType::STAC9221,
    AudioCodecType_32BitHack = 0x7fffffff
} AudioCodecType_T;
# ifdef AssertCompileSize
AssertCompileSize(AudioCodecType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(7eef6ef6-98c2-4dc2-ab35-10d2b292028d),
    scriptable
]
interface AuthType
{
    const PRUint32 Null = 0;
    const PRUint32 External = 1;
    const PRUint32 Guest = 2;
};


/* IDL typedef for enum AuthType and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 AuthType_T;
%{C++
# define AuthType_Null AuthType::Null
# define AuthType_External AuthType::External
# define AuthType_Guest AuthType::Guest
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum AuthType_T {
    AuthType_Null = AuthType::Null,
    AuthType_External = AuthType::External,
    AuthType_Guest = AuthType::Guest,
    AuthType_32BitHack = 0x7fffffff
} AuthType_T;
# ifdef AssertCompileSize
AssertCompileSize(AuthType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(e7e8e097-299d-4e98-8bbc-c31c2d47d0cc),
    scriptable
]
interface Reason
{
    const PRUint32 Unspecified = 0;
    const PRUint32 HostSuspend = 1;
    const PRUint32 HostResume = 2;
    const PRUint32 HostBatteryLow = 3;
    const PRUint32 Snapshot = 4;
};


/* IDL typedef for enum Reason and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 Reason_T;
%{C++
# define Reason_Unspecified Reason::Unspecified
# define Reason_HostSuspend Reason::HostSuspend
# define Reason_HostResume Reason::HostResume
# define Reason_HostBatteryLow Reason::HostBatteryLow
# define Reason_Snapshot Reason::Snapshot
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum Reason_T {
    Reason_Unspecified = Reason::Unspecified,
    Reason_HostSuspend = Reason::HostSuspend,
    Reason_HostResume = Reason::HostResume,
    Reason_HostBatteryLow = Reason::HostBatteryLow,
    Reason_Snapshot = Reason::Snapshot,
    Reason_32BitHack = 0x7fffffff
} Reason_T;
# ifdef AssertCompileSize
AssertCompileSize(Reason_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(f9510869-7d07-46ba-96a6-6728fbf4adee),
    scriptable
]
interface StorageBus
{
    const PRUint32 Null = 0;
    const PRUint32 IDE = 1;
    const PRUint32 SATA = 2;
    const PRUint32 SCSI = 3;
    const PRUint32 Floppy = 4;
    const PRUint32 SAS = 5;
    const PRUint32 USB = 6;
    const PRUint32 PCIe = 7;
    const PRUint32 VirtioSCSI = 8;
};


/* IDL typedef for enum StorageBus and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 StorageBus_T;
%{C++
# define StorageBus_Null StorageBus::Null
# define StorageBus_IDE StorageBus::IDE
# define StorageBus_SATA StorageBus::SATA
# define StorageBus_SCSI StorageBus::SCSI
# define StorageBus_Floppy StorageBus::Floppy
# define StorageBus_SAS StorageBus::SAS
# define StorageBus_USB StorageBus::USB
# define StorageBus_PCIe StorageBus::PCIe
# define StorageBus_VirtioSCSI StorageBus::VirtioSCSI
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum StorageBus_T {
    StorageBus_Null = StorageBus::Null,
    StorageBus_IDE = StorageBus::IDE,
    StorageBus_SATA = StorageBus::SATA,
    StorageBus_SCSI = StorageBus::SCSI,
    StorageBus_Floppy = StorageBus::Floppy,
    StorageBus_SAS = StorageBus::SAS,
    StorageBus_USB = StorageBus::USB,
    StorageBus_PCIe = StorageBus::PCIe,
    StorageBus_VirtioSCSI = StorageBus::VirtioSCSI,
    StorageBus_32BitHack = 0x7fffffff
} StorageBus_T;
# ifdef AssertCompileSize
AssertCompileSize(StorageBus_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(a77d457d-66a3-4368-b24c-293d0f562a9f),
    scriptable
]
interface StorageControllerType
{
    const PRUint32 Null = 0;
    const PRUint32 LsiLogic = 1;
    const PRUint32 BusLogic = 2;
    const PRUint32 IntelAhci = 3;
    const PRUint32 PIIX3 = 4;
    const PRUint32 PIIX4 = 5;
    const PRUint32 ICH6 = 6;
    const PRUint32 I82078 = 7;
    const PRUint32 LsiLogicSas = 8;
    const PRUint32 USB = 9;
    const PRUint32 NVMe = 10;
    const PRUint32 VirtioSCSI = 11;
};


/* IDL typedef for enum StorageControllerType and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 StorageControllerType_T;
%{C++
# define StorageControllerType_Null StorageControllerType::Null
# define StorageControllerType_LsiLogic StorageControllerType::LsiLogic
# define StorageControllerType_BusLogic StorageControllerType::BusLogic
# define StorageControllerType_IntelAhci StorageControllerType::IntelAhci
# define StorageControllerType_PIIX3 StorageControllerType::PIIX3
# define StorageControllerType_PIIX4 StorageControllerType::PIIX4
# define StorageControllerType_ICH6 StorageControllerType::ICH6
# define StorageControllerType_I82078 StorageControllerType::I82078
# define StorageControllerType_LsiLogicSas StorageControllerType::LsiLogicSas
# define StorageControllerType_USB StorageControllerType::USB
# define StorageControllerType_NVMe StorageControllerType::NVMe
# define StorageControllerType_VirtioSCSI StorageControllerType::VirtioSCSI
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum StorageControllerType_T {
    StorageControllerType_Null = StorageControllerType::Null,
    StorageControllerType_LsiLogic = StorageControllerType::LsiLogic,
    StorageControllerType_BusLogic = StorageControllerType::BusLogic,
    StorageControllerType_IntelAhci = StorageControllerType::IntelAhci,
    StorageControllerType_PIIX3 = StorageControllerType::PIIX3,
    StorageControllerType_PIIX4 = StorageControllerType::PIIX4,
    StorageControllerType_ICH6 = StorageControllerType::ICH6,
    StorageControllerType_I82078 = StorageControllerType::I82078,
    StorageControllerType_LsiLogicSas = StorageControllerType::LsiLogicSas,
    StorageControllerType_USB = StorageControllerType::USB,
    StorageControllerType_NVMe = StorageControllerType::NVMe,
    StorageControllerType_VirtioSCSI = StorageControllerType::VirtioSCSI,
    StorageControllerType_32BitHack = 0x7fffffff
} StorageControllerType_T;
# ifdef AssertCompileSize
AssertCompileSize(StorageControllerType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(8b4096a8-a7c3-4d3b-bbb1-05a0a51ec394),
    scriptable
]
interface ChipsetType
{
    const PRUint32 Null = 0;
    const PRUint32 PIIX3 = 1;
    const PRUint32 ICH9 = 2;
};


/* IDL typedef for enum ChipsetType and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 ChipsetType_T;
%{C++
# define ChipsetType_Null ChipsetType::Null
# define ChipsetType_PIIX3 ChipsetType::PIIX3
# define ChipsetType_ICH9 ChipsetType::ICH9
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum ChipsetType_T {
    ChipsetType_Null = ChipsetType::Null,
    ChipsetType_PIIX3 = ChipsetType::PIIX3,
    ChipsetType_ICH9 = ChipsetType::ICH9,
    ChipsetType_32BitHack = 0x7fffffff
} ChipsetType_T;
# ifdef AssertCompileSize
AssertCompileSize(ChipsetType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(67772168-50d9-11df-9669-7fb714ee4fa1),
    scriptable
]
interface NATAliasMode
{
    const PRUint32 AliasLog = 0x1;
    const PRUint32 AliasProxyOnly = 0x02;
    const PRUint32 AliasUseSamePorts = 0x04;
};


/* IDL typedef for enum NATAliasMode and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 NATAliasMode_T;
%{C++
# define NATAliasMode_AliasLog NATAliasMode::AliasLog
# define NATAliasMode_AliasProxyOnly NATAliasMode::AliasProxyOnly
# define NATAliasMode_AliasUseSamePorts NATAliasMode::AliasUseSamePorts
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum NATAliasMode_T {
    NATAliasMode_AliasLog = NATAliasMode::AliasLog,
    NATAliasMode_AliasProxyOnly = NATAliasMode::AliasProxyOnly,
    NATAliasMode_AliasUseSamePorts = NATAliasMode::AliasUseSamePorts,
    NATAliasMode_32BitHack = 0x7fffffff
} NATAliasMode_T;
# ifdef AssertCompileSize
AssertCompileSize(NATAliasMode_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(e90164be-eb03-11de-94af-fff9b1c1b19f),
    scriptable
]
interface NATProtocol
{
    const PRUint32 UDP = 0;
    const PRUint32 TCP = 1;
};


/* IDL typedef for enum NATProtocol and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 NATProtocol_T;
%{C++
# define NATProtocol_UDP NATProtocol::UDP
# define NATProtocol_TCP NATProtocol::TCP
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum NATProtocol_T {
    NATProtocol_UDP = NATProtocol::UDP,
    NATProtocol_TCP = NATProtocol::TCP,
    NATProtocol_32BitHack = 0x7fffffff
} NATProtocol_T;
# ifdef AssertCompileSize
AssertCompileSize(NATProtocol_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(1d92b67d-dc69-4be9-ad4c-93a01e1e0c8e),
    scriptable
]
interface BandwidthGroupType
{
    const PRUint32 Null = 0;
    const PRUint32 Disk = 1;
    const PRUint32 Network = 2;
};


/* IDL typedef for enum BandwidthGroupType and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 BandwidthGroupType_T;
%{C++
# define BandwidthGroupType_Null BandwidthGroupType::Null
# define BandwidthGroupType_Disk BandwidthGroupType::Disk
# define BandwidthGroupType_Network BandwidthGroupType::Network
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum BandwidthGroupType_T {
    BandwidthGroupType_Null = BandwidthGroupType::Null,
    BandwidthGroupType_Disk = BandwidthGroupType::Disk,
    BandwidthGroupType_Network = BandwidthGroupType::Network,
    BandwidthGroupType_32BitHack = 0x7fffffff
} BandwidthGroupType_T;
# ifdef AssertCompileSize
AssertCompileSize(BandwidthGroupType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(d5d15e38-808d-11e9-aaac-4bc5d973ca37),
    scriptable
]
interface VBoxEventType
{
    const PRUint32 Invalid = 0;
    const PRUint32 Any = 1;
    const PRUint32 Vetoable = 2;
    const PRUint32 MachineEvent = 3;
    const PRUint32 SnapshotEvent = 4;
    const PRUint32 InputEvent = 5;
    const PRUint32 LastWildcard = 31;
    const PRUint32 OnMachineStateChanged = 32;
    const PRUint32 OnMachineDataChanged = 33;
    const PRUint32 OnExtraDataChanged = 34;
    const PRUint32 OnExtraDataCanChange = 35;
    const PRUint32 OnMediumRegistered = 36;
    const PRUint32 OnMachineRegistered = 37;
    const PRUint32 OnSessionStateChanged = 38;
    const PRUint32 OnSnapshotTaken = 39;
    const PRUint32 OnSnapshotDeleted = 40;
    const PRUint32 OnSnapshotChanged = 41;
    const PRUint32 OnGuestPropertyChanged = 42;
    const PRUint32 OnMousePointerShapeChanged = 43;
    const PRUint32 OnMouseCapabilityChanged = 44;
    const PRUint32 OnKeyboardLedsChanged = 45;
    const PRUint32 OnStateChanged = 46;
    const PRUint32 OnAdditionsStateChanged = 47;
    const PRUint32 OnNetworkAdapterChanged = 48;
    const PRUint32 OnSerialPortChanged = 49;
    const PRUint32 OnParallelPortChanged = 50;
    const PRUint32 OnStorageControllerChanged = 51;
    const PRUint32 OnMediumChanged = 52;
    const PRUint32 OnVRDEServerChanged = 53;
    const PRUint32 OnUSBControllerChanged = 54;
    const PRUint32 OnUSBDeviceStateChanged = 55;
    const PRUint32 OnSharedFolderChanged = 56;
    const PRUint32 OnRuntimeError = 57;
    const PRUint32 OnCanShowWindow = 58;
    const PRUint32 OnShowWindow = 59;
    const PRUint32 OnCPUChanged = 60;
    const PRUint32 OnVRDEServerInfoChanged = 61;
    const PRUint32 OnEventSourceChanged = 62;
    const PRUint32 OnCPUExecutionCapChanged = 63;
    const PRUint32 OnGuestKeyboard = 64;
    const PRUint32 OnGuestMouse = 65;
    const PRUint32 OnNATRedirect = 66;
    const PRUint32 OnHostPCIDevicePlug = 67;
    const PRUint32 OnVBoxSVCAvailabilityChanged = 68;
    const PRUint32 OnBandwidthGroupChanged = 69;
    const PRUint32 OnGuestMonitorChanged = 70;
    const PRUint32 OnStorageDeviceChanged = 71;
    const PRUint32 OnClipboardModeChanged = 72;
    const PRUint32 OnDnDModeChanged = 73;
    const PRUint32 OnNATNetworkChanged = 74;
    const PRUint32 OnNATNetworkStartStop = 75;
    const PRUint32 OnNATNetworkAlter = 76;
    const PRUint32 OnNATNetworkCreationDeletion = 77;
    const PRUint32 OnNATNetworkSetting = 78;
    const PRUint32 OnNATNetworkPortForward = 79;
    const PRUint32 OnGuestSessionStateChanged = 80;
    const PRUint32 OnGuestSessionRegistered = 81;
    const PRUint32 OnGuestProcessRegistered = 82;
    const PRUint32 OnGuestProcessStateChanged = 83;
    const PRUint32 OnGuestProcessInputNotify = 84;
    const PRUint32 OnGuestProcessOutput = 85;
    const PRUint32 OnGuestFileRegistered = 86;
    const PRUint32 OnGuestFileStateChanged = 87;
    const PRUint32 OnGuestFileOffsetChanged = 88;
    const PRUint32 OnGuestFileRead = 89;
    const PRUint32 OnGuestFileWrite = 90;
    const PRUint32 OnRecordingChanged = 91;
    const PRUint32 OnGuestUserStateChanged = 92;
    const PRUint32 OnGuestMultiTouch = 93;
    const PRUint32 OnHostNameResolutionConfigurationChange = 94;
    const PRUint32 OnSnapshotRestored = 95;
    const PRUint32 OnMediumConfigChanged = 96;
    const PRUint32 OnAudioAdapterChanged = 97;
    const PRUint32 OnProgressPercentageChanged = 98;
    const PRUint32 OnProgressTaskCompleted = 99;
    const PRUint32 OnCursorPositionChanged = 100;
    const PRUint32 OnGuestAdditionsStatusChanged = 101;
    const PRUint32 OnGuestMonitorInfoChanged = 102;
    const PRUint32 OnGuestFileSizeChanged = 103;
    const PRUint32 OnClipboardFileTransferModeChanged = 104;
    const PRUint32 Last = 105;
};


/* IDL typedef for enum VBoxEventType and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 VBoxEventType_T;
%{C++
# define VBoxEventType_Invalid VBoxEventType::Invalid
# define VBoxEventType_Any VBoxEventType::Any
# define VBoxEventType_Vetoable VBoxEventType::Vetoable
# define VBoxEventType_MachineEvent VBoxEventType::MachineEvent
# define VBoxEventType_SnapshotEvent VBoxEventType::SnapshotEvent
# define VBoxEventType_InputEvent VBoxEventType::InputEvent
# define VBoxEventType_LastWildcard VBoxEventType::LastWildcard
# define VBoxEventType_OnMachineStateChanged VBoxEventType::OnMachineStateChanged
# define VBoxEventType_OnMachineDataChanged VBoxEventType::OnMachineDataChanged
# define VBoxEventType_OnExtraDataChanged VBoxEventType::OnExtraDataChanged
# define VBoxEventType_OnExtraDataCanChange VBoxEventType::OnExtraDataCanChange
# define VBoxEventType_OnMediumRegistered VBoxEventType::OnMediumRegistered
# define VBoxEventType_OnMachineRegistered VBoxEventType::OnMachineRegistered
# define VBoxEventType_OnSessionStateChanged VBoxEventType::OnSessionStateChanged
# define VBoxEventType_OnSnapshotTaken VBoxEventType::OnSnapshotTaken
# define VBoxEventType_OnSnapshotDeleted VBoxEventType::OnSnapshotDeleted
# define VBoxEventType_OnSnapshotChanged VBoxEventType::OnSnapshotChanged
# define VBoxEventType_OnGuestPropertyChanged VBoxEventType::OnGuestPropertyChanged
# define VBoxEventType_OnMousePointerShapeChanged VBoxEventType::OnMousePointerShapeChanged
# define VBoxEventType_OnMouseCapabilityChanged VBoxEventType::OnMouseCapabilityChanged
# define VBoxEventType_OnKeyboardLedsChanged VBoxEventType::OnKeyboardLedsChanged
# define VBoxEventType_OnStateChanged VBoxEventType::OnStateChanged
# define VBoxEventType_OnAdditionsStateChanged VBoxEventType::OnAdditionsStateChanged
# define VBoxEventType_OnNetworkAdapterChanged VBoxEventType::OnNetworkAdapterChanged
# define VBoxEventType_OnSerialPortChanged VBoxEventType::OnSerialPortChanged
# define VBoxEventType_OnParallelPortChanged VBoxEventType::OnParallelPortChanged
# define VBoxEventType_OnStorageControllerChanged VBoxEventType::OnStorageControllerChanged
# define VBoxEventType_OnMediumChanged VBoxEventType::OnMediumChanged
# define VBoxEventType_OnVRDEServerChanged VBoxEventType::OnVRDEServerChanged
# define VBoxEventType_OnUSBControllerChanged VBoxEventType::OnUSBControllerChanged
# define VBoxEventType_OnUSBDeviceStateChanged VBoxEventType::OnUSBDeviceStateChanged
# define VBoxEventType_OnSharedFolderChanged VBoxEventType::OnSharedFolderChanged
# define VBoxEventType_OnRuntimeError VBoxEventType::OnRuntimeError
# define VBoxEventType_OnCanShowWindow VBoxEventType::OnCanShowWindow
# define VBoxEventType_OnShowWindow VBoxEventType::OnShowWindow
# define VBoxEventType_OnCPUChanged VBoxEventType::OnCPUChanged
# define VBoxEventType_OnVRDEServerInfoChanged VBoxEventType::OnVRDEServerInfoChanged
# define VBoxEventType_OnEventSourceChanged VBoxEventType::OnEventSourceChanged
# define VBoxEventType_OnCPUExecutionCapChanged VBoxEventType::OnCPUExecutionCapChanged
# define VBoxEventType_OnGuestKeyboard VBoxEventType::OnGuestKeyboard
# define VBoxEventType_OnGuestMouse VBoxEventType::OnGuestMouse
# define VBoxEventType_OnNATRedirect VBoxEventType::OnNATRedirect
# define VBoxEventType_OnHostPCIDevicePlug VBoxEventType::OnHostPCIDevicePlug
# define VBoxEventType_OnVBoxSVCAvailabilityChanged VBoxEventType::OnVBoxSVCAvailabilityChanged
# define VBoxEventType_OnBandwidthGroupChanged VBoxEventType::OnBandwidthGroupChanged
# define VBoxEventType_OnGuestMonitorChanged VBoxEventType::OnGuestMonitorChanged
# define VBoxEventType_OnStorageDeviceChanged VBoxEventType::OnStorageDeviceChanged
# define VBoxEventType_OnClipboardModeChanged VBoxEventType::OnClipboardModeChanged
# define VBoxEventType_OnDnDModeChanged VBoxEventType::OnDnDModeChanged
# define VBoxEventType_OnNATNetworkChanged VBoxEventType::OnNATNetworkChanged
# define VBoxEventType_OnNATNetworkStartStop VBoxEventType::OnNATNetworkStartStop
# define VBoxEventType_OnNATNetworkAlter VBoxEventType::OnNATNetworkAlter
# define VBoxEventType_OnNATNetworkCreationDeletion VBoxEventType::OnNATNetworkCreationDeletion
# define VBoxEventType_OnNATNetworkSetting VBoxEventType::OnNATNetworkSetting
# define VBoxEventType_OnNATNetworkPortForward VBoxEventType::OnNATNetworkPortForward
# define VBoxEventType_OnGuestSessionStateChanged VBoxEventType::OnGuestSessionStateChanged
# define VBoxEventType_OnGuestSessionRegistered VBoxEventType::OnGuestSessionRegistered
# define VBoxEventType_OnGuestProcessRegistered VBoxEventType::OnGuestProcessRegistered
# define VBoxEventType_OnGuestProcessStateChanged VBoxEventType::OnGuestProcessStateChanged
# define VBoxEventType_OnGuestProcessInputNotify VBoxEventType::OnGuestProcessInputNotify
# define VBoxEventType_OnGuestProcessOutput VBoxEventType::OnGuestProcessOutput
# define VBoxEventType_OnGuestFileRegistered VBoxEventType::OnGuestFileRegistered
# define VBoxEventType_OnGuestFileStateChanged VBoxEventType::OnGuestFileStateChanged
# define VBoxEventType_OnGuestFileOffsetChanged VBoxEventType::OnGuestFileOffsetChanged
# define VBoxEventType_OnGuestFileRead VBoxEventType::OnGuestFileRead
# define VBoxEventType_OnGuestFileWrite VBoxEventType::OnGuestFileWrite
# define VBoxEventType_OnRecordingChanged VBoxEventType::OnRecordingChanged
# define VBoxEventType_OnGuestUserStateChanged VBoxEventType::OnGuestUserStateChanged
# define VBoxEventType_OnGuestMultiTouch VBoxEventType::OnGuestMultiTouch
# define VBoxEventType_OnHostNameResolutionConfigurationChange VBoxEventType::OnHostNameResolutionConfigurationChange
# define VBoxEventType_OnSnapshotRestored VBoxEventType::OnSnapshotRestored
# define VBoxEventType_OnMediumConfigChanged VBoxEventType::OnMediumConfigChanged
# define VBoxEventType_OnAudioAdapterChanged VBoxEventType::OnAudioAdapterChanged
# define VBoxEventType_OnProgressPercentageChanged VBoxEventType::OnProgressPercentageChanged
# define VBoxEventType_OnProgressTaskCompleted VBoxEventType::OnProgressTaskCompleted
# define VBoxEventType_OnCursorPositionChanged VBoxEventType::OnCursorPositionChanged
# define VBoxEventType_OnGuestAdditionsStatusChanged VBoxEventType::OnGuestAdditionsStatusChanged
# define VBoxEventType_OnGuestMonitorInfoChanged VBoxEventType::OnGuestMonitorInfoChanged
# define VBoxEventType_OnGuestFileSizeChanged VBoxEventType::OnGuestFileSizeChanged
# define VBoxEventType_OnClipboardFileTransferModeChanged VBoxEventType::OnClipboardFileTransferModeChanged
# define VBoxEventType_Last VBoxEventType::Last
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum VBoxEventType_T {
    VBoxEventType_Invalid = VBoxEventType::Invalid,
    VBoxEventType_Any = VBoxEventType::Any,
    VBoxEventType_Vetoable = VBoxEventType::Vetoable,
    VBoxEventType_MachineEvent = VBoxEventType::MachineEvent,
    VBoxEventType_SnapshotEvent = VBoxEventType::SnapshotEvent,
    VBoxEventType_InputEvent = VBoxEventType::InputEvent,
    VBoxEventType_LastWildcard = VBoxEventType::LastWildcard,
    VBoxEventType_OnMachineStateChanged = VBoxEventType::OnMachineStateChanged,
    VBoxEventType_OnMachineDataChanged = VBoxEventType::OnMachineDataChanged,
    VBoxEventType_OnExtraDataChanged = VBoxEventType::OnExtraDataChanged,
    VBoxEventType_OnExtraDataCanChange = VBoxEventType::OnExtraDataCanChange,
    VBoxEventType_OnMediumRegistered = VBoxEventType::OnMediumRegistered,
    VBoxEventType_OnMachineRegistered = VBoxEventType::OnMachineRegistered,
    VBoxEventType_OnSessionStateChanged = VBoxEventType::OnSessionStateChanged,
    VBoxEventType_OnSnapshotTaken = VBoxEventType::OnSnapshotTaken,
    VBoxEventType_OnSnapshotDeleted = VBoxEventType::OnSnapshotDeleted,
    VBoxEventType_OnSnapshotChanged = VBoxEventType::OnSnapshotChanged,
    VBoxEventType_OnGuestPropertyChanged = VBoxEventType::OnGuestPropertyChanged,
    VBoxEventType_OnMousePointerShapeChanged = VBoxEventType::OnMousePointerShapeChanged,
    VBoxEventType_OnMouseCapabilityChanged = VBoxEventType::OnMouseCapabilityChanged,
    VBoxEventType_OnKeyboardLedsChanged = VBoxEventType::OnKeyboardLedsChanged,
    VBoxEventType_OnStateChanged = VBoxEventType::OnStateChanged,
    VBoxEventType_OnAdditionsStateChanged = VBoxEventType::OnAdditionsStateChanged,
    VBoxEventType_OnNetworkAdapterChanged = VBoxEventType::OnNetworkAdapterChanged,
    VBoxEventType_OnSerialPortChanged = VBoxEventType::OnSerialPortChanged,
    VBoxEventType_OnParallelPortChanged = VBoxEventType::OnParallelPortChanged,
    VBoxEventType_OnStorageControllerChanged = VBoxEventType::OnStorageControllerChanged,
    VBoxEventType_OnMediumChanged = VBoxEventType::OnMediumChanged,
    VBoxEventType_OnVRDEServerChanged = VBoxEventType::OnVRDEServerChanged,
    VBoxEventType_OnUSBControllerChanged = VBoxEventType::OnUSBControllerChanged,
    VBoxEventType_OnUSBDeviceStateChanged = VBoxEventType::OnUSBDeviceStateChanged,
    VBoxEventType_OnSharedFolderChanged = VBoxEventType::OnSharedFolderChanged,
    VBoxEventType_OnRuntimeError = VBoxEventType::OnRuntimeError,
    VBoxEventType_OnCanShowWindow = VBoxEventType::OnCanShowWindow,
    VBoxEventType_OnShowWindow = VBoxEventType::OnShowWindow,
    VBoxEventType_OnCPUChanged = VBoxEventType::OnCPUChanged,
    VBoxEventType_OnVRDEServerInfoChanged = VBoxEventType::OnVRDEServerInfoChanged,
    VBoxEventType_OnEventSourceChanged = VBoxEventType::OnEventSourceChanged,
    VBoxEventType_OnCPUExecutionCapChanged = VBoxEventType::OnCPUExecutionCapChanged,
    VBoxEventType_OnGuestKeyboard = VBoxEventType::OnGuestKeyboard,
    VBoxEventType_OnGuestMouse = VBoxEventType::OnGuestMouse,
    VBoxEventType_OnNATRedirect = VBoxEventType::OnNATRedirect,
    VBoxEventType_OnHostPCIDevicePlug = VBoxEventType::OnHostPCIDevicePlug,
    VBoxEventType_OnVBoxSVCAvailabilityChanged = VBoxEventType::OnVBoxSVCAvailabilityChanged,
    VBoxEventType_OnBandwidthGroupChanged = VBoxEventType::OnBandwidthGroupChanged,
    VBoxEventType_OnGuestMonitorChanged = VBoxEventType::OnGuestMonitorChanged,
    VBoxEventType_OnStorageDeviceChanged = VBoxEventType::OnStorageDeviceChanged,
    VBoxEventType_OnClipboardModeChanged = VBoxEventType::OnClipboardModeChanged,
    VBoxEventType_OnDnDModeChanged = VBoxEventType::OnDnDModeChanged,
    VBoxEventType_OnNATNetworkChanged = VBoxEventType::OnNATNetworkChanged,
    VBoxEventType_OnNATNetworkStartStop = VBoxEventType::OnNATNetworkStartStop,
    VBoxEventType_OnNATNetworkAlter = VBoxEventType::OnNATNetworkAlter,
    VBoxEventType_OnNATNetworkCreationDeletion = VBoxEventType::OnNATNetworkCreationDeletion,
    VBoxEventType_OnNATNetworkSetting = VBoxEventType::OnNATNetworkSetting,
    VBoxEventType_OnNATNetworkPortForward = VBoxEventType::OnNATNetworkPortForward,
    VBoxEventType_OnGuestSessionStateChanged = VBoxEventType::OnGuestSessionStateChanged,
    VBoxEventType_OnGuestSessionRegistered = VBoxEventType::OnGuestSessionRegistered,
    VBoxEventType_OnGuestProcessRegistered = VBoxEventType::OnGuestProcessRegistered,
    VBoxEventType_OnGuestProcessStateChanged = VBoxEventType::OnGuestProcessStateChanged,
    VBoxEventType_OnGuestProcessInputNotify = VBoxEventType::OnGuestProcessInputNotify,
    VBoxEventType_OnGuestProcessOutput = VBoxEventType::OnGuestProcessOutput,
    VBoxEventType_OnGuestFileRegistered = VBoxEventType::OnGuestFileRegistered,
    VBoxEventType_OnGuestFileStateChanged = VBoxEventType::OnGuestFileStateChanged,
    VBoxEventType_OnGuestFileOffsetChanged = VBoxEventType::OnGuestFileOffsetChanged,
    VBoxEventType_OnGuestFileRead = VBoxEventType::OnGuestFileRead,
    VBoxEventType_OnGuestFileWrite = VBoxEventType::OnGuestFileWrite,
    VBoxEventType_OnRecordingChanged = VBoxEventType::OnRecordingChanged,
    VBoxEventType_OnGuestUserStateChanged = VBoxEventType::OnGuestUserStateChanged,
    VBoxEventType_OnGuestMultiTouch = VBoxEventType::OnGuestMultiTouch,
    VBoxEventType_OnHostNameResolutionConfigurationChange = VBoxEventType::OnHostNameResolutionConfigurationChange,
    VBoxEventType_OnSnapshotRestored = VBoxEventType::OnSnapshotRestored,
    VBoxEventType_OnMediumConfigChanged = VBoxEventType::OnMediumConfigChanged,
    VBoxEventType_OnAudioAdapterChanged = VBoxEventType::OnAudioAdapterChanged,
    VBoxEventType_OnProgressPercentageChanged = VBoxEventType::OnProgressPercentageChanged,
    VBoxEventType_OnProgressTaskCompleted = VBoxEventType::OnProgressTaskCompleted,
    VBoxEventType_OnCursorPositionChanged = VBoxEventType::OnCursorPositionChanged,
    VBoxEventType_OnGuestAdditionsStatusChanged = VBoxEventType::OnGuestAdditionsStatusChanged,
    VBoxEventType_OnGuestMonitorInfoChanged = VBoxEventType::OnGuestMonitorInfoChanged,
    VBoxEventType_OnGuestFileSizeChanged = VBoxEventType::OnGuestFileSizeChanged,
    VBoxEventType_OnClipboardFileTransferModeChanged = VBoxEventType::OnClipboardFileTransferModeChanged,
    VBoxEventType_Last = VBoxEventType::Last,
    VBoxEventType_32BitHack = 0x7fffffff
} VBoxEventType_T;
# ifdef AssertCompileSize
AssertCompileSize(VBoxEventType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(4b500146-ebba-4b7c-bc29-69c2d57a5caf),
    scriptable
]
interface GuestMouseEventMode
{
    const PRUint32 Relative = 0;
    const PRUint32 Absolute = 1;
};


/* IDL typedef for enum GuestMouseEventMode and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 GuestMouseEventMode_T;
%{C++
# define GuestMouseEventMode_Relative GuestMouseEventMode::Relative
# define GuestMouseEventMode_Absolute GuestMouseEventMode::Absolute
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum GuestMouseEventMode_T {
    GuestMouseEventMode_Relative = GuestMouseEventMode::Relative,
    GuestMouseEventMode_Absolute = GuestMouseEventMode::Absolute,
    GuestMouseEventMode_32BitHack = 0x7fffffff
} GuestMouseEventMode_T;
# ifdef AssertCompileSize
AssertCompileSize(GuestMouseEventMode_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(ef172985-7e36-4297-95be-e46396968d66),
    scriptable
]
interface GuestMonitorChangedEventType
{
    const PRUint32 Enabled = 0;
    const PRUint32 Disabled = 1;
    const PRUint32 NewOrigin = 2;
};


/* IDL typedef for enum GuestMonitorChangedEventType and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 GuestMonitorChangedEventType_T;
%{C++
# define GuestMonitorChangedEventType_Enabled GuestMonitorChangedEventType::Enabled
# define GuestMonitorChangedEventType_Disabled GuestMonitorChangedEventType::Disabled
# define GuestMonitorChangedEventType_NewOrigin GuestMonitorChangedEventType::NewOrigin
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum GuestMonitorChangedEventType_T {
    GuestMonitorChangedEventType_Enabled = GuestMonitorChangedEventType::Enabled,
    GuestMonitorChangedEventType_Disabled = GuestMonitorChangedEventType::Disabled,
    GuestMonitorChangedEventType_NewOrigin = GuestMonitorChangedEventType::NewOrigin,
    GuestMonitorChangedEventType_32BitHack = 0x7fffffff
} GuestMonitorChangedEventType_T;
# ifdef AssertCompileSize
AssertCompileSize(GuestMonitorChangedEventType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(43d794a0-7c98-11e9-a346-a36d5fa858a5),
    scriptable
]
interface FormValueType
{
    const PRUint32 Boolean = 0;
    const PRUint32 String = 1;
    const PRUint32 Choice = 2;
    const PRUint32 RangedInteger = 3;
};


/* IDL typedef for enum FormValueType and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 FormValueType_T;
%{C++
# define FormValueType_Boolean FormValueType::Boolean
# define FormValueType_String FormValueType::String
# define FormValueType_Choice FormValueType::Choice
# define FormValueType_RangedInteger FormValueType::RangedInteger
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum FormValueType_T {
    FormValueType_Boolean = FormValueType::Boolean,
    FormValueType_String = FormValueType::String,
    FormValueType_Choice = FormValueType::Choice,
    FormValueType_RangedInteger = FormValueType::RangedInteger,
    FormValueType_32BitHack = 0x7fffffff
} FormValueType_T;
# ifdef AssertCompileSize
AssertCompileSize(FormValueType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(67b6d054-0154-4f5d-b71b-6ac406e1ff78),
    scriptable
]
interface CloudMachineState
{
    const PRUint32 Invalid = 0;
    const PRUint32 Provisioning = 1;
    const PRUint32 Running = 2;
    const PRUint32 Starting = 3;
    const PRUint32 Stopping = 4;
    const PRUint32 Stopped = 5;
    const PRUint32 CreatingImage = 6;
    const PRUint32 Terminating = 7;
    const PRUint32 Terminated = 8;
};


/* IDL typedef for enum CloudMachineState and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 CloudMachineState_T;
%{C++
# define CloudMachineState_Invalid CloudMachineState::Invalid
# define CloudMachineState_Provisioning CloudMachineState::Provisioning
# define CloudMachineState_Running CloudMachineState::Running
# define CloudMachineState_Starting CloudMachineState::Starting
# define CloudMachineState_Stopping CloudMachineState::Stopping
# define CloudMachineState_Stopped CloudMachineState::Stopped
# define CloudMachineState_CreatingImage CloudMachineState::CreatingImage
# define CloudMachineState_Terminating CloudMachineState::Terminating
# define CloudMachineState_Terminated CloudMachineState::Terminated
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum CloudMachineState_T {
    CloudMachineState_Invalid = CloudMachineState::Invalid,
    CloudMachineState_Provisioning = CloudMachineState::Provisioning,
    CloudMachineState_Running = CloudMachineState::Running,
    CloudMachineState_Starting = CloudMachineState::Starting,
    CloudMachineState_Stopping = CloudMachineState::Stopping,
    CloudMachineState_Stopped = CloudMachineState::Stopped,
    CloudMachineState_CreatingImage = CloudMachineState::CreatingImage,
    CloudMachineState_Terminating = CloudMachineState::Terminating,
    CloudMachineState_Terminated = CloudMachineState::Terminated,
    CloudMachineState_32BitHack = 0x7fffffff
} CloudMachineState_T;
# ifdef AssertCompileSize
AssertCompileSize(CloudMachineState_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(6e5d6762-eea2-4f2c-b104-2952d0aa8a0a),
    scriptable
]
interface CloudImageState
{
    const PRUint32 Invalid = 0;
    const PRUint32 Provisioning = 1;
    const PRUint32 Importing = 2;
    const PRUint32 Available = 3;
    const PRUint32 Exporting = 4;
    const PRUint32 Disabled = 5;
    const PRUint32 Deleted = 6;
};


/* IDL typedef for enum CloudImageState and C++ mappings. */
%{C++
#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
%}
typedef PRUint32 CloudImageState_T;
%{C++
# define CloudImageState_Invalid CloudImageState::Invalid
# define CloudImageState_Provisioning CloudImageState::Provisioning
# define CloudImageState_Importing CloudImageState::Importing
# define CloudImageState_Available CloudImageState::Available
# define CloudImageState_Exporting CloudImageState::Exporting
# define CloudImageState_Disabled CloudImageState::Disabled
# define CloudImageState_Deleted CloudImageState::Deleted
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum CloudImageState_T {
    CloudImageState_Invalid = CloudImageState::Invalid,
    CloudImageState_Provisioning = CloudImageState::Provisioning,
    CloudImageState_Importing = CloudImageState::Importing,
    CloudImageState_Available = CloudImageState::Available,
    CloudImageState_Exporting = CloudImageState::Exporting,
    CloudImageState_Disabled = CloudImageState::Disabled,
    CloudImageState_Deleted = CloudImageState::Deleted,
    CloudImageState_32BitHack = 0x7fffffff
} CloudImageState_T;
# ifdef AssertCompileSize
AssertCompileSize(CloudImageState_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
%}

[
    uuid(c1bcc6d5-7966-481d-ab0b-d0ed73e28135),
    scriptable
]
interface IVirtualBoxErrorInfo : nsIException
{
    readonly attribute long resultCode;

    readonly attribute long resultDetail;

    readonly attribute wstring interfaceID;

    readonly attribute wstring component;

    readonly attribute wstring text;

    readonly attribute IVirtualBoxErrorInfo next;

}; /* interface IVirtualBoxErrorInfo */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IVirtualBoxErrorInfo_GETTER_ResultCode_TO(smth) NS_IMETHOD GetResultCode (PRInt32 * aResultCode) { return smth GetResultCode (aResultCode); }
#define COM_FORWARD_IVirtualBoxErrorInfo_GETTER_ResultCode_TO_OBJ(obj) COM_FORWARD_IVirtualBoxErrorInfo_GETTER_ResultCode_TO ((obj)->)
#define COM_FORWARD_IVirtualBoxErrorInfo_GETTER_ResultCode_TO_BASE(base) COM_FORWARD_IVirtualBoxErrorInfo_GETTER_ResultCode_TO (base::)
#define COM_FORWARD_IVirtualBoxErrorInfo_GETTER_ResultDetail_TO(smth) NS_IMETHOD GetResultDetail (PRInt32 * aResultDetail) { return smth GetResultDetail (aResultDetail); }
#define COM_FORWARD_IVirtualBoxErrorInfo_GETTER_ResultDetail_TO_OBJ(obj) COM_FORWARD_IVirtualBoxErrorInfo_GETTER_ResultDetail_TO ((obj)->)
#define COM_FORWARD_IVirtualBoxErrorInfo_GETTER_ResultDetail_TO_BASE(base) COM_FORWARD_IVirtualBoxErrorInfo_GETTER_ResultDetail_TO (base::)
#define COM_FORWARD_IVirtualBoxErrorInfo_GETTER_InterfaceID_TO(smth) NS_IMETHOD GetInterfaceID (PRUnichar * * aInterfaceID) { return smth GetInterfaceID (aInterfaceID); }
#define COM_FORWARD_IVirtualBoxErrorInfo_GETTER_InterfaceID_TO_OBJ(obj) COM_FORWARD_IVirtualBoxErrorInfo_GETTER_InterfaceID_TO ((obj)->)
#define COM_FORWARD_IVirtualBoxErrorInfo_GETTER_InterfaceID_TO_BASE(base) COM_FORWARD_IVirtualBoxErrorInfo_GETTER_InterfaceID_TO (base::)
#define COM_FORWARD_IVirtualBoxErrorInfo_GETTER_Component_TO(smth) NS_IMETHOD GetComponent (PRUnichar * * aComponent) { return smth GetComponent (aComponent); }
#define COM_FORWARD_IVirtualBoxErrorInfo_GETTER_Component_TO_OBJ(obj) COM_FORWARD_IVirtualBoxErrorInfo_GETTER_Component_TO ((obj)->)
#define COM_FORWARD_IVirtualBoxErrorInfo_GETTER_Component_TO_BASE(base) COM_FORWARD_IVirtualBoxErrorInfo_GETTER_Component_TO (base::)
#define COM_FORWARD_IVirtualBoxErrorInfo_GETTER_Text_TO(smth) NS_IMETHOD GetText (PRUnichar * * aText) { return smth GetText (aText); }
#define COM_FORWARD_IVirtualBoxErrorInfo_GETTER_Text_TO_OBJ(obj) COM_FORWARD_IVirtualBoxErrorInfo_GETTER_Text_TO ((obj)->)
#define COM_FORWARD_IVirtualBoxErrorInfo_GETTER_Text_TO_BASE(base) COM_FORWARD_IVirtualBoxErrorInfo_GETTER_Text_TO (base::)
#define COM_FORWARD_IVirtualBoxErrorInfo_GETTER_Next_TO(smth) NS_IMETHOD GetNext (IVirtualBoxErrorInfo * * aNext) { return smth GetNext (aNext); }
#define COM_FORWARD_IVirtualBoxErrorInfo_GETTER_Next_TO_OBJ(obj) COM_FORWARD_IVirtualBoxErrorInfo_GETTER_Next_TO ((obj)->)
#define COM_FORWARD_IVirtualBoxErrorInfo_GETTER_Next_TO_BASE(base) COM_FORWARD_IVirtualBoxErrorInfo_GETTER_Next_TO (base::)
#define COM_FORWARD_IVirtualBoxErrorInfo_TO(smth) NS_FORWARD_IVIRTUALBOXERRORINFO (smth)
#define COM_FORWARD_IVirtualBoxErrorInfo_TO_OBJ(obj) COM_FORWARD_IVirtualBoxErrorInfo_TO ((obj)->)
#define COM_FORWARD_IVirtualBoxErrorInfo_TO_BASE(base) COM_FORWARD_IVirtualBoxErrorInfo_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IVirtualBoxErrorInfo;
%}

[
    uuid(4fdebbf0-be30-49c0-b315-e9749e1bded1),
    scriptable
]
interface INATNetwork : nsISupports
{
    attribute wstring networkName;

    attribute boolean enabled;

    attribute wstring network;

    readonly attribute wstring gateway;

    attribute boolean IPv6Enabled;

    attribute wstring IPv6Prefix;

    attribute boolean advertiseDefaultIPv6RouteEnabled;

    attribute boolean needDhcpServer;

    readonly attribute IEventSource eventSource;

    void getPortForwardRules4 (
        out unsigned long portForwardRules4Size,
        [array, size_is(portForwardRules4Size), retval] out wstring portForwardRules4
    );

    void getLocalMappings (
        out unsigned long localMappingsSize,
        [array, size_is(localMappingsSize), retval] out wstring localMappings
    );

    attribute long loopbackIp6;

    void getPortForwardRules6 (
        out unsigned long portForwardRules6Size,
        [array, size_is(portForwardRules6Size), retval] out wstring portForwardRules6
    );

    readonly attribute unsigned long InternalAndReservedAttribute1INATNetwork;

    readonly attribute unsigned long InternalAndReservedAttribute2INATNetwork;

    readonly attribute unsigned long InternalAndReservedAttribute3INATNetwork;

    readonly attribute unsigned long InternalAndReservedAttribute4INATNetwork;

    readonly attribute unsigned long InternalAndReservedAttribute5INATNetwork;

    readonly attribute unsigned long InternalAndReservedAttribute6INATNetwork;

    readonly attribute unsigned long InternalAndReservedAttribute7INATNetwork;

    readonly attribute unsigned long InternalAndReservedAttribute8INATNetwork;

    void addLocalMapping (
        in wstring hostid,
        in long offset
    );

    void addPortForwardRule (
        in boolean isIpv6,
        in wstring ruleName,
        in NATProtocol_T proto,
        in wstring hostIP,
        in unsigned short hostPort,
        in wstring guestIP,
        in unsigned short guestPort
    );

    void removePortForwardRule (
        in boolean iSipv6,
        in wstring ruleName
    );

    void start();

    void stop();

    void InternalAndReservedMethod1INATNetwork();

    void InternalAndReservedMethod2INATNetwork();

}; /* interface INATNetwork */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_INATNetwork_GETTER_NetworkName_TO(smth) NS_IMETHOD GetNetworkName (PRUnichar * * aNetworkName) { return smth GetNetworkName (aNetworkName); }
#define COM_FORWARD_INATNetwork_GETTER_NetworkName_TO_OBJ(obj) COM_FORWARD_INATNetwork_GETTER_NetworkName_TO ((obj)->)
#define COM_FORWARD_INATNetwork_GETTER_NetworkName_TO_BASE(base) COM_FORWARD_INATNetwork_GETTER_NetworkName_TO (base::)
#define COM_FORWARD_INATNetwork_SETTER_NetworkName_TO(smth) NS_IMETHOD SetNetworkName (const PRUnichar * aNetworkName) { return smth SetNetworkName (aNetworkName); }
#define COM_FORWARD_INATNetwork_SETTER_NetworkName_TO_OBJ(obj) COM_FORWARD_INATNetwork_SETTER_NetworkName_TO ((obj)->)
#define COM_FORWARD_INATNetwork_SETTER_NetworkName_TO_BASE(base) COM_FORWARD_INATNetwork_SETTER_NetworkName_TO (base::)
#define COM_FORWARD_INATNetwork_GETTER_Enabled_TO(smth) NS_IMETHOD GetEnabled (PRBool * aEnabled) { return smth GetEnabled (aEnabled); }
#define COM_FORWARD_INATNetwork_GETTER_Enabled_TO_OBJ(obj) COM_FORWARD_INATNetwork_GETTER_Enabled_TO ((obj)->)
#define COM_FORWARD_INATNetwork_GETTER_Enabled_TO_BASE(base) COM_FORWARD_INATNetwork_GETTER_Enabled_TO (base::)
#define COM_FORWARD_INATNetwork_SETTER_Enabled_TO(smth) NS_IMETHOD SetEnabled (PRBool aEnabled) { return smth SetEnabled (aEnabled); }
#define COM_FORWARD_INATNetwork_SETTER_Enabled_TO_OBJ(obj) COM_FORWARD_INATNetwork_SETTER_Enabled_TO ((obj)->)
#define COM_FORWARD_INATNetwork_SETTER_Enabled_TO_BASE(base) COM_FORWARD_INATNetwork_SETTER_Enabled_TO (base::)
#define COM_FORWARD_INATNetwork_GETTER_Network_TO(smth) NS_IMETHOD GetNetwork (PRUnichar * * aNetwork) { return smth GetNetwork (aNetwork); }
#define COM_FORWARD_INATNetwork_GETTER_Network_TO_OBJ(obj) COM_FORWARD_INATNetwork_GETTER_Network_TO ((obj)->)
#define COM_FORWARD_INATNetwork_GETTER_Network_TO_BASE(base) COM_FORWARD_INATNetwork_GETTER_Network_TO (base::)
#define COM_FORWARD_INATNetwork_SETTER_Network_TO(smth) NS_IMETHOD SetNetwork (const PRUnichar * aNetwork) { return smth SetNetwork (aNetwork); }
#define COM_FORWARD_INATNetwork_SETTER_Network_TO_OBJ(obj) COM_FORWARD_INATNetwork_SETTER_Network_TO ((obj)->)
#define COM_FORWARD_INATNetwork_SETTER_Network_TO_BASE(base) COM_FORWARD_INATNetwork_SETTER_Network_TO (base::)
#define COM_FORWARD_INATNetwork_GETTER_Gateway_TO(smth) NS_IMETHOD GetGateway (PRUnichar * * aGateway) { return smth GetGateway (aGateway); }
#define COM_FORWARD_INATNetwork_GETTER_Gateway_TO_OBJ(obj) COM_FORWARD_INATNetwork_GETTER_Gateway_TO ((obj)->)
#define COM_FORWARD_INATNetwork_GETTER_Gateway_TO_BASE(base) COM_FORWARD_INATNetwork_GETTER_Gateway_TO (base::)
#define COM_FORWARD_INATNetwork_GETTER_IPv6Enabled_TO(smth) NS_IMETHOD GetIPv6Enabled (PRBool * aIPv6Enabled) { return smth GetIPv6Enabled (aIPv6Enabled); }
#define COM_FORWARD_INATNetwork_GETTER_IPv6Enabled_TO_OBJ(obj) COM_FORWARD_INATNetwork_GETTER_IPv6Enabled_TO ((obj)->)
#define COM_FORWARD_INATNetwork_GETTER_IPv6Enabled_TO_BASE(base) COM_FORWARD_INATNetwork_GETTER_IPv6Enabled_TO (base::)
#define COM_FORWARD_INATNetwork_SETTER_IPv6Enabled_TO(smth) NS_IMETHOD SetIPv6Enabled (PRBool aIPv6Enabled) { return smth SetIPv6Enabled (aIPv6Enabled); }
#define COM_FORWARD_INATNetwork_SETTER_IPv6Enabled_TO_OBJ(obj) COM_FORWARD_INATNetwork_SETTER_IPv6Enabled_TO ((obj)->)
#define COM_FORWARD_INATNetwork_SETTER_IPv6Enabled_TO_BASE(base) COM_FORWARD_INATNetwork_SETTER_IPv6Enabled_TO (base::)
#define COM_FORWARD_INATNetwork_GETTER_IPv6Prefix_TO(smth) NS_IMETHOD GetIPv6Prefix (PRUnichar * * aIPv6Prefix) { return smth GetIPv6Prefix (aIPv6Prefix); }
#define COM_FORWARD_INATNetwork_GETTER_IPv6Prefix_TO_OBJ(obj) COM_FORWARD_INATNetwork_GETTER_IPv6Prefix_TO ((obj)->)
#define COM_FORWARD_INATNetwork_GETTER_IPv6Prefix_TO_BASE(base) COM_FORWARD_INATNetwork_GETTER_IPv6Prefix_TO (base::)
#define COM_FORWARD_INATNetwork_SETTER_IPv6Prefix_TO(smth) NS_IMETHOD SetIPv6Prefix (const PRUnichar * aIPv6Prefix) { return smth SetIPv6Prefix (aIPv6Prefix); }
#define COM_FORWARD_INATNetwork_SETTER_IPv6Prefix_TO_OBJ(obj) COM_FORWARD_INATNetwork_SETTER_IPv6Prefix_TO ((obj)->)
#define COM_FORWARD_INATNetwork_SETTER_IPv6Prefix_TO_BASE(base) COM_FORWARD_INATNetwork_SETTER_IPv6Prefix_TO (base::)
#define COM_FORWARD_INATNetwork_GETTER_AdvertiseDefaultIPv6RouteEnabled_TO(smth) NS_IMETHOD GetAdvertiseDefaultIPv6RouteEnabled (PRBool * aAdvertiseDefaultIPv6RouteEnabled) { return smth GetAdvertiseDefaultIPv6RouteEnabled (aAdvertiseDefaultIPv6RouteEnabled); }
#define COM_FORWARD_INATNetwork_GETTER_AdvertiseDefaultIPv6RouteEnabled_TO_OBJ(obj) COM_FORWARD_INATNetwork_GETTER_AdvertiseDefaultIPv6RouteEnabled_TO ((obj)->)
#define COM_FORWARD_INATNetwork_GETTER_AdvertiseDefaultIPv6RouteEnabled_TO_BASE(base) COM_FORWARD_INATNetwork_GETTER_AdvertiseDefaultIPv6RouteEnabled_TO (base::)
#define COM_FORWARD_INATNetwork_SETTER_AdvertiseDefaultIPv6RouteEnabled_TO(smth) NS_IMETHOD SetAdvertiseDefaultIPv6RouteEnabled (PRBool aAdvertiseDefaultIPv6RouteEnabled) { return smth SetAdvertiseDefaultIPv6RouteEnabled (aAdvertiseDefaultIPv6RouteEnabled); }
#define COM_FORWARD_INATNetwork_SETTER_AdvertiseDefaultIPv6RouteEnabled_TO_OBJ(obj) COM_FORWARD_INATNetwork_SETTER_AdvertiseDefaultIPv6RouteEnabled_TO ((obj)->)
#define COM_FORWARD_INATNetwork_SETTER_AdvertiseDefaultIPv6RouteEnabled_TO_BASE(base) COM_FORWARD_INATNetwork_SETTER_AdvertiseDefaultIPv6RouteEnabled_TO (base::)
#define COM_FORWARD_INATNetwork_GETTER_NeedDhcpServer_TO(smth) NS_IMETHOD GetNeedDhcpServer (PRBool * aNeedDhcpServer) { return smth GetNeedDhcpServer (aNeedDhcpServer); }
#define COM_FORWARD_INATNetwork_GETTER_NeedDhcpServer_TO_OBJ(obj) COM_FORWARD_INATNetwork_GETTER_NeedDhcpServer_TO ((obj)->)
#define COM_FORWARD_INATNetwork_GETTER_NeedDhcpServer_TO_BASE(base) COM_FORWARD_INATNetwork_GETTER_NeedDhcpServer_TO (base::)
#define COM_FORWARD_INATNetwork_SETTER_NeedDhcpServer_TO(smth) NS_IMETHOD SetNeedDhcpServer (PRBool aNeedDhcpServer) { return smth SetNeedDhcpServer (aNeedDhcpServer); }
#define COM_FORWARD_INATNetwork_SETTER_NeedDhcpServer_TO_OBJ(obj) COM_FORWARD_INATNetwork_SETTER_NeedDhcpServer_TO ((obj)->)
#define COM_FORWARD_INATNetwork_SETTER_NeedDhcpServer_TO_BASE(base) COM_FORWARD_INATNetwork_SETTER_NeedDhcpServer_TO (base::)
#define COM_FORWARD_INATNetwork_GETTER_EventSource_TO(smth) NS_IMETHOD GetEventSource (IEventSource * * aEventSource) { return smth GetEventSource (aEventSource); }
#define COM_FORWARD_INATNetwork_GETTER_EventSource_TO_OBJ(obj) COM_FORWARD_INATNetwork_GETTER_EventSource_TO ((obj)->)
#define COM_FORWARD_INATNetwork_GETTER_EventSource_TO_BASE(base) COM_FORWARD_INATNetwork_GETTER_EventSource_TO (base::)
#define COM_FORWARD_INATNetwork_GETTER_PortForwardRules4_TO(smth) NS_IMETHOD GetPortForwardRules4 (PRUint32 * aPortForwardRules4Size, PRUnichar * * * aPortForwardRules4) { return smth GetPortForwardRules4 (aPortForwardRules4Size, aPortForwardRules4); }
#define COM_FORWARD_INATNetwork_GETTER_PortForwardRules4_TO_OBJ(obj) COM_FORWARD_INATNetwork_GETTER_PortForwardRules4_TO ((obj)->)
#define COM_FORWARD_INATNetwork_GETTER_PortForwardRules4_TO_BASE(base) COM_FORWARD_INATNetwork_GETTER_PortForwardRules4_TO (base::)
#define COM_FORWARD_INATNetwork_GETTER_LocalMappings_TO(smth) NS_IMETHOD GetLocalMappings (PRUint32 * aLocalMappingsSize, PRUnichar * * * aLocalMappings) { return smth GetLocalMappings (aLocalMappingsSize, aLocalMappings); }
#define COM_FORWARD_INATNetwork_GETTER_LocalMappings_TO_OBJ(obj) COM_FORWARD_INATNetwork_GETTER_LocalMappings_TO ((obj)->)
#define COM_FORWARD_INATNetwork_GETTER_LocalMappings_TO_BASE(base) COM_FORWARD_INATNetwork_GETTER_LocalMappings_TO (base::)
#define COM_FORWARD_INATNetwork_GETTER_LoopbackIp6_TO(smth) NS_IMETHOD GetLoopbackIp6 (PRInt32 * aLoopbackIp6) { return smth GetLoopbackIp6 (aLoopbackIp6); }
#define COM_FORWARD_INATNetwork_GETTER_LoopbackIp6_TO_OBJ(obj) COM_FORWARD_INATNetwork_GETTER_LoopbackIp6_TO ((obj)->)
#define COM_FORWARD_INATNetwork_GETTER_LoopbackIp6_TO_BASE(base) COM_FORWARD_INATNetwork_GETTER_LoopbackIp6_TO (base::)
#define COM_FORWARD_INATNetwork_SETTER_LoopbackIp6_TO(smth) NS_IMETHOD SetLoopbackIp6 (PRInt32 aLoopbackIp6) { return smth SetLoopbackIp6 (aLoopbackIp6); }
#define COM_FORWARD_INATNetwork_SETTER_LoopbackIp6_TO_OBJ(obj) COM_FORWARD_INATNetwork_SETTER_LoopbackIp6_TO ((obj)->)
#define COM_FORWARD_INATNetwork_SETTER_LoopbackIp6_TO_BASE(base) COM_FORWARD_INATNetwork_SETTER_LoopbackIp6_TO (base::)
#define COM_FORWARD_INATNetwork_GETTER_PortForwardRules6_TO(smth) NS_IMETHOD GetPortForwardRules6 (PRUint32 * aPortForwardRules6Size, PRUnichar * * * aPortForwardRules6) { return smth GetPortForwardRules6 (aPortForwardRules6Size, aPortForwardRules6); }
#define COM_FORWARD_INATNetwork_GETTER_PortForwardRules6_TO_OBJ(obj) COM_FORWARD_INATNetwork_GETTER_PortForwardRules6_TO ((obj)->)
#define COM_FORWARD_INATNetwork_GETTER_PortForwardRules6_TO_BASE(base) COM_FORWARD_INATNetwork_GETTER_PortForwardRules6_TO (base::)
#define COM_FORWARD_INATNetwork_AddLocalMapping_TO(smth) NS_IMETHOD AddLocalMapping (PRUnichar * aHostid, PRInt32 aOffset) { return smth AddLocalMapping (aHostid, aOffset); }
#define COM_FORWARD_INATNetwork_AddLocalMapping_TO_OBJ(obj) COM_FORWARD_INATNetwork_AddLocalMapping_TO ((obj)->)
#define COM_FORWARD_INATNetwork_AddLocalMapping_TO_BASE(base) COM_FORWARD_INATNetwork_AddLocalMapping_TO (base::)
#define COM_FORWARD_INATNetwork_AddPortForwardRule_TO(smth) NS_IMETHOD AddPortForwardRule (PRBool aIsIpv6, PRUnichar * aRuleName, PRUint32 aProto, PRUnichar * aHostIP, PRUint16 aHostPort, PRUnichar * aGuestIP, PRUint16 aGuestPort) { return smth AddPortForwardRule (aIsIpv6, aRuleName, aProto, aHostIP, aHostPort, aGuestIP, aGuestPort); }
#define COM_FORWARD_INATNetwork_AddPortForwardRule_TO_OBJ(obj) COM_FORWARD_INATNetwork_AddPortForwardRule_TO ((obj)->)
#define COM_FORWARD_INATNetwork_AddPortForwardRule_TO_BASE(base) COM_FORWARD_INATNetwork_AddPortForwardRule_TO (base::)
#define COM_FORWARD_INATNetwork_RemovePortForwardRule_TO(smth) NS_IMETHOD RemovePortForwardRule (PRBool aISipv6, PRUnichar * aRuleName) { return smth RemovePortForwardRule (aISipv6, aRuleName); }
#define COM_FORWARD_INATNetwork_RemovePortForwardRule_TO_OBJ(obj) COM_FORWARD_INATNetwork_RemovePortForwardRule_TO ((obj)->)
#define COM_FORWARD_INATNetwork_RemovePortForwardRule_TO_BASE(base) COM_FORWARD_INATNetwork_RemovePortForwardRule_TO (base::)
#define COM_FORWARD_INATNetwork_Start_TO(smth) NS_IMETHOD Start() { return smth Start(); }
#define COM_FORWARD_INATNetwork_Start_TO_OBJ(obj) COM_FORWARD_INATNetwork_Start_TO ((obj)->)
#define COM_FORWARD_INATNetwork_Start_TO_BASE(base) COM_FORWARD_INATNetwork_Start_TO (base::)
#define COM_FORWARD_INATNetwork_Stop_TO(smth) NS_IMETHOD Stop() { return smth Stop(); }
#define COM_FORWARD_INATNetwork_Stop_TO_OBJ(obj) COM_FORWARD_INATNetwork_Stop_TO ((obj)->)
#define COM_FORWARD_INATNetwork_Stop_TO_BASE(base) COM_FORWARD_INATNetwork_Stop_TO (base::)
#define COM_FORWARD_INATNetwork_TO(smth) NS_FORWARD_INATNETWORK (smth)
#define COM_FORWARD_INATNetwork_TO_OBJ(obj) COM_FORWARD_INATNetwork_TO ((obj)->)
#define COM_FORWARD_INATNetwork_TO_BASE(base) COM_FORWARD_INATNetwork_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_INATNetwork;
%}

[
    uuid(d8e3496e-735f-4fde-8a54-427d49409b5f),
    scriptable
]
interface ICloudNetwork : nsISupports
{
    attribute wstring networkName;

    attribute boolean enabled;

    attribute wstring provider;

    attribute wstring profile;

    attribute wstring networkId;

    readonly attribute unsigned long InternalAndReservedAttribute1ICloudNetwork;

    readonly attribute unsigned long InternalAndReservedAttribute2ICloudNetwork;

    readonly attribute unsigned long InternalAndReservedAttribute3ICloudNetwork;

    readonly attribute unsigned long InternalAndReservedAttribute4ICloudNetwork;

    readonly attribute unsigned long InternalAndReservedAttribute5ICloudNetwork;

    readonly attribute unsigned long InternalAndReservedAttribute6ICloudNetwork;

    readonly attribute unsigned long InternalAndReservedAttribute7ICloudNetwork;

    readonly attribute unsigned long InternalAndReservedAttribute8ICloudNetwork;

    readonly attribute unsigned long InternalAndReservedAttribute9ICloudNetwork;

    readonly attribute unsigned long InternalAndReservedAttribute10ICloudNetwork;

    readonly attribute unsigned long InternalAndReservedAttribute11ICloudNetwork;

    readonly attribute unsigned long InternalAndReservedAttribute12ICloudNetwork;

    void InternalAndReservedMethod1ICloudNetwork();

    void InternalAndReservedMethod2ICloudNetwork();

    void InternalAndReservedMethod3ICloudNetwork();

    void InternalAndReservedMethod4ICloudNetwork();

}; /* interface ICloudNetwork */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_ICloudNetwork_GETTER_NetworkName_TO(smth) NS_IMETHOD GetNetworkName (PRUnichar * * aNetworkName) { return smth GetNetworkName (aNetworkName); }
#define COM_FORWARD_ICloudNetwork_GETTER_NetworkName_TO_OBJ(obj) COM_FORWARD_ICloudNetwork_GETTER_NetworkName_TO ((obj)->)
#define COM_FORWARD_ICloudNetwork_GETTER_NetworkName_TO_BASE(base) COM_FORWARD_ICloudNetwork_GETTER_NetworkName_TO (base::)
#define COM_FORWARD_ICloudNetwork_SETTER_NetworkName_TO(smth) NS_IMETHOD SetNetworkName (const PRUnichar * aNetworkName) { return smth SetNetworkName (aNetworkName); }
#define COM_FORWARD_ICloudNetwork_SETTER_NetworkName_TO_OBJ(obj) COM_FORWARD_ICloudNetwork_SETTER_NetworkName_TO ((obj)->)
#define COM_FORWARD_ICloudNetwork_SETTER_NetworkName_TO_BASE(base) COM_FORWARD_ICloudNetwork_SETTER_NetworkName_TO (base::)
#define COM_FORWARD_ICloudNetwork_GETTER_Enabled_TO(smth) NS_IMETHOD GetEnabled (PRBool * aEnabled) { return smth GetEnabled (aEnabled); }
#define COM_FORWARD_ICloudNetwork_GETTER_Enabled_TO_OBJ(obj) COM_FORWARD_ICloudNetwork_GETTER_Enabled_TO ((obj)->)
#define COM_FORWARD_ICloudNetwork_GETTER_Enabled_TO_BASE(base) COM_FORWARD_ICloudNetwork_GETTER_Enabled_TO (base::)
#define COM_FORWARD_ICloudNetwork_SETTER_Enabled_TO(smth) NS_IMETHOD SetEnabled (PRBool aEnabled) { return smth SetEnabled (aEnabled); }
#define COM_FORWARD_ICloudNetwork_SETTER_Enabled_TO_OBJ(obj) COM_FORWARD_ICloudNetwork_SETTER_Enabled_TO ((obj)->)
#define COM_FORWARD_ICloudNetwork_SETTER_Enabled_TO_BASE(base) COM_FORWARD_ICloudNetwork_SETTER_Enabled_TO (base::)
#define COM_FORWARD_ICloudNetwork_GETTER_Provider_TO(smth) NS_IMETHOD GetProvider (PRUnichar * * aProvider) { return smth GetProvider (aProvider); }
#define COM_FORWARD_ICloudNetwork_GETTER_Provider_TO_OBJ(obj) COM_FORWARD_ICloudNetwork_GETTER_Provider_TO ((obj)->)
#define COM_FORWARD_ICloudNetwork_GETTER_Provider_TO_BASE(base) COM_FORWARD_ICloudNetwork_GETTER_Provider_TO (base::)
#define COM_FORWARD_ICloudNetwork_SETTER_Provider_TO(smth) NS_IMETHOD SetProvider (const PRUnichar * aProvider) { return smth SetProvider (aProvider); }
#define COM_FORWARD_ICloudNetwork_SETTER_Provider_TO_OBJ(obj) COM_FORWARD_ICloudNetwork_SETTER_Provider_TO ((obj)->)
#define COM_FORWARD_ICloudNetwork_SETTER_Provider_TO_BASE(base) COM_FORWARD_ICloudNetwork_SETTER_Provider_TO (base::)
#define COM_FORWARD_ICloudNetwork_GETTER_Profile_TO(smth) NS_IMETHOD GetProfile (PRUnichar * * aProfile) { return smth GetProfile (aProfile); }
#define COM_FORWARD_ICloudNetwork_GETTER_Profile_TO_OBJ(obj) COM_FORWARD_ICloudNetwork_GETTER_Profile_TO ((obj)->)
#define COM_FORWARD_ICloudNetwork_GETTER_Profile_TO_BASE(base) COM_FORWARD_ICloudNetwork_GETTER_Profile_TO (base::)
#define COM_FORWARD_ICloudNetwork_SETTER_Profile_TO(smth) NS_IMETHOD SetProfile (const PRUnichar * aProfile) { return smth SetProfile (aProfile); }
#define COM_FORWARD_ICloudNetwork_SETTER_Profile_TO_OBJ(obj) COM_FORWARD_ICloudNetwork_SETTER_Profile_TO ((obj)->)
#define COM_FORWARD_ICloudNetwork_SETTER_Profile_TO_BASE(base) COM_FORWARD_ICloudNetwork_SETTER_Profile_TO (base::)
#define COM_FORWARD_ICloudNetwork_GETTER_NetworkId_TO(smth) NS_IMETHOD GetNetworkId (PRUnichar * * aNetworkId) { return smth GetNetworkId (aNetworkId); }
#define COM_FORWARD_ICloudNetwork_GETTER_NetworkId_TO_OBJ(obj) COM_FORWARD_ICloudNetwork_GETTER_NetworkId_TO ((obj)->)
#define COM_FORWARD_ICloudNetwork_GETTER_NetworkId_TO_BASE(base) COM_FORWARD_ICloudNetwork_GETTER_NetworkId_TO (base::)
#define COM_FORWARD_ICloudNetwork_SETTER_NetworkId_TO(smth) NS_IMETHOD SetNetworkId (const PRUnichar * aNetworkId) { return smth SetNetworkId (aNetworkId); }
#define COM_FORWARD_ICloudNetwork_SETTER_NetworkId_TO_OBJ(obj) COM_FORWARD_ICloudNetwork_SETTER_NetworkId_TO ((obj)->)
#define COM_FORWARD_ICloudNetwork_SETTER_NetworkId_TO_BASE(base) COM_FORWARD_ICloudNetwork_SETTER_NetworkId_TO (base::)
#define COM_FORWARD_ICloudNetwork_TO(smth) NS_FORWARD_ICLOUDNETWORK (smth)
#define COM_FORWARD_ICloudNetwork_TO_OBJ(obj) COM_FORWARD_ICloudNetwork_TO ((obj)->)
#define COM_FORWARD_ICloudNetwork_TO_BASE(base) COM_FORWARD_ICloudNetwork_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ICloudNetwork;
%}

[
    uuid(cadef0a2-a1a9-4ac2-8e80-c049af69dac8),
    scriptable
]
interface IDHCPServer : nsISupports
{
    readonly attribute IEventSource eventSource;

    attribute boolean enabled;

    readonly attribute wstring IPAddress;

    readonly attribute wstring networkMask;

    readonly attribute wstring networkName;

    readonly attribute wstring lowerIP;

    readonly attribute wstring upperIP;

    readonly attribute IDHCPGlobalConfig globalConfig;

    void getGroupConfigs (
        out unsigned long groupConfigsSize,
        [array, size_is(groupConfigsSize), retval] out IDHCPGroupConfig groupConfigs
    );

    void getIndividualConfigs (
        out unsigned long individualConfigsSize,
        [array, size_is(individualConfigsSize), retval] out IDHCPIndividualConfig individualConfigs
    );

    readonly attribute unsigned long InternalAndReservedAttribute1IDHCPServer;

    readonly attribute unsigned long InternalAndReservedAttribute2IDHCPServer;

    readonly attribute unsigned long InternalAndReservedAttribute3IDHCPServer;

    void setConfiguration (
        in wstring IPAddress,
        in wstring networkMask,
        in wstring FromIPAddress,
        in wstring ToIPAddress
    );

    void start (
        in wstring trunkName,
        in wstring trunkType
    );

    void stop();

    void restart();

    void findLeaseByMAC (
        in wstring mac,
        in long type,
        out wstring address,
        out wstring state,
        out long long issued,
        out long long expire
    );

    void getConfig (
        in DHCPConfigScope_T scope,
        in wstring name,
        in unsigned long slot,
        in boolean mayAdd,
        [retval] out IDHCPConfig config
    );

}; /* interface IDHCPServer */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IDHCPServer_GETTER_EventSource_TO(smth) NS_IMETHOD GetEventSource (IEventSource * * aEventSource) { return smth GetEventSource (aEventSource); }
#define COM_FORWARD_IDHCPServer_GETTER_EventSource_TO_OBJ(obj) COM_FORWARD_IDHCPServer_GETTER_EventSource_TO ((obj)->)
#define COM_FORWARD_IDHCPServer_GETTER_EventSource_TO_BASE(base) COM_FORWARD_IDHCPServer_GETTER_EventSource_TO (base::)
#define COM_FORWARD_IDHCPServer_GETTER_Enabled_TO(smth) NS_IMETHOD GetEnabled (PRBool * aEnabled) { return smth GetEnabled (aEnabled); }
#define COM_FORWARD_IDHCPServer_GETTER_Enabled_TO_OBJ(obj) COM_FORWARD_IDHCPServer_GETTER_Enabled_TO ((obj)->)
#define COM_FORWARD_IDHCPServer_GETTER_Enabled_TO_BASE(base) COM_FORWARD_IDHCPServer_GETTER_Enabled_TO (base::)
#define COM_FORWARD_IDHCPServer_SETTER_Enabled_TO(smth) NS_IMETHOD SetEnabled (PRBool aEnabled) { return smth SetEnabled (aEnabled); }
#define COM_FORWARD_IDHCPServer_SETTER_Enabled_TO_OBJ(obj) COM_FORWARD_IDHCPServer_SETTER_Enabled_TO ((obj)->)
#define COM_FORWARD_IDHCPServer_SETTER_Enabled_TO_BASE(base) COM_FORWARD_IDHCPServer_SETTER_Enabled_TO (base::)
#define COM_FORWARD_IDHCPServer_GETTER_IPAddress_TO(smth) NS_IMETHOD GetIPAddress (PRUnichar * * aIPAddress) { return smth GetIPAddress (aIPAddress); }
#define COM_FORWARD_IDHCPServer_GETTER_IPAddress_TO_OBJ(obj) COM_FORWARD_IDHCPServer_GETTER_IPAddress_TO ((obj)->)
#define COM_FORWARD_IDHCPServer_GETTER_IPAddress_TO_BASE(base) COM_FORWARD_IDHCPServer_GETTER_IPAddress_TO (base::)
#define COM_FORWARD_IDHCPServer_GETTER_NetworkMask_TO(smth) NS_IMETHOD GetNetworkMask (PRUnichar * * aNetworkMask) { return smth GetNetworkMask (aNetworkMask); }
#define COM_FORWARD_IDHCPServer_GETTER_NetworkMask_TO_OBJ(obj) COM_FORWARD_IDHCPServer_GETTER_NetworkMask_TO ((obj)->)
#define COM_FORWARD_IDHCPServer_GETTER_NetworkMask_TO_BASE(base) COM_FORWARD_IDHCPServer_GETTER_NetworkMask_TO (base::)
#define COM_FORWARD_IDHCPServer_GETTER_NetworkName_TO(smth) NS_IMETHOD GetNetworkName (PRUnichar * * aNetworkName) { return smth GetNetworkName (aNetworkName); }
#define COM_FORWARD_IDHCPServer_GETTER_NetworkName_TO_OBJ(obj) COM_FORWARD_IDHCPServer_GETTER_NetworkName_TO ((obj)->)
#define COM_FORWARD_IDHCPServer_GETTER_NetworkName_TO_BASE(base) COM_FORWARD_IDHCPServer_GETTER_NetworkName_TO (base::)
#define COM_FORWARD_IDHCPServer_GETTER_LowerIP_TO(smth) NS_IMETHOD GetLowerIP (PRUnichar * * aLowerIP) { return smth GetLowerIP (aLowerIP); }
#define COM_FORWARD_IDHCPServer_GETTER_LowerIP_TO_OBJ(obj) COM_FORWARD_IDHCPServer_GETTER_LowerIP_TO ((obj)->)
#define COM_FORWARD_IDHCPServer_GETTER_LowerIP_TO_BASE(base) COM_FORWARD_IDHCPServer_GETTER_LowerIP_TO (base::)
#define COM_FORWARD_IDHCPServer_GETTER_UpperIP_TO(smth) NS_IMETHOD GetUpperIP (PRUnichar * * aUpperIP) { return smth GetUpperIP (aUpperIP); }
#define COM_FORWARD_IDHCPServer_GETTER_UpperIP_TO_OBJ(obj) COM_FORWARD_IDHCPServer_GETTER_UpperIP_TO ((obj)->)
#define COM_FORWARD_IDHCPServer_GETTER_UpperIP_TO_BASE(base) COM_FORWARD_IDHCPServer_GETTER_UpperIP_TO (base::)
#define COM_FORWARD_IDHCPServer_GETTER_GlobalConfig_TO(smth) NS_IMETHOD GetGlobalConfig (IDHCPGlobalConfig * * aGlobalConfig) { return smth GetGlobalConfig (aGlobalConfig); }
#define COM_FORWARD_IDHCPServer_GETTER_GlobalConfig_TO_OBJ(obj) COM_FORWARD_IDHCPServer_GETTER_GlobalConfig_TO ((obj)->)
#define COM_FORWARD_IDHCPServer_GETTER_GlobalConfig_TO_BASE(base) COM_FORWARD_IDHCPServer_GETTER_GlobalConfig_TO (base::)
#define COM_FORWARD_IDHCPServer_GETTER_GroupConfigs_TO(smth) NS_IMETHOD GetGroupConfigs (PRUint32 * aGroupConfigsSize, IDHCPGroupConfig * * * aGroupConfigs) { return smth GetGroupConfigs (aGroupConfigsSize, aGroupConfigs); }
#define COM_FORWARD_IDHCPServer_GETTER_GroupConfigs_TO_OBJ(obj) COM_FORWARD_IDHCPServer_GETTER_GroupConfigs_TO ((obj)->)
#define COM_FORWARD_IDHCPServer_GETTER_GroupConfigs_TO_BASE(base) COM_FORWARD_IDHCPServer_GETTER_GroupConfigs_TO (base::)
#define COM_FORWARD_IDHCPServer_GETTER_IndividualConfigs_TO(smth) NS_IMETHOD GetIndividualConfigs (PRUint32 * aIndividualConfigsSize, IDHCPIndividualConfig * * * aIndividualConfigs) { return smth GetIndividualConfigs (aIndividualConfigsSize, aIndividualConfigs); }
#define COM_FORWARD_IDHCPServer_GETTER_IndividualConfigs_TO_OBJ(obj) COM_FORWARD_IDHCPServer_GETTER_IndividualConfigs_TO ((obj)->)
#define COM_FORWARD_IDHCPServer_GETTER_IndividualConfigs_TO_BASE(base) COM_FORWARD_IDHCPServer_GETTER_IndividualConfigs_TO (base::)
#define COM_FORWARD_IDHCPServer_SetConfiguration_TO(smth) NS_IMETHOD SetConfiguration (PRUnichar * aIPAddress, PRUnichar * aNetworkMask, PRUnichar * aFromIPAddress, PRUnichar * aToIPAddress) { return smth SetConfiguration (aIPAddress, aNetworkMask, aFromIPAddress, aToIPAddress); }
#define COM_FORWARD_IDHCPServer_SetConfiguration_TO_OBJ(obj) COM_FORWARD_IDHCPServer_SetConfiguration_TO ((obj)->)
#define COM_FORWARD_IDHCPServer_SetConfiguration_TO_BASE(base) COM_FORWARD_IDHCPServer_SetConfiguration_TO (base::)
#define COM_FORWARD_IDHCPServer_Start_TO(smth) NS_IMETHOD Start (PRUnichar * aTrunkName, PRUnichar * aTrunkType) { return smth Start (aTrunkName, aTrunkType); }
#define COM_FORWARD_IDHCPServer_Start_TO_OBJ(obj) COM_FORWARD_IDHCPServer_Start_TO ((obj)->)
#define COM_FORWARD_IDHCPServer_Start_TO_BASE(base) COM_FORWARD_IDHCPServer_Start_TO (base::)
#define COM_FORWARD_IDHCPServer_Stop_TO(smth) NS_IMETHOD Stop() { return smth Stop(); }
#define COM_FORWARD_IDHCPServer_Stop_TO_OBJ(obj) COM_FORWARD_IDHCPServer_Stop_TO ((obj)->)
#define COM_FORWARD_IDHCPServer_Stop_TO_BASE(base) COM_FORWARD_IDHCPServer_Stop_TO (base::)
#define COM_FORWARD_IDHCPServer_Restart_TO(smth) NS_IMETHOD Restart() { return smth Restart(); }
#define COM_FORWARD_IDHCPServer_Restart_TO_OBJ(obj) COM_FORWARD_IDHCPServer_Restart_TO ((obj)->)
#define COM_FORWARD_IDHCPServer_Restart_TO_BASE(base) COM_FORWARD_IDHCPServer_Restart_TO (base::)
#define COM_FORWARD_IDHCPServer_FindLeaseByMAC_TO(smth) NS_IMETHOD FindLeaseByMAC (PRUnichar * aMac, PRInt32 aType, PRUnichar * * aAddress, PRUnichar * * aState, PRInt64 * aIssued, PRInt64 * aExpire) { return smth FindLeaseByMAC (aMac, aType, aAddress, aState, aIssued, aExpire); }
#define COM_FORWARD_IDHCPServer_FindLeaseByMAC_TO_OBJ(obj) COM_FORWARD_IDHCPServer_FindLeaseByMAC_TO ((obj)->)
#define COM_FORWARD_IDHCPServer_FindLeaseByMAC_TO_BASE(base) COM_FORWARD_IDHCPServer_FindLeaseByMAC_TO (base::)
#define COM_FORWARD_IDHCPServer_GetConfig_TO(smth) NS_IMETHOD GetConfig (PRUint32 aScope, PRUnichar * aName, PRUint32 aSlot, PRBool aMayAdd, IDHCPConfig * * aConfig) { return smth GetConfig (aScope, aName, aSlot, aMayAdd, aConfig); }
#define COM_FORWARD_IDHCPServer_GetConfig_TO_OBJ(obj) COM_FORWARD_IDHCPServer_GetConfig_TO ((obj)->)
#define COM_FORWARD_IDHCPServer_GetConfig_TO_BASE(base) COM_FORWARD_IDHCPServer_GetConfig_TO (base::)
#define COM_FORWARD_IDHCPServer_TO(smth) NS_FORWARD_IDHCPSERVER (smth)
#define COM_FORWARD_IDHCPServer_TO_OBJ(obj) COM_FORWARD_IDHCPServer_TO ((obj)->)
#define COM_FORWARD_IDHCPServer_TO_BASE(base) COM_FORWARD_IDHCPServer_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IDHCPServer;
%}

[
    uuid(00f4a8dc-0002-4b81-0077-1dcb004571ba),
    scriptable
]
interface IDHCPConfig : nsISupports
{
    readonly attribute DHCPConfigScope_T scope;

    attribute unsigned long minLeaseTime;

    attribute unsigned long defaultLeaseTime;

    attribute unsigned long maxLeaseTime;

    void getForcedOptions (
        out unsigned long forcedOptionsSize,
        [array, size_is(forcedOptionsSize), retval] out DHCPOption_T forcedOptions
    );
    void setForcedOptions (
        in unsigned long forcedOptionsSize,
        [array, size_is(forcedOptionsSize)] in DHCPOption_T forcedOptions
    );

    void getSuppressedOptions (
        out unsigned long suppressedOptionsSize,
        [array, size_is(suppressedOptionsSize), retval] out DHCPOption_T suppressedOptions
    );
    void setSuppressedOptions (
        in unsigned long suppressedOptionsSize,
        [array, size_is(suppressedOptionsSize)] in DHCPOption_T suppressedOptions
    );

    readonly attribute unsigned long InternalAndReservedAttribute1IDHCPConfig;

    readonly attribute unsigned long InternalAndReservedAttribute2IDHCPConfig;

    readonly attribute unsigned long InternalAndReservedAttribute3IDHCPConfig;

    readonly attribute unsigned long InternalAndReservedAttribute4IDHCPConfig;

    readonly attribute unsigned long InternalAndReservedAttribute5IDHCPConfig;

    readonly attribute unsigned long InternalAndReservedAttribute6IDHCPConfig;

    readonly attribute unsigned long InternalAndReservedAttribute7IDHCPConfig;

    readonly attribute unsigned long InternalAndReservedAttribute8IDHCPConfig;

    readonly attribute unsigned long InternalAndReservedAttribute9IDHCPConfig;

    readonly attribute unsigned long InternalAndReservedAttribute10IDHCPConfig;

    readonly attribute unsigned long InternalAndReservedAttribute11IDHCPConfig;

    readonly attribute unsigned long InternalAndReservedAttribute12IDHCPConfig;

    readonly attribute unsigned long InternalAndReservedAttribute13IDHCPConfig;

    readonly attribute unsigned long InternalAndReservedAttribute14IDHCPConfig;

    readonly attribute unsigned long InternalAndReservedAttribute15IDHCPConfig;

    readonly attribute unsigned long InternalAndReservedAttribute16IDHCPConfig;

    void setOption (
        in DHCPOption_T option,
        in DHCPOptionEncoding_T encoding,
        in wstring value
    );

    void removeOption (
        in DHCPOption_T option
    );

    void removeAllOptions();

    void getOption (
        in DHCPOption_T option,
        out DHCPOptionEncoding_T encoding,
        [retval] out wstring value
    );

    void getAllOptions (
        out unsigned long optionsSize,
        [array, size_is(optionsSize)] out DHCPOption_T options,
        out unsigned long encodingsSize,
        [array, size_is(encodingsSize)] out DHCPOptionEncoding_T encodings,
        out unsigned long valuesSize,
        [array, size_is(valuesSize) , retval] out wstring values
    );

    void remove();

    void InternalAndReservedMethod1IDHCPConfig();

    void InternalAndReservedMethod2IDHCPConfig();

    void InternalAndReservedMethod3IDHCPConfig();

    void InternalAndReservedMethod4IDHCPConfig();

    void InternalAndReservedMethod5IDHCPConfig();

    void InternalAndReservedMethod6IDHCPConfig();

    void InternalAndReservedMethod7IDHCPConfig();

    void InternalAndReservedMethod8IDHCPConfig();

}; /* interface IDHCPConfig */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IDHCPConfig_GETTER_Scope_TO(smth) NS_IMETHOD GetScope (PRUint32 * aScope) { return smth GetScope (aScope); }
#define COM_FORWARD_IDHCPConfig_GETTER_Scope_TO_OBJ(obj) COM_FORWARD_IDHCPConfig_GETTER_Scope_TO ((obj)->)
#define COM_FORWARD_IDHCPConfig_GETTER_Scope_TO_BASE(base) COM_FORWARD_IDHCPConfig_GETTER_Scope_TO (base::)
#define COM_FORWARD_IDHCPConfig_GETTER_MinLeaseTime_TO(smth) NS_IMETHOD GetMinLeaseTime (PRUint32 * aMinLeaseTime) { return smth GetMinLeaseTime (aMinLeaseTime); }
#define COM_FORWARD_IDHCPConfig_GETTER_MinLeaseTime_TO_OBJ(obj) COM_FORWARD_IDHCPConfig_GETTER_MinLeaseTime_TO ((obj)->)
#define COM_FORWARD_IDHCPConfig_GETTER_MinLeaseTime_TO_BASE(base) COM_FORWARD_IDHCPConfig_GETTER_MinLeaseTime_TO (base::)
#define COM_FORWARD_IDHCPConfig_SETTER_MinLeaseTime_TO(smth) NS_IMETHOD SetMinLeaseTime (PRUint32 aMinLeaseTime) { return smth SetMinLeaseTime (aMinLeaseTime); }
#define COM_FORWARD_IDHCPConfig_SETTER_MinLeaseTime_TO_OBJ(obj) COM_FORWARD_IDHCPConfig_SETTER_MinLeaseTime_TO ((obj)->)
#define COM_FORWARD_IDHCPConfig_SETTER_MinLeaseTime_TO_BASE(base) COM_FORWARD_IDHCPConfig_SETTER_MinLeaseTime_TO (base::)
#define COM_FORWARD_IDHCPConfig_GETTER_DefaultLeaseTime_TO(smth) NS_IMETHOD GetDefaultLeaseTime (PRUint32 * aDefaultLeaseTime) { return smth GetDefaultLeaseTime (aDefaultLeaseTime); }
#define COM_FORWARD_IDHCPConfig_GETTER_DefaultLeaseTime_TO_OBJ(obj) COM_FORWARD_IDHCPConfig_GETTER_DefaultLeaseTime_TO ((obj)->)
#define COM_FORWARD_IDHCPConfig_GETTER_DefaultLeaseTime_TO_BASE(base) COM_FORWARD_IDHCPConfig_GETTER_DefaultLeaseTime_TO (base::)
#define COM_FORWARD_IDHCPConfig_SETTER_DefaultLeaseTime_TO(smth) NS_IMETHOD SetDefaultLeaseTime (PRUint32 aDefaultLeaseTime) { return smth SetDefaultLeaseTime (aDefaultLeaseTime); }
#define COM_FORWARD_IDHCPConfig_SETTER_DefaultLeaseTime_TO_OBJ(obj) COM_FORWARD_IDHCPConfig_SETTER_DefaultLeaseTime_TO ((obj)->)
#define COM_FORWARD_IDHCPConfig_SETTER_DefaultLeaseTime_TO_BASE(base) COM_FORWARD_IDHCPConfig_SETTER_DefaultLeaseTime_TO (base::)
#define COM_FORWARD_IDHCPConfig_GETTER_MaxLeaseTime_TO(smth) NS_IMETHOD GetMaxLeaseTime (PRUint32 * aMaxLeaseTime) { return smth GetMaxLeaseTime (aMaxLeaseTime); }
#define COM_FORWARD_IDHCPConfig_GETTER_MaxLeaseTime_TO_OBJ(obj) COM_FORWARD_IDHCPConfig_GETTER_MaxLeaseTime_TO ((obj)->)
#define COM_FORWARD_IDHCPConfig_GETTER_MaxLeaseTime_TO_BASE(base) COM_FORWARD_IDHCPConfig_GETTER_MaxLeaseTime_TO (base::)
#define COM_FORWARD_IDHCPConfig_SETTER_MaxLeaseTime_TO(smth) NS_IMETHOD SetMaxLeaseTime (PRUint32 aMaxLeaseTime) { return smth SetMaxLeaseTime (aMaxLeaseTime); }
#define COM_FORWARD_IDHCPConfig_SETTER_MaxLeaseTime_TO_OBJ(obj) COM_FORWARD_IDHCPConfig_SETTER_MaxLeaseTime_TO ((obj)->)
#define COM_FORWARD_IDHCPConfig_SETTER_MaxLeaseTime_TO_BASE(base) COM_FORWARD_IDHCPConfig_SETTER_MaxLeaseTime_TO (base::)
#define COM_FORWARD_IDHCPConfig_GETTER_ForcedOptions_TO(smth) NS_IMETHOD GetForcedOptions (PRUint32 * aForcedOptionsSize, PRUint32 * * aForcedOptions) { return smth GetForcedOptions (aForcedOptionsSize, aForcedOptions); }
#define COM_FORWARD_IDHCPConfig_GETTER_ForcedOptions_TO_OBJ(obj) COM_FORWARD_IDHCPConfig_GETTER_ForcedOptions_TO ((obj)->)
#define COM_FORWARD_IDHCPConfig_GETTER_ForcedOptions_TO_BASE(base) COM_FORWARD_IDHCPConfig_GETTER_ForcedOptions_TO (base::)
#define COM_FORWARD_IDHCPConfig_SETTER_ForcedOptions_TO(smth) NS_IMETHOD SetForcedOptions (PRUint32 aForcedOptionsSize, PRUint32 * aForcedOptions) { return smth SetForcedOptions (aForcedOptions); }
#define COM_FORWARD_IDHCPConfig_SETTER_ForcedOptions_TO_OBJ(obj) COM_FORWARD_IDHCPConfig_SETTER_ForcedOptions_TO ((obj)->)
#define COM_FORWARD_IDHCPConfig_SETTER_ForcedOptions_TO_BASE(base) COM_FORWARD_IDHCPConfig_SETTER_ForcedOptions_TO (base::)
#define COM_FORWARD_IDHCPConfig_GETTER_SuppressedOptions_TO(smth) NS_IMETHOD GetSuppressedOptions (PRUint32 * aSuppressedOptionsSize, PRUint32 * * aSuppressedOptions) { return smth GetSuppressedOptions (aSuppressedOptionsSize, aSuppressedOptions); }
#define COM_FORWARD_IDHCPConfig_GETTER_SuppressedOptions_TO_OBJ(obj) COM_FORWARD_IDHCPConfig_GETTER_SuppressedOptions_TO ((obj)->)
#define COM_FORWARD_IDHCPConfig_GETTER_SuppressedOptions_TO_BASE(base) COM_FORWARD_IDHCPConfig_GETTER_SuppressedOptions_TO (base::)
#define COM_FORWARD_IDHCPConfig_SETTER_SuppressedOptions_TO(smth) NS_IMETHOD SetSuppressedOptions (PRUint32 aSuppressedOptionsSize, PRUint32 * aSuppressedOptions) { return smth SetSuppressedOptions (aSuppressedOptions); }
#define COM_FORWARD_IDHCPConfig_SETTER_SuppressedOptions_TO_OBJ(obj) COM_FORWARD_IDHCPConfig_SETTER_SuppressedOptions_TO ((obj)->)
#define COM_FORWARD_IDHCPConfig_SETTER_SuppressedOptions_TO_BASE(base) COM_FORWARD_IDHCPConfig_SETTER_SuppressedOptions_TO (base::)
#define COM_FORWARD_IDHCPConfig_SetOption_TO(smth) NS_IMETHOD SetOption (PRUint32 aOption, PRUint32 aEncoding, PRUnichar * aValue) { return smth SetOption (aOption, aEncoding, aValue); }
#define COM_FORWARD_IDHCPConfig_SetOption_TO_OBJ(obj) COM_FORWARD_IDHCPConfig_SetOption_TO ((obj)->)
#define COM_FORWARD_IDHCPConfig_SetOption_TO_BASE(base) COM_FORWARD_IDHCPConfig_SetOption_TO (base::)
#define COM_FORWARD_IDHCPConfig_RemoveOption_TO(smth) NS_IMETHOD RemoveOption (PRUint32 aOption) { return smth RemoveOption (aOption); }
#define COM_FORWARD_IDHCPConfig_RemoveOption_TO_OBJ(obj) COM_FORWARD_IDHCPConfig_RemoveOption_TO ((obj)->)
#define COM_FORWARD_IDHCPConfig_RemoveOption_TO_BASE(base) COM_FORWARD_IDHCPConfig_RemoveOption_TO (base::)
#define COM_FORWARD_IDHCPConfig_RemoveAllOptions_TO(smth) NS_IMETHOD RemoveAllOptions() { return smth RemoveAllOptions(); }
#define COM_FORWARD_IDHCPConfig_RemoveAllOptions_TO_OBJ(obj) COM_FORWARD_IDHCPConfig_RemoveAllOptions_TO ((obj)->)
#define COM_FORWARD_IDHCPConfig_RemoveAllOptions_TO_BASE(base) COM_FORWARD_IDHCPConfig_RemoveAllOptions_TO (base::)
#define COM_FORWARD_IDHCPConfig_GetOption_TO(smth) NS_IMETHOD GetOption (PRUint32 aOption, PRUint32 * aEncoding, PRUnichar * * aValue) { return smth GetOption (aOption, aEncoding, aValue); }
#define COM_FORWARD_IDHCPConfig_GetOption_TO_OBJ(obj) COM_FORWARD_IDHCPConfig_GetOption_TO ((obj)->)
#define COM_FORWARD_IDHCPConfig_GetOption_TO_BASE(base) COM_FORWARD_IDHCPConfig_GetOption_TO (base::)
#define COM_FORWARD_IDHCPConfig_GetAllOptions_TO(smth) NS_IMETHOD GetAllOptions (PRUint32 * aOptionsSize, PRUint32 * * aOptions, PRUint32 * aEncodingsSize, PRUint32 * * aEncodings, PRUint32 * aValuesSize, PRUnichar * * * aValues) { return smth GetAllOptions (aOptionsSize+++, aOptions, aEncodingsSize+++, aEncodings, aValuesSize, aValues); }
#define COM_FORWARD_IDHCPConfig_GetAllOptions_TO_OBJ(obj) COM_FORWARD_IDHCPConfig_GetAllOptions_TO ((obj)->)
#define COM_FORWARD_IDHCPConfig_GetAllOptions_TO_BASE(base) COM_FORWARD_IDHCPConfig_GetAllOptions_TO (base::)
#define COM_FORWARD_IDHCPConfig_Remove_TO(smth) NS_IMETHOD Remove() { return smth Remove(); }
#define COM_FORWARD_IDHCPConfig_Remove_TO_OBJ(obj) COM_FORWARD_IDHCPConfig_Remove_TO ((obj)->)
#define COM_FORWARD_IDHCPConfig_Remove_TO_BASE(base) COM_FORWARD_IDHCPConfig_Remove_TO (base::)
#define COM_FORWARD_IDHCPConfig_TO(smth) NS_FORWARD_IDHCPCONFIG (smth)
#define COM_FORWARD_IDHCPConfig_TO_OBJ(obj) COM_FORWARD_IDHCPConfig_TO ((obj)->)
#define COM_FORWARD_IDHCPConfig_TO_BASE(base) COM_FORWARD_IDHCPConfig_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IDHCPConfig;
%}

[
    uuid(46735de7-f4c4-4020-a185-0d2881bcfa8b),
    scriptable
]
interface IDHCPGlobalConfig : IDHCPConfig
{
    readonly attribute unsigned long InternalAndReservedAttribute1IDHCPGlobalConfig;

    readonly attribute unsigned long InternalAndReservedAttribute2IDHCPGlobalConfig;

    readonly attribute unsigned long InternalAndReservedAttribute3IDHCPGlobalConfig;

    readonly attribute unsigned long InternalAndReservedAttribute4IDHCPGlobalConfig;

    void InternalAndReservedMethod1IDHCPGlobalConfig();

    void InternalAndReservedMethod2IDHCPGlobalConfig();

    void InternalAndReservedMethod3IDHCPGlobalConfig();

    void InternalAndReservedMethod4IDHCPGlobalConfig();

}; /* interface IDHCPGlobalConfig */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IDHCPGlobalConfig_TO(smth) NS_FORWARD_IDHCPGLOBALCONFIG (smth)
#define COM_FORWARD_IDHCPGlobalConfig_TO_OBJ(obj) COM_FORWARD_IDHCPGlobalConfig_TO ((obj)->)
#define COM_FORWARD_IDHCPGlobalConfig_TO_BASE(base) COM_FORWARD_IDHCPGlobalConfig_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IDHCPGlobalConfig;
%}

[
    uuid(5ca9e537-5a1d-43f1-6f27-6a0db298a9a8),
    scriptable
]
interface IDHCPGroupCondition : nsISupports
{
    attribute boolean inclusive;

    attribute DHCPGroupConditionType_T type;

    attribute wstring value;

    readonly attribute unsigned long InternalAndReservedAttribute1IDHCPGroupCondition;

    readonly attribute unsigned long InternalAndReservedAttribute2IDHCPGroupCondition;

    readonly attribute unsigned long InternalAndReservedAttribute3IDHCPGroupCondition;

    void remove();

    void InternalAndReservedMethod1IDHCPGroupCondition();

    void InternalAndReservedMethod2IDHCPGroupCondition();

    void InternalAndReservedMethod3IDHCPGroupCondition();

}; /* interface IDHCPGroupCondition */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IDHCPGroupCondition_GETTER_Inclusive_TO(smth) NS_IMETHOD GetInclusive (PRBool * aInclusive) { return smth GetInclusive (aInclusive); }
#define COM_FORWARD_IDHCPGroupCondition_GETTER_Inclusive_TO_OBJ(obj) COM_FORWARD_IDHCPGroupCondition_GETTER_Inclusive_TO ((obj)->)
#define COM_FORWARD_IDHCPGroupCondition_GETTER_Inclusive_TO_BASE(base) COM_FORWARD_IDHCPGroupCondition_GETTER_Inclusive_TO (base::)
#define COM_FORWARD_IDHCPGroupCondition_SETTER_Inclusive_TO(smth) NS_IMETHOD SetInclusive (PRBool aInclusive) { return smth SetInclusive (aInclusive); }
#define COM_FORWARD_IDHCPGroupCondition_SETTER_Inclusive_TO_OBJ(obj) COM_FORWARD_IDHCPGroupCondition_SETTER_Inclusive_TO ((obj)->)
#define COM_FORWARD_IDHCPGroupCondition_SETTER_Inclusive_TO_BASE(base) COM_FORWARD_IDHCPGroupCondition_SETTER_Inclusive_TO (base::)
#define COM_FORWARD_IDHCPGroupCondition_GETTER_Type_TO(smth) NS_IMETHOD GetType (PRUint32 * aType) { return smth GetType (aType); }
#define COM_FORWARD_IDHCPGroupCondition_GETTER_Type_TO_OBJ(obj) COM_FORWARD_IDHCPGroupCondition_GETTER_Type_TO ((obj)->)
#define COM_FORWARD_IDHCPGroupCondition_GETTER_Type_TO_BASE(base) COM_FORWARD_IDHCPGroupCondition_GETTER_Type_TO (base::)
#define COM_FORWARD_IDHCPGroupCondition_SETTER_Type_TO(smth) NS_IMETHOD SetType (PRUint32 aType) { return smth SetType (aType); }
#define COM_FORWARD_IDHCPGroupCondition_SETTER_Type_TO_OBJ(obj) COM_FORWARD_IDHCPGroupCondition_SETTER_Type_TO ((obj)->)
#define COM_FORWARD_IDHCPGroupCondition_SETTER_Type_TO_BASE(base) COM_FORWARD_IDHCPGroupCondition_SETTER_Type_TO (base::)
#define COM_FORWARD_IDHCPGroupCondition_GETTER_Value_TO(smth) NS_IMETHOD GetValue (PRUnichar * * aValue) { return smth GetValue (aValue); }
#define COM_FORWARD_IDHCPGroupCondition_GETTER_Value_TO_OBJ(obj) COM_FORWARD_IDHCPGroupCondition_GETTER_Value_TO ((obj)->)
#define COM_FORWARD_IDHCPGroupCondition_GETTER_Value_TO_BASE(base) COM_FORWARD_IDHCPGroupCondition_GETTER_Value_TO (base::)
#define COM_FORWARD_IDHCPGroupCondition_SETTER_Value_TO(smth) NS_IMETHOD SetValue (const PRUnichar * aValue) { return smth SetValue (aValue); }
#define COM_FORWARD_IDHCPGroupCondition_SETTER_Value_TO_OBJ(obj) COM_FORWARD_IDHCPGroupCondition_SETTER_Value_TO ((obj)->)
#define COM_FORWARD_IDHCPGroupCondition_SETTER_Value_TO_BASE(base) COM_FORWARD_IDHCPGroupCondition_SETTER_Value_TO (base::)
#define COM_FORWARD_IDHCPGroupCondition_Remove_TO(smth) NS_IMETHOD Remove() { return smth Remove(); }
#define COM_FORWARD_IDHCPGroupCondition_Remove_TO_OBJ(obj) COM_FORWARD_IDHCPGroupCondition_Remove_TO ((obj)->)
#define COM_FORWARD_IDHCPGroupCondition_Remove_TO_BASE(base) COM_FORWARD_IDHCPGroupCondition_Remove_TO (base::)
#define COM_FORWARD_IDHCPGroupCondition_TO(smth) NS_FORWARD_IDHCPGROUPCONDITION (smth)
#define COM_FORWARD_IDHCPGroupCondition_TO_OBJ(obj) COM_FORWARD_IDHCPGroupCondition_TO ((obj)->)
#define COM_FORWARD_IDHCPGroupCondition_TO_BASE(base) COM_FORWARD_IDHCPGroupCondition_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IDHCPGroupCondition;
%}

[
    uuid(537707f7-ebf9-4d5c-7aea-877bfc4256ba),
    scriptable
]
interface IDHCPGroupConfig : IDHCPConfig
{
    attribute wstring name;

    void getConditions (
        out unsigned long conditionsSize,
        [array, size_is(conditionsSize), retval] out IDHCPGroupCondition conditions
    );

    readonly attribute unsigned long InternalAndReservedAttribute1IDHCPGroupConfig;

    readonly attribute unsigned long InternalAndReservedAttribute2IDHCPGroupConfig;

    readonly attribute unsigned long InternalAndReservedAttribute3IDHCPGroupConfig;

    readonly attribute unsigned long InternalAndReservedAttribute4IDHCPGroupConfig;

    readonly attribute unsigned long InternalAndReservedAttribute5IDHCPGroupConfig;

    readonly attribute unsigned long InternalAndReservedAttribute6IDHCPGroupConfig;

    readonly attribute unsigned long InternalAndReservedAttribute7IDHCPGroupConfig;

    readonly attribute unsigned long InternalAndReservedAttribute8IDHCPGroupConfig;

    void addCondition (
        in boolean inclusive,
        in DHCPGroupConditionType_T type,
        in wstring value,
        [retval] out IDHCPGroupCondition condition
    );

    void removeAllConditions();

    void InternalAndReservedMethod1IDHCPGroupConfig();

    void InternalAndReservedMethod2IDHCPGroupConfig();

    void InternalAndReservedMethod3IDHCPGroupConfig();

    void InternalAndReservedMethod4IDHCPGroupConfig();

    void InternalAndReservedMethod5IDHCPGroupConfig();

    void InternalAndReservedMethod6IDHCPGroupConfig();

    void InternalAndReservedMethod7IDHCPGroupConfig();

    void InternalAndReservedMethod8IDHCPGroupConfig();

}; /* interface IDHCPGroupConfig */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IDHCPGroupConfig_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_IDHCPGroupConfig_GETTER_Name_TO_OBJ(obj) COM_FORWARD_IDHCPGroupConfig_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_IDHCPGroupConfig_GETTER_Name_TO_BASE(base) COM_FORWARD_IDHCPGroupConfig_GETTER_Name_TO (base::)
#define COM_FORWARD_IDHCPGroupConfig_SETTER_Name_TO(smth) NS_IMETHOD SetName (const PRUnichar * aName) { return smth SetName (aName); }
#define COM_FORWARD_IDHCPGroupConfig_SETTER_Name_TO_OBJ(obj) COM_FORWARD_IDHCPGroupConfig_SETTER_Name_TO ((obj)->)
#define COM_FORWARD_IDHCPGroupConfig_SETTER_Name_TO_BASE(base) COM_FORWARD_IDHCPGroupConfig_SETTER_Name_TO (base::)
#define COM_FORWARD_IDHCPGroupConfig_GETTER_Conditions_TO(smth) NS_IMETHOD GetConditions (PRUint32 * aConditionsSize, IDHCPGroupCondition * * * aConditions) { return smth GetConditions (aConditionsSize, aConditions); }
#define COM_FORWARD_IDHCPGroupConfig_GETTER_Conditions_TO_OBJ(obj) COM_FORWARD_IDHCPGroupConfig_GETTER_Conditions_TO ((obj)->)
#define COM_FORWARD_IDHCPGroupConfig_GETTER_Conditions_TO_BASE(base) COM_FORWARD_IDHCPGroupConfig_GETTER_Conditions_TO (base::)
#define COM_FORWARD_IDHCPGroupConfig_AddCondition_TO(smth) NS_IMETHOD AddCondition (PRBool aInclusive, PRUint32 aType, PRUnichar * aValue, IDHCPGroupCondition * * aCondition) { return smth AddCondition (aInclusive, aType, aValue, aCondition); }
#define COM_FORWARD_IDHCPGroupConfig_AddCondition_TO_OBJ(obj) COM_FORWARD_IDHCPGroupConfig_AddCondition_TO ((obj)->)
#define COM_FORWARD_IDHCPGroupConfig_AddCondition_TO_BASE(base) COM_FORWARD_IDHCPGroupConfig_AddCondition_TO (base::)
#define COM_FORWARD_IDHCPGroupConfig_RemoveAllConditions_TO(smth) NS_IMETHOD RemoveAllConditions() { return smth RemoveAllConditions(); }
#define COM_FORWARD_IDHCPGroupConfig_RemoveAllConditions_TO_OBJ(obj) COM_FORWARD_IDHCPGroupConfig_RemoveAllConditions_TO ((obj)->)
#define COM_FORWARD_IDHCPGroupConfig_RemoveAllConditions_TO_BASE(base) COM_FORWARD_IDHCPGroupConfig_RemoveAllConditions_TO (base::)
#define COM_FORWARD_IDHCPGroupConfig_TO(smth) NS_FORWARD_IDHCPGROUPCONFIG (smth)
#define COM_FORWARD_IDHCPGroupConfig_TO_OBJ(obj) COM_FORWARD_IDHCPGroupConfig_TO ((obj)->)
#define COM_FORWARD_IDHCPGroupConfig_TO_BASE(base) COM_FORWARD_IDHCPGroupConfig_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IDHCPGroupConfig;
%}

[
    uuid(c40c2b86-73a5-46cc-8227-93fe57d006a6),
    scriptable
]
interface IDHCPIndividualConfig : IDHCPConfig
{
    readonly attribute wstring MACAddress;

    readonly attribute wstring machineId;

    readonly attribute unsigned long slot;

    attribute wstring fixedAddress;

    readonly attribute unsigned long InternalAndReservedAttribute1IDHCPIndividualConfig;

    readonly attribute unsigned long InternalAndReservedAttribute2IDHCPIndividualConfig;

    readonly attribute unsigned long InternalAndReservedAttribute3IDHCPIndividualConfig;

    readonly attribute unsigned long InternalAndReservedAttribute4IDHCPIndividualConfig;

    readonly attribute unsigned long InternalAndReservedAttribute5IDHCPIndividualConfig;

    readonly attribute unsigned long InternalAndReservedAttribute6IDHCPIndividualConfig;

    readonly attribute unsigned long InternalAndReservedAttribute7IDHCPIndividualConfig;

    readonly attribute unsigned long InternalAndReservedAttribute8IDHCPIndividualConfig;

    void InternalAndReservedMethod1IDHCPIndividualConfig();

    void InternalAndReservedMethod2IDHCPIndividualConfig();

    void InternalAndReservedMethod3IDHCPIndividualConfig();

    void InternalAndReservedMethod4IDHCPIndividualConfig();

    void InternalAndReservedMethod5IDHCPIndividualConfig();

    void InternalAndReservedMethod6IDHCPIndividualConfig();

    void InternalAndReservedMethod7IDHCPIndividualConfig();

    void InternalAndReservedMethod8IDHCPIndividualConfig();

}; /* interface IDHCPIndividualConfig */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IDHCPIndividualConfig_GETTER_MACAddress_TO(smth) NS_IMETHOD GetMACAddress (PRUnichar * * aMACAddress) { return smth GetMACAddress (aMACAddress); }
#define COM_FORWARD_IDHCPIndividualConfig_GETTER_MACAddress_TO_OBJ(obj) COM_FORWARD_IDHCPIndividualConfig_GETTER_MACAddress_TO ((obj)->)
#define COM_FORWARD_IDHCPIndividualConfig_GETTER_MACAddress_TO_BASE(base) COM_FORWARD_IDHCPIndividualConfig_GETTER_MACAddress_TO (base::)
#define COM_FORWARD_IDHCPIndividualConfig_GETTER_MachineId_TO(smth) NS_IMETHOD GetMachineId (PRUnichar * * aMachineId) { return smth GetMachineId (aMachineId); }
#define COM_FORWARD_IDHCPIndividualConfig_GETTER_MachineId_TO_OBJ(obj) COM_FORWARD_IDHCPIndividualConfig_GETTER_MachineId_TO ((obj)->)
#define COM_FORWARD_IDHCPIndividualConfig_GETTER_MachineId_TO_BASE(base) COM_FORWARD_IDHCPIndividualConfig_GETTER_MachineId_TO (base::)
#define COM_FORWARD_IDHCPIndividualConfig_GETTER_Slot_TO(smth) NS_IMETHOD GetSlot (PRUint32 * aSlot) { return smth GetSlot (aSlot); }
#define COM_FORWARD_IDHCPIndividualConfig_GETTER_Slot_TO_OBJ(obj) COM_FORWARD_IDHCPIndividualConfig_GETTER_Slot_TO ((obj)->)
#define COM_FORWARD_IDHCPIndividualConfig_GETTER_Slot_TO_BASE(base) COM_FORWARD_IDHCPIndividualConfig_GETTER_Slot_TO (base::)
#define COM_FORWARD_IDHCPIndividualConfig_GETTER_FixedAddress_TO(smth) NS_IMETHOD GetFixedAddress (PRUnichar * * aFixedAddress) { return smth GetFixedAddress (aFixedAddress); }
#define COM_FORWARD_IDHCPIndividualConfig_GETTER_FixedAddress_TO_OBJ(obj) COM_FORWARD_IDHCPIndividualConfig_GETTER_FixedAddress_TO ((obj)->)
#define COM_FORWARD_IDHCPIndividualConfig_GETTER_FixedAddress_TO_BASE(base) COM_FORWARD_IDHCPIndividualConfig_GETTER_FixedAddress_TO (base::)
#define COM_FORWARD_IDHCPIndividualConfig_SETTER_FixedAddress_TO(smth) NS_IMETHOD SetFixedAddress (const PRUnichar * aFixedAddress) { return smth SetFixedAddress (aFixedAddress); }
#define COM_FORWARD_IDHCPIndividualConfig_SETTER_FixedAddress_TO_OBJ(obj) COM_FORWARD_IDHCPIndividualConfig_SETTER_FixedAddress_TO ((obj)->)
#define COM_FORWARD_IDHCPIndividualConfig_SETTER_FixedAddress_TO_BASE(base) COM_FORWARD_IDHCPIndividualConfig_SETTER_FixedAddress_TO (base::)
#define COM_FORWARD_IDHCPIndividualConfig_TO(smth) NS_FORWARD_IDHCPINDIVIDUALCONFIG (smth)
#define COM_FORWARD_IDHCPIndividualConfig_TO_OBJ(obj) COM_FORWARD_IDHCPIndividualConfig_TO ((obj)->)
#define COM_FORWARD_IDHCPIndividualConfig_TO_BASE(base) COM_FORWARD_IDHCPIndividualConfig_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IDHCPIndividualConfig;
%}

[
    uuid(d0a0163f-e254-4e5b-a1f2-011cf991c38d),
    scriptable
]
interface IVirtualBox : nsISupports
{
    readonly attribute wstring version;

    readonly attribute wstring versionNormalized;

    readonly attribute unsigned long revision;

    readonly attribute wstring packageType;

    readonly attribute wstring APIVersion;

    readonly attribute long long APIRevision;

    readonly attribute wstring homeFolder;

    readonly attribute wstring settingsFilePath;

    readonly attribute IHost host;

    readonly attribute ISystemProperties systemProperties;

    void getMachines (
        out unsigned long machinesSize,
        [array, size_is(machinesSize), retval] out IMachine machines
    );

    void getMachineGroups (
        out unsigned long machineGroupsSize,
        [array, size_is(machineGroupsSize), retval] out wstring machineGroups
    );

    void getHardDisks (
        out unsigned long hardDisksSize,
        [array, size_is(hardDisksSize), retval] out IMedium hardDisks
    );

    void getDVDImages (
        out unsigned long DVDImagesSize,
        [array, size_is(DVDImagesSize), retval] out IMedium DVDImages
    );

    void getFloppyImages (
        out unsigned long floppyImagesSize,
        [array, size_is(floppyImagesSize), retval] out IMedium floppyImages
    );

    void getProgressOperations (
        out unsigned long progressOperationsSize,
        [array, size_is(progressOperationsSize), retval] out IProgress progressOperations
    );

    void getGuestOSTypes (
        out unsigned long guestOSTypesSize,
        [array, size_is(guestOSTypesSize), retval] out IGuestOSType guestOSTypes
    );

    void getSharedFolders (
        out unsigned long sharedFoldersSize,
        [array, size_is(sharedFoldersSize), retval] out ISharedFolder sharedFolders
    );

    readonly attribute IPerformanceCollector performanceCollector;

    void getDHCPServers (
        out unsigned long DHCPServersSize,
        [array, size_is(DHCPServersSize), retval] out IDHCPServer DHCPServers
    );

    void getNATNetworks (
        out unsigned long NATNetworksSize,
        [array, size_is(NATNetworksSize), retval] out INATNetwork NATNetworks
    );

    readonly attribute IEventSource eventSource;

    readonly attribute IExtPackManager extensionPackManager;

    void getInternalNetworks (
        out unsigned long internalNetworksSize,
        [array, size_is(internalNetworksSize), retval] out wstring internalNetworks
    );

    void getGenericNetworkDrivers (
        out unsigned long genericNetworkDriversSize,
        [array, size_is(genericNetworkDriversSize), retval] out wstring genericNetworkDrivers
    );

    void getCloudNetworks (
        out unsigned long cloudNetworksSize,
        [array, size_is(cloudNetworksSize), retval] out ICloudNetwork cloudNetworks
    );

    readonly attribute ICloudProviderManager cloudProviderManager;

    readonly attribute unsigned long InternalAndReservedAttribute1IVirtualBox;

    readonly attribute unsigned long InternalAndReservedAttribute2IVirtualBox;

    readonly attribute unsigned long InternalAndReservedAttribute3IVirtualBox;

    readonly attribute unsigned long InternalAndReservedAttribute4IVirtualBox;

    readonly attribute unsigned long InternalAndReservedAttribute5IVirtualBox;

    readonly attribute unsigned long InternalAndReservedAttribute6IVirtualBox;

    readonly attribute unsigned long InternalAndReservedAttribute7IVirtualBox;

    readonly attribute unsigned long InternalAndReservedAttribute8IVirtualBox;

    readonly attribute unsigned long InternalAndReservedAttribute9IVirtualBox;

    readonly attribute unsigned long InternalAndReservedAttribute10IVirtualBox;

    readonly attribute unsigned long InternalAndReservedAttribute11IVirtualBox;

    readonly attribute unsigned long InternalAndReservedAttribute12IVirtualBox;

    void composeMachineFilename (
        in wstring name,
        in wstring group,
        in wstring createFlags,
        in wstring baseFolder,
        [retval] out wstring file
    );

    void createMachine (
        in wstring settingsFile,
        in wstring name,
        in unsigned long groupsSize,
        [array, size_is(groupsSize)] in wstring groups,
        in wstring osTypeId,
        in wstring flags,
        [retval] out IMachine machine
    );

    void openMachine (
        in wstring settingsFile,
        [retval] out IMachine machine
    );

    void registerMachine (
        in IMachine machine
    );

    void findMachine (
        in wstring nameOrId,
        [retval] out IMachine machine
    );

    void getMachinesByGroups (
        in unsigned long groupsSize,
        [array, size_is(groupsSize)] in wstring groups,
        out unsigned long machinesSize,
        [array, size_is(machinesSize) , retval] out IMachine machines
    );

    void getMachineStates (
        in unsigned long machinesSize,
        [array, size_is(machinesSize)] in IMachine machines,
        out unsigned long statesSize,
        [array, size_is(statesSize) , retval] out MachineState_T states
    );

    void createAppliance (
        [retval] out IAppliance appliance
    );

    void createUnattendedInstaller (
        [retval] out IUnattended unattended
    );

    void createMedium (
        in wstring format,
        in wstring location,
        in AccessMode_T accessMode,
        in DeviceType_T aDeviceTypeType,
        [retval] out IMedium medium
    );

    void openMedium (
        in wstring location,
        in DeviceType_T deviceType,
        in AccessMode_T accessMode,
        in boolean forceNewUuid,
        [retval] out IMedium medium
    );

    void getGuestOSType (
        in wstring id,
        [retval] out IGuestOSType type
    );

    void createSharedFolder (
        in wstring name,
        in wstring hostPath,
        in boolean writable,
        in boolean automount,
        in wstring autoMountPoint
    );

    void removeSharedFolder (
        in wstring name
    );

    void getExtraDataKeys (
        out unsigned long keysSize,
        [array, size_is(keysSize) , retval] out wstring keys
    );

    void getExtraData (
        in wstring key,
        [retval] out wstring value
    );

    void setExtraData (
        in wstring key,
        in wstring value
    );

    void setSettingsSecret (
        in wstring password
    );

    void createDHCPServer (
        in wstring name,
        [retval] out IDHCPServer server
    );

    void findDHCPServerByNetworkName (
        in wstring name,
        [retval] out IDHCPServer server
    );

    void removeDHCPServer (
        in IDHCPServer server
    );

    void createNATNetwork (
        in wstring networkName,
        [retval] out INATNetwork network
    );

    void findNATNetworkByName (
        in wstring networkName,
        [retval] out INATNetwork network
    );

    void removeNATNetwork (
        in INATNetwork network
    );

    void createCloudNetwork (
        in wstring networkName,
        [retval] out ICloudNetwork network
    );

    void findCloudNetworkByName (
        in wstring networkName,
        [retval] out ICloudNetwork network
    );

    void removeCloudNetwork (
        in ICloudNetwork network
    );

    void checkFirmwarePresent (
        in FirmwareType_T firmwareType,
        in wstring version,
        out wstring url,
        out wstring file,
        [retval] out boolean result
    );

    void InternalAndReservedMethod1IVirtualBox();

    void InternalAndReservedMethod2IVirtualBox();

    void InternalAndReservedMethod3IVirtualBox();

    void InternalAndReservedMethod4IVirtualBox();

    void InternalAndReservedMethod5IVirtualBox();

    void InternalAndReservedMethod6IVirtualBox();

    void InternalAndReservedMethod7IVirtualBox();

    void InternalAndReservedMethod8IVirtualBox();

}; /* interface IVirtualBox */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IVirtualBox_GETTER_Version_TO(smth) NS_IMETHOD GetVersion (PRUnichar * * aVersion) { return smth GetVersion (aVersion); }
#define COM_FORWARD_IVirtualBox_GETTER_Version_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_Version_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GETTER_Version_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_Version_TO (base::)
#define COM_FORWARD_IVirtualBox_GETTER_VersionNormalized_TO(smth) NS_IMETHOD GetVersionNormalized (PRUnichar * * aVersionNormalized) { return smth GetVersionNormalized (aVersionNormalized); }
#define COM_FORWARD_IVirtualBox_GETTER_VersionNormalized_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_VersionNormalized_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GETTER_VersionNormalized_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_VersionNormalized_TO (base::)
#define COM_FORWARD_IVirtualBox_GETTER_Revision_TO(smth) NS_IMETHOD GetRevision (PRUint32 * aRevision) { return smth GetRevision (aRevision); }
#define COM_FORWARD_IVirtualBox_GETTER_Revision_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_Revision_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GETTER_Revision_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_Revision_TO (base::)
#define COM_FORWARD_IVirtualBox_GETTER_PackageType_TO(smth) NS_IMETHOD GetPackageType (PRUnichar * * aPackageType) { return smth GetPackageType (aPackageType); }
#define COM_FORWARD_IVirtualBox_GETTER_PackageType_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_PackageType_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GETTER_PackageType_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_PackageType_TO (base::)
#define COM_FORWARD_IVirtualBox_GETTER_APIVersion_TO(smth) NS_IMETHOD GetAPIVersion (PRUnichar * * aAPIVersion) { return smth GetAPIVersion (aAPIVersion); }
#define COM_FORWARD_IVirtualBox_GETTER_APIVersion_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_APIVersion_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GETTER_APIVersion_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_APIVersion_TO (base::)
#define COM_FORWARD_IVirtualBox_GETTER_APIRevision_TO(smth) NS_IMETHOD GetAPIRevision (PRInt64 * aAPIRevision) { return smth GetAPIRevision (aAPIRevision); }
#define COM_FORWARD_IVirtualBox_GETTER_APIRevision_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_APIRevision_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GETTER_APIRevision_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_APIRevision_TO (base::)
#define COM_FORWARD_IVirtualBox_GETTER_HomeFolder_TO(smth) NS_IMETHOD GetHomeFolder (PRUnichar * * aHomeFolder) { return smth GetHomeFolder (aHomeFolder); }
#define COM_FORWARD_IVirtualBox_GETTER_HomeFolder_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_HomeFolder_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GETTER_HomeFolder_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_HomeFolder_TO (base::)
#define COM_FORWARD_IVirtualBox_GETTER_SettingsFilePath_TO(smth) NS_IMETHOD GetSettingsFilePath (PRUnichar * * aSettingsFilePath) { return smth GetSettingsFilePath (aSettingsFilePath); }
#define COM_FORWARD_IVirtualBox_GETTER_SettingsFilePath_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_SettingsFilePath_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GETTER_SettingsFilePath_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_SettingsFilePath_TO (base::)
#define COM_FORWARD_IVirtualBox_GETTER_Host_TO(smth) NS_IMETHOD GetHost (IHost * * aHost) { return smth GetHost (aHost); }
#define COM_FORWARD_IVirtualBox_GETTER_Host_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_Host_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GETTER_Host_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_Host_TO (base::)
#define COM_FORWARD_IVirtualBox_GETTER_SystemProperties_TO(smth) NS_IMETHOD GetSystemProperties (ISystemProperties * * aSystemProperties) { return smth GetSystemProperties (aSystemProperties); }
#define COM_FORWARD_IVirtualBox_GETTER_SystemProperties_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_SystemProperties_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GETTER_SystemProperties_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_SystemProperties_TO (base::)
#define COM_FORWARD_IVirtualBox_GETTER_Machines_TO(smth) NS_IMETHOD GetMachines (PRUint32 * aMachinesSize, IMachine * * * aMachines) { return smth GetMachines (aMachinesSize, aMachines); }
#define COM_FORWARD_IVirtualBox_GETTER_Machines_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_Machines_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GETTER_Machines_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_Machines_TO (base::)
#define COM_FORWARD_IVirtualBox_GETTER_MachineGroups_TO(smth) NS_IMETHOD GetMachineGroups (PRUint32 * aMachineGroupsSize, PRUnichar * * * aMachineGroups) { return smth GetMachineGroups (aMachineGroupsSize, aMachineGroups); }
#define COM_FORWARD_IVirtualBox_GETTER_MachineGroups_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_MachineGroups_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GETTER_MachineGroups_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_MachineGroups_TO (base::)
#define COM_FORWARD_IVirtualBox_GETTER_HardDisks_TO(smth) NS_IMETHOD GetHardDisks (PRUint32 * aHardDisksSize, IMedium * * * aHardDisks) { return smth GetHardDisks (aHardDisksSize, aHardDisks); }
#define COM_FORWARD_IVirtualBox_GETTER_HardDisks_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_HardDisks_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GETTER_HardDisks_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_HardDisks_TO (base::)
#define COM_FORWARD_IVirtualBox_GETTER_DVDImages_TO(smth) NS_IMETHOD GetDVDImages (PRUint32 * aDVDImagesSize, IMedium * * * aDVDImages) { return smth GetDVDImages (aDVDImagesSize, aDVDImages); }
#define COM_FORWARD_IVirtualBox_GETTER_DVDImages_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_DVDImages_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GETTER_DVDImages_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_DVDImages_TO (base::)
#define COM_FORWARD_IVirtualBox_GETTER_FloppyImages_TO(smth) NS_IMETHOD GetFloppyImages (PRUint32 * aFloppyImagesSize, IMedium * * * aFloppyImages) { return smth GetFloppyImages (aFloppyImagesSize, aFloppyImages); }
#define COM_FORWARD_IVirtualBox_GETTER_FloppyImages_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_FloppyImages_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GETTER_FloppyImages_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_FloppyImages_TO (base::)
#define COM_FORWARD_IVirtualBox_GETTER_ProgressOperations_TO(smth) NS_IMETHOD GetProgressOperations (PRUint32 * aProgressOperationsSize, IProgress * * * aProgressOperations) { return smth GetProgressOperations (aProgressOperationsSize, aProgressOperations); }
#define COM_FORWARD_IVirtualBox_GETTER_ProgressOperations_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_ProgressOperations_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GETTER_ProgressOperations_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_ProgressOperations_TO (base::)
#define COM_FORWARD_IVirtualBox_GETTER_GuestOSTypes_TO(smth) NS_IMETHOD GetGuestOSTypes (PRUint32 * aGuestOSTypesSize, IGuestOSType * * * aGuestOSTypes) { return smth GetGuestOSTypes (aGuestOSTypesSize, aGuestOSTypes); }
#define COM_FORWARD_IVirtualBox_GETTER_GuestOSTypes_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_GuestOSTypes_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GETTER_GuestOSTypes_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_GuestOSTypes_TO (base::)
#define COM_FORWARD_IVirtualBox_GETTER_SharedFolders_TO(smth) NS_IMETHOD GetSharedFolders (PRUint32 * aSharedFoldersSize, ISharedFolder * * * aSharedFolders) { return smth GetSharedFolders (aSharedFoldersSize, aSharedFolders); }
#define COM_FORWARD_IVirtualBox_GETTER_SharedFolders_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_SharedFolders_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GETTER_SharedFolders_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_SharedFolders_TO (base::)
#define COM_FORWARD_IVirtualBox_GETTER_PerformanceCollector_TO(smth) NS_IMETHOD GetPerformanceCollector (IPerformanceCollector * * aPerformanceCollector) { return smth GetPerformanceCollector (aPerformanceCollector); }
#define COM_FORWARD_IVirtualBox_GETTER_PerformanceCollector_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_PerformanceCollector_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GETTER_PerformanceCollector_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_PerformanceCollector_TO (base::)
#define COM_FORWARD_IVirtualBox_GETTER_DHCPServers_TO(smth) NS_IMETHOD GetDHCPServers (PRUint32 * aDHCPServersSize, IDHCPServer * * * aDHCPServers) { return smth GetDHCPServers (aDHCPServersSize, aDHCPServers); }
#define COM_FORWARD_IVirtualBox_GETTER_DHCPServers_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_DHCPServers_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GETTER_DHCPServers_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_DHCPServers_TO (base::)
#define COM_FORWARD_IVirtualBox_GETTER_NATNetworks_TO(smth) NS_IMETHOD GetNATNetworks (PRUint32 * aNATNetworksSize, INATNetwork * * * aNATNetworks) { return smth GetNATNetworks (aNATNetworksSize, aNATNetworks); }
#define COM_FORWARD_IVirtualBox_GETTER_NATNetworks_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_NATNetworks_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GETTER_NATNetworks_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_NATNetworks_TO (base::)
#define COM_FORWARD_IVirtualBox_GETTER_EventSource_TO(smth) NS_IMETHOD GetEventSource (IEventSource * * aEventSource) { return smth GetEventSource (aEventSource); }
#define COM_FORWARD_IVirtualBox_GETTER_EventSource_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_EventSource_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GETTER_EventSource_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_EventSource_TO (base::)
#define COM_FORWARD_IVirtualBox_GETTER_ExtensionPackManager_TO(smth) NS_IMETHOD GetExtensionPackManager (IExtPackManager * * aExtensionPackManager) { return smth GetExtensionPackManager (aExtensionPackManager); }
#define COM_FORWARD_IVirtualBox_GETTER_ExtensionPackManager_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_ExtensionPackManager_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GETTER_ExtensionPackManager_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_ExtensionPackManager_TO (base::)
#define COM_FORWARD_IVirtualBox_GETTER_InternalNetworks_TO(smth) NS_IMETHOD GetInternalNetworks (PRUint32 * aInternalNetworksSize, PRUnichar * * * aInternalNetworks) { return smth GetInternalNetworks (aInternalNetworksSize, aInternalNetworks); }
#define COM_FORWARD_IVirtualBox_GETTER_InternalNetworks_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_InternalNetworks_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GETTER_InternalNetworks_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_InternalNetworks_TO (base::)
#define COM_FORWARD_IVirtualBox_GETTER_GenericNetworkDrivers_TO(smth) NS_IMETHOD GetGenericNetworkDrivers (PRUint32 * aGenericNetworkDriversSize, PRUnichar * * * aGenericNetworkDrivers) { return smth GetGenericNetworkDrivers (aGenericNetworkDriversSize, aGenericNetworkDrivers); }
#define COM_FORWARD_IVirtualBox_GETTER_GenericNetworkDrivers_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_GenericNetworkDrivers_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GETTER_GenericNetworkDrivers_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_GenericNetworkDrivers_TO (base::)
#define COM_FORWARD_IVirtualBox_GETTER_CloudNetworks_TO(smth) NS_IMETHOD GetCloudNetworks (PRUint32 * aCloudNetworksSize, ICloudNetwork * * * aCloudNetworks) { return smth GetCloudNetworks (aCloudNetworksSize, aCloudNetworks); }
#define COM_FORWARD_IVirtualBox_GETTER_CloudNetworks_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_CloudNetworks_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GETTER_CloudNetworks_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_CloudNetworks_TO (base::)
#define COM_FORWARD_IVirtualBox_GETTER_CloudProviderManager_TO(smth) NS_IMETHOD GetCloudProviderManager (ICloudProviderManager * * aCloudProviderManager) { return smth GetCloudProviderManager (aCloudProviderManager); }
#define COM_FORWARD_IVirtualBox_GETTER_CloudProviderManager_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_CloudProviderManager_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GETTER_CloudProviderManager_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_CloudProviderManager_TO (base::)
#define COM_FORWARD_IVirtualBox_ComposeMachineFilename_TO(smth) NS_IMETHOD ComposeMachineFilename (PRUnichar * aName, PRUnichar * aGroup, PRUnichar * aCreateFlags, PRUnichar * aBaseFolder, PRUnichar * * aFile) { return smth ComposeMachineFilename (aName, aGroup, aCreateFlags, aBaseFolder, aFile); }
#define COM_FORWARD_IVirtualBox_ComposeMachineFilename_TO_OBJ(obj) COM_FORWARD_IVirtualBox_ComposeMachineFilename_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_ComposeMachineFilename_TO_BASE(base) COM_FORWARD_IVirtualBox_ComposeMachineFilename_TO (base::)
#define COM_FORWARD_IVirtualBox_CreateMachine_TO(smth) NS_IMETHOD CreateMachine (PRUnichar * aSettingsFile, PRUnichar * aName, PRUint32 aGroupsSize, PRUnichar * * aGroups, PRUnichar * aOsTypeId, PRUnichar * aFlags, IMachine * * aMachine) { return smth CreateMachine (aSettingsFile, aName, aGroupsSize+++, aGroups, aOsTypeId, aFlags, aMachine); }
#define COM_FORWARD_IVirtualBox_CreateMachine_TO_OBJ(obj) COM_FORWARD_IVirtualBox_CreateMachine_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_CreateMachine_TO_BASE(base) COM_FORWARD_IVirtualBox_CreateMachine_TO (base::)
#define COM_FORWARD_IVirtualBox_OpenMachine_TO(smth) NS_IMETHOD OpenMachine (PRUnichar * aSettingsFile, IMachine * * aMachine) { return smth OpenMachine (aSettingsFile, aMachine); }
#define COM_FORWARD_IVirtualBox_OpenMachine_TO_OBJ(obj) COM_FORWARD_IVirtualBox_OpenMachine_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_OpenMachine_TO_BASE(base) COM_FORWARD_IVirtualBox_OpenMachine_TO (base::)
#define COM_FORWARD_IVirtualBox_RegisterMachine_TO(smth) NS_IMETHOD RegisterMachine (IMachine * aMachine) { return smth RegisterMachine (aMachine); }
#define COM_FORWARD_IVirtualBox_RegisterMachine_TO_OBJ(obj) COM_FORWARD_IVirtualBox_RegisterMachine_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_RegisterMachine_TO_BASE(base) COM_FORWARD_IVirtualBox_RegisterMachine_TO (base::)
#define COM_FORWARD_IVirtualBox_FindMachine_TO(smth) NS_IMETHOD FindMachine (PRUnichar * aNameOrId, IMachine * * aMachine) { return smth FindMachine (aNameOrId, aMachine); }
#define COM_FORWARD_IVirtualBox_FindMachine_TO_OBJ(obj) COM_FORWARD_IVirtualBox_FindMachine_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_FindMachine_TO_BASE(base) COM_FORWARD_IVirtualBox_FindMachine_TO (base::)
#define COM_FORWARD_IVirtualBox_GetMachinesByGroups_TO(smth) NS_IMETHOD GetMachinesByGroups (PRUint32 aGroupsSize, PRUnichar * * aGroups, PRUint32 * aMachinesSize, IMachine * * * aMachines) { return smth GetMachinesByGroups (aGroupsSize+++, aGroups, aMachinesSize, aMachines); }
#define COM_FORWARD_IVirtualBox_GetMachinesByGroups_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GetMachinesByGroups_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GetMachinesByGroups_TO_BASE(base) COM_FORWARD_IVirtualBox_GetMachinesByGroups_TO (base::)
#define COM_FORWARD_IVirtualBox_GetMachineStates_TO(smth) NS_IMETHOD GetMachineStates (PRUint32 aMachinesSize, IMachine * * aMachines, PRUint32 * aStatesSize, PRUint32 * * aStates) { return smth GetMachineStates (aMachinesSize+++, aMachines, aStatesSize, aStates); }
#define COM_FORWARD_IVirtualBox_GetMachineStates_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GetMachineStates_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GetMachineStates_TO_BASE(base) COM_FORWARD_IVirtualBox_GetMachineStates_TO (base::)
#define COM_FORWARD_IVirtualBox_CreateAppliance_TO(smth) NS_IMETHOD CreateAppliance (IAppliance * * aAppliance) { return smth CreateAppliance (aAppliance); }
#define COM_FORWARD_IVirtualBox_CreateAppliance_TO_OBJ(obj) COM_FORWARD_IVirtualBox_CreateAppliance_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_CreateAppliance_TO_BASE(base) COM_FORWARD_IVirtualBox_CreateAppliance_TO (base::)
#define COM_FORWARD_IVirtualBox_CreateUnattendedInstaller_TO(smth) NS_IMETHOD CreateUnattendedInstaller (IUnattended * * aUnattended) { return smth CreateUnattendedInstaller (aUnattended); }
#define COM_FORWARD_IVirtualBox_CreateUnattendedInstaller_TO_OBJ(obj) COM_FORWARD_IVirtualBox_CreateUnattendedInstaller_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_CreateUnattendedInstaller_TO_BASE(base) COM_FORWARD_IVirtualBox_CreateUnattendedInstaller_TO (base::)
#define COM_FORWARD_IVirtualBox_CreateMedium_TO(smth) NS_IMETHOD CreateMedium (PRUnichar * aFormat, PRUnichar * aLocation, PRUint32 aAccessMode, PRUint32 aADeviceTypeType, IMedium * * aMedium) { return smth CreateMedium (aFormat, aLocation, aAccessMode, aADeviceTypeType, aMedium); }
#define COM_FORWARD_IVirtualBox_CreateMedium_TO_OBJ(obj) COM_FORWARD_IVirtualBox_CreateMedium_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_CreateMedium_TO_BASE(base) COM_FORWARD_IVirtualBox_CreateMedium_TO (base::)
#define COM_FORWARD_IVirtualBox_OpenMedium_TO(smth) NS_IMETHOD OpenMedium (PRUnichar * aLocation, PRUint32 aDeviceType, PRUint32 aAccessMode, PRBool aForceNewUuid, IMedium * * aMedium) { return smth OpenMedium (aLocation, aDeviceType, aAccessMode, aForceNewUuid, aMedium); }
#define COM_FORWARD_IVirtualBox_OpenMedium_TO_OBJ(obj) COM_FORWARD_IVirtualBox_OpenMedium_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_OpenMedium_TO_BASE(base) COM_FORWARD_IVirtualBox_OpenMedium_TO (base::)
#define COM_FORWARD_IVirtualBox_GetGuestOSType_TO(smth) NS_IMETHOD GetGuestOSType (PRUnichar * aId, IGuestOSType * * aType) { return smth GetGuestOSType (aId, aType); }
#define COM_FORWARD_IVirtualBox_GetGuestOSType_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GetGuestOSType_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GetGuestOSType_TO_BASE(base) COM_FORWARD_IVirtualBox_GetGuestOSType_TO (base::)
#define COM_FORWARD_IVirtualBox_CreateSharedFolder_TO(smth) NS_IMETHOD CreateSharedFolder (PRUnichar * aName, PRUnichar * aHostPath, PRBool aWritable, PRBool aAutomount, PRUnichar * aAutoMountPoint) { return smth CreateSharedFolder (aName, aHostPath, aWritable, aAutomount, aAutoMountPoint); }
#define COM_FORWARD_IVirtualBox_CreateSharedFolder_TO_OBJ(obj) COM_FORWARD_IVirtualBox_CreateSharedFolder_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_CreateSharedFolder_TO_BASE(base) COM_FORWARD_IVirtualBox_CreateSharedFolder_TO (base::)
#define COM_FORWARD_IVirtualBox_RemoveSharedFolder_TO(smth) NS_IMETHOD RemoveSharedFolder (PRUnichar * aName) { return smth RemoveSharedFolder (aName); }
#define COM_FORWARD_IVirtualBox_RemoveSharedFolder_TO_OBJ(obj) COM_FORWARD_IVirtualBox_RemoveSharedFolder_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_RemoveSharedFolder_TO_BASE(base) COM_FORWARD_IVirtualBox_RemoveSharedFolder_TO (base::)
#define COM_FORWARD_IVirtualBox_GetExtraDataKeys_TO(smth) NS_IMETHOD GetExtraDataKeys (PRUint32 * aKeysSize, PRUnichar * * * aKeys) { return smth GetExtraDataKeys (aKeysSize, aKeys); }
#define COM_FORWARD_IVirtualBox_GetExtraDataKeys_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GetExtraDataKeys_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GetExtraDataKeys_TO_BASE(base) COM_FORWARD_IVirtualBox_GetExtraDataKeys_TO (base::)
#define COM_FORWARD_IVirtualBox_GetExtraData_TO(smth) NS_IMETHOD GetExtraData (PRUnichar * aKey, PRUnichar * * aValue) { return smth GetExtraData (aKey, aValue); }
#define COM_FORWARD_IVirtualBox_GetExtraData_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GetExtraData_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GetExtraData_TO_BASE(base) COM_FORWARD_IVirtualBox_GetExtraData_TO (base::)
#define COM_FORWARD_IVirtualBox_SetExtraData_TO(smth) NS_IMETHOD SetExtraData (PRUnichar * aKey, PRUnichar * aValue) { return smth SetExtraData (aKey, aValue); }
#define COM_FORWARD_IVirtualBox_SetExtraData_TO_OBJ(obj) COM_FORWARD_IVirtualBox_SetExtraData_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_SetExtraData_TO_BASE(base) COM_FORWARD_IVirtualBox_SetExtraData_TO (base::)
#define COM_FORWARD_IVirtualBox_SetSettingsSecret_TO(smth) NS_IMETHOD SetSettingsSecret (PRUnichar * aPassword) { return smth SetSettingsSecret (aPassword); }
#define COM_FORWARD_IVirtualBox_SetSettingsSecret_TO_OBJ(obj) COM_FORWARD_IVirtualBox_SetSettingsSecret_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_SetSettingsSecret_TO_BASE(base) COM_FORWARD_IVirtualBox_SetSettingsSecret_TO (base::)
#define COM_FORWARD_IVirtualBox_CreateDHCPServer_TO(smth) NS_IMETHOD CreateDHCPServer (PRUnichar * aName, IDHCPServer * * aServer) { return smth CreateDHCPServer (aName, aServer); }
#define COM_FORWARD_IVirtualBox_CreateDHCPServer_TO_OBJ(obj) COM_FORWARD_IVirtualBox_CreateDHCPServer_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_CreateDHCPServer_TO_BASE(base) COM_FORWARD_IVirtualBox_CreateDHCPServer_TO (base::)
#define COM_FORWARD_IVirtualBox_FindDHCPServerByNetworkName_TO(smth) NS_IMETHOD FindDHCPServerByNetworkName (PRUnichar * aName, IDHCPServer * * aServer) { return smth FindDHCPServerByNetworkName (aName, aServer); }
#define COM_FORWARD_IVirtualBox_FindDHCPServerByNetworkName_TO_OBJ(obj) COM_FORWARD_IVirtualBox_FindDHCPServerByNetworkName_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_FindDHCPServerByNetworkName_TO_BASE(base) COM_FORWARD_IVirtualBox_FindDHCPServerByNetworkName_TO (base::)
#define COM_FORWARD_IVirtualBox_RemoveDHCPServer_TO(smth) NS_IMETHOD RemoveDHCPServer (IDHCPServer * aServer) { return smth RemoveDHCPServer (aServer); }
#define COM_FORWARD_IVirtualBox_RemoveDHCPServer_TO_OBJ(obj) COM_FORWARD_IVirtualBox_RemoveDHCPServer_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_RemoveDHCPServer_TO_BASE(base) COM_FORWARD_IVirtualBox_RemoveDHCPServer_TO (base::)
#define COM_FORWARD_IVirtualBox_CreateNATNetwork_TO(smth) NS_IMETHOD CreateNATNetwork (PRUnichar * aNetworkName, INATNetwork * * aNetwork) { return smth CreateNATNetwork (aNetworkName, aNetwork); }
#define COM_FORWARD_IVirtualBox_CreateNATNetwork_TO_OBJ(obj) COM_FORWARD_IVirtualBox_CreateNATNetwork_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_CreateNATNetwork_TO_BASE(base) COM_FORWARD_IVirtualBox_CreateNATNetwork_TO (base::)
#define COM_FORWARD_IVirtualBox_FindNATNetworkByName_TO(smth) NS_IMETHOD FindNATNetworkByName (PRUnichar * aNetworkName, INATNetwork * * aNetwork) { return smth FindNATNetworkByName (aNetworkName, aNetwork); }
#define COM_FORWARD_IVirtualBox_FindNATNetworkByName_TO_OBJ(obj) COM_FORWARD_IVirtualBox_FindNATNetworkByName_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_FindNATNetworkByName_TO_BASE(base) COM_FORWARD_IVirtualBox_FindNATNetworkByName_TO (base::)
#define COM_FORWARD_IVirtualBox_RemoveNATNetwork_TO(smth) NS_IMETHOD RemoveNATNetwork (INATNetwork * aNetwork) { return smth RemoveNATNetwork (aNetwork); }
#define COM_FORWARD_IVirtualBox_RemoveNATNetwork_TO_OBJ(obj) COM_FORWARD_IVirtualBox_RemoveNATNetwork_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_RemoveNATNetwork_TO_BASE(base) COM_FORWARD_IVirtualBox_RemoveNATNetwork_TO (base::)
#define COM_FORWARD_IVirtualBox_CreateCloudNetwork_TO(smth) NS_IMETHOD CreateCloudNetwork (PRUnichar * aNetworkName, ICloudNetwork * * aNetwork) { return smth CreateCloudNetwork (aNetworkName, aNetwork); }
#define COM_FORWARD_IVirtualBox_CreateCloudNetwork_TO_OBJ(obj) COM_FORWARD_IVirtualBox_CreateCloudNetwork_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_CreateCloudNetwork_TO_BASE(base) COM_FORWARD_IVirtualBox_CreateCloudNetwork_TO (base::)
#define COM_FORWARD_IVirtualBox_FindCloudNetworkByName_TO(smth) NS_IMETHOD FindCloudNetworkByName (PRUnichar * aNetworkName, ICloudNetwork * * aNetwork) { return smth FindCloudNetworkByName (aNetworkName, aNetwork); }
#define COM_FORWARD_IVirtualBox_FindCloudNetworkByName_TO_OBJ(obj) COM_FORWARD_IVirtualBox_FindCloudNetworkByName_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_FindCloudNetworkByName_TO_BASE(base) COM_FORWARD_IVirtualBox_FindCloudNetworkByName_TO (base::)
#define COM_FORWARD_IVirtualBox_RemoveCloudNetwork_TO(smth) NS_IMETHOD RemoveCloudNetwork (ICloudNetwork * aNetwork) { return smth RemoveCloudNetwork (aNetwork); }
#define COM_FORWARD_IVirtualBox_RemoveCloudNetwork_TO_OBJ(obj) COM_FORWARD_IVirtualBox_RemoveCloudNetwork_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_RemoveCloudNetwork_TO_BASE(base) COM_FORWARD_IVirtualBox_RemoveCloudNetwork_TO (base::)
#define COM_FORWARD_IVirtualBox_CheckFirmwarePresent_TO(smth) NS_IMETHOD CheckFirmwarePresent (PRUint32 aFirmwareType, PRUnichar * aVersion, PRUnichar * * aUrl, PRUnichar * * aFile, PRBool * aResult) { return smth CheckFirmwarePresent (aFirmwareType, aVersion, aUrl, aFile, aResult); }
#define COM_FORWARD_IVirtualBox_CheckFirmwarePresent_TO_OBJ(obj) COM_FORWARD_IVirtualBox_CheckFirmwarePresent_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_CheckFirmwarePresent_TO_BASE(base) COM_FORWARD_IVirtualBox_CheckFirmwarePresent_TO (base::)
#define COM_FORWARD_IVirtualBox_TO(smth) NS_FORWARD_IVIRTUALBOX (smth)
#define COM_FORWARD_IVirtualBox_TO_OBJ(obj) COM_FORWARD_IVirtualBox_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_TO_BASE(base) COM_FORWARD_IVirtualBox_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IVirtualBox;
%}

[
    uuid(fb220201-2fd3-47e2-a5dc-2c2431d833cc),
    scriptable
]
interface IVFSExplorer : nsISupports
{
    readonly attribute wstring path;

    readonly attribute VFSType_T type;

    void update (
        [retval] out IProgress progress
    );

    void cd (
        in wstring dir,
        [retval] out IProgress progress
    );

    void cdUp (
        [retval] out IProgress progress
    );

    void entryList (
        out unsigned long namesSize,
        [array, size_is(namesSize)] out wstring names,
        out unsigned long typesSize,
        [array, size_is(typesSize)] out unsigned long types,
        out unsigned long sizesSize,
        [array, size_is(sizesSize)] out long long sizes,
        out unsigned long modesSize,
        [array, size_is(modesSize)] out unsigned long modes
    );

    void exists (
        in unsigned long namesSize,
        [array, size_is(namesSize)] in wstring names,
        out unsigned long existsSize,
        [array, size_is(existsSize) , retval] out wstring exists
    );

    void remove (
        in unsigned long namesSize,
        [array, size_is(namesSize)] in wstring names,
        [retval] out IProgress progress
    );

}; /* interface IVFSExplorer */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IVFSExplorer_GETTER_Path_TO(smth) NS_IMETHOD GetPath (PRUnichar * * aPath) { return smth GetPath (aPath); }
#define COM_FORWARD_IVFSExplorer_GETTER_Path_TO_OBJ(obj) COM_FORWARD_IVFSExplorer_GETTER_Path_TO ((obj)->)
#define COM_FORWARD_IVFSExplorer_GETTER_Path_TO_BASE(base) COM_FORWARD_IVFSExplorer_GETTER_Path_TO (base::)
#define COM_FORWARD_IVFSExplorer_GETTER_Type_TO(smth) NS_IMETHOD GetType (PRUint32 * aType) { return smth GetType (aType); }
#define COM_FORWARD_IVFSExplorer_GETTER_Type_TO_OBJ(obj) COM_FORWARD_IVFSExplorer_GETTER_Type_TO ((obj)->)
#define COM_FORWARD_IVFSExplorer_GETTER_Type_TO_BASE(base) COM_FORWARD_IVFSExplorer_GETTER_Type_TO (base::)
#define COM_FORWARD_IVFSExplorer_Update_TO(smth) NS_IMETHOD Update (IProgress * * aProgress) { return smth Update (aProgress); }
#define COM_FORWARD_IVFSExplorer_Update_TO_OBJ(obj) COM_FORWARD_IVFSExplorer_Update_TO ((obj)->)
#define COM_FORWARD_IVFSExplorer_Update_TO_BASE(base) COM_FORWARD_IVFSExplorer_Update_TO (base::)
#define COM_FORWARD_IVFSExplorer_Cd_TO(smth) NS_IMETHOD Cd (PRUnichar * aDir, IProgress * * aProgress) { return smth Cd (aDir, aProgress); }
#define COM_FORWARD_IVFSExplorer_Cd_TO_OBJ(obj) COM_FORWARD_IVFSExplorer_Cd_TO ((obj)->)
#define COM_FORWARD_IVFSExplorer_Cd_TO_BASE(base) COM_FORWARD_IVFSExplorer_Cd_TO (base::)
#define COM_FORWARD_IVFSExplorer_CdUp_TO(smth) NS_IMETHOD CdUp (IProgress * * aProgress) { return smth CdUp (aProgress); }
#define COM_FORWARD_IVFSExplorer_CdUp_TO_OBJ(obj) COM_FORWARD_IVFSExplorer_CdUp_TO ((obj)->)
#define COM_FORWARD_IVFSExplorer_CdUp_TO_BASE(base) COM_FORWARD_IVFSExplorer_CdUp_TO (base::)
#define COM_FORWARD_IVFSExplorer_EntryList_TO(smth) NS_IMETHOD EntryList (PRUint32 * aNamesSize, PRUnichar * * * aNames, PRUint32 * aTypesSize, PRUint32 * * aTypes, PRUint32 * aSizesSize, PRInt64 * * aSizes, PRUint32 * aModesSize, PRUint32 * * aModes) { return smth EntryList (aNamesSize+++, aNames, aTypesSize+++, aTypes, aSizesSize+++, aSizes, aModesSize, aModes); }
#define COM_FORWARD_IVFSExplorer_EntryList_TO_OBJ(obj) COM_FORWARD_IVFSExplorer_EntryList_TO ((obj)->)
#define COM_FORWARD_IVFSExplorer_EntryList_TO_BASE(base) COM_FORWARD_IVFSExplorer_EntryList_TO (base::)
#define COM_FORWARD_IVFSExplorer_Exists_TO(smth) NS_IMETHOD Exists (PRUint32 aNamesSize, PRUnichar * * aNames, PRUint32 * aExistsSize, PRUnichar * * * aExists) { return smth Exists (aNamesSize+++, aNames, aExistsSize, aExists); }
#define COM_FORWARD_IVFSExplorer_Exists_TO_OBJ(obj) COM_FORWARD_IVFSExplorer_Exists_TO ((obj)->)
#define COM_FORWARD_IVFSExplorer_Exists_TO_BASE(base) COM_FORWARD_IVFSExplorer_Exists_TO (base::)
#define COM_FORWARD_IVFSExplorer_Remove_TO(smth) NS_IMETHOD Remove (PRUint32 aNamesSize, PRUnichar * * aNames, IProgress * * aProgress) { return smth Remove (aNamesSize+++, aNames, aProgress); }
#define COM_FORWARD_IVFSExplorer_Remove_TO_OBJ(obj) COM_FORWARD_IVFSExplorer_Remove_TO ((obj)->)
#define COM_FORWARD_IVFSExplorer_Remove_TO_BASE(base) COM_FORWARD_IVFSExplorer_Remove_TO (base::)
#define COM_FORWARD_IVFSExplorer_TO(smth) NS_FORWARD_IVFSEXPLORER (smth)
#define COM_FORWARD_IVFSExplorer_TO_OBJ(obj) COM_FORWARD_IVFSExplorer_TO ((obj)->)
#define COM_FORWARD_IVFSExplorer_TO_BASE(base) COM_FORWARD_IVFSExplorer_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IVFSExplorer;
%}

[
    uuid(392f1de4-80e1-4a8a-93a1-67c5f92a838a),
    scriptable
]
interface ICertificate : nsISupports
{
    readonly attribute CertificateVersion_T versionNumber;

    readonly attribute wstring serialNumber;

    readonly attribute wstring signatureAlgorithmOID;

    readonly attribute wstring signatureAlgorithmName;

    void getIssuerName (
        out unsigned long issuerNameSize,
        [array, size_is(issuerNameSize), retval] out wstring issuerName
    );

    void getSubjectName (
        out unsigned long subjectNameSize,
        [array, size_is(subjectNameSize), retval] out wstring subjectName
    );

    readonly attribute wstring friendlyName;

    readonly attribute wstring validityPeriodNotBefore;

    readonly attribute wstring validityPeriodNotAfter;

    readonly attribute wstring publicKeyAlgorithmOID;

    readonly attribute wstring publicKeyAlgorithm;

    void getSubjectPublicKey (
        out unsigned long subjectPublicKeySize,
        [array, size_is(subjectPublicKeySize), retval] out octet subjectPublicKey
    );

    readonly attribute wstring issuerUniqueIdentifier;

    readonly attribute wstring subjectUniqueIdentifier;

    readonly attribute boolean certificateAuthority;

    readonly attribute unsigned long keyUsage;

    void getExtendedKeyUsage (
        out unsigned long extendedKeyUsageSize,
        [array, size_is(extendedKeyUsageSize), retval] out wstring extendedKeyUsage
    );

    void getRawCertData (
        out unsigned long rawCertDataSize,
        [array, size_is(rawCertDataSize), retval] out octet rawCertData
    );

    readonly attribute boolean selfSigned;

    readonly attribute boolean trusted;

    readonly attribute boolean expired;

    readonly attribute unsigned long InternalAndReservedAttribute1ICertificate;

    readonly attribute unsigned long InternalAndReservedAttribute2ICertificate;

    readonly attribute unsigned long InternalAndReservedAttribute3ICertificate;

    readonly attribute unsigned long InternalAndReservedAttribute4ICertificate;

    readonly attribute unsigned long InternalAndReservedAttribute5ICertificate;

    readonly attribute unsigned long InternalAndReservedAttribute6ICertificate;

    readonly attribute unsigned long InternalAndReservedAttribute7ICertificate;

    readonly attribute unsigned long InternalAndReservedAttribute8ICertificate;

    readonly attribute unsigned long InternalAndReservedAttribute9ICertificate;

    readonly attribute unsigned long InternalAndReservedAttribute10ICertificate;

    readonly attribute unsigned long InternalAndReservedAttribute11ICertificate;

    readonly attribute unsigned long InternalAndReservedAttribute12ICertificate;

    void isCurrentlyExpired (
        [retval] out boolean result
    );

    void queryInfo (
        in long what,
        [retval] out wstring result
    );

    void InternalAndReservedMethod1ICertificate();

    void InternalAndReservedMethod2ICertificate();

}; /* interface ICertificate */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_ICertificate_GETTER_VersionNumber_TO(smth) NS_IMETHOD GetVersionNumber (PRUint32 * aVersionNumber) { return smth GetVersionNumber (aVersionNumber); }
#define COM_FORWARD_ICertificate_GETTER_VersionNumber_TO_OBJ(obj) COM_FORWARD_ICertificate_GETTER_VersionNumber_TO ((obj)->)
#define COM_FORWARD_ICertificate_GETTER_VersionNumber_TO_BASE(base) COM_FORWARD_ICertificate_GETTER_VersionNumber_TO (base::)
#define COM_FORWARD_ICertificate_GETTER_SerialNumber_TO(smth) NS_IMETHOD GetSerialNumber (PRUnichar * * aSerialNumber) { return smth GetSerialNumber (aSerialNumber); }
#define COM_FORWARD_ICertificate_GETTER_SerialNumber_TO_OBJ(obj) COM_FORWARD_ICertificate_GETTER_SerialNumber_TO ((obj)->)
#define COM_FORWARD_ICertificate_GETTER_SerialNumber_TO_BASE(base) COM_FORWARD_ICertificate_GETTER_SerialNumber_TO (base::)
#define COM_FORWARD_ICertificate_GETTER_SignatureAlgorithmOID_TO(smth) NS_IMETHOD GetSignatureAlgorithmOID (PRUnichar * * aSignatureAlgorithmOID) { return smth GetSignatureAlgorithmOID (aSignatureAlgorithmOID); }
#define COM_FORWARD_ICertificate_GETTER_SignatureAlgorithmOID_TO_OBJ(obj) COM_FORWARD_ICertificate_GETTER_SignatureAlgorithmOID_TO ((obj)->)
#define COM_FORWARD_ICertificate_GETTER_SignatureAlgorithmOID_TO_BASE(base) COM_FORWARD_ICertificate_GETTER_SignatureAlgorithmOID_TO (base::)
#define COM_FORWARD_ICertificate_GETTER_SignatureAlgorithmName_TO(smth) NS_IMETHOD GetSignatureAlgorithmName (PRUnichar * * aSignatureAlgorithmName) { return smth GetSignatureAlgorithmName (aSignatureAlgorithmName); }
#define COM_FORWARD_ICertificate_GETTER_SignatureAlgorithmName_TO_OBJ(obj) COM_FORWARD_ICertificate_GETTER_SignatureAlgorithmName_TO ((obj)->)
#define COM_FORWARD_ICertificate_GETTER_SignatureAlgorithmName_TO_BASE(base) COM_FORWARD_ICertificate_GETTER_SignatureAlgorithmName_TO (base::)
#define COM_FORWARD_ICertificate_GETTER_IssuerName_TO(smth) NS_IMETHOD GetIssuerName (PRUint32 * aIssuerNameSize, PRUnichar * * * aIssuerName) { return smth GetIssuerName (aIssuerNameSize, aIssuerName); }
#define COM_FORWARD_ICertificate_GETTER_IssuerName_TO_OBJ(obj) COM_FORWARD_ICertificate_GETTER_IssuerName_TO ((obj)->)
#define COM_FORWARD_ICertificate_GETTER_IssuerName_TO_BASE(base) COM_FORWARD_ICertificate_GETTER_IssuerName_TO (base::)
#define COM_FORWARD_ICertificate_GETTER_SubjectName_TO(smth) NS_IMETHOD GetSubjectName (PRUint32 * aSubjectNameSize, PRUnichar * * * aSubjectName) { return smth GetSubjectName (aSubjectNameSize, aSubjectName); }
#define COM_FORWARD_ICertificate_GETTER_SubjectName_TO_OBJ(obj) COM_FORWARD_ICertificate_GETTER_SubjectName_TO ((obj)->)
#define COM_FORWARD_ICertificate_GETTER_SubjectName_TO_BASE(base) COM_FORWARD_ICertificate_GETTER_SubjectName_TO (base::)
#define COM_FORWARD_ICertificate_GETTER_FriendlyName_TO(smth) NS_IMETHOD GetFriendlyName (PRUnichar * * aFriendlyName) { return smth GetFriendlyName (aFriendlyName); }
#define COM_FORWARD_ICertificate_GETTER_FriendlyName_TO_OBJ(obj) COM_FORWARD_ICertificate_GETTER_FriendlyName_TO ((obj)->)
#define COM_FORWARD_ICertificate_GETTER_FriendlyName_TO_BASE(base) COM_FORWARD_ICertificate_GETTER_FriendlyName_TO (base::)
#define COM_FORWARD_ICertificate_GETTER_ValidityPeriodNotBefore_TO(smth) NS_IMETHOD GetValidityPeriodNotBefore (PRUnichar * * aValidityPeriodNotBefore) { return smth GetValidityPeriodNotBefore (aValidityPeriodNotBefore); }
#define COM_FORWARD_ICertificate_GETTER_ValidityPeriodNotBefore_TO_OBJ(obj) COM_FORWARD_ICertificate_GETTER_ValidityPeriodNotBefore_TO ((obj)->)
#define COM_FORWARD_ICertificate_GETTER_ValidityPeriodNotBefore_TO_BASE(base) COM_FORWARD_ICertificate_GETTER_ValidityPeriodNotBefore_TO (base::)
#define COM_FORWARD_ICertificate_GETTER_ValidityPeriodNotAfter_TO(smth) NS_IMETHOD GetValidityPeriodNotAfter (PRUnichar * * aValidityPeriodNotAfter) { return smth GetValidityPeriodNotAfter (aValidityPeriodNotAfter); }
#define COM_FORWARD_ICertificate_GETTER_ValidityPeriodNotAfter_TO_OBJ(obj) COM_FORWARD_ICertificate_GETTER_ValidityPeriodNotAfter_TO ((obj)->)
#define COM_FORWARD_ICertificate_GETTER_ValidityPeriodNotAfter_TO_BASE(base) COM_FORWARD_ICertificate_GETTER_ValidityPeriodNotAfter_TO (base::)
#define COM_FORWARD_ICertificate_GETTER_PublicKeyAlgorithmOID_TO(smth) NS_IMETHOD GetPublicKeyAlgorithmOID (PRUnichar * * aPublicKeyAlgorithmOID) { return smth GetPublicKeyAlgorithmOID (aPublicKeyAlgorithmOID); }
#define COM_FORWARD_ICertificate_GETTER_PublicKeyAlgorithmOID_TO_OBJ(obj) COM_FORWARD_ICertificate_GETTER_PublicKeyAlgorithmOID_TO ((obj)->)
#define COM_FORWARD_ICertificate_GETTER_PublicKeyAlgorithmOID_TO_BASE(base) COM_FORWARD_ICertificate_GETTER_PublicKeyAlgorithmOID_TO (base::)
#define COM_FORWARD_ICertificate_GETTER_PublicKeyAlgorithm_TO(smth) NS_IMETHOD GetPublicKeyAlgorithm (PRUnichar * * aPublicKeyAlgorithm) { return smth GetPublicKeyAlgorithm (aPublicKeyAlgorithm); }
#define COM_FORWARD_ICertificate_GETTER_PublicKeyAlgorithm_TO_OBJ(obj) COM_FORWARD_ICertificate_GETTER_PublicKeyAlgorithm_TO ((obj)->)
#define COM_FORWARD_ICertificate_GETTER_PublicKeyAlgorithm_TO_BASE(base) COM_FORWARD_ICertificate_GETTER_PublicKeyAlgorithm_TO (base::)
#define COM_FORWARD_ICertificate_GETTER_SubjectPublicKey_TO(smth) NS_IMETHOD GetSubjectPublicKey (PRUint32 * aSubjectPublicKeySize, PRUint8 * * aSubjectPublicKey) { return smth GetSubjectPublicKey (aSubjectPublicKeySize, aSubjectPublicKey); }
#define COM_FORWARD_ICertificate_GETTER_SubjectPublicKey_TO_OBJ(obj) COM_FORWARD_ICertificate_GETTER_SubjectPublicKey_TO ((obj)->)
#define COM_FORWARD_ICertificate_GETTER_SubjectPublicKey_TO_BASE(base) COM_FORWARD_ICertificate_GETTER_SubjectPublicKey_TO (base::)
#define COM_FORWARD_ICertificate_GETTER_IssuerUniqueIdentifier_TO(smth) NS_IMETHOD GetIssuerUniqueIdentifier (PRUnichar * * aIssuerUniqueIdentifier) { return smth GetIssuerUniqueIdentifier (aIssuerUniqueIdentifier); }
#define COM_FORWARD_ICertificate_GETTER_IssuerUniqueIdentifier_TO_OBJ(obj) COM_FORWARD_ICertificate_GETTER_IssuerUniqueIdentifier_TO ((obj)->)
#define COM_FORWARD_ICertificate_GETTER_IssuerUniqueIdentifier_TO_BASE(base) COM_FORWARD_ICertificate_GETTER_IssuerUniqueIdentifier_TO (base::)
#define COM_FORWARD_ICertificate_GETTER_SubjectUniqueIdentifier_TO(smth) NS_IMETHOD GetSubjectUniqueIdentifier (PRUnichar * * aSubjectUniqueIdentifier) { return smth GetSubjectUniqueIdentifier (aSubjectUniqueIdentifier); }
#define COM_FORWARD_ICertificate_GETTER_SubjectUniqueIdentifier_TO_OBJ(obj) COM_FORWARD_ICertificate_GETTER_SubjectUniqueIdentifier_TO ((obj)->)
#define COM_FORWARD_ICertificate_GETTER_SubjectUniqueIdentifier_TO_BASE(base) COM_FORWARD_ICertificate_GETTER_SubjectUniqueIdentifier_TO (base::)
#define COM_FORWARD_ICertificate_GETTER_CertificateAuthority_TO(smth) NS_IMETHOD GetCertificateAuthority (PRBool * aCertificateAuthority) { return smth GetCertificateAuthority (aCertificateAuthority); }
#define COM_FORWARD_ICertificate_GETTER_CertificateAuthority_TO_OBJ(obj) COM_FORWARD_ICertificate_GETTER_CertificateAuthority_TO ((obj)->)
#define COM_FORWARD_ICertificate_GETTER_CertificateAuthority_TO_BASE(base) COM_FORWARD_ICertificate_GETTER_CertificateAuthority_TO (base::)
#define COM_FORWARD_ICertificate_GETTER_KeyUsage_TO(smth) NS_IMETHOD GetKeyUsage (PRUint32 * aKeyUsage) { return smth GetKeyUsage (aKeyUsage); }
#define COM_FORWARD_ICertificate_GETTER_KeyUsage_TO_OBJ(obj) COM_FORWARD_ICertificate_GETTER_KeyUsage_TO ((obj)->)
#define COM_FORWARD_ICertificate_GETTER_KeyUsage_TO_BASE(base) COM_FORWARD_ICertificate_GETTER_KeyUsage_TO (base::)
#define COM_FORWARD_ICertificate_GETTER_ExtendedKeyUsage_TO(smth) NS_IMETHOD GetExtendedKeyUsage (PRUint32 * aExtendedKeyUsageSize, PRUnichar * * * aExtendedKeyUsage) { return smth GetExtendedKeyUsage (aExtendedKeyUsageSize, aExtendedKeyUsage); }
#define COM_FORWARD_ICertificate_GETTER_ExtendedKeyUsage_TO_OBJ(obj) COM_FORWARD_ICertificate_GETTER_ExtendedKeyUsage_TO ((obj)->)
#define COM_FORWARD_ICertificate_GETTER_ExtendedKeyUsage_TO_BASE(base) COM_FORWARD_ICertificate_GETTER_ExtendedKeyUsage_TO (base::)
#define COM_FORWARD_ICertificate_GETTER_RawCertData_TO(smth) NS_IMETHOD GetRawCertData (PRUint32 * aRawCertDataSize, PRUint8 * * aRawCertData) { return smth GetRawCertData (aRawCertDataSize, aRawCertData); }
#define COM_FORWARD_ICertificate_GETTER_RawCertData_TO_OBJ(obj) COM_FORWARD_ICertificate_GETTER_RawCertData_TO ((obj)->)
#define COM_FORWARD_ICertificate_GETTER_RawCertData_TO_BASE(base) COM_FORWARD_ICertificate_GETTER_RawCertData_TO (base::)
#define COM_FORWARD_ICertificate_GETTER_SelfSigned_TO(smth) NS_IMETHOD GetSelfSigned (PRBool * aSelfSigned) { return smth GetSelfSigned (aSelfSigned); }
#define COM_FORWARD_ICertificate_GETTER_SelfSigned_TO_OBJ(obj) COM_FORWARD_ICertificate_GETTER_SelfSigned_TO ((obj)->)
#define COM_FORWARD_ICertificate_GETTER_SelfSigned_TO_BASE(base) COM_FORWARD_ICertificate_GETTER_SelfSigned_TO (base::)
#define COM_FORWARD_ICertificate_GETTER_Trusted_TO(smth) NS_IMETHOD GetTrusted (PRBool * aTrusted) { return smth GetTrusted (aTrusted); }
#define COM_FORWARD_ICertificate_GETTER_Trusted_TO_OBJ(obj) COM_FORWARD_ICertificate_GETTER_Trusted_TO ((obj)->)
#define COM_FORWARD_ICertificate_GETTER_Trusted_TO_BASE(base) COM_FORWARD_ICertificate_GETTER_Trusted_TO (base::)
#define COM_FORWARD_ICertificate_GETTER_Expired_TO(smth) NS_IMETHOD GetExpired (PRBool * aExpired) { return smth GetExpired (aExpired); }
#define COM_FORWARD_ICertificate_GETTER_Expired_TO_OBJ(obj) COM_FORWARD_ICertificate_GETTER_Expired_TO ((obj)->)
#define COM_FORWARD_ICertificate_GETTER_Expired_TO_BASE(base) COM_FORWARD_ICertificate_GETTER_Expired_TO (base::)
#define COM_FORWARD_ICertificate_IsCurrentlyExpired_TO(smth) NS_IMETHOD IsCurrentlyExpired (PRBool * aResult) { return smth IsCurrentlyExpired (aResult); }
#define COM_FORWARD_ICertificate_IsCurrentlyExpired_TO_OBJ(obj) COM_FORWARD_ICertificate_IsCurrentlyExpired_TO ((obj)->)
#define COM_FORWARD_ICertificate_IsCurrentlyExpired_TO_BASE(base) COM_FORWARD_ICertificate_IsCurrentlyExpired_TO (base::)
#define COM_FORWARD_ICertificate_QueryInfo_TO(smth) NS_IMETHOD QueryInfo (PRInt32 aWhat, PRUnichar * * aResult) { return smth QueryInfo (aWhat, aResult); }
#define COM_FORWARD_ICertificate_QueryInfo_TO_OBJ(obj) COM_FORWARD_ICertificate_QueryInfo_TO ((obj)->)
#define COM_FORWARD_ICertificate_QueryInfo_TO_BASE(base) COM_FORWARD_ICertificate_QueryInfo_TO (base::)
#define COM_FORWARD_ICertificate_TO(smth) NS_FORWARD_ICERTIFICATE (smth)
#define COM_FORWARD_ICertificate_TO_OBJ(obj) COM_FORWARD_ICertificate_TO ((obj)->)
#define COM_FORWARD_ICertificate_TO_BASE(base) COM_FORWARD_ICertificate_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ICertificate;
%}

[
    uuid(86a98347-7619-41aa-aece-b21ac5c1a7e6),
    scriptable
]
interface IAppliance : nsISupports
{
    readonly attribute wstring path;

    void getDisks (
        out unsigned long disksSize,
        [array, size_is(disksSize), retval] out wstring disks
    );

    void getVirtualSystemDescriptions (
        out unsigned long virtualSystemDescriptionsSize,
        [array, size_is(virtualSystemDescriptionsSize), retval] out IVirtualSystemDescription virtualSystemDescriptions
    );

    void getMachines (
        out unsigned long machinesSize,
        [array, size_is(machinesSize), retval] out wstring machines
    );

    readonly attribute ICertificate certificate;

    readonly attribute unsigned long InternalAndReservedAttribute1IAppliance;

    readonly attribute unsigned long InternalAndReservedAttribute2IAppliance;

    readonly attribute unsigned long InternalAndReservedAttribute3IAppliance;

    readonly attribute unsigned long InternalAndReservedAttribute4IAppliance;

    readonly attribute unsigned long InternalAndReservedAttribute5IAppliance;

    readonly attribute unsigned long InternalAndReservedAttribute6IAppliance;

    readonly attribute unsigned long InternalAndReservedAttribute7IAppliance;

    readonly attribute unsigned long InternalAndReservedAttribute8IAppliance;

    void read (
        in wstring file,
        [retval] out IProgress progress
    );

    void interpret();

    void importMachines (
        in unsigned long optionsSize,
        [array, size_is(optionsSize)] in ImportOptions_T options,
        [retval] out IProgress progress
    );

    void createVFSExplorer (
        in wstring URI,
        [retval] out IVFSExplorer explorer
    );

    void write (
        in wstring format,
        in unsigned long optionsSize,
        [array, size_is(optionsSize)] in ExportOptions_T options,
        in wstring path,
        [retval] out IProgress progress
    );

    void getWarnings (
        out unsigned long warningsSize,
        [array, size_is(warningsSize) , retval] out wstring warnings
    );

    void getPasswordIds (
        out unsigned long identifiersSize,
        [array, size_is(identifiersSize) , retval] out wstring identifiers
    );

    void getMediumIdsForPasswordId (
        in wstring passwordId,
        out unsigned long identifiersSize,
        [array, size_is(identifiersSize) , retval] out wstring identifiers
    );

    void addPasswords (
        in unsigned long identifiersSize,
        [array, size_is(identifiersSize)] in wstring identifiers,
        in unsigned long passwordsSize,
        [array, size_is(passwordsSize)] in wstring passwords
    );

    void createVirtualSystemDescriptions (
        in unsigned long requested,
        [retval] out unsigned long created
    );

    void InternalAndReservedMethod1IAppliance();

    void InternalAndReservedMethod2IAppliance();

    void InternalAndReservedMethod3IAppliance();

    void InternalAndReservedMethod4IAppliance();

    void InternalAndReservedMethod5IAppliance();

    void InternalAndReservedMethod6IAppliance();

    void InternalAndReservedMethod7IAppliance();

}; /* interface IAppliance */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IAppliance_GETTER_Path_TO(smth) NS_IMETHOD GetPath (PRUnichar * * aPath) { return smth GetPath (aPath); }
#define COM_FORWARD_IAppliance_GETTER_Path_TO_OBJ(obj) COM_FORWARD_IAppliance_GETTER_Path_TO ((obj)->)
#define COM_FORWARD_IAppliance_GETTER_Path_TO_BASE(base) COM_FORWARD_IAppliance_GETTER_Path_TO (base::)
#define COM_FORWARD_IAppliance_GETTER_Disks_TO(smth) NS_IMETHOD GetDisks (PRUint32 * aDisksSize, PRUnichar * * * aDisks) { return smth GetDisks (aDisksSize, aDisks); }
#define COM_FORWARD_IAppliance_GETTER_Disks_TO_OBJ(obj) COM_FORWARD_IAppliance_GETTER_Disks_TO ((obj)->)
#define COM_FORWARD_IAppliance_GETTER_Disks_TO_BASE(base) COM_FORWARD_IAppliance_GETTER_Disks_TO (base::)
#define COM_FORWARD_IAppliance_GETTER_VirtualSystemDescriptions_TO(smth) NS_IMETHOD GetVirtualSystemDescriptions (PRUint32 * aVirtualSystemDescriptionsSize, IVirtualSystemDescription * * * aVirtualSystemDescriptions) { return smth GetVirtualSystemDescriptions (aVirtualSystemDescriptionsSize, aVirtualSystemDescriptions); }
#define COM_FORWARD_IAppliance_GETTER_VirtualSystemDescriptions_TO_OBJ(obj) COM_FORWARD_IAppliance_GETTER_VirtualSystemDescriptions_TO ((obj)->)
#define COM_FORWARD_IAppliance_GETTER_VirtualSystemDescriptions_TO_BASE(base) COM_FORWARD_IAppliance_GETTER_VirtualSystemDescriptions_TO (base::)
#define COM_FORWARD_IAppliance_GETTER_Machines_TO(smth) NS_IMETHOD GetMachines (PRUint32 * aMachinesSize, PRUnichar * * * aMachines) { return smth GetMachines (aMachinesSize, aMachines); }
#define COM_FORWARD_IAppliance_GETTER_Machines_TO_OBJ(obj) COM_FORWARD_IAppliance_GETTER_Machines_TO ((obj)->)
#define COM_FORWARD_IAppliance_GETTER_Machines_TO_BASE(base) COM_FORWARD_IAppliance_GETTER_Machines_TO (base::)
#define COM_FORWARD_IAppliance_GETTER_Certificate_TO(smth) NS_IMETHOD GetCertificate (ICertificate * * aCertificate) { return smth GetCertificate (aCertificate); }
#define COM_FORWARD_IAppliance_GETTER_Certificate_TO_OBJ(obj) COM_FORWARD_IAppliance_GETTER_Certificate_TO ((obj)->)
#define COM_FORWARD_IAppliance_GETTER_Certificate_TO_BASE(base) COM_FORWARD_IAppliance_GETTER_Certificate_TO (base::)
#define COM_FORWARD_IAppliance_Read_TO(smth) NS_IMETHOD Read (PRUnichar * aFile, IProgress * * aProgress) { return smth Read (aFile, aProgress); }
#define COM_FORWARD_IAppliance_Read_TO_OBJ(obj) COM_FORWARD_IAppliance_Read_TO ((obj)->)
#define COM_FORWARD_IAppliance_Read_TO_BASE(base) COM_FORWARD_IAppliance_Read_TO (base::)
#define COM_FORWARD_IAppliance_Interpret_TO(smth) NS_IMETHOD Interpret() { return smth Interpret(); }
#define COM_FORWARD_IAppliance_Interpret_TO_OBJ(obj) COM_FORWARD_IAppliance_Interpret_TO ((obj)->)
#define COM_FORWARD_IAppliance_Interpret_TO_BASE(base) COM_FORWARD_IAppliance_Interpret_TO (base::)
#define COM_FORWARD_IAppliance_ImportMachines_TO(smth) NS_IMETHOD ImportMachines (PRUint32 aOptionsSize, PRUint32 * aOptions, IProgress * * aProgress) { return smth ImportMachines (aOptionsSize+++, aOptions, aProgress); }
#define COM_FORWARD_IAppliance_ImportMachines_TO_OBJ(obj) COM_FORWARD_IAppliance_ImportMachines_TO ((obj)->)
#define COM_FORWARD_IAppliance_ImportMachines_TO_BASE(base) COM_FORWARD_IAppliance_ImportMachines_TO (base::)
#define COM_FORWARD_IAppliance_CreateVFSExplorer_TO(smth) NS_IMETHOD CreateVFSExplorer (PRUnichar * aURI, IVFSExplorer * * aExplorer) { return smth CreateVFSExplorer (aURI, aExplorer); }
#define COM_FORWARD_IAppliance_CreateVFSExplorer_TO_OBJ(obj) COM_FORWARD_IAppliance_CreateVFSExplorer_TO ((obj)->)
#define COM_FORWARD_IAppliance_CreateVFSExplorer_TO_BASE(base) COM_FORWARD_IAppliance_CreateVFSExplorer_TO (base::)
#define COM_FORWARD_IAppliance_Write_TO(smth) NS_IMETHOD Write (PRUnichar * aFormat, PRUint32 aOptionsSize, PRUint32 * aOptions, PRUnichar * aPath, IProgress * * aProgress) { return smth Write (aFormat, aOptionsSize+++, aOptions, aPath, aProgress); }
#define COM_FORWARD_IAppliance_Write_TO_OBJ(obj) COM_FORWARD_IAppliance_Write_TO ((obj)->)
#define COM_FORWARD_IAppliance_Write_TO_BASE(base) COM_FORWARD_IAppliance_Write_TO (base::)
#define COM_FORWARD_IAppliance_GetWarnings_TO(smth) NS_IMETHOD GetWarnings (PRUint32 * aWarningsSize, PRUnichar * * * aWarnings) { return smth GetWarnings (aWarningsSize, aWarnings); }
#define COM_FORWARD_IAppliance_GetWarnings_TO_OBJ(obj) COM_FORWARD_IAppliance_GetWarnings_TO ((obj)->)
#define COM_FORWARD_IAppliance_GetWarnings_TO_BASE(base) COM_FORWARD_IAppliance_GetWarnings_TO (base::)
#define COM_FORWARD_IAppliance_GetPasswordIds_TO(smth) NS_IMETHOD GetPasswordIds (PRUint32 * aIdentifiersSize, PRUnichar * * * aIdentifiers) { return smth GetPasswordIds (aIdentifiersSize, aIdentifiers); }
#define COM_FORWARD_IAppliance_GetPasswordIds_TO_OBJ(obj) COM_FORWARD_IAppliance_GetPasswordIds_TO ((obj)->)
#define COM_FORWARD_IAppliance_GetPasswordIds_TO_BASE(base) COM_FORWARD_IAppliance_GetPasswordIds_TO (base::)
#define COM_FORWARD_IAppliance_GetMediumIdsForPasswordId_TO(smth) NS_IMETHOD GetMediumIdsForPasswordId (PRUnichar * aPasswordId, PRUint32 * aIdentifiersSize, PRUnichar * * * aIdentifiers) { return smth GetMediumIdsForPasswordId (aPasswordId, aIdentifiersSize, aIdentifiers); }
#define COM_FORWARD_IAppliance_GetMediumIdsForPasswordId_TO_OBJ(obj) COM_FORWARD_IAppliance_GetMediumIdsForPasswordId_TO ((obj)->)
#define COM_FORWARD_IAppliance_GetMediumIdsForPasswordId_TO_BASE(base) COM_FORWARD_IAppliance_GetMediumIdsForPasswordId_TO (base::)
#define COM_FORWARD_IAppliance_AddPasswords_TO(smth) NS_IMETHOD AddPasswords (PRUint32 aIdentifiersSize, PRUnichar * * aIdentifiers, PRUint32 aPasswordsSize, PRUnichar * * aPasswords) { return smth AddPasswords (aIdentifiersSize+++, aIdentifiers, aPasswordsSize, aPasswords); }
#define COM_FORWARD_IAppliance_AddPasswords_TO_OBJ(obj) COM_FORWARD_IAppliance_AddPasswords_TO ((obj)->)
#define COM_FORWARD_IAppliance_AddPasswords_TO_BASE(base) COM_FORWARD_IAppliance_AddPasswords_TO (base::)
#define COM_FORWARD_IAppliance_CreateVirtualSystemDescriptions_TO(smth) NS_IMETHOD CreateVirtualSystemDescriptions (PRUint32 aRequested, PRUint32 * aCreated) { return smth CreateVirtualSystemDescriptions (aRequested, aCreated); }
#define COM_FORWARD_IAppliance_CreateVirtualSystemDescriptions_TO_OBJ(obj) COM_FORWARD_IAppliance_CreateVirtualSystemDescriptions_TO ((obj)->)
#define COM_FORWARD_IAppliance_CreateVirtualSystemDescriptions_TO_BASE(base) COM_FORWARD_IAppliance_CreateVirtualSystemDescriptions_TO (base::)
#define COM_FORWARD_IAppliance_TO(smth) NS_FORWARD_IAPPLIANCE (smth)
#define COM_FORWARD_IAppliance_TO_OBJ(obj) COM_FORWARD_IAppliance_TO ((obj)->)
#define COM_FORWARD_IAppliance_TO_BASE(base) COM_FORWARD_IAppliance_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IAppliance;
%}

[
    uuid(01510f40-c196-4d26-b8db-4c8c389f1f82),
    scriptable
]
interface IVirtualSystemDescription : nsISupports
{
    readonly attribute unsigned long count;

    readonly attribute unsigned long InternalAndReservedAttribute1IVirtualSystemDescription;

    readonly attribute unsigned long InternalAndReservedAttribute2IVirtualSystemDescription;

    readonly attribute unsigned long InternalAndReservedAttribute3IVirtualSystemDescription;

    readonly attribute unsigned long InternalAndReservedAttribute4IVirtualSystemDescription;

    void getDescription (
        out unsigned long typesSize,
        [array, size_is(typesSize)] out VirtualSystemDescriptionType_T types,
        out unsigned long refsSize,
        [array, size_is(refsSize)] out wstring refs,
        out unsigned long OVFValuesSize,
        [array, size_is(OVFValuesSize)] out wstring OVFValues,
        out unsigned long VBoxValuesSize,
        [array, size_is(VBoxValuesSize)] out wstring VBoxValues,
        out unsigned long extraConfigValuesSize,
        [array, size_is(extraConfigValuesSize)] out wstring extraConfigValues
    );

    void getDescriptionByType (
        in VirtualSystemDescriptionType_T type,
        out unsigned long typesSize,
        [array, size_is(typesSize)] out VirtualSystemDescriptionType_T types,
        out unsigned long refsSize,
        [array, size_is(refsSize)] out wstring refs,
        out unsigned long OVFValuesSize,
        [array, size_is(OVFValuesSize)] out wstring OVFValues,
        out unsigned long VBoxValuesSize,
        [array, size_is(VBoxValuesSize)] out wstring VBoxValues,
        out unsigned long extraConfigValuesSize,
        [array, size_is(extraConfigValuesSize)] out wstring extraConfigValues
    );

    void removeDescriptionByType (
        in VirtualSystemDescriptionType_T type
    );

    void getValuesByType (
        in VirtualSystemDescriptionType_T type,
        in VirtualSystemDescriptionValueType_T which,
        out unsigned long valuesSize,
        [array, size_is(valuesSize) , retval] out wstring values
    );

    void setFinalValues (
        in unsigned long enabledSize,
        [array, size_is(enabledSize)] in boolean enabled,
        in unsigned long VBoxValuesSize,
        [array, size_is(VBoxValuesSize)] in wstring VBoxValues,
        in unsigned long extraConfigValuesSize,
        [array, size_is(extraConfigValuesSize)] in wstring extraConfigValues
    );

    void addDescription (
        in VirtualSystemDescriptionType_T type,
        in wstring VBoxValue,
        in wstring extraConfigValue
    );

    void InternalAndReservedMethod1IVirtualSystemDescription();

    void InternalAndReservedMethod2IVirtualSystemDescription();

    void InternalAndReservedMethod3IVirtualSystemDescription();

    void InternalAndReservedMethod4IVirtualSystemDescription();

}; /* interface IVirtualSystemDescription */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IVirtualSystemDescription_GETTER_Count_TO(smth) NS_IMETHOD GetCount (PRUint32 * aCount) { return smth GetCount (aCount); }
#define COM_FORWARD_IVirtualSystemDescription_GETTER_Count_TO_OBJ(obj) COM_FORWARD_IVirtualSystemDescription_GETTER_Count_TO ((obj)->)
#define COM_FORWARD_IVirtualSystemDescription_GETTER_Count_TO_BASE(base) COM_FORWARD_IVirtualSystemDescription_GETTER_Count_TO (base::)
#define COM_FORWARD_IVirtualSystemDescription_GetDescription_TO(smth) NS_IMETHOD GetDescription (PRUint32 * aTypesSize, PRUint32 * * aTypes, PRUint32 * aRefsSize, PRUnichar * * * aRefs, PRUint32 * aOVFValuesSize, PRUnichar * * * aOVFValues, PRUint32 * aVBoxValuesSize, PRUnichar * * * aVBoxValues, PRUint32 * aExtraConfigValuesSize, PRUnichar * * * aExtraConfigValues) { return smth GetDescription (aTypesSize+++, aTypes, aRefsSize+++, aRefs, aOVFValuesSize+++, aOVFValues, aVBoxValuesSize+++, aVBoxValues, aExtraConfigValuesSize, aExtraConfigValues); }
#define COM_FORWARD_IVirtualSystemDescription_GetDescription_TO_OBJ(obj) COM_FORWARD_IVirtualSystemDescription_GetDescription_TO ((obj)->)
#define COM_FORWARD_IVirtualSystemDescription_GetDescription_TO_BASE(base) COM_FORWARD_IVirtualSystemDescription_GetDescription_TO (base::)
#define COM_FORWARD_IVirtualSystemDescription_GetDescriptionByType_TO(smth) NS_IMETHOD GetDescriptionByType (PRUint32 aType, PRUint32 * aTypesSize, PRUint32 * * aTypes, PRUint32 * aRefsSize, PRUnichar * * * aRefs, PRUint32 * aOVFValuesSize, PRUnichar * * * aOVFValues, PRUint32 * aVBoxValuesSize, PRUnichar * * * aVBoxValues, PRUint32 * aExtraConfigValuesSize, PRUnichar * * * aExtraConfigValues) { return smth GetDescriptionByType (aType, aTypesSize+++, aTypes, aRefsSize+++, aRefs, aOVFValuesSize+++, aOVFValues, aVBoxValuesSize+++, aVBoxValues, aExtraConfigValuesSize, aExtraConfigValues); }
#define COM_FORWARD_IVirtualSystemDescription_GetDescriptionByType_TO_OBJ(obj) COM_FORWARD_IVirtualSystemDescription_GetDescriptionByType_TO ((obj)->)
#define COM_FORWARD_IVirtualSystemDescription_GetDescriptionByType_TO_BASE(base) COM_FORWARD_IVirtualSystemDescription_GetDescriptionByType_TO (base::)
#define COM_FORWARD_IVirtualSystemDescription_RemoveDescriptionByType_TO(smth) NS_IMETHOD RemoveDescriptionByType (PRUint32 aType) { return smth RemoveDescriptionByType (aType); }
#define COM_FORWARD_IVirtualSystemDescription_RemoveDescriptionByType_TO_OBJ(obj) COM_FORWARD_IVirtualSystemDescription_RemoveDescriptionByType_TO ((obj)->)
#define COM_FORWARD_IVirtualSystemDescription_RemoveDescriptionByType_TO_BASE(base) COM_FORWARD_IVirtualSystemDescription_RemoveDescriptionByType_TO (base::)
#define COM_FORWARD_IVirtualSystemDescription_GetValuesByType_TO(smth) NS_IMETHOD GetValuesByType (PRUint32 aType, PRUint32 aWhich, PRUint32 * aValuesSize, PRUnichar * * * aValues) { return smth GetValuesByType (aType, aWhich, aValuesSize, aValues); }
#define COM_FORWARD_IVirtualSystemDescription_GetValuesByType_TO_OBJ(obj) COM_FORWARD_IVirtualSystemDescription_GetValuesByType_TO ((obj)->)
#define COM_FORWARD_IVirtualSystemDescription_GetValuesByType_TO_BASE(base) COM_FORWARD_IVirtualSystemDescription_GetValuesByType_TO (base::)
#define COM_FORWARD_IVirtualSystemDescription_SetFinalValues_TO(smth) NS_IMETHOD SetFinalValues (PRUint32 aEnabledSize, PRBool * aEnabled, PRUint32 aVBoxValuesSize, PRUnichar * * aVBoxValues, PRUint32 aExtraConfigValuesSize, PRUnichar * * aExtraConfigValues) { return smth SetFinalValues (aEnabledSize+++, aEnabled, aVBoxValuesSize+++, aVBoxValues, aExtraConfigValuesSize, aExtraConfigValues); }
#define COM_FORWARD_IVirtualSystemDescription_SetFinalValues_TO_OBJ(obj) COM_FORWARD_IVirtualSystemDescription_SetFinalValues_TO ((obj)->)
#define COM_FORWARD_IVirtualSystemDescription_SetFinalValues_TO_BASE(base) COM_FORWARD_IVirtualSystemDescription_SetFinalValues_TO (base::)
#define COM_FORWARD_IVirtualSystemDescription_AddDescription_TO(smth) NS_IMETHOD AddDescription (PRUint32 aType, PRUnichar * aVBoxValue, PRUnichar * aExtraConfigValue) { return smth AddDescription (aType, aVBoxValue, aExtraConfigValue); }
#define COM_FORWARD_IVirtualSystemDescription_AddDescription_TO_OBJ(obj) COM_FORWARD_IVirtualSystemDescription_AddDescription_TO ((obj)->)
#define COM_FORWARD_IVirtualSystemDescription_AddDescription_TO_BASE(base) COM_FORWARD_IVirtualSystemDescription_AddDescription_TO (base::)
#define COM_FORWARD_IVirtualSystemDescription_TO(smth) NS_FORWARD_IVIRTUALSYSTEMDESCRIPTION (smth)
#define COM_FORWARD_IVirtualSystemDescription_TO_OBJ(obj) COM_FORWARD_IVirtualSystemDescription_TO ((obj)->)
#define COM_FORWARD_IVirtualSystemDescription_TO_BASE(base) COM_FORWARD_IVirtualSystemDescription_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IVirtualSystemDescription;
%}

[
    uuid(6f89464f-7193-426c-a41f-522e8f537fa0),
    scriptable
]
interface IUnattended : nsISupports
{
    attribute wstring isoPath;

    attribute IMachine machine;

    attribute wstring user;

    attribute wstring password;

    attribute wstring fullUserName;

    attribute wstring productKey;

    attribute wstring additionsIsoPath;

    attribute boolean installGuestAdditions;

    attribute wstring validationKitIsoPath;

    attribute boolean installTestExecService;

    attribute wstring timeZone;

    attribute wstring locale;

    attribute wstring language;

    attribute wstring country;

    attribute wstring proxy;

    attribute wstring packageSelectionAdjustments;

    attribute wstring hostname;

    attribute wstring auxiliaryBasePath;

    attribute unsigned long imageIndex;

    attribute wstring scriptTemplatePath;

    attribute wstring postInstallScriptTemplatePath;

    attribute wstring postInstallCommand;

    attribute wstring extraInstallKernelParameters;

    readonly attribute wstring detectedOSTypeId;

    readonly attribute wstring detectedOSVersion;

    readonly attribute wstring detectedOSFlavor;

    readonly attribute wstring detectedOSLanguages;

    readonly attribute wstring detectedOSHints;

    readonly attribute unsigned long InternalAndReservedAttribute1IUnattended;

    readonly attribute unsigned long InternalAndReservedAttribute2IUnattended;

    readonly attribute unsigned long InternalAndReservedAttribute3IUnattended;

    readonly attribute unsigned long InternalAndReservedAttribute4IUnattended;

    readonly attribute unsigned long InternalAndReservedAttribute5IUnattended;

    readonly attribute unsigned long InternalAndReservedAttribute6IUnattended;

    readonly attribute unsigned long InternalAndReservedAttribute7IUnattended;

    readonly attribute unsigned long InternalAndReservedAttribute8IUnattended;

    readonly attribute unsigned long InternalAndReservedAttribute9IUnattended;

    readonly attribute unsigned long InternalAndReservedAttribute10IUnattended;

    readonly attribute unsigned long InternalAndReservedAttribute11IUnattended;

    readonly attribute unsigned long InternalAndReservedAttribute12IUnattended;

    readonly attribute unsigned long InternalAndReservedAttribute13IUnattended;

    readonly attribute unsigned long InternalAndReservedAttribute14IUnattended;

    readonly attribute unsigned long InternalAndReservedAttribute15IUnattended;

    readonly attribute unsigned long InternalAndReservedAttribute16IUnattended;

    void detectIsoOS();

    void prepare();

    void constructMedia();

    void reconfigureVM();

    void done();

    void InternalAndReservedMethod1IUnattended();

    void InternalAndReservedMethod2IUnattended();

    void InternalAndReservedMethod3IUnattended();

    void InternalAndReservedMethod4IUnattended();

}; /* interface IUnattended */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IUnattended_GETTER_IsoPath_TO(smth) NS_IMETHOD GetIsoPath (PRUnichar * * aIsoPath) { return smth GetIsoPath (aIsoPath); }
#define COM_FORWARD_IUnattended_GETTER_IsoPath_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_IsoPath_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_IsoPath_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_IsoPath_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_IsoPath_TO(smth) NS_IMETHOD SetIsoPath (const PRUnichar * aIsoPath) { return smth SetIsoPath (aIsoPath); }
#define COM_FORWARD_IUnattended_SETTER_IsoPath_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_IsoPath_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_IsoPath_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_IsoPath_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_Machine_TO(smth) NS_IMETHOD GetMachine (IMachine * * aMachine) { return smth GetMachine (aMachine); }
#define COM_FORWARD_IUnattended_GETTER_Machine_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_Machine_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_Machine_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_Machine_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_Machine_TO(smth) NS_IMETHOD SetMachine (IMachine * aMachine) { return smth SetMachine (aMachine); }
#define COM_FORWARD_IUnattended_SETTER_Machine_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_Machine_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_Machine_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_Machine_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_User_TO(smth) NS_IMETHOD GetUser (PRUnichar * * aUser) { return smth GetUser (aUser); }
#define COM_FORWARD_IUnattended_GETTER_User_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_User_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_User_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_User_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_User_TO(smth) NS_IMETHOD SetUser (const PRUnichar * aUser) { return smth SetUser (aUser); }
#define COM_FORWARD_IUnattended_SETTER_User_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_User_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_User_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_User_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_Password_TO(smth) NS_IMETHOD GetPassword (PRUnichar * * aPassword) { return smth GetPassword (aPassword); }
#define COM_FORWARD_IUnattended_GETTER_Password_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_Password_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_Password_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_Password_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_Password_TO(smth) NS_IMETHOD SetPassword (const PRUnichar * aPassword) { return smth SetPassword (aPassword); }
#define COM_FORWARD_IUnattended_SETTER_Password_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_Password_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_Password_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_Password_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_FullUserName_TO(smth) NS_IMETHOD GetFullUserName (PRUnichar * * aFullUserName) { return smth GetFullUserName (aFullUserName); }
#define COM_FORWARD_IUnattended_GETTER_FullUserName_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_FullUserName_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_FullUserName_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_FullUserName_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_FullUserName_TO(smth) NS_IMETHOD SetFullUserName (const PRUnichar * aFullUserName) { return smth SetFullUserName (aFullUserName); }
#define COM_FORWARD_IUnattended_SETTER_FullUserName_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_FullUserName_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_FullUserName_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_FullUserName_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_ProductKey_TO(smth) NS_IMETHOD GetProductKey (PRUnichar * * aProductKey) { return smth GetProductKey (aProductKey); }
#define COM_FORWARD_IUnattended_GETTER_ProductKey_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_ProductKey_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_ProductKey_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_ProductKey_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_ProductKey_TO(smth) NS_IMETHOD SetProductKey (const PRUnichar * aProductKey) { return smth SetProductKey (aProductKey); }
#define COM_FORWARD_IUnattended_SETTER_ProductKey_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_ProductKey_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_ProductKey_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_ProductKey_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_AdditionsIsoPath_TO(smth) NS_IMETHOD GetAdditionsIsoPath (PRUnichar * * aAdditionsIsoPath) { return smth GetAdditionsIsoPath (aAdditionsIsoPath); }
#define COM_FORWARD_IUnattended_GETTER_AdditionsIsoPath_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_AdditionsIsoPath_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_AdditionsIsoPath_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_AdditionsIsoPath_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_AdditionsIsoPath_TO(smth) NS_IMETHOD SetAdditionsIsoPath (const PRUnichar * aAdditionsIsoPath) { return smth SetAdditionsIsoPath (aAdditionsIsoPath); }
#define COM_FORWARD_IUnattended_SETTER_AdditionsIsoPath_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_AdditionsIsoPath_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_AdditionsIsoPath_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_AdditionsIsoPath_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_InstallGuestAdditions_TO(smth) NS_IMETHOD GetInstallGuestAdditions (PRBool * aInstallGuestAdditions) { return smth GetInstallGuestAdditions (aInstallGuestAdditions); }
#define COM_FORWARD_IUnattended_GETTER_InstallGuestAdditions_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_InstallGuestAdditions_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_InstallGuestAdditions_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_InstallGuestAdditions_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_InstallGuestAdditions_TO(smth) NS_IMETHOD SetInstallGuestAdditions (PRBool aInstallGuestAdditions) { return smth SetInstallGuestAdditions (aInstallGuestAdditions); }
#define COM_FORWARD_IUnattended_SETTER_InstallGuestAdditions_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_InstallGuestAdditions_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_InstallGuestAdditions_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_InstallGuestAdditions_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_ValidationKitIsoPath_TO(smth) NS_IMETHOD GetValidationKitIsoPath (PRUnichar * * aValidationKitIsoPath) { return smth GetValidationKitIsoPath (aValidationKitIsoPath); }
#define COM_FORWARD_IUnattended_GETTER_ValidationKitIsoPath_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_ValidationKitIsoPath_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_ValidationKitIsoPath_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_ValidationKitIsoPath_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_ValidationKitIsoPath_TO(smth) NS_IMETHOD SetValidationKitIsoPath (const PRUnichar * aValidationKitIsoPath) { return smth SetValidationKitIsoPath (aValidationKitIsoPath); }
#define COM_FORWARD_IUnattended_SETTER_ValidationKitIsoPath_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_ValidationKitIsoPath_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_ValidationKitIsoPath_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_ValidationKitIsoPath_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_InstallTestExecService_TO(smth) NS_IMETHOD GetInstallTestExecService (PRBool * aInstallTestExecService) { return smth GetInstallTestExecService (aInstallTestExecService); }
#define COM_FORWARD_IUnattended_GETTER_InstallTestExecService_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_InstallTestExecService_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_InstallTestExecService_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_InstallTestExecService_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_InstallTestExecService_TO(smth) NS_IMETHOD SetInstallTestExecService (PRBool aInstallTestExecService) { return smth SetInstallTestExecService (aInstallTestExecService); }
#define COM_FORWARD_IUnattended_SETTER_InstallTestExecService_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_InstallTestExecService_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_InstallTestExecService_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_InstallTestExecService_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_TimeZone_TO(smth) NS_IMETHOD GetTimeZone (PRUnichar * * aTimeZone) { return smth GetTimeZone (aTimeZone); }
#define COM_FORWARD_IUnattended_GETTER_TimeZone_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_TimeZone_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_TimeZone_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_TimeZone_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_TimeZone_TO(smth) NS_IMETHOD SetTimeZone (const PRUnichar * aTimeZone) { return smth SetTimeZone (aTimeZone); }
#define COM_FORWARD_IUnattended_SETTER_TimeZone_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_TimeZone_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_TimeZone_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_TimeZone_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_Locale_TO(smth) NS_IMETHOD GetLocale (PRUnichar * * aLocale) { return smth GetLocale (aLocale); }
#define COM_FORWARD_IUnattended_GETTER_Locale_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_Locale_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_Locale_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_Locale_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_Locale_TO(smth) NS_IMETHOD SetLocale (const PRUnichar * aLocale) { return smth SetLocale (aLocale); }
#define COM_FORWARD_IUnattended_SETTER_Locale_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_Locale_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_Locale_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_Locale_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_Language_TO(smth) NS_IMETHOD GetLanguage (PRUnichar * * aLanguage) { return smth GetLanguage (aLanguage); }
#define COM_FORWARD_IUnattended_GETTER_Language_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_Language_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_Language_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_Language_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_Language_TO(smth) NS_IMETHOD SetLanguage (const PRUnichar * aLanguage) { return smth SetLanguage (aLanguage); }
#define COM_FORWARD_IUnattended_SETTER_Language_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_Language_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_Language_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_Language_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_Country_TO(smth) NS_IMETHOD GetCountry (PRUnichar * * aCountry) { return smth GetCountry (aCountry); }
#define COM_FORWARD_IUnattended_GETTER_Country_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_Country_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_Country_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_Country_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_Country_TO(smth) NS_IMETHOD SetCountry (const PRUnichar * aCountry) { return smth SetCountry (aCountry); }
#define COM_FORWARD_IUnattended_SETTER_Country_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_Country_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_Country_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_Country_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_Proxy_TO(smth) NS_IMETHOD GetProxy (PRUnichar * * aProxy) { return smth GetProxy (aProxy); }
#define COM_FORWARD_IUnattended_GETTER_Proxy_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_Proxy_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_Proxy_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_Proxy_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_Proxy_TO(smth) NS_IMETHOD SetProxy (const PRUnichar * aProxy) { return smth SetProxy (aProxy); }
#define COM_FORWARD_IUnattended_SETTER_Proxy_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_Proxy_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_Proxy_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_Proxy_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_PackageSelectionAdjustments_TO(smth) NS_IMETHOD GetPackageSelectionAdjustments (PRUnichar * * aPackageSelectionAdjustments) { return smth GetPackageSelectionAdjustments (aPackageSelectionAdjustments); }
#define COM_FORWARD_IUnattended_GETTER_PackageSelectionAdjustments_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_PackageSelectionAdjustments_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_PackageSelectionAdjustments_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_PackageSelectionAdjustments_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_PackageSelectionAdjustments_TO(smth) NS_IMETHOD SetPackageSelectionAdjustments (const PRUnichar * aPackageSelectionAdjustments) { return smth SetPackageSelectionAdjustments (aPackageSelectionAdjustments); }
#define COM_FORWARD_IUnattended_SETTER_PackageSelectionAdjustments_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_PackageSelectionAdjustments_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_PackageSelectionAdjustments_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_PackageSelectionAdjustments_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_Hostname_TO(smth) NS_IMETHOD GetHostname (PRUnichar * * aHostname) { return smth GetHostname (aHostname); }
#define COM_FORWARD_IUnattended_GETTER_Hostname_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_Hostname_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_Hostname_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_Hostname_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_Hostname_TO(smth) NS_IMETHOD SetHostname (const PRUnichar * aHostname) { return smth SetHostname (aHostname); }
#define COM_FORWARD_IUnattended_SETTER_Hostname_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_Hostname_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_Hostname_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_Hostname_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_AuxiliaryBasePath_TO(smth) NS_IMETHOD GetAuxiliaryBasePath (PRUnichar * * aAuxiliaryBasePath) { return smth GetAuxiliaryBasePath (aAuxiliaryBasePath); }
#define COM_FORWARD_IUnattended_GETTER_AuxiliaryBasePath_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_AuxiliaryBasePath_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_AuxiliaryBasePath_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_AuxiliaryBasePath_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_AuxiliaryBasePath_TO(smth) NS_IMETHOD SetAuxiliaryBasePath (const PRUnichar * aAuxiliaryBasePath) { return smth SetAuxiliaryBasePath (aAuxiliaryBasePath); }
#define COM_FORWARD_IUnattended_SETTER_AuxiliaryBasePath_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_AuxiliaryBasePath_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_AuxiliaryBasePath_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_AuxiliaryBasePath_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_ImageIndex_TO(smth) NS_IMETHOD GetImageIndex (PRUint32 * aImageIndex) { return smth GetImageIndex (aImageIndex); }
#define COM_FORWARD_IUnattended_GETTER_ImageIndex_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_ImageIndex_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_ImageIndex_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_ImageIndex_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_ImageIndex_TO(smth) NS_IMETHOD SetImageIndex (PRUint32 aImageIndex) { return smth SetImageIndex (aImageIndex); }
#define COM_FORWARD_IUnattended_SETTER_ImageIndex_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_ImageIndex_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_ImageIndex_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_ImageIndex_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_ScriptTemplatePath_TO(smth) NS_IMETHOD GetScriptTemplatePath (PRUnichar * * aScriptTemplatePath) { return smth GetScriptTemplatePath (aScriptTemplatePath); }
#define COM_FORWARD_IUnattended_GETTER_ScriptTemplatePath_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_ScriptTemplatePath_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_ScriptTemplatePath_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_ScriptTemplatePath_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_ScriptTemplatePath_TO(smth) NS_IMETHOD SetScriptTemplatePath (const PRUnichar * aScriptTemplatePath) { return smth SetScriptTemplatePath (aScriptTemplatePath); }
#define COM_FORWARD_IUnattended_SETTER_ScriptTemplatePath_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_ScriptTemplatePath_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_ScriptTemplatePath_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_ScriptTemplatePath_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_PostInstallScriptTemplatePath_TO(smth) NS_IMETHOD GetPostInstallScriptTemplatePath (PRUnichar * * aPostInstallScriptTemplatePath) { return smth GetPostInstallScriptTemplatePath (aPostInstallScriptTemplatePath); }
#define COM_FORWARD_IUnattended_GETTER_PostInstallScriptTemplatePath_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_PostInstallScriptTemplatePath_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_PostInstallScriptTemplatePath_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_PostInstallScriptTemplatePath_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_PostInstallScriptTemplatePath_TO(smth) NS_IMETHOD SetPostInstallScriptTemplatePath (const PRUnichar * aPostInstallScriptTemplatePath) { return smth SetPostInstallScriptTemplatePath (aPostInstallScriptTemplatePath); }
#define COM_FORWARD_IUnattended_SETTER_PostInstallScriptTemplatePath_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_PostInstallScriptTemplatePath_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_PostInstallScriptTemplatePath_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_PostInstallScriptTemplatePath_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_PostInstallCommand_TO(smth) NS_IMETHOD GetPostInstallCommand (PRUnichar * * aPostInstallCommand) { return smth GetPostInstallCommand (aPostInstallCommand); }
#define COM_FORWARD_IUnattended_GETTER_PostInstallCommand_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_PostInstallCommand_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_PostInstallCommand_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_PostInstallCommand_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_PostInstallCommand_TO(smth) NS_IMETHOD SetPostInstallCommand (const PRUnichar * aPostInstallCommand) { return smth SetPostInstallCommand (aPostInstallCommand); }
#define COM_FORWARD_IUnattended_SETTER_PostInstallCommand_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_PostInstallCommand_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_PostInstallCommand_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_PostInstallCommand_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_ExtraInstallKernelParameters_TO(smth) NS_IMETHOD GetExtraInstallKernelParameters (PRUnichar * * aExtraInstallKernelParameters) { return smth GetExtraInstallKernelParameters (aExtraInstallKernelParameters); }
#define COM_FORWARD_IUnattended_GETTER_ExtraInstallKernelParameters_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_ExtraInstallKernelParameters_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_ExtraInstallKernelParameters_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_ExtraInstallKernelParameters_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_ExtraInstallKernelParameters_TO(smth) NS_IMETHOD SetExtraInstallKernelParameters (const PRUnichar * aExtraInstallKernelParameters) { return smth SetExtraInstallKernelParameters (aExtraInstallKernelParameters); }
#define COM_FORWARD_IUnattended_SETTER_ExtraInstallKernelParameters_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_ExtraInstallKernelParameters_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_ExtraInstallKernelParameters_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_ExtraInstallKernelParameters_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_DetectedOSTypeId_TO(smth) NS_IMETHOD GetDetectedOSTypeId (PRUnichar * * aDetectedOSTypeId) { return smth GetDetectedOSTypeId (aDetectedOSTypeId); }
#define COM_FORWARD_IUnattended_GETTER_DetectedOSTypeId_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_DetectedOSTypeId_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_DetectedOSTypeId_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_DetectedOSTypeId_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_DetectedOSVersion_TO(smth) NS_IMETHOD GetDetectedOSVersion (PRUnichar * * aDetectedOSVersion) { return smth GetDetectedOSVersion (aDetectedOSVersion); }
#define COM_FORWARD_IUnattended_GETTER_DetectedOSVersion_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_DetectedOSVersion_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_DetectedOSVersion_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_DetectedOSVersion_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_DetectedOSFlavor_TO(smth) NS_IMETHOD GetDetectedOSFlavor (PRUnichar * * aDetectedOSFlavor) { return smth GetDetectedOSFlavor (aDetectedOSFlavor); }
#define COM_FORWARD_IUnattended_GETTER_DetectedOSFlavor_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_DetectedOSFlavor_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_DetectedOSFlavor_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_DetectedOSFlavor_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_DetectedOSLanguages_TO(smth) NS_IMETHOD GetDetectedOSLanguages (PRUnichar * * aDetectedOSLanguages) { return smth GetDetectedOSLanguages (aDetectedOSLanguages); }
#define COM_FORWARD_IUnattended_GETTER_DetectedOSLanguages_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_DetectedOSLanguages_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_DetectedOSLanguages_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_DetectedOSLanguages_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_DetectedOSHints_TO(smth) NS_IMETHOD GetDetectedOSHints (PRUnichar * * aDetectedOSHints) { return smth GetDetectedOSHints (aDetectedOSHints); }
#define COM_FORWARD_IUnattended_GETTER_DetectedOSHints_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_DetectedOSHints_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_DetectedOSHints_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_DetectedOSHints_TO (base::)
#define COM_FORWARD_IUnattended_DetectIsoOS_TO(smth) NS_IMETHOD DetectIsoOS() { return smth DetectIsoOS(); }
#define COM_FORWARD_IUnattended_DetectIsoOS_TO_OBJ(obj) COM_FORWARD_IUnattended_DetectIsoOS_TO ((obj)->)
#define COM_FORWARD_IUnattended_DetectIsoOS_TO_BASE(base) COM_FORWARD_IUnattended_DetectIsoOS_TO (base::)
#define COM_FORWARD_IUnattended_Prepare_TO(smth) NS_IMETHOD Prepare() { return smth Prepare(); }
#define COM_FORWARD_IUnattended_Prepare_TO_OBJ(obj) COM_FORWARD_IUnattended_Prepare_TO ((obj)->)
#define COM_FORWARD_IUnattended_Prepare_TO_BASE(base) COM_FORWARD_IUnattended_Prepare_TO (base::)
#define COM_FORWARD_IUnattended_ConstructMedia_TO(smth) NS_IMETHOD ConstructMedia() { return smth ConstructMedia(); }
#define COM_FORWARD_IUnattended_ConstructMedia_TO_OBJ(obj) COM_FORWARD_IUnattended_ConstructMedia_TO ((obj)->)
#define COM_FORWARD_IUnattended_ConstructMedia_TO_BASE(base) COM_FORWARD_IUnattended_ConstructMedia_TO (base::)
#define COM_FORWARD_IUnattended_ReconfigureVM_TO(smth) NS_IMETHOD ReconfigureVM() { return smth ReconfigureVM(); }
#define COM_FORWARD_IUnattended_ReconfigureVM_TO_OBJ(obj) COM_FORWARD_IUnattended_ReconfigureVM_TO ((obj)->)
#define COM_FORWARD_IUnattended_ReconfigureVM_TO_BASE(base) COM_FORWARD_IUnattended_ReconfigureVM_TO (base::)
#define COM_FORWARD_IUnattended_Done_TO(smth) NS_IMETHOD Done() { return smth Done(); }
#define COM_FORWARD_IUnattended_Done_TO_OBJ(obj) COM_FORWARD_IUnattended_Done_TO ((obj)->)
#define COM_FORWARD_IUnattended_Done_TO_BASE(base) COM_FORWARD_IUnattended_Done_TO (base::)
#define COM_FORWARD_IUnattended_TO(smth) NS_FORWARD_IUNATTENDED (smth)
#define COM_FORWARD_IUnattended_TO_OBJ(obj) COM_FORWARD_IUnattended_TO ((obj)->)
#define COM_FORWARD_IUnattended_TO_BASE(base) COM_FORWARD_IUnattended_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IUnattended;
%}

[
    uuid(0075FD6C-00C2-4484-0077-C057003D9C90),
    scriptable
]
interface IInternalMachineControl : nsISupports
{
    void updateState (
        in MachineState_T state
    );

    void beginPowerUp (
        in IProgress progress
    );

    void endPowerUp (
        in long result
    );

    void beginPoweringDown (
        out IProgress progress
    );

    void endPoweringDown (
        in long result,
        in wstring errMsg
    );

    void runUSBDeviceFilters (
        in IUSBDevice device,
        out boolean matched,
        out unsigned long maskedInterfaces
    );

    void captureUSBDevice (
        in wstring id,
        in wstring captureFilename
    );

    void detachUSBDevice (
        in wstring id,
        in boolean done
    );

    void autoCaptureUSBDevices();

    void detachAllUSBDevices (
        in boolean done
    );

    void onSessionEnd (
        in ISession session,
        [retval] out IProgress progress
    );

    void finishOnlineMergeMedium();

    void pullGuestProperties (
        out unsigned long namesSize,
        [array, size_is(namesSize)] out wstring names,
        out unsigned long valuesSize,
        [array, size_is(valuesSize)] out wstring values,
        out unsigned long timestampsSize,
        [array, size_is(timestampsSize)] out long long timestamps,
        out unsigned long flagsSize,
        [array, size_is(flagsSize)] out wstring flags
    );

    void clipboardAreaRegister (
        in unsigned long parmsSize,
        [array, size_is(parmsSize)] in wstring parms,
        out unsigned long id
    );

    void clipboardAreaUnregister (
        in unsigned long id
    );

    void clipboardAreaAttach (
        in unsigned long id
    );

    void clipboardAreaDetach (
        in unsigned long id
    );

    void clipboardAreaGetMostRecent (
        out unsigned long id
    );

    void clipboardAreaGetRefCount (
        in unsigned long id,
        out unsigned long refcount
    );

    void pushGuestProperty (
        in wstring name,
        in wstring value,
        in long long timestamp,
        in wstring flags
    );

    void lockMedia();

    void unlockMedia();

    void ejectMedium (
        in IMediumAttachment attachment,
        [retval] out IMediumAttachment newAttachment
    );

    void reportVmStatistics (
        in unsigned long validStats,
        in unsigned long cpuUser,
        in unsigned long cpuKernel,
        in unsigned long cpuIdle,
        in unsigned long memTotal,
        in unsigned long memFree,
        in unsigned long memBalloon,
        in unsigned long memShared,
        in unsigned long memCache,
        in unsigned long pagedTotal,
        in unsigned long memAllocTotal,
        in unsigned long memFreeTotal,
        in unsigned long memBalloonTotal,
        in unsigned long memSharedTotal,
        in unsigned long vmNetRx,
        in unsigned long vmNetTx
    );

    void authenticateExternal (
        in unsigned long authParamsSize,
        [array, size_is(authParamsSize)] in wstring authParams,
        out wstring result
    );

}; /* interface IInternalMachineControl */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IInternalMachineControl_UpdateState_TO(smth) NS_IMETHOD UpdateState (PRUint32 aState) { return smth UpdateState (aState); }
#define COM_FORWARD_IInternalMachineControl_UpdateState_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_UpdateState_TO ((obj)->)
#define COM_FORWARD_IInternalMachineControl_UpdateState_TO_BASE(base) COM_FORWARD_IInternalMachineControl_UpdateState_TO (base::)
#define COM_FORWARD_IInternalMachineControl_BeginPowerUp_TO(smth) NS_IMETHOD BeginPowerUp (IProgress * aProgress) { return smth BeginPowerUp (aProgress); }
#define COM_FORWARD_IInternalMachineControl_BeginPowerUp_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_BeginPowerUp_TO ((obj)->)
#define COM_FORWARD_IInternalMachineControl_BeginPowerUp_TO_BASE(base) COM_FORWARD_IInternalMachineControl_BeginPowerUp_TO (base::)
#define COM_FORWARD_IInternalMachineControl_EndPowerUp_TO(smth) NS_IMETHOD EndPowerUp (PRInt32 aResult) { return smth EndPowerUp (aResult); }
#define COM_FORWARD_IInternalMachineControl_EndPowerUp_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_EndPowerUp_TO ((obj)->)
#define COM_FORWARD_IInternalMachineControl_EndPowerUp_TO_BASE(base) COM_FORWARD_IInternalMachineControl_EndPowerUp_TO (base::)
#define COM_FORWARD_IInternalMachineControl_BeginPoweringDown_TO(smth) NS_IMETHOD BeginPoweringDown (IProgress * * aProgress) { return smth BeginPoweringDown (aProgress); }
#define COM_FORWARD_IInternalMachineControl_BeginPoweringDown_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_BeginPoweringDown_TO ((obj)->)
#define COM_FORWARD_IInternalMachineControl_BeginPoweringDown_TO_BASE(base) COM_FORWARD_IInternalMachineControl_BeginPoweringDown_TO (base::)
#define COM_FORWARD_IInternalMachineControl_EndPoweringDown_TO(smth) NS_IMETHOD EndPoweringDown (PRInt32 aResult, PRUnichar * aErrMsg) { return smth EndPoweringDown (aResult, aErrMsg); }
#define COM_FORWARD_IInternalMachineControl_EndPoweringDown_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_EndPoweringDown_TO ((obj)->)
#define COM_FORWARD_IInternalMachineControl_EndPoweringDown_TO_BASE(base) COM_FORWARD_IInternalMachineControl_EndPoweringDown_TO (base::)
#define COM_FORWARD_IInternalMachineControl_RunUSBDeviceFilters_TO(smth) NS_IMETHOD RunUSBDeviceFilters (IUSBDevice * aDevice, PRBool * aMatched, PRUint32 * aMaskedInterfaces) { return smth RunUSBDeviceFilters (aDevice, aMatched, aMaskedInterfaces); }
#define COM_FORWARD_IInternalMachineControl_RunUSBDeviceFilters_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_RunUSBDeviceFilters_TO ((obj)->)
#define COM_FORWARD_IInternalMachineControl_RunUSBDeviceFilters_TO_BASE(base) COM_FORWARD_IInternalMachineControl_RunUSBDeviceFilters_TO (base::)
#define COM_FORWARD_IInternalMachineControl_CaptureUSBDevice_TO(smth) NS_IMETHOD CaptureUSBDevice (PRUnichar * aId, PRUnichar * aCaptureFilename) { return smth CaptureUSBDevice (aId, aCaptureFilename); }
#define COM_FORWARD_IInternalMachineControl_CaptureUSBDevice_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_CaptureUSBDevice_TO ((obj)->)
#define COM_FORWARD_IInternalMachineControl_CaptureUSBDevice_TO_BASE(base) COM_FORWARD_IInternalMachineControl_CaptureUSBDevice_TO (base::)
#define COM_FORWARD_IInternalMachineControl_DetachUSBDevice_TO(smth) NS_IMETHOD DetachUSBDevice (PRUnichar * aId, PRBool aDone) { return smth DetachUSBDevice (aId, aDone); }
#define COM_FORWARD_IInternalMachineControl_DetachUSBDevice_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_DetachUSBDevice_TO ((obj)->)
#define COM_FORWARD_IInternalMachineControl_DetachUSBDevice_TO_BASE(base) COM_FORWARD_IInternalMachineControl_DetachUSBDevice_TO (base::)
#define COM_FORWARD_IInternalMachineControl_AutoCaptureUSBDevices_TO(smth) NS_IMETHOD AutoCaptureUSBDevices() { return smth AutoCaptureUSBDevices(); }
#define COM_FORWARD_IInternalMachineControl_AutoCaptureUSBDevices_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_AutoCaptureUSBDevices_TO ((obj)->)
#define COM_FORWARD_IInternalMachineControl_AutoCaptureUSBDevices_TO_BASE(base) COM_FORWARD_IInternalMachineControl_AutoCaptureUSBDevices_TO (base::)
#define COM_FORWARD_IInternalMachineControl_DetachAllUSBDevices_TO(smth) NS_IMETHOD DetachAllUSBDevices (PRBool aDone) { return smth DetachAllUSBDevices (aDone); }
#define COM_FORWARD_IInternalMachineControl_DetachAllUSBDevices_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_DetachAllUSBDevices_TO ((obj)->)
#define COM_FORWARD_IInternalMachineControl_DetachAllUSBDevices_TO_BASE(base) COM_FORWARD_IInternalMachineControl_DetachAllUSBDevices_TO (base::)
#define COM_FORWARD_IInternalMachineControl_OnSessionEnd_TO(smth) NS_IMETHOD OnSessionEnd (ISession * aSession, IProgress * * aProgress) { return smth OnSessionEnd (aSession, aProgress); }
#define COM_FORWARD_IInternalMachineControl_OnSessionEnd_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_OnSessionEnd_TO ((obj)->)
#define COM_FORWARD_IInternalMachineControl_OnSessionEnd_TO_BASE(base) COM_FORWARD_IInternalMachineControl_OnSessionEnd_TO (base::)
#define COM_FORWARD_IInternalMachineControl_FinishOnlineMergeMedium_TO(smth) NS_IMETHOD FinishOnlineMergeMedium() { return smth FinishOnlineMergeMedium(); }
#define COM_FORWARD_IInternalMachineControl_FinishOnlineMergeMedium_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_FinishOnlineMergeMedium_TO ((obj)->)
#define COM_FORWARD_IInternalMachineControl_FinishOnlineMergeMedium_TO_BASE(base) COM_FORWARD_IInternalMachineControl_FinishOnlineMergeMedium_TO (base::)
#define COM_FORWARD_IInternalMachineControl_PullGuestProperties_TO(smth) NS_IMETHOD PullGuestProperties (PRUint32 * aNamesSize, PRUnichar * * * aNames, PRUint32 * aValuesSize, PRUnichar * * * aValues, PRUint32 * aTimestampsSize, PRInt64 * * aTimestamps, PRUint32 * aFlagsSize, PRUnichar * * * aFlags) { return smth PullGuestProperties (aNamesSize+++, aNames, aValuesSize+++, aValues, aTimestampsSize+++, aTimestamps, aFlagsSize, aFlags); }
#define COM_FORWARD_IInternalMachineControl_PullGuestProperties_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_PullGuestProperties_TO ((obj)->)
#define COM_FORWARD_IInternalMachineControl_PullGuestProperties_TO_BASE(base) COM_FORWARD_IInternalMachineControl_PullGuestProperties_TO (base::)
#define COM_FORWARD_IInternalMachineControl_ClipboardAreaRegister_TO(smth) NS_IMETHOD ClipboardAreaRegister (PRUint32 aParmsSize, PRUnichar * * aParms, PRUint32 * aId) { return smth ClipboardAreaRegister (aParmsSize+++, aParms, aId); }
#define COM_FORWARD_IInternalMachineControl_ClipboardAreaRegister_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_ClipboardAreaRegister_TO ((obj)->)
#define COM_FORWARD_IInternalMachineControl_ClipboardAreaRegister_TO_BASE(base) COM_FORWARD_IInternalMachineControl_ClipboardAreaRegister_TO (base::)
#define COM_FORWARD_IInternalMachineControl_ClipboardAreaUnregister_TO(smth) NS_IMETHOD ClipboardAreaUnregister (PRUint32 aId) { return smth ClipboardAreaUnregister (aId); }
#define COM_FORWARD_IInternalMachineControl_ClipboardAreaUnregister_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_ClipboardAreaUnregister_TO ((obj)->)
#define COM_FORWARD_IInternalMachineControl_ClipboardAreaUnregister_TO_BASE(base) COM_FORWARD_IInternalMachineControl_ClipboardAreaUnregister_TO (base::)
#define COM_FORWARD_IInternalMachineControl_ClipboardAreaAttach_TO(smth) NS_IMETHOD ClipboardAreaAttach (PRUint32 aId) { return smth ClipboardAreaAttach (aId); }
#define COM_FORWARD_IInternalMachineControl_ClipboardAreaAttach_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_ClipboardAreaAttach_TO ((obj)->)
#define COM_FORWARD_IInternalMachineControl_ClipboardAreaAttach_TO_BASE(base) COM_FORWARD_IInternalMachineControl_ClipboardAreaAttach_TO (base::)
#define COM_FORWARD_IInternalMachineControl_ClipboardAreaDetach_TO(smth) NS_IMETHOD ClipboardAreaDetach (PRUint32 aId) { return smth ClipboardAreaDetach (aId); }
#define COM_FORWARD_IInternalMachineControl_ClipboardAreaDetach_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_ClipboardAreaDetach_TO ((obj)->)
#define COM_FORWARD_IInternalMachineControl_ClipboardAreaDetach_TO_BASE(base) COM_FORWARD_IInternalMachineControl_ClipboardAreaDetach_TO (base::)
#define COM_FORWARD_IInternalMachineControl_ClipboardAreaGetMostRecent_TO(smth) NS_IMETHOD ClipboardAreaGetMostRecent (PRUint32 * aId) { return smth ClipboardAreaGetMostRecent (aId); }
#define COM_FORWARD_IInternalMachineControl_ClipboardAreaGetMostRecent_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_ClipboardAreaGetMostRecent_TO ((obj)->)
#define COM_FORWARD_IInternalMachineControl_ClipboardAreaGetMostRecent_TO_BASE(base) COM_FORWARD_IInternalMachineControl_ClipboardAreaGetMostRecent_TO (base::)
#define COM_FORWARD_IInternalMachineControl_ClipboardAreaGetRefCount_TO(smth) NS_IMETHOD ClipboardAreaGetRefCount (PRUint32 aId, PRUint32 * aRefcount) { return smth ClipboardAreaGetRefCount (aId, aRefcount); }
#define COM_FORWARD_IInternalMachineControl_ClipboardAreaGetRefCount_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_ClipboardAreaGetRefCount_TO ((obj)->)
#define COM_FORWARD_IInternalMachineControl_ClipboardAreaGetRefCount_TO_BASE(base) COM_FORWARD_IInternalMachineControl_ClipboardAreaGetRefCount_TO (base::)
#define COM_FORWARD_IInternalMachineControl_PushGuestProperty_TO(smth) NS_IMETHOD PushGuestProperty (PRUnichar * aName, PRUnichar * aValue, PRInt64 aTimestamp, PRUnichar * aFlags) { return smth PushGuestProperty (aName, aValue, aTimestamp, aFlags); }
#define COM_FORWARD_IInternalMachineControl_PushGuestProperty_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_PushGuestProperty_TO ((obj)->)
#define COM_FORWARD_IInternalMachineControl_PushGuestProperty_TO_BASE(base) COM_FORWARD_IInternalMachineControl_PushGuestProperty_TO (base::)
#define COM_FORWARD_IInternalMachineControl_LockMedia_TO(smth) NS_IMETHOD LockMedia() { return smth LockMedia(); }
#define COM_FORWARD_IInternalMachineControl_LockMedia_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_LockMedia_TO ((obj)->)
#define COM_FORWARD_IInternalMachineControl_LockMedia_TO_BASE(base) COM_FORWARD_IInternalMachineControl_LockMedia_TO (base::)
#define COM_FORWARD_IInternalMachineControl_UnlockMedia_TO(smth) NS_IMETHOD UnlockMedia() { return smth UnlockMedia(); }
#define COM_FORWARD_IInternalMachineControl_UnlockMedia_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_UnlockMedia_TO ((obj)->)
#define COM_FORWARD_IInternalMachineControl_UnlockMedia_TO_BASE(base) COM_FORWARD_IInternalMachineControl_UnlockMedia_TO (base::)
#define COM_FORWARD_IInternalMachineControl_EjectMedium_TO(smth) NS_IMETHOD EjectMedium (IMediumAttachment * aAttachment, IMediumAttachment * * aNewAttachment) { return smth EjectMedium (aAttachment, aNewAttachment); }
#define COM_FORWARD_IInternalMachineControl_EjectMedium_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_EjectMedium_TO ((obj)->)
#define COM_FORWARD_IInternalMachineControl_EjectMedium_TO_BASE(base) COM_FORWARD_IInternalMachineControl_EjectMedium_TO (base::)
#define COM_FORWARD_IInternalMachineControl_ReportVmStatistics_TO(smth) NS_IMETHOD ReportVmStatistics (PRUint32 aValidStats, PRUint32 aCpuUser, PRUint32 aCpuKernel, PRUint32 aCpuIdle, PRUint32 aMemTotal, PRUint32 aMemFree, PRUint32 aMemBalloon, PRUint32 aMemShared, PRUint32 aMemCache, PRUint32 aPagedTotal, PRUint32 aMemAllocTotal, PRUint32 aMemFreeTotal, PRUint32 aMemBalloonTotal, PRUint32 aMemSharedTotal, PRUint32 aVmNetRx, PRUint32 aVmNetTx) { return smth ReportVmStatistics (aValidStats, aCpuUser, aCpuKernel, aCpuIdle, aMemTotal, aMemFree, aMemBalloon, aMemShared, aMemCache, aPagedTotal, aMemAllocTotal, aMemFreeTotal, aMemBalloonTotal, aMemSharedTotal, aVmNetRx, aVmNetTx); }
#define COM_FORWARD_IInternalMachineControl_ReportVmStatistics_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_ReportVmStatistics_TO ((obj)->)
#define COM_FORWARD_IInternalMachineControl_ReportVmStatistics_TO_BASE(base) COM_FORWARD_IInternalMachineControl_ReportVmStatistics_TO (base::)
#define COM_FORWARD_IInternalMachineControl_AuthenticateExternal_TO(smth) NS_IMETHOD AuthenticateExternal (PRUint32 aAuthParamsSize, PRUnichar * * aAuthParams, PRUnichar * * aResult) { return smth AuthenticateExternal (aAuthParamsSize+++, aAuthParams, aResult); }
#define COM_FORWARD_IInternalMachineControl_AuthenticateExternal_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_AuthenticateExternal_TO ((obj)->)
#define COM_FORWARD_IInternalMachineControl_AuthenticateExternal_TO_BASE(base) COM_FORWARD_IInternalMachineControl_AuthenticateExternal_TO (base::)
#define COM_FORWARD_IInternalMachineControl_TO(smth) NS_FORWARD_IINTERNALMACHINECONTROL (smth)
#define COM_FORWARD_IInternalMachineControl_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_TO ((obj)->)
#define COM_FORWARD_IInternalMachineControl_TO_BASE(base) COM_FORWARD_IInternalMachineControl_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IInternalMachineControl;
%}

[
    uuid(f692806f-febe-4049-b476-1292a8e45b09),
    scriptable
]
interface IGraphicsAdapter : nsISupports
{
    attribute GraphicsControllerType_T graphicsControllerType;

    attribute unsigned long VRAMSize;

    attribute boolean accelerate3DEnabled;

    attribute boolean accelerate2DVideoEnabled;

    attribute unsigned long monitorCount;

    readonly attribute unsigned long InternalAndReservedAttribute1IGraphicsAdapter;

    readonly attribute unsigned long InternalAndReservedAttribute2IGraphicsAdapter;

    readonly attribute unsigned long InternalAndReservedAttribute3IGraphicsAdapter;

    readonly attribute unsigned long InternalAndReservedAttribute4IGraphicsAdapter;

    readonly attribute unsigned long InternalAndReservedAttribute5IGraphicsAdapter;

    readonly attribute unsigned long InternalAndReservedAttribute6IGraphicsAdapter;

    readonly attribute unsigned long InternalAndReservedAttribute7IGraphicsAdapter;

    readonly attribute unsigned long InternalAndReservedAttribute8IGraphicsAdapter;

    void InternalAndReservedMethod1IGraphicsAdapter();

    void InternalAndReservedMethod2IGraphicsAdapter();

    void InternalAndReservedMethod3IGraphicsAdapter();

    void InternalAndReservedMethod4IGraphicsAdapter();

}; /* interface IGraphicsAdapter */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IGraphicsAdapter_GETTER_GraphicsControllerType_TO(smth) NS_IMETHOD GetGraphicsControllerType (PRUint32 * aGraphicsControllerType) { return smth GetGraphicsControllerType (aGraphicsControllerType); }
#define COM_FORWARD_IGraphicsAdapter_GETTER_GraphicsControllerType_TO_OBJ(obj) COM_FORWARD_IGraphicsAdapter_GETTER_GraphicsControllerType_TO ((obj)->)
#define COM_FORWARD_IGraphicsAdapter_GETTER_GraphicsControllerType_TO_BASE(base) COM_FORWARD_IGraphicsAdapter_GETTER_GraphicsControllerType_TO (base::)
#define COM_FORWARD_IGraphicsAdapter_SETTER_GraphicsControllerType_TO(smth) NS_IMETHOD SetGraphicsControllerType (PRUint32 aGraphicsControllerType) { return smth SetGraphicsControllerType (aGraphicsControllerType); }
#define COM_FORWARD_IGraphicsAdapter_SETTER_GraphicsControllerType_TO_OBJ(obj) COM_FORWARD_IGraphicsAdapter_SETTER_GraphicsControllerType_TO ((obj)->)
#define COM_FORWARD_IGraphicsAdapter_SETTER_GraphicsControllerType_TO_BASE(base) COM_FORWARD_IGraphicsAdapter_SETTER_GraphicsControllerType_TO (base::)
#define COM_FORWARD_IGraphicsAdapter_GETTER_VRAMSize_TO(smth) NS_IMETHOD GetVRAMSize (PRUint32 * aVRAMSize) { return smth GetVRAMSize (aVRAMSize); }
#define COM_FORWARD_IGraphicsAdapter_GETTER_VRAMSize_TO_OBJ(obj) COM_FORWARD_IGraphicsAdapter_GETTER_VRAMSize_TO ((obj)->)
#define COM_FORWARD_IGraphicsAdapter_GETTER_VRAMSize_TO_BASE(base) COM_FORWARD_IGraphicsAdapter_GETTER_VRAMSize_TO (base::)
#define COM_FORWARD_IGraphicsAdapter_SETTER_VRAMSize_TO(smth) NS_IMETHOD SetVRAMSize (PRUint32 aVRAMSize) { return smth SetVRAMSize (aVRAMSize); }
#define COM_FORWARD_IGraphicsAdapter_SETTER_VRAMSize_TO_OBJ(obj) COM_FORWARD_IGraphicsAdapter_SETTER_VRAMSize_TO ((obj)->)
#define COM_FORWARD_IGraphicsAdapter_SETTER_VRAMSize_TO_BASE(base) COM_FORWARD_IGraphicsAdapter_SETTER_VRAMSize_TO (base::)
#define COM_FORWARD_IGraphicsAdapter_GETTER_Accelerate3DEnabled_TO(smth) NS_IMETHOD GetAccelerate3DEnabled (PRBool * aAccelerate3DEnabled) { return smth GetAccelerate3DEnabled (aAccelerate3DEnabled); }
#define COM_FORWARD_IGraphicsAdapter_GETTER_Accelerate3DEnabled_TO_OBJ(obj) COM_FORWARD_IGraphicsAdapter_GETTER_Accelerate3DEnabled_TO ((obj)->)
#define COM_FORWARD_IGraphicsAdapter_GETTER_Accelerate3DEnabled_TO_BASE(base) COM_FORWARD_IGraphicsAdapter_GETTER_Accelerate3DEnabled_TO (base::)
#define COM_FORWARD_IGraphicsAdapter_SETTER_Accelerate3DEnabled_TO(smth) NS_IMETHOD SetAccelerate3DEnabled (PRBool aAccelerate3DEnabled) { return smth SetAccelerate3DEnabled (aAccelerate3DEnabled); }
#define COM_FORWARD_IGraphicsAdapter_SETTER_Accelerate3DEnabled_TO_OBJ(obj) COM_FORWARD_IGraphicsAdapter_SETTER_Accelerate3DEnabled_TO ((obj)->)
#define COM_FORWARD_IGraphicsAdapter_SETTER_Accelerate3DEnabled_TO_BASE(base) COM_FORWARD_IGraphicsAdapter_SETTER_Accelerate3DEnabled_TO (base::)
#define COM_FORWARD_IGraphicsAdapter_GETTER_Accelerate2DVideoEnabled_TO(smth) NS_IMETHOD GetAccelerate2DVideoEnabled (PRBool * aAccelerate2DVideoEnabled) { return smth GetAccelerate2DVideoEnabled (aAccelerate2DVideoEnabled); }
#define COM_FORWARD_IGraphicsAdapter_GETTER_Accelerate2DVideoEnabled_TO_OBJ(obj) COM_FORWARD_IGraphicsAdapter_GETTER_Accelerate2DVideoEnabled_TO ((obj)->)
#define COM_FORWARD_IGraphicsAdapter_GETTER_Accelerate2DVideoEnabled_TO_BASE(base) COM_FORWARD_IGraphicsAdapter_GETTER_Accelerate2DVideoEnabled_TO (base::)
#define COM_FORWARD_IGraphicsAdapter_SETTER_Accelerate2DVideoEnabled_TO(smth) NS_IMETHOD SetAccelerate2DVideoEnabled (PRBool aAccelerate2DVideoEnabled) { return smth SetAccelerate2DVideoEnabled (aAccelerate2DVideoEnabled); }
#define COM_FORWARD_IGraphicsAdapter_SETTER_Accelerate2DVideoEnabled_TO_OBJ(obj) COM_FORWARD_IGraphicsAdapter_SETTER_Accelerate2DVideoEnabled_TO ((obj)->)
#define COM_FORWARD_IGraphicsAdapter_SETTER_Accelerate2DVideoEnabled_TO_BASE(base) COM_FORWARD_IGraphicsAdapter_SETTER_Accelerate2DVideoEnabled_TO (base::)
#define COM_FORWARD_IGraphicsAdapter_GETTER_MonitorCount_TO(smth) NS_IMETHOD GetMonitorCount (PRUint32 * aMonitorCount) { return smth GetMonitorCount (aMonitorCount); }
#define COM_FORWARD_IGraphicsAdapter_GETTER_MonitorCount_TO_OBJ(obj) COM_FORWARD_IGraphicsAdapter_GETTER_MonitorCount_TO ((obj)->)
#define COM_FORWARD_IGraphicsAdapter_GETTER_MonitorCount_TO_BASE(base) COM_FORWARD_IGraphicsAdapter_GETTER_MonitorCount_TO (base::)
#define COM_FORWARD_IGraphicsAdapter_SETTER_MonitorCount_TO(smth) NS_IMETHOD SetMonitorCount (PRUint32 aMonitorCount) { return smth SetMonitorCount (aMonitorCount); }
#define COM_FORWARD_IGraphicsAdapter_SETTER_MonitorCount_TO_OBJ(obj) COM_FORWARD_IGraphicsAdapter_SETTER_MonitorCount_TO ((obj)->)
#define COM_FORWARD_IGraphicsAdapter_SETTER_MonitorCount_TO_BASE(base) COM_FORWARD_IGraphicsAdapter_SETTER_MonitorCount_TO (base::)
#define COM_FORWARD_IGraphicsAdapter_TO(smth) NS_FORWARD_IGRAPHICSADAPTER (smth)
#define COM_FORWARD_IGraphicsAdapter_TO_OBJ(obj) COM_FORWARD_IGraphicsAdapter_TO ((obj)->)
#define COM_FORWARD_IGraphicsAdapter_TO_BASE(base) COM_FORWARD_IGraphicsAdapter_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGraphicsAdapter;
%}

[
    uuid(73af4152-7e67-4144-bf34-41c38e8b4cc7),
    scriptable
]
interface IBIOSSettings : nsISupports
{
    attribute boolean logoFadeIn;

    attribute boolean logoFadeOut;

    attribute unsigned long logoDisplayTime;

    attribute wstring logoImagePath;

    attribute BIOSBootMenuMode_T bootMenuMode;

    attribute boolean ACPIEnabled;

    attribute boolean IOAPICEnabled;

    attribute APICMode_T APICMode;

    attribute long long timeOffset;

    attribute boolean PXEDebugEnabled;

    readonly attribute wstring nonVolatileStorageFile;

    attribute boolean SMBIOSUuidLittleEndian;

    readonly attribute unsigned long InternalAndReservedAttribute1IBIOSSettings;

    readonly attribute unsigned long InternalAndReservedAttribute2IBIOSSettings;

    readonly attribute unsigned long InternalAndReservedAttribute3IBIOSSettings;

    readonly attribute unsigned long InternalAndReservedAttribute4IBIOSSettings;

    readonly attribute unsigned long InternalAndReservedAttribute5IBIOSSettings;

    readonly attribute unsigned long InternalAndReservedAttribute6IBIOSSettings;

    readonly attribute unsigned long InternalAndReservedAttribute7IBIOSSettings;

    readonly attribute unsigned long InternalAndReservedAttribute8IBIOSSettings;

    void InternalAndReservedMethod1IBIOSSettings();

    void InternalAndReservedMethod2IBIOSSettings();

}; /* interface IBIOSSettings */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IBIOSSettings_GETTER_LogoFadeIn_TO(smth) NS_IMETHOD GetLogoFadeIn (PRBool * aLogoFadeIn) { return smth GetLogoFadeIn (aLogoFadeIn); }
#define COM_FORWARD_IBIOSSettings_GETTER_LogoFadeIn_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_GETTER_LogoFadeIn_TO ((obj)->)
#define COM_FORWARD_IBIOSSettings_GETTER_LogoFadeIn_TO_BASE(base) COM_FORWARD_IBIOSSettings_GETTER_LogoFadeIn_TO (base::)
#define COM_FORWARD_IBIOSSettings_SETTER_LogoFadeIn_TO(smth) NS_IMETHOD SetLogoFadeIn (PRBool aLogoFadeIn) { return smth SetLogoFadeIn (aLogoFadeIn); }
#define COM_FORWARD_IBIOSSettings_SETTER_LogoFadeIn_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_SETTER_LogoFadeIn_TO ((obj)->)
#define COM_FORWARD_IBIOSSettings_SETTER_LogoFadeIn_TO_BASE(base) COM_FORWARD_IBIOSSettings_SETTER_LogoFadeIn_TO (base::)
#define COM_FORWARD_IBIOSSettings_GETTER_LogoFadeOut_TO(smth) NS_IMETHOD GetLogoFadeOut (PRBool * aLogoFadeOut) { return smth GetLogoFadeOut (aLogoFadeOut); }
#define COM_FORWARD_IBIOSSettings_GETTER_LogoFadeOut_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_GETTER_LogoFadeOut_TO ((obj)->)
#define COM_FORWARD_IBIOSSettings_GETTER_LogoFadeOut_TO_BASE(base) COM_FORWARD_IBIOSSettings_GETTER_LogoFadeOut_TO (base::)
#define COM_FORWARD_IBIOSSettings_SETTER_LogoFadeOut_TO(smth) NS_IMETHOD SetLogoFadeOut (PRBool aLogoFadeOut) { return smth SetLogoFadeOut (aLogoFadeOut); }
#define COM_FORWARD_IBIOSSettings_SETTER_LogoFadeOut_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_SETTER_LogoFadeOut_TO ((obj)->)
#define COM_FORWARD_IBIOSSettings_SETTER_LogoFadeOut_TO_BASE(base) COM_FORWARD_IBIOSSettings_SETTER_LogoFadeOut_TO (base::)
#define COM_FORWARD_IBIOSSettings_GETTER_LogoDisplayTime_TO(smth) NS_IMETHOD GetLogoDisplayTime (PRUint32 * aLogoDisplayTime) { return smth GetLogoDisplayTime (aLogoDisplayTime); }
#define COM_FORWARD_IBIOSSettings_GETTER_LogoDisplayTime_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_GETTER_LogoDisplayTime_TO ((obj)->)
#define COM_FORWARD_IBIOSSettings_GETTER_LogoDisplayTime_TO_BASE(base) COM_FORWARD_IBIOSSettings_GETTER_LogoDisplayTime_TO (base::)
#define COM_FORWARD_IBIOSSettings_SETTER_LogoDisplayTime_TO(smth) NS_IMETHOD SetLogoDisplayTime (PRUint32 aLogoDisplayTime) { return smth SetLogoDisplayTime (aLogoDisplayTime); }
#define COM_FORWARD_IBIOSSettings_SETTER_LogoDisplayTime_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_SETTER_LogoDisplayTime_TO ((obj)->)
#define COM_FORWARD_IBIOSSettings_SETTER_LogoDisplayTime_TO_BASE(base) COM_FORWARD_IBIOSSettings_SETTER_LogoDisplayTime_TO (base::)
#define COM_FORWARD_IBIOSSettings_GETTER_LogoImagePath_TO(smth) NS_IMETHOD GetLogoImagePath (PRUnichar * * aLogoImagePath) { return smth GetLogoImagePath (aLogoImagePath); }
#define COM_FORWARD_IBIOSSettings_GETTER_LogoImagePath_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_GETTER_LogoImagePath_TO ((obj)->)
#define COM_FORWARD_IBIOSSettings_GETTER_LogoImagePath_TO_BASE(base) COM_FORWARD_IBIOSSettings_GETTER_LogoImagePath_TO (base::)
#define COM_FORWARD_IBIOSSettings_SETTER_LogoImagePath_TO(smth) NS_IMETHOD SetLogoImagePath (const PRUnichar * aLogoImagePath) { return smth SetLogoImagePath (aLogoImagePath); }
#define COM_FORWARD_IBIOSSettings_SETTER_LogoImagePath_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_SETTER_LogoImagePath_TO ((obj)->)
#define COM_FORWARD_IBIOSSettings_SETTER_LogoImagePath_TO_BASE(base) COM_FORWARD_IBIOSSettings_SETTER_LogoImagePath_TO (base::)
#define COM_FORWARD_IBIOSSettings_GETTER_BootMenuMode_TO(smth) NS_IMETHOD GetBootMenuMode (PRUint32 * aBootMenuMode) { return smth GetBootMenuMode (aBootMenuMode); }
#define COM_FORWARD_IBIOSSettings_GETTER_BootMenuMode_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_GETTER_BootMenuMode_TO ((obj)->)
#define COM_FORWARD_IBIOSSettings_GETTER_BootMenuMode_TO_BASE(base) COM_FORWARD_IBIOSSettings_GETTER_BootMenuMode_TO (base::)
#define COM_FORWARD_IBIOSSettings_SETTER_BootMenuMode_TO(smth) NS_IMETHOD SetBootMenuMode (PRUint32 aBootMenuMode) { return smth SetBootMenuMode (aBootMenuMode); }
#define COM_FORWARD_IBIOSSettings_SETTER_BootMenuMode_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_SETTER_BootMenuMode_TO ((obj)->)
#define COM_FORWARD_IBIOSSettings_SETTER_BootMenuMode_TO_BASE(base) COM_FORWARD_IBIOSSettings_SETTER_BootMenuMode_TO (base::)
#define COM_FORWARD_IBIOSSettings_GETTER_ACPIEnabled_TO(smth) NS_IMETHOD GetACPIEnabled (PRBool * aACPIEnabled) { return smth GetACPIEnabled (aACPIEnabled); }
#define COM_FORWARD_IBIOSSettings_GETTER_ACPIEnabled_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_GETTER_ACPIEnabled_TO ((obj)->)
#define COM_FORWARD_IBIOSSettings_GETTER_ACPIEnabled_TO_BASE(base) COM_FORWARD_IBIOSSettings_GETTER_ACPIEnabled_TO (base::)
#define COM_FORWARD_IBIOSSettings_SETTER_ACPIEnabled_TO(smth) NS_IMETHOD SetACPIEnabled (PRBool aACPIEnabled) { return smth SetACPIEnabled (aACPIEnabled); }
#define COM_FORWARD_IBIOSSettings_SETTER_ACPIEnabled_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_SETTER_ACPIEnabled_TO ((obj)->)
#define COM_FORWARD_IBIOSSettings_SETTER_ACPIEnabled_TO_BASE(base) COM_FORWARD_IBIOSSettings_SETTER_ACPIEnabled_TO (base::)
#define COM_FORWARD_IBIOSSettings_GETTER_IOAPICEnabled_TO(smth) NS_IMETHOD GetIOAPICEnabled (PRBool * aIOAPICEnabled) { return smth GetIOAPICEnabled (aIOAPICEnabled); }
#define COM_FORWARD_IBIOSSettings_GETTER_IOAPICEnabled_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_GETTER_IOAPICEnabled_TO ((obj)->)
#define COM_FORWARD_IBIOSSettings_GETTER_IOAPICEnabled_TO_BASE(base) COM_FORWARD_IBIOSSettings_GETTER_IOAPICEnabled_TO (base::)
#define COM_FORWARD_IBIOSSettings_SETTER_IOAPICEnabled_TO(smth) NS_IMETHOD SetIOAPICEnabled (PRBool aIOAPICEnabled) { return smth SetIOAPICEnabled (aIOAPICEnabled); }
#define COM_FORWARD_IBIOSSettings_SETTER_IOAPICEnabled_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_SETTER_IOAPICEnabled_TO ((obj)->)
#define COM_FORWARD_IBIOSSettings_SETTER_IOAPICEnabled_TO_BASE(base) COM_FORWARD_IBIOSSettings_SETTER_IOAPICEnabled_TO (base::)
#define COM_FORWARD_IBIOSSettings_GETTER_APICMode_TO(smth) NS_IMETHOD GetAPICMode (PRUint32 * aAPICMode) { return smth GetAPICMode (aAPICMode); }
#define COM_FORWARD_IBIOSSettings_GETTER_APICMode_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_GETTER_APICMode_TO ((obj)->)
#define COM_FORWARD_IBIOSSettings_GETTER_APICMode_TO_BASE(base) COM_FORWARD_IBIOSSettings_GETTER_APICMode_TO (base::)
#define COM_FORWARD_IBIOSSettings_SETTER_APICMode_TO(smth) NS_IMETHOD SetAPICMode (PRUint32 aAPICMode) { return smth SetAPICMode (aAPICMode); }
#define COM_FORWARD_IBIOSSettings_SETTER_APICMode_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_SETTER_APICMode_TO ((obj)->)
#define COM_FORWARD_IBIOSSettings_SETTER_APICMode_TO_BASE(base) COM_FORWARD_IBIOSSettings_SETTER_APICMode_TO (base::)
#define COM_FORWARD_IBIOSSettings_GETTER_TimeOffset_TO(smth) NS_IMETHOD GetTimeOffset (PRInt64 * aTimeOffset) { return smth GetTimeOffset (aTimeOffset); }
#define COM_FORWARD_IBIOSSettings_GETTER_TimeOffset_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_GETTER_TimeOffset_TO ((obj)->)
#define COM_FORWARD_IBIOSSettings_GETTER_TimeOffset_TO_BASE(base) COM_FORWARD_IBIOSSettings_GETTER_TimeOffset_TO (base::)
#define COM_FORWARD_IBIOSSettings_SETTER_TimeOffset_TO(smth) NS_IMETHOD SetTimeOffset (PRInt64 aTimeOffset) { return smth SetTimeOffset (aTimeOffset); }
#define COM_FORWARD_IBIOSSettings_SETTER_TimeOffset_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_SETTER_TimeOffset_TO ((obj)->)
#define COM_FORWARD_IBIOSSettings_SETTER_TimeOffset_TO_BASE(base) COM_FORWARD_IBIOSSettings_SETTER_TimeOffset_TO (base::)
#define COM_FORWARD_IBIOSSettings_GETTER_PXEDebugEnabled_TO(smth) NS_IMETHOD GetPXEDebugEnabled (PRBool * aPXEDebugEnabled) { return smth GetPXEDebugEnabled (aPXEDebugEnabled); }
#define COM_FORWARD_IBIOSSettings_GETTER_PXEDebugEnabled_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_GETTER_PXEDebugEnabled_TO ((obj)->)
#define COM_FORWARD_IBIOSSettings_GETTER_PXEDebugEnabled_TO_BASE(base) COM_FORWARD_IBIOSSettings_GETTER_PXEDebugEnabled_TO (base::)
#define COM_FORWARD_IBIOSSettings_SETTER_PXEDebugEnabled_TO(smth) NS_IMETHOD SetPXEDebugEnabled (PRBool aPXEDebugEnabled) { return smth SetPXEDebugEnabled (aPXEDebugEnabled); }
#define COM_FORWARD_IBIOSSettings_SETTER_PXEDebugEnabled_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_SETTER_PXEDebugEnabled_TO ((obj)->)
#define COM_FORWARD_IBIOSSettings_SETTER_PXEDebugEnabled_TO_BASE(base) COM_FORWARD_IBIOSSettings_SETTER_PXEDebugEnabled_TO (base::)
#define COM_FORWARD_IBIOSSettings_GETTER_NonVolatileStorageFile_TO(smth) NS_IMETHOD GetNonVolatileStorageFile (PRUnichar * * aNonVolatileStorageFile) { return smth GetNonVolatileStorageFile (aNonVolatileStorageFile); }
#define COM_FORWARD_IBIOSSettings_GETTER_NonVolatileStorageFile_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_GETTER_NonVolatileStorageFile_TO ((obj)->)
#define COM_FORWARD_IBIOSSettings_GETTER_NonVolatileStorageFile_TO_BASE(base) COM_FORWARD_IBIOSSettings_GETTER_NonVolatileStorageFile_TO (base::)
#define COM_FORWARD_IBIOSSettings_GETTER_SMBIOSUuidLittleEndian_TO(smth) NS_IMETHOD GetSMBIOSUuidLittleEndian (PRBool * aSMBIOSUuidLittleEndian) { return smth GetSMBIOSUuidLittleEndian (aSMBIOSUuidLittleEndian); }
#define COM_FORWARD_IBIOSSettings_GETTER_SMBIOSUuidLittleEndian_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_GETTER_SMBIOSUuidLittleEndian_TO ((obj)->)
#define COM_FORWARD_IBIOSSettings_GETTER_SMBIOSUuidLittleEndian_TO_BASE(base) COM_FORWARD_IBIOSSettings_GETTER_SMBIOSUuidLittleEndian_TO (base::)
#define COM_FORWARD_IBIOSSettings_SETTER_SMBIOSUuidLittleEndian_TO(smth) NS_IMETHOD SetSMBIOSUuidLittleEndian (PRBool aSMBIOSUuidLittleEndian) { return smth SetSMBIOSUuidLittleEndian (aSMBIOSUuidLittleEndian); }
#define COM_FORWARD_IBIOSSettings_SETTER_SMBIOSUuidLittleEndian_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_SETTER_SMBIOSUuidLittleEndian_TO ((obj)->)
#define COM_FORWARD_IBIOSSettings_SETTER_SMBIOSUuidLittleEndian_TO_BASE(base) COM_FORWARD_IBIOSSettings_SETTER_SMBIOSUuidLittleEndian_TO (base::)
#define COM_FORWARD_IBIOSSettings_TO(smth) NS_FORWARD_IBIOSSETTINGS (smth)
#define COM_FORWARD_IBIOSSettings_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_TO ((obj)->)
#define COM_FORWARD_IBIOSSettings_TO_BASE(base) COM_FORWARD_IBIOSSettings_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IBIOSSettings;
%}

[
    uuid(678fbd9a-93af-42a7-7f13-79ad6ef1a18d),
    scriptable
]
interface IRecordingScreenSettings : nsISupports
{
    readonly attribute unsigned long id;

    attribute boolean enabled;

    attribute unsigned long features;

    attribute RecordingDestination_T destination;

    attribute wstring filename;

    attribute unsigned long maxTime;

    attribute unsigned long maxFileSize;

    attribute wstring options;

    attribute RecordingAudioCodec_T audioCodec;

    attribute unsigned long audioHz;

    attribute unsigned long audioBits;

    attribute unsigned long audioChannels;

    attribute RecordingVideoCodec_T videoCodec;

    attribute unsigned long videoWidth;

    attribute unsigned long videoHeight;

    attribute unsigned long videoRate;

    attribute RecordingVideoRateControlMode_T videoRateControlMode;

    attribute unsigned long videoFPS;

    attribute RecordingVideoScalingMethod_T videoScalingMethod;

    void isFeatureEnabled (
        in RecordingFeature_T feature,
        [retval] out boolean enabled
    );

}; /* interface IRecordingScreenSettings */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IRecordingScreenSettings_GETTER_Id_TO(smth) NS_IMETHOD GetId (PRUint32 * aId) { return smth GetId (aId); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_Id_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_Id_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_Id_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_Id_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_Enabled_TO(smth) NS_IMETHOD GetEnabled (PRBool * aEnabled) { return smth GetEnabled (aEnabled); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_Enabled_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_Enabled_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_Enabled_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_Enabled_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_Enabled_TO(smth) NS_IMETHOD SetEnabled (PRBool aEnabled) { return smth SetEnabled (aEnabled); }
#define COM_FORWARD_IRecordingScreenSettings_SETTER_Enabled_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_SETTER_Enabled_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_Enabled_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_SETTER_Enabled_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_Features_TO(smth) NS_IMETHOD GetFeatures (PRUint32 * aFeatures) { return smth GetFeatures (aFeatures); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_Features_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_Features_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_Features_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_Features_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_Features_TO(smth) NS_IMETHOD SetFeatures (PRUint32 aFeatures) { return smth SetFeatures (aFeatures); }
#define COM_FORWARD_IRecordingScreenSettings_SETTER_Features_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_SETTER_Features_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_Features_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_SETTER_Features_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_Destination_TO(smth) NS_IMETHOD GetDestination (PRUint32 * aDestination) { return smth GetDestination (aDestination); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_Destination_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_Destination_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_Destination_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_Destination_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_Destination_TO(smth) NS_IMETHOD SetDestination (PRUint32 aDestination) { return smth SetDestination (aDestination); }
#define COM_FORWARD_IRecordingScreenSettings_SETTER_Destination_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_SETTER_Destination_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_Destination_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_SETTER_Destination_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_Filename_TO(smth) NS_IMETHOD GetFilename (PRUnichar * * aFilename) { return smth GetFilename (aFilename); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_Filename_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_Filename_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_Filename_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_Filename_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_Filename_TO(smth) NS_IMETHOD SetFilename (const PRUnichar * aFilename) { return smth SetFilename (aFilename); }
#define COM_FORWARD_IRecordingScreenSettings_SETTER_Filename_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_SETTER_Filename_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_Filename_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_SETTER_Filename_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_MaxTime_TO(smth) NS_IMETHOD GetMaxTime (PRUint32 * aMaxTime) { return smth GetMaxTime (aMaxTime); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_MaxTime_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_MaxTime_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_MaxTime_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_MaxTime_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_MaxTime_TO(smth) NS_IMETHOD SetMaxTime (PRUint32 aMaxTime) { return smth SetMaxTime (aMaxTime); }
#define COM_FORWARD_IRecordingScreenSettings_SETTER_MaxTime_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_SETTER_MaxTime_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_MaxTime_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_SETTER_MaxTime_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_MaxFileSize_TO(smth) NS_IMETHOD GetMaxFileSize (PRUint32 * aMaxFileSize) { return smth GetMaxFileSize (aMaxFileSize); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_MaxFileSize_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_MaxFileSize_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_MaxFileSize_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_MaxFileSize_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_MaxFileSize_TO(smth) NS_IMETHOD SetMaxFileSize (PRUint32 aMaxFileSize) { return smth SetMaxFileSize (aMaxFileSize); }
#define COM_FORWARD_IRecordingScreenSettings_SETTER_MaxFileSize_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_SETTER_MaxFileSize_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_MaxFileSize_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_SETTER_MaxFileSize_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_Options_TO(smth) NS_IMETHOD GetOptions (PRUnichar * * aOptions) { return smth GetOptions (aOptions); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_Options_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_Options_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_Options_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_Options_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_Options_TO(smth) NS_IMETHOD SetOptions (const PRUnichar * aOptions) { return smth SetOptions (aOptions); }
#define COM_FORWARD_IRecordingScreenSettings_SETTER_Options_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_SETTER_Options_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_Options_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_SETTER_Options_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_AudioCodec_TO(smth) NS_IMETHOD GetAudioCodec (PRUint32 * aAudioCodec) { return smth GetAudioCodec (aAudioCodec); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_AudioCodec_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_AudioCodec_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_AudioCodec_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_AudioCodec_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_AudioCodec_TO(smth) NS_IMETHOD SetAudioCodec (PRUint32 aAudioCodec) { return smth SetAudioCodec (aAudioCodec); }
#define COM_FORWARD_IRecordingScreenSettings_SETTER_AudioCodec_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_SETTER_AudioCodec_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_AudioCodec_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_SETTER_AudioCodec_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_AudioHz_TO(smth) NS_IMETHOD GetAudioHz (PRUint32 * aAudioHz) { return smth GetAudioHz (aAudioHz); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_AudioHz_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_AudioHz_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_AudioHz_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_AudioHz_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_AudioHz_TO(smth) NS_IMETHOD SetAudioHz (PRUint32 aAudioHz) { return smth SetAudioHz (aAudioHz); }
#define COM_FORWARD_IRecordingScreenSettings_SETTER_AudioHz_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_SETTER_AudioHz_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_AudioHz_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_SETTER_AudioHz_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_AudioBits_TO(smth) NS_IMETHOD GetAudioBits (PRUint32 * aAudioBits) { return smth GetAudioBits (aAudioBits); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_AudioBits_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_AudioBits_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_AudioBits_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_AudioBits_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_AudioBits_TO(smth) NS_IMETHOD SetAudioBits (PRUint32 aAudioBits) { return smth SetAudioBits (aAudioBits); }
#define COM_FORWARD_IRecordingScreenSettings_SETTER_AudioBits_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_SETTER_AudioBits_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_AudioBits_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_SETTER_AudioBits_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_AudioChannels_TO(smth) NS_IMETHOD GetAudioChannels (PRUint32 * aAudioChannels) { return smth GetAudioChannels (aAudioChannels); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_AudioChannels_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_AudioChannels_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_AudioChannels_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_AudioChannels_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_AudioChannels_TO(smth) NS_IMETHOD SetAudioChannels (PRUint32 aAudioChannels) { return smth SetAudioChannels (aAudioChannels); }
#define COM_FORWARD_IRecordingScreenSettings_SETTER_AudioChannels_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_SETTER_AudioChannels_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_AudioChannels_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_SETTER_AudioChannels_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoCodec_TO(smth) NS_IMETHOD GetVideoCodec (PRUint32 * aVideoCodec) { return smth GetVideoCodec (aVideoCodec); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoCodec_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_VideoCodec_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoCodec_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_VideoCodec_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoCodec_TO(smth) NS_IMETHOD SetVideoCodec (PRUint32 aVideoCodec) { return smth SetVideoCodec (aVideoCodec); }
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoCodec_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_SETTER_VideoCodec_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoCodec_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_SETTER_VideoCodec_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoWidth_TO(smth) NS_IMETHOD GetVideoWidth (PRUint32 * aVideoWidth) { return smth GetVideoWidth (aVideoWidth); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoWidth_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_VideoWidth_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoWidth_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_VideoWidth_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoWidth_TO(smth) NS_IMETHOD SetVideoWidth (PRUint32 aVideoWidth) { return smth SetVideoWidth (aVideoWidth); }
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoWidth_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_SETTER_VideoWidth_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoWidth_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_SETTER_VideoWidth_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoHeight_TO(smth) NS_IMETHOD GetVideoHeight (PRUint32 * aVideoHeight) { return smth GetVideoHeight (aVideoHeight); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoHeight_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_VideoHeight_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoHeight_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_VideoHeight_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoHeight_TO(smth) NS_IMETHOD SetVideoHeight (PRUint32 aVideoHeight) { return smth SetVideoHeight (aVideoHeight); }
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoHeight_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_SETTER_VideoHeight_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoHeight_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_SETTER_VideoHeight_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoRate_TO(smth) NS_IMETHOD GetVideoRate (PRUint32 * aVideoRate) { return smth GetVideoRate (aVideoRate); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoRate_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_VideoRate_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoRate_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_VideoRate_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoRate_TO(smth) NS_IMETHOD SetVideoRate (PRUint32 aVideoRate) { return smth SetVideoRate (aVideoRate); }
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoRate_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_SETTER_VideoRate_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoRate_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_SETTER_VideoRate_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoRateControlMode_TO(smth) NS_IMETHOD GetVideoRateControlMode (PRUint32 * aVideoRateControlMode) { return smth GetVideoRateControlMode (aVideoRateControlMode); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoRateControlMode_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_VideoRateControlMode_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoRateControlMode_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_VideoRateControlMode_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoRateControlMode_TO(smth) NS_IMETHOD SetVideoRateControlMode (PRUint32 aVideoRateControlMode) { return smth SetVideoRateControlMode (aVideoRateControlMode); }
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoRateControlMode_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_SETTER_VideoRateControlMode_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoRateControlMode_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_SETTER_VideoRateControlMode_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoFPS_TO(smth) NS_IMETHOD GetVideoFPS (PRUint32 * aVideoFPS) { return smth GetVideoFPS (aVideoFPS); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoFPS_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_VideoFPS_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoFPS_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_VideoFPS_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoFPS_TO(smth) NS_IMETHOD SetVideoFPS (PRUint32 aVideoFPS) { return smth SetVideoFPS (aVideoFPS); }
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoFPS_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_SETTER_VideoFPS_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoFPS_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_SETTER_VideoFPS_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoScalingMethod_TO(smth) NS_IMETHOD GetVideoScalingMethod (PRUint32 * aVideoScalingMethod) { return smth GetVideoScalingMethod (aVideoScalingMethod); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoScalingMethod_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_VideoScalingMethod_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoScalingMethod_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_VideoScalingMethod_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoScalingMethod_TO(smth) NS_IMETHOD SetVideoScalingMethod (PRUint32 aVideoScalingMethod) { return smth SetVideoScalingMethod (aVideoScalingMethod); }
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoScalingMethod_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_SETTER_VideoScalingMethod_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoScalingMethod_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_SETTER_VideoScalingMethod_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_IsFeatureEnabled_TO(smth) NS_IMETHOD IsFeatureEnabled (PRUint32 aFeature, PRBool * aEnabled) { return smth IsFeatureEnabled (aFeature, aEnabled); }
#define COM_FORWARD_IRecordingScreenSettings_IsFeatureEnabled_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_IsFeatureEnabled_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_IsFeatureEnabled_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_IsFeatureEnabled_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_TO(smth) NS_FORWARD_IRECORDINGSCREENSETTINGS (smth)
#define COM_FORWARD_IRecordingScreenSettings_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IRecordingScreenSettings;
%}

[
    uuid(D88F2A5A-47C7-4A3F-AAE1-1B516817DB41),
    scriptable
]
interface IRecordingSettings : nsISupports
{
    attribute boolean enabled;

    void getScreens (
        out unsigned long screensSize,
        [array, size_is(screensSize), retval] out IRecordingScreenSettings screens
    );

    void getScreenSettings (
        in unsigned long screenId,
        [retval] out IRecordingScreenSettings recordScreenSettings
    );

}; /* interface IRecordingSettings */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IRecordingSettings_GETTER_Enabled_TO(smth) NS_IMETHOD GetEnabled (PRBool * aEnabled) { return smth GetEnabled (aEnabled); }
#define COM_FORWARD_IRecordingSettings_GETTER_Enabled_TO_OBJ(obj) COM_FORWARD_IRecordingSettings_GETTER_Enabled_TO ((obj)->)
#define COM_FORWARD_IRecordingSettings_GETTER_Enabled_TO_BASE(base) COM_FORWARD_IRecordingSettings_GETTER_Enabled_TO (base::)
#define COM_FORWARD_IRecordingSettings_SETTER_Enabled_TO(smth) NS_IMETHOD SetEnabled (PRBool aEnabled) { return smth SetEnabled (aEnabled); }
#define COM_FORWARD_IRecordingSettings_SETTER_Enabled_TO_OBJ(obj) COM_FORWARD_IRecordingSettings_SETTER_Enabled_TO ((obj)->)
#define COM_FORWARD_IRecordingSettings_SETTER_Enabled_TO_BASE(base) COM_FORWARD_IRecordingSettings_SETTER_Enabled_TO (base::)
#define COM_FORWARD_IRecordingSettings_GETTER_Screens_TO(smth) NS_IMETHOD GetScreens (PRUint32 * aScreensSize, IRecordingScreenSettings * * * aScreens) { return smth GetScreens (aScreensSize, aScreens); }
#define COM_FORWARD_IRecordingSettings_GETTER_Screens_TO_OBJ(obj) COM_FORWARD_IRecordingSettings_GETTER_Screens_TO ((obj)->)
#define COM_FORWARD_IRecordingSettings_GETTER_Screens_TO_BASE(base) COM_FORWARD_IRecordingSettings_GETTER_Screens_TO (base::)
#define COM_FORWARD_IRecordingSettings_GetScreenSettings_TO(smth) NS_IMETHOD GetScreenSettings (PRUint32 aScreenId, IRecordingScreenSettings * * aRecordScreenSettings) { return smth GetScreenSettings (aScreenId, aRecordScreenSettings); }
#define COM_FORWARD_IRecordingSettings_GetScreenSettings_TO_OBJ(obj) COM_FORWARD_IRecordingSettings_GetScreenSettings_TO ((obj)->)
#define COM_FORWARD_IRecordingSettings_GetScreenSettings_TO_BASE(base) COM_FORWARD_IRecordingSettings_GetScreenSettings_TO (base::)
#define COM_FORWARD_IRecordingSettings_TO(smth) NS_FORWARD_IRECORDINGSETTINGS (smth)
#define COM_FORWARD_IRecordingSettings_TO_OBJ(obj) COM_FORWARD_IRecordingSettings_TO ((obj)->)
#define COM_FORWARD_IRecordingSettings_TO_BASE(base) COM_FORWARD_IRecordingSettings_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IRecordingSettings;
%}

[
    uuid(c984d15f-e191-400b-840e-970f3dad7296),
    scriptable
]
interface IPCIAddress : nsISupports
{
    attribute short bus;

    attribute short device;

    attribute short devFunction;

    void asLong (
        [retval] out long result
    );

    void fromLong (
        in long number
    );

}; /* interface IPCIAddress */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IPCIAddress_GETTER_Bus_TO(smth) NS_IMETHOD GetBus (PRInt16 * aBus) { return smth GetBus (aBus); }
#define COM_FORWARD_IPCIAddress_GETTER_Bus_TO_OBJ(obj) COM_FORWARD_IPCIAddress_GETTER_Bus_TO ((obj)->)
#define COM_FORWARD_IPCIAddress_GETTER_Bus_TO_BASE(base) COM_FORWARD_IPCIAddress_GETTER_Bus_TO (base::)
#define COM_FORWARD_IPCIAddress_SETTER_Bus_TO(smth) NS_IMETHOD SetBus (PRInt16 aBus) { return smth SetBus (aBus); }
#define COM_FORWARD_IPCIAddress_SETTER_Bus_TO_OBJ(obj) COM_FORWARD_IPCIAddress_SETTER_Bus_TO ((obj)->)
#define COM_FORWARD_IPCIAddress_SETTER_Bus_TO_BASE(base) COM_FORWARD_IPCIAddress_SETTER_Bus_TO (base::)
#define COM_FORWARD_IPCIAddress_GETTER_Device_TO(smth) NS_IMETHOD GetDevice (PRInt16 * aDevice) { return smth GetDevice (aDevice); }
#define COM_FORWARD_IPCIAddress_GETTER_Device_TO_OBJ(obj) COM_FORWARD_IPCIAddress_GETTER_Device_TO ((obj)->)
#define COM_FORWARD_IPCIAddress_GETTER_Device_TO_BASE(base) COM_FORWARD_IPCIAddress_GETTER_Device_TO (base::)
#define COM_FORWARD_IPCIAddress_SETTER_Device_TO(smth) NS_IMETHOD SetDevice (PRInt16 aDevice) { return smth SetDevice (aDevice); }
#define COM_FORWARD_IPCIAddress_SETTER_Device_TO_OBJ(obj) COM_FORWARD_IPCIAddress_SETTER_Device_TO ((obj)->)
#define COM_FORWARD_IPCIAddress_SETTER_Device_TO_BASE(base) COM_FORWARD_IPCIAddress_SETTER_Device_TO (base::)
#define COM_FORWARD_IPCIAddress_GETTER_DevFunction_TO(smth) NS_IMETHOD GetDevFunction (PRInt16 * aDevFunction) { return smth GetDevFunction (aDevFunction); }
#define COM_FORWARD_IPCIAddress_GETTER_DevFunction_TO_OBJ(obj) COM_FORWARD_IPCIAddress_GETTER_DevFunction_TO ((obj)->)
#define COM_FORWARD_IPCIAddress_GETTER_DevFunction_TO_BASE(base) COM_FORWARD_IPCIAddress_GETTER_DevFunction_TO (base::)
#define COM_FORWARD_IPCIAddress_SETTER_DevFunction_TO(smth) NS_IMETHOD SetDevFunction (PRInt16 aDevFunction) { return smth SetDevFunction (aDevFunction); }
#define COM_FORWARD_IPCIAddress_SETTER_DevFunction_TO_OBJ(obj) COM_FORWARD_IPCIAddress_SETTER_DevFunction_TO ((obj)->)
#define COM_FORWARD_IPCIAddress_SETTER_DevFunction_TO_BASE(base) COM_FORWARD_IPCIAddress_SETTER_DevFunction_TO (base::)
#define COM_FORWARD_IPCIAddress_AsLong_TO(smth) NS_IMETHOD AsLong (PRInt32 * aResult) { return smth AsLong (aResult); }
#define COM_FORWARD_IPCIAddress_AsLong_TO_OBJ(obj) COM_FORWARD_IPCIAddress_AsLong_TO ((obj)->)
#define COM_FORWARD_IPCIAddress_AsLong_TO_BASE(base) COM_FORWARD_IPCIAddress_AsLong_TO (base::)
#define COM_FORWARD_IPCIAddress_FromLong_TO(smth) NS_IMETHOD FromLong (PRInt32 aNumber) { return smth FromLong (aNumber); }
#define COM_FORWARD_IPCIAddress_FromLong_TO_OBJ(obj) COM_FORWARD_IPCIAddress_FromLong_TO ((obj)->)
#define COM_FORWARD_IPCIAddress_FromLong_TO_BASE(base) COM_FORWARD_IPCIAddress_FromLong_TO (base::)
#define COM_FORWARD_IPCIAddress_TO(smth) NS_FORWARD_IPCIADDRESS (smth)
#define COM_FORWARD_IPCIAddress_TO_OBJ(obj) COM_FORWARD_IPCIAddress_TO ((obj)->)
#define COM_FORWARD_IPCIAddress_TO_BASE(base) COM_FORWARD_IPCIAddress_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IPCIAddress;
%}

[
    uuid(91f33d6f-e621-4f70-a77e-15f0e3c714d5),
    scriptable
]
interface IPCIDeviceAttachment : nsISupports
{
    readonly attribute wstring name;

    readonly attribute boolean isPhysicalDevice;

    readonly attribute long hostAddress;

    readonly attribute long guestAddress;

}; /* interface IPCIDeviceAttachment */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IPCIDeviceAttachment_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_IPCIDeviceAttachment_GETTER_Name_TO_OBJ(obj) COM_FORWARD_IPCIDeviceAttachment_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_IPCIDeviceAttachment_GETTER_Name_TO_BASE(base) COM_FORWARD_IPCIDeviceAttachment_GETTER_Name_TO (base::)
#define COM_FORWARD_IPCIDeviceAttachment_GETTER_IsPhysicalDevice_TO(smth) NS_IMETHOD GetIsPhysicalDevice (PRBool * aIsPhysicalDevice) { return smth GetIsPhysicalDevice (aIsPhysicalDevice); }
#define COM_FORWARD_IPCIDeviceAttachment_GETTER_IsPhysicalDevice_TO_OBJ(obj) COM_FORWARD_IPCIDeviceAttachment_GETTER_IsPhysicalDevice_TO ((obj)->)
#define COM_FORWARD_IPCIDeviceAttachment_GETTER_IsPhysicalDevice_TO_BASE(base) COM_FORWARD_IPCIDeviceAttachment_GETTER_IsPhysicalDevice_TO (base::)
#define COM_FORWARD_IPCIDeviceAttachment_GETTER_HostAddress_TO(smth) NS_IMETHOD GetHostAddress (PRInt32 * aHostAddress) { return smth GetHostAddress (aHostAddress); }
#define COM_FORWARD_IPCIDeviceAttachment_GETTER_HostAddress_TO_OBJ(obj) COM_FORWARD_IPCIDeviceAttachment_GETTER_HostAddress_TO ((obj)->)
#define COM_FORWARD_IPCIDeviceAttachment_GETTER_HostAddress_TO_BASE(base) COM_FORWARD_IPCIDeviceAttachment_GETTER_HostAddress_TO (base::)
#define COM_FORWARD_IPCIDeviceAttachment_GETTER_GuestAddress_TO(smth) NS_IMETHOD GetGuestAddress (PRInt32 * aGuestAddress) { return smth GetGuestAddress (aGuestAddress); }
#define COM_FORWARD_IPCIDeviceAttachment_GETTER_GuestAddress_TO_OBJ(obj) COM_FORWARD_IPCIDeviceAttachment_GETTER_GuestAddress_TO ((obj)->)
#define COM_FORWARD_IPCIDeviceAttachment_GETTER_GuestAddress_TO_BASE(base) COM_FORWARD_IPCIDeviceAttachment_GETTER_GuestAddress_TO (base::)
#define COM_FORWARD_IPCIDeviceAttachment_TO(smth) NS_FORWARD_IPCIDEVICEATTACHMENT (smth)
#define COM_FORWARD_IPCIDeviceAttachment_TO_OBJ(obj) COM_FORWARD_IPCIDeviceAttachment_TO ((obj)->)
#define COM_FORWARD_IPCIDeviceAttachment_TO_BASE(base) COM_FORWARD_IPCIDeviceAttachment_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IPCIDeviceAttachment;
%}

[
    uuid(85632c68-b5bb-4316-a900-5eb28d3413df),
    scriptable
]
interface IMachine : nsISupports
{
    readonly attribute IVirtualBox parent;

    void getIcon (
        out unsigned long iconSize,
        [array, size_is(iconSize), retval] out octet icon
    );
    void setIcon (
        in unsigned long iconSize,
        [array, size_is(iconSize)] in octet icon
    );

    readonly attribute boolean accessible;

    readonly attribute IVirtualBoxErrorInfo accessError;

    attribute wstring name;

    attribute wstring description;

    readonly attribute wstring id;

    void getGroups (
        out unsigned long groupsSize,
        [array, size_is(groupsSize), retval] out wstring groups
    );
    void setGroups (
        in unsigned long groupsSize,
        [array, size_is(groupsSize)] in wstring groups
    );

    attribute wstring OSTypeId;

    attribute wstring hardwareVersion;

    attribute wstring hardwareUUID;

    attribute unsigned long CPUCount;

    attribute boolean CPUHotPlugEnabled;

    attribute unsigned long CPUExecutionCap;

    attribute unsigned long CPUIDPortabilityLevel;

    attribute unsigned long memorySize;

    attribute unsigned long memoryBalloonSize;

    attribute boolean pageFusionEnabled;

    readonly attribute IGraphicsAdapter graphicsAdapter;

    readonly attribute IBIOSSettings BIOSSettings;

    readonly attribute IRecordingSettings recordingSettings;

    attribute FirmwareType_T firmwareType;

    attribute PointingHIDType_T pointingHIDType;

    attribute KeyboardHIDType_T keyboardHIDType;

    attribute boolean HPETEnabled;

    attribute ChipsetType_T chipsetType;

    attribute wstring snapshotFolder;

    readonly attribute IVRDEServer VRDEServer;

    attribute boolean emulatedUSBCardReaderEnabled;

    void getMediumAttachments (
        out unsigned long mediumAttachmentsSize,
        [array, size_is(mediumAttachmentsSize), retval] out IMediumAttachment mediumAttachments
    );

    void getUSBControllers (
        out unsigned long USBControllersSize,
        [array, size_is(USBControllersSize), retval] out IUSBController USBControllers
    );

    readonly attribute IUSBDeviceFilters USBDeviceFilters;

    readonly attribute IAudioAdapter audioAdapter;

    void getStorageControllers (
        out unsigned long storageControllersSize,
        [array, size_is(storageControllersSize), retval] out IStorageController storageControllers
    );

    readonly attribute wstring settingsFilePath;

    readonly attribute wstring settingsAuxFilePath;

    readonly attribute boolean settingsModified;

    readonly attribute SessionState_T sessionState;

    readonly attribute wstring sessionName;

    readonly attribute unsigned long sessionPID;

    readonly attribute MachineState_T state;

    readonly attribute long long lastStateChange;

    readonly attribute wstring stateFilePath;

    readonly attribute wstring logFolder;

    readonly attribute ISnapshot currentSnapshot;

    readonly attribute unsigned long snapshotCount;

    readonly attribute boolean currentStateModified;

    void getSharedFolders (
        out unsigned long sharedFoldersSize,
        [array, size_is(sharedFoldersSize), retval] out ISharedFolder sharedFolders
    );

    attribute ClipboardMode_T clipboardMode;

    attribute boolean clipboardFileTransfersEnabled;

    attribute DnDMode_T dnDMode;

    attribute boolean teleporterEnabled;

    attribute unsigned long teleporterPort;

    attribute wstring teleporterAddress;

    attribute wstring teleporterPassword;

    attribute ParavirtProvider_T paravirtProvider;

    attribute boolean RTCUseUTC;

    attribute boolean IOCacheEnabled;

    attribute unsigned long IOCacheSize;

    void getPCIDeviceAssignments (
        out unsigned long PCIDeviceAssignmentsSize,
        [array, size_is(PCIDeviceAssignmentsSize), retval] out IPCIDeviceAttachment PCIDeviceAssignments
    );

    readonly attribute IBandwidthControl bandwidthControl;

    attribute boolean tracingEnabled;

    attribute wstring tracingConfig;

    attribute boolean allowTracingToAccessVM;

    attribute boolean autostartEnabled;

    attribute unsigned long autostartDelay;

    attribute AutostopType_T autostopType;

    attribute wstring defaultFrontend;

    readonly attribute boolean USBProxyAvailable;

    attribute VMProcPriority_T VMProcessPriority;

    attribute wstring paravirtDebug;

    attribute wstring CPUProfile;

    readonly attribute unsigned long InternalAndReservedAttribute1IMachine;

    readonly attribute unsigned long InternalAndReservedAttribute2IMachine;

    readonly attribute unsigned long InternalAndReservedAttribute3IMachine;

    readonly attribute unsigned long InternalAndReservedAttribute4IMachine;

    readonly attribute unsigned long InternalAndReservedAttribute5IMachine;

    readonly attribute unsigned long InternalAndReservedAttribute6IMachine;

    readonly attribute unsigned long InternalAndReservedAttribute7IMachine;

    readonly attribute unsigned long InternalAndReservedAttribute8IMachine;

    readonly attribute unsigned long InternalAndReservedAttribute9IMachine;

    readonly attribute unsigned long InternalAndReservedAttribute10IMachine;

    readonly attribute unsigned long InternalAndReservedAttribute11IMachine;

    readonly attribute unsigned long InternalAndReservedAttribute12IMachine;

    readonly attribute unsigned long InternalAndReservedAttribute13IMachine;

    readonly attribute unsigned long InternalAndReservedAttribute14IMachine;

    readonly attribute unsigned long InternalAndReservedAttribute15IMachine;

    readonly attribute unsigned long InternalAndReservedAttribute16IMachine;

    void lockMachine (
        in ISession session,
        in LockType_T lockType
    );

    void launchVMProcess (
        in ISession session,
        in wstring name,
        in unsigned long environmentChangesSize,
        [array, size_is(environmentChangesSize)] in wstring environmentChanges,
        [retval] out IProgress progress
    );

    void setBootOrder (
        in unsigned long position,
        in DeviceType_T device
    );

    void getBootOrder (
        in unsigned long position,
        [retval] out DeviceType_T device
    );

    void attachDevice (
        in wstring name,
        in long controllerPort,
        in long device,
        in DeviceType_T type,
        in IMedium medium
    );

    void attachDeviceWithoutMedium (
        in wstring name,
        in long controllerPort,
        in long device,
        in DeviceType_T type
    );

    void detachDevice (
        in wstring name,
        in long controllerPort,
        in long device
    );

    void passthroughDevice (
        in wstring name,
        in long controllerPort,
        in long device,
        in boolean passthrough
    );

    void temporaryEjectDevice (
        in wstring name,
        in long controllerPort,
        in long device,
        in boolean temporaryEject
    );

    void nonRotationalDevice (
        in wstring name,
        in long controllerPort,
        in long device,
        in boolean nonRotational
    );

    void setAutoDiscardForDevice (
        in wstring name,
        in long controllerPort,
        in long device,
        in boolean discard
    );

    void setHotPluggableForDevice (
        in wstring name,
        in long controllerPort,
        in long device,
        in boolean hotPluggable
    );

    void setBandwidthGroupForDevice (
        in wstring name,
        in long controllerPort,
        in long device,
        in IBandwidthGroup bandwidthGroup
    );

    void setNoBandwidthGroupForDevice (
        in wstring name,
        in long controllerPort,
        in long device
    );

    void unmountMedium (
        in wstring name,
        in long controllerPort,
        in long device,
        in boolean force
    );

    void mountMedium (
        in wstring name,
        in long controllerPort,
        in long device,
        in IMedium medium,
        in boolean force
    );

    void getMedium (
        in wstring name,
        in long controllerPort,
        in long device,
        [retval] out IMedium medium
    );

    void getMediumAttachmentsOfController (
        in wstring name,
        out unsigned long mediumAttachmentsSize,
        [array, size_is(mediumAttachmentsSize) , retval] out IMediumAttachment mediumAttachments
    );

    void getMediumAttachment (
        in wstring name,
        in long controllerPort,
        in long device,
        [retval] out IMediumAttachment attachment
    );

    void attachHostPCIDevice (
        in long hostAddress,
        in long desiredGuestAddress,
        in boolean tryToUnbind
    );

    void detachHostPCIDevice (
        in long hostAddress
    );

    void getNetworkAdapter (
        in unsigned long slot,
        [retval] out INetworkAdapter adapter
    );

    void addStorageController (
        in wstring name,
        in StorageBus_T connectionType,
        [retval] out IStorageController controller
    );

    void getStorageControllerByName (
        in wstring name,
        [retval] out IStorageController storageController
    );

    void getStorageControllerByInstance (
        in StorageBus_T connectionType,
        in unsigned long instance,
        [retval] out IStorageController storageController
    );

    void removeStorageController (
        in wstring name
    );

    void setStorageControllerBootable (
        in wstring name,
        in boolean bootable
    );

    void addUSBController (
        in wstring name,
        in USBControllerType_T type,
        [retval] out IUSBController controller
    );

    void removeUSBController (
        in wstring name
    );

    void getUSBControllerByName (
        in wstring name,
        [retval] out IUSBController controller
    );

    void getUSBControllerCountByType (
        in USBControllerType_T type,
        [retval] out unsigned long controllers
    );

    void getSerialPort (
        in unsigned long slot,
        [retval] out ISerialPort port
    );

    void getParallelPort (
        in unsigned long slot,
        [retval] out IParallelPort port
    );

    void getExtraDataKeys (
        out unsigned long keysSize,
        [array, size_is(keysSize) , retval] out wstring keys
    );

    void getExtraData (
        in wstring key,
        [retval] out wstring value
    );

    void setExtraData (
        in wstring key,
        in wstring value
    );

    void getCPUProperty (
        in CPUPropertyType_T property,
        [retval] out boolean value
    );

    void setCPUProperty (
        in CPUPropertyType_T property,
        in boolean value
    );

    void getCPUIDLeafByOrdinal (
        in unsigned long ordinal,
        out unsigned long idx,
        out unsigned long idxSub,
        out unsigned long valEax,
        out unsigned long valEbx,
        out unsigned long valEcx,
        out unsigned long valEdx
    );

    void getCPUIDLeaf (
        in unsigned long idx,
        in unsigned long idxSub,
        out unsigned long valEax,
        out unsigned long valEbx,
        out unsigned long valEcx,
        out unsigned long valEdx
    );

    void setCPUIDLeaf (
        in unsigned long idx,
        in unsigned long idxSub,
        in unsigned long valEax,
        in unsigned long valEbx,
        in unsigned long valEcx,
        in unsigned long valEdx
    );

    void removeCPUIDLeaf (
        in unsigned long idx,
        in unsigned long idxSub
    );

    void removeAllCPUIDLeaves();

    void getHWVirtExProperty (
        in HWVirtExPropertyType_T property,
        [retval] out boolean value
    );

    void setHWVirtExProperty (
        in HWVirtExPropertyType_T property,
        in boolean value
    );

    void setSettingsFilePath (
        in wstring settingsFilePath,
        [retval] out IProgress progress
    );

    void saveSettings();

    void discardSettings();

    void unregister (
        in CleanupMode_T cleanupMode,
        out unsigned long mediaSize,
        [array, size_is(mediaSize) , retval] out IMedium media
    );

    void deleteConfig (
        in unsigned long mediaSize,
        [array, size_is(mediaSize)] in IMedium media,
        [retval] out IProgress progress
    );

    void exportTo (
        in IAppliance appliance,
        in wstring location,
        [retval] out IVirtualSystemDescription description
    );

    void findSnapshot (
        in wstring nameOrId,
        [retval] out ISnapshot snapshot
    );

    void createSharedFolder (
        in wstring name,
        in wstring hostPath,
        in boolean writable,
        in boolean automount,
        in wstring autoMountPoint
    );

    void removeSharedFolder (
        in wstring name
    );

    void canShowConsoleWindow (
        [retval] out boolean canShow
    );

    void showConsoleWindow (
        [retval] out long long winId
    );

    void getGuestProperty (
        in wstring name,
        out wstring value,
        out long long timestamp,
        out wstring flags
    );

    void getGuestPropertyValue (
        in wstring property,
        [retval] out wstring value
    );

    void getGuestPropertyTimestamp (
        in wstring property,
        [retval] out long long value
    );

    void setGuestProperty (
        in wstring property,
        in wstring value,
        in wstring flags
    );

    void setGuestPropertyValue (
        in wstring property,
        in wstring value
    );

    void deleteGuestProperty (
        in wstring name
    );

    void enumerateGuestProperties (
        in wstring patterns,
        out unsigned long namesSize,
        [array, size_is(namesSize)] out wstring names,
        out unsigned long valuesSize,
        [array, size_is(valuesSize)] out wstring values,
        out unsigned long timestampsSize,
        [array, size_is(timestampsSize)] out long long timestamps,
        out unsigned long flagsSize,
        [array, size_is(flagsSize)] out wstring flags
    );

    void querySavedGuestScreenInfo (
        in unsigned long screenId,
        out unsigned long originX,
        out unsigned long originY,
        out unsigned long width,
        out unsigned long height,
        out boolean enabled
    );

    void readSavedThumbnailToArray (
        in unsigned long screenId,
        in BitmapFormat_T bitmapFormat,
        out unsigned long width,
        out unsigned long height,
        out unsigned long dataSize,
        [array, size_is(dataSize) , retval] out octet data
    );

    void querySavedScreenshotInfo (
        in unsigned long screenId,
        out unsigned long width,
        out unsigned long height,
        out unsigned long bitmapFormatsSize,
        [array, size_is(bitmapFormatsSize) , retval] out BitmapFormat_T bitmapFormats
    );

    void readSavedScreenshotToArray (
        in unsigned long screenId,
        in BitmapFormat_T bitmapFormat,
        out unsigned long width,
        out unsigned long height,
        out unsigned long dataSize,
        [array, size_is(dataSize) , retval] out octet data
    );

    void hotPlugCPU (
        in unsigned long cpu
    );

    void hotUnplugCPU (
        in unsigned long cpu
    );

    void getCPUStatus (
        in unsigned long cpu,
        [retval] out boolean attached
    );

    void getEffectiveParavirtProvider (
        [retval] out ParavirtProvider_T paravirtProvider
    );

    void queryLogFilename (
        in unsigned long idx,
        [retval] out wstring filename
    );

    void readLog (
        in unsigned long idx,
        in long long offset,
        in long long size,
        out unsigned long dataSize,
        [array, size_is(dataSize) , retval] out octet data
    );

    void cloneTo (
        in IMachine target,
        in CloneMode_T mode,
        in unsigned long optionsSize,
        [array, size_is(optionsSize)] in CloneOptions_T options,
        [retval] out IProgress progress
    );

    void moveTo (
        in wstring folder,
        in wstring type,
        [retval] out IProgress progress
    );

    void saveState (
        [retval] out IProgress progress
    );

    void adoptSavedState (
        in wstring savedStateFile
    );

    void discardSavedState (
        in boolean fRemoveFile
    );

    void takeSnapshot (
        in wstring name,
        in wstring description,
        in boolean pause,
        out wstring id,
        [retval] out IProgress progress
    );

    void deleteSnapshot (
        in wstring id,
        [retval] out IProgress progress
    );

    void deleteSnapshotAndAllChildren (
        in wstring id,
        [retval] out IProgress progress
    );

    void deleteSnapshotRange (
        in wstring startId,
        in wstring endId,
        [retval] out IProgress progress
    );

    void restoreSnapshot (
        in ISnapshot snapshot,
        [retval] out IProgress progress
    );

    void applyDefaults (
        in wstring flags
    );

    void InternalAndReservedMethod1IMachine();

    void InternalAndReservedMethod2IMachine();

    void InternalAndReservedMethod3IMachine();

    void InternalAndReservedMethod4IMachine();

    void InternalAndReservedMethod5IMachine();

    void InternalAndReservedMethod6IMachine();

    void InternalAndReservedMethod7IMachine();

    void InternalAndReservedMethod8IMachine();

}; /* interface IMachine */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IMachine_GETTER_Parent_TO(smth) NS_IMETHOD GetParent (IVirtualBox * * aParent) { return smth GetParent (aParent); }
#define COM_FORWARD_IMachine_GETTER_Parent_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_Parent_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_Parent_TO_BASE(base) COM_FORWARD_IMachine_GETTER_Parent_TO (base::)
#define COM_FORWARD_IMachine_GETTER_Icon_TO(smth) NS_IMETHOD GetIcon (PRUint32 * aIconSize, PRUint8 * * aIcon) { return smth GetIcon (aIconSize, aIcon); }
#define COM_FORWARD_IMachine_GETTER_Icon_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_Icon_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_Icon_TO_BASE(base) COM_FORWARD_IMachine_GETTER_Icon_TO (base::)
#define COM_FORWARD_IMachine_SETTER_Icon_TO(smth) NS_IMETHOD SetIcon (PRUint32 aIconSize, PRUint8 * aIcon) { return smth SetIcon (aIcon); }
#define COM_FORWARD_IMachine_SETTER_Icon_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_Icon_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_Icon_TO_BASE(base) COM_FORWARD_IMachine_SETTER_Icon_TO (base::)
#define COM_FORWARD_IMachine_GETTER_Accessible_TO(smth) NS_IMETHOD GetAccessible (PRBool * aAccessible) { return smth GetAccessible (aAccessible); }
#define COM_FORWARD_IMachine_GETTER_Accessible_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_Accessible_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_Accessible_TO_BASE(base) COM_FORWARD_IMachine_GETTER_Accessible_TO (base::)
#define COM_FORWARD_IMachine_GETTER_AccessError_TO(smth) NS_IMETHOD GetAccessError (IVirtualBoxErrorInfo * * aAccessError) { return smth GetAccessError (aAccessError); }
#define COM_FORWARD_IMachine_GETTER_AccessError_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_AccessError_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_AccessError_TO_BASE(base) COM_FORWARD_IMachine_GETTER_AccessError_TO (base::)
#define COM_FORWARD_IMachine_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_IMachine_GETTER_Name_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_Name_TO_BASE(base) COM_FORWARD_IMachine_GETTER_Name_TO (base::)
#define COM_FORWARD_IMachine_SETTER_Name_TO(smth) NS_IMETHOD SetName (const PRUnichar * aName) { return smth SetName (aName); }
#define COM_FORWARD_IMachine_SETTER_Name_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_Name_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_Name_TO_BASE(base) COM_FORWARD_IMachine_SETTER_Name_TO (base::)
#define COM_FORWARD_IMachine_GETTER_Description_TO(smth) NS_IMETHOD GetDescription (PRUnichar * * aDescription) { return smth GetDescription (aDescription); }
#define COM_FORWARD_IMachine_GETTER_Description_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_Description_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_Description_TO_BASE(base) COM_FORWARD_IMachine_GETTER_Description_TO (base::)
#define COM_FORWARD_IMachine_SETTER_Description_TO(smth) NS_IMETHOD SetDescription (const PRUnichar * aDescription) { return smth SetDescription (aDescription); }
#define COM_FORWARD_IMachine_SETTER_Description_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_Description_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_Description_TO_BASE(base) COM_FORWARD_IMachine_SETTER_Description_TO (base::)
#define COM_FORWARD_IMachine_GETTER_Id_TO(smth) NS_IMETHOD GetId (PRUnichar * * aId) { return smth GetId (aId); }
#define COM_FORWARD_IMachine_GETTER_Id_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_Id_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_Id_TO_BASE(base) COM_FORWARD_IMachine_GETTER_Id_TO (base::)
#define COM_FORWARD_IMachine_GETTER_Groups_TO(smth) NS_IMETHOD GetGroups (PRUint32 * aGroupsSize, PRUnichar * * * aGroups) { return smth GetGroups (aGroupsSize, aGroups); }
#define COM_FORWARD_IMachine_GETTER_Groups_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_Groups_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_Groups_TO_BASE(base) COM_FORWARD_IMachine_GETTER_Groups_TO (base::)
#define COM_FORWARD_IMachine_SETTER_Groups_TO(smth) NS_IMETHOD SetGroups (PRUint32 aGroupsSize, PRUnichar * * aGroups) { return smth SetGroups (aGroups); }
#define COM_FORWARD_IMachine_SETTER_Groups_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_Groups_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_Groups_TO_BASE(base) COM_FORWARD_IMachine_SETTER_Groups_TO (base::)
#define COM_FORWARD_IMachine_GETTER_OSTypeId_TO(smth) NS_IMETHOD GetOSTypeId (PRUnichar * * aOSTypeId) { return smth GetOSTypeId (aOSTypeId); }
#define COM_FORWARD_IMachine_GETTER_OSTypeId_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_OSTypeId_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_OSTypeId_TO_BASE(base) COM_FORWARD_IMachine_GETTER_OSTypeId_TO (base::)
#define COM_FORWARD_IMachine_SETTER_OSTypeId_TO(smth) NS_IMETHOD SetOSTypeId (const PRUnichar * aOSTypeId) { return smth SetOSTypeId (aOSTypeId); }
#define COM_FORWARD_IMachine_SETTER_OSTypeId_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_OSTypeId_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_OSTypeId_TO_BASE(base) COM_FORWARD_IMachine_SETTER_OSTypeId_TO (base::)
#define COM_FORWARD_IMachine_GETTER_HardwareVersion_TO(smth) NS_IMETHOD GetHardwareVersion (PRUnichar * * aHardwareVersion) { return smth GetHardwareVersion (aHardwareVersion); }
#define COM_FORWARD_IMachine_GETTER_HardwareVersion_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_HardwareVersion_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_HardwareVersion_TO_BASE(base) COM_FORWARD_IMachine_GETTER_HardwareVersion_TO (base::)
#define COM_FORWARD_IMachine_SETTER_HardwareVersion_TO(smth) NS_IMETHOD SetHardwareVersion (const PRUnichar * aHardwareVersion) { return smth SetHardwareVersion (aHardwareVersion); }
#define COM_FORWARD_IMachine_SETTER_HardwareVersion_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_HardwareVersion_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_HardwareVersion_TO_BASE(base) COM_FORWARD_IMachine_SETTER_HardwareVersion_TO (base::)
#define COM_FORWARD_IMachine_GETTER_HardwareUUID_TO(smth) NS_IMETHOD GetHardwareUUID (PRUnichar * * aHardwareUUID) { return smth GetHardwareUUID (aHardwareUUID); }
#define COM_FORWARD_IMachine_GETTER_HardwareUUID_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_HardwareUUID_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_HardwareUUID_TO_BASE(base) COM_FORWARD_IMachine_GETTER_HardwareUUID_TO (base::)
#define COM_FORWARD_IMachine_SETTER_HardwareUUID_TO(smth) NS_IMETHOD SetHardwareUUID (PRUnichar * aHardwareUUID) { return smth SetHardwareUUID (aHardwareUUID); }
#define COM_FORWARD_IMachine_SETTER_HardwareUUID_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_HardwareUUID_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_HardwareUUID_TO_BASE(base) COM_FORWARD_IMachine_SETTER_HardwareUUID_TO (base::)
#define COM_FORWARD_IMachine_GETTER_CPUCount_TO(smth) NS_IMETHOD GetCPUCount (PRUint32 * aCPUCount) { return smth GetCPUCount (aCPUCount); }
#define COM_FORWARD_IMachine_GETTER_CPUCount_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_CPUCount_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_CPUCount_TO_BASE(base) COM_FORWARD_IMachine_GETTER_CPUCount_TO (base::)
#define COM_FORWARD_IMachine_SETTER_CPUCount_TO(smth) NS_IMETHOD SetCPUCount (PRUint32 aCPUCount) { return smth SetCPUCount (aCPUCount); }
#define COM_FORWARD_IMachine_SETTER_CPUCount_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_CPUCount_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_CPUCount_TO_BASE(base) COM_FORWARD_IMachine_SETTER_CPUCount_TO (base::)
#define COM_FORWARD_IMachine_GETTER_CPUHotPlugEnabled_TO(smth) NS_IMETHOD GetCPUHotPlugEnabled (PRBool * aCPUHotPlugEnabled) { return smth GetCPUHotPlugEnabled (aCPUHotPlugEnabled); }
#define COM_FORWARD_IMachine_GETTER_CPUHotPlugEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_CPUHotPlugEnabled_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_CPUHotPlugEnabled_TO_BASE(base) COM_FORWARD_IMachine_GETTER_CPUHotPlugEnabled_TO (base::)
#define COM_FORWARD_IMachine_SETTER_CPUHotPlugEnabled_TO(smth) NS_IMETHOD SetCPUHotPlugEnabled (PRBool aCPUHotPlugEnabled) { return smth SetCPUHotPlugEnabled (aCPUHotPlugEnabled); }
#define COM_FORWARD_IMachine_SETTER_CPUHotPlugEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_CPUHotPlugEnabled_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_CPUHotPlugEnabled_TO_BASE(base) COM_FORWARD_IMachine_SETTER_CPUHotPlugEnabled_TO (base::)
#define COM_FORWARD_IMachine_GETTER_CPUExecutionCap_TO(smth) NS_IMETHOD GetCPUExecutionCap (PRUint32 * aCPUExecutionCap) { return smth GetCPUExecutionCap (aCPUExecutionCap); }
#define COM_FORWARD_IMachine_GETTER_CPUExecutionCap_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_CPUExecutionCap_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_CPUExecutionCap_TO_BASE(base) COM_FORWARD_IMachine_GETTER_CPUExecutionCap_TO (base::)
#define COM_FORWARD_IMachine_SETTER_CPUExecutionCap_TO(smth) NS_IMETHOD SetCPUExecutionCap (PRUint32 aCPUExecutionCap) { return smth SetCPUExecutionCap (aCPUExecutionCap); }
#define COM_FORWARD_IMachine_SETTER_CPUExecutionCap_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_CPUExecutionCap_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_CPUExecutionCap_TO_BASE(base) COM_FORWARD_IMachine_SETTER_CPUExecutionCap_TO (base::)
#define COM_FORWARD_IMachine_GETTER_CPUIDPortabilityLevel_TO(smth) NS_IMETHOD GetCPUIDPortabilityLevel (PRUint32 * aCPUIDPortabilityLevel) { return smth GetCPUIDPortabilityLevel (aCPUIDPortabilityLevel); }
#define COM_FORWARD_IMachine_GETTER_CPUIDPortabilityLevel_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_CPUIDPortabilityLevel_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_CPUIDPortabilityLevel_TO_BASE(base) COM_FORWARD_IMachine_GETTER_CPUIDPortabilityLevel_TO (base::)
#define COM_FORWARD_IMachine_SETTER_CPUIDPortabilityLevel_TO(smth) NS_IMETHOD SetCPUIDPortabilityLevel (PRUint32 aCPUIDPortabilityLevel) { return smth SetCPUIDPortabilityLevel (aCPUIDPortabilityLevel); }
#define COM_FORWARD_IMachine_SETTER_CPUIDPortabilityLevel_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_CPUIDPortabilityLevel_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_CPUIDPortabilityLevel_TO_BASE(base) COM_FORWARD_IMachine_SETTER_CPUIDPortabilityLevel_TO (base::)
#define COM_FORWARD_IMachine_GETTER_MemorySize_TO(smth) NS_IMETHOD GetMemorySize (PRUint32 * aMemorySize) { return smth GetMemorySize (aMemorySize); }
#define COM_FORWARD_IMachine_GETTER_MemorySize_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_MemorySize_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_MemorySize_TO_BASE(base) COM_FORWARD_IMachine_GETTER_MemorySize_TO (base::)
#define COM_FORWARD_IMachine_SETTER_MemorySize_TO(smth) NS_IMETHOD SetMemorySize (PRUint32 aMemorySize) { return smth SetMemorySize (aMemorySize); }
#define COM_FORWARD_IMachine_SETTER_MemorySize_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_MemorySize_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_MemorySize_TO_BASE(base) COM_FORWARD_IMachine_SETTER_MemorySize_TO (base::)
#define COM_FORWARD_IMachine_GETTER_MemoryBalloonSize_TO(smth) NS_IMETHOD GetMemoryBalloonSize (PRUint32 * aMemoryBalloonSize) { return smth GetMemoryBalloonSize (aMemoryBalloonSize); }
#define COM_FORWARD_IMachine_GETTER_MemoryBalloonSize_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_MemoryBalloonSize_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_MemoryBalloonSize_TO_BASE(base) COM_FORWARD_IMachine_GETTER_MemoryBalloonSize_TO (base::)
#define COM_FORWARD_IMachine_SETTER_MemoryBalloonSize_TO(smth) NS_IMETHOD SetMemoryBalloonSize (PRUint32 aMemoryBalloonSize) { return smth SetMemoryBalloonSize (aMemoryBalloonSize); }
#define COM_FORWARD_IMachine_SETTER_MemoryBalloonSize_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_MemoryBalloonSize_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_MemoryBalloonSize_TO_BASE(base) COM_FORWARD_IMachine_SETTER_MemoryBalloonSize_TO (base::)
#define COM_FORWARD_IMachine_GETTER_PageFusionEnabled_TO(smth) NS_IMETHOD GetPageFusionEnabled (PRBool * aPageFusionEnabled) { return smth GetPageFusionEnabled (aPageFusionEnabled); }
#define COM_FORWARD_IMachine_GETTER_PageFusionEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_PageFusionEnabled_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_PageFusionEnabled_TO_BASE(base) COM_FORWARD_IMachine_GETTER_PageFusionEnabled_TO (base::)
#define COM_FORWARD_IMachine_SETTER_PageFusionEnabled_TO(smth) NS_IMETHOD SetPageFusionEnabled (PRBool aPageFusionEnabled) { return smth SetPageFusionEnabled (aPageFusionEnabled); }
#define COM_FORWARD_IMachine_SETTER_PageFusionEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_PageFusionEnabled_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_PageFusionEnabled_TO_BASE(base) COM_FORWARD_IMachine_SETTER_PageFusionEnabled_TO (base::)
#define COM_FORWARD_IMachine_GETTER_GraphicsAdapter_TO(smth) NS_IMETHOD GetGraphicsAdapter (IGraphicsAdapter * * aGraphicsAdapter) { return smth GetGraphicsAdapter (aGraphicsAdapter); }
#define COM_FORWARD_IMachine_GETTER_GraphicsAdapter_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_GraphicsAdapter_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_GraphicsAdapter_TO_BASE(base) COM_FORWARD_IMachine_GETTER_GraphicsAdapter_TO (base::)
#define COM_FORWARD_IMachine_GETTER_BIOSSettings_TO(smth) NS_IMETHOD GetBIOSSettings (IBIOSSettings * * aBIOSSettings) { return smth GetBIOSSettings (aBIOSSettings); }
#define COM_FORWARD_IMachine_GETTER_BIOSSettings_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_BIOSSettings_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_BIOSSettings_TO_BASE(base) COM_FORWARD_IMachine_GETTER_BIOSSettings_TO (base::)
#define COM_FORWARD_IMachine_GETTER_RecordingSettings_TO(smth) NS_IMETHOD GetRecordingSettings (IRecordingSettings * * aRecordingSettings) { return smth GetRecordingSettings (aRecordingSettings); }
#define COM_FORWARD_IMachine_GETTER_RecordingSettings_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_RecordingSettings_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_RecordingSettings_TO_BASE(base) COM_FORWARD_IMachine_GETTER_RecordingSettings_TO (base::)
#define COM_FORWARD_IMachine_GETTER_FirmwareType_TO(smth) NS_IMETHOD GetFirmwareType (PRUint32 * aFirmwareType) { return smth GetFirmwareType (aFirmwareType); }
#define COM_FORWARD_IMachine_GETTER_FirmwareType_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_FirmwareType_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_FirmwareType_TO_BASE(base) COM_FORWARD_IMachine_GETTER_FirmwareType_TO (base::)
#define COM_FORWARD_IMachine_SETTER_FirmwareType_TO(smth) NS_IMETHOD SetFirmwareType (PRUint32 aFirmwareType) { return smth SetFirmwareType (aFirmwareType); }
#define COM_FORWARD_IMachine_SETTER_FirmwareType_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_FirmwareType_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_FirmwareType_TO_BASE(base) COM_FORWARD_IMachine_SETTER_FirmwareType_TO (base::)
#define COM_FORWARD_IMachine_GETTER_PointingHIDType_TO(smth) NS_IMETHOD GetPointingHIDType (PRUint32 * aPointingHIDType) { return smth GetPointingHIDType (aPointingHIDType); }
#define COM_FORWARD_IMachine_GETTER_PointingHIDType_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_PointingHIDType_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_PointingHIDType_TO_BASE(base) COM_FORWARD_IMachine_GETTER_PointingHIDType_TO (base::)
#define COM_FORWARD_IMachine_SETTER_PointingHIDType_TO(smth) NS_IMETHOD SetPointingHIDType (PRUint32 aPointingHIDType) { return smth SetPointingHIDType (aPointingHIDType); }
#define COM_FORWARD_IMachine_SETTER_PointingHIDType_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_PointingHIDType_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_PointingHIDType_TO_BASE(base) COM_FORWARD_IMachine_SETTER_PointingHIDType_TO (base::)
#define COM_FORWARD_IMachine_GETTER_KeyboardHIDType_TO(smth) NS_IMETHOD GetKeyboardHIDType (PRUint32 * aKeyboardHIDType) { return smth GetKeyboardHIDType (aKeyboardHIDType); }
#define COM_FORWARD_IMachine_GETTER_KeyboardHIDType_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_KeyboardHIDType_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_KeyboardHIDType_TO_BASE(base) COM_FORWARD_IMachine_GETTER_KeyboardHIDType_TO (base::)
#define COM_FORWARD_IMachine_SETTER_KeyboardHIDType_TO(smth) NS_IMETHOD SetKeyboardHIDType (PRUint32 aKeyboardHIDType) { return smth SetKeyboardHIDType (aKeyboardHIDType); }
#define COM_FORWARD_IMachine_SETTER_KeyboardHIDType_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_KeyboardHIDType_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_KeyboardHIDType_TO_BASE(base) COM_FORWARD_IMachine_SETTER_KeyboardHIDType_TO (base::)
#define COM_FORWARD_IMachine_GETTER_HPETEnabled_TO(smth) NS_IMETHOD GetHPETEnabled (PRBool * aHPETEnabled) { return smth GetHPETEnabled (aHPETEnabled); }
#define COM_FORWARD_IMachine_GETTER_HPETEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_HPETEnabled_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_HPETEnabled_TO_BASE(base) COM_FORWARD_IMachine_GETTER_HPETEnabled_TO (base::)
#define COM_FORWARD_IMachine_SETTER_HPETEnabled_TO(smth) NS_IMETHOD SetHPETEnabled (PRBool aHPETEnabled) { return smth SetHPETEnabled (aHPETEnabled); }
#define COM_FORWARD_IMachine_SETTER_HPETEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_HPETEnabled_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_HPETEnabled_TO_BASE(base) COM_FORWARD_IMachine_SETTER_HPETEnabled_TO (base::)
#define COM_FORWARD_IMachine_GETTER_ChipsetType_TO(smth) NS_IMETHOD GetChipsetType (PRUint32 * aChipsetType) { return smth GetChipsetType (aChipsetType); }
#define COM_FORWARD_IMachine_GETTER_ChipsetType_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_ChipsetType_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_ChipsetType_TO_BASE(base) COM_FORWARD_IMachine_GETTER_ChipsetType_TO (base::)
#define COM_FORWARD_IMachine_SETTER_ChipsetType_TO(smth) NS_IMETHOD SetChipsetType (PRUint32 aChipsetType) { return smth SetChipsetType (aChipsetType); }
#define COM_FORWARD_IMachine_SETTER_ChipsetType_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_ChipsetType_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_ChipsetType_TO_BASE(base) COM_FORWARD_IMachine_SETTER_ChipsetType_TO (base::)
#define COM_FORWARD_IMachine_GETTER_SnapshotFolder_TO(smth) NS_IMETHOD GetSnapshotFolder (PRUnichar * * aSnapshotFolder) { return smth GetSnapshotFolder (aSnapshotFolder); }
#define COM_FORWARD_IMachine_GETTER_SnapshotFolder_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_SnapshotFolder_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_SnapshotFolder_TO_BASE(base) COM_FORWARD_IMachine_GETTER_SnapshotFolder_TO (base::)
#define COM_FORWARD_IMachine_SETTER_SnapshotFolder_TO(smth) NS_IMETHOD SetSnapshotFolder (const PRUnichar * aSnapshotFolder) { return smth SetSnapshotFolder (aSnapshotFolder); }
#define COM_FORWARD_IMachine_SETTER_SnapshotFolder_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_SnapshotFolder_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_SnapshotFolder_TO_BASE(base) COM_FORWARD_IMachine_SETTER_SnapshotFolder_TO (base::)
#define COM_FORWARD_IMachine_GETTER_VRDEServer_TO(smth) NS_IMETHOD GetVRDEServer (IVRDEServer * * aVRDEServer) { return smth GetVRDEServer (aVRDEServer); }
#define COM_FORWARD_IMachine_GETTER_VRDEServer_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_VRDEServer_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_VRDEServer_TO_BASE(base) COM_FORWARD_IMachine_GETTER_VRDEServer_TO (base::)
#define COM_FORWARD_IMachine_GETTER_EmulatedUSBCardReaderEnabled_TO(smth) NS_IMETHOD GetEmulatedUSBCardReaderEnabled (PRBool * aEmulatedUSBCardReaderEnabled) { return smth GetEmulatedUSBCardReaderEnabled (aEmulatedUSBCardReaderEnabled); }
#define COM_FORWARD_IMachine_GETTER_EmulatedUSBCardReaderEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_EmulatedUSBCardReaderEnabled_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_EmulatedUSBCardReaderEnabled_TO_BASE(base) COM_FORWARD_IMachine_GETTER_EmulatedUSBCardReaderEnabled_TO (base::)
#define COM_FORWARD_IMachine_SETTER_EmulatedUSBCardReaderEnabled_TO(smth) NS_IMETHOD SetEmulatedUSBCardReaderEnabled (PRBool aEmulatedUSBCardReaderEnabled) { return smth SetEmulatedUSBCardReaderEnabled (aEmulatedUSBCardReaderEnabled); }
#define COM_FORWARD_IMachine_SETTER_EmulatedUSBCardReaderEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_EmulatedUSBCardReaderEnabled_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_EmulatedUSBCardReaderEnabled_TO_BASE(base) COM_FORWARD_IMachine_SETTER_EmulatedUSBCardReaderEnabled_TO (base::)
#define COM_FORWARD_IMachine_GETTER_MediumAttachments_TO(smth) NS_IMETHOD GetMediumAttachments (PRUint32 * aMediumAttachmentsSize, IMediumAttachment * * * aMediumAttachments) { return smth GetMediumAttachments (aMediumAttachmentsSize, aMediumAttachments); }
#define COM_FORWARD_IMachine_GETTER_MediumAttachments_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_MediumAttachments_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_MediumAttachments_TO_BASE(base) COM_FORWARD_IMachine_GETTER_MediumAttachments_TO (base::)
#define COM_FORWARD_IMachine_GETTER_USBControllers_TO(smth) NS_IMETHOD GetUSBControllers (PRUint32 * aUSBControllersSize, IUSBController * * * aUSBControllers) { return smth GetUSBControllers (aUSBControllersSize, aUSBControllers); }
#define COM_FORWARD_IMachine_GETTER_USBControllers_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_USBControllers_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_USBControllers_TO_BASE(base) COM_FORWARD_IMachine_GETTER_USBControllers_TO (base::)
#define COM_FORWARD_IMachine_GETTER_USBDeviceFilters_TO(smth) NS_IMETHOD GetUSBDeviceFilters (IUSBDeviceFilters * * aUSBDeviceFilters) { return smth GetUSBDeviceFilters (aUSBDeviceFilters); }
#define COM_FORWARD_IMachine_GETTER_USBDeviceFilters_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_USBDeviceFilters_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_USBDeviceFilters_TO_BASE(base) COM_FORWARD_IMachine_GETTER_USBDeviceFilters_TO (base::)
#define COM_FORWARD_IMachine_GETTER_AudioAdapter_TO(smth) NS_IMETHOD GetAudioAdapter (IAudioAdapter * * aAudioAdapter) { return smth GetAudioAdapter (aAudioAdapter); }
#define COM_FORWARD_IMachine_GETTER_AudioAdapter_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_AudioAdapter_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_AudioAdapter_TO_BASE(base) COM_FORWARD_IMachine_GETTER_AudioAdapter_TO (base::)
#define COM_FORWARD_IMachine_GETTER_StorageControllers_TO(smth) NS_IMETHOD GetStorageControllers (PRUint32 * aStorageControllersSize, IStorageController * * * aStorageControllers) { return smth GetStorageControllers (aStorageControllersSize, aStorageControllers); }
#define COM_FORWARD_IMachine_GETTER_StorageControllers_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_StorageControllers_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_StorageControllers_TO_BASE(base) COM_FORWARD_IMachine_GETTER_StorageControllers_TO (base::)
#define COM_FORWARD_IMachine_GETTER_SettingsFilePath_TO(smth) NS_IMETHOD GetSettingsFilePath (PRUnichar * * aSettingsFilePath) { return smth GetSettingsFilePath (aSettingsFilePath); }
#define COM_FORWARD_IMachine_GETTER_SettingsFilePath_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_SettingsFilePath_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_SettingsFilePath_TO_BASE(base) COM_FORWARD_IMachine_GETTER_SettingsFilePath_TO (base::)
#define COM_FORWARD_IMachine_GETTER_SettingsAuxFilePath_TO(smth) NS_IMETHOD GetSettingsAuxFilePath (PRUnichar * * aSettingsAuxFilePath) { return smth GetSettingsAuxFilePath (aSettingsAuxFilePath); }
#define COM_FORWARD_IMachine_GETTER_SettingsAuxFilePath_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_SettingsAuxFilePath_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_SettingsAuxFilePath_TO_BASE(base) COM_FORWARD_IMachine_GETTER_SettingsAuxFilePath_TO (base::)
#define COM_FORWARD_IMachine_GETTER_SettingsModified_TO(smth) NS_IMETHOD GetSettingsModified (PRBool * aSettingsModified) { return smth GetSettingsModified (aSettingsModified); }
#define COM_FORWARD_IMachine_GETTER_SettingsModified_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_SettingsModified_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_SettingsModified_TO_BASE(base) COM_FORWARD_IMachine_GETTER_SettingsModified_TO (base::)
#define COM_FORWARD_IMachine_GETTER_SessionState_TO(smth) NS_IMETHOD GetSessionState (PRUint32 * aSessionState) { return smth GetSessionState (aSessionState); }
#define COM_FORWARD_IMachine_GETTER_SessionState_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_SessionState_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_SessionState_TO_BASE(base) COM_FORWARD_IMachine_GETTER_SessionState_TO (base::)
#define COM_FORWARD_IMachine_GETTER_SessionName_TO(smth) NS_IMETHOD GetSessionName (PRUnichar * * aSessionName) { return smth GetSessionName (aSessionName); }
#define COM_FORWARD_IMachine_GETTER_SessionName_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_SessionName_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_SessionName_TO_BASE(base) COM_FORWARD_IMachine_GETTER_SessionName_TO (base::)
#define COM_FORWARD_IMachine_GETTER_SessionPID_TO(smth) NS_IMETHOD GetSessionPID (PRUint32 * aSessionPID) { return smth GetSessionPID (aSessionPID); }
#define COM_FORWARD_IMachine_GETTER_SessionPID_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_SessionPID_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_SessionPID_TO_BASE(base) COM_FORWARD_IMachine_GETTER_SessionPID_TO (base::)
#define COM_FORWARD_IMachine_GETTER_State_TO(smth) NS_IMETHOD GetState (PRUint32 * aState) { return smth GetState (aState); }
#define COM_FORWARD_IMachine_GETTER_State_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_State_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_State_TO_BASE(base) COM_FORWARD_IMachine_GETTER_State_TO (base::)
#define COM_FORWARD_IMachine_GETTER_LastStateChange_TO(smth) NS_IMETHOD GetLastStateChange (PRInt64 * aLastStateChange) { return smth GetLastStateChange (aLastStateChange); }
#define COM_FORWARD_IMachine_GETTER_LastStateChange_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_LastStateChange_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_LastStateChange_TO_BASE(base) COM_FORWARD_IMachine_GETTER_LastStateChange_TO (base::)
#define COM_FORWARD_IMachine_GETTER_StateFilePath_TO(smth) NS_IMETHOD GetStateFilePath (PRUnichar * * aStateFilePath) { return smth GetStateFilePath (aStateFilePath); }
#define COM_FORWARD_IMachine_GETTER_StateFilePath_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_StateFilePath_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_StateFilePath_TO_BASE(base) COM_FORWARD_IMachine_GETTER_StateFilePath_TO (base::)
#define COM_FORWARD_IMachine_GETTER_LogFolder_TO(smth) NS_IMETHOD GetLogFolder (PRUnichar * * aLogFolder) { return smth GetLogFolder (aLogFolder); }
#define COM_FORWARD_IMachine_GETTER_LogFolder_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_LogFolder_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_LogFolder_TO_BASE(base) COM_FORWARD_IMachine_GETTER_LogFolder_TO (base::)
#define COM_FORWARD_IMachine_GETTER_CurrentSnapshot_TO(smth) NS_IMETHOD GetCurrentSnapshot (ISnapshot * * aCurrentSnapshot) { return smth GetCurrentSnapshot (aCurrentSnapshot); }
#define COM_FORWARD_IMachine_GETTER_CurrentSnapshot_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_CurrentSnapshot_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_CurrentSnapshot_TO_BASE(base) COM_FORWARD_IMachine_GETTER_CurrentSnapshot_TO (base::)
#define COM_FORWARD_IMachine_GETTER_SnapshotCount_TO(smth) NS_IMETHOD GetSnapshotCount (PRUint32 * aSnapshotCount) { return smth GetSnapshotCount (aSnapshotCount); }
#define COM_FORWARD_IMachine_GETTER_SnapshotCount_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_SnapshotCount_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_SnapshotCount_TO_BASE(base) COM_FORWARD_IMachine_GETTER_SnapshotCount_TO (base::)
#define COM_FORWARD_IMachine_GETTER_CurrentStateModified_TO(smth) NS_IMETHOD GetCurrentStateModified (PRBool * aCurrentStateModified) { return smth GetCurrentStateModified (aCurrentStateModified); }
#define COM_FORWARD_IMachine_GETTER_CurrentStateModified_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_CurrentStateModified_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_CurrentStateModified_TO_BASE(base) COM_FORWARD_IMachine_GETTER_CurrentStateModified_TO (base::)
#define COM_FORWARD_IMachine_GETTER_SharedFolders_TO(smth) NS_IMETHOD GetSharedFolders (PRUint32 * aSharedFoldersSize, ISharedFolder * * * aSharedFolders) { return smth GetSharedFolders (aSharedFoldersSize, aSharedFolders); }
#define COM_FORWARD_IMachine_GETTER_SharedFolders_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_SharedFolders_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_SharedFolders_TO_BASE(base) COM_FORWARD_IMachine_GETTER_SharedFolders_TO (base::)
#define COM_FORWARD_IMachine_GETTER_ClipboardMode_TO(smth) NS_IMETHOD GetClipboardMode (PRUint32 * aClipboardMode) { return smth GetClipboardMode (aClipboardMode); }
#define COM_FORWARD_IMachine_GETTER_ClipboardMode_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_ClipboardMode_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_ClipboardMode_TO_BASE(base) COM_FORWARD_IMachine_GETTER_ClipboardMode_TO (base::)
#define COM_FORWARD_IMachine_SETTER_ClipboardMode_TO(smth) NS_IMETHOD SetClipboardMode (PRUint32 aClipboardMode) { return smth SetClipboardMode (aClipboardMode); }
#define COM_FORWARD_IMachine_SETTER_ClipboardMode_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_ClipboardMode_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_ClipboardMode_TO_BASE(base) COM_FORWARD_IMachine_SETTER_ClipboardMode_TO (base::)
#define COM_FORWARD_IMachine_GETTER_ClipboardFileTransfersEnabled_TO(smth) NS_IMETHOD GetClipboardFileTransfersEnabled (PRBool * aClipboardFileTransfersEnabled) { return smth GetClipboardFileTransfersEnabled (aClipboardFileTransfersEnabled); }
#define COM_FORWARD_IMachine_GETTER_ClipboardFileTransfersEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_ClipboardFileTransfersEnabled_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_ClipboardFileTransfersEnabled_TO_BASE(base) COM_FORWARD_IMachine_GETTER_ClipboardFileTransfersEnabled_TO (base::)
#define COM_FORWARD_IMachine_SETTER_ClipboardFileTransfersEnabled_TO(smth) NS_IMETHOD SetClipboardFileTransfersEnabled (PRBool aClipboardFileTransfersEnabled) { return smth SetClipboardFileTransfersEnabled (aClipboardFileTransfersEnabled); }
#define COM_FORWARD_IMachine_SETTER_ClipboardFileTransfersEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_ClipboardFileTransfersEnabled_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_ClipboardFileTransfersEnabled_TO_BASE(base) COM_FORWARD_IMachine_SETTER_ClipboardFileTransfersEnabled_TO (base::)
#define COM_FORWARD_IMachine_GETTER_DnDMode_TO(smth) NS_IMETHOD GetDnDMode (PRUint32 * aDnDMode) { return smth GetDnDMode (aDnDMode); }
#define COM_FORWARD_IMachine_GETTER_DnDMode_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_DnDMode_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_DnDMode_TO_BASE(base) COM_FORWARD_IMachine_GETTER_DnDMode_TO (base::)
#define COM_FORWARD_IMachine_SETTER_DnDMode_TO(smth) NS_IMETHOD SetDnDMode (PRUint32 aDnDMode) { return smth SetDnDMode (aDnDMode); }
#define COM_FORWARD_IMachine_SETTER_DnDMode_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_DnDMode_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_DnDMode_TO_BASE(base) COM_FORWARD_IMachine_SETTER_DnDMode_TO (base::)
#define COM_FORWARD_IMachine_GETTER_TeleporterEnabled_TO(smth) NS_IMETHOD GetTeleporterEnabled (PRBool * aTeleporterEnabled) { return smth GetTeleporterEnabled (aTeleporterEnabled); }
#define COM_FORWARD_IMachine_GETTER_TeleporterEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_TeleporterEnabled_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_TeleporterEnabled_TO_BASE(base) COM_FORWARD_IMachine_GETTER_TeleporterEnabled_TO (base::)
#define COM_FORWARD_IMachine_SETTER_TeleporterEnabled_TO(smth) NS_IMETHOD SetTeleporterEnabled (PRBool aTeleporterEnabled) { return smth SetTeleporterEnabled (aTeleporterEnabled); }
#define COM_FORWARD_IMachine_SETTER_TeleporterEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_TeleporterEnabled_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_TeleporterEnabled_TO_BASE(base) COM_FORWARD_IMachine_SETTER_TeleporterEnabled_TO (base::)
#define COM_FORWARD_IMachine_GETTER_TeleporterPort_TO(smth) NS_IMETHOD GetTeleporterPort (PRUint32 * aTeleporterPort) { return smth GetTeleporterPort (aTeleporterPort); }
#define COM_FORWARD_IMachine_GETTER_TeleporterPort_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_TeleporterPort_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_TeleporterPort_TO_BASE(base) COM_FORWARD_IMachine_GETTER_TeleporterPort_TO (base::)
#define COM_FORWARD_IMachine_SETTER_TeleporterPort_TO(smth) NS_IMETHOD SetTeleporterPort (PRUint32 aTeleporterPort) { return smth SetTeleporterPort (aTeleporterPort); }
#define COM_FORWARD_IMachine_SETTER_TeleporterPort_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_TeleporterPort_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_TeleporterPort_TO_BASE(base) COM_FORWARD_IMachine_SETTER_TeleporterPort_TO (base::)
#define COM_FORWARD_IMachine_GETTER_TeleporterAddress_TO(smth) NS_IMETHOD GetTeleporterAddress (PRUnichar * * aTeleporterAddress) { return smth GetTeleporterAddress (aTeleporterAddress); }
#define COM_FORWARD_IMachine_GETTER_TeleporterAddress_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_TeleporterAddress_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_TeleporterAddress_TO_BASE(base) COM_FORWARD_IMachine_GETTER_TeleporterAddress_TO (base::)
#define COM_FORWARD_IMachine_SETTER_TeleporterAddress_TO(smth) NS_IMETHOD SetTeleporterAddress (const PRUnichar * aTeleporterAddress) { return smth SetTeleporterAddress (aTeleporterAddress); }
#define COM_FORWARD_IMachine_SETTER_TeleporterAddress_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_TeleporterAddress_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_TeleporterAddress_TO_BASE(base) COM_FORWARD_IMachine_SETTER_TeleporterAddress_TO (base::)
#define COM_FORWARD_IMachine_GETTER_TeleporterPassword_TO(smth) NS_IMETHOD GetTeleporterPassword (PRUnichar * * aTeleporterPassword) { return smth GetTeleporterPassword (aTeleporterPassword); }
#define COM_FORWARD_IMachine_GETTER_TeleporterPassword_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_TeleporterPassword_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_TeleporterPassword_TO_BASE(base) COM_FORWARD_IMachine_GETTER_TeleporterPassword_TO (base::)
#define COM_FORWARD_IMachine_SETTER_TeleporterPassword_TO(smth) NS_IMETHOD SetTeleporterPassword (const PRUnichar * aTeleporterPassword) { return smth SetTeleporterPassword (aTeleporterPassword); }
#define COM_FORWARD_IMachine_SETTER_TeleporterPassword_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_TeleporterPassword_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_TeleporterPassword_TO_BASE(base) COM_FORWARD_IMachine_SETTER_TeleporterPassword_TO (base::)
#define COM_FORWARD_IMachine_GETTER_ParavirtProvider_TO(smth) NS_IMETHOD GetParavirtProvider (PRUint32 * aParavirtProvider) { return smth GetParavirtProvider (aParavirtProvider); }
#define COM_FORWARD_IMachine_GETTER_ParavirtProvider_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_ParavirtProvider_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_ParavirtProvider_TO_BASE(base) COM_FORWARD_IMachine_GETTER_ParavirtProvider_TO (base::)
#define COM_FORWARD_IMachine_SETTER_ParavirtProvider_TO(smth) NS_IMETHOD SetParavirtProvider (PRUint32 aParavirtProvider) { return smth SetParavirtProvider (aParavirtProvider); }
#define COM_FORWARD_IMachine_SETTER_ParavirtProvider_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_ParavirtProvider_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_ParavirtProvider_TO_BASE(base) COM_FORWARD_IMachine_SETTER_ParavirtProvider_TO (base::)
#define COM_FORWARD_IMachine_GETTER_RTCUseUTC_TO(smth) NS_IMETHOD GetRTCUseUTC (PRBool * aRTCUseUTC) { return smth GetRTCUseUTC (aRTCUseUTC); }
#define COM_FORWARD_IMachine_GETTER_RTCUseUTC_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_RTCUseUTC_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_RTCUseUTC_TO_BASE(base) COM_FORWARD_IMachine_GETTER_RTCUseUTC_TO (base::)
#define COM_FORWARD_IMachine_SETTER_RTCUseUTC_TO(smth) NS_IMETHOD SetRTCUseUTC (PRBool aRTCUseUTC) { return smth SetRTCUseUTC (aRTCUseUTC); }
#define COM_FORWARD_IMachine_SETTER_RTCUseUTC_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_RTCUseUTC_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_RTCUseUTC_TO_BASE(base) COM_FORWARD_IMachine_SETTER_RTCUseUTC_TO (base::)
#define COM_FORWARD_IMachine_GETTER_IOCacheEnabled_TO(smth) NS_IMETHOD GetIOCacheEnabled (PRBool * aIOCacheEnabled) { return smth GetIOCacheEnabled (aIOCacheEnabled); }
#define COM_FORWARD_IMachine_GETTER_IOCacheEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_IOCacheEnabled_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_IOCacheEnabled_TO_BASE(base) COM_FORWARD_IMachine_GETTER_IOCacheEnabled_TO (base::)
#define COM_FORWARD_IMachine_SETTER_IOCacheEnabled_TO(smth) NS_IMETHOD SetIOCacheEnabled (PRBool aIOCacheEnabled) { return smth SetIOCacheEnabled (aIOCacheEnabled); }
#define COM_FORWARD_IMachine_SETTER_IOCacheEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_IOCacheEnabled_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_IOCacheEnabled_TO_BASE(base) COM_FORWARD_IMachine_SETTER_IOCacheEnabled_TO (base::)
#define COM_FORWARD_IMachine_GETTER_IOCacheSize_TO(smth) NS_IMETHOD GetIOCacheSize (PRUint32 * aIOCacheSize) { return smth GetIOCacheSize (aIOCacheSize); }
#define COM_FORWARD_IMachine_GETTER_IOCacheSize_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_IOCacheSize_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_IOCacheSize_TO_BASE(base) COM_FORWARD_IMachine_GETTER_IOCacheSize_TO (base::)
#define COM_FORWARD_IMachine_SETTER_IOCacheSize_TO(smth) NS_IMETHOD SetIOCacheSize (PRUint32 aIOCacheSize) { return smth SetIOCacheSize (aIOCacheSize); }
#define COM_FORWARD_IMachine_SETTER_IOCacheSize_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_IOCacheSize_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_IOCacheSize_TO_BASE(base) COM_FORWARD_IMachine_SETTER_IOCacheSize_TO (base::)
#define COM_FORWARD_IMachine_GETTER_PCIDeviceAssignments_TO(smth) NS_IMETHOD GetPCIDeviceAssignments (PRUint32 * aPCIDeviceAssignmentsSize, IPCIDeviceAttachment * * * aPCIDeviceAssignments) { return smth GetPCIDeviceAssignments (aPCIDeviceAssignmentsSize, aPCIDeviceAssignments); }
#define COM_FORWARD_IMachine_GETTER_PCIDeviceAssignments_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_PCIDeviceAssignments_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_PCIDeviceAssignments_TO_BASE(base) COM_FORWARD_IMachine_GETTER_PCIDeviceAssignments_TO (base::)
#define COM_FORWARD_IMachine_GETTER_BandwidthControl_TO(smth) NS_IMETHOD GetBandwidthControl (IBandwidthControl * * aBandwidthControl) { return smth GetBandwidthControl (aBandwidthControl); }
#define COM_FORWARD_IMachine_GETTER_BandwidthControl_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_BandwidthControl_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_BandwidthControl_TO_BASE(base) COM_FORWARD_IMachine_GETTER_BandwidthControl_TO (base::)
#define COM_FORWARD_IMachine_GETTER_TracingEnabled_TO(smth) NS_IMETHOD GetTracingEnabled (PRBool * aTracingEnabled) { return smth GetTracingEnabled (aTracingEnabled); }
#define COM_FORWARD_IMachine_GETTER_TracingEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_TracingEnabled_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_TracingEnabled_TO_BASE(base) COM_FORWARD_IMachine_GETTER_TracingEnabled_TO (base::)
#define COM_FORWARD_IMachine_SETTER_TracingEnabled_TO(smth) NS_IMETHOD SetTracingEnabled (PRBool aTracingEnabled) { return smth SetTracingEnabled (aTracingEnabled); }
#define COM_FORWARD_IMachine_SETTER_TracingEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_TracingEnabled_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_TracingEnabled_TO_BASE(base) COM_FORWARD_IMachine_SETTER_TracingEnabled_TO (base::)
#define COM_FORWARD_IMachine_GETTER_TracingConfig_TO(smth) NS_IMETHOD GetTracingConfig (PRUnichar * * aTracingConfig) { return smth GetTracingConfig (aTracingConfig); }
#define COM_FORWARD_IMachine_GETTER_TracingConfig_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_TracingConfig_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_TracingConfig_TO_BASE(base) COM_FORWARD_IMachine_GETTER_TracingConfig_TO (base::)
#define COM_FORWARD_IMachine_SETTER_TracingConfig_TO(smth) NS_IMETHOD SetTracingConfig (const PRUnichar * aTracingConfig) { return smth SetTracingConfig (aTracingConfig); }
#define COM_FORWARD_IMachine_SETTER_TracingConfig_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_TracingConfig_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_TracingConfig_TO_BASE(base) COM_FORWARD_IMachine_SETTER_TracingConfig_TO (base::)
#define COM_FORWARD_IMachine_GETTER_AllowTracingToAccessVM_TO(smth) NS_IMETHOD GetAllowTracingToAccessVM (PRBool * aAllowTracingToAccessVM) { return smth GetAllowTracingToAccessVM (aAllowTracingToAccessVM); }
#define COM_FORWARD_IMachine_GETTER_AllowTracingToAccessVM_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_AllowTracingToAccessVM_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_AllowTracingToAccessVM_TO_BASE(base) COM_FORWARD_IMachine_GETTER_AllowTracingToAccessVM_TO (base::)
#define COM_FORWARD_IMachine_SETTER_AllowTracingToAccessVM_TO(smth) NS_IMETHOD SetAllowTracingToAccessVM (PRBool aAllowTracingToAccessVM) { return smth SetAllowTracingToAccessVM (aAllowTracingToAccessVM); }
#define COM_FORWARD_IMachine_SETTER_AllowTracingToAccessVM_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_AllowTracingToAccessVM_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_AllowTracingToAccessVM_TO_BASE(base) COM_FORWARD_IMachine_SETTER_AllowTracingToAccessVM_TO (base::)
#define COM_FORWARD_IMachine_GETTER_AutostartEnabled_TO(smth) NS_IMETHOD GetAutostartEnabled (PRBool * aAutostartEnabled) { return smth GetAutostartEnabled (aAutostartEnabled); }
#define COM_FORWARD_IMachine_GETTER_AutostartEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_AutostartEnabled_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_AutostartEnabled_TO_BASE(base) COM_FORWARD_IMachine_GETTER_AutostartEnabled_TO (base::)
#define COM_FORWARD_IMachine_SETTER_AutostartEnabled_TO(smth) NS_IMETHOD SetAutostartEnabled (PRBool aAutostartEnabled) { return smth SetAutostartEnabled (aAutostartEnabled); }
#define COM_FORWARD_IMachine_SETTER_AutostartEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_AutostartEnabled_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_AutostartEnabled_TO_BASE(base) COM_FORWARD_IMachine_SETTER_AutostartEnabled_TO (base::)
#define COM_FORWARD_IMachine_GETTER_AutostartDelay_TO(smth) NS_IMETHOD GetAutostartDelay (PRUint32 * aAutostartDelay) { return smth GetAutostartDelay (aAutostartDelay); }
#define COM_FORWARD_IMachine_GETTER_AutostartDelay_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_AutostartDelay_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_AutostartDelay_TO_BASE(base) COM_FORWARD_IMachine_GETTER_AutostartDelay_TO (base::)
#define COM_FORWARD_IMachine_SETTER_AutostartDelay_TO(smth) NS_IMETHOD SetAutostartDelay (PRUint32 aAutostartDelay) { return smth SetAutostartDelay (aAutostartDelay); }
#define COM_FORWARD_IMachine_SETTER_AutostartDelay_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_AutostartDelay_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_AutostartDelay_TO_BASE(base) COM_FORWARD_IMachine_SETTER_AutostartDelay_TO (base::)
#define COM_FORWARD_IMachine_GETTER_AutostopType_TO(smth) NS_IMETHOD GetAutostopType (PRUint32 * aAutostopType) { return smth GetAutostopType (aAutostopType); }
#define COM_FORWARD_IMachine_GETTER_AutostopType_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_AutostopType_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_AutostopType_TO_BASE(base) COM_FORWARD_IMachine_GETTER_AutostopType_TO (base::)
#define COM_FORWARD_IMachine_SETTER_AutostopType_TO(smth) NS_IMETHOD SetAutostopType (PRUint32 aAutostopType) { return smth SetAutostopType (aAutostopType); }
#define COM_FORWARD_IMachine_SETTER_AutostopType_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_AutostopType_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_AutostopType_TO_BASE(base) COM_FORWARD_IMachine_SETTER_AutostopType_TO (base::)
#define COM_FORWARD_IMachine_GETTER_DefaultFrontend_TO(smth) NS_IMETHOD GetDefaultFrontend (PRUnichar * * aDefaultFrontend) { return smth GetDefaultFrontend (aDefaultFrontend); }
#define COM_FORWARD_IMachine_GETTER_DefaultFrontend_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_DefaultFrontend_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_DefaultFrontend_TO_BASE(base) COM_FORWARD_IMachine_GETTER_DefaultFrontend_TO (base::)
#define COM_FORWARD_IMachine_SETTER_DefaultFrontend_TO(smth) NS_IMETHOD SetDefaultFrontend (const PRUnichar * aDefaultFrontend) { return smth SetDefaultFrontend (aDefaultFrontend); }
#define COM_FORWARD_IMachine_SETTER_DefaultFrontend_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_DefaultFrontend_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_DefaultFrontend_TO_BASE(base) COM_FORWARD_IMachine_SETTER_DefaultFrontend_TO (base::)
#define COM_FORWARD_IMachine_GETTER_USBProxyAvailable_TO(smth) NS_IMETHOD GetUSBProxyAvailable (PRBool * aUSBProxyAvailable) { return smth GetUSBProxyAvailable (aUSBProxyAvailable); }
#define COM_FORWARD_IMachine_GETTER_USBProxyAvailable_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_USBProxyAvailable_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_USBProxyAvailable_TO_BASE(base) COM_FORWARD_IMachine_GETTER_USBProxyAvailable_TO (base::)
#define COM_FORWARD_IMachine_GETTER_VMProcessPriority_TO(smth) NS_IMETHOD GetVMProcessPriority (PRUint32 * aVMProcessPriority) { return smth GetVMProcessPriority (aVMProcessPriority); }
#define COM_FORWARD_IMachine_GETTER_VMProcessPriority_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_VMProcessPriority_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_VMProcessPriority_TO_BASE(base) COM_FORWARD_IMachine_GETTER_VMProcessPriority_TO (base::)
#define COM_FORWARD_IMachine_SETTER_VMProcessPriority_TO(smth) NS_IMETHOD SetVMProcessPriority (PRUint32 aVMProcessPriority) { return smth SetVMProcessPriority (aVMProcessPriority); }
#define COM_FORWARD_IMachine_SETTER_VMProcessPriority_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_VMProcessPriority_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_VMProcessPriority_TO_BASE(base) COM_FORWARD_IMachine_SETTER_VMProcessPriority_TO (base::)
#define COM_FORWARD_IMachine_GETTER_ParavirtDebug_TO(smth) NS_IMETHOD GetParavirtDebug (PRUnichar * * aParavirtDebug) { return smth GetParavirtDebug (aParavirtDebug); }
#define COM_FORWARD_IMachine_GETTER_ParavirtDebug_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_ParavirtDebug_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_ParavirtDebug_TO_BASE(base) COM_FORWARD_IMachine_GETTER_ParavirtDebug_TO (base::)
#define COM_FORWARD_IMachine_SETTER_ParavirtDebug_TO(smth) NS_IMETHOD SetParavirtDebug (const PRUnichar * aParavirtDebug) { return smth SetParavirtDebug (aParavirtDebug); }
#define COM_FORWARD_IMachine_SETTER_ParavirtDebug_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_ParavirtDebug_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_ParavirtDebug_TO_BASE(base) COM_FORWARD_IMachine_SETTER_ParavirtDebug_TO (base::)
#define COM_FORWARD_IMachine_GETTER_CPUProfile_TO(smth) NS_IMETHOD GetCPUProfile (PRUnichar * * aCPUProfile) { return smth GetCPUProfile (aCPUProfile); }
#define COM_FORWARD_IMachine_GETTER_CPUProfile_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_CPUProfile_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_CPUProfile_TO_BASE(base) COM_FORWARD_IMachine_GETTER_CPUProfile_TO (base::)
#define COM_FORWARD_IMachine_SETTER_CPUProfile_TO(smth) NS_IMETHOD SetCPUProfile (const PRUnichar * aCPUProfile) { return smth SetCPUProfile (aCPUProfile); }
#define COM_FORWARD_IMachine_SETTER_CPUProfile_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_CPUProfile_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_CPUProfile_TO_BASE(base) COM_FORWARD_IMachine_SETTER_CPUProfile_TO (base::)
#define COM_FORWARD_IMachine_LockMachine_TO(smth) NS_IMETHOD LockMachine (ISession * aSession, PRUint32 aLockType) { return smth LockMachine (aSession, aLockType); }
#define COM_FORWARD_IMachine_LockMachine_TO_OBJ(obj) COM_FORWARD_IMachine_LockMachine_TO ((obj)->)
#define COM_FORWARD_IMachine_LockMachine_TO_BASE(base) COM_FORWARD_IMachine_LockMachine_TO (base::)
#define COM_FORWARD_IMachine_LaunchVMProcess_TO(smth) NS_IMETHOD LaunchVMProcess (ISession * aSession, PRUnichar * aName, PRUint32 aEnvironmentChangesSize, PRUnichar * * aEnvironmentChanges, IProgress * * aProgress) { return smth LaunchVMProcess (aSession, aName, aEnvironmentChangesSize+++, aEnvironmentChanges, aProgress); }
#define COM_FORWARD_IMachine_LaunchVMProcess_TO_OBJ(obj) COM_FORWARD_IMachine_LaunchVMProcess_TO ((obj)->)
#define COM_FORWARD_IMachine_LaunchVMProcess_TO_BASE(base) COM_FORWARD_IMachine_LaunchVMProcess_TO (base::)
#define COM_FORWARD_IMachine_SetBootOrder_TO(smth) NS_IMETHOD SetBootOrder (PRUint32 aPosition, PRUint32 aDevice) { return smth SetBootOrder (aPosition, aDevice); }
#define COM_FORWARD_IMachine_SetBootOrder_TO_OBJ(obj) COM_FORWARD_IMachine_SetBootOrder_TO ((obj)->)
#define COM_FORWARD_IMachine_SetBootOrder_TO_BASE(base) COM_FORWARD_IMachine_SetBootOrder_TO (base::)
#define COM_FORWARD_IMachine_GetBootOrder_TO(smth) NS_IMETHOD GetBootOrder (PRUint32 aPosition, PRUint32 * aDevice) { return smth GetBootOrder (aPosition, aDevice); }
#define COM_FORWARD_IMachine_GetBootOrder_TO_OBJ(obj) COM_FORWARD_IMachine_GetBootOrder_TO ((obj)->)
#define COM_FORWARD_IMachine_GetBootOrder_TO_BASE(base) COM_FORWARD_IMachine_GetBootOrder_TO (base::)
#define COM_FORWARD_IMachine_AttachDevice_TO(smth) NS_IMETHOD AttachDevice (PRUnichar * aName, PRInt32 aControllerPort, PRInt32 aDevice, PRUint32 aType, IMedium * aMedium) { return smth AttachDevice (aName, aControllerPort, aDevice, aType, aMedium); }
#define COM_FORWARD_IMachine_AttachDevice_TO_OBJ(obj) COM_FORWARD_IMachine_AttachDevice_TO ((obj)->)
#define COM_FORWARD_IMachine_AttachDevice_TO_BASE(base) COM_FORWARD_IMachine_AttachDevice_TO (base::)
#define COM_FORWARD_IMachine_AttachDeviceWithoutMedium_TO(smth) NS_IMETHOD AttachDeviceWithoutMedium (PRUnichar * aName, PRInt32 aControllerPort, PRInt32 aDevice, PRUint32 aType) { return smth AttachDeviceWithoutMedium (aName, aControllerPort, aDevice, aType); }
#define COM_FORWARD_IMachine_AttachDeviceWithoutMedium_TO_OBJ(obj) COM_FORWARD_IMachine_AttachDeviceWithoutMedium_TO ((obj)->)
#define COM_FORWARD_IMachine_AttachDeviceWithoutMedium_TO_BASE(base) COM_FORWARD_IMachine_AttachDeviceWithoutMedium_TO (base::)
#define COM_FORWARD_IMachine_DetachDevice_TO(smth) NS_IMETHOD DetachDevice (PRUnichar * aName, PRInt32 aControllerPort, PRInt32 aDevice) { return smth DetachDevice (aName, aControllerPort, aDevice); }
#define COM_FORWARD_IMachine_DetachDevice_TO_OBJ(obj) COM_FORWARD_IMachine_DetachDevice_TO ((obj)->)
#define COM_FORWARD_IMachine_DetachDevice_TO_BASE(base) COM_FORWARD_IMachine_DetachDevice_TO (base::)
#define COM_FORWARD_IMachine_PassthroughDevice_TO(smth) NS_IMETHOD PassthroughDevice (PRUnichar * aName, PRInt32 aControllerPort, PRInt32 aDevice, PRBool aPassthrough) { return smth PassthroughDevice (aName, aControllerPort, aDevice, aPassthrough); }
#define COM_FORWARD_IMachine_PassthroughDevice_TO_OBJ(obj) COM_FORWARD_IMachine_PassthroughDevice_TO ((obj)->)
#define COM_FORWARD_IMachine_PassthroughDevice_TO_BASE(base) COM_FORWARD_IMachine_PassthroughDevice_TO (base::)
#define COM_FORWARD_IMachine_TemporaryEjectDevice_TO(smth) NS_IMETHOD TemporaryEjectDevice (PRUnichar * aName, PRInt32 aControllerPort, PRInt32 aDevice, PRBool aTemporaryEject) { return smth TemporaryEjectDevice (aName, aControllerPort, aDevice, aTemporaryEject); }
#define COM_FORWARD_IMachine_TemporaryEjectDevice_TO_OBJ(obj) COM_FORWARD_IMachine_TemporaryEjectDevice_TO ((obj)->)
#define COM_FORWARD_IMachine_TemporaryEjectDevice_TO_BASE(base) COM_FORWARD_IMachine_TemporaryEjectDevice_TO (base::)
#define COM_FORWARD_IMachine_NonRotationalDevice_TO(smth) NS_IMETHOD NonRotationalDevice (PRUnichar * aName, PRInt32 aControllerPort, PRInt32 aDevice, PRBool aNonRotational) { return smth NonRotationalDevice (aName, aControllerPort, aDevice, aNonRotational); }
#define COM_FORWARD_IMachine_NonRotationalDevice_TO_OBJ(obj) COM_FORWARD_IMachine_NonRotationalDevice_TO ((obj)->)
#define COM_FORWARD_IMachine_NonRotationalDevice_TO_BASE(base) COM_FORWARD_IMachine_NonRotationalDevice_TO (base::)
#define COM_FORWARD_IMachine_SetAutoDiscardForDevice_TO(smth) NS_IMETHOD SetAutoDiscardForDevice (PRUnichar * aName, PRInt32 aControllerPort, PRInt32 aDevice, PRBool aDiscard) { return smth SetAutoDiscardForDevice (aName, aControllerPort, aDevice, aDiscard); }
#define COM_FORWARD_IMachine_SetAutoDiscardForDevice_TO_OBJ(obj) COM_FORWARD_IMachine_SetAutoDiscardForDevice_TO ((obj)->)
#define COM_FORWARD_IMachine_SetAutoDiscardForDevice_TO_BASE(base) COM_FORWARD_IMachine_SetAutoDiscardForDevice_TO (base::)
#define COM_FORWARD_IMachine_SetHotPluggableForDevice_TO(smth) NS_IMETHOD SetHotPluggableForDevice (PRUnichar * aName, PRInt32 aControllerPort, PRInt32 aDevice, PRBool aHotPluggable) { return smth SetHotPluggableForDevice (aName, aControllerPort, aDevice, aHotPluggable); }
#define COM_FORWARD_IMachine_SetHotPluggableForDevice_TO_OBJ(obj) COM_FORWARD_IMachine_SetHotPluggableForDevice_TO ((obj)->)
#define COM_FORWARD_IMachine_SetHotPluggableForDevice_TO_BASE(base) COM_FORWARD_IMachine_SetHotPluggableForDevice_TO (base::)
#define COM_FORWARD_IMachine_SetBandwidthGroupForDevice_TO(smth) NS_IMETHOD SetBandwidthGroupForDevice (PRUnichar * aName, PRInt32 aControllerPort, PRInt32 aDevice, IBandwidthGroup * aBandwidthGroup) { return smth SetBandwidthGroupForDevice (aName, aControllerPort, aDevice, aBandwidthGroup); }
#define COM_FORWARD_IMachine_SetBandwidthGroupForDevice_TO_OBJ(obj) COM_FORWARD_IMachine_SetBandwidthGroupForDevice_TO ((obj)->)
#define COM_FORWARD_IMachine_SetBandwidthGroupForDevice_TO_BASE(base) COM_FORWARD_IMachine_SetBandwidthGroupForDevice_TO (base::)
#define COM_FORWARD_IMachine_SetNoBandwidthGroupForDevice_TO(smth) NS_IMETHOD SetNoBandwidthGroupForDevice (PRUnichar * aName, PRInt32 aControllerPort, PRInt32 aDevice) { return smth SetNoBandwidthGroupForDevice (aName, aControllerPort, aDevice); }
#define COM_FORWARD_IMachine_SetNoBandwidthGroupForDevice_TO_OBJ(obj) COM_FORWARD_IMachine_SetNoBandwidthGroupForDevice_TO ((obj)->)
#define COM_FORWARD_IMachine_SetNoBandwidthGroupForDevice_TO_BASE(base) COM_FORWARD_IMachine_SetNoBandwidthGroupForDevice_TO (base::)
#define COM_FORWARD_IMachine_UnmountMedium_TO(smth) NS_IMETHOD UnmountMedium (PRUnichar * aName, PRInt32 aControllerPort, PRInt32 aDevice, PRBool aForce) { return smth UnmountMedium (aName, aControllerPort, aDevice, aForce); }
#define COM_FORWARD_IMachine_UnmountMedium_TO_OBJ(obj) COM_FORWARD_IMachine_UnmountMedium_TO ((obj)->)
#define COM_FORWARD_IMachine_UnmountMedium_TO_BASE(base) COM_FORWARD_IMachine_UnmountMedium_TO (base::)
#define COM_FORWARD_IMachine_MountMedium_TO(smth) NS_IMETHOD MountMedium (PRUnichar * aName, PRInt32 aControllerPort, PRInt32 aDevice, IMedium * aMedium, PRBool aForce) { return smth MountMedium (aName, aControllerPort, aDevice, aMedium, aForce); }
#define COM_FORWARD_IMachine_MountMedium_TO_OBJ(obj) COM_FORWARD_IMachine_MountMedium_TO ((obj)->)
#define COM_FORWARD_IMachine_MountMedium_TO_BASE(base) COM_FORWARD_IMachine_MountMedium_TO (base::)
#define COM_FORWARD_IMachine_GetMedium_TO(smth) NS_IMETHOD GetMedium (PRUnichar * aName, PRInt32 aControllerPort, PRInt32 aDevice, IMedium * * aMedium) { return smth GetMedium (aName, aControllerPort, aDevice, aMedium); }
#define COM_FORWARD_IMachine_GetMedium_TO_OBJ(obj) COM_FORWARD_IMachine_GetMedium_TO ((obj)->)
#define COM_FORWARD_IMachine_GetMedium_TO_BASE(base) COM_FORWARD_IMachine_GetMedium_TO (base::)
#define COM_FORWARD_IMachine_GetMediumAttachmentsOfController_TO(smth) NS_IMETHOD GetMediumAttachmentsOfController (PRUnichar * aName, PRUint32 * aMediumAttachmentsSize, IMediumAttachment * * * aMediumAttachments) { return smth GetMediumAttachmentsOfController (aName, aMediumAttachmentsSize, aMediumAttachments); }
#define COM_FORWARD_IMachine_GetMediumAttachmentsOfController_TO_OBJ(obj) COM_FORWARD_IMachine_GetMediumAttachmentsOfController_TO ((obj)->)
#define COM_FORWARD_IMachine_GetMediumAttachmentsOfController_TO_BASE(base) COM_FORWARD_IMachine_GetMediumAttachmentsOfController_TO (base::)
#define COM_FORWARD_IMachine_GetMediumAttachment_TO(smth) NS_IMETHOD GetMediumAttachment (PRUnichar * aName, PRInt32 aControllerPort, PRInt32 aDevice, IMediumAttachment * * aAttachment) { return smth GetMediumAttachment (aName, aControllerPort, aDevice, aAttachment); }
#define COM_FORWARD_IMachine_GetMediumAttachment_TO_OBJ(obj) COM_FORWARD_IMachine_GetMediumAttachment_TO ((obj)->)
#define COM_FORWARD_IMachine_GetMediumAttachment_TO_BASE(base) COM_FORWARD_IMachine_GetMediumAttachment_TO (base::)
#define COM_FORWARD_IMachine_AttachHostPCIDevice_TO(smth) NS_IMETHOD AttachHostPCIDevice (PRInt32 aHostAddress, PRInt32 aDesiredGuestAddress, PRBool aTryToUnbind) { return smth AttachHostPCIDevice (aHostAddress, aDesiredGuestAddress, aTryToUnbind); }
#define COM_FORWARD_IMachine_AttachHostPCIDevice_TO_OBJ(obj) COM_FORWARD_IMachine_AttachHostPCIDevice_TO ((obj)->)
#define COM_FORWARD_IMachine_AttachHostPCIDevice_TO_BASE(base) COM_FORWARD_IMachine_AttachHostPCIDevice_TO (base::)
#define COM_FORWARD_IMachine_DetachHostPCIDevice_TO(smth) NS_IMETHOD DetachHostPCIDevice (PRInt32 aHostAddress) { return smth DetachHostPCIDevice (aHostAddress); }
#define COM_FORWARD_IMachine_DetachHostPCIDevice_TO_OBJ(obj) COM_FORWARD_IMachine_DetachHostPCIDevice_TO ((obj)->)
#define COM_FORWARD_IMachine_DetachHostPCIDevice_TO_BASE(base) COM_FORWARD_IMachine_DetachHostPCIDevice_TO (base::)
#define COM_FORWARD_IMachine_GetNetworkAdapter_TO(smth) NS_IMETHOD GetNetworkAdapter (PRUint32 aSlot, INetworkAdapter * * aAdapter) { return smth GetNetworkAdapter (aSlot, aAdapter); }
#define COM_FORWARD_IMachine_GetNetworkAdapter_TO_OBJ(obj) COM_FORWARD_IMachine_GetNetworkAdapter_TO ((obj)->)
#define COM_FORWARD_IMachine_GetNetworkAdapter_TO_BASE(base) COM_FORWARD_IMachine_GetNetworkAdapter_TO (base::)
#define COM_FORWARD_IMachine_AddStorageController_TO(smth) NS_IMETHOD AddStorageController (PRUnichar * aName, PRUint32 aConnectionType, IStorageController * * aController) { return smth AddStorageController (aName, aConnectionType, aController); }
#define COM_FORWARD_IMachine_AddStorageController_TO_OBJ(obj) COM_FORWARD_IMachine_AddStorageController_TO ((obj)->)
#define COM_FORWARD_IMachine_AddStorageController_TO_BASE(base) COM_FORWARD_IMachine_AddStorageController_TO (base::)
#define COM_FORWARD_IMachine_GetStorageControllerByName_TO(smth) NS_IMETHOD GetStorageControllerByName (PRUnichar * aName, IStorageController * * aStorageController) { return smth GetStorageControllerByName (aName, aStorageController); }
#define COM_FORWARD_IMachine_GetStorageControllerByName_TO_OBJ(obj) COM_FORWARD_IMachine_GetStorageControllerByName_TO ((obj)->)
#define COM_FORWARD_IMachine_GetStorageControllerByName_TO_BASE(base) COM_FORWARD_IMachine_GetStorageControllerByName_TO (base::)
#define COM_FORWARD_IMachine_GetStorageControllerByInstance_TO(smth) NS_IMETHOD GetStorageControllerByInstance (PRUint32 aConnectionType, PRUint32 aInstance, IStorageController * * aStorageController) { return smth GetStorageControllerByInstance (aConnectionType, aInstance, aStorageController); }
#define COM_FORWARD_IMachine_GetStorageControllerByInstance_TO_OBJ(obj) COM_FORWARD_IMachine_GetStorageControllerByInstance_TO ((obj)->)
#define COM_FORWARD_IMachine_GetStorageControllerByInstance_TO_BASE(base) COM_FORWARD_IMachine_GetStorageControllerByInstance_TO (base::)
#define COM_FORWARD_IMachine_RemoveStorageController_TO(smth) NS_IMETHOD RemoveStorageController (PRUnichar * aName) { return smth RemoveStorageController (aName); }
#define COM_FORWARD_IMachine_RemoveStorageController_TO_OBJ(obj) COM_FORWARD_IMachine_RemoveStorageController_TO ((obj)->)
#define COM_FORWARD_IMachine_RemoveStorageController_TO_BASE(base) COM_FORWARD_IMachine_RemoveStorageController_TO (base::)
#define COM_FORWARD_IMachine_SetStorageControllerBootable_TO(smth) NS_IMETHOD SetStorageControllerBootable (PRUnichar * aName, PRBool aBootable) { return smth SetStorageControllerBootable (aName, aBootable); }
#define COM_FORWARD_IMachine_SetStorageControllerBootable_TO_OBJ(obj) COM_FORWARD_IMachine_SetStorageControllerBootable_TO ((obj)->)
#define COM_FORWARD_IMachine_SetStorageControllerBootable_TO_BASE(base) COM_FORWARD_IMachine_SetStorageControllerBootable_TO (base::)
#define COM_FORWARD_IMachine_AddUSBController_TO(smth) NS_IMETHOD AddUSBController (PRUnichar * aName, PRUint32 aType, IUSBController * * aController) { return smth AddUSBController (aName, aType, aController); }
#define COM_FORWARD_IMachine_AddUSBController_TO_OBJ(obj) COM_FORWARD_IMachine_AddUSBController_TO ((obj)->)
#define COM_FORWARD_IMachine_AddUSBController_TO_BASE(base) COM_FORWARD_IMachine_AddUSBController_TO (base::)
#define COM_FORWARD_IMachine_RemoveUSBController_TO(smth) NS_IMETHOD RemoveUSBController (PRUnichar * aName) { return smth RemoveUSBController (aName); }
#define COM_FORWARD_IMachine_RemoveUSBController_TO_OBJ(obj) COM_FORWARD_IMachine_RemoveUSBController_TO ((obj)->)
#define COM_FORWARD_IMachine_RemoveUSBController_TO_BASE(base) COM_FORWARD_IMachine_RemoveUSBController_TO (base::)
#define COM_FORWARD_IMachine_GetUSBControllerByName_TO(smth) NS_IMETHOD GetUSBControllerByName (PRUnichar * aName, IUSBController * * aController) { return smth GetUSBControllerByName (aName, aController); }
#define COM_FORWARD_IMachine_GetUSBControllerByName_TO_OBJ(obj) COM_FORWARD_IMachine_GetUSBControllerByName_TO ((obj)->)
#define COM_FORWARD_IMachine_GetUSBControllerByName_TO_BASE(base) COM_FORWARD_IMachine_GetUSBControllerByName_TO (base::)
#define COM_FORWARD_IMachine_GetUSBControllerCountByType_TO(smth) NS_IMETHOD GetUSBControllerCountByType (PRUint32 aType, PRUint32 * aControllers) { return smth GetUSBControllerCountByType (aType, aControllers); }
#define COM_FORWARD_IMachine_GetUSBControllerCountByType_TO_OBJ(obj) COM_FORWARD_IMachine_GetUSBControllerCountByType_TO ((obj)->)
#define COM_FORWARD_IMachine_GetUSBControllerCountByType_TO_BASE(base) COM_FORWARD_IMachine_GetUSBControllerCountByType_TO (base::)
#define COM_FORWARD_IMachine_GetSerialPort_TO(smth) NS_IMETHOD GetSerialPort (PRUint32 aSlot, ISerialPort * * aPort) { return smth GetSerialPort (aSlot, aPort); }
#define COM_FORWARD_IMachine_GetSerialPort_TO_OBJ(obj) COM_FORWARD_IMachine_GetSerialPort_TO ((obj)->)
#define COM_FORWARD_IMachine_GetSerialPort_TO_BASE(base) COM_FORWARD_IMachine_GetSerialPort_TO (base::)
#define COM_FORWARD_IMachine_GetParallelPort_TO(smth) NS_IMETHOD GetParallelPort (PRUint32 aSlot, IParallelPort * * aPort) { return smth GetParallelPort (aSlot, aPort); }
#define COM_FORWARD_IMachine_GetParallelPort_TO_OBJ(obj) COM_FORWARD_IMachine_GetParallelPort_TO ((obj)->)
#define COM_FORWARD_IMachine_GetParallelPort_TO_BASE(base) COM_FORWARD_IMachine_GetParallelPort_TO (base::)
#define COM_FORWARD_IMachine_GetExtraDataKeys_TO(smth) NS_IMETHOD GetExtraDataKeys (PRUint32 * aKeysSize, PRUnichar * * * aKeys) { return smth GetExtraDataKeys (aKeysSize, aKeys); }
#define COM_FORWARD_IMachine_GetExtraDataKeys_TO_OBJ(obj) COM_FORWARD_IMachine_GetExtraDataKeys_TO ((obj)->)
#define COM_FORWARD_IMachine_GetExtraDataKeys_TO_BASE(base) COM_FORWARD_IMachine_GetExtraDataKeys_TO (base::)
#define COM_FORWARD_IMachine_GetExtraData_TO(smth) NS_IMETHOD GetExtraData (PRUnichar * aKey, PRUnichar * * aValue) { return smth GetExtraData (aKey, aValue); }
#define COM_FORWARD_IMachine_GetExtraData_TO_OBJ(obj) COM_FORWARD_IMachine_GetExtraData_TO ((obj)->)
#define COM_FORWARD_IMachine_GetExtraData_TO_BASE(base) COM_FORWARD_IMachine_GetExtraData_TO (base::)
#define COM_FORWARD_IMachine_SetExtraData_TO(smth) NS_IMETHOD SetExtraData (PRUnichar * aKey, PRUnichar * aValue) { return smth SetExtraData (aKey, aValue); }
#define COM_FORWARD_IMachine_SetExtraData_TO_OBJ(obj) COM_FORWARD_IMachine_SetExtraData_TO ((obj)->)
#define COM_FORWARD_IMachine_SetExtraData_TO_BASE(base) COM_FORWARD_IMachine_SetExtraData_TO (base::)
#define COM_FORWARD_IMachine_GetCPUProperty_TO(smth) NS_IMETHOD GetCPUProperty (PRUint32 aProperty, PRBool * aValue) { return smth GetCPUProperty (aProperty, aValue); }
#define COM_FORWARD_IMachine_GetCPUProperty_TO_OBJ(obj) COM_FORWARD_IMachine_GetCPUProperty_TO ((obj)->)
#define COM_FORWARD_IMachine_GetCPUProperty_TO_BASE(base) COM_FORWARD_IMachine_GetCPUProperty_TO (base::)
#define COM_FORWARD_IMachine_SetCPUProperty_TO(smth) NS_IMETHOD SetCPUProperty (PRUint32 aProperty, PRBool aValue) { return smth SetCPUProperty (aProperty, aValue); }
#define COM_FORWARD_IMachine_SetCPUProperty_TO_OBJ(obj) COM_FORWARD_IMachine_SetCPUProperty_TO ((obj)->)
#define COM_FORWARD_IMachine_SetCPUProperty_TO_BASE(base) COM_FORWARD_IMachine_SetCPUProperty_TO (base::)
#define COM_FORWARD_IMachine_GetCPUIDLeafByOrdinal_TO(smth) NS_IMETHOD GetCPUIDLeafByOrdinal (PRUint32 aOrdinal, PRUint32 * aIdx, PRUint32 * aIdxSub, PRUint32 * aValEax, PRUint32 * aValEbx, PRUint32 * aValEcx, PRUint32 * aValEdx) { return smth GetCPUIDLeafByOrdinal (aOrdinal, aIdx, aIdxSub, aValEax, aValEbx, aValEcx, aValEdx); }
#define COM_FORWARD_IMachine_GetCPUIDLeafByOrdinal_TO_OBJ(obj) COM_FORWARD_IMachine_GetCPUIDLeafByOrdinal_TO ((obj)->)
#define COM_FORWARD_IMachine_GetCPUIDLeafByOrdinal_TO_BASE(base) COM_FORWARD_IMachine_GetCPUIDLeafByOrdinal_TO (base::)
#define COM_FORWARD_IMachine_GetCPUIDLeaf_TO(smth) NS_IMETHOD GetCPUIDLeaf (PRUint32 aIdx, PRUint32 aIdxSub, PRUint32 * aValEax, PRUint32 * aValEbx, PRUint32 * aValEcx, PRUint32 * aValEdx) { return smth GetCPUIDLeaf (aIdx, aIdxSub, aValEax, aValEbx, aValEcx, aValEdx); }
#define COM_FORWARD_IMachine_GetCPUIDLeaf_TO_OBJ(obj) COM_FORWARD_IMachine_GetCPUIDLeaf_TO ((obj)->)
#define COM_FORWARD_IMachine_GetCPUIDLeaf_TO_BASE(base) COM_FORWARD_IMachine_GetCPUIDLeaf_TO (base::)
#define COM_FORWARD_IMachine_SetCPUIDLeaf_TO(smth) NS_IMETHOD SetCPUIDLeaf (PRUint32 aIdx, PRUint32 aIdxSub, PRUint32 aValEax, PRUint32 aValEbx, PRUint32 aValEcx, PRUint32 aValEdx) { return smth SetCPUIDLeaf (aIdx, aIdxSub, aValEax, aValEbx, aValEcx, aValEdx); }
#define COM_FORWARD_IMachine_SetCPUIDLeaf_TO_OBJ(obj) COM_FORWARD_IMachine_SetCPUIDLeaf_TO ((obj)->)
#define COM_FORWARD_IMachine_SetCPUIDLeaf_TO_BASE(base) COM_FORWARD_IMachine_SetCPUIDLeaf_TO (base::)
#define COM_FORWARD_IMachine_RemoveCPUIDLeaf_TO(smth) NS_IMETHOD RemoveCPUIDLeaf (PRUint32 aIdx, PRUint32 aIdxSub) { return smth RemoveCPUIDLeaf (aIdx, aIdxSub); }
#define COM_FORWARD_IMachine_RemoveCPUIDLeaf_TO_OBJ(obj) COM_FORWARD_IMachine_RemoveCPUIDLeaf_TO ((obj)->)
#define COM_FORWARD_IMachine_RemoveCPUIDLeaf_TO_BASE(base) COM_FORWARD_IMachine_RemoveCPUIDLeaf_TO (base::)
#define COM_FORWARD_IMachine_RemoveAllCPUIDLeaves_TO(smth) NS_IMETHOD RemoveAllCPUIDLeaves() { return smth RemoveAllCPUIDLeaves(); }
#define COM_FORWARD_IMachine_RemoveAllCPUIDLeaves_TO_OBJ(obj) COM_FORWARD_IMachine_RemoveAllCPUIDLeaves_TO ((obj)->)
#define COM_FORWARD_IMachine_RemoveAllCPUIDLeaves_TO_BASE(base) COM_FORWARD_IMachine_RemoveAllCPUIDLeaves_TO (base::)
#define COM_FORWARD_IMachine_GetHWVirtExProperty_TO(smth) NS_IMETHOD GetHWVirtExProperty (PRUint32 aProperty, PRBool * aValue) { return smth GetHWVirtExProperty (aProperty, aValue); }
#define COM_FORWARD_IMachine_GetHWVirtExProperty_TO_OBJ(obj) COM_FORWARD_IMachine_GetHWVirtExProperty_TO ((obj)->)
#define COM_FORWARD_IMachine_GetHWVirtExProperty_TO_BASE(base) COM_FORWARD_IMachine_GetHWVirtExProperty_TO (base::)
#define COM_FORWARD_IMachine_SetHWVirtExProperty_TO(smth) NS_IMETHOD SetHWVirtExProperty (PRUint32 aProperty, PRBool aValue) { return smth SetHWVirtExProperty (aProperty, aValue); }
#define COM_FORWARD_IMachine_SetHWVirtExProperty_TO_OBJ(obj) COM_FORWARD_IMachine_SetHWVirtExProperty_TO ((obj)->)
#define COM_FORWARD_IMachine_SetHWVirtExProperty_TO_BASE(base) COM_FORWARD_IMachine_SetHWVirtExProperty_TO (base::)
#define COM_FORWARD_IMachine_SetSettingsFilePath_TO(smth) NS_IMETHOD SetSettingsFilePath (PRUnichar * aSettingsFilePath, IProgress * * aProgress) { return smth SetSettingsFilePath (aSettingsFilePath, aProgress); }
#define COM_FORWARD_IMachine_SetSettingsFilePath_TO_OBJ(obj) COM_FORWARD_IMachine_SetSettingsFilePath_TO ((obj)->)
#define COM_FORWARD_IMachine_SetSettingsFilePath_TO_BASE(base) COM_FORWARD_IMachine_SetSettingsFilePath_TO (base::)
#define COM_FORWARD_IMachine_SaveSettings_TO(smth) NS_IMETHOD SaveSettings() { return smth SaveSettings(); }
#define COM_FORWARD_IMachine_SaveSettings_TO_OBJ(obj) COM_FORWARD_IMachine_SaveSettings_TO ((obj)->)
#define COM_FORWARD_IMachine_SaveSettings_TO_BASE(base) COM_FORWARD_IMachine_SaveSettings_TO (base::)
#define COM_FORWARD_IMachine_DiscardSettings_TO(smth) NS_IMETHOD DiscardSettings() { return smth DiscardSettings(); }
#define COM_FORWARD_IMachine_DiscardSettings_TO_OBJ(obj) COM_FORWARD_IMachine_DiscardSettings_TO ((obj)->)
#define COM_FORWARD_IMachine_DiscardSettings_TO_BASE(base) COM_FORWARD_IMachine_DiscardSettings_TO (base::)
#define COM_FORWARD_IMachine_Unregister_TO(smth) NS_IMETHOD Unregister (PRUint32 aCleanupMode, PRUint32 * aMediaSize, IMedium * * * aMedia) { return smth Unregister (aCleanupMode, aMediaSize, aMedia); }
#define COM_FORWARD_IMachine_Unregister_TO_OBJ(obj) COM_FORWARD_IMachine_Unregister_TO ((obj)->)
#define COM_FORWARD_IMachine_Unregister_TO_BASE(base) COM_FORWARD_IMachine_Unregister_TO (base::)
#define COM_FORWARD_IMachine_DeleteConfig_TO(smth) NS_IMETHOD DeleteConfig (PRUint32 aMediaSize, IMedium * * aMedia, IProgress * * aProgress) { return smth DeleteConfig (aMediaSize+++, aMedia, aProgress); }
#define COM_FORWARD_IMachine_DeleteConfig_TO_OBJ(obj) COM_FORWARD_IMachine_DeleteConfig_TO ((obj)->)
#define COM_FORWARD_IMachine_DeleteConfig_TO_BASE(base) COM_FORWARD_IMachine_DeleteConfig_TO (base::)
#define COM_FORWARD_IMachine_ExportTo_TO(smth) NS_IMETHOD ExportTo (IAppliance * aAppliance, PRUnichar * aLocation, IVirtualSystemDescription * * aDescription) { return smth ExportTo (aAppliance, aLocation, aDescription); }
#define COM_FORWARD_IMachine_ExportTo_TO_OBJ(obj) COM_FORWARD_IMachine_ExportTo_TO ((obj)->)
#define COM_FORWARD_IMachine_ExportTo_TO_BASE(base) COM_FORWARD_IMachine_ExportTo_TO (base::)
#define COM_FORWARD_IMachine_FindSnapshot_TO(smth) NS_IMETHOD FindSnapshot (PRUnichar * aNameOrId, ISnapshot * * aSnapshot) { return smth FindSnapshot (aNameOrId, aSnapshot); }
#define COM_FORWARD_IMachine_FindSnapshot_TO_OBJ(obj) COM_FORWARD_IMachine_FindSnapshot_TO ((obj)->)
#define COM_FORWARD_IMachine_FindSnapshot_TO_BASE(base) COM_FORWARD_IMachine_FindSnapshot_TO (base::)
#define COM_FORWARD_IMachine_CreateSharedFolder_TO(smth) NS_IMETHOD CreateSharedFolder (PRUnichar * aName, PRUnichar * aHostPath, PRBool aWritable, PRBool aAutomount, PRUnichar * aAutoMountPoint) { return smth CreateSharedFolder (aName, aHostPath, aWritable, aAutomount, aAutoMountPoint); }
#define COM_FORWARD_IMachine_CreateSharedFolder_TO_OBJ(obj) COM_FORWARD_IMachine_CreateSharedFolder_TO ((obj)->)
#define COM_FORWARD_IMachine_CreateSharedFolder_TO_BASE(base) COM_FORWARD_IMachine_CreateSharedFolder_TO (base::)
#define COM_FORWARD_IMachine_RemoveSharedFolder_TO(smth) NS_IMETHOD RemoveSharedFolder (PRUnichar * aName) { return smth RemoveSharedFolder (aName); }
#define COM_FORWARD_IMachine_RemoveSharedFolder_TO_OBJ(obj) COM_FORWARD_IMachine_RemoveSharedFolder_TO ((obj)->)
#define COM_FORWARD_IMachine_RemoveSharedFolder_TO_BASE(base) COM_FORWARD_IMachine_RemoveSharedFolder_TO (base::)
#define COM_FORWARD_IMachine_CanShowConsoleWindow_TO(smth) NS_IMETHOD CanShowConsoleWindow (PRBool * aCanShow) { return smth CanShowConsoleWindow (aCanShow); }
#define COM_FORWARD_IMachine_CanShowConsoleWindow_TO_OBJ(obj) COM_FORWARD_IMachine_CanShowConsoleWindow_TO ((obj)->)
#define COM_FORWARD_IMachine_CanShowConsoleWindow_TO_BASE(base) COM_FORWARD_IMachine_CanShowConsoleWindow_TO (base::)
#define COM_FORWARD_IMachine_ShowConsoleWindow_TO(smth) NS_IMETHOD ShowConsoleWindow (PRInt64 * aWinId) { return smth ShowConsoleWindow (aWinId); }
#define COM_FORWARD_IMachine_ShowConsoleWindow_TO_OBJ(obj) COM_FORWARD_IMachine_ShowConsoleWindow_TO ((obj)->)
#define COM_FORWARD_IMachine_ShowConsoleWindow_TO_BASE(base) COM_FORWARD_IMachine_ShowConsoleWindow_TO (base::)
#define COM_FORWARD_IMachine_GetGuestProperty_TO(smth) NS_IMETHOD GetGuestProperty (PRUnichar * aName, PRUnichar * * aValue, PRInt64 * aTimestamp, PRUnichar * * aFlags) { return smth GetGuestProperty (aName, aValue, aTimestamp, aFlags); }
#define COM_FORWARD_IMachine_GetGuestProperty_TO_OBJ(obj) COM_FORWARD_IMachine_GetGuestProperty_TO ((obj)->)
#define COM_FORWARD_IMachine_GetGuestProperty_TO_BASE(base) COM_FORWARD_IMachine_GetGuestProperty_TO (base::)
#define COM_FORWARD_IMachine_GetGuestPropertyValue_TO(smth) NS_IMETHOD GetGuestPropertyValue (PRUnichar * aProperty, PRUnichar * * aValue) { return smth GetGuestPropertyValue (aProperty, aValue); }
#define COM_FORWARD_IMachine_GetGuestPropertyValue_TO_OBJ(obj) COM_FORWARD_IMachine_GetGuestPropertyValue_TO ((obj)->)
#define COM_FORWARD_IMachine_GetGuestPropertyValue_TO_BASE(base) COM_FORWARD_IMachine_GetGuestPropertyValue_TO (base::)
#define COM_FORWARD_IMachine_GetGuestPropertyTimestamp_TO(smth) NS_IMETHOD GetGuestPropertyTimestamp (PRUnichar * aProperty, PRInt64 * aValue) { return smth GetGuestPropertyTimestamp (aProperty, aValue); }
#define COM_FORWARD_IMachine_GetGuestPropertyTimestamp_TO_OBJ(obj) COM_FORWARD_IMachine_GetGuestPropertyTimestamp_TO ((obj)->)
#define COM_FORWARD_IMachine_GetGuestPropertyTimestamp_TO_BASE(base) COM_FORWARD_IMachine_GetGuestPropertyTimestamp_TO (base::)
#define COM_FORWARD_IMachine_SetGuestProperty_TO(smth) NS_IMETHOD SetGuestProperty (PRUnichar * aProperty, PRUnichar * aValue, PRUnichar * aFlags) { return smth SetGuestProperty (aProperty, aValue, aFlags); }
#define COM_FORWARD_IMachine_SetGuestProperty_TO_OBJ(obj) COM_FORWARD_IMachine_SetGuestProperty_TO ((obj)->)
#define COM_FORWARD_IMachine_SetGuestProperty_TO_BASE(base) COM_FORWARD_IMachine_SetGuestProperty_TO (base::)
#define COM_FORWARD_IMachine_SetGuestPropertyValue_TO(smth) NS_IMETHOD SetGuestPropertyValue (PRUnichar * aProperty, PRUnichar * aValue) { return smth SetGuestPropertyValue (aProperty, aValue); }
#define COM_FORWARD_IMachine_SetGuestPropertyValue_TO_OBJ(obj) COM_FORWARD_IMachine_SetGuestPropertyValue_TO ((obj)->)
#define COM_FORWARD_IMachine_SetGuestPropertyValue_TO_BASE(base) COM_FORWARD_IMachine_SetGuestPropertyValue_TO (base::)
#define COM_FORWARD_IMachine_DeleteGuestProperty_TO(smth) NS_IMETHOD DeleteGuestProperty (PRUnichar * aName) { return smth DeleteGuestProperty (aName); }
#define COM_FORWARD_IMachine_DeleteGuestProperty_TO_OBJ(obj) COM_FORWARD_IMachine_DeleteGuestProperty_TO ((obj)->)
#define COM_FORWARD_IMachine_DeleteGuestProperty_TO_BASE(base) COM_FORWARD_IMachine_DeleteGuestProperty_TO (base::)
#define COM_FORWARD_IMachine_EnumerateGuestProperties_TO(smth) NS_IMETHOD EnumerateGuestProperties (PRUnichar * aPatterns, PRUint32 * aNamesSize, PRUnichar * * * aNames, PRUint32 * aValuesSize, PRUnichar * * * aValues, PRUint32 * aTimestampsSize, PRInt64 * * aTimestamps, PRUint32 * aFlagsSize, PRUnichar * * * aFlags) { return smth EnumerateGuestProperties (aPatterns, aNamesSize+++, aNames, aValuesSize+++, aValues, aTimestampsSize+++, aTimestamps, aFlagsSize, aFlags); }
#define COM_FORWARD_IMachine_EnumerateGuestProperties_TO_OBJ(obj) COM_FORWARD_IMachine_EnumerateGuestProperties_TO ((obj)->)
#define COM_FORWARD_IMachine_EnumerateGuestProperties_TO_BASE(base) COM_FORWARD_IMachine_EnumerateGuestProperties_TO (base::)
#define COM_FORWARD_IMachine_QuerySavedGuestScreenInfo_TO(smth) NS_IMETHOD QuerySavedGuestScreenInfo (PRUint32 aScreenId, PRUint32 * aOriginX, PRUint32 * aOriginY, PRUint32 * aWidth, PRUint32 * aHeight, PRBool * aEnabled) { return smth QuerySavedGuestScreenInfo (aScreenId, aOriginX, aOriginY, aWidth, aHeight, aEnabled); }
#define COM_FORWARD_IMachine_QuerySavedGuestScreenInfo_TO_OBJ(obj) COM_FORWARD_IMachine_QuerySavedGuestScreenInfo_TO ((obj)->)
#define COM_FORWARD_IMachine_QuerySavedGuestScreenInfo_TO_BASE(base) COM_FORWARD_IMachine_QuerySavedGuestScreenInfo_TO (base::)
#define COM_FORWARD_IMachine_ReadSavedThumbnailToArray_TO(smth) NS_IMETHOD ReadSavedThumbnailToArray (PRUint32 aScreenId, PRUint32 aBitmapFormat, PRUint32 * aWidth, PRUint32 * aHeight, PRUint32 * aDataSize, PRUint8 * * aData) { return smth ReadSavedThumbnailToArray (aScreenId, aBitmapFormat, aWidth, aHeight, aDataSize, aData); }
#define COM_FORWARD_IMachine_ReadSavedThumbnailToArray_TO_OBJ(obj) COM_FORWARD_IMachine_ReadSavedThumbnailToArray_TO ((obj)->)
#define COM_FORWARD_IMachine_ReadSavedThumbnailToArray_TO_BASE(base) COM_FORWARD_IMachine_ReadSavedThumbnailToArray_TO (base::)
#define COM_FORWARD_IMachine_QuerySavedScreenshotInfo_TO(smth) NS_IMETHOD QuerySavedScreenshotInfo (PRUint32 aScreenId, PRUint32 * aWidth, PRUint32 * aHeight, PRUint32 * aBitmapFormatsSize, PRUint32 * * aBitmapFormats) { return smth QuerySavedScreenshotInfo (aScreenId, aWidth, aHeight, aBitmapFormatsSize, aBitmapFormats); }
#define COM_FORWARD_IMachine_QuerySavedScreenshotInfo_TO_OBJ(obj) COM_FORWARD_IMachine_QuerySavedScreenshotInfo_TO ((obj)->)
#define COM_FORWARD_IMachine_QuerySavedScreenshotInfo_TO_BASE(base) COM_FORWARD_IMachine_QuerySavedScreenshotInfo_TO (base::)
#define COM_FORWARD_IMachine_ReadSavedScreenshotToArray_TO(smth) NS_IMETHOD ReadSavedScreenshotToArray (PRUint32 aScreenId, PRUint32 aBitmapFormat, PRUint32 * aWidth, PRUint32 * aHeight, PRUint32 * aDataSize, PRUint8 * * aData) { return smth ReadSavedScreenshotToArray (aScreenId, aBitmapFormat, aWidth, aHeight, aDataSize, aData); }
#define COM_FORWARD_IMachine_ReadSavedScreenshotToArray_TO_OBJ(obj) COM_FORWARD_IMachine_ReadSavedScreenshotToArray_TO ((obj)->)
#define COM_FORWARD_IMachine_ReadSavedScreenshotToArray_TO_BASE(base) COM_FORWARD_IMachine_ReadSavedScreenshotToArray_TO (base::)
#define COM_FORWARD_IMachine_HotPlugCPU_TO(smth) NS_IMETHOD HotPlugCPU (PRUint32 aCpu) { return smth HotPlugCPU (aCpu); }
#define COM_FORWARD_IMachine_HotPlugCPU_TO_OBJ(obj) COM_FORWARD_IMachine_HotPlugCPU_TO ((obj)->)
#define COM_FORWARD_IMachine_HotPlugCPU_TO_BASE(base) COM_FORWARD_IMachine_HotPlugCPU_TO (base::)
#define COM_FORWARD_IMachine_HotUnplugCPU_TO(smth) NS_IMETHOD HotUnplugCPU (PRUint32 aCpu) { return smth HotUnplugCPU (aCpu); }
#define COM_FORWARD_IMachine_HotUnplugCPU_TO_OBJ(obj) COM_FORWARD_IMachine_HotUnplugCPU_TO ((obj)->)
#define COM_FORWARD_IMachine_HotUnplugCPU_TO_BASE(base) COM_FORWARD_IMachine_HotUnplugCPU_TO (base::)
#define COM_FORWARD_IMachine_GetCPUStatus_TO(smth) NS_IMETHOD GetCPUStatus (PRUint32 aCpu, PRBool * aAttached) { return smth GetCPUStatus (aCpu, aAttached); }
#define COM_FORWARD_IMachine_GetCPUStatus_TO_OBJ(obj) COM_FORWARD_IMachine_GetCPUStatus_TO ((obj)->)
#define COM_FORWARD_IMachine_GetCPUStatus_TO_BASE(base) COM_FORWARD_IMachine_GetCPUStatus_TO (base::)
#define COM_FORWARD_IMachine_GetEffectiveParavirtProvider_TO(smth) NS_IMETHOD GetEffectiveParavirtProvider (PRUint32 * aParavirtProvider) { return smth GetEffectiveParavirtProvider (aParavirtProvider); }
#define COM_FORWARD_IMachine_GetEffectiveParavirtProvider_TO_OBJ(obj) COM_FORWARD_IMachine_GetEffectiveParavirtProvider_TO ((obj)->)
#define COM_FORWARD_IMachine_GetEffectiveParavirtProvider_TO_BASE(base) COM_FORWARD_IMachine_GetEffectiveParavirtProvider_TO (base::)
#define COM_FORWARD_IMachine_QueryLogFilename_TO(smth) NS_IMETHOD QueryLogFilename (PRUint32 aIdx, PRUnichar * * aFilename) { return smth QueryLogFilename (aIdx, aFilename); }
#define COM_FORWARD_IMachine_QueryLogFilename_TO_OBJ(obj) COM_FORWARD_IMachine_QueryLogFilename_TO ((obj)->)
#define COM_FORWARD_IMachine_QueryLogFilename_TO_BASE(base) COM_FORWARD_IMachine_QueryLogFilename_TO (base::)
#define COM_FORWARD_IMachine_ReadLog_TO(smth) NS_IMETHOD ReadLog (PRUint32 aIdx, PRInt64 aOffset, PRInt64 aSize, PRUint32 * aDataSize, PRUint8 * * aData) { return smth ReadLog (aIdx, aOffset, aSize, aDataSize, aData); }
#define COM_FORWARD_IMachine_ReadLog_TO_OBJ(obj) COM_FORWARD_IMachine_ReadLog_TO ((obj)->)
#define COM_FORWARD_IMachine_ReadLog_TO_BASE(base) COM_FORWARD_IMachine_ReadLog_TO (base::)
#define COM_FORWARD_IMachine_CloneTo_TO(smth) NS_IMETHOD CloneTo (IMachine * aTarget, PRUint32 aMode, PRUint32 aOptionsSize, PRUint32 * aOptions, IProgress * * aProgress) { return smth CloneTo (aTarget, aMode, aOptionsSize+++, aOptions, aProgress); }
#define COM_FORWARD_IMachine_CloneTo_TO_OBJ(obj) COM_FORWARD_IMachine_CloneTo_TO ((obj)->)
#define COM_FORWARD_IMachine_CloneTo_TO_BASE(base) COM_FORWARD_IMachine_CloneTo_TO (base::)
#define COM_FORWARD_IMachine_MoveTo_TO(smth) NS_IMETHOD MoveTo (PRUnichar * aFolder, PRUnichar * aType, IProgress * * aProgress) { return smth MoveTo (aFolder, aType, aProgress); }
#define COM_FORWARD_IMachine_MoveTo_TO_OBJ(obj) COM_FORWARD_IMachine_MoveTo_TO ((obj)->)
#define COM_FORWARD_IMachine_MoveTo_TO_BASE(base) COM_FORWARD_IMachine_MoveTo_TO (base::)
#define COM_FORWARD_IMachine_SaveState_TO(smth) NS_IMETHOD SaveState (IProgress * * aProgress) { return smth SaveState (aProgress); }
#define COM_FORWARD_IMachine_SaveState_TO_OBJ(obj) COM_FORWARD_IMachine_SaveState_TO ((obj)->)
#define COM_FORWARD_IMachine_SaveState_TO_BASE(base) COM_FORWARD_IMachine_SaveState_TO (base::)
#define COM_FORWARD_IMachine_AdoptSavedState_TO(smth) NS_IMETHOD AdoptSavedState (PRUnichar * aSavedStateFile) { return smth AdoptSavedState (aSavedStateFile); }
#define COM_FORWARD_IMachine_AdoptSavedState_TO_OBJ(obj) COM_FORWARD_IMachine_AdoptSavedState_TO ((obj)->)
#define COM_FORWARD_IMachine_AdoptSavedState_TO_BASE(base) COM_FORWARD_IMachine_AdoptSavedState_TO (base::)
#define COM_FORWARD_IMachine_DiscardSavedState_TO(smth) NS_IMETHOD DiscardSavedState (PRBool aFRemoveFile) { return smth DiscardSavedState (aFRemoveFile); }
#define COM_FORWARD_IMachine_DiscardSavedState_TO_OBJ(obj) COM_FORWARD_IMachine_DiscardSavedState_TO ((obj)->)
#define COM_FORWARD_IMachine_DiscardSavedState_TO_BASE(base) COM_FORWARD_IMachine_DiscardSavedState_TO (base::)
#define COM_FORWARD_IMachine_TakeSnapshot_TO(smth) NS_IMETHOD TakeSnapshot (PRUnichar * aName, PRUnichar * aDescription, PRBool aPause, PRUnichar * * aId, IProgress * * aProgress) { return smth TakeSnapshot (aName, aDescription, aPause, aId, aProgress); }
#define COM_FORWARD_IMachine_TakeSnapshot_TO_OBJ(obj) COM_FORWARD_IMachine_TakeSnapshot_TO ((obj)->)
#define COM_FORWARD_IMachine_TakeSnapshot_TO_BASE(base) COM_FORWARD_IMachine_TakeSnapshot_TO (base::)
#define COM_FORWARD_IMachine_DeleteSnapshot_TO(smth) NS_IMETHOD DeleteSnapshot (PRUnichar * aId, IProgress * * aProgress) { return smth DeleteSnapshot (aId, aProgress); }
#define COM_FORWARD_IMachine_DeleteSnapshot_TO_OBJ(obj) COM_FORWARD_IMachine_DeleteSnapshot_TO ((obj)->)
#define COM_FORWARD_IMachine_DeleteSnapshot_TO_BASE(base) COM_FORWARD_IMachine_DeleteSnapshot_TO (base::)
#define COM_FORWARD_IMachine_DeleteSnapshotAndAllChildren_TO(smth) NS_IMETHOD DeleteSnapshotAndAllChildren (PRUnichar * aId, IProgress * * aProgress) { return smth DeleteSnapshotAndAllChildren (aId, aProgress); }
#define COM_FORWARD_IMachine_DeleteSnapshotAndAllChildren_TO_OBJ(obj) COM_FORWARD_IMachine_DeleteSnapshotAndAllChildren_TO ((obj)->)
#define COM_FORWARD_IMachine_DeleteSnapshotAndAllChildren_TO_BASE(base) COM_FORWARD_IMachine_DeleteSnapshotAndAllChildren_TO (base::)
#define COM_FORWARD_IMachine_DeleteSnapshotRange_TO(smth) NS_IMETHOD DeleteSnapshotRange (PRUnichar * aStartId, PRUnichar * aEndId, IProgress * * aProgress) { return smth DeleteSnapshotRange (aStartId, aEndId, aProgress); }
#define COM_FORWARD_IMachine_DeleteSnapshotRange_TO_OBJ(obj) COM_FORWARD_IMachine_DeleteSnapshotRange_TO ((obj)->)
#define COM_FORWARD_IMachine_DeleteSnapshotRange_TO_BASE(base) COM_FORWARD_IMachine_DeleteSnapshotRange_TO (base::)
#define COM_FORWARD_IMachine_RestoreSnapshot_TO(smth) NS_IMETHOD RestoreSnapshot (ISnapshot * aSnapshot, IProgress * * aProgress) { return smth RestoreSnapshot (aSnapshot, aProgress); }
#define COM_FORWARD_IMachine_RestoreSnapshot_TO_OBJ(obj) COM_FORWARD_IMachine_RestoreSnapshot_TO ((obj)->)
#define COM_FORWARD_IMachine_RestoreSnapshot_TO_BASE(base) COM_FORWARD_IMachine_RestoreSnapshot_TO (base::)
#define COM_FORWARD_IMachine_ApplyDefaults_TO(smth) NS_IMETHOD ApplyDefaults (PRUnichar * aFlags) { return smth ApplyDefaults (aFlags); }
#define COM_FORWARD_IMachine_ApplyDefaults_TO_OBJ(obj) COM_FORWARD_IMachine_ApplyDefaults_TO ((obj)->)
#define COM_FORWARD_IMachine_ApplyDefaults_TO_BASE(base) COM_FORWARD_IMachine_ApplyDefaults_TO (base::)
#define COM_FORWARD_IMachine_TO(smth) NS_FORWARD_IMACHINE (smth)
#define COM_FORWARD_IMachine_TO_OBJ(obj) COM_FORWARD_IMachine_TO ((obj)->)
#define COM_FORWARD_IMachine_TO_BASE(base) COM_FORWARD_IMachine_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IMachine;
%}

[
    uuid(6e253ee8-477a-2497-6759-88b8292a5af0),
    scriptable
]
interface IEmulatedUSB : nsISupports
{
    void getWebcams (
        out unsigned long webcamsSize,
        [array, size_is(webcamsSize), retval] out wstring webcams
    );

    readonly attribute unsigned long InternalAndReservedAttribute1IEmulatedUSB;

    readonly attribute unsigned long InternalAndReservedAttribute2IEmulatedUSB;

    readonly attribute unsigned long InternalAndReservedAttribute3IEmulatedUSB;

    readonly attribute unsigned long InternalAndReservedAttribute4IEmulatedUSB;

    void webcamAttach (
        in wstring path,
        in wstring settings
    );

    void webcamDetach (
        in wstring path
    );

    void InternalAndReservedMethod1IEmulatedUSB();

    void InternalAndReservedMethod2IEmulatedUSB();

    void InternalAndReservedMethod3IEmulatedUSB();

    void InternalAndReservedMethod4IEmulatedUSB();

}; /* interface IEmulatedUSB */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IEmulatedUSB_GETTER_Webcams_TO(smth) NS_IMETHOD GetWebcams (PRUint32 * aWebcamsSize, PRUnichar * * * aWebcams) { return smth GetWebcams (aWebcamsSize, aWebcams); }
#define COM_FORWARD_IEmulatedUSB_GETTER_Webcams_TO_OBJ(obj) COM_FORWARD_IEmulatedUSB_GETTER_Webcams_TO ((obj)->)
#define COM_FORWARD_IEmulatedUSB_GETTER_Webcams_TO_BASE(base) COM_FORWARD_IEmulatedUSB_GETTER_Webcams_TO (base::)
#define COM_FORWARD_IEmulatedUSB_WebcamAttach_TO(smth) NS_IMETHOD WebcamAttach (PRUnichar * aPath, PRUnichar * aSettings) { return smth WebcamAttach (aPath, aSettings); }
#define COM_FORWARD_IEmulatedUSB_WebcamAttach_TO_OBJ(obj) COM_FORWARD_IEmulatedUSB_WebcamAttach_TO ((obj)->)
#define COM_FORWARD_IEmulatedUSB_WebcamAttach_TO_BASE(base) COM_FORWARD_IEmulatedUSB_WebcamAttach_TO (base::)
#define COM_FORWARD_IEmulatedUSB_WebcamDetach_TO(smth) NS_IMETHOD WebcamDetach (PRUnichar * aPath) { return smth WebcamDetach (aPath); }
#define COM_FORWARD_IEmulatedUSB_WebcamDetach_TO_OBJ(obj) COM_FORWARD_IEmulatedUSB_WebcamDetach_TO ((obj)->)
#define COM_FORWARD_IEmulatedUSB_WebcamDetach_TO_BASE(base) COM_FORWARD_IEmulatedUSB_WebcamDetach_TO (base::)
#define COM_FORWARD_IEmulatedUSB_TO(smth) NS_FORWARD_IEMULATEDUSB (smth)
#define COM_FORWARD_IEmulatedUSB_TO_OBJ(obj) COM_FORWARD_IEmulatedUSB_TO ((obj)->)
#define COM_FORWARD_IEmulatedUSB_TO_BASE(base) COM_FORWARD_IEmulatedUSB_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IEmulatedUSB;
%}

[
    uuid(c39ef4d6-7532-45e8-96da-eb5986ae76e4),
    scriptable
]
interface IVRDEServerInfo : nsISupports
{
    readonly attribute boolean active;

    readonly attribute long port;

    readonly attribute unsigned long numberOfClients;

    readonly attribute long long beginTime;

    readonly attribute long long endTime;

    readonly attribute long long bytesSent;

    readonly attribute long long bytesSentTotal;

    readonly attribute long long bytesReceived;

    readonly attribute long long bytesReceivedTotal;

    readonly attribute wstring user;

    readonly attribute wstring domain;

    readonly attribute wstring clientName;

    readonly attribute wstring clientIP;

    readonly attribute unsigned long clientVersion;

    readonly attribute unsigned long encryptionStyle;

    readonly attribute unsigned long InternalAndReservedAttribute1IVRDEServerInfo;

    readonly attribute unsigned long InternalAndReservedAttribute2IVRDEServerInfo;

    readonly attribute unsigned long InternalAndReservedAttribute3IVRDEServerInfo;

    readonly attribute unsigned long InternalAndReservedAttribute4IVRDEServerInfo;

    readonly attribute unsigned long InternalAndReservedAttribute5IVRDEServerInfo;

    readonly attribute unsigned long InternalAndReservedAttribute6IVRDEServerInfo;

    readonly attribute unsigned long InternalAndReservedAttribute7IVRDEServerInfo;

    readonly attribute unsigned long InternalAndReservedAttribute8IVRDEServerInfo;

}; /* interface IVRDEServerInfo */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IVRDEServerInfo_GETTER_Active_TO(smth) NS_IMETHOD GetActive (PRBool * aActive) { return smth GetActive (aActive); }
#define COM_FORWARD_IVRDEServerInfo_GETTER_Active_TO_OBJ(obj) COM_FORWARD_IVRDEServerInfo_GETTER_Active_TO ((obj)->)
#define COM_FORWARD_IVRDEServerInfo_GETTER_Active_TO_BASE(base) COM_FORWARD_IVRDEServerInfo_GETTER_Active_TO (base::)
#define COM_FORWARD_IVRDEServerInfo_GETTER_Port_TO(smth) NS_IMETHOD GetPort (PRInt32 * aPort) { return smth GetPort (aPort); }
#define COM_FORWARD_IVRDEServerInfo_GETTER_Port_TO_OBJ(obj) COM_FORWARD_IVRDEServerInfo_GETTER_Port_TO ((obj)->)
#define COM_FORWARD_IVRDEServerInfo_GETTER_Port_TO_BASE(base) COM_FORWARD_IVRDEServerInfo_GETTER_Port_TO (base::)
#define COM_FORWARD_IVRDEServerInfo_GETTER_NumberOfClients_TO(smth) NS_IMETHOD GetNumberOfClients (PRUint32 * aNumberOfClients) { return smth GetNumberOfClients (aNumberOfClients); }
#define COM_FORWARD_IVRDEServerInfo_GETTER_NumberOfClients_TO_OBJ(obj) COM_FORWARD_IVRDEServerInfo_GETTER_NumberOfClients_TO ((obj)->)
#define COM_FORWARD_IVRDEServerInfo_GETTER_NumberOfClients_TO_BASE(base) COM_FORWARD_IVRDEServerInfo_GETTER_NumberOfClients_TO (base::)
#define COM_FORWARD_IVRDEServerInfo_GETTER_BeginTime_TO(smth) NS_IMETHOD GetBeginTime (PRInt64 * aBeginTime) { return smth GetBeginTime (aBeginTime); }
#define COM_FORWARD_IVRDEServerInfo_GETTER_BeginTime_TO_OBJ(obj) COM_FORWARD_IVRDEServerInfo_GETTER_BeginTime_TO ((obj)->)
#define COM_FORWARD_IVRDEServerInfo_GETTER_BeginTime_TO_BASE(base) COM_FORWARD_IVRDEServerInfo_GETTER_BeginTime_TO (base::)
#define COM_FORWARD_IVRDEServerInfo_GETTER_EndTime_TO(smth) NS_IMETHOD GetEndTime (PRInt64 * aEndTime) { return smth GetEndTime (aEndTime); }
#define COM_FORWARD_IVRDEServerInfo_GETTER_EndTime_TO_OBJ(obj) COM_FORWARD_IVRDEServerInfo_GETTER_EndTime_TO ((obj)->)
#define COM_FORWARD_IVRDEServerInfo_GETTER_EndTime_TO_BASE(base) COM_FORWARD_IVRDEServerInfo_GETTER_EndTime_TO (base::)
#define COM_FORWARD_IVRDEServerInfo_GETTER_BytesSent_TO(smth) NS_IMETHOD GetBytesSent (PRInt64 * aBytesSent) { return smth GetBytesSent (aBytesSent); }
#define COM_FORWARD_IVRDEServerInfo_GETTER_BytesSent_TO_OBJ(obj) COM_FORWARD_IVRDEServerInfo_GETTER_BytesSent_TO ((obj)->)
#define COM_FORWARD_IVRDEServerInfo_GETTER_BytesSent_TO_BASE(base) COM_FORWARD_IVRDEServerInfo_GETTER_BytesSent_TO (base::)
#define COM_FORWARD_IVRDEServerInfo_GETTER_BytesSentTotal_TO(smth) NS_IMETHOD GetBytesSentTotal (PRInt64 * aBytesSentTotal) { return smth GetBytesSentTotal (aBytesSentTotal); }
#define COM_FORWARD_IVRDEServerInfo_GETTER_BytesSentTotal_TO_OBJ(obj) COM_FORWARD_IVRDEServerInfo_GETTER_BytesSentTotal_TO ((obj)->)
#define COM_FORWARD_IVRDEServerInfo_GETTER_BytesSentTotal_TO_BASE(base) COM_FORWARD_IVRDEServerInfo_GETTER_BytesSentTotal_TO (base::)
#define COM_FORWARD_IVRDEServerInfo_GETTER_BytesReceived_TO(smth) NS_IMETHOD GetBytesReceived (PRInt64 * aBytesReceived) { return smth GetBytesReceived (aBytesReceived); }
#define COM_FORWARD_IVRDEServerInfo_GETTER_BytesReceived_TO_OBJ(obj) COM_FORWARD_IVRDEServerInfo_GETTER_BytesReceived_TO ((obj)->)
#define COM_FORWARD_IVRDEServerInfo_GETTER_BytesReceived_TO_BASE(base) COM_FORWARD_IVRDEServerInfo_GETTER_BytesReceived_TO (base::)
#define COM_FORWARD_IVRDEServerInfo_GETTER_BytesReceivedTotal_TO(smth) NS_IMETHOD GetBytesReceivedTotal (PRInt64 * aBytesReceivedTotal) { return smth GetBytesReceivedTotal (aBytesReceivedTotal); }
#define COM_FORWARD_IVRDEServerInfo_GETTER_BytesReceivedTotal_TO_OBJ(obj) COM_FORWARD_IVRDEServerInfo_GETTER_BytesReceivedTotal_TO ((obj)->)
#define COM_FORWARD_IVRDEServerInfo_GETTER_BytesReceivedTotal_TO_BASE(base) COM_FORWARD_IVRDEServerInfo_GETTER_BytesReceivedTotal_TO (base::)
#define COM_FORWARD_IVRDEServerInfo_GETTER_User_TO(smth) NS_IMETHOD GetUser (PRUnichar * * aUser) { return smth GetUser (aUser); }
#define COM_FORWARD_IVRDEServerInfo_GETTER_User_TO_OBJ(obj) COM_FORWARD_IVRDEServerInfo_GETTER_User_TO ((obj)->)
#define COM_FORWARD_IVRDEServerInfo_GETTER_User_TO_BASE(base) COM_FORWARD_IVRDEServerInfo_GETTER_User_TO (base::)
#define COM_FORWARD_IVRDEServerInfo_GETTER_Domain_TO(smth) NS_IMETHOD GetDomain (PRUnichar * * aDomain) { return smth GetDomain (aDomain); }
#define COM_FORWARD_IVRDEServerInfo_GETTER_Domain_TO_OBJ(obj) COM_FORWARD_IVRDEServerInfo_GETTER_Domain_TO ((obj)->)
#define COM_FORWARD_IVRDEServerInfo_GETTER_Domain_TO_BASE(base) COM_FORWARD_IVRDEServerInfo_GETTER_Domain_TO (base::)
#define COM_FORWARD_IVRDEServerInfo_GETTER_ClientName_TO(smth) NS_IMETHOD GetClientName (PRUnichar * * aClientName) { return smth GetClientName (aClientName); }
#define COM_FORWARD_IVRDEServerInfo_GETTER_ClientName_TO_OBJ(obj) COM_FORWARD_IVRDEServerInfo_GETTER_ClientName_TO ((obj)->)
#define COM_FORWARD_IVRDEServerInfo_GETTER_ClientName_TO_BASE(base) COM_FORWARD_IVRDEServerInfo_GETTER_ClientName_TO (base::)
#define COM_FORWARD_IVRDEServerInfo_GETTER_ClientIP_TO(smth) NS_IMETHOD GetClientIP (PRUnichar * * aClientIP) { return smth GetClientIP (aClientIP); }
#define COM_FORWARD_IVRDEServerInfo_GETTER_ClientIP_TO_OBJ(obj) COM_FORWARD_IVRDEServerInfo_GETTER_ClientIP_TO ((obj)->)
#define COM_FORWARD_IVRDEServerInfo_GETTER_ClientIP_TO_BASE(base) COM_FORWARD_IVRDEServerInfo_GETTER_ClientIP_TO (base::)
#define COM_FORWARD_IVRDEServerInfo_GETTER_ClientVersion_TO(smth) NS_IMETHOD GetClientVersion (PRUint32 * aClientVersion) { return smth GetClientVersion (aClientVersion); }
#define COM_FORWARD_IVRDEServerInfo_GETTER_ClientVersion_TO_OBJ(obj) COM_FORWARD_IVRDEServerInfo_GETTER_ClientVersion_TO ((obj)->)
#define COM_FORWARD_IVRDEServerInfo_GETTER_ClientVersion_TO_BASE(base) COM_FORWARD_IVRDEServerInfo_GETTER_ClientVersion_TO (base::)
#define COM_FORWARD_IVRDEServerInfo_GETTER_EncryptionStyle_TO(smth) NS_IMETHOD GetEncryptionStyle (PRUint32 * aEncryptionStyle) { return smth GetEncryptionStyle (aEncryptionStyle); }
#define COM_FORWARD_IVRDEServerInfo_GETTER_EncryptionStyle_TO_OBJ(obj) COM_FORWARD_IVRDEServerInfo_GETTER_EncryptionStyle_TO ((obj)->)
#define COM_FORWARD_IVRDEServerInfo_GETTER_EncryptionStyle_TO_BASE(base) COM_FORWARD_IVRDEServerInfo_GETTER_EncryptionStyle_TO (base::)
#define COM_FORWARD_IVRDEServerInfo_TO(smth) NS_FORWARD_IVRDESERVERINFO (smth)
#define COM_FORWARD_IVRDEServerInfo_TO_OBJ(obj) COM_FORWARD_IVRDEServerInfo_TO ((obj)->)
#define COM_FORWARD_IVRDEServerInfo_TO_BASE(base) COM_FORWARD_IVRDEServerInfo_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IVRDEServerInfo;
%}

[
    uuid(872da645-4a9b-1727-bee2-5585105b9eed),
    scriptable
]
interface IConsole : nsISupports
{
    readonly attribute IMachine machine;

    readonly attribute MachineState_T state;

    readonly attribute IGuest guest;

    readonly attribute IKeyboard keyboard;

    readonly attribute IMouse mouse;

    readonly attribute IDisplay display;

    readonly attribute IMachineDebugger debugger;

    void getUSBDevices (
        out unsigned long USBDevicesSize,
        [array, size_is(USBDevicesSize), retval] out IUSBDevice USBDevices
    );

    void getRemoteUSBDevices (
        out unsigned long remoteUSBDevicesSize,
        [array, size_is(remoteUSBDevicesSize), retval] out IHostUSBDevice remoteUSBDevices
    );

    void getSharedFolders (
        out unsigned long sharedFoldersSize,
        [array, size_is(sharedFoldersSize), retval] out ISharedFolder sharedFolders
    );

    readonly attribute IVRDEServerInfo VRDEServerInfo;

    readonly attribute IEventSource eventSource;

    void getAttachedPCIDevices (
        out unsigned long attachedPCIDevicesSize,
        [array, size_is(attachedPCIDevicesSize), retval] out IPCIDeviceAttachment attachedPCIDevices
    );

    attribute boolean useHostClipboard;

    readonly attribute IEmulatedUSB emulatedUSB;

    readonly attribute unsigned long InternalAndReservedAttribute1IConsole;

    readonly attribute unsigned long InternalAndReservedAttribute2IConsole;

    readonly attribute unsigned long InternalAndReservedAttribute3IConsole;

    readonly attribute unsigned long InternalAndReservedAttribute4IConsole;

    readonly attribute unsigned long InternalAndReservedAttribute5IConsole;

    readonly attribute unsigned long InternalAndReservedAttribute6IConsole;

    readonly attribute unsigned long InternalAndReservedAttribute7IConsole;

    readonly attribute unsigned long InternalAndReservedAttribute8IConsole;

    void powerUp (
        [retval] out IProgress progress
    );

    void powerUpPaused (
        [retval] out IProgress progress
    );

    void powerDown (
        [retval] out IProgress progress
    );

    void reset();

    void pause();

    void resume();

    void powerButton();

    void sleepButton();

    void getPowerButtonHandled (
        [retval] out boolean handled
    );

    void getGuestEnteredACPIMode (
        [retval] out boolean entered
    );

    void getDeviceActivity (
        in unsigned long typeSize,
        [array, size_is(typeSize)] in DeviceType_T type,
        out unsigned long activitySize,
        [array, size_is(activitySize) , retval] out DeviceActivity_T activity
    );

    void attachUSBDevice (
        in wstring id,
        in wstring captureFilename
    );

    void detachUSBDevice (
        in wstring id,
        [retval] out IUSBDevice device
    );

    void findUSBDeviceByAddress (
        in wstring name,
        [retval] out IUSBDevice device
    );

    void findUSBDeviceById (
        in wstring id,
        [retval] out IUSBDevice device
    );

    void createSharedFolder (
        in wstring name,
        in wstring hostPath,
        in boolean writable,
        in boolean automount,
        in wstring autoMountPoint
    );

    void removeSharedFolder (
        in wstring name
    );

    void teleport (
        in wstring hostname,
        in unsigned long tcpport,
        in wstring password,
        in unsigned long maxDowntime,
        [retval] out IProgress progress
    );

    void addDiskEncryptionPassword (
        in wstring id,
        in wstring password,
        in boolean clearOnSuspend
    );

    void addDiskEncryptionPasswords (
        in unsigned long idsSize,
        [array, size_is(idsSize)] in wstring ids,
        in unsigned long passwordsSize,
        [array, size_is(passwordsSize)] in wstring passwords,
        in boolean clearOnSuspend
    );

    void removeDiskEncryptionPassword (
        in wstring id
    );

    void clearAllDiskEncryptionPasswords();

    void InternalAndReservedMethod1IConsole();

    void InternalAndReservedMethod2IConsole();

    void InternalAndReservedMethod3IConsole();

    void InternalAndReservedMethod4IConsole();

    void InternalAndReservedMethod5IConsole();

    void InternalAndReservedMethod6IConsole();

    void InternalAndReservedMethod7IConsole();

    void InternalAndReservedMethod8IConsole();

}; /* interface IConsole */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IConsole_GETTER_Machine_TO(smth) NS_IMETHOD GetMachine (IMachine * * aMachine) { return smth GetMachine (aMachine); }
#define COM_FORWARD_IConsole_GETTER_Machine_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_Machine_TO ((obj)->)
#define COM_FORWARD_IConsole_GETTER_Machine_TO_BASE(base) COM_FORWARD_IConsole_GETTER_Machine_TO (base::)
#define COM_FORWARD_IConsole_GETTER_State_TO(smth) NS_IMETHOD GetState (PRUint32 * aState) { return smth GetState (aState); }
#define COM_FORWARD_IConsole_GETTER_State_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_State_TO ((obj)->)
#define COM_FORWARD_IConsole_GETTER_State_TO_BASE(base) COM_FORWARD_IConsole_GETTER_State_TO (base::)
#define COM_FORWARD_IConsole_GETTER_Guest_TO(smth) NS_IMETHOD GetGuest (IGuest * * aGuest) { return smth GetGuest (aGuest); }
#define COM_FORWARD_IConsole_GETTER_Guest_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_Guest_TO ((obj)->)
#define COM_FORWARD_IConsole_GETTER_Guest_TO_BASE(base) COM_FORWARD_IConsole_GETTER_Guest_TO (base::)
#define COM_FORWARD_IConsole_GETTER_Keyboard_TO(smth) NS_IMETHOD GetKeyboard (IKeyboard * * aKeyboard) { return smth GetKeyboard (aKeyboard); }
#define COM_FORWARD_IConsole_GETTER_Keyboard_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_Keyboard_TO ((obj)->)
#define COM_FORWARD_IConsole_GETTER_Keyboard_TO_BASE(base) COM_FORWARD_IConsole_GETTER_Keyboard_TO (base::)
#define COM_FORWARD_IConsole_GETTER_Mouse_TO(smth) NS_IMETHOD GetMouse (IMouse * * aMouse) { return smth GetMouse (aMouse); }
#define COM_FORWARD_IConsole_GETTER_Mouse_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_Mouse_TO ((obj)->)
#define COM_FORWARD_IConsole_GETTER_Mouse_TO_BASE(base) COM_FORWARD_IConsole_GETTER_Mouse_TO (base::)
#define COM_FORWARD_IConsole_GETTER_Display_TO(smth) NS_IMETHOD GetDisplay (IDisplay * * aDisplay) { return smth GetDisplay (aDisplay); }
#define COM_FORWARD_IConsole_GETTER_Display_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_Display_TO ((obj)->)
#define COM_FORWARD_IConsole_GETTER_Display_TO_BASE(base) COM_FORWARD_IConsole_GETTER_Display_TO (base::)
#define COM_FORWARD_IConsole_GETTER_Debugger_TO(smth) NS_IMETHOD GetDebugger (IMachineDebugger * * aDebugger) { return smth GetDebugger (aDebugger); }
#define COM_FORWARD_IConsole_GETTER_Debugger_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_Debugger_TO ((obj)->)
#define COM_FORWARD_IConsole_GETTER_Debugger_TO_BASE(base) COM_FORWARD_IConsole_GETTER_Debugger_TO (base::)
#define COM_FORWARD_IConsole_GETTER_USBDevices_TO(smth) NS_IMETHOD GetUSBDevices (PRUint32 * aUSBDevicesSize, IUSBDevice * * * aUSBDevices) { return smth GetUSBDevices (aUSBDevicesSize, aUSBDevices); }
#define COM_FORWARD_IConsole_GETTER_USBDevices_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_USBDevices_TO ((obj)->)
#define COM_FORWARD_IConsole_GETTER_USBDevices_TO_BASE(base) COM_FORWARD_IConsole_GETTER_USBDevices_TO (base::)
#define COM_FORWARD_IConsole_GETTER_RemoteUSBDevices_TO(smth) NS_IMETHOD GetRemoteUSBDevices (PRUint32 * aRemoteUSBDevicesSize, IHostUSBDevice * * * aRemoteUSBDevices) { return smth GetRemoteUSBDevices (aRemoteUSBDevicesSize, aRemoteUSBDevices); }
#define COM_FORWARD_IConsole_GETTER_RemoteUSBDevices_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_RemoteUSBDevices_TO ((obj)->)
#define COM_FORWARD_IConsole_GETTER_RemoteUSBDevices_TO_BASE(base) COM_FORWARD_IConsole_GETTER_RemoteUSBDevices_TO (base::)
#define COM_FORWARD_IConsole_GETTER_SharedFolders_TO(smth) NS_IMETHOD GetSharedFolders (PRUint32 * aSharedFoldersSize, ISharedFolder * * * aSharedFolders) { return smth GetSharedFolders (aSharedFoldersSize, aSharedFolders); }
#define COM_FORWARD_IConsole_GETTER_SharedFolders_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_SharedFolders_TO ((obj)->)
#define COM_FORWARD_IConsole_GETTER_SharedFolders_TO_BASE(base) COM_FORWARD_IConsole_GETTER_SharedFolders_TO (base::)
#define COM_FORWARD_IConsole_GETTER_VRDEServerInfo_TO(smth) NS_IMETHOD GetVRDEServerInfo (IVRDEServerInfo * * aVRDEServerInfo) { return smth GetVRDEServerInfo (aVRDEServerInfo); }
#define COM_FORWARD_IConsole_GETTER_VRDEServerInfo_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_VRDEServerInfo_TO ((obj)->)
#define COM_FORWARD_IConsole_GETTER_VRDEServerInfo_TO_BASE(base) COM_FORWARD_IConsole_GETTER_VRDEServerInfo_TO (base::)
#define COM_FORWARD_IConsole_GETTER_EventSource_TO(smth) NS_IMETHOD GetEventSource (IEventSource * * aEventSource) { return smth GetEventSource (aEventSource); }
#define COM_FORWARD_IConsole_GETTER_EventSource_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_EventSource_TO ((obj)->)
#define COM_FORWARD_IConsole_GETTER_EventSource_TO_BASE(base) COM_FORWARD_IConsole_GETTER_EventSource_TO (base::)
#define COM_FORWARD_IConsole_GETTER_AttachedPCIDevices_TO(smth) NS_IMETHOD GetAttachedPCIDevices (PRUint32 * aAttachedPCIDevicesSize, IPCIDeviceAttachment * * * aAttachedPCIDevices) { return smth GetAttachedPCIDevices (aAttachedPCIDevicesSize, aAttachedPCIDevices); }
#define COM_FORWARD_IConsole_GETTER_AttachedPCIDevices_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_AttachedPCIDevices_TO ((obj)->)
#define COM_FORWARD_IConsole_GETTER_AttachedPCIDevices_TO_BASE(base) COM_FORWARD_IConsole_GETTER_AttachedPCIDevices_TO (base::)
#define COM_FORWARD_IConsole_GETTER_UseHostClipboard_TO(smth) NS_IMETHOD GetUseHostClipboard (PRBool * aUseHostClipboard) { return smth GetUseHostClipboard (aUseHostClipboard); }
#define COM_FORWARD_IConsole_GETTER_UseHostClipboard_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_UseHostClipboard_TO ((obj)->)
#define COM_FORWARD_IConsole_GETTER_UseHostClipboard_TO_BASE(base) COM_FORWARD_IConsole_GETTER_UseHostClipboard_TO (base::)
#define COM_FORWARD_IConsole_SETTER_UseHostClipboard_TO(smth) NS_IMETHOD SetUseHostClipboard (PRBool aUseHostClipboard) { return smth SetUseHostClipboard (aUseHostClipboard); }
#define COM_FORWARD_IConsole_SETTER_UseHostClipboard_TO_OBJ(obj) COM_FORWARD_IConsole_SETTER_UseHostClipboard_TO ((obj)->)
#define COM_FORWARD_IConsole_SETTER_UseHostClipboard_TO_BASE(base) COM_FORWARD_IConsole_SETTER_UseHostClipboard_TO (base::)
#define COM_FORWARD_IConsole_GETTER_EmulatedUSB_TO(smth) NS_IMETHOD GetEmulatedUSB (IEmulatedUSB * * aEmulatedUSB) { return smth GetEmulatedUSB (aEmulatedUSB); }
#define COM_FORWARD_IConsole_GETTER_EmulatedUSB_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_EmulatedUSB_TO ((obj)->)
#define COM_FORWARD_IConsole_GETTER_EmulatedUSB_TO_BASE(base) COM_FORWARD_IConsole_GETTER_EmulatedUSB_TO (base::)
#define COM_FORWARD_IConsole_PowerUp_TO(smth) NS_IMETHOD PowerUp (IProgress * * aProgress) { return smth PowerUp (aProgress); }
#define COM_FORWARD_IConsole_PowerUp_TO_OBJ(obj) COM_FORWARD_IConsole_PowerUp_TO ((obj)->)
#define COM_FORWARD_IConsole_PowerUp_TO_BASE(base) COM_FORWARD_IConsole_PowerUp_TO (base::)
#define COM_FORWARD_IConsole_PowerUpPaused_TO(smth) NS_IMETHOD PowerUpPaused (IProgress * * aProgress) { return smth PowerUpPaused (aProgress); }
#define COM_FORWARD_IConsole_PowerUpPaused_TO_OBJ(obj) COM_FORWARD_IConsole_PowerUpPaused_TO ((obj)->)
#define COM_FORWARD_IConsole_PowerUpPaused_TO_BASE(base) COM_FORWARD_IConsole_PowerUpPaused_TO (base::)
#define COM_FORWARD_IConsole_PowerDown_TO(smth) NS_IMETHOD PowerDown (IProgress * * aProgress) { return smth PowerDown (aProgress); }
#define COM_FORWARD_IConsole_PowerDown_TO_OBJ(obj) COM_FORWARD_IConsole_PowerDown_TO ((obj)->)
#define COM_FORWARD_IConsole_PowerDown_TO_BASE(base) COM_FORWARD_IConsole_PowerDown_TO (base::)
#define COM_FORWARD_IConsole_Reset_TO(smth) NS_IMETHOD Reset() { return smth Reset(); }
#define COM_FORWARD_IConsole_Reset_TO_OBJ(obj) COM_FORWARD_IConsole_Reset_TO ((obj)->)
#define COM_FORWARD_IConsole_Reset_TO_BASE(base) COM_FORWARD_IConsole_Reset_TO (base::)
#define COM_FORWARD_IConsole_Pause_TO(smth) NS_IMETHOD Pause() { return smth Pause(); }
#define COM_FORWARD_IConsole_Pause_TO_OBJ(obj) COM_FORWARD_IConsole_Pause_TO ((obj)->)
#define COM_FORWARD_IConsole_Pause_TO_BASE(base) COM_FORWARD_IConsole_Pause_TO (base::)
#define COM_FORWARD_IConsole_Resume_TO(smth) NS_IMETHOD Resume() { return smth Resume(); }
#define COM_FORWARD_IConsole_Resume_TO_OBJ(obj) COM_FORWARD_IConsole_Resume_TO ((obj)->)
#define COM_FORWARD_IConsole_Resume_TO_BASE(base) COM_FORWARD_IConsole_Resume_TO (base::)
#define COM_FORWARD_IConsole_PowerButton_TO(smth) NS_IMETHOD PowerButton() { return smth PowerButton(); }
#define COM_FORWARD_IConsole_PowerButton_TO_OBJ(obj) COM_FORWARD_IConsole_PowerButton_TO ((obj)->)
#define COM_FORWARD_IConsole_PowerButton_TO_BASE(base) COM_FORWARD_IConsole_PowerButton_TO (base::)
#define COM_FORWARD_IConsole_SleepButton_TO(smth) NS_IMETHOD SleepButton() { return smth SleepButton(); }
#define COM_FORWARD_IConsole_SleepButton_TO_OBJ(obj) COM_FORWARD_IConsole_SleepButton_TO ((obj)->)
#define COM_FORWARD_IConsole_SleepButton_TO_BASE(base) COM_FORWARD_IConsole_SleepButton_TO (base::)
#define COM_FORWARD_IConsole_GetPowerButtonHandled_TO(smth) NS_IMETHOD GetPowerButtonHandled (PRBool * aHandled) { return smth GetPowerButtonHandled (aHandled); }
#define COM_FORWARD_IConsole_GetPowerButtonHandled_TO_OBJ(obj) COM_FORWARD_IConsole_GetPowerButtonHandled_TO ((obj)->)
#define COM_FORWARD_IConsole_GetPowerButtonHandled_TO_BASE(base) COM_FORWARD_IConsole_GetPowerButtonHandled_TO (base::)
#define COM_FORWARD_IConsole_GetGuestEnteredACPIMode_TO(smth) NS_IMETHOD GetGuestEnteredACPIMode (PRBool * aEntered) { return smth GetGuestEnteredACPIMode (aEntered); }
#define COM_FORWARD_IConsole_GetGuestEnteredACPIMode_TO_OBJ(obj) COM_FORWARD_IConsole_GetGuestEnteredACPIMode_TO ((obj)->)
#define COM_FORWARD_IConsole_GetGuestEnteredACPIMode_TO_BASE(base) COM_FORWARD_IConsole_GetGuestEnteredACPIMode_TO (base::)
#define COM_FORWARD_IConsole_GetDeviceActivity_TO(smth) NS_IMETHOD GetDeviceActivity (PRUint32 aTypeSize, PRUint32 * aType, PRUint32 * aActivitySize, PRUint32 * * aActivity) { return smth GetDeviceActivity (aTypeSize+++, aType, aActivitySize, aActivity); }
#define COM_FORWARD_IConsole_GetDeviceActivity_TO_OBJ(obj) COM_FORWARD_IConsole_GetDeviceActivity_TO ((obj)->)
#define COM_FORWARD_IConsole_GetDeviceActivity_TO_BASE(base) COM_FORWARD_IConsole_GetDeviceActivity_TO (base::)
#define COM_FORWARD_IConsole_AttachUSBDevice_TO(smth) NS_IMETHOD AttachUSBDevice (PRUnichar * aId, PRUnichar * aCaptureFilename) { return smth AttachUSBDevice (aId, aCaptureFilename); }
#define COM_FORWARD_IConsole_AttachUSBDevice_TO_OBJ(obj) COM_FORWARD_IConsole_AttachUSBDevice_TO ((obj)->)
#define COM_FORWARD_IConsole_AttachUSBDevice_TO_BASE(base) COM_FORWARD_IConsole_AttachUSBDevice_TO (base::)
#define COM_FORWARD_IConsole_DetachUSBDevice_TO(smth) NS_IMETHOD DetachUSBDevice (PRUnichar * aId, IUSBDevice * * aDevice) { return smth DetachUSBDevice (aId, aDevice); }
#define COM_FORWARD_IConsole_DetachUSBDevice_TO_OBJ(obj) COM_FORWARD_IConsole_DetachUSBDevice_TO ((obj)->)
#define COM_FORWARD_IConsole_DetachUSBDevice_TO_BASE(base) COM_FORWARD_IConsole_DetachUSBDevice_TO (base::)
#define COM_FORWARD_IConsole_FindUSBDeviceByAddress_TO(smth) NS_IMETHOD FindUSBDeviceByAddress (PRUnichar * aName, IUSBDevice * * aDevice) { return smth FindUSBDeviceByAddress (aName, aDevice); }
#define COM_FORWARD_IConsole_FindUSBDeviceByAddress_TO_OBJ(obj) COM_FORWARD_IConsole_FindUSBDeviceByAddress_TO ((obj)->)
#define COM_FORWARD_IConsole_FindUSBDeviceByAddress_TO_BASE(base) COM_FORWARD_IConsole_FindUSBDeviceByAddress_TO (base::)
#define COM_FORWARD_IConsole_FindUSBDeviceById_TO(smth) NS_IMETHOD FindUSBDeviceById (PRUnichar * aId, IUSBDevice * * aDevice) { return smth FindUSBDeviceById (aId, aDevice); }
#define COM_FORWARD_IConsole_FindUSBDeviceById_TO_OBJ(obj) COM_FORWARD_IConsole_FindUSBDeviceById_TO ((obj)->)
#define COM_FORWARD_IConsole_FindUSBDeviceById_TO_BASE(base) COM_FORWARD_IConsole_FindUSBDeviceById_TO (base::)
#define COM_FORWARD_IConsole_CreateSharedFolder_TO(smth) NS_IMETHOD CreateSharedFolder (PRUnichar * aName, PRUnichar * aHostPath, PRBool aWritable, PRBool aAutomount, PRUnichar * aAutoMountPoint) { return smth CreateSharedFolder (aName, aHostPath, aWritable, aAutomount, aAutoMountPoint); }
#define COM_FORWARD_IConsole_CreateSharedFolder_TO_OBJ(obj) COM_FORWARD_IConsole_CreateSharedFolder_TO ((obj)->)
#define COM_FORWARD_IConsole_CreateSharedFolder_TO_BASE(base) COM_FORWARD_IConsole_CreateSharedFolder_TO (base::)
#define COM_FORWARD_IConsole_RemoveSharedFolder_TO(smth) NS_IMETHOD RemoveSharedFolder (PRUnichar * aName) { return smth RemoveSharedFolder (aName); }
#define COM_FORWARD_IConsole_RemoveSharedFolder_TO_OBJ(obj) COM_FORWARD_IConsole_RemoveSharedFolder_TO ((obj)->)
#define COM_FORWARD_IConsole_RemoveSharedFolder_TO_BASE(base) COM_FORWARD_IConsole_RemoveSharedFolder_TO (base::)
#define COM_FORWARD_IConsole_Teleport_TO(smth) NS_IMETHOD Teleport (PRUnichar * aHostname, PRUint32 aTcpport, PRUnichar * aPassword, PRUint32 aMaxDowntime, IProgress * * aProgress) { return smth Teleport (aHostname, aTcpport, aPassword, aMaxDowntime, aProgress); }
#define COM_FORWARD_IConsole_Teleport_TO_OBJ(obj) COM_FORWARD_IConsole_Teleport_TO ((obj)->)
#define COM_FORWARD_IConsole_Teleport_TO_BASE(base) COM_FORWARD_IConsole_Teleport_TO (base::)
#define COM_FORWARD_IConsole_AddDiskEncryptionPassword_TO(smth) NS_IMETHOD AddDiskEncryptionPassword (PRUnichar * aId, PRUnichar * aPassword, PRBool aClearOnSuspend) { return smth AddDiskEncryptionPassword (aId, aPassword, aClearOnSuspend); }
#define COM_FORWARD_IConsole_AddDiskEncryptionPassword_TO_OBJ(obj) COM_FORWARD_IConsole_AddDiskEncryptionPassword_TO ((obj)->)
#define COM_FORWARD_IConsole_AddDiskEncryptionPassword_TO_BASE(base) COM_FORWARD_IConsole_AddDiskEncryptionPassword_TO (base::)
#define COM_FORWARD_IConsole_AddDiskEncryptionPasswords_TO(smth) NS_IMETHOD AddDiskEncryptionPasswords (PRUint32 aIdsSize, PRUnichar * * aIds, PRUint32 aPasswordsSize, PRUnichar * * aPasswords, PRBool aClearOnSuspend) { return smth AddDiskEncryptionPasswords (aIdsSize+++, aIds, aPasswordsSize+++, aPasswords, aClearOnSuspend); }
#define COM_FORWARD_IConsole_AddDiskEncryptionPasswords_TO_OBJ(obj) COM_FORWARD_IConsole_AddDiskEncryptionPasswords_TO ((obj)->)
#define COM_FORWARD_IConsole_AddDiskEncryptionPasswords_TO_BASE(base) COM_FORWARD_IConsole_AddDiskEncryptionPasswords_TO (base::)
#define COM_FORWARD_IConsole_RemoveDiskEncryptionPassword_TO(smth) NS_IMETHOD RemoveDiskEncryptionPassword (PRUnichar * aId) { return smth RemoveDiskEncryptionPassword (aId); }
#define COM_FORWARD_IConsole_RemoveDiskEncryptionPassword_TO_OBJ(obj) COM_FORWARD_IConsole_RemoveDiskEncryptionPassword_TO ((obj)->)
#define COM_FORWARD_IConsole_RemoveDiskEncryptionPassword_TO_BASE(base) COM_FORWARD_IConsole_RemoveDiskEncryptionPassword_TO (base::)
#define COM_FORWARD_IConsole_ClearAllDiskEncryptionPasswords_TO(smth) NS_IMETHOD ClearAllDiskEncryptionPasswords() { return smth ClearAllDiskEncryptionPasswords(); }
#define COM_FORWARD_IConsole_ClearAllDiskEncryptionPasswords_TO_OBJ(obj) COM_FORWARD_IConsole_ClearAllDiskEncryptionPasswords_TO ((obj)->)
#define COM_FORWARD_IConsole_ClearAllDiskEncryptionPasswords_TO_BASE(base) COM_FORWARD_IConsole_ClearAllDiskEncryptionPasswords_TO (base::)
#define COM_FORWARD_IConsole_TO(smth) NS_FORWARD_ICONSOLE (smth)
#define COM_FORWARD_IConsole_TO_OBJ(obj) COM_FORWARD_IConsole_TO ((obj)->)
#define COM_FORWARD_IConsole_TO_BASE(base) COM_FORWARD_IConsole_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IConsole;
%}

[
    uuid(455f8c45-44a0-a470-ba20-27890b96dba9),
    scriptable
]
interface IHostNetworkInterface : nsISupports
{
    readonly attribute wstring name;

    readonly attribute wstring shortName;

    readonly attribute wstring id;

    readonly attribute wstring networkName;

    readonly attribute boolean DHCPEnabled;

    readonly attribute wstring IPAddress;

    readonly attribute wstring networkMask;

    readonly attribute boolean IPV6Supported;

    readonly attribute wstring IPV6Address;

    readonly attribute unsigned long IPV6NetworkMaskPrefixLength;

    readonly attribute wstring hardwareAddress;

    readonly attribute HostNetworkInterfaceMediumType_T mediumType;

    readonly attribute HostNetworkInterfaceStatus_T status;

    readonly attribute HostNetworkInterfaceType_T interfaceType;

    readonly attribute boolean wireless;

    readonly attribute unsigned long InternalAndReservedAttribute1IHostNetworkInterface;

    readonly attribute unsigned long InternalAndReservedAttribute2IHostNetworkInterface;

    readonly attribute unsigned long InternalAndReservedAttribute3IHostNetworkInterface;

    readonly attribute unsigned long InternalAndReservedAttribute4IHostNetworkInterface;

    void enableStaticIPConfig (
        in wstring IPAddress,
        in wstring networkMask
    );

    void enableStaticIPConfigV6 (
        in wstring IPV6Address,
        in unsigned long IPV6NetworkMaskPrefixLength
    );

    void enableDynamicIPConfig();

    void DHCPRediscover();

    void InternalAndReservedMethod1IHostNetworkInterface();

    void InternalAndReservedMethod2IHostNetworkInterface();

}; /* interface IHostNetworkInterface */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IHostNetworkInterface_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_IHostNetworkInterface_GETTER_Name_TO_OBJ(obj) COM_FORWARD_IHostNetworkInterface_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_IHostNetworkInterface_GETTER_Name_TO_BASE(base) COM_FORWARD_IHostNetworkInterface_GETTER_Name_TO (base::)
#define COM_FORWARD_IHostNetworkInterface_GETTER_ShortName_TO(smth) NS_IMETHOD GetShortName (PRUnichar * * aShortName) { return smth GetShortName (aShortName); }
#define COM_FORWARD_IHostNetworkInterface_GETTER_ShortName_TO_OBJ(obj) COM_FORWARD_IHostNetworkInterface_GETTER_ShortName_TO ((obj)->)
#define COM_FORWARD_IHostNetworkInterface_GETTER_ShortName_TO_BASE(base) COM_FORWARD_IHostNetworkInterface_GETTER_ShortName_TO (base::)
#define COM_FORWARD_IHostNetworkInterface_GETTER_Id_TO(smth) NS_IMETHOD GetId (PRUnichar * * aId) { return smth GetId (aId); }
#define COM_FORWARD_IHostNetworkInterface_GETTER_Id_TO_OBJ(obj) COM_FORWARD_IHostNetworkInterface_GETTER_Id_TO ((obj)->)
#define COM_FORWARD_IHostNetworkInterface_GETTER_Id_TO_BASE(base) COM_FORWARD_IHostNetworkInterface_GETTER_Id_TO (base::)
#define COM_FORWARD_IHostNetworkInterface_GETTER_NetworkName_TO(smth) NS_IMETHOD GetNetworkName (PRUnichar * * aNetworkName) { return smth GetNetworkName (aNetworkName); }
#define COM_FORWARD_IHostNetworkInterface_GETTER_NetworkName_TO_OBJ(obj) COM_FORWARD_IHostNetworkInterface_GETTER_NetworkName_TO ((obj)->)
#define COM_FORWARD_IHostNetworkInterface_GETTER_NetworkName_TO_BASE(base) COM_FORWARD_IHostNetworkInterface_GETTER_NetworkName_TO (base::)
#define COM_FORWARD_IHostNetworkInterface_GETTER_DHCPEnabled_TO(smth) NS_IMETHOD GetDHCPEnabled (PRBool * aDHCPEnabled) { return smth GetDHCPEnabled (aDHCPEnabled); }
#define COM_FORWARD_IHostNetworkInterface_GETTER_DHCPEnabled_TO_OBJ(obj) COM_FORWARD_IHostNetworkInterface_GETTER_DHCPEnabled_TO ((obj)->)
#define COM_FORWARD_IHostNetworkInterface_GETTER_DHCPEnabled_TO_BASE(base) COM_FORWARD_IHostNetworkInterface_GETTER_DHCPEnabled_TO (base::)
#define COM_FORWARD_IHostNetworkInterface_GETTER_IPAddress_TO(smth) NS_IMETHOD GetIPAddress (PRUnichar * * aIPAddress) { return smth GetIPAddress (aIPAddress); }
#define COM_FORWARD_IHostNetworkInterface_GETTER_IPAddress_TO_OBJ(obj) COM_FORWARD_IHostNetworkInterface_GETTER_IPAddress_TO ((obj)->)
#define COM_FORWARD_IHostNetworkInterface_GETTER_IPAddress_TO_BASE(base) COM_FORWARD_IHostNetworkInterface_GETTER_IPAddress_TO (base::)
#define COM_FORWARD_IHostNetworkInterface_GETTER_NetworkMask_TO(smth) NS_IMETHOD GetNetworkMask (PRUnichar * * aNetworkMask) { return smth GetNetworkMask (aNetworkMask); }
#define COM_FORWARD_IHostNetworkInterface_GETTER_NetworkMask_TO_OBJ(obj) COM_FORWARD_IHostNetworkInterface_GETTER_NetworkMask_TO ((obj)->)
#define COM_FORWARD_IHostNetworkInterface_GETTER_NetworkMask_TO_BASE(base) COM_FORWARD_IHostNetworkInterface_GETTER_NetworkMask_TO (base::)
#define COM_FORWARD_IHostNetworkInterface_GETTER_IPV6Supported_TO(smth) NS_IMETHOD GetIPV6Supported (PRBool * aIPV6Supported) { return smth GetIPV6Supported (aIPV6Supported); }
#define COM_FORWARD_IHostNetworkInterface_GETTER_IPV6Supported_TO_OBJ(obj) COM_FORWARD_IHostNetworkInterface_GETTER_IPV6Supported_TO ((obj)->)
#define COM_FORWARD_IHostNetworkInterface_GETTER_IPV6Supported_TO_BASE(base) COM_FORWARD_IHostNetworkInterface_GETTER_IPV6Supported_TO (base::)
#define COM_FORWARD_IHostNetworkInterface_GETTER_IPV6Address_TO(smth) NS_IMETHOD GetIPV6Address (PRUnichar * * aIPV6Address) { return smth GetIPV6Address (aIPV6Address); }
#define COM_FORWARD_IHostNetworkInterface_GETTER_IPV6Address_TO_OBJ(obj) COM_FORWARD_IHostNetworkInterface_GETTER_IPV6Address_TO ((obj)->)
#define COM_FORWARD_IHostNetworkInterface_GETTER_IPV6Address_TO_BASE(base) COM_FORWARD_IHostNetworkInterface_GETTER_IPV6Address_TO (base::)
#define COM_FORWARD_IHostNetworkInterface_GETTER_IPV6NetworkMaskPrefixLength_TO(smth) NS_IMETHOD GetIPV6NetworkMaskPrefixLength (PRUint32 * aIPV6NetworkMaskPrefixLength) { return smth GetIPV6NetworkMaskPrefixLength (aIPV6NetworkMaskPrefixLength); }
#define COM_FORWARD_IHostNetworkInterface_GETTER_IPV6NetworkMaskPrefixLength_TO_OBJ(obj) COM_FORWARD_IHostNetworkInterface_GETTER_IPV6NetworkMaskPrefixLength_TO ((obj)->)
#define COM_FORWARD_IHostNetworkInterface_GETTER_IPV6NetworkMaskPrefixLength_TO_BASE(base) COM_FORWARD_IHostNetworkInterface_GETTER_IPV6NetworkMaskPrefixLength_TO (base::)
#define COM_FORWARD_IHostNetworkInterface_GETTER_HardwareAddress_TO(smth) NS_IMETHOD GetHardwareAddress (PRUnichar * * aHardwareAddress) { return smth GetHardwareAddress (aHardwareAddress); }
#define COM_FORWARD_IHostNetworkInterface_GETTER_HardwareAddress_TO_OBJ(obj) COM_FORWARD_IHostNetworkInterface_GETTER_HardwareAddress_TO ((obj)->)
#define COM_FORWARD_IHostNetworkInterface_GETTER_HardwareAddress_TO_BASE(base) COM_FORWARD_IHostNetworkInterface_GETTER_HardwareAddress_TO (base::)
#define COM_FORWARD_IHostNetworkInterface_GETTER_MediumType_TO(smth) NS_IMETHOD GetMediumType (PRUint32 * aMediumType) { return smth GetMediumType (aMediumType); }
#define COM_FORWARD_IHostNetworkInterface_GETTER_MediumType_TO_OBJ(obj) COM_FORWARD_IHostNetworkInterface_GETTER_MediumType_TO ((obj)->)
#define COM_FORWARD_IHostNetworkInterface_GETTER_MediumType_TO_BASE(base) COM_FORWARD_IHostNetworkInterface_GETTER_MediumType_TO (base::)
#define COM_FORWARD_IHostNetworkInterface_GETTER_Status_TO(smth) NS_IMETHOD GetStatus (PRUint32 * aStatus) { return smth GetStatus (aStatus); }
#define COM_FORWARD_IHostNetworkInterface_GETTER_Status_TO_OBJ(obj) COM_FORWARD_IHostNetworkInterface_GETTER_Status_TO ((obj)->)
#define COM_FORWARD_IHostNetworkInterface_GETTER_Status_TO_BASE(base) COM_FORWARD_IHostNetworkInterface_GETTER_Status_TO (base::)
#define COM_FORWARD_IHostNetworkInterface_GETTER_InterfaceType_TO(smth) NS_IMETHOD GetInterfaceType (PRUint32 * aInterfaceType) { return smth GetInterfaceType (aInterfaceType); }
#define COM_FORWARD_IHostNetworkInterface_GETTER_InterfaceType_TO_OBJ(obj) COM_FORWARD_IHostNetworkInterface_GETTER_InterfaceType_TO ((obj)->)
#define COM_FORWARD_IHostNetworkInterface_GETTER_InterfaceType_TO_BASE(base) COM_FORWARD_IHostNetworkInterface_GETTER_InterfaceType_TO (base::)
#define COM_FORWARD_IHostNetworkInterface_GETTER_Wireless_TO(smth) NS_IMETHOD GetWireless (PRBool * aWireless) { return smth GetWireless (aWireless); }
#define COM_FORWARD_IHostNetworkInterface_GETTER_Wireless_TO_OBJ(obj) COM_FORWARD_IHostNetworkInterface_GETTER_Wireless_TO ((obj)->)
#define COM_FORWARD_IHostNetworkInterface_GETTER_Wireless_TO_BASE(base) COM_FORWARD_IHostNetworkInterface_GETTER_Wireless_TO (base::)
#define COM_FORWARD_IHostNetworkInterface_EnableStaticIPConfig_TO(smth) NS_IMETHOD EnableStaticIPConfig (PRUnichar * aIPAddress, PRUnichar * aNetworkMask) { return smth EnableStaticIPConfig (aIPAddress, aNetworkMask); }
#define COM_FORWARD_IHostNetworkInterface_EnableStaticIPConfig_TO_OBJ(obj) COM_FORWARD_IHostNetworkInterface_EnableStaticIPConfig_TO ((obj)->)
#define COM_FORWARD_IHostNetworkInterface_EnableStaticIPConfig_TO_BASE(base) COM_FORWARD_IHostNetworkInterface_EnableStaticIPConfig_TO (base::)
#define COM_FORWARD_IHostNetworkInterface_EnableStaticIPConfigV6_TO(smth) NS_IMETHOD EnableStaticIPConfigV6 (PRUnichar * aIPV6Address, PRUint32 aIPV6NetworkMaskPrefixLength) { return smth EnableStaticIPConfigV6 (aIPV6Address, aIPV6NetworkMaskPrefixLength); }
#define COM_FORWARD_IHostNetworkInterface_EnableStaticIPConfigV6_TO_OBJ(obj) COM_FORWARD_IHostNetworkInterface_EnableStaticIPConfigV6_TO ((obj)->)
#define COM_FORWARD_IHostNetworkInterface_EnableStaticIPConfigV6_TO_BASE(base) COM_FORWARD_IHostNetworkInterface_EnableStaticIPConfigV6_TO (base::)
#define COM_FORWARD_IHostNetworkInterface_EnableDynamicIPConfig_TO(smth) NS_IMETHOD EnableDynamicIPConfig() { return smth EnableDynamicIPConfig(); }
#define COM_FORWARD_IHostNetworkInterface_EnableDynamicIPConfig_TO_OBJ(obj) COM_FORWARD_IHostNetworkInterface_EnableDynamicIPConfig_TO ((obj)->)
#define COM_FORWARD_IHostNetworkInterface_EnableDynamicIPConfig_TO_BASE(base) COM_FORWARD_IHostNetworkInterface_EnableDynamicIPConfig_TO (base::)
#define COM_FORWARD_IHostNetworkInterface_DHCPRediscover_TO(smth) NS_IMETHOD DHCPRediscover() { return smth DHCPRediscover(); }
#define COM_FORWARD_IHostNetworkInterface_DHCPRediscover_TO_OBJ(obj) COM_FORWARD_IHostNetworkInterface_DHCPRediscover_TO ((obj)->)
#define COM_FORWARD_IHostNetworkInterface_DHCPRediscover_TO_BASE(base) COM_FORWARD_IHostNetworkInterface_DHCPRediscover_TO (base::)
#define COM_FORWARD_IHostNetworkInterface_TO(smth) NS_FORWARD_IHOSTNETWORKINTERFACE (smth)
#define COM_FORWARD_IHostNetworkInterface_TO_OBJ(obj) COM_FORWARD_IHostNetworkInterface_TO ((obj)->)
#define COM_FORWARD_IHostNetworkInterface_TO_BASE(base) COM_FORWARD_IHostNetworkInterface_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IHostNetworkInterface;
%}

[
    uuid(e8c25d4d-ac97-4c16-b3e2-81bd8a57cc27),
    scriptable
]
interface IHostVideoInputDevice : nsISupports
{
    readonly attribute wstring name;

    readonly attribute wstring path;

    readonly attribute wstring alias;

    readonly attribute unsigned long InternalAndReservedAttribute1IHostVideoInputDevice;

    readonly attribute unsigned long InternalAndReservedAttribute2IHostVideoInputDevice;

    readonly attribute unsigned long InternalAndReservedAttribute3IHostVideoInputDevice;

    readonly attribute unsigned long InternalAndReservedAttribute4IHostVideoInputDevice;

}; /* interface IHostVideoInputDevice */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IHostVideoInputDevice_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_IHostVideoInputDevice_GETTER_Name_TO_OBJ(obj) COM_FORWARD_IHostVideoInputDevice_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_IHostVideoInputDevice_GETTER_Name_TO_BASE(base) COM_FORWARD_IHostVideoInputDevice_GETTER_Name_TO (base::)
#define COM_FORWARD_IHostVideoInputDevice_GETTER_Path_TO(smth) NS_IMETHOD GetPath (PRUnichar * * aPath) { return smth GetPath (aPath); }
#define COM_FORWARD_IHostVideoInputDevice_GETTER_Path_TO_OBJ(obj) COM_FORWARD_IHostVideoInputDevice_GETTER_Path_TO ((obj)->)
#define COM_FORWARD_IHostVideoInputDevice_GETTER_Path_TO_BASE(base) COM_FORWARD_IHostVideoInputDevice_GETTER_Path_TO (base::)
#define COM_FORWARD_IHostVideoInputDevice_GETTER_Alias_TO(smth) NS_IMETHOD GetAlias (PRUnichar * * aAlias) { return smth GetAlias (aAlias); }
#define COM_FORWARD_IHostVideoInputDevice_GETTER_Alias_TO_OBJ(obj) COM_FORWARD_IHostVideoInputDevice_GETTER_Alias_TO ((obj)->)
#define COM_FORWARD_IHostVideoInputDevice_GETTER_Alias_TO_BASE(base) COM_FORWARD_IHostVideoInputDevice_GETTER_Alias_TO (base::)
#define COM_FORWARD_IHostVideoInputDevice_TO(smth) NS_FORWARD_IHOSTVIDEOINPUTDEVICE (smth)
#define COM_FORWARD_IHostVideoInputDevice_TO_OBJ(obj) COM_FORWARD_IHostVideoInputDevice_TO ((obj)->)
#define COM_FORWARD_IHostVideoInputDevice_TO_BASE(base) COM_FORWARD_IHostVideoInputDevice_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IHostVideoInputDevice;
%}

[
    uuid(6fa2671b-0547-448e-bc7c-94e9e173bf57),
    scriptable
]
interface IHostUpdate : nsISupports
{
    readonly attribute unsigned long InternalAndReservedAttribute1IHostUpdate;

    readonly attribute unsigned long InternalAndReservedAttribute2IHostUpdate;

    readonly attribute unsigned long InternalAndReservedAttribute3IHostUpdate;

    readonly attribute unsigned long InternalAndReservedAttribute4IHostUpdate;

    readonly attribute unsigned long InternalAndReservedAttribute5IHostUpdate;

    readonly attribute unsigned long InternalAndReservedAttribute6IHostUpdate;

    readonly attribute unsigned long InternalAndReservedAttribute7IHostUpdate;

    readonly attribute unsigned long InternalAndReservedAttribute8IHostUpdate;

    readonly attribute unsigned long InternalAndReservedAttribute9IHostUpdate;

    readonly attribute unsigned long InternalAndReservedAttribute10IHostUpdate;

    readonly attribute unsigned long InternalAndReservedAttribute11IHostUpdate;

    readonly attribute unsigned long InternalAndReservedAttribute12IHostUpdate;

    readonly attribute unsigned long InternalAndReservedAttribute13IHostUpdate;

    readonly attribute unsigned long InternalAndReservedAttribute14IHostUpdate;

    readonly attribute unsigned long InternalAndReservedAttribute15IHostUpdate;

    readonly attribute unsigned long InternalAndReservedAttribute16IHostUpdate;

    readonly attribute unsigned long InternalAndReservedAttribute17IHostUpdate;

    readonly attribute unsigned long InternalAndReservedAttribute18IHostUpdate;

    readonly attribute unsigned long InternalAndReservedAttribute19IHostUpdate;

    readonly attribute unsigned long InternalAndReservedAttribute20IHostUpdate;

    readonly attribute unsigned long InternalAndReservedAttribute21IHostUpdate;

    readonly attribute unsigned long InternalAndReservedAttribute22IHostUpdate;

    readonly attribute unsigned long InternalAndReservedAttribute23IHostUpdate;

    readonly attribute unsigned long InternalAndReservedAttribute24IHostUpdate;

    void InternalAndReservedMethod1IHostUpdate();

    void InternalAndReservedMethod2IHostUpdate();

    void InternalAndReservedMethod3IHostUpdate();

    void InternalAndReservedMethod4IHostUpdate();

    void InternalAndReservedMethod5IHostUpdate();

    void InternalAndReservedMethod6IHostUpdate();

    void InternalAndReservedMethod7IHostUpdate();

    void InternalAndReservedMethod8IHostUpdate();

    void InternalAndReservedMethod9IHostUpdate();

    void InternalAndReservedMethod10IHostUpdate();

    void InternalAndReservedMethod11IHostUpdate();

    void InternalAndReservedMethod12IHostUpdate();

}; /* interface IHostUpdate */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IHostUpdate_TO(smth) NS_FORWARD_IHOSTUPDATE (smth)
#define COM_FORWARD_IHostUpdate_TO_OBJ(obj) COM_FORWARD_IHostUpdate_TO ((obj)->)
#define COM_FORWARD_IHostUpdate_TO_BASE(base) COM_FORWARD_IHostUpdate_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IHostUpdate;
%}

[
    uuid(16ced992-5fdc-4aba-aff5-6a39bbd7c38b),
    scriptable
]
interface IHost : nsISupports
{
    void getDVDDrives (
        out unsigned long DVDDrivesSize,
        [array, size_is(DVDDrivesSize), retval] out IMedium DVDDrives
    );

    void getFloppyDrives (
        out unsigned long floppyDrivesSize,
        [array, size_is(floppyDrivesSize), retval] out IMedium floppyDrives
    );

    void getUSBDevices (
        out unsigned long USBDevicesSize,
        [array, size_is(USBDevicesSize), retval] out IHostUSBDevice USBDevices
    );

    void getUSBDeviceFilters (
        out unsigned long USBDeviceFiltersSize,
        [array, size_is(USBDeviceFiltersSize), retval] out IHostUSBDeviceFilter USBDeviceFilters
    );

    void getNetworkInterfaces (
        out unsigned long networkInterfacesSize,
        [array, size_is(networkInterfacesSize), retval] out IHostNetworkInterface networkInterfaces
    );

    void getNameServers (
        out unsigned long nameServersSize,
        [array, size_is(nameServersSize), retval] out wstring nameServers
    );

    readonly attribute wstring domainName;

    void getSearchStrings (
        out unsigned long searchStringsSize,
        [array, size_is(searchStringsSize), retval] out wstring searchStrings
    );

    readonly attribute unsigned long processorCount;

    readonly attribute unsigned long processorOnlineCount;

    readonly attribute unsigned long processorCoreCount;

    readonly attribute unsigned long processorOnlineCoreCount;

    readonly attribute unsigned long memorySize;

    readonly attribute unsigned long memoryAvailable;

    readonly attribute wstring operatingSystem;

    readonly attribute wstring OSVersion;

    readonly attribute long long UTCTime;

    readonly attribute boolean acceleration3DAvailable;

    void getVideoInputDevices (
        out unsigned long videoInputDevicesSize,
        [array, size_is(videoInputDevicesSize), retval] out IHostVideoInputDevice videoInputDevices
    );

    readonly attribute IHostUpdate update;

    readonly attribute unsigned long InternalAndReservedAttribute1IHost;

    readonly attribute unsigned long InternalAndReservedAttribute2IHost;

    readonly attribute unsigned long InternalAndReservedAttribute3IHost;

    readonly attribute unsigned long InternalAndReservedAttribute4IHost;

    readonly attribute unsigned long InternalAndReservedAttribute5IHost;

    readonly attribute unsigned long InternalAndReservedAttribute6IHost;

    readonly attribute unsigned long InternalAndReservedAttribute7IHost;

    readonly attribute unsigned long InternalAndReservedAttribute8IHost;

    readonly attribute unsigned long InternalAndReservedAttribute9IHost;

    readonly attribute unsigned long InternalAndReservedAttribute10IHost;

    readonly attribute unsigned long InternalAndReservedAttribute11IHost;

    readonly attribute unsigned long InternalAndReservedAttribute12IHost;

    void getProcessorSpeed (
        in unsigned long cpuId,
        [retval] out unsigned long speed
    );

    void getProcessorFeature (
        in ProcessorFeature_T feature,
        [retval] out boolean supported
    );

    void getProcessorDescription (
        in unsigned long cpuId,
        [retval] out wstring description
    );

    void getProcessorCPUIDLeaf (
        in unsigned long cpuId,
        in unsigned long leaf,
        in unsigned long subLeaf,
        out unsigned long valEax,
        out unsigned long valEbx,
        out unsigned long valEcx,
        out unsigned long valEdx
    );

    void createHostOnlyNetworkInterface (
        out IHostNetworkInterface hostInterface,
        [retval] out IProgress progress
    );

    void removeHostOnlyNetworkInterface (
        in wstring id,
        [retval] out IProgress progress
    );

    void createUSBDeviceFilter (
        in wstring name,
        [retval] out IHostUSBDeviceFilter filter
    );

    void insertUSBDeviceFilter (
        in unsigned long position,
        in IHostUSBDeviceFilter filter
    );

    void removeUSBDeviceFilter (
        in unsigned long position
    );

    void findHostDVDDrive (
        in wstring name,
        [retval] out IMedium drive
    );

    void findHostFloppyDrive (
        in wstring name,
        [retval] out IMedium drive
    );

    void findHostNetworkInterfaceByName (
        in wstring name,
        [retval] out IHostNetworkInterface networkInterface
    );

    void findHostNetworkInterfaceById (
        in wstring id,
        [retval] out IHostNetworkInterface networkInterface
    );

    void findHostNetworkInterfacesOfType (
        in HostNetworkInterfaceType_T type,
        out unsigned long networkInterfacesSize,
        [array, size_is(networkInterfacesSize) , retval] out IHostNetworkInterface networkInterfaces
    );

    void findUSBDeviceById (
        in wstring id,
        [retval] out IHostUSBDevice device
    );

    void findUSBDeviceByAddress (
        in wstring name,
        [retval] out IHostUSBDevice device
    );

    void generateMACAddress (
        [retval] out wstring address
    );

    void addUSBDeviceSource (
        in wstring backend,
        in wstring id,
        in wstring address,
        in unsigned long propertyNamesSize,
        [array, size_is(propertyNamesSize)] in wstring propertyNames,
        in unsigned long propertyValuesSize,
        [array, size_is(propertyValuesSize)] in wstring propertyValues
    );

    void removeUSBDeviceSource (
        in wstring id
    );

    void InternalAndReservedMethod1IHost();

    void InternalAndReservedMethod2IHost();

    void InternalAndReservedMethod3IHost();

    void InternalAndReservedMethod4IHost();

    void InternalAndReservedMethod5IHost();

    void InternalAndReservedMethod6IHost();

}; /* interface IHost */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IHost_GETTER_DVDDrives_TO(smth) NS_IMETHOD GetDVDDrives (PRUint32 * aDVDDrivesSize, IMedium * * * aDVDDrives) { return smth GetDVDDrives (aDVDDrivesSize, aDVDDrives); }
#define COM_FORWARD_IHost_GETTER_DVDDrives_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_DVDDrives_TO ((obj)->)
#define COM_FORWARD_IHost_GETTER_DVDDrives_TO_BASE(base) COM_FORWARD_IHost_GETTER_DVDDrives_TO (base::)
#define COM_FORWARD_IHost_GETTER_FloppyDrives_TO(smth) NS_IMETHOD GetFloppyDrives (PRUint32 * aFloppyDrivesSize, IMedium * * * aFloppyDrives) { return smth GetFloppyDrives (aFloppyDrivesSize, aFloppyDrives); }
#define COM_FORWARD_IHost_GETTER_FloppyDrives_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_FloppyDrives_TO ((obj)->)
#define COM_FORWARD_IHost_GETTER_FloppyDrives_TO_BASE(base) COM_FORWARD_IHost_GETTER_FloppyDrives_TO (base::)
#define COM_FORWARD_IHost_GETTER_USBDevices_TO(smth) NS_IMETHOD GetUSBDevices (PRUint32 * aUSBDevicesSize, IHostUSBDevice * * * aUSBDevices) { return smth GetUSBDevices (aUSBDevicesSize, aUSBDevices); }
#define COM_FORWARD_IHost_GETTER_USBDevices_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_USBDevices_TO ((obj)->)
#define COM_FORWARD_IHost_GETTER_USBDevices_TO_BASE(base) COM_FORWARD_IHost_GETTER_USBDevices_TO (base::)
#define COM_FORWARD_IHost_GETTER_USBDeviceFilters_TO(smth) NS_IMETHOD GetUSBDeviceFilters (PRUint32 * aUSBDeviceFiltersSize, IHostUSBDeviceFilter * * * aUSBDeviceFilters) { return smth GetUSBDeviceFilters (aUSBDeviceFiltersSize, aUSBDeviceFilters); }
#define COM_FORWARD_IHost_GETTER_USBDeviceFilters_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_USBDeviceFilters_TO ((obj)->)
#define COM_FORWARD_IHost_GETTER_USBDeviceFilters_TO_BASE(base) COM_FORWARD_IHost_GETTER_USBDeviceFilters_TO (base::)
#define COM_FORWARD_IHost_GETTER_NetworkInterfaces_TO(smth) NS_IMETHOD GetNetworkInterfaces (PRUint32 * aNetworkInterfacesSize, IHostNetworkInterface * * * aNetworkInterfaces) { return smth GetNetworkInterfaces (aNetworkInterfacesSize, aNetworkInterfaces); }
#define COM_FORWARD_IHost_GETTER_NetworkInterfaces_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_NetworkInterfaces_TO ((obj)->)
#define COM_FORWARD_IHost_GETTER_NetworkInterfaces_TO_BASE(base) COM_FORWARD_IHost_GETTER_NetworkInterfaces_TO (base::)
#define COM_FORWARD_IHost_GETTER_NameServers_TO(smth) NS_IMETHOD GetNameServers (PRUint32 * aNameServersSize, PRUnichar * * * aNameServers) { return smth GetNameServers (aNameServersSize, aNameServers); }
#define COM_FORWARD_IHost_GETTER_NameServers_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_NameServers_TO ((obj)->)
#define COM_FORWARD_IHost_GETTER_NameServers_TO_BASE(base) COM_FORWARD_IHost_GETTER_NameServers_TO (base::)
#define COM_FORWARD_IHost_GETTER_DomainName_TO(smth) NS_IMETHOD GetDomainName (PRUnichar * * aDomainName) { return smth GetDomainName (aDomainName); }
#define COM_FORWARD_IHost_GETTER_DomainName_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_DomainName_TO ((obj)->)
#define COM_FORWARD_IHost_GETTER_DomainName_TO_BASE(base) COM_FORWARD_IHost_GETTER_DomainName_TO (base::)
#define COM_FORWARD_IHost_GETTER_SearchStrings_TO(smth) NS_IMETHOD GetSearchStrings (PRUint32 * aSearchStringsSize, PRUnichar * * * aSearchStrings) { return smth GetSearchStrings (aSearchStringsSize, aSearchStrings); }
#define COM_FORWARD_IHost_GETTER_SearchStrings_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_SearchStrings_TO ((obj)->)
#define COM_FORWARD_IHost_GETTER_SearchStrings_TO_BASE(base) COM_FORWARD_IHost_GETTER_SearchStrings_TO (base::)
#define COM_FORWARD_IHost_GETTER_ProcessorCount_TO(smth) NS_IMETHOD GetProcessorCount (PRUint32 * aProcessorCount) { return smth GetProcessorCount (aProcessorCount); }
#define COM_FORWARD_IHost_GETTER_ProcessorCount_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_ProcessorCount_TO ((obj)->)
#define COM_FORWARD_IHost_GETTER_ProcessorCount_TO_BASE(base) COM_FORWARD_IHost_GETTER_ProcessorCount_TO (base::)
#define COM_FORWARD_IHost_GETTER_ProcessorOnlineCount_TO(smth) NS_IMETHOD GetProcessorOnlineCount (PRUint32 * aProcessorOnlineCount) { return smth GetProcessorOnlineCount (aProcessorOnlineCount); }
#define COM_FORWARD_IHost_GETTER_ProcessorOnlineCount_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_ProcessorOnlineCount_TO ((obj)->)
#define COM_FORWARD_IHost_GETTER_ProcessorOnlineCount_TO_BASE(base) COM_FORWARD_IHost_GETTER_ProcessorOnlineCount_TO (base::)
#define COM_FORWARD_IHost_GETTER_ProcessorCoreCount_TO(smth) NS_IMETHOD GetProcessorCoreCount (PRUint32 * aProcessorCoreCount) { return smth GetProcessorCoreCount (aProcessorCoreCount); }
#define COM_FORWARD_IHost_GETTER_ProcessorCoreCount_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_ProcessorCoreCount_TO ((obj)->)
#define COM_FORWARD_IHost_GETTER_ProcessorCoreCount_TO_BASE(base) COM_FORWARD_IHost_GETTER_ProcessorCoreCount_TO (base::)
#define COM_FORWARD_IHost_GETTER_ProcessorOnlineCoreCount_TO(smth) NS_IMETHOD GetProcessorOnlineCoreCount (PRUint32 * aProcessorOnlineCoreCount) { return smth GetProcessorOnlineCoreCount (aProcessorOnlineCoreCount); }
#define COM_FORWARD_IHost_GETTER_ProcessorOnlineCoreCount_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_ProcessorOnlineCoreCount_TO ((obj)->)
#define COM_FORWARD_IHost_GETTER_ProcessorOnlineCoreCount_TO_BASE(base) COM_FORWARD_IHost_GETTER_ProcessorOnlineCoreCount_TO (base::)
#define COM_FORWARD_IHost_GETTER_MemorySize_TO(smth) NS_IMETHOD GetMemorySize (PRUint32 * aMemorySize) { return smth GetMemorySize (aMemorySize); }
#define COM_FORWARD_IHost_GETTER_MemorySize_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_MemorySize_TO ((obj)->)
#define COM_FORWARD_IHost_GETTER_MemorySize_TO_BASE(base) COM_FORWARD_IHost_GETTER_MemorySize_TO (base::)
#define COM_FORWARD_IHost_GETTER_MemoryAvailable_TO(smth) NS_IMETHOD GetMemoryAvailable (PRUint32 * aMemoryAvailable) { return smth GetMemoryAvailable (aMemoryAvailable); }
#define COM_FORWARD_IHost_GETTER_MemoryAvailable_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_MemoryAvailable_TO ((obj)->)
#define COM_FORWARD_IHost_GETTER_MemoryAvailable_TO_BASE(base) COM_FORWARD_IHost_GETTER_MemoryAvailable_TO (base::)
#define COM_FORWARD_IHost_GETTER_OperatingSystem_TO(smth) NS_IMETHOD GetOperatingSystem (PRUnichar * * aOperatingSystem) { return smth GetOperatingSystem (aOperatingSystem); }
#define COM_FORWARD_IHost_GETTER_OperatingSystem_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_OperatingSystem_TO ((obj)->)
#define COM_FORWARD_IHost_GETTER_OperatingSystem_TO_BASE(base) COM_FORWARD_IHost_GETTER_OperatingSystem_TO (base::)
#define COM_FORWARD_IHost_GETTER_OSVersion_TO(smth) NS_IMETHOD GetOSVersion (PRUnichar * * aOSVersion) { return smth GetOSVersion (aOSVersion); }
#define COM_FORWARD_IHost_GETTER_OSVersion_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_OSVersion_TO ((obj)->)
#define COM_FORWARD_IHost_GETTER_OSVersion_TO_BASE(base) COM_FORWARD_IHost_GETTER_OSVersion_TO (base::)
#define COM_FORWARD_IHost_GETTER_UTCTime_TO(smth) NS_IMETHOD GetUTCTime (PRInt64 * aUTCTime) { return smth GetUTCTime (aUTCTime); }
#define COM_FORWARD_IHost_GETTER_UTCTime_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_UTCTime_TO ((obj)->)
#define COM_FORWARD_IHost_GETTER_UTCTime_TO_BASE(base) COM_FORWARD_IHost_GETTER_UTCTime_TO (base::)
#define COM_FORWARD_IHost_GETTER_Acceleration3DAvailable_TO(smth) NS_IMETHOD GetAcceleration3DAvailable (PRBool * aAcceleration3DAvailable) { return smth GetAcceleration3DAvailable (aAcceleration3DAvailable); }
#define COM_FORWARD_IHost_GETTER_Acceleration3DAvailable_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_Acceleration3DAvailable_TO ((obj)->)
#define COM_FORWARD_IHost_GETTER_Acceleration3DAvailable_TO_BASE(base) COM_FORWARD_IHost_GETTER_Acceleration3DAvailable_TO (base::)
#define COM_FORWARD_IHost_GETTER_VideoInputDevices_TO(smth) NS_IMETHOD GetVideoInputDevices (PRUint32 * aVideoInputDevicesSize, IHostVideoInputDevice * * * aVideoInputDevices) { return smth GetVideoInputDevices (aVideoInputDevicesSize, aVideoInputDevices); }
#define COM_FORWARD_IHost_GETTER_VideoInputDevices_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_VideoInputDevices_TO ((obj)->)
#define COM_FORWARD_IHost_GETTER_VideoInputDevices_TO_BASE(base) COM_FORWARD_IHost_GETTER_VideoInputDevices_TO (base::)
#define COM_FORWARD_IHost_GETTER_Update_TO(smth) NS_IMETHOD GetUpdate (IHostUpdate * * aUpdate) { return smth GetUpdate (aUpdate); }
#define COM_FORWARD_IHost_GETTER_Update_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_Update_TO ((obj)->)
#define COM_FORWARD_IHost_GETTER_Update_TO_BASE(base) COM_FORWARD_IHost_GETTER_Update_TO (base::)
#define COM_FORWARD_IHost_GetProcessorSpeed_TO(smth) NS_IMETHOD GetProcessorSpeed (PRUint32 aCpuId, PRUint32 * aSpeed) { return smth GetProcessorSpeed (aCpuId, aSpeed); }
#define COM_FORWARD_IHost_GetProcessorSpeed_TO_OBJ(obj) COM_FORWARD_IHost_GetProcessorSpeed_TO ((obj)->)
#define COM_FORWARD_IHost_GetProcessorSpeed_TO_BASE(base) COM_FORWARD_IHost_GetProcessorSpeed_TO (base::)
#define COM_FORWARD_IHost_GetProcessorFeature_TO(smth) NS_IMETHOD GetProcessorFeature (PRUint32 aFeature, PRBool * aSupported) { return smth GetProcessorFeature (aFeature, aSupported); }
#define COM_FORWARD_IHost_GetProcessorFeature_TO_OBJ(obj) COM_FORWARD_IHost_GetProcessorFeature_TO ((obj)->)
#define COM_FORWARD_IHost_GetProcessorFeature_TO_BASE(base) COM_FORWARD_IHost_GetProcessorFeature_TO (base::)
#define COM_FORWARD_IHost_GetProcessorDescription_TO(smth) NS_IMETHOD GetProcessorDescription (PRUint32 aCpuId, PRUnichar * * aDescription) { return smth GetProcessorDescription (aCpuId, aDescription); }
#define COM_FORWARD_IHost_GetProcessorDescription_TO_OBJ(obj) COM_FORWARD_IHost_GetProcessorDescription_TO ((obj)->)
#define COM_FORWARD_IHost_GetProcessorDescription_TO_BASE(base) COM_FORWARD_IHost_GetProcessorDescription_TO (base::)
#define COM_FORWARD_IHost_GetProcessorCPUIDLeaf_TO(smth) NS_IMETHOD GetProcessorCPUIDLeaf (PRUint32 aCpuId, PRUint32 aLeaf, PRUint32 aSubLeaf, PRUint32 * aValEax, PRUint32 * aValEbx, PRUint32 * aValEcx, PRUint32 * aValEdx) { return smth GetProcessorCPUIDLeaf (aCpuId, aLeaf, aSubLeaf, aValEax, aValEbx, aValEcx, aValEdx); }
#define COM_FORWARD_IHost_GetProcessorCPUIDLeaf_TO_OBJ(obj) COM_FORWARD_IHost_GetProcessorCPUIDLeaf_TO ((obj)->)
#define COM_FORWARD_IHost_GetProcessorCPUIDLeaf_TO_BASE(base) COM_FORWARD_IHost_GetProcessorCPUIDLeaf_TO (base::)
#define COM_FORWARD_IHost_CreateHostOnlyNetworkInterface_TO(smth) NS_IMETHOD CreateHostOnlyNetworkInterface (IHostNetworkInterface * * aHostInterface, IProgress * * aProgress) { return smth CreateHostOnlyNetworkInterface (aHostInterface, aProgress); }
#define COM_FORWARD_IHost_CreateHostOnlyNetworkInterface_TO_OBJ(obj) COM_FORWARD_IHost_CreateHostOnlyNetworkInterface_TO ((obj)->)
#define COM_FORWARD_IHost_CreateHostOnlyNetworkInterface_TO_BASE(base) COM_FORWARD_IHost_CreateHostOnlyNetworkInterface_TO (base::)
#define COM_FORWARD_IHost_RemoveHostOnlyNetworkInterface_TO(smth) NS_IMETHOD RemoveHostOnlyNetworkInterface (PRUnichar * aId, IProgress * * aProgress) { return smth RemoveHostOnlyNetworkInterface (aId, aProgress); }
#define COM_FORWARD_IHost_RemoveHostOnlyNetworkInterface_TO_OBJ(obj) COM_FORWARD_IHost_RemoveHostOnlyNetworkInterface_TO ((obj)->)
#define COM_FORWARD_IHost_RemoveHostOnlyNetworkInterface_TO_BASE(base) COM_FORWARD_IHost_RemoveHostOnlyNetworkInterface_TO (base::)
#define COM_FORWARD_IHost_CreateUSBDeviceFilter_TO(smth) NS_IMETHOD CreateUSBDeviceFilter (PRUnichar * aName, IHostUSBDeviceFilter * * aFilter) { return smth CreateUSBDeviceFilter (aName, aFilter); }
#define COM_FORWARD_IHost_CreateUSBDeviceFilter_TO_OBJ(obj) COM_FORWARD_IHost_CreateUSBDeviceFilter_TO ((obj)->)
#define COM_FORWARD_IHost_CreateUSBDeviceFilter_TO_BASE(base) COM_FORWARD_IHost_CreateUSBDeviceFilter_TO (base::)
#define COM_FORWARD_IHost_InsertUSBDeviceFilter_TO(smth) NS_IMETHOD InsertUSBDeviceFilter (PRUint32 aPosition, IHostUSBDeviceFilter * aFilter) { return smth InsertUSBDeviceFilter (aPosition, aFilter); }
#define COM_FORWARD_IHost_InsertUSBDeviceFilter_TO_OBJ(obj) COM_FORWARD_IHost_InsertUSBDeviceFilter_TO ((obj)->)
#define COM_FORWARD_IHost_InsertUSBDeviceFilter_TO_BASE(base) COM_FORWARD_IHost_InsertUSBDeviceFilter_TO (base::)
#define COM_FORWARD_IHost_RemoveUSBDeviceFilter_TO(smth) NS_IMETHOD RemoveUSBDeviceFilter (PRUint32 aPosition) { return smth RemoveUSBDeviceFilter (aPosition); }
#define COM_FORWARD_IHost_RemoveUSBDeviceFilter_TO_OBJ(obj) COM_FORWARD_IHost_RemoveUSBDeviceFilter_TO ((obj)->)
#define COM_FORWARD_IHost_RemoveUSBDeviceFilter_TO_BASE(base) COM_FORWARD_IHost_RemoveUSBDeviceFilter_TO (base::)
#define COM_FORWARD_IHost_FindHostDVDDrive_TO(smth) NS_IMETHOD FindHostDVDDrive (PRUnichar * aName, IMedium * * aDrive) { return smth FindHostDVDDrive (aName, aDrive); }
#define COM_FORWARD_IHost_FindHostDVDDrive_TO_OBJ(obj) COM_FORWARD_IHost_FindHostDVDDrive_TO ((obj)->)
#define COM_FORWARD_IHost_FindHostDVDDrive_TO_BASE(base) COM_FORWARD_IHost_FindHostDVDDrive_TO (base::)
#define COM_FORWARD_IHost_FindHostFloppyDrive_TO(smth) NS_IMETHOD FindHostFloppyDrive (PRUnichar * aName, IMedium * * aDrive) { return smth FindHostFloppyDrive (aName, aDrive); }
#define COM_FORWARD_IHost_FindHostFloppyDrive_TO_OBJ(obj) COM_FORWARD_IHost_FindHostFloppyDrive_TO ((obj)->)
#define COM_FORWARD_IHost_FindHostFloppyDrive_TO_BASE(base) COM_FORWARD_IHost_FindHostFloppyDrive_TO (base::)
#define COM_FORWARD_IHost_FindHostNetworkInterfaceByName_TO(smth) NS_IMETHOD FindHostNetworkInterfaceByName (PRUnichar * aName, IHostNetworkInterface * * aNetworkInterface) { return smth FindHostNetworkInterfaceByName (aName, aNetworkInterface); }
#define COM_FORWARD_IHost_FindHostNetworkInterfaceByName_TO_OBJ(obj) COM_FORWARD_IHost_FindHostNetworkInterfaceByName_TO ((obj)->)
#define COM_FORWARD_IHost_FindHostNetworkInterfaceByName_TO_BASE(base) COM_FORWARD_IHost_FindHostNetworkInterfaceByName_TO (base::)
#define COM_FORWARD_IHost_FindHostNetworkInterfaceById_TO(smth) NS_IMETHOD FindHostNetworkInterfaceById (PRUnichar * aId, IHostNetworkInterface * * aNetworkInterface) { return smth FindHostNetworkInterfaceById (aId, aNetworkInterface); }
#define COM_FORWARD_IHost_FindHostNetworkInterfaceById_TO_OBJ(obj) COM_FORWARD_IHost_FindHostNetworkInterfaceById_TO ((obj)->)
#define COM_FORWARD_IHost_FindHostNetworkInterfaceById_TO_BASE(base) COM_FORWARD_IHost_FindHostNetworkInterfaceById_TO (base::)
#define COM_FORWARD_IHost_FindHostNetworkInterfacesOfType_TO(smth) NS_IMETHOD FindHostNetworkInterfacesOfType (PRUint32 aType, PRUint32 * aNetworkInterfacesSize, IHostNetworkInterface * * * aNetworkInterfaces) { return smth FindHostNetworkInterfacesOfType (aType, aNetworkInterfacesSize, aNetworkInterfaces); }
#define COM_FORWARD_IHost_FindHostNetworkInterfacesOfType_TO_OBJ(obj) COM_FORWARD_IHost_FindHostNetworkInterfacesOfType_TO ((obj)->)
#define COM_FORWARD_IHost_FindHostNetworkInterfacesOfType_TO_BASE(base) COM_FORWARD_IHost_FindHostNetworkInterfacesOfType_TO (base::)
#define COM_FORWARD_IHost_FindUSBDeviceById_TO(smth) NS_IMETHOD FindUSBDeviceById (PRUnichar * aId, IHostUSBDevice * * aDevice) { return smth FindUSBDeviceById (aId, aDevice); }
#define COM_FORWARD_IHost_FindUSBDeviceById_TO_OBJ(obj) COM_FORWARD_IHost_FindUSBDeviceById_TO ((obj)->)
#define COM_FORWARD_IHost_FindUSBDeviceById_TO_BASE(base) COM_FORWARD_IHost_FindUSBDeviceById_TO (base::)
#define COM_FORWARD_IHost_FindUSBDeviceByAddress_TO(smth) NS_IMETHOD FindUSBDeviceByAddress (PRUnichar * aName, IHostUSBDevice * * aDevice) { return smth FindUSBDeviceByAddress (aName, aDevice); }
#define COM_FORWARD_IHost_FindUSBDeviceByAddress_TO_OBJ(obj) COM_FORWARD_IHost_FindUSBDeviceByAddress_TO ((obj)->)
#define COM_FORWARD_IHost_FindUSBDeviceByAddress_TO_BASE(base) COM_FORWARD_IHost_FindUSBDeviceByAddress_TO (base::)
#define COM_FORWARD_IHost_GenerateMACAddress_TO(smth) NS_IMETHOD GenerateMACAddress (PRUnichar * * aAddress) { return smth GenerateMACAddress (aAddress); }
#define COM_FORWARD_IHost_GenerateMACAddress_TO_OBJ(obj) COM_FORWARD_IHost_GenerateMACAddress_TO ((obj)->)
#define COM_FORWARD_IHost_GenerateMACAddress_TO_BASE(base) COM_FORWARD_IHost_GenerateMACAddress_TO (base::)
#define COM_FORWARD_IHost_AddUSBDeviceSource_TO(smth) NS_IMETHOD AddUSBDeviceSource (PRUnichar * aBackend, PRUnichar * aId, PRUnichar * aAddress, PRUint32 aPropertyNamesSize, PRUnichar * * aPropertyNames, PRUint32 aPropertyValuesSize, PRUnichar * * aPropertyValues) { return smth AddUSBDeviceSource (aBackend, aId, aAddress, aPropertyNamesSize+++, aPropertyNames, aPropertyValuesSize, aPropertyValues); }
#define COM_FORWARD_IHost_AddUSBDeviceSource_TO_OBJ(obj) COM_FORWARD_IHost_AddUSBDeviceSource_TO ((obj)->)
#define COM_FORWARD_IHost_AddUSBDeviceSource_TO_BASE(base) COM_FORWARD_IHost_AddUSBDeviceSource_TO (base::)
#define COM_FORWARD_IHost_RemoveUSBDeviceSource_TO(smth) NS_IMETHOD RemoveUSBDeviceSource (PRUnichar * aId) { return smth RemoveUSBDeviceSource (aId); }
#define COM_FORWARD_IHost_RemoveUSBDeviceSource_TO_OBJ(obj) COM_FORWARD_IHost_RemoveUSBDeviceSource_TO ((obj)->)
#define COM_FORWARD_IHost_RemoveUSBDeviceSource_TO_BASE(base) COM_FORWARD_IHost_RemoveUSBDeviceSource_TO (base::)
#define COM_FORWARD_IHost_TO(smth) NS_FORWARD_IHOST (smth)
#define COM_FORWARD_IHost_TO_OBJ(obj) COM_FORWARD_IHost_TO ((obj)->)
#define COM_FORWARD_IHost_TO_BASE(base) COM_FORWARD_IHost_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IHost;
%}

[
    uuid(027bc463-929c-40e8-bf16-fea557cd8e7e),
    scriptable
]
interface ISystemProperties : nsISupports
{
    readonly attribute unsigned long minGuestRAM;

    readonly attribute unsigned long maxGuestRAM;

    readonly attribute unsigned long minGuestVRAM;

    readonly attribute unsigned long maxGuestVRAM;

    readonly attribute unsigned long minGuestCPUCount;

    readonly attribute unsigned long maxGuestCPUCount;

    readonly attribute unsigned long maxGuestMonitors;

    readonly attribute long long infoVDSize;

    readonly attribute unsigned long serialPortCount;

    readonly attribute unsigned long parallelPortCount;

    readonly attribute unsigned long maxBootPosition;

    readonly attribute boolean rawModeSupported;

    attribute boolean exclusiveHwVirt;

    attribute wstring defaultMachineFolder;

    attribute wstring loggingLevel;

    void getMediumFormats (
        out unsigned long mediumFormatsSize,
        [array, size_is(mediumFormatsSize), retval] out IMediumFormat mediumFormats
    );

    attribute wstring defaultHardDiskFormat;

    attribute long long freeDiskSpaceWarning;

    attribute unsigned long freeDiskSpacePercentWarning;

    attribute long long freeDiskSpaceError;

    attribute unsigned long freeDiskSpacePercentError;

    attribute wstring VRDEAuthLibrary;

    attribute wstring webServiceAuthLibrary;

    attribute wstring defaultVRDEExtPack;

    attribute unsigned long logHistoryCount;

    readonly attribute AudioDriverType_T defaultAudioDriver;

    attribute wstring autostartDatabasePath;

    attribute wstring defaultAdditionsISO;

    attribute wstring defaultFrontend;

    void getScreenShotFormats (
        out unsigned long screenShotFormatsSize,
        [array, size_is(screenShotFormatsSize), retval] out BitmapFormat_T screenShotFormats
    );

    attribute ProxyMode_T proxyMode;

    attribute wstring proxyURL;

    void getSupportedParavirtProviders (
        out unsigned long supportedParavirtProvidersSize,
        [array, size_is(supportedParavirtProvidersSize), retval] out ParavirtProvider_T supportedParavirtProviders
    );

    void getSupportedClipboardModes (
        out unsigned long supportedClipboardModesSize,
        [array, size_is(supportedClipboardModesSize), retval] out ClipboardMode_T supportedClipboardModes
    );

    void getSupportedDnDModes (
        out unsigned long supportedDnDModesSize,
        [array, size_is(supportedDnDModesSize), retval] out DnDMode_T supportedDnDModes
    );

    void getSupportedFirmwareTypes (
        out unsigned long supportedFirmwareTypesSize,
        [array, size_is(supportedFirmwareTypesSize), retval] out FirmwareType_T supportedFirmwareTypes
    );

    void getSupportedPointingHIDTypes (
        out unsigned long supportedPointingHIDTypesSize,
        [array, size_is(supportedPointingHIDTypesSize), retval] out PointingHIDType_T supportedPointingHIDTypes
    );

    void getSupportedKeyboardHIDTypes (
        out unsigned long supportedKeyboardHIDTypesSize,
        [array, size_is(supportedKeyboardHIDTypesSize), retval] out KeyboardHIDType_T supportedKeyboardHIDTypes
    );

    void getSupportedVFSTypes (
        out unsigned long supportedVFSTypesSize,
        [array, size_is(supportedVFSTypesSize), retval] out VFSType_T supportedVFSTypes
    );

    void getSupportedImportOptions (
        out unsigned long supportedImportOptionsSize,
        [array, size_is(supportedImportOptionsSize), retval] out ImportOptions_T supportedImportOptions
    );

    void getSupportedExportOptions (
        out unsigned long supportedExportOptionsSize,
        [array, size_is(supportedExportOptionsSize), retval] out ExportOptions_T supportedExportOptions
    );

    void getSupportedRecordingAudioCodecs (
        out unsigned long supportedRecordingAudioCodecsSize,
        [array, size_is(supportedRecordingAudioCodecsSize), retval] out RecordingAudioCodec_T supportedRecordingAudioCodecs
    );

    void getSupportedRecordingVideoCodecs (
        out unsigned long supportedRecordingVideoCodecsSize,
        [array, size_is(supportedRecordingVideoCodecsSize), retval] out RecordingVideoCodec_T supportedRecordingVideoCodecs
    );

    void getSupportedRecordingVSMethods (
        out unsigned long supportedRecordingVSMethodsSize,
        [array, size_is(supportedRecordingVSMethodsSize), retval] out RecordingVideoScalingMethod_T supportedRecordingVSMethods
    );

    void getSupportedRecordingVRCModes (
        out unsigned long supportedRecordingVRCModesSize,
        [array, size_is(supportedRecordingVRCModesSize), retval] out RecordingVideoRateControlMode_T supportedRecordingVRCModes
    );

    void getSupportedGraphicsControllerTypes (
        out unsigned long supportedGraphicsControllerTypesSize,
        [array, size_is(supportedGraphicsControllerTypesSize), retval] out GraphicsControllerType_T supportedGraphicsControllerTypes
    );

    void getSupportedCloneOptions (
        out unsigned long supportedCloneOptionsSize,
        [array, size_is(supportedCloneOptionsSize), retval] out CloneOptions_T supportedCloneOptions
    );

    void getSupportedAutostopTypes (
        out unsigned long supportedAutostopTypesSize,
        [array, size_is(supportedAutostopTypesSize), retval] out AutostopType_T supportedAutostopTypes
    );

    void getSupportedVMProcPriorities (
        out unsigned long supportedVMProcPrioritiesSize,
        [array, size_is(supportedVMProcPrioritiesSize), retval] out VMProcPriority_T supportedVMProcPriorities
    );

    void getSupportedNetworkAttachmentTypes (
        out unsigned long supportedNetworkAttachmentTypesSize,
        [array, size_is(supportedNetworkAttachmentTypesSize), retval] out NetworkAttachmentType_T supportedNetworkAttachmentTypes
    );

    void getSupportedNetworkAdapterTypes (
        out unsigned long supportedNetworkAdapterTypesSize,
        [array, size_is(supportedNetworkAdapterTypesSize), retval] out NetworkAdapterType_T supportedNetworkAdapterTypes
    );

    void getSupportedPortModes (
        out unsigned long supportedPortModesSize,
        [array, size_is(supportedPortModesSize), retval] out PortMode_T supportedPortModes
    );

    void getSupportedUartTypes (
        out unsigned long supportedUartTypesSize,
        [array, size_is(supportedUartTypesSize), retval] out UartType_T supportedUartTypes
    );

    void getSupportedUSBControllerTypes (
        out unsigned long supportedUSBControllerTypesSize,
        [array, size_is(supportedUSBControllerTypesSize), retval] out USBControllerType_T supportedUSBControllerTypes
    );

    void getSupportedAudioDriverTypes (
        out unsigned long supportedAudioDriverTypesSize,
        [array, size_is(supportedAudioDriverTypesSize), retval] out AudioDriverType_T supportedAudioDriverTypes
    );

    void getSupportedAudioControllerTypes (
        out unsigned long supportedAudioControllerTypesSize,
        [array, size_is(supportedAudioControllerTypesSize), retval] out AudioControllerType_T supportedAudioControllerTypes
    );

    void getSupportedStorageBuses (
        out unsigned long supportedStorageBusesSize,
        [array, size_is(supportedStorageBusesSize), retval] out StorageBus_T supportedStorageBuses
    );

    void getSupportedStorageControllerTypes (
        out unsigned long supportedStorageControllerTypesSize,
        [array, size_is(supportedStorageControllerTypesSize), retval] out StorageControllerType_T supportedStorageControllerTypes
    );

    void getSupportedChipsetTypes (
        out unsigned long supportedChipsetTypesSize,
        [array, size_is(supportedChipsetTypesSize), retval] out ChipsetType_T supportedChipsetTypes
    );

    readonly attribute unsigned long InternalAndReservedAttribute1ISystemProperties;

    readonly attribute unsigned long InternalAndReservedAttribute2ISystemProperties;

    readonly attribute unsigned long InternalAndReservedAttribute3ISystemProperties;

    readonly attribute unsigned long InternalAndReservedAttribute4ISystemProperties;

    readonly attribute unsigned long InternalAndReservedAttribute5ISystemProperties;

    readonly attribute unsigned long InternalAndReservedAttribute6ISystemProperties;

    readonly attribute unsigned long InternalAndReservedAttribute7ISystemProperties;

    readonly attribute unsigned long InternalAndReservedAttribute8ISystemProperties;

    readonly attribute unsigned long InternalAndReservedAttribute9ISystemProperties;

    readonly attribute unsigned long InternalAndReservedAttribute10ISystemProperties;

    readonly attribute unsigned long InternalAndReservedAttribute11ISystemProperties;

    readonly attribute unsigned long InternalAndReservedAttribute12ISystemProperties;

    readonly attribute unsigned long InternalAndReservedAttribute13ISystemProperties;

    readonly attribute unsigned long InternalAndReservedAttribute14ISystemProperties;

    readonly attribute unsigned long InternalAndReservedAttribute15ISystemProperties;

    readonly attribute unsigned long InternalAndReservedAttribute16ISystemProperties;

    void getMaxNetworkAdapters (
        in ChipsetType_T chipset,
        [retval] out unsigned long maxNetworkAdapters
    );

    void getMaxNetworkAdaptersOfType (
        in ChipsetType_T chipset,
        in NetworkAttachmentType_T type,
        [retval] out unsigned long maxNetworkAdapters
    );

    void getMaxDevicesPerPortForStorageBus (
        in StorageBus_T bus,
        [retval] out unsigned long maxDevicesPerPort
    );

    void getMinPortCountForStorageBus (
        in StorageBus_T bus,
        [retval] out unsigned long minPortCount
    );

    void getMaxPortCountForStorageBus (
        in StorageBus_T bus,
        [retval] out unsigned long maxPortCount
    );

    void getMaxInstancesOfStorageBus (
        in ChipsetType_T chipset,
        in StorageBus_T bus,
        [retval] out unsigned long maxInstances
    );

    void getDeviceTypesForStorageBus (
        in StorageBus_T bus,
        out unsigned long deviceTypesSize,
        [array, size_is(deviceTypesSize) , retval] out DeviceType_T deviceTypes
    );

    void getStorageBusForStorageControllerType (
        in StorageControllerType_T storageControllerType,
        [retval] out StorageBus_T storageBus
    );

    void getStorageControllerTypesForStorageBus (
        in StorageBus_T storageBus,
        out unsigned long storageControllerTypeSize,
        [array, size_is(storageControllerTypeSize) , retval] out StorageControllerType_T storageControllerType
    );

    void getDefaultIoCacheSettingForStorageController (
        in StorageControllerType_T controllerType,
        [retval] out boolean enabled
    );

    void getStorageControllerHotplugCapable (
        in StorageControllerType_T controllerType,
        [retval] out boolean hotplugCapable
    );

    void getMaxInstancesOfUSBControllerType (
        in ChipsetType_T chipset,
        in USBControllerType_T type,
        [retval] out unsigned long maxInstances
    );

    void InternalAndReservedMethod1ISystemProperties();

    void InternalAndReservedMethod2ISystemProperties();

    void InternalAndReservedMethod3ISystemProperties();

    void InternalAndReservedMethod4ISystemProperties();

}; /* interface ISystemProperties */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_ISystemProperties_GETTER_MinGuestRAM_TO(smth) NS_IMETHOD GetMinGuestRAM (PRUint32 * aMinGuestRAM) { return smth GetMinGuestRAM (aMinGuestRAM); }
#define COM_FORWARD_ISystemProperties_GETTER_MinGuestRAM_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_MinGuestRAM_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_MinGuestRAM_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_MinGuestRAM_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_MaxGuestRAM_TO(smth) NS_IMETHOD GetMaxGuestRAM (PRUint32 * aMaxGuestRAM) { return smth GetMaxGuestRAM (aMaxGuestRAM); }
#define COM_FORWARD_ISystemProperties_GETTER_MaxGuestRAM_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_MaxGuestRAM_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_MaxGuestRAM_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_MaxGuestRAM_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_MinGuestVRAM_TO(smth) NS_IMETHOD GetMinGuestVRAM (PRUint32 * aMinGuestVRAM) { return smth GetMinGuestVRAM (aMinGuestVRAM); }
#define COM_FORWARD_ISystemProperties_GETTER_MinGuestVRAM_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_MinGuestVRAM_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_MinGuestVRAM_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_MinGuestVRAM_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_MaxGuestVRAM_TO(smth) NS_IMETHOD GetMaxGuestVRAM (PRUint32 * aMaxGuestVRAM) { return smth GetMaxGuestVRAM (aMaxGuestVRAM); }
#define COM_FORWARD_ISystemProperties_GETTER_MaxGuestVRAM_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_MaxGuestVRAM_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_MaxGuestVRAM_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_MaxGuestVRAM_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_MinGuestCPUCount_TO(smth) NS_IMETHOD GetMinGuestCPUCount (PRUint32 * aMinGuestCPUCount) { return smth GetMinGuestCPUCount (aMinGuestCPUCount); }
#define COM_FORWARD_ISystemProperties_GETTER_MinGuestCPUCount_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_MinGuestCPUCount_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_MinGuestCPUCount_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_MinGuestCPUCount_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_MaxGuestCPUCount_TO(smth) NS_IMETHOD GetMaxGuestCPUCount (PRUint32 * aMaxGuestCPUCount) { return smth GetMaxGuestCPUCount (aMaxGuestCPUCount); }
#define COM_FORWARD_ISystemProperties_GETTER_MaxGuestCPUCount_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_MaxGuestCPUCount_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_MaxGuestCPUCount_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_MaxGuestCPUCount_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_MaxGuestMonitors_TO(smth) NS_IMETHOD GetMaxGuestMonitors (PRUint32 * aMaxGuestMonitors) { return smth GetMaxGuestMonitors (aMaxGuestMonitors); }
#define COM_FORWARD_ISystemProperties_GETTER_MaxGuestMonitors_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_MaxGuestMonitors_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_MaxGuestMonitors_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_MaxGuestMonitors_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_InfoVDSize_TO(smth) NS_IMETHOD GetInfoVDSize (PRInt64 * aInfoVDSize) { return smth GetInfoVDSize (aInfoVDSize); }
#define COM_FORWARD_ISystemProperties_GETTER_InfoVDSize_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_InfoVDSize_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_InfoVDSize_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_InfoVDSize_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SerialPortCount_TO(smth) NS_IMETHOD GetSerialPortCount (PRUint32 * aSerialPortCount) { return smth GetSerialPortCount (aSerialPortCount); }
#define COM_FORWARD_ISystemProperties_GETTER_SerialPortCount_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SerialPortCount_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SerialPortCount_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SerialPortCount_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_ParallelPortCount_TO(smth) NS_IMETHOD GetParallelPortCount (PRUint32 * aParallelPortCount) { return smth GetParallelPortCount (aParallelPortCount); }
#define COM_FORWARD_ISystemProperties_GETTER_ParallelPortCount_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_ParallelPortCount_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_ParallelPortCount_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_ParallelPortCount_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_MaxBootPosition_TO(smth) NS_IMETHOD GetMaxBootPosition (PRUint32 * aMaxBootPosition) { return smth GetMaxBootPosition (aMaxBootPosition); }
#define COM_FORWARD_ISystemProperties_GETTER_MaxBootPosition_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_MaxBootPosition_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_MaxBootPosition_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_MaxBootPosition_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_RawModeSupported_TO(smth) NS_IMETHOD GetRawModeSupported (PRBool * aRawModeSupported) { return smth GetRawModeSupported (aRawModeSupported); }
#define COM_FORWARD_ISystemProperties_GETTER_RawModeSupported_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_RawModeSupported_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_RawModeSupported_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_RawModeSupported_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_ExclusiveHwVirt_TO(smth) NS_IMETHOD GetExclusiveHwVirt (PRBool * aExclusiveHwVirt) { return smth GetExclusiveHwVirt (aExclusiveHwVirt); }
#define COM_FORWARD_ISystemProperties_GETTER_ExclusiveHwVirt_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_ExclusiveHwVirt_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_ExclusiveHwVirt_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_ExclusiveHwVirt_TO (base::)
#define COM_FORWARD_ISystemProperties_SETTER_ExclusiveHwVirt_TO(smth) NS_IMETHOD SetExclusiveHwVirt (PRBool aExclusiveHwVirt) { return smth SetExclusiveHwVirt (aExclusiveHwVirt); }
#define COM_FORWARD_ISystemProperties_SETTER_ExclusiveHwVirt_TO_OBJ(obj) COM_FORWARD_ISystemProperties_SETTER_ExclusiveHwVirt_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_SETTER_ExclusiveHwVirt_TO_BASE(base) COM_FORWARD_ISystemProperties_SETTER_ExclusiveHwVirt_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_DefaultMachineFolder_TO(smth) NS_IMETHOD GetDefaultMachineFolder (PRUnichar * * aDefaultMachineFolder) { return smth GetDefaultMachineFolder (aDefaultMachineFolder); }
#define COM_FORWARD_ISystemProperties_GETTER_DefaultMachineFolder_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_DefaultMachineFolder_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_DefaultMachineFolder_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_DefaultMachineFolder_TO (base::)
#define COM_FORWARD_ISystemProperties_SETTER_DefaultMachineFolder_TO(smth) NS_IMETHOD SetDefaultMachineFolder (const PRUnichar * aDefaultMachineFolder) { return smth SetDefaultMachineFolder (aDefaultMachineFolder); }
#define COM_FORWARD_ISystemProperties_SETTER_DefaultMachineFolder_TO_OBJ(obj) COM_FORWARD_ISystemProperties_SETTER_DefaultMachineFolder_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_SETTER_DefaultMachineFolder_TO_BASE(base) COM_FORWARD_ISystemProperties_SETTER_DefaultMachineFolder_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_LoggingLevel_TO(smth) NS_IMETHOD GetLoggingLevel (PRUnichar * * aLoggingLevel) { return smth GetLoggingLevel (aLoggingLevel); }
#define COM_FORWARD_ISystemProperties_GETTER_LoggingLevel_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_LoggingLevel_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_LoggingLevel_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_LoggingLevel_TO (base::)
#define COM_FORWARD_ISystemProperties_SETTER_LoggingLevel_TO(smth) NS_IMETHOD SetLoggingLevel (const PRUnichar * aLoggingLevel) { return smth SetLoggingLevel (aLoggingLevel); }
#define COM_FORWARD_ISystemProperties_SETTER_LoggingLevel_TO_OBJ(obj) COM_FORWARD_ISystemProperties_SETTER_LoggingLevel_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_SETTER_LoggingLevel_TO_BASE(base) COM_FORWARD_ISystemProperties_SETTER_LoggingLevel_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_MediumFormats_TO(smth) NS_IMETHOD GetMediumFormats (PRUint32 * aMediumFormatsSize, IMediumFormat * * * aMediumFormats) { return smth GetMediumFormats (aMediumFormatsSize, aMediumFormats); }
#define COM_FORWARD_ISystemProperties_GETTER_MediumFormats_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_MediumFormats_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_MediumFormats_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_MediumFormats_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_DefaultHardDiskFormat_TO(smth) NS_IMETHOD GetDefaultHardDiskFormat (PRUnichar * * aDefaultHardDiskFormat) { return smth GetDefaultHardDiskFormat (aDefaultHardDiskFormat); }
#define COM_FORWARD_ISystemProperties_GETTER_DefaultHardDiskFormat_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_DefaultHardDiskFormat_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_DefaultHardDiskFormat_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_DefaultHardDiskFormat_TO (base::)
#define COM_FORWARD_ISystemProperties_SETTER_DefaultHardDiskFormat_TO(smth) NS_IMETHOD SetDefaultHardDiskFormat (const PRUnichar * aDefaultHardDiskFormat) { return smth SetDefaultHardDiskFormat (aDefaultHardDiskFormat); }
#define COM_FORWARD_ISystemProperties_SETTER_DefaultHardDiskFormat_TO_OBJ(obj) COM_FORWARD_ISystemProperties_SETTER_DefaultHardDiskFormat_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_SETTER_DefaultHardDiskFormat_TO_BASE(base) COM_FORWARD_ISystemProperties_SETTER_DefaultHardDiskFormat_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpaceWarning_TO(smth) NS_IMETHOD GetFreeDiskSpaceWarning (PRInt64 * aFreeDiskSpaceWarning) { return smth GetFreeDiskSpaceWarning (aFreeDiskSpaceWarning); }
#define COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpaceWarning_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpaceWarning_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpaceWarning_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpaceWarning_TO (base::)
#define COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpaceWarning_TO(smth) NS_IMETHOD SetFreeDiskSpaceWarning (PRInt64 aFreeDiskSpaceWarning) { return smth SetFreeDiskSpaceWarning (aFreeDiskSpaceWarning); }
#define COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpaceWarning_TO_OBJ(obj) COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpaceWarning_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpaceWarning_TO_BASE(base) COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpaceWarning_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpacePercentWarning_TO(smth) NS_IMETHOD GetFreeDiskSpacePercentWarning (PRUint32 * aFreeDiskSpacePercentWarning) { return smth GetFreeDiskSpacePercentWarning (aFreeDiskSpacePercentWarning); }
#define COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpacePercentWarning_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpacePercentWarning_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpacePercentWarning_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpacePercentWarning_TO (base::)
#define COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpacePercentWarning_TO(smth) NS_IMETHOD SetFreeDiskSpacePercentWarning (PRUint32 aFreeDiskSpacePercentWarning) { return smth SetFreeDiskSpacePercentWarning (aFreeDiskSpacePercentWarning); }
#define COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpacePercentWarning_TO_OBJ(obj) COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpacePercentWarning_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpacePercentWarning_TO_BASE(base) COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpacePercentWarning_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpaceError_TO(smth) NS_IMETHOD GetFreeDiskSpaceError (PRInt64 * aFreeDiskSpaceError) { return smth GetFreeDiskSpaceError (aFreeDiskSpaceError); }
#define COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpaceError_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpaceError_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpaceError_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpaceError_TO (base::)
#define COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpaceError_TO(smth) NS_IMETHOD SetFreeDiskSpaceError (PRInt64 aFreeDiskSpaceError) { return smth SetFreeDiskSpaceError (aFreeDiskSpaceError); }
#define COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpaceError_TO_OBJ(obj) COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpaceError_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpaceError_TO_BASE(base) COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpaceError_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpacePercentError_TO(smth) NS_IMETHOD GetFreeDiskSpacePercentError (PRUint32 * aFreeDiskSpacePercentError) { return smth GetFreeDiskSpacePercentError (aFreeDiskSpacePercentError); }
#define COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpacePercentError_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpacePercentError_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpacePercentError_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpacePercentError_TO (base::)
#define COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpacePercentError_TO(smth) NS_IMETHOD SetFreeDiskSpacePercentError (PRUint32 aFreeDiskSpacePercentError) { return smth SetFreeDiskSpacePercentError (aFreeDiskSpacePercentError); }
#define COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpacePercentError_TO_OBJ(obj) COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpacePercentError_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpacePercentError_TO_BASE(base) COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpacePercentError_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_VRDEAuthLibrary_TO(smth) NS_IMETHOD GetVRDEAuthLibrary (PRUnichar * * aVRDEAuthLibrary) { return smth GetVRDEAuthLibrary (aVRDEAuthLibrary); }
#define COM_FORWARD_ISystemProperties_GETTER_VRDEAuthLibrary_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_VRDEAuthLibrary_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_VRDEAuthLibrary_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_VRDEAuthLibrary_TO (base::)
#define COM_FORWARD_ISystemProperties_SETTER_VRDEAuthLibrary_TO(smth) NS_IMETHOD SetVRDEAuthLibrary (const PRUnichar * aVRDEAuthLibrary) { return smth SetVRDEAuthLibrary (aVRDEAuthLibrary); }
#define COM_FORWARD_ISystemProperties_SETTER_VRDEAuthLibrary_TO_OBJ(obj) COM_FORWARD_ISystemProperties_SETTER_VRDEAuthLibrary_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_SETTER_VRDEAuthLibrary_TO_BASE(base) COM_FORWARD_ISystemProperties_SETTER_VRDEAuthLibrary_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_WebServiceAuthLibrary_TO(smth) NS_IMETHOD GetWebServiceAuthLibrary (PRUnichar * * aWebServiceAuthLibrary) { return smth GetWebServiceAuthLibrary (aWebServiceAuthLibrary); }
#define COM_FORWARD_ISystemProperties_GETTER_WebServiceAuthLibrary_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_WebServiceAuthLibrary_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_WebServiceAuthLibrary_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_WebServiceAuthLibrary_TO (base::)
#define COM_FORWARD_ISystemProperties_SETTER_WebServiceAuthLibrary_TO(smth) NS_IMETHOD SetWebServiceAuthLibrary (const PRUnichar * aWebServiceAuthLibrary) { return smth SetWebServiceAuthLibrary (aWebServiceAuthLibrary); }
#define COM_FORWARD_ISystemProperties_SETTER_WebServiceAuthLibrary_TO_OBJ(obj) COM_FORWARD_ISystemProperties_SETTER_WebServiceAuthLibrary_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_SETTER_WebServiceAuthLibrary_TO_BASE(base) COM_FORWARD_ISystemProperties_SETTER_WebServiceAuthLibrary_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_DefaultVRDEExtPack_TO(smth) NS_IMETHOD GetDefaultVRDEExtPack (PRUnichar * * aDefaultVRDEExtPack) { return smth GetDefaultVRDEExtPack (aDefaultVRDEExtPack); }
#define COM_FORWARD_ISystemProperties_GETTER_DefaultVRDEExtPack_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_DefaultVRDEExtPack_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_DefaultVRDEExtPack_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_DefaultVRDEExtPack_TO (base::)
#define COM_FORWARD_ISystemProperties_SETTER_DefaultVRDEExtPack_TO(smth) NS_IMETHOD SetDefaultVRDEExtPack (const PRUnichar * aDefaultVRDEExtPack) { return smth SetDefaultVRDEExtPack (aDefaultVRDEExtPack); }
#define COM_FORWARD_ISystemProperties_SETTER_DefaultVRDEExtPack_TO_OBJ(obj) COM_FORWARD_ISystemProperties_SETTER_DefaultVRDEExtPack_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_SETTER_DefaultVRDEExtPack_TO_BASE(base) COM_FORWARD_ISystemProperties_SETTER_DefaultVRDEExtPack_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_LogHistoryCount_TO(smth) NS_IMETHOD GetLogHistoryCount (PRUint32 * aLogHistoryCount) { return smth GetLogHistoryCount (aLogHistoryCount); }
#define COM_FORWARD_ISystemProperties_GETTER_LogHistoryCount_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_LogHistoryCount_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_LogHistoryCount_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_LogHistoryCount_TO (base::)
#define COM_FORWARD_ISystemProperties_SETTER_LogHistoryCount_TO(smth) NS_IMETHOD SetLogHistoryCount (PRUint32 aLogHistoryCount) { return smth SetLogHistoryCount (aLogHistoryCount); }
#define COM_FORWARD_ISystemProperties_SETTER_LogHistoryCount_TO_OBJ(obj) COM_FORWARD_ISystemProperties_SETTER_LogHistoryCount_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_SETTER_LogHistoryCount_TO_BASE(base) COM_FORWARD_ISystemProperties_SETTER_LogHistoryCount_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_DefaultAudioDriver_TO(smth) NS_IMETHOD GetDefaultAudioDriver (PRUint32 * aDefaultAudioDriver) { return smth GetDefaultAudioDriver (aDefaultAudioDriver); }
#define COM_FORWARD_ISystemProperties_GETTER_DefaultAudioDriver_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_DefaultAudioDriver_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_DefaultAudioDriver_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_DefaultAudioDriver_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_AutostartDatabasePath_TO(smth) NS_IMETHOD GetAutostartDatabasePath (PRUnichar * * aAutostartDatabasePath) { return smth GetAutostartDatabasePath (aAutostartDatabasePath); }
#define COM_FORWARD_ISystemProperties_GETTER_AutostartDatabasePath_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_AutostartDatabasePath_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_AutostartDatabasePath_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_AutostartDatabasePath_TO (base::)
#define COM_FORWARD_ISystemProperties_SETTER_AutostartDatabasePath_TO(smth) NS_IMETHOD SetAutostartDatabasePath (const PRUnichar * aAutostartDatabasePath) { return smth SetAutostartDatabasePath (aAutostartDatabasePath); }
#define COM_FORWARD_ISystemProperties_SETTER_AutostartDatabasePath_TO_OBJ(obj) COM_FORWARD_ISystemProperties_SETTER_AutostartDatabasePath_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_SETTER_AutostartDatabasePath_TO_BASE(base) COM_FORWARD_ISystemProperties_SETTER_AutostartDatabasePath_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_DefaultAdditionsISO_TO(smth) NS_IMETHOD GetDefaultAdditionsISO (PRUnichar * * aDefaultAdditionsISO) { return smth GetDefaultAdditionsISO (aDefaultAdditionsISO); }
#define COM_FORWARD_ISystemProperties_GETTER_DefaultAdditionsISO_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_DefaultAdditionsISO_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_DefaultAdditionsISO_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_DefaultAdditionsISO_TO (base::)
#define COM_FORWARD_ISystemProperties_SETTER_DefaultAdditionsISO_TO(smth) NS_IMETHOD SetDefaultAdditionsISO (const PRUnichar * aDefaultAdditionsISO) { return smth SetDefaultAdditionsISO (aDefaultAdditionsISO); }
#define COM_FORWARD_ISystemProperties_SETTER_DefaultAdditionsISO_TO_OBJ(obj) COM_FORWARD_ISystemProperties_SETTER_DefaultAdditionsISO_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_SETTER_DefaultAdditionsISO_TO_BASE(base) COM_FORWARD_ISystemProperties_SETTER_DefaultAdditionsISO_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_DefaultFrontend_TO(smth) NS_IMETHOD GetDefaultFrontend (PRUnichar * * aDefaultFrontend) { return smth GetDefaultFrontend (aDefaultFrontend); }
#define COM_FORWARD_ISystemProperties_GETTER_DefaultFrontend_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_DefaultFrontend_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_DefaultFrontend_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_DefaultFrontend_TO (base::)
#define COM_FORWARD_ISystemProperties_SETTER_DefaultFrontend_TO(smth) NS_IMETHOD SetDefaultFrontend (const PRUnichar * aDefaultFrontend) { return smth SetDefaultFrontend (aDefaultFrontend); }
#define COM_FORWARD_ISystemProperties_SETTER_DefaultFrontend_TO_OBJ(obj) COM_FORWARD_ISystemProperties_SETTER_DefaultFrontend_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_SETTER_DefaultFrontend_TO_BASE(base) COM_FORWARD_ISystemProperties_SETTER_DefaultFrontend_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_ScreenShotFormats_TO(smth) NS_IMETHOD GetScreenShotFormats (PRUint32 * aScreenShotFormatsSize, PRUint32 * * aScreenShotFormats) { return smth GetScreenShotFormats (aScreenShotFormatsSize, aScreenShotFormats); }
#define COM_FORWARD_ISystemProperties_GETTER_ScreenShotFormats_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_ScreenShotFormats_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_ScreenShotFormats_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_ScreenShotFormats_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_ProxyMode_TO(smth) NS_IMETHOD GetProxyMode (PRUint32 * aProxyMode) { return smth GetProxyMode (aProxyMode); }
#define COM_FORWARD_ISystemProperties_GETTER_ProxyMode_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_ProxyMode_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_ProxyMode_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_ProxyMode_TO (base::)
#define COM_FORWARD_ISystemProperties_SETTER_ProxyMode_TO(smth) NS_IMETHOD SetProxyMode (PRUint32 aProxyMode) { return smth SetProxyMode (aProxyMode); }
#define COM_FORWARD_ISystemProperties_SETTER_ProxyMode_TO_OBJ(obj) COM_FORWARD_ISystemProperties_SETTER_ProxyMode_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_SETTER_ProxyMode_TO_BASE(base) COM_FORWARD_ISystemProperties_SETTER_ProxyMode_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_ProxyURL_TO(smth) NS_IMETHOD GetProxyURL (PRUnichar * * aProxyURL) { return smth GetProxyURL (aProxyURL); }
#define COM_FORWARD_ISystemProperties_GETTER_ProxyURL_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_ProxyURL_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_ProxyURL_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_ProxyURL_TO (base::)
#define COM_FORWARD_ISystemProperties_SETTER_ProxyURL_TO(smth) NS_IMETHOD SetProxyURL (const PRUnichar * aProxyURL) { return smth SetProxyURL (aProxyURL); }
#define COM_FORWARD_ISystemProperties_SETTER_ProxyURL_TO_OBJ(obj) COM_FORWARD_ISystemProperties_SETTER_ProxyURL_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_SETTER_ProxyURL_TO_BASE(base) COM_FORWARD_ISystemProperties_SETTER_ProxyURL_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedParavirtProviders_TO(smth) NS_IMETHOD GetSupportedParavirtProviders (PRUint32 * aSupportedParavirtProvidersSize, PRUint32 * * aSupportedParavirtProviders) { return smth GetSupportedParavirtProviders (aSupportedParavirtProvidersSize, aSupportedParavirtProviders); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedParavirtProviders_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedParavirtProviders_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedParavirtProviders_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedParavirtProviders_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedClipboardModes_TO(smth) NS_IMETHOD GetSupportedClipboardModes (PRUint32 * aSupportedClipboardModesSize, PRUint32 * * aSupportedClipboardModes) { return smth GetSupportedClipboardModes (aSupportedClipboardModesSize, aSupportedClipboardModes); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedClipboardModes_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedClipboardModes_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedClipboardModes_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedClipboardModes_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedDnDModes_TO(smth) NS_IMETHOD GetSupportedDnDModes (PRUint32 * aSupportedDnDModesSize, PRUint32 * * aSupportedDnDModes) { return smth GetSupportedDnDModes (aSupportedDnDModesSize, aSupportedDnDModes); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedDnDModes_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedDnDModes_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedDnDModes_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedDnDModes_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedFirmwareTypes_TO(smth) NS_IMETHOD GetSupportedFirmwareTypes (PRUint32 * aSupportedFirmwareTypesSize, PRUint32 * * aSupportedFirmwareTypes) { return smth GetSupportedFirmwareTypes (aSupportedFirmwareTypesSize, aSupportedFirmwareTypes); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedFirmwareTypes_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedFirmwareTypes_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedFirmwareTypes_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedFirmwareTypes_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedPointingHIDTypes_TO(smth) NS_IMETHOD GetSupportedPointingHIDTypes (PRUint32 * aSupportedPointingHIDTypesSize, PRUint32 * * aSupportedPointingHIDTypes) { return smth GetSupportedPointingHIDTypes (aSupportedPointingHIDTypesSize, aSupportedPointingHIDTypes); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedPointingHIDTypes_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedPointingHIDTypes_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedPointingHIDTypes_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedPointingHIDTypes_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedKeyboardHIDTypes_TO(smth) NS_IMETHOD GetSupportedKeyboardHIDTypes (PRUint32 * aSupportedKeyboardHIDTypesSize, PRUint32 * * aSupportedKeyboardHIDTypes) { return smth GetSupportedKeyboardHIDTypes (aSupportedKeyboardHIDTypesSize, aSupportedKeyboardHIDTypes); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedKeyboardHIDTypes_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedKeyboardHIDTypes_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedKeyboardHIDTypes_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedKeyboardHIDTypes_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedVFSTypes_TO(smth) NS_IMETHOD GetSupportedVFSTypes (PRUint32 * aSupportedVFSTypesSize, PRUint32 * * aSupportedVFSTypes) { return smth GetSupportedVFSTypes (aSupportedVFSTypesSize, aSupportedVFSTypes); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedVFSTypes_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedVFSTypes_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedVFSTypes_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedVFSTypes_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedImportOptions_TO(smth) NS_IMETHOD GetSupportedImportOptions (PRUint32 * aSupportedImportOptionsSize, PRUint32 * * aSupportedImportOptions) { return smth GetSupportedImportOptions (aSupportedImportOptionsSize, aSupportedImportOptions); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedImportOptions_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedImportOptions_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedImportOptions_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedImportOptions_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedExportOptions_TO(smth) NS_IMETHOD GetSupportedExportOptions (PRUint32 * aSupportedExportOptionsSize, PRUint32 * * aSupportedExportOptions) { return smth GetSupportedExportOptions (aSupportedExportOptionsSize, aSupportedExportOptions); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedExportOptions_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedExportOptions_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedExportOptions_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedExportOptions_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingAudioCodecs_TO(smth) NS_IMETHOD GetSupportedRecordingAudioCodecs (PRUint32 * aSupportedRecordingAudioCodecsSize, PRUint32 * * aSupportedRecordingAudioCodecs) { return smth GetSupportedRecordingAudioCodecs (aSupportedRecordingAudioCodecsSize, aSupportedRecordingAudioCodecs); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingAudioCodecs_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingAudioCodecs_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingAudioCodecs_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingAudioCodecs_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingVideoCodecs_TO(smth) NS_IMETHOD GetSupportedRecordingVideoCodecs (PRUint32 * aSupportedRecordingVideoCodecsSize, PRUint32 * * aSupportedRecordingVideoCodecs) { return smth GetSupportedRecordingVideoCodecs (aSupportedRecordingVideoCodecsSize, aSupportedRecordingVideoCodecs); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingVideoCodecs_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingVideoCodecs_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingVideoCodecs_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingVideoCodecs_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingVSMethods_TO(smth) NS_IMETHOD GetSupportedRecordingVSMethods (PRUint32 * aSupportedRecordingVSMethodsSize, PRUint32 * * aSupportedRecordingVSMethods) { return smth GetSupportedRecordingVSMethods (aSupportedRecordingVSMethodsSize, aSupportedRecordingVSMethods); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingVSMethods_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingVSMethods_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingVSMethods_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingVSMethods_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingVRCModes_TO(smth) NS_IMETHOD GetSupportedRecordingVRCModes (PRUint32 * aSupportedRecordingVRCModesSize, PRUint32 * * aSupportedRecordingVRCModes) { return smth GetSupportedRecordingVRCModes (aSupportedRecordingVRCModesSize, aSupportedRecordingVRCModes); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingVRCModes_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingVRCModes_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingVRCModes_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingVRCModes_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedGraphicsControllerTypes_TO(smth) NS_IMETHOD GetSupportedGraphicsControllerTypes (PRUint32 * aSupportedGraphicsControllerTypesSize, PRUint32 * * aSupportedGraphicsControllerTypes) { return smth GetSupportedGraphicsControllerTypes (aSupportedGraphicsControllerTypesSize, aSupportedGraphicsControllerTypes); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedGraphicsControllerTypes_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedGraphicsControllerTypes_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedGraphicsControllerTypes_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedGraphicsControllerTypes_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedCloneOptions_TO(smth) NS_IMETHOD GetSupportedCloneOptions (PRUint32 * aSupportedCloneOptionsSize, PRUint32 * * aSupportedCloneOptions) { return smth GetSupportedCloneOptions (aSupportedCloneOptionsSize, aSupportedCloneOptions); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedCloneOptions_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedCloneOptions_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedCloneOptions_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedCloneOptions_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedAutostopTypes_TO(smth) NS_IMETHOD GetSupportedAutostopTypes (PRUint32 * aSupportedAutostopTypesSize, PRUint32 * * aSupportedAutostopTypes) { return smth GetSupportedAutostopTypes (aSupportedAutostopTypesSize, aSupportedAutostopTypes); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedAutostopTypes_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedAutostopTypes_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedAutostopTypes_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedAutostopTypes_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedVMProcPriorities_TO(smth) NS_IMETHOD GetSupportedVMProcPriorities (PRUint32 * aSupportedVMProcPrioritiesSize, PRUint32 * * aSupportedVMProcPriorities) { return smth GetSupportedVMProcPriorities (aSupportedVMProcPrioritiesSize, aSupportedVMProcPriorities); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedVMProcPriorities_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedVMProcPriorities_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedVMProcPriorities_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedVMProcPriorities_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedNetworkAttachmentTypes_TO(smth) NS_IMETHOD GetSupportedNetworkAttachmentTypes (PRUint32 * aSupportedNetworkAttachmentTypesSize, PRUint32 * * aSupportedNetworkAttachmentTypes) { return smth GetSupportedNetworkAttachmentTypes (aSupportedNetworkAttachmentTypesSize, aSupportedNetworkAttachmentTypes); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedNetworkAttachmentTypes_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedNetworkAttachmentTypes_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedNetworkAttachmentTypes_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedNetworkAttachmentTypes_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedNetworkAdapterTypes_TO(smth) NS_IMETHOD GetSupportedNetworkAdapterTypes (PRUint32 * aSupportedNetworkAdapterTypesSize, PRUint32 * * aSupportedNetworkAdapterTypes) { return smth GetSupportedNetworkAdapterTypes (aSupportedNetworkAdapterTypesSize, aSupportedNetworkAdapterTypes); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedNetworkAdapterTypes_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedNetworkAdapterTypes_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedNetworkAdapterTypes_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedNetworkAdapterTypes_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedPortModes_TO(smth) NS_IMETHOD GetSupportedPortModes (PRUint32 * aSupportedPortModesSize, PRUint32 * * aSupportedPortModes) { return smth GetSupportedPortModes (aSupportedPortModesSize, aSupportedPortModes); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedPortModes_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedPortModes_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedPortModes_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedPortModes_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedUartTypes_TO(smth) NS_IMETHOD GetSupportedUartTypes (PRUint32 * aSupportedUartTypesSize, PRUint32 * * aSupportedUartTypes) { return smth GetSupportedUartTypes (aSupportedUartTypesSize, aSupportedUartTypes); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedUartTypes_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedUartTypes_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedUartTypes_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedUartTypes_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedUSBControllerTypes_TO(smth) NS_IMETHOD GetSupportedUSBControllerTypes (PRUint32 * aSupportedUSBControllerTypesSize, PRUint32 * * aSupportedUSBControllerTypes) { return smth GetSupportedUSBControllerTypes (aSupportedUSBControllerTypesSize, aSupportedUSBControllerTypes); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedUSBControllerTypes_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedUSBControllerTypes_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedUSBControllerTypes_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedUSBControllerTypes_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedAudioDriverTypes_TO(smth) NS_IMETHOD GetSupportedAudioDriverTypes (PRUint32 * aSupportedAudioDriverTypesSize, PRUint32 * * aSupportedAudioDriverTypes) { return smth GetSupportedAudioDriverTypes (aSupportedAudioDriverTypesSize, aSupportedAudioDriverTypes); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedAudioDriverTypes_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedAudioDriverTypes_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedAudioDriverTypes_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedAudioDriverTypes_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedAudioControllerTypes_TO(smth) NS_IMETHOD GetSupportedAudioControllerTypes (PRUint32 * aSupportedAudioControllerTypesSize, PRUint32 * * aSupportedAudioControllerTypes) { return smth GetSupportedAudioControllerTypes (aSupportedAudioControllerTypesSize, aSupportedAudioControllerTypes); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedAudioControllerTypes_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedAudioControllerTypes_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedAudioControllerTypes_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedAudioControllerTypes_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedStorageBuses_TO(smth) NS_IMETHOD GetSupportedStorageBuses (PRUint32 * aSupportedStorageBusesSize, PRUint32 * * aSupportedStorageBuses) { return smth GetSupportedStorageBuses (aSupportedStorageBusesSize, aSupportedStorageBuses); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedStorageBuses_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedStorageBuses_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedStorageBuses_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedStorageBuses_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedStorageControllerTypes_TO(smth) NS_IMETHOD GetSupportedStorageControllerTypes (PRUint32 * aSupportedStorageControllerTypesSize, PRUint32 * * aSupportedStorageControllerTypes) { return smth GetSupportedStorageControllerTypes (aSupportedStorageControllerTypesSize, aSupportedStorageControllerTypes); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedStorageControllerTypes_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedStorageControllerTypes_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedStorageControllerTypes_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedStorageControllerTypes_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedChipsetTypes_TO(smth) NS_IMETHOD GetSupportedChipsetTypes (PRUint32 * aSupportedChipsetTypesSize, PRUint32 * * aSupportedChipsetTypes) { return smth GetSupportedChipsetTypes (aSupportedChipsetTypesSize, aSupportedChipsetTypes); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedChipsetTypes_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedChipsetTypes_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedChipsetTypes_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedChipsetTypes_TO (base::)
#define COM_FORWARD_ISystemProperties_GetMaxNetworkAdapters_TO(smth) NS_IMETHOD GetMaxNetworkAdapters (PRUint32 aChipset, PRUint32 * aMaxNetworkAdapters) { return smth GetMaxNetworkAdapters (aChipset, aMaxNetworkAdapters); }
#define COM_FORWARD_ISystemProperties_GetMaxNetworkAdapters_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GetMaxNetworkAdapters_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GetMaxNetworkAdapters_TO_BASE(base) COM_FORWARD_ISystemProperties_GetMaxNetworkAdapters_TO (base::)
#define COM_FORWARD_ISystemProperties_GetMaxNetworkAdaptersOfType_TO(smth) NS_IMETHOD GetMaxNetworkAdaptersOfType (PRUint32 aChipset, PRUint32 aType, PRUint32 * aMaxNetworkAdapters) { return smth GetMaxNetworkAdaptersOfType (aChipset, aType, aMaxNetworkAdapters); }
#define COM_FORWARD_ISystemProperties_GetMaxNetworkAdaptersOfType_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GetMaxNetworkAdaptersOfType_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GetMaxNetworkAdaptersOfType_TO_BASE(base) COM_FORWARD_ISystemProperties_GetMaxNetworkAdaptersOfType_TO (base::)
#define COM_FORWARD_ISystemProperties_GetMaxDevicesPerPortForStorageBus_TO(smth) NS_IMETHOD GetMaxDevicesPerPortForStorageBus (PRUint32 aBus, PRUint32 * aMaxDevicesPerPort) { return smth GetMaxDevicesPerPortForStorageBus (aBus, aMaxDevicesPerPort); }
#define COM_FORWARD_ISystemProperties_GetMaxDevicesPerPortForStorageBus_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GetMaxDevicesPerPortForStorageBus_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GetMaxDevicesPerPortForStorageBus_TO_BASE(base) COM_FORWARD_ISystemProperties_GetMaxDevicesPerPortForStorageBus_TO (base::)
#define COM_FORWARD_ISystemProperties_GetMinPortCountForStorageBus_TO(smth) NS_IMETHOD GetMinPortCountForStorageBus (PRUint32 aBus, PRUint32 * aMinPortCount) { return smth GetMinPortCountForStorageBus (aBus, aMinPortCount); }
#define COM_FORWARD_ISystemProperties_GetMinPortCountForStorageBus_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GetMinPortCountForStorageBus_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GetMinPortCountForStorageBus_TO_BASE(base) COM_FORWARD_ISystemProperties_GetMinPortCountForStorageBus_TO (base::)
#define COM_FORWARD_ISystemProperties_GetMaxPortCountForStorageBus_TO(smth) NS_IMETHOD GetMaxPortCountForStorageBus (PRUint32 aBus, PRUint32 * aMaxPortCount) { return smth GetMaxPortCountForStorageBus (aBus, aMaxPortCount); }
#define COM_FORWARD_ISystemProperties_GetMaxPortCountForStorageBus_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GetMaxPortCountForStorageBus_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GetMaxPortCountForStorageBus_TO_BASE(base) COM_FORWARD_ISystemProperties_GetMaxPortCountForStorageBus_TO (base::)
#define COM_FORWARD_ISystemProperties_GetMaxInstancesOfStorageBus_TO(smth) NS_IMETHOD GetMaxInstancesOfStorageBus (PRUint32 aChipset, PRUint32 aBus, PRUint32 * aMaxInstances) { return smth GetMaxInstancesOfStorageBus (aChipset, aBus, aMaxInstances); }
#define COM_FORWARD_ISystemProperties_GetMaxInstancesOfStorageBus_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GetMaxInstancesOfStorageBus_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GetMaxInstancesOfStorageBus_TO_BASE(base) COM_FORWARD_ISystemProperties_GetMaxInstancesOfStorageBus_TO (base::)
#define COM_FORWARD_ISystemProperties_GetDeviceTypesForStorageBus_TO(smth) NS_IMETHOD GetDeviceTypesForStorageBus (PRUint32 aBus, PRUint32 * aDeviceTypesSize, PRUint32 * * aDeviceTypes) { return smth GetDeviceTypesForStorageBus (aBus, aDeviceTypesSize, aDeviceTypes); }
#define COM_FORWARD_ISystemProperties_GetDeviceTypesForStorageBus_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GetDeviceTypesForStorageBus_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GetDeviceTypesForStorageBus_TO_BASE(base) COM_FORWARD_ISystemProperties_GetDeviceTypesForStorageBus_TO (base::)
#define COM_FORWARD_ISystemProperties_GetStorageBusForStorageControllerType_TO(smth) NS_IMETHOD GetStorageBusForStorageControllerType (PRUint32 aStorageControllerType, PRUint32 * aStorageBus) { return smth GetStorageBusForStorageControllerType (aStorageControllerType, aStorageBus); }
#define COM_FORWARD_ISystemProperties_GetStorageBusForStorageControllerType_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GetStorageBusForStorageControllerType_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GetStorageBusForStorageControllerType_TO_BASE(base) COM_FORWARD_ISystemProperties_GetStorageBusForStorageControllerType_TO (base::)
#define COM_FORWARD_ISystemProperties_GetStorageControllerTypesForStorageBus_TO(smth) NS_IMETHOD GetStorageControllerTypesForStorageBus (PRUint32 aStorageBus, PRUint32 * aStorageControllerTypeSize, PRUint32 * * aStorageControllerType) { return smth GetStorageControllerTypesForStorageBus (aStorageBus, aStorageControllerTypeSize, aStorageControllerType); }
#define COM_FORWARD_ISystemProperties_GetStorageControllerTypesForStorageBus_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GetStorageControllerTypesForStorageBus_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GetStorageControllerTypesForStorageBus_TO_BASE(base) COM_FORWARD_ISystemProperties_GetStorageControllerTypesForStorageBus_TO (base::)
#define COM_FORWARD_ISystemProperties_GetDefaultIoCacheSettingForStorageController_TO(smth) NS_IMETHOD GetDefaultIoCacheSettingForStorageController (PRUint32 aControllerType, PRBool * aEnabled) { return smth GetDefaultIoCacheSettingForStorageController (aControllerType, aEnabled); }
#define COM_FORWARD_ISystemProperties_GetDefaultIoCacheSettingForStorageController_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GetDefaultIoCacheSettingForStorageController_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GetDefaultIoCacheSettingForStorageController_TO_BASE(base) COM_FORWARD_ISystemProperties_GetDefaultIoCacheSettingForStorageController_TO (base::)
#define COM_FORWARD_ISystemProperties_GetStorageControllerHotplugCapable_TO(smth) NS_IMETHOD GetStorageControllerHotplugCapable (PRUint32 aControllerType, PRBool * aHotplugCapable) { return smth GetStorageControllerHotplugCapable (aControllerType, aHotplugCapable); }
#define COM_FORWARD_ISystemProperties_GetStorageControllerHotplugCapable_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GetStorageControllerHotplugCapable_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GetStorageControllerHotplugCapable_TO_BASE(base) COM_FORWARD_ISystemProperties_GetStorageControllerHotplugCapable_TO (base::)
#define COM_FORWARD_ISystemProperties_GetMaxInstancesOfUSBControllerType_TO(smth) NS_IMETHOD GetMaxInstancesOfUSBControllerType (PRUint32 aChipset, PRUint32 aType, PRUint32 * aMaxInstances) { return smth GetMaxInstancesOfUSBControllerType (aChipset, aType, aMaxInstances); }
#define COM_FORWARD_ISystemProperties_GetMaxInstancesOfUSBControllerType_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GetMaxInstancesOfUSBControllerType_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GetMaxInstancesOfUSBControllerType_TO_BASE(base) COM_FORWARD_ISystemProperties_GetMaxInstancesOfUSBControllerType_TO (base::)
#define COM_FORWARD_ISystemProperties_TO(smth) NS_FORWARD_ISYSTEMPROPERTIES (smth)
#define COM_FORWARD_ISystemProperties_TO_OBJ(obj) COM_FORWARD_ISystemProperties_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_TO_BASE(base) COM_FORWARD_ISystemProperties_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ISystemProperties;
%}

[
    uuid(d0d6c6d8-e5db-4d2c-baaa-c71053a6236d),
    scriptable
]
interface IGuestOSType : nsISupports
{
    readonly attribute wstring familyId;

    readonly attribute wstring familyDescription;

    readonly attribute wstring id;

    readonly attribute wstring description;

    readonly attribute boolean is64Bit;

    readonly attribute boolean recommendedIOAPIC;

    readonly attribute boolean recommendedVirtEx;

    readonly attribute unsigned long recommendedRAM;

    readonly attribute GraphicsControllerType_T recommendedGraphicsController;

    readonly attribute unsigned long recommendedVRAM;

    readonly attribute boolean recommended2DVideoAcceleration;

    readonly attribute boolean recommended3DAcceleration;

    readonly attribute long long recommendedHDD;

    readonly attribute NetworkAdapterType_T adapterType;

    readonly attribute boolean recommendedPAE;

    readonly attribute StorageControllerType_T recommendedDVDStorageController;

    readonly attribute StorageBus_T recommendedDVDStorageBus;

    readonly attribute StorageControllerType_T recommendedHDStorageController;

    readonly attribute StorageBus_T recommendedHDStorageBus;

    readonly attribute FirmwareType_T recommendedFirmware;

    readonly attribute boolean recommendedUSBHID;

    readonly attribute boolean recommendedHPET;

    readonly attribute boolean recommendedUSBTablet;

    readonly attribute boolean recommendedRTCUseUTC;

    readonly attribute ChipsetType_T recommendedChipset;

    readonly attribute AudioControllerType_T recommendedAudioController;

    readonly attribute AudioCodecType_T recommendedAudioCodec;

    readonly attribute boolean recommendedFloppy;

    readonly attribute boolean recommendedUSB;

    readonly attribute boolean recommendedUSB3;

    readonly attribute boolean recommendedTFReset;

    readonly attribute boolean recommendedX2APIC;

    readonly attribute unsigned long InternalAndReservedAttribute1IGuestOSType;

    readonly attribute unsigned long InternalAndReservedAttribute2IGuestOSType;

    readonly attribute unsigned long InternalAndReservedAttribute3IGuestOSType;

    readonly attribute unsigned long InternalAndReservedAttribute4IGuestOSType;

    readonly attribute unsigned long InternalAndReservedAttribute5IGuestOSType;

    readonly attribute unsigned long InternalAndReservedAttribute6IGuestOSType;

    readonly attribute unsigned long InternalAndReservedAttribute7IGuestOSType;

    readonly attribute unsigned long InternalAndReservedAttribute8IGuestOSType;

    readonly attribute unsigned long InternalAndReservedAttribute9IGuestOSType;

    readonly attribute unsigned long InternalAndReservedAttribute10IGuestOSType;

    readonly attribute unsigned long InternalAndReservedAttribute11IGuestOSType;

    readonly attribute unsigned long InternalAndReservedAttribute12IGuestOSType;

    readonly attribute unsigned long InternalAndReservedAttribute13IGuestOSType;

    readonly attribute unsigned long InternalAndReservedAttribute14IGuestOSType;

    readonly attribute unsigned long InternalAndReservedAttribute15IGuestOSType;

    readonly attribute unsigned long InternalAndReservedAttribute16IGuestOSType;

}; /* interface IGuestOSType */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IGuestOSType_GETTER_FamilyId_TO(smth) NS_IMETHOD GetFamilyId (PRUnichar * * aFamilyId) { return smth GetFamilyId (aFamilyId); }
#define COM_FORWARD_IGuestOSType_GETTER_FamilyId_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_FamilyId_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_FamilyId_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_FamilyId_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_FamilyDescription_TO(smth) NS_IMETHOD GetFamilyDescription (PRUnichar * * aFamilyDescription) { return smth GetFamilyDescription (aFamilyDescription); }
#define COM_FORWARD_IGuestOSType_GETTER_FamilyDescription_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_FamilyDescription_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_FamilyDescription_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_FamilyDescription_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_Id_TO(smth) NS_IMETHOD GetId (PRUnichar * * aId) { return smth GetId (aId); }
#define COM_FORWARD_IGuestOSType_GETTER_Id_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_Id_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_Id_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_Id_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_Description_TO(smth) NS_IMETHOD GetDescription (PRUnichar * * aDescription) { return smth GetDescription (aDescription); }
#define COM_FORWARD_IGuestOSType_GETTER_Description_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_Description_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_Description_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_Description_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_Is64Bit_TO(smth) NS_IMETHOD GetIs64Bit (PRBool * aIs64Bit) { return smth GetIs64Bit (aIs64Bit); }
#define COM_FORWARD_IGuestOSType_GETTER_Is64Bit_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_Is64Bit_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_Is64Bit_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_Is64Bit_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedIOAPIC_TO(smth) NS_IMETHOD GetRecommendedIOAPIC (PRBool * aRecommendedIOAPIC) { return smth GetRecommendedIOAPIC (aRecommendedIOAPIC); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedIOAPIC_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedIOAPIC_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedIOAPIC_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedIOAPIC_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedVirtEx_TO(smth) NS_IMETHOD GetRecommendedVirtEx (PRBool * aRecommendedVirtEx) { return smth GetRecommendedVirtEx (aRecommendedVirtEx); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedVirtEx_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedVirtEx_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedVirtEx_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedVirtEx_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedRAM_TO(smth) NS_IMETHOD GetRecommendedRAM (PRUint32 * aRecommendedRAM) { return smth GetRecommendedRAM (aRecommendedRAM); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedRAM_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedRAM_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedRAM_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedRAM_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedGraphicsController_TO(smth) NS_IMETHOD GetRecommendedGraphicsController (PRUint32 * aRecommendedGraphicsController) { return smth GetRecommendedGraphicsController (aRecommendedGraphicsController); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedGraphicsController_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedGraphicsController_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedGraphicsController_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedGraphicsController_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedVRAM_TO(smth) NS_IMETHOD GetRecommendedVRAM (PRUint32 * aRecommendedVRAM) { return smth GetRecommendedVRAM (aRecommendedVRAM); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedVRAM_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedVRAM_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedVRAM_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedVRAM_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_Recommended2DVideoAcceleration_TO(smth) NS_IMETHOD GetRecommended2DVideoAcceleration (PRBool * aRecommended2DVideoAcceleration) { return smth GetRecommended2DVideoAcceleration (aRecommended2DVideoAcceleration); }
#define COM_FORWARD_IGuestOSType_GETTER_Recommended2DVideoAcceleration_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_Recommended2DVideoAcceleration_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_Recommended2DVideoAcceleration_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_Recommended2DVideoAcceleration_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_Recommended3DAcceleration_TO(smth) NS_IMETHOD GetRecommended3DAcceleration (PRBool * aRecommended3DAcceleration) { return smth GetRecommended3DAcceleration (aRecommended3DAcceleration); }
#define COM_FORWARD_IGuestOSType_GETTER_Recommended3DAcceleration_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_Recommended3DAcceleration_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_Recommended3DAcceleration_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_Recommended3DAcceleration_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedHDD_TO(smth) NS_IMETHOD GetRecommendedHDD (PRInt64 * aRecommendedHDD) { return smth GetRecommendedHDD (aRecommendedHDD); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedHDD_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedHDD_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedHDD_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedHDD_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_AdapterType_TO(smth) NS_IMETHOD GetAdapterType (PRUint32 * aAdapterType) { return smth GetAdapterType (aAdapterType); }
#define COM_FORWARD_IGuestOSType_GETTER_AdapterType_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_AdapterType_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_AdapterType_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_AdapterType_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedPAE_TO(smth) NS_IMETHOD GetRecommendedPAE (PRBool * aRecommendedPAE) { return smth GetRecommendedPAE (aRecommendedPAE); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedPAE_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedPAE_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedPAE_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedPAE_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedDVDStorageController_TO(smth) NS_IMETHOD GetRecommendedDVDStorageController (PRUint32 * aRecommendedDVDStorageController) { return smth GetRecommendedDVDStorageController (aRecommendedDVDStorageController); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedDVDStorageController_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedDVDStorageController_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedDVDStorageController_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedDVDStorageController_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedDVDStorageBus_TO(smth) NS_IMETHOD GetRecommendedDVDStorageBus (PRUint32 * aRecommendedDVDStorageBus) { return smth GetRecommendedDVDStorageBus (aRecommendedDVDStorageBus); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedDVDStorageBus_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedDVDStorageBus_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedDVDStorageBus_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedDVDStorageBus_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedHDStorageController_TO(smth) NS_IMETHOD GetRecommendedHDStorageController (PRUint32 * aRecommendedHDStorageController) { return smth GetRecommendedHDStorageController (aRecommendedHDStorageController); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedHDStorageController_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedHDStorageController_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedHDStorageController_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedHDStorageController_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedHDStorageBus_TO(smth) NS_IMETHOD GetRecommendedHDStorageBus (PRUint32 * aRecommendedHDStorageBus) { return smth GetRecommendedHDStorageBus (aRecommendedHDStorageBus); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedHDStorageBus_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedHDStorageBus_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedHDStorageBus_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedHDStorageBus_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedFirmware_TO(smth) NS_IMETHOD GetRecommendedFirmware (PRUint32 * aRecommendedFirmware) { return smth GetRecommendedFirmware (aRecommendedFirmware); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedFirmware_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedFirmware_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedFirmware_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedFirmware_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedUSBHID_TO(smth) NS_IMETHOD GetRecommendedUSBHID (PRBool * aRecommendedUSBHID) { return smth GetRecommendedUSBHID (aRecommendedUSBHID); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedUSBHID_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedUSBHID_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedUSBHID_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedUSBHID_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedHPET_TO(smth) NS_IMETHOD GetRecommendedHPET (PRBool * aRecommendedHPET) { return smth GetRecommendedHPET (aRecommendedHPET); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedHPET_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedHPET_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedHPET_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedHPET_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedUSBTablet_TO(smth) NS_IMETHOD GetRecommendedUSBTablet (PRBool * aRecommendedUSBTablet) { return smth GetRecommendedUSBTablet (aRecommendedUSBTablet); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedUSBTablet_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedUSBTablet_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedUSBTablet_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedUSBTablet_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedRTCUseUTC_TO(smth) NS_IMETHOD GetRecommendedRTCUseUTC (PRBool * aRecommendedRTCUseUTC) { return smth GetRecommendedRTCUseUTC (aRecommendedRTCUseUTC); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedRTCUseUTC_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedRTCUseUTC_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedRTCUseUTC_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedRTCUseUTC_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedChipset_TO(smth) NS_IMETHOD GetRecommendedChipset (PRUint32 * aRecommendedChipset) { return smth GetRecommendedChipset (aRecommendedChipset); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedChipset_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedChipset_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedChipset_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedChipset_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedAudioController_TO(smth) NS_IMETHOD GetRecommendedAudioController (PRUint32 * aRecommendedAudioController) { return smth GetRecommendedAudioController (aRecommendedAudioController); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedAudioController_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedAudioController_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedAudioController_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedAudioController_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedAudioCodec_TO(smth) NS_IMETHOD GetRecommendedAudioCodec (PRUint32 * aRecommendedAudioCodec) { return smth GetRecommendedAudioCodec (aRecommendedAudioCodec); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedAudioCodec_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedAudioCodec_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedAudioCodec_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedAudioCodec_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedFloppy_TO(smth) NS_IMETHOD GetRecommendedFloppy (PRBool * aRecommendedFloppy) { return smth GetRecommendedFloppy (aRecommendedFloppy); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedFloppy_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedFloppy_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedFloppy_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedFloppy_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedUSB_TO(smth) NS_IMETHOD GetRecommendedUSB (PRBool * aRecommendedUSB) { return smth GetRecommendedUSB (aRecommendedUSB); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedUSB_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedUSB_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedUSB_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedUSB_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedUSB3_TO(smth) NS_IMETHOD GetRecommendedUSB3 (PRBool * aRecommendedUSB3) { return smth GetRecommendedUSB3 (aRecommendedUSB3); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedUSB3_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedUSB3_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedUSB3_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedUSB3_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedTFReset_TO(smth) NS_IMETHOD GetRecommendedTFReset (PRBool * aRecommendedTFReset) { return smth GetRecommendedTFReset (aRecommendedTFReset); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedTFReset_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedTFReset_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedTFReset_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedTFReset_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedX2APIC_TO(smth) NS_IMETHOD GetRecommendedX2APIC (PRBool * aRecommendedX2APIC) { return smth GetRecommendedX2APIC (aRecommendedX2APIC); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedX2APIC_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedX2APIC_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedX2APIC_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedX2APIC_TO (base::)
#define COM_FORWARD_IGuestOSType_TO(smth) NS_FORWARD_IGUESTOSTYPE (smth)
#define COM_FORWARD_IGuestOSType_TO_OBJ(obj) COM_FORWARD_IGuestOSType_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_TO_BASE(base) COM_FORWARD_IGuestOSType_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestOSType;
%}

[
    uuid(f2f7fae4-4a06-81fc-a916-78b2da1fa0e5),
    scriptable
]
interface IAdditionsFacility : nsISupports
{
    readonly attribute AdditionsFacilityClass_T classType;

    readonly attribute long long lastUpdated;

    readonly attribute wstring name;

    readonly attribute AdditionsFacilityStatus_T status;

    readonly attribute AdditionsFacilityType_T type;

    readonly attribute unsigned long InternalAndReservedAttribute1IAdditionsFacility;

    readonly attribute unsigned long InternalAndReservedAttribute2IAdditionsFacility;

}; /* interface IAdditionsFacility */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IAdditionsFacility_GETTER_ClassType_TO(smth) NS_IMETHOD GetClassType (PRUint32 * aClassType) { return smth GetClassType (aClassType); }
#define COM_FORWARD_IAdditionsFacility_GETTER_ClassType_TO_OBJ(obj) COM_FORWARD_IAdditionsFacility_GETTER_ClassType_TO ((obj)->)
#define COM_FORWARD_IAdditionsFacility_GETTER_ClassType_TO_BASE(base) COM_FORWARD_IAdditionsFacility_GETTER_ClassType_TO (base::)
#define COM_FORWARD_IAdditionsFacility_GETTER_LastUpdated_TO(smth) NS_IMETHOD GetLastUpdated (PRInt64 * aLastUpdated) { return smth GetLastUpdated (aLastUpdated); }
#define COM_FORWARD_IAdditionsFacility_GETTER_LastUpdated_TO_OBJ(obj) COM_FORWARD_IAdditionsFacility_GETTER_LastUpdated_TO ((obj)->)
#define COM_FORWARD_IAdditionsFacility_GETTER_LastUpdated_TO_BASE(base) COM_FORWARD_IAdditionsFacility_GETTER_LastUpdated_TO (base::)
#define COM_FORWARD_IAdditionsFacility_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_IAdditionsFacility_GETTER_Name_TO_OBJ(obj) COM_FORWARD_IAdditionsFacility_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_IAdditionsFacility_GETTER_Name_TO_BASE(base) COM_FORWARD_IAdditionsFacility_GETTER_Name_TO (base::)
#define COM_FORWARD_IAdditionsFacility_GETTER_Status_TO(smth) NS_IMETHOD GetStatus (PRUint32 * aStatus) { return smth GetStatus (aStatus); }
#define COM_FORWARD_IAdditionsFacility_GETTER_Status_TO_OBJ(obj) COM_FORWARD_IAdditionsFacility_GETTER_Status_TO ((obj)->)
#define COM_FORWARD_IAdditionsFacility_GETTER_Status_TO_BASE(base) COM_FORWARD_IAdditionsFacility_GETTER_Status_TO (base::)
#define COM_FORWARD_IAdditionsFacility_GETTER_Type_TO(smth) NS_IMETHOD GetType (PRUint32 * aType) { return smth GetType (aType); }
#define COM_FORWARD_IAdditionsFacility_GETTER_Type_TO_OBJ(obj) COM_FORWARD_IAdditionsFacility_GETTER_Type_TO ((obj)->)
#define COM_FORWARD_IAdditionsFacility_GETTER_Type_TO_BASE(base) COM_FORWARD_IAdditionsFacility_GETTER_Type_TO (base::)
#define COM_FORWARD_IAdditionsFacility_TO(smth) NS_FORWARD_IADDITIONSFACILITY (smth)
#define COM_FORWARD_IAdditionsFacility_TO_OBJ(obj) COM_FORWARD_IAdditionsFacility_TO ((obj)->)
#define COM_FORWARD_IAdditionsFacility_TO_BASE(base) COM_FORWARD_IAdditionsFacility_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IAdditionsFacility;
%}

[
    uuid(4132147b-42f8-cd96-7570-6a8800e3342c),
    scriptable
]
interface IDnDBase : nsISupports
{
    void getFormats (
        out unsigned long formatsSize,
        [array, size_is(formatsSize), retval] out wstring formats
    );

    readonly attribute unsigned long protocolVersion;

    readonly attribute unsigned long InternalAndReservedAttribute1IDnDBase;

    readonly attribute unsigned long InternalAndReservedAttribute2IDnDBase;

    void isFormatSupported (
        in wstring format,
        [retval] out boolean supported
    );

    void addFormats (
        in unsigned long formatsSize,
        [array, size_is(formatsSize)] in wstring formats
    );

    void removeFormats (
        in unsigned long formatsSize,
        [array, size_is(formatsSize)] in wstring formats
    );

    void InternalAndReservedMethod1IDnDBase();

}; /* interface IDnDBase */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IDnDBase_GETTER_Formats_TO(smth) NS_IMETHOD GetFormats (PRUint32 * aFormatsSize, PRUnichar * * * aFormats) { return smth GetFormats (aFormatsSize, aFormats); }
#define COM_FORWARD_IDnDBase_GETTER_Formats_TO_OBJ(obj) COM_FORWARD_IDnDBase_GETTER_Formats_TO ((obj)->)
#define COM_FORWARD_IDnDBase_GETTER_Formats_TO_BASE(base) COM_FORWARD_IDnDBase_GETTER_Formats_TO (base::)
#define COM_FORWARD_IDnDBase_GETTER_ProtocolVersion_TO(smth) NS_IMETHOD GetProtocolVersion (PRUint32 * aProtocolVersion) { return smth GetProtocolVersion (aProtocolVersion); }
#define COM_FORWARD_IDnDBase_GETTER_ProtocolVersion_TO_OBJ(obj) COM_FORWARD_IDnDBase_GETTER_ProtocolVersion_TO ((obj)->)
#define COM_FORWARD_IDnDBase_GETTER_ProtocolVersion_TO_BASE(base) COM_FORWARD_IDnDBase_GETTER_ProtocolVersion_TO (base::)
#define COM_FORWARD_IDnDBase_IsFormatSupported_TO(smth) NS_IMETHOD IsFormatSupported (PRUnichar * aFormat, PRBool * aSupported) { return smth IsFormatSupported (aFormat, aSupported); }
#define COM_FORWARD_IDnDBase_IsFormatSupported_TO_OBJ(obj) COM_FORWARD_IDnDBase_IsFormatSupported_TO ((obj)->)
#define COM_FORWARD_IDnDBase_IsFormatSupported_TO_BASE(base) COM_FORWARD_IDnDBase_IsFormatSupported_TO (base::)
#define COM_FORWARD_IDnDBase_AddFormats_TO(smth) NS_IMETHOD AddFormats (PRUint32 aFormatsSize, PRUnichar * * aFormats) { return smth AddFormats (aFormatsSize, aFormats); }
#define COM_FORWARD_IDnDBase_AddFormats_TO_OBJ(obj) COM_FORWARD_IDnDBase_AddFormats_TO ((obj)->)
#define COM_FORWARD_IDnDBase_AddFormats_TO_BASE(base) COM_FORWARD_IDnDBase_AddFormats_TO (base::)
#define COM_FORWARD_IDnDBase_RemoveFormats_TO(smth) NS_IMETHOD RemoveFormats (PRUint32 aFormatsSize, PRUnichar * * aFormats) { return smth RemoveFormats (aFormatsSize, aFormats); }
#define COM_FORWARD_IDnDBase_RemoveFormats_TO_OBJ(obj) COM_FORWARD_IDnDBase_RemoveFormats_TO ((obj)->)
#define COM_FORWARD_IDnDBase_RemoveFormats_TO_BASE(base) COM_FORWARD_IDnDBase_RemoveFormats_TO (base::)
#define COM_FORWARD_IDnDBase_TO(smth) NS_FORWARD_IDNDBASE (smth)
#define COM_FORWARD_IDnDBase_TO_OBJ(obj) COM_FORWARD_IDnDBase_TO ((obj)->)
#define COM_FORWARD_IDnDBase_TO_BASE(base) COM_FORWARD_IDnDBase_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IDnDBase;
%}

[
    uuid(d23a9ca3-42da-c94b-8aec-21968e08355d),
    scriptable
]
interface IDnDSource : IDnDBase
{
    readonly attribute unsigned long InternalAndReservedAttribute1IDnDSource;

    readonly attribute unsigned long InternalAndReservedAttribute2IDnDSource;

    void dragIsPending (
        in unsigned long screenId,
        out unsigned long formatsSize,
        [array, size_is(formatsSize)] out wstring formats,
        out unsigned long allowedActionsSize,
        [array, size_is(allowedActionsSize)] out DnDAction_T allowedActions,
        [retval] out DnDAction_T defaultAction
    );

    void drop (
        in wstring format,
        in DnDAction_T action,
        [retval] out IProgress progress
    );

    void receiveData (
        out unsigned long dataSize,
        [array, size_is(dataSize) , retval] out octet data
    );

    void InternalAndReservedMethod1IDnDSource();

}; /* interface IDnDSource */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IDnDSource_DragIsPending_TO(smth) NS_IMETHOD DragIsPending (PRUint32 aScreenId, PRUint32 * aFormatsSize, PRUnichar * * * aFormats, PRUint32 * aAllowedActionsSize, PRUint32 * * aAllowedActions, PRUint32 * aDefaultAction) { return smth DragIsPending (aScreenId, aFormatsSize+++, aFormats, aAllowedActionsSize+++, aAllowedActions, aDefaultAction); }
#define COM_FORWARD_IDnDSource_DragIsPending_TO_OBJ(obj) COM_FORWARD_IDnDSource_DragIsPending_TO ((obj)->)
#define COM_FORWARD_IDnDSource_DragIsPending_TO_BASE(base) COM_FORWARD_IDnDSource_DragIsPending_TO (base::)
#define COM_FORWARD_IDnDSource_Drop_TO(smth) NS_IMETHOD Drop (PRUnichar * aFormat, PRUint32 aAction, IProgress * * aProgress) { return smth Drop (aFormat, aAction, aProgress); }
#define COM_FORWARD_IDnDSource_Drop_TO_OBJ(obj) COM_FORWARD_IDnDSource_Drop_TO ((obj)->)
#define COM_FORWARD_IDnDSource_Drop_TO_BASE(base) COM_FORWARD_IDnDSource_Drop_TO (base::)
#define COM_FORWARD_IDnDSource_ReceiveData_TO(smth) NS_IMETHOD ReceiveData (PRUint32 * aDataSize, PRUint8 * * aData) { return smth ReceiveData (aDataSize, aData); }
#define COM_FORWARD_IDnDSource_ReceiveData_TO_OBJ(obj) COM_FORWARD_IDnDSource_ReceiveData_TO ((obj)->)
#define COM_FORWARD_IDnDSource_ReceiveData_TO_BASE(base) COM_FORWARD_IDnDSource_ReceiveData_TO (base::)
#define COM_FORWARD_IDnDSource_TO(smth) NS_FORWARD_IDNDSOURCE (smth)
#define COM_FORWARD_IDnDSource_TO_OBJ(obj) COM_FORWARD_IDnDSource_TO ((obj)->)
#define COM_FORWARD_IDnDSource_TO_BASE(base) COM_FORWARD_IDnDSource_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IDnDSource;
%}

[
    uuid(dedfb5d9-4c1b-edf7-fdf3-c1be6827dc28),
    scriptable
]
interface IGuestDnDSource : IDnDSource
{
    readonly attribute boolean midlDoesNotLikeEmptyInterfaces;

}; /* interface IGuestDnDSource */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IGuestDnDSource_GETTER_MidlDoesNotLikeEmptyInterfaces_TO(smth) NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces (PRBool * aMidlDoesNotLikeEmptyInterfaces) { return smth GetMidlDoesNotLikeEmptyInterfaces (aMidlDoesNotLikeEmptyInterfaces); }
#define COM_FORWARD_IGuestDnDSource_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_OBJ(obj) COM_FORWARD_IGuestDnDSource_GETTER_MidlDoesNotLikeEmptyInterfaces_TO ((obj)->)
#define COM_FORWARD_IGuestDnDSource_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_BASE(base) COM_FORWARD_IGuestDnDSource_GETTER_MidlDoesNotLikeEmptyInterfaces_TO (base::)
#define COM_FORWARD_IGuestDnDSource_TO(smth) NS_FORWARD_IGUESTDNDSOURCE (smth)
#define COM_FORWARD_IGuestDnDSource_TO_OBJ(obj) COM_FORWARD_IGuestDnDSource_TO ((obj)->)
#define COM_FORWARD_IGuestDnDSource_TO_BASE(base) COM_FORWARD_IGuestDnDSource_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestDnDSource;
%}

[
    uuid(ff5befc3-4ba3-7903-2aa4-43988ba11554),
    scriptable
]
interface IDnDTarget : IDnDBase
{
    readonly attribute unsigned long InternalAndReservedAttribute1IDnDTarget;

    readonly attribute unsigned long InternalAndReservedAttribute2IDnDTarget;

    void enter (
        in unsigned long screenId,
        in unsigned long y,
        in unsigned long x,
        in DnDAction_T defaultAction,
        in unsigned long allowedActionsSize,
        [array, size_is(allowedActionsSize)] in DnDAction_T allowedActions,
        in unsigned long formatsSize,
        [array, size_is(formatsSize)] in wstring formats,
        [retval] out DnDAction_T resultAction
    );

    void move (
        in unsigned long screenId,
        in unsigned long x,
        in unsigned long y,
        in DnDAction_T defaultAction,
        in unsigned long allowedActionsSize,
        [array, size_is(allowedActionsSize)] in DnDAction_T allowedActions,
        in unsigned long formatsSize,
        [array, size_is(formatsSize)] in wstring formats,
        [retval] out DnDAction_T resultAction
    );

    void leave (
        in unsigned long screenId
    );

    void drop (
        in unsigned long screenId,
        in unsigned long x,
        in unsigned long y,
        in DnDAction_T defaultAction,
        in unsigned long allowedActionsSize,
        [array, size_is(allowedActionsSize)] in DnDAction_T allowedActions,
        in unsigned long formatsSize,
        [array, size_is(formatsSize)] in wstring formats,
        out wstring format,
        [retval] out DnDAction_T resultAction
    );

    void sendData (
        in unsigned long screenId,
        in wstring format,
        in unsigned long dataSize,
        [array, size_is(dataSize)] in octet data,
        [retval] out IProgress progress
    );

    void cancel (
        [retval] out boolean veto
    );

    void InternalAndReservedMethod1IDnDTarget();

}; /* interface IDnDTarget */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IDnDTarget_Enter_TO(smth) NS_IMETHOD Enter (PRUint32 aScreenId, PRUint32 aY, PRUint32 aX, PRUint32 aDefaultAction, PRUint32 aAllowedActionsSize, PRUint32 * aAllowedActions, PRUint32 aFormatsSize, PRUnichar * * aFormats, PRUint32 * aResultAction) { return smth Enter (aScreenId, aY, aX, aDefaultAction, aAllowedActionsSize+++, aAllowedActions, aFormatsSize+++, aFormats, aResultAction); }
#define COM_FORWARD_IDnDTarget_Enter_TO_OBJ(obj) COM_FORWARD_IDnDTarget_Enter_TO ((obj)->)
#define COM_FORWARD_IDnDTarget_Enter_TO_BASE(base) COM_FORWARD_IDnDTarget_Enter_TO (base::)
#define COM_FORWARD_IDnDTarget_Move_TO(smth) NS_IMETHOD Move (PRUint32 aScreenId, PRUint32 aX, PRUint32 aY, PRUint32 aDefaultAction, PRUint32 aAllowedActionsSize, PRUint32 * aAllowedActions, PRUint32 aFormatsSize, PRUnichar * * aFormats, PRUint32 * aResultAction) { return smth Move (aScreenId, aX, aY, aDefaultAction, aAllowedActionsSize+++, aAllowedActions, aFormatsSize+++, aFormats, aResultAction); }
#define COM_FORWARD_IDnDTarget_Move_TO_OBJ(obj) COM_FORWARD_IDnDTarget_Move_TO ((obj)->)
#define COM_FORWARD_IDnDTarget_Move_TO_BASE(base) COM_FORWARD_IDnDTarget_Move_TO (base::)
#define COM_FORWARD_IDnDTarget_Leave_TO(smth) NS_IMETHOD Leave (PRUint32 aScreenId) { return smth Leave (aScreenId); }
#define COM_FORWARD_IDnDTarget_Leave_TO_OBJ(obj) COM_FORWARD_IDnDTarget_Leave_TO ((obj)->)
#define COM_FORWARD_IDnDTarget_Leave_TO_BASE(base) COM_FORWARD_IDnDTarget_Leave_TO (base::)
#define COM_FORWARD_IDnDTarget_Drop_TO(smth) NS_IMETHOD Drop (PRUint32 aScreenId, PRUint32 aX, PRUint32 aY, PRUint32 aDefaultAction, PRUint32 aAllowedActionsSize, PRUint32 * aAllowedActions, PRUint32 aFormatsSize, PRUnichar * * aFormats, PRUnichar * * aFormat, PRUint32 * aResultAction) { return smth Drop (aScreenId, aX, aY, aDefaultAction, aAllowedActionsSize+++, aAllowedActions, aFormatsSize+++, aFormats, aFormat, aResultAction); }
#define COM_FORWARD_IDnDTarget_Drop_TO_OBJ(obj) COM_FORWARD_IDnDTarget_Drop_TO ((obj)->)
#define COM_FORWARD_IDnDTarget_Drop_TO_BASE(base) COM_FORWARD_IDnDTarget_Drop_TO (base::)
#define COM_FORWARD_IDnDTarget_SendData_TO(smth) NS_IMETHOD SendData (PRUint32 aScreenId, PRUnichar * aFormat, PRUint32 aDataSize, PRUint8 * aData, IProgress * * aProgress) { return smth SendData (aScreenId, aFormat, aDataSize+++, aData, aProgress); }
#define COM_FORWARD_IDnDTarget_SendData_TO_OBJ(obj) COM_FORWARD_IDnDTarget_SendData_TO ((obj)->)
#define COM_FORWARD_IDnDTarget_SendData_TO_BASE(base) COM_FORWARD_IDnDTarget_SendData_TO (base::)
#define COM_FORWARD_IDnDTarget_Cancel_TO(smth) NS_IMETHOD Cancel (PRBool * aVeto) { return smth Cancel (aVeto); }
#define COM_FORWARD_IDnDTarget_Cancel_TO_OBJ(obj) COM_FORWARD_IDnDTarget_Cancel_TO ((obj)->)
#define COM_FORWARD_IDnDTarget_Cancel_TO_BASE(base) COM_FORWARD_IDnDTarget_Cancel_TO (base::)
#define COM_FORWARD_IDnDTarget_TO(smth) NS_FORWARD_IDNDTARGET (smth)
#define COM_FORWARD_IDnDTarget_TO_OBJ(obj) COM_FORWARD_IDnDTarget_TO ((obj)->)
#define COM_FORWARD_IDnDTarget_TO_BASE(base) COM_FORWARD_IDnDTarget_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IDnDTarget;
%}

[
    uuid(50ce4b51-0ff7-46b7-a138-3c6e5ac946b4),
    scriptable
]
interface IGuestDnDTarget : IDnDTarget
{
    readonly attribute boolean midlDoesNotLikeEmptyInterfaces;

}; /* interface IGuestDnDTarget */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IGuestDnDTarget_GETTER_MidlDoesNotLikeEmptyInterfaces_TO(smth) NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces (PRBool * aMidlDoesNotLikeEmptyInterfaces) { return smth GetMidlDoesNotLikeEmptyInterfaces (aMidlDoesNotLikeEmptyInterfaces); }
#define COM_FORWARD_IGuestDnDTarget_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_OBJ(obj) COM_FORWARD_IGuestDnDTarget_GETTER_MidlDoesNotLikeEmptyInterfaces_TO ((obj)->)
#define COM_FORWARD_IGuestDnDTarget_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_BASE(base) COM_FORWARD_IGuestDnDTarget_GETTER_MidlDoesNotLikeEmptyInterfaces_TO (base::)
#define COM_FORWARD_IGuestDnDTarget_TO(smth) NS_FORWARD_IGUESTDNDTARGET (smth)
#define COM_FORWARD_IGuestDnDTarget_TO_OBJ(obj) COM_FORWARD_IGuestDnDTarget_TO ((obj)->)
#define COM_FORWARD_IGuestDnDTarget_TO_BASE(base) COM_FORWARD_IGuestDnDTarget_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestDnDTarget;
%}

[
    uuid(3E14C189-4A75-437E-B0BB-7E7C90D0DF2A),
    scriptable
]
interface IGuestSession : nsISupports
{
    readonly attribute wstring user;

    readonly attribute wstring domain;

    readonly attribute wstring name;

    readonly attribute unsigned long id;

    attribute unsigned long timeout;

    readonly attribute unsigned long protocolVersion;

    readonly attribute GuestSessionStatus_T status;

    void getEnvironmentChanges (
        out unsigned long environmentChangesSize,
        [array, size_is(environmentChangesSize), retval] out wstring environmentChanges
    );
    void setEnvironmentChanges (
        in unsigned long environmentChangesSize,
        [array, size_is(environmentChangesSize)] in wstring environmentChanges
    );

    void getEnvironmentBase (
        out unsigned long environmentBaseSize,
        [array, size_is(environmentBaseSize), retval] out wstring environmentBase
    );

    void getProcesses (
        out unsigned long processesSize,
        [array, size_is(processesSize), retval] out IGuestProcess processes
    );

    readonly attribute PathStyle_T pathStyle;

    attribute wstring currentDirectory;

    readonly attribute wstring userHome;

    readonly attribute wstring userDocuments;

    void getDirectories (
        out unsigned long directoriesSize,
        [array, size_is(directoriesSize), retval] out IGuestDirectory directories
    );

    void getFiles (
        out unsigned long filesSize,
        [array, size_is(filesSize), retval] out IGuestFile files
    );

    readonly attribute IEventSource eventSource;

    readonly attribute unsigned long InternalAndReservedAttribute1IGuestSession;

    readonly attribute unsigned long InternalAndReservedAttribute2IGuestSession;

    readonly attribute unsigned long InternalAndReservedAttribute3IGuestSession;

    readonly attribute unsigned long InternalAndReservedAttribute4IGuestSession;

    readonly attribute unsigned long InternalAndReservedAttribute5IGuestSession;

    readonly attribute unsigned long InternalAndReservedAttribute6IGuestSession;

    readonly attribute unsigned long InternalAndReservedAttribute7IGuestSession;

    readonly attribute unsigned long InternalAndReservedAttribute8IGuestSession;

    readonly attribute unsigned long InternalAndReservedAttribute9IGuestSession;

    readonly attribute unsigned long InternalAndReservedAttribute10IGuestSession;

    readonly attribute unsigned long InternalAndReservedAttribute11IGuestSession;

    readonly attribute unsigned long InternalAndReservedAttribute12IGuestSession;

    void close();

    void copyFromGuest (
        in unsigned long sourcesSize,
        [array, size_is(sourcesSize)] in wstring sources,
        in unsigned long filtersSize,
        [array, size_is(filtersSize)] in wstring filters,
        in unsigned long flagsSize,
        [array, size_is(flagsSize)] in wstring flags,
        in wstring destination,
        [retval] out IProgress progress
    );

    void copyToGuest (
        in unsigned long sourcesSize,
        [array, size_is(sourcesSize)] in wstring sources,
        in unsigned long filtersSize,
        [array, size_is(filtersSize)] in wstring filters,
        in unsigned long flagsSize,
        [array, size_is(flagsSize)] in wstring flags,
        in wstring destination,
        [retval] out IProgress progress
    );

    void directoryCopy (
        in wstring source,
        in wstring destination,
        in unsigned long flagsSize,
        [array, size_is(flagsSize)] in DirectoryCopyFlag_T flags,
        [retval] out IProgress progress
    );

    void directoryCopyFromGuest (
        in wstring source,
        in wstring destination,
        in unsigned long flagsSize,
        [array, size_is(flagsSize)] in DirectoryCopyFlag_T flags,
        [retval] out IProgress progress
    );

    void directoryCopyToGuest (
        in wstring source,
        in wstring destination,
        in unsigned long flagsSize,
        [array, size_is(flagsSize)] in DirectoryCopyFlag_T flags,
        [retval] out IProgress progress
    );

    void directoryCreate (
        in wstring path,
        in unsigned long mode,
        in unsigned long flagsSize,
        [array, size_is(flagsSize)] in DirectoryCreateFlag_T flags
    );

    void directoryCreateTemp (
        in wstring templateName,
        in unsigned long mode,
        in wstring path,
        in boolean secure,
        [retval] out wstring directory
    );

    void directoryExists (
        in wstring path,
        in boolean followSymlinks,
        [retval] out boolean exists
    );

    void directoryOpen (
        in wstring path,
        in wstring filter,
        in unsigned long flagsSize,
        [array, size_is(flagsSize)] in DirectoryOpenFlag_T flags,
        [retval] out IGuestDirectory directory
    );

    void directoryRemove (
        in wstring path
    );

    void directoryRemoveRecursive (
        in wstring path,
        in unsigned long flagsSize,
        [array, size_is(flagsSize)] in DirectoryRemoveRecFlag_T flags,
        [retval] out IProgress progress
    );

    void environmentScheduleSet (
        in wstring name,
        in wstring value
    );

    void environmentScheduleUnset (
        in wstring name
    );

    void environmentGetBaseVariable (
        in wstring name,
        [retval] out wstring value
    );

    void environmentDoesBaseVariableExist (
        in wstring name,
        [retval] out boolean exists
    );

    void fileCopy (
        in wstring source,
        in wstring destination,
        in unsigned long flagsSize,
        [array, size_is(flagsSize)] in FileCopyFlag_T flags,
        [retval] out IProgress progress
    );

    void fileCopyFromGuest (
        in wstring source,
        in wstring destination,
        in unsigned long flagsSize,
        [array, size_is(flagsSize)] in FileCopyFlag_T flags,
        [retval] out IProgress progress
    );

    void fileCopyToGuest (
        in wstring source,
        in wstring destination,
        in unsigned long flagsSize,
        [array, size_is(flagsSize)] in FileCopyFlag_T flags,
        [retval] out IProgress progress
    );

    void fileCreateTemp (
        in wstring templateName,
        in unsigned long mode,
        in wstring path,
        in boolean secure,
        [retval] out IGuestFile file
    );

    void fileExists (
        in wstring path,
        in boolean followSymlinks,
        [retval] out boolean exists
    );

    void fileOpen (
        in wstring path,
        in FileAccessMode_T accessMode,
        in FileOpenAction_T openAction,
        in unsigned long creationMode,
        [retval] out IGuestFile file
    );

    void fileOpenEx (
        in wstring path,
        in FileAccessMode_T accessMode,
        in FileOpenAction_T openAction,
        in FileSharingMode_T sharingMode,
        in unsigned long creationMode,
        in unsigned long flagsSize,
        [array, size_is(flagsSize)] in FileOpenExFlag_T flags,
        [retval] out IGuestFile file
    );

    void fileQuerySize (
        in wstring path,
        in boolean followSymlinks,
        [retval] out long long size
    );

    void fsObjExists (
        in wstring path,
        in boolean followSymlinks,
        [retval] out boolean exists
    );

    void fsObjQueryInfo (
        in wstring path,
        in boolean followSymlinks,
        [retval] out IGuestFsObjInfo info
    );

    void fsObjRemove (
        in wstring path
    );

    void fsObjRemoveArray (
        in unsigned long pathSize,
        [array, size_is(pathSize)] in wstring path,
        [retval] out IProgress progress
    );

    void fsObjRename (
        in wstring oldPath,
        in wstring newPath,
        in unsigned long flagsSize,
        [array, size_is(flagsSize)] in FsObjRenameFlag_T flags
    );

    void fsObjMove (
        in wstring source,
        in wstring destination,
        in unsigned long flagsSize,
        [array, size_is(flagsSize)] in FsObjMoveFlag_T flags,
        [retval] out IProgress progress
    );

    void fsObjMoveArray (
        in unsigned long sourceSize,
        [array, size_is(sourceSize)] in wstring source,
        in wstring destination,
        in unsigned long flagsSize,
        [array, size_is(flagsSize)] in FsObjMoveFlag_T flags,
        [retval] out IProgress progress
    );

    void fsObjCopyArray (
        in unsigned long sourceSize,
        [array, size_is(sourceSize)] in wstring source,
        in wstring destination,
        in unsigned long flagsSize,
        [array, size_is(flagsSize)] in FileCopyFlag_T flags,
        [retval] out IProgress progress
    );

    void fsObjSetACL (
        in wstring path,
        in boolean followSymlinks,
        in wstring acl,
        in unsigned long mode
    );

    void processCreate (
        in wstring executable,
        in unsigned long argumentsSize,
        [array, size_is(argumentsSize)] in wstring arguments,
        in unsigned long environmentChangesSize,
        [array, size_is(environmentChangesSize)] in wstring environmentChanges,
        in unsigned long flagsSize,
        [array, size_is(flagsSize)] in ProcessCreateFlag_T flags,
        in unsigned long timeoutMS,
        [retval] out IGuestProcess guestProcess
    );

    void processCreateEx (
        in wstring executable,
        in unsigned long argumentsSize,
        [array, size_is(argumentsSize)] in wstring arguments,
        in unsigned long environmentChangesSize,
        [array, size_is(environmentChangesSize)] in wstring environmentChanges,
        in unsigned long flagsSize,
        [array, size_is(flagsSize)] in ProcessCreateFlag_T flags,
        in unsigned long timeoutMS,
        in ProcessPriority_T priority,
        in unsigned long affinitySize,
        [array, size_is(affinitySize)] in long affinity,
        [retval] out IGuestProcess guestProcess
    );

    void processGet (
        in unsigned long pid,
        [retval] out IGuestProcess guestProcess
    );

    void symlinkCreate (
        in wstring symlink,
        in wstring target,
        in SymlinkType_T type
    );

    void symlinkExists (
        in wstring symlink,
        [retval] out boolean exists
    );

    void symlinkRead (
        in wstring symlink,
        in unsigned long flagsSize,
        [array, size_is(flagsSize)] in SymlinkReadFlag_T flags,
        [retval] out wstring target
    );

    void waitFor (
        in unsigned long waitFor,
        in unsigned long timeoutMS,
        [retval] out GuestSessionWaitResult_T reason
    );

    void waitForArray (
        in unsigned long waitForSize,
        [array, size_is(waitForSize)] in GuestSessionWaitForFlag_T waitFor,
        in unsigned long timeoutMS,
        [retval] out GuestSessionWaitResult_T reason
    );

    void InternalAndReservedMethod1IGuestSession();

    void InternalAndReservedMethod2IGuestSession();

    void InternalAndReservedMethod3IGuestSession();

    void InternalAndReservedMethod4IGuestSession();

    void InternalAndReservedMethod5IGuestSession();

    void InternalAndReservedMethod6IGuestSession();

    void InternalAndReservedMethod7IGuestSession();

    void InternalAndReservedMethod8IGuestSession();

}; /* interface IGuestSession */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IGuestSession_GETTER_User_TO(smth) NS_IMETHOD GetUser (PRUnichar * * aUser) { return smth GetUser (aUser); }
#define COM_FORWARD_IGuestSession_GETTER_User_TO_OBJ(obj) COM_FORWARD_IGuestSession_GETTER_User_TO ((obj)->)
#define COM_FORWARD_IGuestSession_GETTER_User_TO_BASE(base) COM_FORWARD_IGuestSession_GETTER_User_TO (base::)
#define COM_FORWARD_IGuestSession_GETTER_Domain_TO(smth) NS_IMETHOD GetDomain (PRUnichar * * aDomain) { return smth GetDomain (aDomain); }
#define COM_FORWARD_IGuestSession_GETTER_Domain_TO_OBJ(obj) COM_FORWARD_IGuestSession_GETTER_Domain_TO ((obj)->)
#define COM_FORWARD_IGuestSession_GETTER_Domain_TO_BASE(base) COM_FORWARD_IGuestSession_GETTER_Domain_TO (base::)
#define COM_FORWARD_IGuestSession_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_IGuestSession_GETTER_Name_TO_OBJ(obj) COM_FORWARD_IGuestSession_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_IGuestSession_GETTER_Name_TO_BASE(base) COM_FORWARD_IGuestSession_GETTER_Name_TO (base::)
#define COM_FORWARD_IGuestSession_GETTER_Id_TO(smth) NS_IMETHOD GetId (PRUint32 * aId) { return smth GetId (aId); }
#define COM_FORWARD_IGuestSession_GETTER_Id_TO_OBJ(obj) COM_FORWARD_IGuestSession_GETTER_Id_TO ((obj)->)
#define COM_FORWARD_IGuestSession_GETTER_Id_TO_BASE(base) COM_FORWARD_IGuestSession_GETTER_Id_TO (base::)
#define COM_FORWARD_IGuestSession_GETTER_Timeout_TO(smth) NS_IMETHOD GetTimeout (PRUint32 * aTimeout) { return smth GetTimeout (aTimeout); }
#define COM_FORWARD_IGuestSession_GETTER_Timeout_TO_OBJ(obj) COM_FORWARD_IGuestSession_GETTER_Timeout_TO ((obj)->)
#define COM_FORWARD_IGuestSession_GETTER_Timeout_TO_BASE(base) COM_FORWARD_IGuestSession_GETTER_Timeout_TO (base::)
#define COM_FORWARD_IGuestSession_SETTER_Timeout_TO(smth) NS_IMETHOD SetTimeout (PRUint32 aTimeout) { return smth SetTimeout (aTimeout); }
#define COM_FORWARD_IGuestSession_SETTER_Timeout_TO_OBJ(obj) COM_FORWARD_IGuestSession_SETTER_Timeout_TO ((obj)->)
#define COM_FORWARD_IGuestSession_SETTER_Timeout_TO_BASE(base) COM_FORWARD_IGuestSession_SETTER_Timeout_TO (base::)
#define COM_FORWARD_IGuestSession_GETTER_ProtocolVersion_TO(smth) NS_IMETHOD GetProtocolVersion (PRUint32 * aProtocolVersion) { return smth GetProtocolVersion (aProtocolVersion); }
#define COM_FORWARD_IGuestSession_GETTER_ProtocolVersion_TO_OBJ(obj) COM_FORWARD_IGuestSession_GETTER_ProtocolVersion_TO ((obj)->)
#define COM_FORWARD_IGuestSession_GETTER_ProtocolVersion_TO_BASE(base) COM_FORWARD_IGuestSession_GETTER_ProtocolVersion_TO (base::)
#define COM_FORWARD_IGuestSession_GETTER_Status_TO(smth) NS_IMETHOD GetStatus (PRUint32 * aStatus) { return smth GetStatus (aStatus); }
#define COM_FORWARD_IGuestSession_GETTER_Status_TO_OBJ(obj) COM_FORWARD_IGuestSession_GETTER_Status_TO ((obj)->)
#define COM_FORWARD_IGuestSession_GETTER_Status_TO_BASE(base) COM_FORWARD_IGuestSession_GETTER_Status_TO (base::)
#define COM_FORWARD_IGuestSession_GETTER_EnvironmentChanges_TO(smth) NS_IMETHOD GetEnvironmentChanges (PRUint32 * aEnvironmentChangesSize, PRUnichar * * * aEnvironmentChanges) { return smth GetEnvironmentChanges (aEnvironmentChangesSize, aEnvironmentChanges); }
#define COM_FORWARD_IGuestSession_GETTER_EnvironmentChanges_TO_OBJ(obj) COM_FORWARD_IGuestSession_GETTER_EnvironmentChanges_TO ((obj)->)
#define COM_FORWARD_IGuestSession_GETTER_EnvironmentChanges_TO_BASE(base) COM_FORWARD_IGuestSession_GETTER_EnvironmentChanges_TO (base::)
#define COM_FORWARD_IGuestSession_SETTER_EnvironmentChanges_TO(smth) NS_IMETHOD SetEnvironmentChanges (PRUint32 aEnvironmentChangesSize, PRUnichar * * aEnvironmentChanges) { return smth SetEnvironmentChanges (aEnvironmentChanges); }
#define COM_FORWARD_IGuestSession_SETTER_EnvironmentChanges_TO_OBJ(obj) COM_FORWARD_IGuestSession_SETTER_EnvironmentChanges_TO ((obj)->)
#define COM_FORWARD_IGuestSession_SETTER_EnvironmentChanges_TO_BASE(base) COM_FORWARD_IGuestSession_SETTER_EnvironmentChanges_TO (base::)
#define COM_FORWARD_IGuestSession_GETTER_EnvironmentBase_TO(smth) NS_IMETHOD GetEnvironmentBase (PRUint32 * aEnvironmentBaseSize, PRUnichar * * * aEnvironmentBase) { return smth GetEnvironmentBase (aEnvironmentBaseSize, aEnvironmentBase); }
#define COM_FORWARD_IGuestSession_GETTER_EnvironmentBase_TO_OBJ(obj) COM_FORWARD_IGuestSession_GETTER_EnvironmentBase_TO ((obj)->)
#define COM_FORWARD_IGuestSession_GETTER_EnvironmentBase_TO_BASE(base) COM_FORWARD_IGuestSession_GETTER_EnvironmentBase_TO (base::)
#define COM_FORWARD_IGuestSession_GETTER_Processes_TO(smth) NS_IMETHOD GetProcesses (PRUint32 * aProcessesSize, IGuestProcess * * * aProcesses) { return smth GetProcesses (aProcessesSize, aProcesses); }
#define COM_FORWARD_IGuestSession_GETTER_Processes_TO_OBJ(obj) COM_FORWARD_IGuestSession_GETTER_Processes_TO ((obj)->)
#define COM_FORWARD_IGuestSession_GETTER_Processes_TO_BASE(base) COM_FORWARD_IGuestSession_GETTER_Processes_TO (base::)
#define COM_FORWARD_IGuestSession_GETTER_PathStyle_TO(smth) NS_IMETHOD GetPathStyle (PRUint32 * aPathStyle) { return smth GetPathStyle (aPathStyle); }
#define COM_FORWARD_IGuestSession_GETTER_PathStyle_TO_OBJ(obj) COM_FORWARD_IGuestSession_GETTER_PathStyle_TO ((obj)->)
#define COM_FORWARD_IGuestSession_GETTER_PathStyle_TO_BASE(base) COM_FORWARD_IGuestSession_GETTER_PathStyle_TO (base::)
#define COM_FORWARD_IGuestSession_GETTER_CurrentDirectory_TO(smth) NS_IMETHOD GetCurrentDirectory (PRUnichar * * aCurrentDirectory) { return smth GetCurrentDirectory (aCurrentDirectory); }
#define COM_FORWARD_IGuestSession_GETTER_CurrentDirectory_TO_OBJ(obj) COM_FORWARD_IGuestSession_GETTER_CurrentDirectory_TO ((obj)->)
#define COM_FORWARD_IGuestSession_GETTER_CurrentDirectory_TO_BASE(base) COM_FORWARD_IGuestSession_GETTER_CurrentDirectory_TO (base::)
#define COM_FORWARD_IGuestSession_SETTER_CurrentDirectory_TO(smth) NS_IMETHOD SetCurrentDirectory (const PRUnichar * aCurrentDirectory) { return smth SetCurrentDirectory (aCurrentDirectory); }
#define COM_FORWARD_IGuestSession_SETTER_CurrentDirectory_TO_OBJ(obj) COM_FORWARD_IGuestSession_SETTER_CurrentDirectory_TO ((obj)->)
#define COM_FORWARD_IGuestSession_SETTER_CurrentDirectory_TO_BASE(base) COM_FORWARD_IGuestSession_SETTER_CurrentDirectory_TO (base::)
#define COM_FORWARD_IGuestSession_GETTER_UserHome_TO(smth) NS_IMETHOD GetUserHome (PRUnichar * * aUserHome) { return smth GetUserHome (aUserHome); }
#define COM_FORWARD_IGuestSession_GETTER_UserHome_TO_OBJ(obj) COM_FORWARD_IGuestSession_GETTER_UserHome_TO ((obj)->)
#define COM_FORWARD_IGuestSession_GETTER_UserHome_TO_BASE(base) COM_FORWARD_IGuestSession_GETTER_UserHome_TO (base::)
#define COM_FORWARD_IGuestSession_GETTER_UserDocuments_TO(smth) NS_IMETHOD GetUserDocuments (PRUnichar * * aUserDocuments) { return smth GetUserDocuments (aUserDocuments); }
#define COM_FORWARD_IGuestSession_GETTER_UserDocuments_TO_OBJ(obj) COM_FORWARD_IGuestSession_GETTER_UserDocuments_TO ((obj)->)
#define COM_FORWARD_IGuestSession_GETTER_UserDocuments_TO_BASE(base) COM_FORWARD_IGuestSession_GETTER_UserDocuments_TO (base::)
#define COM_FORWARD_IGuestSession_GETTER_Directories_TO(smth) NS_IMETHOD GetDirectories (PRUint32 * aDirectoriesSize, IGuestDirectory * * * aDirectories) { return smth GetDirectories (aDirectoriesSize, aDirectories); }
#define COM_FORWARD_IGuestSession_GETTER_Directories_TO_OBJ(obj) COM_FORWARD_IGuestSession_GETTER_Directories_TO ((obj)->)
#define COM_FORWARD_IGuestSession_GETTER_Directories_TO_BASE(base) COM_FORWARD_IGuestSession_GETTER_Directories_TO (base::)
#define COM_FORWARD_IGuestSession_GETTER_Files_TO(smth) NS_IMETHOD GetFiles (PRUint32 * aFilesSize, IGuestFile * * * aFiles) { return smth GetFiles (aFilesSize, aFiles); }
#define COM_FORWARD_IGuestSession_GETTER_Files_TO_OBJ(obj) COM_FORWARD_IGuestSession_GETTER_Files_TO ((obj)->)
#define COM_FORWARD_IGuestSession_GETTER_Files_TO_BASE(base) COM_FORWARD_IGuestSession_GETTER_Files_TO (base::)
#define COM_FORWARD_IGuestSession_GETTER_EventSource_TO(smth) NS_IMETHOD GetEventSource (IEventSource * * aEventSource) { return smth GetEventSource (aEventSource); }
#define COM_FORWARD_IGuestSession_GETTER_EventSource_TO_OBJ(obj) COM_FORWARD_IGuestSession_GETTER_EventSource_TO ((obj)->)
#define COM_FORWARD_IGuestSession_GETTER_EventSource_TO_BASE(base) COM_FORWARD_IGuestSession_GETTER_EventSource_TO (base::)
#define COM_FORWARD_IGuestSession_Close_TO(smth) NS_IMETHOD Close() { return smth Close(); }
#define COM_FORWARD_IGuestSession_Close_TO_OBJ(obj) COM_FORWARD_IGuestSession_Close_TO ((obj)->)
#define COM_FORWARD_IGuestSession_Close_TO_BASE(base) COM_FORWARD_IGuestSession_Close_TO (base::)
#define COM_FORWARD_IGuestSession_CopyFromGuest_TO(smth) NS_IMETHOD CopyFromGuest (PRUint32 aSourcesSize, PRUnichar * * aSources, PRUint32 aFiltersSize, PRUnichar * * aFilters, PRUint32 aFlagsSize, PRUnichar * * aFlags, PRUnichar * aDestination, IProgress * * aProgress) { return smth CopyFromGuest (aSourcesSize+++, aSources, aFiltersSize+++, aFilters, aFlagsSize+++, aFlags, aDestination, aProgress); }
#define COM_FORWARD_IGuestSession_CopyFromGuest_TO_OBJ(obj) COM_FORWARD_IGuestSession_CopyFromGuest_TO ((obj)->)
#define COM_FORWARD_IGuestSession_CopyFromGuest_TO_BASE(base) COM_FORWARD_IGuestSession_CopyFromGuest_TO (base::)
#define COM_FORWARD_IGuestSession_CopyToGuest_TO(smth) NS_IMETHOD CopyToGuest (PRUint32 aSourcesSize, PRUnichar * * aSources, PRUint32 aFiltersSize, PRUnichar * * aFilters, PRUint32 aFlagsSize, PRUnichar * * aFlags, PRUnichar * aDestination, IProgress * * aProgress) { return smth CopyToGuest (aSourcesSize+++, aSources, aFiltersSize+++, aFilters, aFlagsSize+++, aFlags, aDestination, aProgress); }
#define COM_FORWARD_IGuestSession_CopyToGuest_TO_OBJ(obj) COM_FORWARD_IGuestSession_CopyToGuest_TO ((obj)->)
#define COM_FORWARD_IGuestSession_CopyToGuest_TO_BASE(base) COM_FORWARD_IGuestSession_CopyToGuest_TO (base::)
#define COM_FORWARD_IGuestSession_DirectoryCopy_TO(smth) NS_IMETHOD DirectoryCopy (PRUnichar * aSource, PRUnichar * aDestination, PRUint32 aFlagsSize, PRUint32 * aFlags, IProgress * * aProgress) { return smth DirectoryCopy (aSource, aDestination, aFlagsSize+++, aFlags, aProgress); }
#define COM_FORWARD_IGuestSession_DirectoryCopy_TO_OBJ(obj) COM_FORWARD_IGuestSession_DirectoryCopy_TO ((obj)->)
#define COM_FORWARD_IGuestSession_DirectoryCopy_TO_BASE(base) COM_FORWARD_IGuestSession_DirectoryCopy_TO (base::)
#define COM_FORWARD_IGuestSession_DirectoryCopyFromGuest_TO(smth) NS_IMETHOD DirectoryCopyFromGuest (PRUnichar * aSource, PRUnichar * aDestination, PRUint32 aFlagsSize, PRUint32 * aFlags, IProgress * * aProgress) { return smth DirectoryCopyFromGuest (aSource, aDestination, aFlagsSize+++, aFlags, aProgress); }
#define COM_FORWARD_IGuestSession_DirectoryCopyFromGuest_TO_OBJ(obj) COM_FORWARD_IGuestSession_DirectoryCopyFromGuest_TO ((obj)->)
#define COM_FORWARD_IGuestSession_DirectoryCopyFromGuest_TO_BASE(base) COM_FORWARD_IGuestSession_DirectoryCopyFromGuest_TO (base::)
#define COM_FORWARD_IGuestSession_DirectoryCopyToGuest_TO(smth) NS_IMETHOD DirectoryCopyToGuest (PRUnichar * aSource, PRUnichar * aDestination, PRUint32 aFlagsSize, PRUint32 * aFlags, IProgress * * aProgress) { return smth DirectoryCopyToGuest (aSource, aDestination, aFlagsSize+++, aFlags, aProgress); }
#define COM_FORWARD_IGuestSession_DirectoryCopyToGuest_TO_OBJ(obj) COM_FORWARD_IGuestSession_DirectoryCopyToGuest_TO ((obj)->)
#define COM_FORWARD_IGuestSession_DirectoryCopyToGuest_TO_BASE(base) COM_FORWARD_IGuestSession_DirectoryCopyToGuest_TO (base::)
#define COM_FORWARD_IGuestSession_DirectoryCreate_TO(smth) NS_IMETHOD DirectoryCreate (PRUnichar * aPath, PRUint32 aMode, PRUint32 aFlagsSize, PRUint32 * aFlags) { return smth DirectoryCreate (aPath, aMode, aFlagsSize, aFlags); }
#define COM_FORWARD_IGuestSession_DirectoryCreate_TO_OBJ(obj) COM_FORWARD_IGuestSession_DirectoryCreate_TO ((obj)->)
#define COM_FORWARD_IGuestSession_DirectoryCreate_TO_BASE(base) COM_FORWARD_IGuestSession_DirectoryCreate_TO (base::)
#define COM_FORWARD_IGuestSession_DirectoryCreateTemp_TO(smth) NS_IMETHOD DirectoryCreateTemp (PRUnichar * aTemplateName, PRUint32 aMode, PRUnichar * aPath, PRBool aSecure, PRUnichar * * aDirectory) { return smth DirectoryCreateTemp (aTemplateName, aMode, aPath, aSecure, aDirectory); }
#define COM_FORWARD_IGuestSession_DirectoryCreateTemp_TO_OBJ(obj) COM_FORWARD_IGuestSession_DirectoryCreateTemp_TO ((obj)->)
#define COM_FORWARD_IGuestSession_DirectoryCreateTemp_TO_BASE(base) COM_FORWARD_IGuestSession_DirectoryCreateTemp_TO (base::)
#define COM_FORWARD_IGuestSession_DirectoryExists_TO(smth) NS_IMETHOD DirectoryExists (PRUnichar * aPath, PRBool aFollowSymlinks, PRBool * aExists) { return smth DirectoryExists (aPath, aFollowSymlinks, aExists); }
#define COM_FORWARD_IGuestSession_DirectoryExists_TO_OBJ(obj) COM_FORWARD_IGuestSession_DirectoryExists_TO ((obj)->)
#define COM_FORWARD_IGuestSession_DirectoryExists_TO_BASE(base) COM_FORWARD_IGuestSession_DirectoryExists_TO (base::)
#define COM_FORWARD_IGuestSession_DirectoryOpen_TO(smth) NS_IMETHOD DirectoryOpen (PRUnichar * aPath, PRUnichar * aFilter, PRUint32 aFlagsSize, PRUint32 * aFlags, IGuestDirectory * * aDirectory) { return smth DirectoryOpen (aPath, aFilter, aFlagsSize+++, aFlags, aDirectory); }
#define COM_FORWARD_IGuestSession_DirectoryOpen_TO_OBJ(obj) COM_FORWARD_IGuestSession_DirectoryOpen_TO ((obj)->)
#define COM_FORWARD_IGuestSession_DirectoryOpen_TO_BASE(base) COM_FORWARD_IGuestSession_DirectoryOpen_TO (base::)
#define COM_FORWARD_IGuestSession_DirectoryRemove_TO(smth) NS_IMETHOD DirectoryRemove (PRUnichar * aPath) { return smth DirectoryRemove (aPath); }
#define COM_FORWARD_IGuestSession_DirectoryRemove_TO_OBJ(obj) COM_FORWARD_IGuestSession_DirectoryRemove_TO ((obj)->)
#define COM_FORWARD_IGuestSession_DirectoryRemove_TO_BASE(base) COM_FORWARD_IGuestSession_DirectoryRemove_TO (base::)
#define COM_FORWARD_IGuestSession_DirectoryRemoveRecursive_TO(smth) NS_IMETHOD DirectoryRemoveRecursive (PRUnichar * aPath, PRUint32 aFlagsSize, PRUint32 * aFlags, IProgress * * aProgress) { return smth DirectoryRemoveRecursive (aPath, aFlagsSize+++, aFlags, aProgress); }
#define COM_FORWARD_IGuestSession_DirectoryRemoveRecursive_TO_OBJ(obj) COM_FORWARD_IGuestSession_DirectoryRemoveRecursive_TO ((obj)->)
#define COM_FORWARD_IGuestSession_DirectoryRemoveRecursive_TO_BASE(base) COM_FORWARD_IGuestSession_DirectoryRemoveRecursive_TO (base::)
#define COM_FORWARD_IGuestSession_EnvironmentScheduleSet_TO(smth) NS_IMETHOD EnvironmentScheduleSet (PRUnichar * aName, PRUnichar * aValue) { return smth EnvironmentScheduleSet (aName, aValue); }
#define COM_FORWARD_IGuestSession_EnvironmentScheduleSet_TO_OBJ(obj) COM_FORWARD_IGuestSession_EnvironmentScheduleSet_TO ((obj)->)
#define COM_FORWARD_IGuestSession_EnvironmentScheduleSet_TO_BASE(base) COM_FORWARD_IGuestSession_EnvironmentScheduleSet_TO (base::)
#define COM_FORWARD_IGuestSession_EnvironmentScheduleUnset_TO(smth) NS_IMETHOD EnvironmentScheduleUnset (PRUnichar * aName) { return smth EnvironmentScheduleUnset (aName); }
#define COM_FORWARD_IGuestSession_EnvironmentScheduleUnset_TO_OBJ(obj) COM_FORWARD_IGuestSession_EnvironmentScheduleUnset_TO ((obj)->)
#define COM_FORWARD_IGuestSession_EnvironmentScheduleUnset_TO_BASE(base) COM_FORWARD_IGuestSession_EnvironmentScheduleUnset_TO (base::)
#define COM_FORWARD_IGuestSession_EnvironmentGetBaseVariable_TO(smth) NS_IMETHOD EnvironmentGetBaseVariable (PRUnichar * aName, PRUnichar * * aValue) { return smth EnvironmentGetBaseVariable (aName, aValue); }
#define COM_FORWARD_IGuestSession_EnvironmentGetBaseVariable_TO_OBJ(obj) COM_FORWARD_IGuestSession_EnvironmentGetBaseVariable_TO ((obj)->)
#define COM_FORWARD_IGuestSession_EnvironmentGetBaseVariable_TO_BASE(base) COM_FORWARD_IGuestSession_EnvironmentGetBaseVariable_TO (base::)
#define COM_FORWARD_IGuestSession_EnvironmentDoesBaseVariableExist_TO(smth) NS_IMETHOD EnvironmentDoesBaseVariableExist (PRUnichar * aName, PRBool * aExists) { return smth EnvironmentDoesBaseVariableExist (aName, aExists); }
#define COM_FORWARD_IGuestSession_EnvironmentDoesBaseVariableExist_TO_OBJ(obj) COM_FORWARD_IGuestSession_EnvironmentDoesBaseVariableExist_TO ((obj)->)
#define COM_FORWARD_IGuestSession_EnvironmentDoesBaseVariableExist_TO_BASE(base) COM_FORWARD_IGuestSession_EnvironmentDoesBaseVariableExist_TO (base::)
#define COM_FORWARD_IGuestSession_FileCopy_TO(smth) NS_IMETHOD FileCopy (PRUnichar * aSource, PRUnichar * aDestination, PRUint32 aFlagsSize, PRUint32 * aFlags, IProgress * * aProgress) { return smth FileCopy (aSource, aDestination, aFlagsSize+++, aFlags, aProgress); }
#define COM_FORWARD_IGuestSession_FileCopy_TO_OBJ(obj) COM_FORWARD_IGuestSession_FileCopy_TO ((obj)->)
#define COM_FORWARD_IGuestSession_FileCopy_TO_BASE(base) COM_FORWARD_IGuestSession_FileCopy_TO (base::)
#define COM_FORWARD_IGuestSession_FileCopyFromGuest_TO(smth) NS_IMETHOD FileCopyFromGuest (PRUnichar * aSource, PRUnichar * aDestination, PRUint32 aFlagsSize, PRUint32 * aFlags, IProgress * * aProgress) { return smth FileCopyFromGuest (aSource, aDestination, aFlagsSize+++, aFlags, aProgress); }
#define COM_FORWARD_IGuestSession_FileCopyFromGuest_TO_OBJ(obj) COM_FORWARD_IGuestSession_FileCopyFromGuest_TO ((obj)->)
#define COM_FORWARD_IGuestSession_FileCopyFromGuest_TO_BASE(base) COM_FORWARD_IGuestSession_FileCopyFromGuest_TO (base::)
#define COM_FORWARD_IGuestSession_FileCopyToGuest_TO(smth) NS_IMETHOD FileCopyToGuest (PRUnichar * aSource, PRUnichar * aDestination, PRUint32 aFlagsSize, PRUint32 * aFlags, IProgress * * aProgress) { return smth FileCopyToGuest (aSource, aDestination, aFlagsSize+++, aFlags, aProgress); }
#define COM_FORWARD_IGuestSession_FileCopyToGuest_TO_OBJ(obj) COM_FORWARD_IGuestSession_FileCopyToGuest_TO ((obj)->)
#define COM_FORWARD_IGuestSession_FileCopyToGuest_TO_BASE(base) COM_FORWARD_IGuestSession_FileCopyToGuest_TO (base::)
#define COM_FORWARD_IGuestSession_FileCreateTemp_TO(smth) NS_IMETHOD FileCreateTemp (PRUnichar * aTemplateName, PRUint32 aMode, PRUnichar * aPath, PRBool aSecure, IGuestFile * * aFile) { return smth FileCreateTemp (aTemplateName, aMode, aPath, aSecure, aFile); }
#define COM_FORWARD_IGuestSession_FileCreateTemp_TO_OBJ(obj) COM_FORWARD_IGuestSession_FileCreateTemp_TO ((obj)->)
#define COM_FORWARD_IGuestSession_FileCreateTemp_TO_BASE(base) COM_FORWARD_IGuestSession_FileCreateTemp_TO (base::)
#define COM_FORWARD_IGuestSession_FileExists_TO(smth) NS_IMETHOD FileExists (PRUnichar * aPath, PRBool aFollowSymlinks, PRBool * aExists) { return smth FileExists (aPath, aFollowSymlinks, aExists); }
#define COM_FORWARD_IGuestSession_FileExists_TO_OBJ(obj) COM_FORWARD_IGuestSession_FileExists_TO ((obj)->)
#define COM_FORWARD_IGuestSession_FileExists_TO_BASE(base) COM_FORWARD_IGuestSession_FileExists_TO (base::)
#define COM_FORWARD_IGuestSession_FileOpen_TO(smth) NS_IMETHOD FileOpen (PRUnichar * aPath, PRUint32 aAccessMode, PRUint32 aOpenAction, PRUint32 aCreationMode, IGuestFile * * aFile) { return smth FileOpen (aPath, aAccessMode, aOpenAction, aCreationMode, aFile); }
#define COM_FORWARD_IGuestSession_FileOpen_TO_OBJ(obj) COM_FORWARD_IGuestSession_FileOpen_TO ((obj)->)
#define COM_FORWARD_IGuestSession_FileOpen_TO_BASE(base) COM_FORWARD_IGuestSession_FileOpen_TO (base::)
#define COM_FORWARD_IGuestSession_FileOpenEx_TO(smth) NS_IMETHOD FileOpenEx (PRUnichar * aPath, PRUint32 aAccessMode, PRUint32 aOpenAction, PRUint32 aSharingMode, PRUint32 aCreationMode, PRUint32 aFlagsSize, PRUint32 * aFlags, IGuestFile * * aFile) { return smth FileOpenEx (aPath, aAccessMode, aOpenAction, aSharingMode, aCreationMode, aFlagsSize+++, aFlags, aFile); }
#define COM_FORWARD_IGuestSession_FileOpenEx_TO_OBJ(obj) COM_FORWARD_IGuestSession_FileOpenEx_TO ((obj)->)
#define COM_FORWARD_IGuestSession_FileOpenEx_TO_BASE(base) COM_FORWARD_IGuestSession_FileOpenEx_TO (base::)
#define COM_FORWARD_IGuestSession_FileQuerySize_TO(smth) NS_IMETHOD FileQuerySize (PRUnichar * aPath, PRBool aFollowSymlinks, PRInt64 * aSize) { return smth FileQuerySize (aPath, aFollowSymlinks, aSize); }
#define COM_FORWARD_IGuestSession_FileQuerySize_TO_OBJ(obj) COM_FORWARD_IGuestSession_FileQuerySize_TO ((obj)->)
#define COM_FORWARD_IGuestSession_FileQuerySize_TO_BASE(base) COM_FORWARD_IGuestSession_FileQuerySize_TO (base::)
#define COM_FORWARD_IGuestSession_FsObjExists_TO(smth) NS_IMETHOD FsObjExists (PRUnichar * aPath, PRBool aFollowSymlinks, PRBool * aExists) { return smth FsObjExists (aPath, aFollowSymlinks, aExists); }
#define COM_FORWARD_IGuestSession_FsObjExists_TO_OBJ(obj) COM_FORWARD_IGuestSession_FsObjExists_TO ((obj)->)
#define COM_FORWARD_IGuestSession_FsObjExists_TO_BASE(base) COM_FORWARD_IGuestSession_FsObjExists_TO (base::)
#define COM_FORWARD_IGuestSession_FsObjQueryInfo_TO(smth) NS_IMETHOD FsObjQueryInfo (PRUnichar * aPath, PRBool aFollowSymlinks, IGuestFsObjInfo * * aInfo) { return smth FsObjQueryInfo (aPath, aFollowSymlinks, aInfo); }
#define COM_FORWARD_IGuestSession_FsObjQueryInfo_TO_OBJ(obj) COM_FORWARD_IGuestSession_FsObjQueryInfo_TO ((obj)->)
#define COM_FORWARD_IGuestSession_FsObjQueryInfo_TO_BASE(base) COM_FORWARD_IGuestSession_FsObjQueryInfo_TO (base::)
#define COM_FORWARD_IGuestSession_FsObjRemove_TO(smth) NS_IMETHOD FsObjRemove (PRUnichar * aPath) { return smth FsObjRemove (aPath); }
#define COM_FORWARD_IGuestSession_FsObjRemove_TO_OBJ(obj) COM_FORWARD_IGuestSession_FsObjRemove_TO ((obj)->)
#define COM_FORWARD_IGuestSession_FsObjRemove_TO_BASE(base) COM_FORWARD_IGuestSession_FsObjRemove_TO (base::)
#define COM_FORWARD_IGuestSession_FsObjRemoveArray_TO(smth) NS_IMETHOD FsObjRemoveArray (PRUint32 aPathSize, PRUnichar * * aPath, IProgress * * aProgress) { return smth FsObjRemoveArray (aPathSize+++, aPath, aProgress); }
#define COM_FORWARD_IGuestSession_FsObjRemoveArray_TO_OBJ(obj) COM_FORWARD_IGuestSession_FsObjRemoveArray_TO ((obj)->)
#define COM_FORWARD_IGuestSession_FsObjRemoveArray_TO_BASE(base) COM_FORWARD_IGuestSession_FsObjRemoveArray_TO (base::)
#define COM_FORWARD_IGuestSession_FsObjRename_TO(smth) NS_IMETHOD FsObjRename (PRUnichar * aOldPath, PRUnichar * aNewPath, PRUint32 aFlagsSize, PRUint32 * aFlags) { return smth FsObjRename (aOldPath, aNewPath, aFlagsSize, aFlags); }
#define COM_FORWARD_IGuestSession_FsObjRename_TO_OBJ(obj) COM_FORWARD_IGuestSession_FsObjRename_TO ((obj)->)
#define COM_FORWARD_IGuestSession_FsObjRename_TO_BASE(base) COM_FORWARD_IGuestSession_FsObjRename_TO (base::)
#define COM_FORWARD_IGuestSession_FsObjMove_TO(smth) NS_IMETHOD FsObjMove (PRUnichar * aSource, PRUnichar * aDestination, PRUint32 aFlagsSize, PRUint32 * aFlags, IProgress * * aProgress) { return smth FsObjMove (aSource, aDestination, aFlagsSize+++, aFlags, aProgress); }
#define COM_FORWARD_IGuestSession_FsObjMove_TO_OBJ(obj) COM_FORWARD_IGuestSession_FsObjMove_TO ((obj)->)
#define COM_FORWARD_IGuestSession_FsObjMove_TO_BASE(base) COM_FORWARD_IGuestSession_FsObjMove_TO (base::)
#define COM_FORWARD_IGuestSession_FsObjMoveArray_TO(smth) NS_IMETHOD FsObjMoveArray (PRUint32 aSourceSize, PRUnichar * * aSource, PRUnichar * aDestination, PRUint32 aFlagsSize, PRUint32 * aFlags, IProgress * * aProgress) { return smth FsObjMoveArray (aSourceSize+++, aSource, aDestination, aFlagsSize+++, aFlags, aProgress); }
#define COM_FORWARD_IGuestSession_FsObjMoveArray_TO_OBJ(obj) COM_FORWARD_IGuestSession_FsObjMoveArray_TO ((obj)->)
#define COM_FORWARD_IGuestSession_FsObjMoveArray_TO_BASE(base) COM_FORWARD_IGuestSession_FsObjMoveArray_TO (base::)
#define COM_FORWARD_IGuestSession_FsObjCopyArray_TO(smth) NS_IMETHOD FsObjCopyArray (PRUint32 aSourceSize, PRUnichar * * aSource, PRUnichar * aDestination, PRUint32 aFlagsSize, PRUint32 * aFlags, IProgress * * aProgress) { return smth FsObjCopyArray (aSourceSize+++, aSource, aDestination, aFlagsSize+++, aFlags, aProgress); }
#define COM_FORWARD_IGuestSession_FsObjCopyArray_TO_OBJ(obj) COM_FORWARD_IGuestSession_FsObjCopyArray_TO ((obj)->)
#define COM_FORWARD_IGuestSession_FsObjCopyArray_TO_BASE(base) COM_FORWARD_IGuestSession_FsObjCopyArray_TO (base::)
#define COM_FORWARD_IGuestSession_FsObjSetACL_TO(smth) NS_IMETHOD FsObjSetACL (PRUnichar * aPath, PRBool aFollowSymlinks, PRUnichar * aAcl, PRUint32 aMode) { return smth FsObjSetACL (aPath, aFollowSymlinks, aAcl, aMode); }
#define COM_FORWARD_IGuestSession_FsObjSetACL_TO_OBJ(obj) COM_FORWARD_IGuestSession_FsObjSetACL_TO ((obj)->)
#define COM_FORWARD_IGuestSession_FsObjSetACL_TO_BASE(base) COM_FORWARD_IGuestSession_FsObjSetACL_TO (base::)
#define COM_FORWARD_IGuestSession_ProcessCreate_TO(smth) NS_IMETHOD ProcessCreate (PRUnichar * aExecutable, PRUint32 aArgumentsSize, PRUnichar * * aArguments, PRUint32 aEnvironmentChangesSize, PRUnichar * * aEnvironmentChanges, PRUint32 aFlagsSize, PRUint32 * aFlags, PRUint32 aTimeoutMS, IGuestProcess * * aGuestProcess) { return smth ProcessCreate (aExecutable, aArgumentsSize+++, aArguments, aEnvironmentChangesSize+++, aEnvironmentChanges, aFlagsSize+++, aFlags, aTimeoutMS, aGuestProcess); }
#define COM_FORWARD_IGuestSession_ProcessCreate_TO_OBJ(obj) COM_FORWARD_IGuestSession_ProcessCreate_TO ((obj)->)
#define COM_FORWARD_IGuestSession_ProcessCreate_TO_BASE(base) COM_FORWARD_IGuestSession_ProcessCreate_TO (base::)
#define COM_FORWARD_IGuestSession_ProcessCreateEx_TO(smth) NS_IMETHOD ProcessCreateEx (PRUnichar * aExecutable, PRUint32 aArgumentsSize, PRUnichar * * aArguments, PRUint32 aEnvironmentChangesSize, PRUnichar * * aEnvironmentChanges, PRUint32 aFlagsSize, PRUint32 * aFlags, PRUint32 aTimeoutMS, PRUint32 aPriority, PRUint32 aAffinitySize, PRInt32 * aAffinity, IGuestProcess * * aGuestProcess) { return smth ProcessCreateEx (aExecutable, aArgumentsSize+++, aArguments, aEnvironmentChangesSize+++, aEnvironmentChanges, aFlagsSize+++, aFlags, aTimeoutMS, aPriority, aAffinitySize+++, aAffinity, aGuestProcess); }
#define COM_FORWARD_IGuestSession_ProcessCreateEx_TO_OBJ(obj) COM_FORWARD_IGuestSession_ProcessCreateEx_TO ((obj)->)
#define COM_FORWARD_IGuestSession_ProcessCreateEx_TO_BASE(base) COM_FORWARD_IGuestSession_ProcessCreateEx_TO (base::)
#define COM_FORWARD_IGuestSession_ProcessGet_TO(smth) NS_IMETHOD ProcessGet (PRUint32 aPid, IGuestProcess * * aGuestProcess) { return smth ProcessGet (aPid, aGuestProcess); }
#define COM_FORWARD_IGuestSession_ProcessGet_TO_OBJ(obj) COM_FORWARD_IGuestSession_ProcessGet_TO ((obj)->)
#define COM_FORWARD_IGuestSession_ProcessGet_TO_BASE(base) COM_FORWARD_IGuestSession_ProcessGet_TO (base::)
#define COM_FORWARD_IGuestSession_SymlinkCreate_TO(smth) NS_IMETHOD SymlinkCreate (PRUnichar * aSymlink, PRUnichar * aTarget, PRUint32 aType) { return smth SymlinkCreate (aSymlink, aTarget, aType); }
#define COM_FORWARD_IGuestSession_SymlinkCreate_TO_OBJ(obj) COM_FORWARD_IGuestSession_SymlinkCreate_TO ((obj)->)
#define COM_FORWARD_IGuestSession_SymlinkCreate_TO_BASE(base) COM_FORWARD_IGuestSession_SymlinkCreate_TO (base::)
#define COM_FORWARD_IGuestSession_SymlinkExists_TO(smth) NS_IMETHOD SymlinkExists (PRUnichar * aSymlink, PRBool * aExists) { return smth SymlinkExists (aSymlink, aExists); }
#define COM_FORWARD_IGuestSession_SymlinkExists_TO_OBJ(obj) COM_FORWARD_IGuestSession_SymlinkExists_TO ((obj)->)
#define COM_FORWARD_IGuestSession_SymlinkExists_TO_BASE(base) COM_FORWARD_IGuestSession_SymlinkExists_TO (base::)
#define COM_FORWARD_IGuestSession_SymlinkRead_TO(smth) NS_IMETHOD SymlinkRead (PRUnichar * aSymlink, PRUint32 aFlagsSize, PRUint32 * aFlags, PRUnichar * * aTarget) { return smth SymlinkRead (aSymlink, aFlagsSize+++, aFlags, aTarget); }
#define COM_FORWARD_IGuestSession_SymlinkRead_TO_OBJ(obj) COM_FORWARD_IGuestSession_SymlinkRead_TO ((obj)->)
#define COM_FORWARD_IGuestSession_SymlinkRead_TO_BASE(base) COM_FORWARD_IGuestSession_SymlinkRead_TO (base::)
#define COM_FORWARD_IGuestSession_WaitFor_TO(smth) NS_IMETHOD WaitFor (PRUint32 aWaitFor, PRUint32 aTimeoutMS, PRUint32 * aReason) { return smth WaitFor (aWaitFor, aTimeoutMS, aReason); }
#define COM_FORWARD_IGuestSession_WaitFor_TO_OBJ(obj) COM_FORWARD_IGuestSession_WaitFor_TO ((obj)->)
#define COM_FORWARD_IGuestSession_WaitFor_TO_BASE(base) COM_FORWARD_IGuestSession_WaitFor_TO (base::)
#define COM_FORWARD_IGuestSession_WaitForArray_TO(smth) NS_IMETHOD WaitForArray (PRUint32 aWaitForSize, PRUint32 * aWaitFor, PRUint32 aTimeoutMS, PRUint32 * aReason) { return smth WaitForArray (aWaitForSize+++, aWaitFor, aTimeoutMS, aReason); }
#define COM_FORWARD_IGuestSession_WaitForArray_TO_OBJ(obj) COM_FORWARD_IGuestSession_WaitForArray_TO ((obj)->)
#define COM_FORWARD_IGuestSession_WaitForArray_TO_BASE(base) COM_FORWARD_IGuestSession_WaitForArray_TO (base::)
#define COM_FORWARD_IGuestSession_TO(smth) NS_FORWARD_IGUESTSESSION (smth)
#define COM_FORWARD_IGuestSession_TO_OBJ(obj) COM_FORWARD_IGuestSession_TO ((obj)->)
#define COM_FORWARD_IGuestSession_TO_BASE(base) COM_FORWARD_IGuestSession_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestSession;
%}

[
    uuid(bc68370c-8a02-45f3-a07d-a67aa72756aa),
    scriptable
]
interface IProcess : nsISupports
{
    void getArguments (
        out unsigned long argumentsSize,
        [array, size_is(argumentsSize), retval] out wstring arguments
    );

    void getEnvironment (
        out unsigned long environmentSize,
        [array, size_is(environmentSize), retval] out wstring environment
    );

    readonly attribute IEventSource eventSource;

    readonly attribute wstring executablePath;

    readonly attribute long exitCode;

    readonly attribute wstring name;

    readonly attribute unsigned long PID;

    readonly attribute ProcessStatus_T status;

    readonly attribute unsigned long InternalAndReservedAttribute1IProcess;

    readonly attribute unsigned long InternalAndReservedAttribute2IProcess;

    readonly attribute unsigned long InternalAndReservedAttribute3IProcess;

    readonly attribute unsigned long InternalAndReservedAttribute4IProcess;

    readonly attribute unsigned long InternalAndReservedAttribute5IProcess;

    readonly attribute unsigned long InternalAndReservedAttribute6IProcess;

    readonly attribute unsigned long InternalAndReservedAttribute7IProcess;

    readonly attribute unsigned long InternalAndReservedAttribute8IProcess;

    void waitFor (
        in unsigned long waitFor,
        in unsigned long timeoutMS,
        [retval] out ProcessWaitResult_T reason
    );

    void waitForArray (
        in unsigned long waitForSize,
        [array, size_is(waitForSize)] in ProcessWaitForFlag_T waitFor,
        in unsigned long timeoutMS,
        [retval] out ProcessWaitResult_T reason
    );

    void read (
        in unsigned long handle,
        in unsigned long toRead,
        in unsigned long timeoutMS,
        out unsigned long dataSize,
        [array, size_is(dataSize) , retval] out octet data
    );

    void write (
        in unsigned long handle,
        in unsigned long flags,
        in unsigned long dataSize,
        [array, size_is(dataSize)] in octet data,
        in unsigned long timeoutMS,
        [retval] out unsigned long written
    );

    void writeArray (
        in unsigned long handle,
        in unsigned long flagsSize,
        [array, size_is(flagsSize)] in ProcessInputFlag_T flags,
        in unsigned long dataSize,
        [array, size_is(dataSize)] in octet data,
        in unsigned long timeoutMS,
        [retval] out unsigned long written
    );

    void terminate();

    void InternalAndReservedMethod1IProcess();

    void InternalAndReservedMethod2IProcess();

    void InternalAndReservedMethod3IProcess();

    void InternalAndReservedMethod4IProcess();

}; /* interface IProcess */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IProcess_GETTER_Arguments_TO(smth) NS_IMETHOD GetArguments (PRUint32 * aArgumentsSize, PRUnichar * * * aArguments) { return smth GetArguments (aArgumentsSize, aArguments); }
#define COM_FORWARD_IProcess_GETTER_Arguments_TO_OBJ(obj) COM_FORWARD_IProcess_GETTER_Arguments_TO ((obj)->)
#define COM_FORWARD_IProcess_GETTER_Arguments_TO_BASE(base) COM_FORWARD_IProcess_GETTER_Arguments_TO (base::)
#define COM_FORWARD_IProcess_GETTER_Environment_TO(smth) NS_IMETHOD GetEnvironment (PRUint32 * aEnvironmentSize, PRUnichar * * * aEnvironment) { return smth GetEnvironment (aEnvironmentSize, aEnvironment); }
#define COM_FORWARD_IProcess_GETTER_Environment_TO_OBJ(obj) COM_FORWARD_IProcess_GETTER_Environment_TO ((obj)->)
#define COM_FORWARD_IProcess_GETTER_Environment_TO_BASE(base) COM_FORWARD_IProcess_GETTER_Environment_TO (base::)
#define COM_FORWARD_IProcess_GETTER_EventSource_TO(smth) NS_IMETHOD GetEventSource (IEventSource * * aEventSource) { return smth GetEventSource (aEventSource); }
#define COM_FORWARD_IProcess_GETTER_EventSource_TO_OBJ(obj) COM_FORWARD_IProcess_GETTER_EventSource_TO ((obj)->)
#define COM_FORWARD_IProcess_GETTER_EventSource_TO_BASE(base) COM_FORWARD_IProcess_GETTER_EventSource_TO (base::)
#define COM_FORWARD_IProcess_GETTER_ExecutablePath_TO(smth) NS_IMETHOD GetExecutablePath (PRUnichar * * aExecutablePath) { return smth GetExecutablePath (aExecutablePath); }
#define COM_FORWARD_IProcess_GETTER_ExecutablePath_TO_OBJ(obj) COM_FORWARD_IProcess_GETTER_ExecutablePath_TO ((obj)->)
#define COM_FORWARD_IProcess_GETTER_ExecutablePath_TO_BASE(base) COM_FORWARD_IProcess_GETTER_ExecutablePath_TO (base::)
#define COM_FORWARD_IProcess_GETTER_ExitCode_TO(smth) NS_IMETHOD GetExitCode (PRInt32 * aExitCode) { return smth GetExitCode (aExitCode); }
#define COM_FORWARD_IProcess_GETTER_ExitCode_TO_OBJ(obj) COM_FORWARD_IProcess_GETTER_ExitCode_TO ((obj)->)
#define COM_FORWARD_IProcess_GETTER_ExitCode_TO_BASE(base) COM_FORWARD_IProcess_GETTER_ExitCode_TO (base::)
#define COM_FORWARD_IProcess_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_IProcess_GETTER_Name_TO_OBJ(obj) COM_FORWARD_IProcess_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_IProcess_GETTER_Name_TO_BASE(base) COM_FORWARD_IProcess_GETTER_Name_TO (base::)
#define COM_FORWARD_IProcess_GETTER_PID_TO(smth) NS_IMETHOD GetPID (PRUint32 * aPID) { return smth GetPID (aPID); }
#define COM_FORWARD_IProcess_GETTER_PID_TO_OBJ(obj) COM_FORWARD_IProcess_GETTER_PID_TO ((obj)->)
#define COM_FORWARD_IProcess_GETTER_PID_TO_BASE(base) COM_FORWARD_IProcess_GETTER_PID_TO (base::)
#define COM_FORWARD_IProcess_GETTER_Status_TO(smth) NS_IMETHOD GetStatus (PRUint32 * aStatus) { return smth GetStatus (aStatus); }
#define COM_FORWARD_IProcess_GETTER_Status_TO_OBJ(obj) COM_FORWARD_IProcess_GETTER_Status_TO ((obj)->)
#define COM_FORWARD_IProcess_GETTER_Status_TO_BASE(base) COM_FORWARD_IProcess_GETTER_Status_TO (base::)
#define COM_FORWARD_IProcess_WaitFor_TO(smth) NS_IMETHOD WaitFor (PRUint32 aWaitFor, PRUint32 aTimeoutMS, PRUint32 * aReason) { return smth WaitFor (aWaitFor, aTimeoutMS, aReason); }
#define COM_FORWARD_IProcess_WaitFor_TO_OBJ(obj) COM_FORWARD_IProcess_WaitFor_TO ((obj)->)
#define COM_FORWARD_IProcess_WaitFor_TO_BASE(base) COM_FORWARD_IProcess_WaitFor_TO (base::)
#define COM_FORWARD_IProcess_WaitForArray_TO(smth) NS_IMETHOD WaitForArray (PRUint32 aWaitForSize, PRUint32 * aWaitFor, PRUint32 aTimeoutMS, PRUint32 * aReason) { return smth WaitForArray (aWaitForSize+++, aWaitFor, aTimeoutMS, aReason); }
#define COM_FORWARD_IProcess_WaitForArray_TO_OBJ(obj) COM_FORWARD_IProcess_WaitForArray_TO ((obj)->)
#define COM_FORWARD_IProcess_WaitForArray_TO_BASE(base) COM_FORWARD_IProcess_WaitForArray_TO (base::)
#define COM_FORWARD_IProcess_Read_TO(smth) NS_IMETHOD Read (PRUint32 aHandle, PRUint32 aToRead, PRUint32 aTimeoutMS, PRUint32 * aDataSize, PRUint8 * * aData) { return smth Read (aHandle, aToRead, aTimeoutMS, aDataSize, aData); }
#define COM_FORWARD_IProcess_Read_TO_OBJ(obj) COM_FORWARD_IProcess_Read_TO ((obj)->)
#define COM_FORWARD_IProcess_Read_TO_BASE(base) COM_FORWARD_IProcess_Read_TO (base::)
#define COM_FORWARD_IProcess_Write_TO(smth) NS_IMETHOD Write (PRUint32 aHandle, PRUint32 aFlags, PRUint32 aDataSize, PRUint8 * aData, PRUint32 aTimeoutMS, PRUint32 * aWritten) { return smth Write (aHandle, aFlags, aDataSize+++, aData, aTimeoutMS, aWritten); }
#define COM_FORWARD_IProcess_Write_TO_OBJ(obj) COM_FORWARD_IProcess_Write_TO ((obj)->)
#define COM_FORWARD_IProcess_Write_TO_BASE(base) COM_FORWARD_IProcess_Write_TO (base::)
#define COM_FORWARD_IProcess_WriteArray_TO(smth) NS_IMETHOD WriteArray (PRUint32 aHandle, PRUint32 aFlagsSize, PRUint32 * aFlags, PRUint32 aDataSize, PRUint8 * aData, PRUint32 aTimeoutMS, PRUint32 * aWritten) { return smth WriteArray (aHandle, aFlagsSize+++, aFlags, aDataSize+++, aData, aTimeoutMS, aWritten); }
#define COM_FORWARD_IProcess_WriteArray_TO_OBJ(obj) COM_FORWARD_IProcess_WriteArray_TO ((obj)->)
#define COM_FORWARD_IProcess_WriteArray_TO_BASE(base) COM_FORWARD_IProcess_WriteArray_TO (base::)
#define COM_FORWARD_IProcess_Terminate_TO(smth) NS_IMETHOD Terminate() { return smth Terminate(); }
#define COM_FORWARD_IProcess_Terminate_TO_OBJ(obj) COM_FORWARD_IProcess_Terminate_TO ((obj)->)
#define COM_FORWARD_IProcess_Terminate_TO_BASE(base) COM_FORWARD_IProcess_Terminate_TO (base::)
#define COM_FORWARD_IProcess_TO(smth) NS_FORWARD_IPROCESS (smth)
#define COM_FORWARD_IProcess_TO_OBJ(obj) COM_FORWARD_IProcess_TO ((obj)->)
#define COM_FORWARD_IProcess_TO_BASE(base) COM_FORWARD_IProcess_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IProcess;
%}

[
    uuid(35cf4b3f-4453-4f3e-c9b8-5686939c80b6),
    scriptable
]
interface IGuestProcess : IProcess
{
    readonly attribute boolean midlDoesNotLikeEmptyInterfaces;

}; /* interface IGuestProcess */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IGuestProcess_GETTER_MidlDoesNotLikeEmptyInterfaces_TO(smth) NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces (PRBool * aMidlDoesNotLikeEmptyInterfaces) { return smth GetMidlDoesNotLikeEmptyInterfaces (aMidlDoesNotLikeEmptyInterfaces); }
#define COM_FORWARD_IGuestProcess_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_OBJ(obj) COM_FORWARD_IGuestProcess_GETTER_MidlDoesNotLikeEmptyInterfaces_TO ((obj)->)
#define COM_FORWARD_IGuestProcess_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_BASE(base) COM_FORWARD_IGuestProcess_GETTER_MidlDoesNotLikeEmptyInterfaces_TO (base::)
#define COM_FORWARD_IGuestProcess_TO(smth) NS_FORWARD_IGUESTPROCESS (smth)
#define COM_FORWARD_IGuestProcess_TO_OBJ(obj) COM_FORWARD_IGuestProcess_TO ((obj)->)
#define COM_FORWARD_IGuestProcess_TO_BASE(base) COM_FORWARD_IGuestProcess_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestProcess;
%}

[
    uuid(758d7eac-e4b1-486a-8f2e-747ae346c3e9),
    scriptable
]
interface IDirectory : nsISupports
{
    readonly attribute wstring directoryName;

    readonly attribute wstring filter;

    readonly attribute unsigned long InternalAndReservedAttribute1IDirectory;

    readonly attribute unsigned long InternalAndReservedAttribute2IDirectory;

    readonly attribute unsigned long InternalAndReservedAttribute3IDirectory;

    readonly attribute unsigned long InternalAndReservedAttribute4IDirectory;

    readonly attribute unsigned long InternalAndReservedAttribute5IDirectory;

    readonly attribute unsigned long InternalAndReservedAttribute6IDirectory;

    readonly attribute unsigned long InternalAndReservedAttribute7IDirectory;

    readonly attribute unsigned long InternalAndReservedAttribute8IDirectory;

    void close();

    void read (
        [retval] out IFsObjInfo objInfo
    );

    void InternalAndReservedMethod1IDirectory();

    void InternalAndReservedMethod2IDirectory();

    void InternalAndReservedMethod3IDirectory();

    void InternalAndReservedMethod4IDirectory();

}; /* interface IDirectory */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IDirectory_GETTER_DirectoryName_TO(smth) NS_IMETHOD GetDirectoryName (PRUnichar * * aDirectoryName) { return smth GetDirectoryName (aDirectoryName); }
#define COM_FORWARD_IDirectory_GETTER_DirectoryName_TO_OBJ(obj) COM_FORWARD_IDirectory_GETTER_DirectoryName_TO ((obj)->)
#define COM_FORWARD_IDirectory_GETTER_DirectoryName_TO_BASE(base) COM_FORWARD_IDirectory_GETTER_DirectoryName_TO (base::)
#define COM_FORWARD_IDirectory_GETTER_Filter_TO(smth) NS_IMETHOD GetFilter (PRUnichar * * aFilter) { return smth GetFilter (aFilter); }
#define COM_FORWARD_IDirectory_GETTER_Filter_TO_OBJ(obj) COM_FORWARD_IDirectory_GETTER_Filter_TO ((obj)->)
#define COM_FORWARD_IDirectory_GETTER_Filter_TO_BASE(base) COM_FORWARD_IDirectory_GETTER_Filter_TO (base::)
#define COM_FORWARD_IDirectory_Close_TO(smth) NS_IMETHOD Close() { return smth Close(); }
#define COM_FORWARD_IDirectory_Close_TO_OBJ(obj) COM_FORWARD_IDirectory_Close_TO ((obj)->)
#define COM_FORWARD_IDirectory_Close_TO_BASE(base) COM_FORWARD_IDirectory_Close_TO (base::)
#define COM_FORWARD_IDirectory_Read_TO(smth) NS_IMETHOD Read (IFsObjInfo * * aObjInfo) { return smth Read (aObjInfo); }
#define COM_FORWARD_IDirectory_Read_TO_OBJ(obj) COM_FORWARD_IDirectory_Read_TO ((obj)->)
#define COM_FORWARD_IDirectory_Read_TO_BASE(base) COM_FORWARD_IDirectory_Read_TO (base::)
#define COM_FORWARD_IDirectory_TO(smth) NS_FORWARD_IDIRECTORY (smth)
#define COM_FORWARD_IDirectory_TO_OBJ(obj) COM_FORWARD_IDirectory_TO ((obj)->)
#define COM_FORWARD_IDirectory_TO_BASE(base) COM_FORWARD_IDirectory_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IDirectory;
%}

[
    uuid(cc830458-4974-a19c-4dc6-cc98c2269626),
    scriptable
]
interface IGuestDirectory : IDirectory
{
    readonly attribute boolean midlDoesNotLikeEmptyInterfaces;

}; /* interface IGuestDirectory */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IGuestDirectory_GETTER_MidlDoesNotLikeEmptyInterfaces_TO(smth) NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces (PRBool * aMidlDoesNotLikeEmptyInterfaces) { return smth GetMidlDoesNotLikeEmptyInterfaces (aMidlDoesNotLikeEmptyInterfaces); }
#define COM_FORWARD_IGuestDirectory_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_OBJ(obj) COM_FORWARD_IGuestDirectory_GETTER_MidlDoesNotLikeEmptyInterfaces_TO ((obj)->)
#define COM_FORWARD_IGuestDirectory_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_BASE(base) COM_FORWARD_IGuestDirectory_GETTER_MidlDoesNotLikeEmptyInterfaces_TO (base::)
#define COM_FORWARD_IGuestDirectory_TO(smth) NS_FORWARD_IGUESTDIRECTORY (smth)
#define COM_FORWARD_IGuestDirectory_TO_OBJ(obj) COM_FORWARD_IGuestDirectory_TO ((obj)->)
#define COM_FORWARD_IGuestDirectory_TO_BASE(base) COM_FORWARD_IGuestDirectory_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestDirectory;
%}

[
    uuid(59a235ac-2f1a-4d6c-81fc-e3fa843f49ae),
    scriptable
]
interface IFile : nsISupports
{
    readonly attribute IEventSource eventSource;

    readonly attribute unsigned long id;

    readonly attribute long long initialSize;

    readonly attribute long long offset;

    readonly attribute FileStatus_T status;

    readonly attribute wstring filename;

    readonly attribute unsigned long creationMode;

    readonly attribute FileOpenAction_T openAction;

    readonly attribute FileAccessMode_T accessMode;

    readonly attribute unsigned long InternalAndReservedAttribute1IFile;

    readonly attribute unsigned long InternalAndReservedAttribute2IFile;

    readonly attribute unsigned long InternalAndReservedAttribute3IFile;

    readonly attribute unsigned long InternalAndReservedAttribute4IFile;

    readonly attribute unsigned long InternalAndReservedAttribute5IFile;

    readonly attribute unsigned long InternalAndReservedAttribute6IFile;

    readonly attribute unsigned long InternalAndReservedAttribute7IFile;

    readonly attribute unsigned long InternalAndReservedAttribute8IFile;

    void close();

    void queryInfo (
        [retval] out IFsObjInfo objInfo
    );

    void querySize (
        [retval] out long long size
    );

    void read (
        in unsigned long toRead,
        in unsigned long timeoutMS,
        out unsigned long dataSize,
        [array, size_is(dataSize) , retval] out octet data
    );

    void readAt (
        in long long offset,
        in unsigned long toRead,
        in unsigned long timeoutMS,
        out unsigned long dataSize,
        [array, size_is(dataSize) , retval] out octet data
    );

    void seek (
        in long long offset,
        in FileSeekOrigin_T whence,
        [retval] out long long newOffset
    );

    void setACL (
        in wstring acl,
        in unsigned long mode
    );

    void setSize (
        in long long size
    );

    void write (
        in unsigned long dataSize,
        [array, size_is(dataSize)] in octet data,
        in unsigned long timeoutMS,
        [retval] out unsigned long written
    );

    void writeAt (
        in long long offset,
        in unsigned long dataSize,
        [array, size_is(dataSize)] in octet data,
        in unsigned long timeoutMS,
        [retval] out unsigned long written
    );

    void InternalAndReservedMethod1IFile();

    void InternalAndReservedMethod2IFile();

    void InternalAndReservedMethod3IFile();

    void InternalAndReservedMethod4IFile();

}; /* interface IFile */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IFile_GETTER_EventSource_TO(smth) NS_IMETHOD GetEventSource (IEventSource * * aEventSource) { return smth GetEventSource (aEventSource); }
#define COM_FORWARD_IFile_GETTER_EventSource_TO_OBJ(obj) COM_FORWARD_IFile_GETTER_EventSource_TO ((obj)->)
#define COM_FORWARD_IFile_GETTER_EventSource_TO_BASE(base) COM_FORWARD_IFile_GETTER_EventSource_TO (base::)
#define COM_FORWARD_IFile_GETTER_Id_TO(smth) NS_IMETHOD GetId (PRUint32 * aId) { return smth GetId (aId); }
#define COM_FORWARD_IFile_GETTER_Id_TO_OBJ(obj) COM_FORWARD_IFile_GETTER_Id_TO ((obj)->)
#define COM_FORWARD_IFile_GETTER_Id_TO_BASE(base) COM_FORWARD_IFile_GETTER_Id_TO (base::)
#define COM_FORWARD_IFile_GETTER_InitialSize_TO(smth) NS_IMETHOD GetInitialSize (PRInt64 * aInitialSize) { return smth GetInitialSize (aInitialSize); }
#define COM_FORWARD_IFile_GETTER_InitialSize_TO_OBJ(obj) COM_FORWARD_IFile_GETTER_InitialSize_TO ((obj)->)
#define COM_FORWARD_IFile_GETTER_InitialSize_TO_BASE(base) COM_FORWARD_IFile_GETTER_InitialSize_TO (base::)
#define COM_FORWARD_IFile_GETTER_Offset_TO(smth) NS_IMETHOD GetOffset (PRInt64 * aOffset) { return smth GetOffset (aOffset); }
#define COM_FORWARD_IFile_GETTER_Offset_TO_OBJ(obj) COM_FORWARD_IFile_GETTER_Offset_TO ((obj)->)
#define COM_FORWARD_IFile_GETTER_Offset_TO_BASE(base) COM_FORWARD_IFile_GETTER_Offset_TO (base::)
#define COM_FORWARD_IFile_GETTER_Status_TO(smth) NS_IMETHOD GetStatus (PRUint32 * aStatus) { return smth GetStatus (aStatus); }
#define COM_FORWARD_IFile_GETTER_Status_TO_OBJ(obj) COM_FORWARD_IFile_GETTER_Status_TO ((obj)->)
#define COM_FORWARD_IFile_GETTER_Status_TO_BASE(base) COM_FORWARD_IFile_GETTER_Status_TO (base::)
#define COM_FORWARD_IFile_GETTER_Filename_TO(smth) NS_IMETHOD GetFilename (PRUnichar * * aFilename) { return smth GetFilename (aFilename); }
#define COM_FORWARD_IFile_GETTER_Filename_TO_OBJ(obj) COM_FORWARD_IFile_GETTER_Filename_TO ((obj)->)
#define COM_FORWARD_IFile_GETTER_Filename_TO_BASE(base) COM_FORWARD_IFile_GETTER_Filename_TO (base::)
#define COM_FORWARD_IFile_GETTER_CreationMode_TO(smth) NS_IMETHOD GetCreationMode (PRUint32 * aCreationMode) { return smth GetCreationMode (aCreationMode); }
#define COM_FORWARD_IFile_GETTER_CreationMode_TO_OBJ(obj) COM_FORWARD_IFile_GETTER_CreationMode_TO ((obj)->)
#define COM_FORWARD_IFile_GETTER_CreationMode_TO_BASE(base) COM_FORWARD_IFile_GETTER_CreationMode_TO (base::)
#define COM_FORWARD_IFile_GETTER_OpenAction_TO(smth) NS_IMETHOD GetOpenAction (PRUint32 * aOpenAction) { return smth GetOpenAction (aOpenAction); }
#define COM_FORWARD_IFile_GETTER_OpenAction_TO_OBJ(obj) COM_FORWARD_IFile_GETTER_OpenAction_TO ((obj)->)
#define COM_FORWARD_IFile_GETTER_OpenAction_TO_BASE(base) COM_FORWARD_IFile_GETTER_OpenAction_TO (base::)
#define COM_FORWARD_IFile_GETTER_AccessMode_TO(smth) NS_IMETHOD GetAccessMode (PRUint32 * aAccessMode) { return smth GetAccessMode (aAccessMode); }
#define COM_FORWARD_IFile_GETTER_AccessMode_TO_OBJ(obj) COM_FORWARD_IFile_GETTER_AccessMode_TO ((obj)->)
#define COM_FORWARD_IFile_GETTER_AccessMode_TO_BASE(base) COM_FORWARD_IFile_GETTER_AccessMode_TO (base::)
#define COM_FORWARD_IFile_Close_TO(smth) NS_IMETHOD Close() { return smth Close(); }
#define COM_FORWARD_IFile_Close_TO_OBJ(obj) COM_FORWARD_IFile_Close_TO ((obj)->)
#define COM_FORWARD_IFile_Close_TO_BASE(base) COM_FORWARD_IFile_Close_TO (base::)
#define COM_FORWARD_IFile_QueryInfo_TO(smth) NS_IMETHOD QueryInfo (IFsObjInfo * * aObjInfo) { return smth QueryInfo (aObjInfo); }
#define COM_FORWARD_IFile_QueryInfo_TO_OBJ(obj) COM_FORWARD_IFile_QueryInfo_TO ((obj)->)
#define COM_FORWARD_IFile_QueryInfo_TO_BASE(base) COM_FORWARD_IFile_QueryInfo_TO (base::)
#define COM_FORWARD_IFile_QuerySize_TO(smth) NS_IMETHOD QuerySize (PRInt64 * aSize) { return smth QuerySize (aSize); }
#define COM_FORWARD_IFile_QuerySize_TO_OBJ(obj) COM_FORWARD_IFile_QuerySize_TO ((obj)->)
#define COM_FORWARD_IFile_QuerySize_TO_BASE(base) COM_FORWARD_IFile_QuerySize_TO (base::)
#define COM_FORWARD_IFile_Read_TO(smth) NS_IMETHOD Read (PRUint32 aToRead, PRUint32 aTimeoutMS, PRUint32 * aDataSize, PRUint8 * * aData) { return smth Read (aToRead, aTimeoutMS, aDataSize, aData); }
#define COM_FORWARD_IFile_Read_TO_OBJ(obj) COM_FORWARD_IFile_Read_TO ((obj)->)
#define COM_FORWARD_IFile_Read_TO_BASE(base) COM_FORWARD_IFile_Read_TO (base::)
#define COM_FORWARD_IFile_ReadAt_TO(smth) NS_IMETHOD ReadAt (PRInt64 aOffset, PRUint32 aToRead, PRUint32 aTimeoutMS, PRUint32 * aDataSize, PRUint8 * * aData) { return smth ReadAt (aOffset, aToRead, aTimeoutMS, aDataSize, aData); }
#define COM_FORWARD_IFile_ReadAt_TO_OBJ(obj) COM_FORWARD_IFile_ReadAt_TO ((obj)->)
#define COM_FORWARD_IFile_ReadAt_TO_BASE(base) COM_FORWARD_IFile_ReadAt_TO (base::)
#define COM_FORWARD_IFile_Seek_TO(smth) NS_IMETHOD Seek (PRInt64 aOffset, PRUint32 aWhence, PRInt64 * aNewOffset) { return smth Seek (aOffset, aWhence, aNewOffset); }
#define COM_FORWARD_IFile_Seek_TO_OBJ(obj) COM_FORWARD_IFile_Seek_TO ((obj)->)
#define COM_FORWARD_IFile_Seek_TO_BASE(base) COM_FORWARD_IFile_Seek_TO (base::)
#define COM_FORWARD_IFile_SetACL_TO(smth) NS_IMETHOD SetACL (PRUnichar * aAcl, PRUint32 aMode) { return smth SetACL (aAcl, aMode); }
#define COM_FORWARD_IFile_SetACL_TO_OBJ(obj) COM_FORWARD_IFile_SetACL_TO ((obj)->)
#define COM_FORWARD_IFile_SetACL_TO_BASE(base) COM_FORWARD_IFile_SetACL_TO (base::)
#define COM_FORWARD_IFile_SetSize_TO(smth) NS_IMETHOD SetSize (PRInt64 aSize) { return smth SetSize (aSize); }
#define COM_FORWARD_IFile_SetSize_TO_OBJ(obj) COM_FORWARD_IFile_SetSize_TO ((obj)->)
#define COM_FORWARD_IFile_SetSize_TO_BASE(base) COM_FORWARD_IFile_SetSize_TO (base::)
#define COM_FORWARD_IFile_Write_TO(smth) NS_IMETHOD Write (PRUint32 aDataSize, PRUint8 * aData, PRUint32 aTimeoutMS, PRUint32 * aWritten) { return smth Write (aDataSize+++, aData, aTimeoutMS, aWritten); }
#define COM_FORWARD_IFile_Write_TO_OBJ(obj) COM_FORWARD_IFile_Write_TO ((obj)->)
#define COM_FORWARD_IFile_Write_TO_BASE(base) COM_FORWARD_IFile_Write_TO (base::)
#define COM_FORWARD_IFile_WriteAt_TO(smth) NS_IMETHOD WriteAt (PRInt64 aOffset, PRUint32 aDataSize, PRUint8 * aData, PRUint32 aTimeoutMS, PRUint32 * aWritten) { return smth WriteAt (aOffset, aDataSize+++, aData, aTimeoutMS, aWritten); }
#define COM_FORWARD_IFile_WriteAt_TO_OBJ(obj) COM_FORWARD_IFile_WriteAt_TO ((obj)->)
#define COM_FORWARD_IFile_WriteAt_TO_BASE(base) COM_FORWARD_IFile_WriteAt_TO (base::)
#define COM_FORWARD_IFile_TO(smth) NS_FORWARD_IFILE (smth)
#define COM_FORWARD_IFile_TO_OBJ(obj) COM_FORWARD_IFile_TO ((obj)->)
#define COM_FORWARD_IFile_TO_BASE(base) COM_FORWARD_IFile_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IFile;
%}

[
    uuid(92f21dc0-44de-1653-b717-2ebf0ca9b664),
    scriptable
]
interface IGuestFile : IFile
{
    readonly attribute boolean midlDoesNotLikeEmptyInterfaces;

}; /* interface IGuestFile */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IGuestFile_GETTER_MidlDoesNotLikeEmptyInterfaces_TO(smth) NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces (PRBool * aMidlDoesNotLikeEmptyInterfaces) { return smth GetMidlDoesNotLikeEmptyInterfaces (aMidlDoesNotLikeEmptyInterfaces); }
#define COM_FORWARD_IGuestFile_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_OBJ(obj) COM_FORWARD_IGuestFile_GETTER_MidlDoesNotLikeEmptyInterfaces_TO ((obj)->)
#define COM_FORWARD_IGuestFile_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_BASE(base) COM_FORWARD_IGuestFile_GETTER_MidlDoesNotLikeEmptyInterfaces_TO (base::)
#define COM_FORWARD_IGuestFile_TO(smth) NS_FORWARD_IGUESTFILE (smth)
#define COM_FORWARD_IGuestFile_TO_OBJ(obj) COM_FORWARD_IGuestFile_TO ((obj)->)
#define COM_FORWARD_IGuestFile_TO_BASE(base) COM_FORWARD_IGuestFile_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestFile;
%}

[
    uuid(081fc833-c6fa-430e-6020-6a505d086387),
    scriptable
]
interface IFsObjInfo : nsISupports
{
    readonly attribute wstring name;

    readonly attribute FsObjType_T type;

    readonly attribute wstring fileAttributes;

    readonly attribute long long objectSize;

    readonly attribute long long allocatedSize;

    readonly attribute long long accessTime;

    readonly attribute long long birthTime;

    readonly attribute long long changeTime;

    readonly attribute long long modificationTime;

    readonly attribute long UID;

    readonly attribute wstring userName;

    readonly attribute long GID;

    readonly attribute wstring groupName;

    readonly attribute long long nodeId;

    readonly attribute unsigned long nodeIdDevice;

    readonly attribute unsigned long hardLinks;

    readonly attribute unsigned long deviceNumber;

    readonly attribute unsigned long generationId;

    readonly attribute unsigned long userFlags;

    readonly attribute unsigned long InternalAndReservedAttribute1IFsObjInfo;

    readonly attribute unsigned long InternalAndReservedAttribute2IFsObjInfo;

    readonly attribute unsigned long InternalAndReservedAttribute3IFsObjInfo;

    readonly attribute unsigned long InternalAndReservedAttribute4IFsObjInfo;

    readonly attribute unsigned long InternalAndReservedAttribute5IFsObjInfo;

    readonly attribute unsigned long InternalAndReservedAttribute6IFsObjInfo;

    readonly attribute unsigned long InternalAndReservedAttribute7IFsObjInfo;

    readonly attribute unsigned long InternalAndReservedAttribute8IFsObjInfo;

}; /* interface IFsObjInfo */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IFsObjInfo_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_IFsObjInfo_GETTER_Name_TO_OBJ(obj) COM_FORWARD_IFsObjInfo_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_IFsObjInfo_GETTER_Name_TO_BASE(base) COM_FORWARD_IFsObjInfo_GETTER_Name_TO (base::)
#define COM_FORWARD_IFsObjInfo_GETTER_Type_TO(smth) NS_IMETHOD GetType (PRUint32 * aType) { return smth GetType (aType); }
#define COM_FORWARD_IFsObjInfo_GETTER_Type_TO_OBJ(obj) COM_FORWARD_IFsObjInfo_GETTER_Type_TO ((obj)->)
#define COM_FORWARD_IFsObjInfo_GETTER_Type_TO_BASE(base) COM_FORWARD_IFsObjInfo_GETTER_Type_TO (base::)
#define COM_FORWARD_IFsObjInfo_GETTER_FileAttributes_TO(smth) NS_IMETHOD GetFileAttributes (PRUnichar * * aFileAttributes) { return smth GetFileAttributes (aFileAttributes); }
#define COM_FORWARD_IFsObjInfo_GETTER_FileAttributes_TO_OBJ(obj) COM_FORWARD_IFsObjInfo_GETTER_FileAttributes_TO ((obj)->)
#define COM_FORWARD_IFsObjInfo_GETTER_FileAttributes_TO_BASE(base) COM_FORWARD_IFsObjInfo_GETTER_FileAttributes_TO (base::)
#define COM_FORWARD_IFsObjInfo_GETTER_ObjectSize_TO(smth) NS_IMETHOD GetObjectSize (PRInt64 * aObjectSize) { return smth GetObjectSize (aObjectSize); }
#define COM_FORWARD_IFsObjInfo_GETTER_ObjectSize_TO_OBJ(obj) COM_FORWARD_IFsObjInfo_GETTER_ObjectSize_TO ((obj)->)
#define COM_FORWARD_IFsObjInfo_GETTER_ObjectSize_TO_BASE(base) COM_FORWARD_IFsObjInfo_GETTER_ObjectSize_TO (base::)
#define COM_FORWARD_IFsObjInfo_GETTER_AllocatedSize_TO(smth) NS_IMETHOD GetAllocatedSize (PRInt64 * aAllocatedSize) { return smth GetAllocatedSize (aAllocatedSize); }
#define COM_FORWARD_IFsObjInfo_GETTER_AllocatedSize_TO_OBJ(obj) COM_FORWARD_IFsObjInfo_GETTER_AllocatedSize_TO ((obj)->)
#define COM_FORWARD_IFsObjInfo_GETTER_AllocatedSize_TO_BASE(base) COM_FORWARD_IFsObjInfo_GETTER_AllocatedSize_TO (base::)
#define COM_FORWARD_IFsObjInfo_GETTER_AccessTime_TO(smth) NS_IMETHOD GetAccessTime (PRInt64 * aAccessTime) { return smth GetAccessTime (aAccessTime); }
#define COM_FORWARD_IFsObjInfo_GETTER_AccessTime_TO_OBJ(obj) COM_FORWARD_IFsObjInfo_GETTER_AccessTime_TO ((obj)->)
#define COM_FORWARD_IFsObjInfo_GETTER_AccessTime_TO_BASE(base) COM_FORWARD_IFsObjInfo_GETTER_AccessTime_TO (base::)
#define COM_FORWARD_IFsObjInfo_GETTER_BirthTime_TO(smth) NS_IMETHOD GetBirthTime (PRInt64 * aBirthTime) { return smth GetBirthTime (aBirthTime); }
#define COM_FORWARD_IFsObjInfo_GETTER_BirthTime_TO_OBJ(obj) COM_FORWARD_IFsObjInfo_GETTER_BirthTime_TO ((obj)->)
#define COM_FORWARD_IFsObjInfo_GETTER_BirthTime_TO_BASE(base) COM_FORWARD_IFsObjInfo_GETTER_BirthTime_TO (base::)
#define COM_FORWARD_IFsObjInfo_GETTER_ChangeTime_TO(smth) NS_IMETHOD GetChangeTime (PRInt64 * aChangeTime) { return smth GetChangeTime (aChangeTime); }
#define COM_FORWARD_IFsObjInfo_GETTER_ChangeTime_TO_OBJ(obj) COM_FORWARD_IFsObjInfo_GETTER_ChangeTime_TO ((obj)->)
#define COM_FORWARD_IFsObjInfo_GETTER_ChangeTime_TO_BASE(base) COM_FORWARD_IFsObjInfo_GETTER_ChangeTime_TO (base::)
#define COM_FORWARD_IFsObjInfo_GETTER_ModificationTime_TO(smth) NS_IMETHOD GetModificationTime (PRInt64 * aModificationTime) { return smth GetModificationTime (aModificationTime); }
#define COM_FORWARD_IFsObjInfo_GETTER_ModificationTime_TO_OBJ(obj) COM_FORWARD_IFsObjInfo_GETTER_ModificationTime_TO ((obj)->)
#define COM_FORWARD_IFsObjInfo_GETTER_ModificationTime_TO_BASE(base) COM_FORWARD_IFsObjInfo_GETTER_ModificationTime_TO (base::)
#define COM_FORWARD_IFsObjInfo_GETTER_UID_TO(smth) NS_IMETHOD GetUID (PRInt32 * aUID) { return smth GetUID (aUID); }
#define COM_FORWARD_IFsObjInfo_GETTER_UID_TO_OBJ(obj) COM_FORWARD_IFsObjInfo_GETTER_UID_TO ((obj)->)
#define COM_FORWARD_IFsObjInfo_GETTER_UID_TO_BASE(base) COM_FORWARD_IFsObjInfo_GETTER_UID_TO (base::)
#define COM_FORWARD_IFsObjInfo_GETTER_UserName_TO(smth) NS_IMETHOD GetUserName (PRUnichar * * aUserName) { return smth GetUserName (aUserName); }
#define COM_FORWARD_IFsObjInfo_GETTER_UserName_TO_OBJ(obj) COM_FORWARD_IFsObjInfo_GETTER_UserName_TO ((obj)->)
#define COM_FORWARD_IFsObjInfo_GETTER_UserName_TO_BASE(base) COM_FORWARD_IFsObjInfo_GETTER_UserName_TO (base::)
#define COM_FORWARD_IFsObjInfo_GETTER_GID_TO(smth) NS_IMETHOD GetGID (PRInt32 * aGID) { return smth GetGID (aGID); }
#define COM_FORWARD_IFsObjInfo_GETTER_GID_TO_OBJ(obj) COM_FORWARD_IFsObjInfo_GETTER_GID_TO ((obj)->)
#define COM_FORWARD_IFsObjInfo_GETTER_GID_TO_BASE(base) COM_FORWARD_IFsObjInfo_GETTER_GID_TO (base::)
#define COM_FORWARD_IFsObjInfo_GETTER_GroupName_TO(smth) NS_IMETHOD GetGroupName (PRUnichar * * aGroupName) { return smth GetGroupName (aGroupName); }
#define COM_FORWARD_IFsObjInfo_GETTER_GroupName_TO_OBJ(obj) COM_FORWARD_IFsObjInfo_GETTER_GroupName_TO ((obj)->)
#define COM_FORWARD_IFsObjInfo_GETTER_GroupName_TO_BASE(base) COM_FORWARD_IFsObjInfo_GETTER_GroupName_TO (base::)
#define COM_FORWARD_IFsObjInfo_GETTER_NodeId_TO(smth) NS_IMETHOD GetNodeId (PRInt64 * aNodeId) { return smth GetNodeId (aNodeId); }
#define COM_FORWARD_IFsObjInfo_GETTER_NodeId_TO_OBJ(obj) COM_FORWARD_IFsObjInfo_GETTER_NodeId_TO ((obj)->)
#define COM_FORWARD_IFsObjInfo_GETTER_NodeId_TO_BASE(base) COM_FORWARD_IFsObjInfo_GETTER_NodeId_TO (base::)
#define COM_FORWARD_IFsObjInfo_GETTER_NodeIdDevice_TO(smth) NS_IMETHOD GetNodeIdDevice (PRUint32 * aNodeIdDevice) { return smth GetNodeIdDevice (aNodeIdDevice); }
#define COM_FORWARD_IFsObjInfo_GETTER_NodeIdDevice_TO_OBJ(obj) COM_FORWARD_IFsObjInfo_GETTER_NodeIdDevice_TO ((obj)->)
#define COM_FORWARD_IFsObjInfo_GETTER_NodeIdDevice_TO_BASE(base) COM_FORWARD_IFsObjInfo_GETTER_NodeIdDevice_TO (base::)
#define COM_FORWARD_IFsObjInfo_GETTER_HardLinks_TO(smth) NS_IMETHOD GetHardLinks (PRUint32 * aHardLinks) { return smth GetHardLinks (aHardLinks); }
#define COM_FORWARD_IFsObjInfo_GETTER_HardLinks_TO_OBJ(obj) COM_FORWARD_IFsObjInfo_GETTER_HardLinks_TO ((obj)->)
#define COM_FORWARD_IFsObjInfo_GETTER_HardLinks_TO_BASE(base) COM_FORWARD_IFsObjInfo_GETTER_HardLinks_TO (base::)
#define COM_FORWARD_IFsObjInfo_GETTER_DeviceNumber_TO(smth) NS_IMETHOD GetDeviceNumber (PRUint32 * aDeviceNumber) { return smth GetDeviceNumber (aDeviceNumber); }
#define COM_FORWARD_IFsObjInfo_GETTER_DeviceNumber_TO_OBJ(obj) COM_FORWARD_IFsObjInfo_GETTER_DeviceNumber_TO ((obj)->)
#define COM_FORWARD_IFsObjInfo_GETTER_DeviceNumber_TO_BASE(base) COM_FORWARD_IFsObjInfo_GETTER_DeviceNumber_TO (base::)
#define COM_FORWARD_IFsObjInfo_GETTER_GenerationId_TO(smth) NS_IMETHOD GetGenerationId (PRUint32 * aGenerationId) { return smth GetGenerationId (aGenerationId); }
#define COM_FORWARD_IFsObjInfo_GETTER_GenerationId_TO_OBJ(obj) COM_FORWARD_IFsObjInfo_GETTER_GenerationId_TO ((obj)->)
#define COM_FORWARD_IFsObjInfo_GETTER_GenerationId_TO_BASE(base) COM_FORWARD_IFsObjInfo_GETTER_GenerationId_TO (base::)
#define COM_FORWARD_IFsObjInfo_GETTER_UserFlags_TO(smth) NS_IMETHOD GetUserFlags (PRUint32 * aUserFlags) { return smth GetUserFlags (aUserFlags); }
#define COM_FORWARD_IFsObjInfo_GETTER_UserFlags_TO_OBJ(obj) COM_FORWARD_IFsObjInfo_GETTER_UserFlags_TO ((obj)->)
#define COM_FORWARD_IFsObjInfo_GETTER_UserFlags_TO_BASE(base) COM_FORWARD_IFsObjInfo_GETTER_UserFlags_TO (base::)
#define COM_FORWARD_IFsObjInfo_TO(smth) NS_FORWARD_IFSOBJINFO (smth)
#define COM_FORWARD_IFsObjInfo_TO_OBJ(obj) COM_FORWARD_IFsObjInfo_TO ((obj)->)
#define COM_FORWARD_IFsObjInfo_TO_BASE(base) COM_FORWARD_IFsObjInfo_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IFsObjInfo;
%}

[
    uuid(6620db85-44e0-ca69-e9e0-d4907ceccbe5),
    scriptable
]
interface IGuestFsObjInfo : IFsObjInfo
{
    readonly attribute boolean midlDoesNotLikeEmptyInterfaces;

}; /* interface IGuestFsObjInfo */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IGuestFsObjInfo_GETTER_MidlDoesNotLikeEmptyInterfaces_TO(smth) NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces (PRBool * aMidlDoesNotLikeEmptyInterfaces) { return smth GetMidlDoesNotLikeEmptyInterfaces (aMidlDoesNotLikeEmptyInterfaces); }
#define COM_FORWARD_IGuestFsObjInfo_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_OBJ(obj) COM_FORWARD_IGuestFsObjInfo_GETTER_MidlDoesNotLikeEmptyInterfaces_TO ((obj)->)
#define COM_FORWARD_IGuestFsObjInfo_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_BASE(base) COM_FORWARD_IGuestFsObjInfo_GETTER_MidlDoesNotLikeEmptyInterfaces_TO (base::)
#define COM_FORWARD_IGuestFsObjInfo_TO(smth) NS_FORWARD_IGUESTFSOBJINFO (smth)
#define COM_FORWARD_IGuestFsObjInfo_TO_OBJ(obj) COM_FORWARD_IGuestFsObjInfo_TO ((obj)->)
#define COM_FORWARD_IGuestFsObjInfo_TO_BASE(base) COM_FORWARD_IGuestFsObjInfo_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestFsObjInfo;
%}

[
    uuid(13a11514-402e-022e-6180-c3944de3f9c8),
    scriptable
]
interface IGuest : nsISupports
{
    readonly attribute wstring OSTypeId;

    readonly attribute AdditionsRunLevelType_T additionsRunLevel;

    readonly attribute wstring additionsVersion;

    readonly attribute unsigned long additionsRevision;

    readonly attribute IGuestDnDSource dnDSource;

    readonly attribute IGuestDnDTarget dnDTarget;

    readonly attribute IEventSource eventSource;

    void getFacilities (
        out unsigned long facilitiesSize,
        [array, size_is(facilitiesSize), retval] out IAdditionsFacility facilities
    );

    void getSessions (
        out unsigned long sessionsSize,
        [array, size_is(sessionsSize), retval] out IGuestSession sessions
    );

    attribute unsigned long memoryBalloonSize;

    attribute unsigned long statisticsUpdateInterval;

    readonly attribute unsigned long InternalAndReservedAttribute1IGuest;

    readonly attribute unsigned long InternalAndReservedAttribute2IGuest;

    readonly attribute unsigned long InternalAndReservedAttribute3IGuest;

    readonly attribute unsigned long InternalAndReservedAttribute4IGuest;

    readonly attribute unsigned long InternalAndReservedAttribute5IGuest;

    readonly attribute unsigned long InternalAndReservedAttribute6IGuest;

    readonly attribute unsigned long InternalAndReservedAttribute7IGuest;

    readonly attribute unsigned long InternalAndReservedAttribute8IGuest;

    readonly attribute unsigned long InternalAndReservedAttribute9IGuest;

    readonly attribute unsigned long InternalAndReservedAttribute10IGuest;

    readonly attribute unsigned long InternalAndReservedAttribute11IGuest;

    readonly attribute unsigned long InternalAndReservedAttribute12IGuest;

    readonly attribute unsigned long InternalAndReservedAttribute13IGuest;

    readonly attribute unsigned long InternalAndReservedAttribute14IGuest;

    readonly attribute unsigned long InternalAndReservedAttribute15IGuest;

    readonly attribute unsigned long InternalAndReservedAttribute16IGuest;

    void internalGetStatistics (
        out unsigned long cpuUser,
        out unsigned long cpuKernel,
        out unsigned long cpuIdle,
        out unsigned long memTotal,
        out unsigned long memFree,
        out unsigned long memBalloon,
        out unsigned long memShared,
        out unsigned long memCache,
        out unsigned long pagedTotal,
        out unsigned long memAllocTotal,
        out unsigned long memFreeTotal,
        out unsigned long memBalloonTotal,
        out unsigned long memSharedTotal
    );

    void getFacilityStatus (
        in AdditionsFacilityType_T facility,
        out long long timestamp,
        [retval] out AdditionsFacilityStatus_T status
    );

    void getAdditionsStatus (
        in AdditionsRunLevelType_T level,
        [retval] out boolean active
    );

    void setCredentials (
        in wstring userName,
        in wstring password,
        in wstring domain,
        in boolean allowInteractiveLogon
    );

    void createSession (
        in wstring user,
        in wstring password,
        in wstring domain,
        in wstring sessionName,
        [retval] out IGuestSession guestSession
    );

    void findSession (
        in wstring sessionName,
        out unsigned long sessionsSize,
        [array, size_is(sessionsSize) , retval] out IGuestSession sessions
    );

    void updateGuestAdditions (
        in wstring source,
        in unsigned long argumentsSize,
        [array, size_is(argumentsSize)] in wstring arguments,
        in unsigned long flagsSize,
        [array, size_is(flagsSize)] in AdditionsUpdateFlag_T flags,
        [retval] out IProgress progress
    );

    void InternalAndReservedMethod1IGuest();

    void InternalAndReservedMethod2IGuest();

    void InternalAndReservedMethod3IGuest();

    void InternalAndReservedMethod4IGuest();

    void InternalAndReservedMethod5IGuest();

    void InternalAndReservedMethod6IGuest();

    void InternalAndReservedMethod7IGuest();

    void InternalAndReservedMethod8IGuest();

}; /* interface IGuest */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IGuest_GETTER_OSTypeId_TO(smth) NS_IMETHOD GetOSTypeId (PRUnichar * * aOSTypeId) { return smth GetOSTypeId (aOSTypeId); }
#define COM_FORWARD_IGuest_GETTER_OSTypeId_TO_OBJ(obj) COM_FORWARD_IGuest_GETTER_OSTypeId_TO ((obj)->)
#define COM_FORWARD_IGuest_GETTER_OSTypeId_TO_BASE(base) COM_FORWARD_IGuest_GETTER_OSTypeId_TO (base::)
#define COM_FORWARD_IGuest_GETTER_AdditionsRunLevel_TO(smth) NS_IMETHOD GetAdditionsRunLevel (PRUint32 * aAdditionsRunLevel) { return smth GetAdditionsRunLevel (aAdditionsRunLevel); }
#define COM_FORWARD_IGuest_GETTER_AdditionsRunLevel_TO_OBJ(obj) COM_FORWARD_IGuest_GETTER_AdditionsRunLevel_TO ((obj)->)
#define COM_FORWARD_IGuest_GETTER_AdditionsRunLevel_TO_BASE(base) COM_FORWARD_IGuest_GETTER_AdditionsRunLevel_TO (base::)
#define COM_FORWARD_IGuest_GETTER_AdditionsVersion_TO(smth) NS_IMETHOD GetAdditionsVersion (PRUnichar * * aAdditionsVersion) { return smth GetAdditionsVersion (aAdditionsVersion); }
#define COM_FORWARD_IGuest_GETTER_AdditionsVersion_TO_OBJ(obj) COM_FORWARD_IGuest_GETTER_AdditionsVersion_TO ((obj)->)
#define COM_FORWARD_IGuest_GETTER_AdditionsVersion_TO_BASE(base) COM_FORWARD_IGuest_GETTER_AdditionsVersion_TO (base::)
#define COM_FORWARD_IGuest_GETTER_AdditionsRevision_TO(smth) NS_IMETHOD GetAdditionsRevision (PRUint32 * aAdditionsRevision) { return smth GetAdditionsRevision (aAdditionsRevision); }
#define COM_FORWARD_IGuest_GETTER_AdditionsRevision_TO_OBJ(obj) COM_FORWARD_IGuest_GETTER_AdditionsRevision_TO ((obj)->)
#define COM_FORWARD_IGuest_GETTER_AdditionsRevision_TO_BASE(base) COM_FORWARD_IGuest_GETTER_AdditionsRevision_TO (base::)
#define COM_FORWARD_IGuest_GETTER_DnDSource_TO(smth) NS_IMETHOD GetDnDSource (IGuestDnDSource * * aDnDSource) { return smth GetDnDSource (aDnDSource); }
#define COM_FORWARD_IGuest_GETTER_DnDSource_TO_OBJ(obj) COM_FORWARD_IGuest_GETTER_DnDSource_TO ((obj)->)
#define COM_FORWARD_IGuest_GETTER_DnDSource_TO_BASE(base) COM_FORWARD_IGuest_GETTER_DnDSource_TO (base::)
#define COM_FORWARD_IGuest_GETTER_DnDTarget_TO(smth) NS_IMETHOD GetDnDTarget (IGuestDnDTarget * * aDnDTarget) { return smth GetDnDTarget (aDnDTarget); }
#define COM_FORWARD_IGuest_GETTER_DnDTarget_TO_OBJ(obj) COM_FORWARD_IGuest_GETTER_DnDTarget_TO ((obj)->)
#define COM_FORWARD_IGuest_GETTER_DnDTarget_TO_BASE(base) COM_FORWARD_IGuest_GETTER_DnDTarget_TO (base::)
#define COM_FORWARD_IGuest_GETTER_EventSource_TO(smth) NS_IMETHOD GetEventSource (IEventSource * * aEventSource) { return smth GetEventSource (aEventSource); }
#define COM_FORWARD_IGuest_GETTER_EventSource_TO_OBJ(obj) COM_FORWARD_IGuest_GETTER_EventSource_TO ((obj)->)
#define COM_FORWARD_IGuest_GETTER_EventSource_TO_BASE(base) COM_FORWARD_IGuest_GETTER_EventSource_TO (base::)
#define COM_FORWARD_IGuest_GETTER_Facilities_TO(smth) NS_IMETHOD GetFacilities (PRUint32 * aFacilitiesSize, IAdditionsFacility * * * aFacilities) { return smth GetFacilities (aFacilitiesSize, aFacilities); }
#define COM_FORWARD_IGuest_GETTER_Facilities_TO_OBJ(obj) COM_FORWARD_IGuest_GETTER_Facilities_TO ((obj)->)
#define COM_FORWARD_IGuest_GETTER_Facilities_TO_BASE(base) COM_FORWARD_IGuest_GETTER_Facilities_TO (base::)
#define COM_FORWARD_IGuest_GETTER_Sessions_TO(smth) NS_IMETHOD GetSessions (PRUint32 * aSessionsSize, IGuestSession * * * aSessions) { return smth GetSessions (aSessionsSize, aSessions); }
#define COM_FORWARD_IGuest_GETTER_Sessions_TO_OBJ(obj) COM_FORWARD_IGuest_GETTER_Sessions_TO ((obj)->)
#define COM_FORWARD_IGuest_GETTER_Sessions_TO_BASE(base) COM_FORWARD_IGuest_GETTER_Sessions_TO (base::)
#define COM_FORWARD_IGuest_GETTER_MemoryBalloonSize_TO(smth) NS_IMETHOD GetMemoryBalloonSize (PRUint32 * aMemoryBalloonSize) { return smth GetMemoryBalloonSize (aMemoryBalloonSize); }
#define COM_FORWARD_IGuest_GETTER_MemoryBalloonSize_TO_OBJ(obj) COM_FORWARD_IGuest_GETTER_MemoryBalloonSize_TO ((obj)->)
#define COM_FORWARD_IGuest_GETTER_MemoryBalloonSize_TO_BASE(base) COM_FORWARD_IGuest_GETTER_MemoryBalloonSize_TO (base::)
#define COM_FORWARD_IGuest_SETTER_MemoryBalloonSize_TO(smth) NS_IMETHOD SetMemoryBalloonSize (PRUint32 aMemoryBalloonSize) { return smth SetMemoryBalloonSize (aMemoryBalloonSize); }
#define COM_FORWARD_IGuest_SETTER_MemoryBalloonSize_TO_OBJ(obj) COM_FORWARD_IGuest_SETTER_MemoryBalloonSize_TO ((obj)->)
#define COM_FORWARD_IGuest_SETTER_MemoryBalloonSize_TO_BASE(base) COM_FORWARD_IGuest_SETTER_MemoryBalloonSize_TO (base::)
#define COM_FORWARD_IGuest_GETTER_StatisticsUpdateInterval_TO(smth) NS_IMETHOD GetStatisticsUpdateInterval (PRUint32 * aStatisticsUpdateInterval) { return smth GetStatisticsUpdateInterval (aStatisticsUpdateInterval); }
#define COM_FORWARD_IGuest_GETTER_StatisticsUpdateInterval_TO_OBJ(obj) COM_FORWARD_IGuest_GETTER_StatisticsUpdateInterval_TO ((obj)->)
#define COM_FORWARD_IGuest_GETTER_StatisticsUpdateInterval_TO_BASE(base) COM_FORWARD_IGuest_GETTER_StatisticsUpdateInterval_TO (base::)
#define COM_FORWARD_IGuest_SETTER_StatisticsUpdateInterval_TO(smth) NS_IMETHOD SetStatisticsUpdateInterval (PRUint32 aStatisticsUpdateInterval) { return smth SetStatisticsUpdateInterval (aStatisticsUpdateInterval); }
#define COM_FORWARD_IGuest_SETTER_StatisticsUpdateInterval_TO_OBJ(obj) COM_FORWARD_IGuest_SETTER_StatisticsUpdateInterval_TO ((obj)->)
#define COM_FORWARD_IGuest_SETTER_StatisticsUpdateInterval_TO_BASE(base) COM_FORWARD_IGuest_SETTER_StatisticsUpdateInterval_TO (base::)
#define COM_FORWARD_IGuest_InternalGetStatistics_TO(smth) NS_IMETHOD InternalGetStatistics (PRUint32 * aCpuUser, PRUint32 * aCpuKernel, PRUint32 * aCpuIdle, PRUint32 * aMemTotal, PRUint32 * aMemFree, PRUint32 * aMemBalloon, PRUint32 * aMemShared, PRUint32 * aMemCache, PRUint32 * aPagedTotal, PRUint32 * aMemAllocTotal, PRUint32 * aMemFreeTotal, PRUint32 * aMemBalloonTotal, PRUint32 * aMemSharedTotal) { return smth InternalGetStatistics (aCpuUser, aCpuKernel, aCpuIdle, aMemTotal, aMemFree, aMemBalloon, aMemShared, aMemCache, aPagedTotal, aMemAllocTotal, aMemFreeTotal, aMemBalloonTotal, aMemSharedTotal); }
#define COM_FORWARD_IGuest_InternalGetStatistics_TO_OBJ(obj) COM_FORWARD_IGuest_InternalGetStatistics_TO ((obj)->)
#define COM_FORWARD_IGuest_InternalGetStatistics_TO_BASE(base) COM_FORWARD_IGuest_InternalGetStatistics_TO (base::)
#define COM_FORWARD_IGuest_GetFacilityStatus_TO(smth) NS_IMETHOD GetFacilityStatus (PRUint32 aFacility, PRInt64 * aTimestamp, PRUint32 * aStatus) { return smth GetFacilityStatus (aFacility, aTimestamp, aStatus); }
#define COM_FORWARD_IGuest_GetFacilityStatus_TO_OBJ(obj) COM_FORWARD_IGuest_GetFacilityStatus_TO ((obj)->)
#define COM_FORWARD_IGuest_GetFacilityStatus_TO_BASE(base) COM_FORWARD_IGuest_GetFacilityStatus_TO (base::)
#define COM_FORWARD_IGuest_GetAdditionsStatus_TO(smth) NS_IMETHOD GetAdditionsStatus (PRUint32 aLevel, PRBool * aActive) { return smth GetAdditionsStatus (aLevel, aActive); }
#define COM_FORWARD_IGuest_GetAdditionsStatus_TO_OBJ(obj) COM_FORWARD_IGuest_GetAdditionsStatus_TO ((obj)->)
#define COM_FORWARD_IGuest_GetAdditionsStatus_TO_BASE(base) COM_FORWARD_IGuest_GetAdditionsStatus_TO (base::)
#define COM_FORWARD_IGuest_SetCredentials_TO(smth) NS_IMETHOD SetCredentials (PRUnichar * aUserName, PRUnichar * aPassword, PRUnichar * aDomain, PRBool aAllowInteractiveLogon) { return smth SetCredentials (aUserName, aPassword, aDomain, aAllowInteractiveLogon); }
#define COM_FORWARD_IGuest_SetCredentials_TO_OBJ(obj) COM_FORWARD_IGuest_SetCredentials_TO ((obj)->)
#define COM_FORWARD_IGuest_SetCredentials_TO_BASE(base) COM_FORWARD_IGuest_SetCredentials_TO (base::)
#define COM_FORWARD_IGuest_CreateSession_TO(smth) NS_IMETHOD CreateSession (PRUnichar * aUser, PRUnichar * aPassword, PRUnichar * aDomain, PRUnichar * aSessionName, IGuestSession * * aGuestSession) { return smth CreateSession (aUser, aPassword, aDomain, aSessionName, aGuestSession); }
#define COM_FORWARD_IGuest_CreateSession_TO_OBJ(obj) COM_FORWARD_IGuest_CreateSession_TO ((obj)->)
#define COM_FORWARD_IGuest_CreateSession_TO_BASE(base) COM_FORWARD_IGuest_CreateSession_TO (base::)
#define COM_FORWARD_IGuest_FindSession_TO(smth) NS_IMETHOD FindSession (PRUnichar * aSessionName, PRUint32 * aSessionsSize, IGuestSession * * * aSessions) { return smth FindSession (aSessionName, aSessionsSize, aSessions); }
#define COM_FORWARD_IGuest_FindSession_TO_OBJ(obj) COM_FORWARD_IGuest_FindSession_TO ((obj)->)
#define COM_FORWARD_IGuest_FindSession_TO_BASE(base) COM_FORWARD_IGuest_FindSession_TO (base::)
#define COM_FORWARD_IGuest_UpdateGuestAdditions_TO(smth) NS_IMETHOD UpdateGuestAdditions (PRUnichar * aSource, PRUint32 aArgumentsSize, PRUnichar * * aArguments, PRUint32 aFlagsSize, PRUint32 * aFlags, IProgress * * aProgress) { return smth UpdateGuestAdditions (aSource, aArgumentsSize+++, aArguments, aFlagsSize+++, aFlags, aProgress); }
#define COM_FORWARD_IGuest_UpdateGuestAdditions_TO_OBJ(obj) COM_FORWARD_IGuest_UpdateGuestAdditions_TO ((obj)->)
#define COM_FORWARD_IGuest_UpdateGuestAdditions_TO_BASE(base) COM_FORWARD_IGuest_UpdateGuestAdditions_TO (base::)
#define COM_FORWARD_IGuest_TO(smth) NS_FORWARD_IGUEST (smth)
#define COM_FORWARD_IGuest_TO_OBJ(obj) COM_FORWARD_IGuest_TO ((obj)->)
#define COM_FORWARD_IGuest_TO_BASE(base) COM_FORWARD_IGuest_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuest;
%}

[
    uuid(d7b98d2b-30e8-447e-99cb-e31becae6ae4),
    scriptable
]
interface IProgress : nsISupports
{
    readonly attribute wstring id;

    readonly attribute wstring description;

    readonly attribute nsISupports initiator;

    readonly attribute boolean cancelable;

    readonly attribute unsigned long percent;

    readonly attribute long timeRemaining;

    readonly attribute boolean completed;

    readonly attribute boolean canceled;

    readonly attribute long resultCode;

    readonly attribute IVirtualBoxErrorInfo errorInfo;

    readonly attribute unsigned long operationCount;

    readonly attribute unsigned long operation;

    readonly attribute wstring operationDescription;

    readonly attribute unsigned long operationPercent;

    readonly attribute unsigned long operationWeight;

    attribute unsigned long timeout;

    readonly attribute IEventSource eventSource;

    readonly attribute unsigned long InternalAndReservedAttribute1IProgress;

    readonly attribute unsigned long InternalAndReservedAttribute2IProgress;

    readonly attribute unsigned long InternalAndReservedAttribute3IProgress;

    readonly attribute unsigned long InternalAndReservedAttribute4IProgress;

    readonly attribute unsigned long InternalAndReservedAttribute5IProgress;

    readonly attribute unsigned long InternalAndReservedAttribute6IProgress;

    readonly attribute unsigned long InternalAndReservedAttribute7IProgress;

    readonly attribute unsigned long InternalAndReservedAttribute8IProgress;

    readonly attribute unsigned long InternalAndReservedAttribute9IProgress;

    readonly attribute unsigned long InternalAndReservedAttribute10IProgress;

    readonly attribute unsigned long InternalAndReservedAttribute11IProgress;

    readonly attribute unsigned long InternalAndReservedAttribute12IProgress;

    void waitForCompletion (
        in long timeout
    );

    void waitForOperationCompletion (
        in unsigned long operation,
        in long timeout
    );

    void cancel();

    void InternalAndReservedMethod1IProgress();

    void InternalAndReservedMethod2IProgress();

    void InternalAndReservedMethod3IProgress();

    void InternalAndReservedMethod4IProgress();

    void InternalAndReservedMethod5IProgress();

    void InternalAndReservedMethod6IProgress();

    void InternalAndReservedMethod7IProgress();

    void InternalAndReservedMethod8IProgress();

}; /* interface IProgress */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IProgress_GETTER_Id_TO(smth) NS_IMETHOD GetId (PRUnichar * * aId) { return smth GetId (aId); }
#define COM_FORWARD_IProgress_GETTER_Id_TO_OBJ(obj) COM_FORWARD_IProgress_GETTER_Id_TO ((obj)->)
#define COM_FORWARD_IProgress_GETTER_Id_TO_BASE(base) COM_FORWARD_IProgress_GETTER_Id_TO (base::)
#define COM_FORWARD_IProgress_GETTER_Description_TO(smth) NS_IMETHOD GetDescription (PRUnichar * * aDescription) { return smth GetDescription (aDescription); }
#define COM_FORWARD_IProgress_GETTER_Description_TO_OBJ(obj) COM_FORWARD_IProgress_GETTER_Description_TO ((obj)->)
#define COM_FORWARD_IProgress_GETTER_Description_TO_BASE(base) COM_FORWARD_IProgress_GETTER_Description_TO (base::)
#define COM_FORWARD_IProgress_GETTER_Initiator_TO(smth) NS_IMETHOD GetInitiator (nsISupports * * aInitiator) { return smth GetInitiator (aInitiator); }
#define COM_FORWARD_IProgress_GETTER_Initiator_TO_OBJ(obj) COM_FORWARD_IProgress_GETTER_Initiator_TO ((obj)->)
#define COM_FORWARD_IProgress_GETTER_Initiator_TO_BASE(base) COM_FORWARD_IProgress_GETTER_Initiator_TO (base::)
#define COM_FORWARD_IProgress_GETTER_Cancelable_TO(smth) NS_IMETHOD GetCancelable (PRBool * aCancelable) { return smth GetCancelable (aCancelable); }
#define COM_FORWARD_IProgress_GETTER_Cancelable_TO_OBJ(obj) COM_FORWARD_IProgress_GETTER_Cancelable_TO ((obj)->)
#define COM_FORWARD_IProgress_GETTER_Cancelable_TO_BASE(base) COM_FORWARD_IProgress_GETTER_Cancelable_TO (base::)
#define COM_FORWARD_IProgress_GETTER_Percent_TO(smth) NS_IMETHOD GetPercent (PRUint32 * aPercent) { return smth GetPercent (aPercent); }
#define COM_FORWARD_IProgress_GETTER_Percent_TO_OBJ(obj) COM_FORWARD_IProgress_GETTER_Percent_TO ((obj)->)
#define COM_FORWARD_IProgress_GETTER_Percent_TO_BASE(base) COM_FORWARD_IProgress_GETTER_Percent_TO (base::)
#define COM_FORWARD_IProgress_GETTER_TimeRemaining_TO(smth) NS_IMETHOD GetTimeRemaining (PRInt32 * aTimeRemaining) { return smth GetTimeRemaining (aTimeRemaining); }
#define COM_FORWARD_IProgress_GETTER_TimeRemaining_TO_OBJ(obj) COM_FORWARD_IProgress_GETTER_TimeRemaining_TO ((obj)->)
#define COM_FORWARD_IProgress_GETTER_TimeRemaining_TO_BASE(base) COM_FORWARD_IProgress_GETTER_TimeRemaining_TO (base::)
#define COM_FORWARD_IProgress_GETTER_Completed_TO(smth) NS_IMETHOD GetCompleted (PRBool * aCompleted) { return smth GetCompleted (aCompleted); }
#define COM_FORWARD_IProgress_GETTER_Completed_TO_OBJ(obj) COM_FORWARD_IProgress_GETTER_Completed_TO ((obj)->)
#define COM_FORWARD_IProgress_GETTER_Completed_TO_BASE(base) COM_FORWARD_IProgress_GETTER_Completed_TO (base::)
#define COM_FORWARD_IProgress_GETTER_Canceled_TO(smth) NS_IMETHOD GetCanceled (PRBool * aCanceled) { return smth GetCanceled (aCanceled); }
#define COM_FORWARD_IProgress_GETTER_Canceled_TO_OBJ(obj) COM_FORWARD_IProgress_GETTER_Canceled_TO ((obj)->)
#define COM_FORWARD_IProgress_GETTER_Canceled_TO_BASE(base) COM_FORWARD_IProgress_GETTER_Canceled_TO (base::)
#define COM_FORWARD_IProgress_GETTER_ResultCode_TO(smth) NS_IMETHOD GetResultCode (PRInt32 * aResultCode) { return smth GetResultCode (aResultCode); }
#define COM_FORWARD_IProgress_GETTER_ResultCode_TO_OBJ(obj) COM_FORWARD_IProgress_GETTER_ResultCode_TO ((obj)->)
#define COM_FORWARD_IProgress_GETTER_ResultCode_TO_BASE(base) COM_FORWARD_IProgress_GETTER_ResultCode_TO (base::)
#define COM_FORWARD_IProgress_GETTER_ErrorInfo_TO(smth) NS_IMETHOD GetErrorInfo (IVirtualBoxErrorInfo * * aErrorInfo) { return smth GetErrorInfo (aErrorInfo); }
#define COM_FORWARD_IProgress_GETTER_ErrorInfo_TO_OBJ(obj) COM_FORWARD_IProgress_GETTER_ErrorInfo_TO ((obj)->)
#define COM_FORWARD_IProgress_GETTER_ErrorInfo_TO_BASE(base) COM_FORWARD_IProgress_GETTER_ErrorInfo_TO (base::)
#define COM_FORWARD_IProgress_GETTER_OperationCount_TO(smth) NS_IMETHOD GetOperationCount (PRUint32 * aOperationCount) { return smth GetOperationCount (aOperationCount); }
#define COM_FORWARD_IProgress_GETTER_OperationCount_TO_OBJ(obj) COM_FORWARD_IProgress_GETTER_OperationCount_TO ((obj)->)
#define COM_FORWARD_IProgress_GETTER_OperationCount_TO_BASE(base) COM_FORWARD_IProgress_GETTER_OperationCount_TO (base::)
#define COM_FORWARD_IProgress_GETTER_Operation_TO(smth) NS_IMETHOD GetOperation (PRUint32 * aOperation) { return smth GetOperation (aOperation); }
#define COM_FORWARD_IProgress_GETTER_Operation_TO_OBJ(obj) COM_FORWARD_IProgress_GETTER_Operation_TO ((obj)->)
#define COM_FORWARD_IProgress_GETTER_Operation_TO_BASE(base) COM_FORWARD_IProgress_GETTER_Operation_TO (base::)
#define COM_FORWARD_IProgress_GETTER_OperationDescription_TO(smth) NS_IMETHOD GetOperationDescription (PRUnichar * * aOperationDescription) { return smth GetOperationDescription (aOperationDescription); }
#define COM_FORWARD_IProgress_GETTER_OperationDescription_TO_OBJ(obj) COM_FORWARD_IProgress_GETTER_OperationDescription_TO ((obj)->)
#define COM_FORWARD_IProgress_GETTER_OperationDescription_TO_BASE(base) COM_FORWARD_IProgress_GETTER_OperationDescription_TO (base::)
#define COM_FORWARD_IProgress_GETTER_OperationPercent_TO(smth) NS_IMETHOD GetOperationPercent (PRUint32 * aOperationPercent) { return smth GetOperationPercent (aOperationPercent); }
#define COM_FORWARD_IProgress_GETTER_OperationPercent_TO_OBJ(obj) COM_FORWARD_IProgress_GETTER_OperationPercent_TO ((obj)->)
#define COM_FORWARD_IProgress_GETTER_OperationPercent_TO_BASE(base) COM_FORWARD_IProgress_GETTER_OperationPercent_TO (base::)
#define COM_FORWARD_IProgress_GETTER_OperationWeight_TO(smth) NS_IMETHOD GetOperationWeight (PRUint32 * aOperationWeight) { return smth GetOperationWeight (aOperationWeight); }
#define COM_FORWARD_IProgress_GETTER_OperationWeight_TO_OBJ(obj) COM_FORWARD_IProgress_GETTER_OperationWeight_TO ((obj)->)
#define COM_FORWARD_IProgress_GETTER_OperationWeight_TO_BASE(base) COM_FORWARD_IProgress_GETTER_OperationWeight_TO (base::)
#define COM_FORWARD_IProgress_GETTER_Timeout_TO(smth) NS_IMETHOD GetTimeout (PRUint32 * aTimeout) { return smth GetTimeout (aTimeout); }
#define COM_FORWARD_IProgress_GETTER_Timeout_TO_OBJ(obj) COM_FORWARD_IProgress_GETTER_Timeout_TO ((obj)->)
#define COM_FORWARD_IProgress_GETTER_Timeout_TO_BASE(base) COM_FORWARD_IProgress_GETTER_Timeout_TO (base::)
#define COM_FORWARD_IProgress_SETTER_Timeout_TO(smth) NS_IMETHOD SetTimeout (PRUint32 aTimeout) { return smth SetTimeout (aTimeout); }
#define COM_FORWARD_IProgress_SETTER_Timeout_TO_OBJ(obj) COM_FORWARD_IProgress_SETTER_Timeout_TO ((obj)->)
#define COM_FORWARD_IProgress_SETTER_Timeout_TO_BASE(base) COM_FORWARD_IProgress_SETTER_Timeout_TO (base::)
#define COM_FORWARD_IProgress_GETTER_EventSource_TO(smth) NS_IMETHOD GetEventSource (IEventSource * * aEventSource) { return smth GetEventSource (aEventSource); }
#define COM_FORWARD_IProgress_GETTER_EventSource_TO_OBJ(obj) COM_FORWARD_IProgress_GETTER_EventSource_TO ((obj)->)
#define COM_FORWARD_IProgress_GETTER_EventSource_TO_BASE(base) COM_FORWARD_IProgress_GETTER_EventSource_TO (base::)
#define COM_FORWARD_IProgress_WaitForCompletion_TO(smth) NS_IMETHOD WaitForCompletion (PRInt32 aTimeout) { return smth WaitForCompletion (aTimeout); }
#define COM_FORWARD_IProgress_WaitForCompletion_TO_OBJ(obj) COM_FORWARD_IProgress_WaitForCompletion_TO ((obj)->)
#define COM_FORWARD_IProgress_WaitForCompletion_TO_BASE(base) COM_FORWARD_IProgress_WaitForCompletion_TO (base::)
#define COM_FORWARD_IProgress_WaitForOperationCompletion_TO(smth) NS_IMETHOD WaitForOperationCompletion (PRUint32 aOperation, PRInt32 aTimeout) { return smth WaitForOperationCompletion (aOperation, aTimeout); }
#define COM_FORWARD_IProgress_WaitForOperationCompletion_TO_OBJ(obj) COM_FORWARD_IProgress_WaitForOperationCompletion_TO ((obj)->)
#define COM_FORWARD_IProgress_WaitForOperationCompletion_TO_BASE(base) COM_FORWARD_IProgress_WaitForOperationCompletion_TO (base::)
#define COM_FORWARD_IProgress_Cancel_TO(smth) NS_IMETHOD Cancel() { return smth Cancel(); }
#define COM_FORWARD_IProgress_Cancel_TO_OBJ(obj) COM_FORWARD_IProgress_Cancel_TO ((obj)->)
#define COM_FORWARD_IProgress_Cancel_TO_BASE(base) COM_FORWARD_IProgress_Cancel_TO (base::)
#define COM_FORWARD_IProgress_TO(smth) NS_FORWARD_IPROGRESS (smth)
#define COM_FORWARD_IProgress_TO_OBJ(obj) COM_FORWARD_IProgress_TO ((obj)->)
#define COM_FORWARD_IProgress_TO_BASE(base) COM_FORWARD_IProgress_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IProgress;
%}

[
    uuid(41a033b8-cc87-4f6e-a0e9-47bb7f2d4be5),
    scriptable
]
interface IInternalProgressControl : nsISupports
{
    readonly attribute unsigned long InternalAndReservedAttribute1IInternalProgressControl;

    readonly attribute unsigned long InternalAndReservedAttribute2IInternalProgressControl;

    readonly attribute unsigned long InternalAndReservedAttribute3IInternalProgressControl;

    readonly attribute unsigned long InternalAndReservedAttribute4IInternalProgressControl;

    readonly attribute unsigned long InternalAndReservedAttribute5IInternalProgressControl;

    readonly attribute unsigned long InternalAndReservedAttribute6IInternalProgressControl;

    readonly attribute unsigned long InternalAndReservedAttribute7IInternalProgressControl;

    readonly attribute unsigned long InternalAndReservedAttribute8IInternalProgressControl;

    void setCurrentOperationProgress (
        in unsigned long percent
    );

    void waitForOtherProgressCompletion (
        in IProgress progressOther,
        in unsigned long timeoutMS
    );

    void setNextOperation (
        in wstring nextOperationDescription,
        in unsigned long nextOperationsWeight
    );

    void notifyPointOfNoReturn();

    void notifyComplete (
        in long resultCode,
        in IVirtualBoxErrorInfo errorInfo
    );

    void InternalAndReservedMethod1IInternalProgressControl();

    void InternalAndReservedMethod2IInternalProgressControl();

    void InternalAndReservedMethod3IInternalProgressControl();

    void InternalAndReservedMethod4IInternalProgressControl();

    void InternalAndReservedMethod5IInternalProgressControl();

    void InternalAndReservedMethod6IInternalProgressControl();

    void InternalAndReservedMethod7IInternalProgressControl();

    void InternalAndReservedMethod8IInternalProgressControl();

}; /* interface IInternalProgressControl */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IInternalProgressControl_SetCurrentOperationProgress_TO(smth) NS_IMETHOD SetCurrentOperationProgress (PRUint32 aPercent) { return smth SetCurrentOperationProgress (aPercent); }
#define COM_FORWARD_IInternalProgressControl_SetCurrentOperationProgress_TO_OBJ(obj) COM_FORWARD_IInternalProgressControl_SetCurrentOperationProgress_TO ((obj)->)
#define COM_FORWARD_IInternalProgressControl_SetCurrentOperationProgress_TO_BASE(base) COM_FORWARD_IInternalProgressControl_SetCurrentOperationProgress_TO (base::)
#define COM_FORWARD_IInternalProgressControl_WaitForOtherProgressCompletion_TO(smth) NS_IMETHOD WaitForOtherProgressCompletion (IProgress * aProgressOther, PRUint32 aTimeoutMS) { return smth WaitForOtherProgressCompletion (aProgressOther, aTimeoutMS); }
#define COM_FORWARD_IInternalProgressControl_WaitForOtherProgressCompletion_TO_OBJ(obj) COM_FORWARD_IInternalProgressControl_WaitForOtherProgressCompletion_TO ((obj)->)
#define COM_FORWARD_IInternalProgressControl_WaitForOtherProgressCompletion_TO_BASE(base) COM_FORWARD_IInternalProgressControl_WaitForOtherProgressCompletion_TO (base::)
#define COM_FORWARD_IInternalProgressControl_SetNextOperation_TO(smth) NS_IMETHOD SetNextOperation (PRUnichar * aNextOperationDescription, PRUint32 aNextOperationsWeight) { return smth SetNextOperation (aNextOperationDescription, aNextOperationsWeight); }
#define COM_FORWARD_IInternalProgressControl_SetNextOperation_TO_OBJ(obj) COM_FORWARD_IInternalProgressControl_SetNextOperation_TO ((obj)->)
#define COM_FORWARD_IInternalProgressControl_SetNextOperation_TO_BASE(base) COM_FORWARD_IInternalProgressControl_SetNextOperation_TO (base::)
#define COM_FORWARD_IInternalProgressControl_NotifyPointOfNoReturn_TO(smth) NS_IMETHOD NotifyPointOfNoReturn() { return smth NotifyPointOfNoReturn(); }
#define COM_FORWARD_IInternalProgressControl_NotifyPointOfNoReturn_TO_OBJ(obj) COM_FORWARD_IInternalProgressControl_NotifyPointOfNoReturn_TO ((obj)->)
#define COM_FORWARD_IInternalProgressControl_NotifyPointOfNoReturn_TO_BASE(base) COM_FORWARD_IInternalProgressControl_NotifyPointOfNoReturn_TO (base::)
#define COM_FORWARD_IInternalProgressControl_NotifyComplete_TO(smth) NS_IMETHOD NotifyComplete (PRInt32 aResultCode, IVirtualBoxErrorInfo * aErrorInfo) { return smth NotifyComplete (aResultCode, aErrorInfo); }
#define COM_FORWARD_IInternalProgressControl_NotifyComplete_TO_OBJ(obj) COM_FORWARD_IInternalProgressControl_NotifyComplete_TO ((obj)->)
#define COM_FORWARD_IInternalProgressControl_NotifyComplete_TO_BASE(base) COM_FORWARD_IInternalProgressControl_NotifyComplete_TO (base::)
#define COM_FORWARD_IInternalProgressControl_TO(smth) NS_FORWARD_IINTERNALPROGRESSCONTROL (smth)
#define COM_FORWARD_IInternalProgressControl_TO_OBJ(obj) COM_FORWARD_IInternalProgressControl_TO ((obj)->)
#define COM_FORWARD_IInternalProgressControl_TO_BASE(base) COM_FORWARD_IInternalProgressControl_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IInternalProgressControl;
%}

[
    uuid(6cc49055-dad4-4496-85cf-3f76bcb3b5fa),
    scriptable
]
interface ISnapshot : nsISupports
{
    readonly attribute wstring id;

    attribute wstring name;

    attribute wstring description;

    readonly attribute long long timeStamp;

    readonly attribute boolean online;

    readonly attribute IMachine machine;

    readonly attribute ISnapshot parent;

    void getChildren (
        out unsigned long childrenSize,
        [array, size_is(childrenSize), retval] out ISnapshot children
    );

    readonly attribute unsigned long childrenCount;

    readonly attribute unsigned long InternalAndReservedAttribute1ISnapshot;

    readonly attribute unsigned long InternalAndReservedAttribute2ISnapshot;

    readonly attribute unsigned long InternalAndReservedAttribute3ISnapshot;

    readonly attribute unsigned long InternalAndReservedAttribute4ISnapshot;

    readonly attribute unsigned long InternalAndReservedAttribute5ISnapshot;

    readonly attribute unsigned long InternalAndReservedAttribute6ISnapshot;

    readonly attribute unsigned long InternalAndReservedAttribute7ISnapshot;

    readonly attribute unsigned long InternalAndReservedAttribute8ISnapshot;

    void InternalAndReservedMethod1ISnapshot();

    void InternalAndReservedMethod2ISnapshot();

    void InternalAndReservedMethod3ISnapshot();

    void InternalAndReservedMethod4ISnapshot();

}; /* interface ISnapshot */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_ISnapshot_GETTER_Id_TO(smth) NS_IMETHOD GetId (PRUnichar * * aId) { return smth GetId (aId); }
#define COM_FORWARD_ISnapshot_GETTER_Id_TO_OBJ(obj) COM_FORWARD_ISnapshot_GETTER_Id_TO ((obj)->)
#define COM_FORWARD_ISnapshot_GETTER_Id_TO_BASE(base) COM_FORWARD_ISnapshot_GETTER_Id_TO (base::)
#define COM_FORWARD_ISnapshot_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_ISnapshot_GETTER_Name_TO_OBJ(obj) COM_FORWARD_ISnapshot_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_ISnapshot_GETTER_Name_TO_BASE(base) COM_FORWARD_ISnapshot_GETTER_Name_TO (base::)
#define COM_FORWARD_ISnapshot_SETTER_Name_TO(smth) NS_IMETHOD SetName (const PRUnichar * aName) { return smth SetName (aName); }
#define COM_FORWARD_ISnapshot_SETTER_Name_TO_OBJ(obj) COM_FORWARD_ISnapshot_SETTER_Name_TO ((obj)->)
#define COM_FORWARD_ISnapshot_SETTER_Name_TO_BASE(base) COM_FORWARD_ISnapshot_SETTER_Name_TO (base::)
#define COM_FORWARD_ISnapshot_GETTER_Description_TO(smth) NS_IMETHOD GetDescription (PRUnichar * * aDescription) { return smth GetDescription (aDescription); }
#define COM_FORWARD_ISnapshot_GETTER_Description_TO_OBJ(obj) COM_FORWARD_ISnapshot_GETTER_Description_TO ((obj)->)
#define COM_FORWARD_ISnapshot_GETTER_Description_TO_BASE(base) COM_FORWARD_ISnapshot_GETTER_Description_TO (base::)
#define COM_FORWARD_ISnapshot_SETTER_Description_TO(smth) NS_IMETHOD SetDescription (const PRUnichar * aDescription) { return smth SetDescription (aDescription); }
#define COM_FORWARD_ISnapshot_SETTER_Description_TO_OBJ(obj) COM_FORWARD_ISnapshot_SETTER_Description_TO ((obj)->)
#define COM_FORWARD_ISnapshot_SETTER_Description_TO_BASE(base) COM_FORWARD_ISnapshot_SETTER_Description_TO (base::)
#define COM_FORWARD_ISnapshot_GETTER_TimeStamp_TO(smth) NS_IMETHOD GetTimeStamp (PRInt64 * aTimeStamp) { return smth GetTimeStamp (aTimeStamp); }
#define COM_FORWARD_ISnapshot_GETTER_TimeStamp_TO_OBJ(obj) COM_FORWARD_ISnapshot_GETTER_TimeStamp_TO ((obj)->)
#define COM_FORWARD_ISnapshot_GETTER_TimeStamp_TO_BASE(base) COM_FORWARD_ISnapshot_GETTER_TimeStamp_TO (base::)
#define COM_FORWARD_ISnapshot_GETTER_Online_TO(smth) NS_IMETHOD GetOnline (PRBool * aOnline) { return smth GetOnline (aOnline); }
#define COM_FORWARD_ISnapshot_GETTER_Online_TO_OBJ(obj) COM_FORWARD_ISnapshot_GETTER_Online_TO ((obj)->)
#define COM_FORWARD_ISnapshot_GETTER_Online_TO_BASE(base) COM_FORWARD_ISnapshot_GETTER_Online_TO (base::)
#define COM_FORWARD_ISnapshot_GETTER_Machine_TO(smth) NS_IMETHOD GetMachine (IMachine * * aMachine) { return smth GetMachine (aMachine); }
#define COM_FORWARD_ISnapshot_GETTER_Machine_TO_OBJ(obj) COM_FORWARD_ISnapshot_GETTER_Machine_TO ((obj)->)
#define COM_FORWARD_ISnapshot_GETTER_Machine_TO_BASE(base) COM_FORWARD_ISnapshot_GETTER_Machine_TO (base::)
#define COM_FORWARD_ISnapshot_GETTER_Parent_TO(smth) NS_IMETHOD GetParent (ISnapshot * * aParent) { return smth GetParent (aParent); }
#define COM_FORWARD_ISnapshot_GETTER_Parent_TO_OBJ(obj) COM_FORWARD_ISnapshot_GETTER_Parent_TO ((obj)->)
#define COM_FORWARD_ISnapshot_GETTER_Parent_TO_BASE(base) COM_FORWARD_ISnapshot_GETTER_Parent_TO (base::)
#define COM_FORWARD_ISnapshot_GETTER_Children_TO(smth) NS_IMETHOD GetChildren (PRUint32 * aChildrenSize, ISnapshot * * * aChildren) { return smth GetChildren (aChildrenSize, aChildren); }
#define COM_FORWARD_ISnapshot_GETTER_Children_TO_OBJ(obj) COM_FORWARD_ISnapshot_GETTER_Children_TO ((obj)->)
#define COM_FORWARD_ISnapshot_GETTER_Children_TO_BASE(base) COM_FORWARD_ISnapshot_GETTER_Children_TO (base::)
#define COM_FORWARD_ISnapshot_GETTER_ChildrenCount_TO(smth) NS_IMETHOD GetChildrenCount (PRUint32 * aChildrenCount) { return smth GetChildrenCount (aChildrenCount); }
#define COM_FORWARD_ISnapshot_GETTER_ChildrenCount_TO_OBJ(obj) COM_FORWARD_ISnapshot_GETTER_ChildrenCount_TO ((obj)->)
#define COM_FORWARD_ISnapshot_GETTER_ChildrenCount_TO_BASE(base) COM_FORWARD_ISnapshot_GETTER_ChildrenCount_TO (base::)
#define COM_FORWARD_ISnapshot_TO(smth) NS_FORWARD_ISNAPSHOT (smth)
#define COM_FORWARD_ISnapshot_TO_OBJ(obj) COM_FORWARD_ISnapshot_TO ((obj)->)
#define COM_FORWARD_ISnapshot_TO_BASE(base) COM_FORWARD_ISnapshot_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ISnapshot;
%}

[
    uuid(8d095cb0-0126-43e0-b05d-326e74abb356),
    scriptable
]
interface IMediumAttachment : nsISupports
{
    readonly attribute IMachine machine;

    readonly attribute IMedium medium;

    readonly attribute wstring controller;

    readonly attribute long port;

    readonly attribute long device;

    readonly attribute DeviceType_T type;

    readonly attribute boolean passthrough;

    readonly attribute boolean temporaryEject;

    readonly attribute boolean isEjected;

    readonly attribute boolean nonRotational;

    readonly attribute boolean discard;

    readonly attribute boolean hotPluggable;

    readonly attribute IBandwidthGroup bandwidthGroup;

    readonly attribute unsigned long InternalAndReservedAttribute1IMediumAttachment;

    readonly attribute unsigned long InternalAndReservedAttribute2IMediumAttachment;

    readonly attribute unsigned long InternalAndReservedAttribute3IMediumAttachment;

    readonly attribute unsigned long InternalAndReservedAttribute4IMediumAttachment;

    readonly attribute unsigned long InternalAndReservedAttribute5IMediumAttachment;

    readonly attribute unsigned long InternalAndReservedAttribute6IMediumAttachment;

    readonly attribute unsigned long InternalAndReservedAttribute7IMediumAttachment;

    readonly attribute unsigned long InternalAndReservedAttribute8IMediumAttachment;

}; /* interface IMediumAttachment */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IMediumAttachment_GETTER_Machine_TO(smth) NS_IMETHOD GetMachine (IMachine * * aMachine) { return smth GetMachine (aMachine); }
#define COM_FORWARD_IMediumAttachment_GETTER_Machine_TO_OBJ(obj) COM_FORWARD_IMediumAttachment_GETTER_Machine_TO ((obj)->)
#define COM_FORWARD_IMediumAttachment_GETTER_Machine_TO_BASE(base) COM_FORWARD_IMediumAttachment_GETTER_Machine_TO (base::)
#define COM_FORWARD_IMediumAttachment_GETTER_Medium_TO(smth) NS_IMETHOD GetMedium (IMedium * * aMedium) { return smth GetMedium (aMedium); }
#define COM_FORWARD_IMediumAttachment_GETTER_Medium_TO_OBJ(obj) COM_FORWARD_IMediumAttachment_GETTER_Medium_TO ((obj)->)
#define COM_FORWARD_IMediumAttachment_GETTER_Medium_TO_BASE(base) COM_FORWARD_IMediumAttachment_GETTER_Medium_TO (base::)
#define COM_FORWARD_IMediumAttachment_GETTER_Controller_TO(smth) NS_IMETHOD GetController (PRUnichar * * aController) { return smth GetController (aController); }
#define COM_FORWARD_IMediumAttachment_GETTER_Controller_TO_OBJ(obj) COM_FORWARD_IMediumAttachment_GETTER_Controller_TO ((obj)->)
#define COM_FORWARD_IMediumAttachment_GETTER_Controller_TO_BASE(base) COM_FORWARD_IMediumAttachment_GETTER_Controller_TO (base::)
#define COM_FORWARD_IMediumAttachment_GETTER_Port_TO(smth) NS_IMETHOD GetPort (PRInt32 * aPort) { return smth GetPort (aPort); }
#define COM_FORWARD_IMediumAttachment_GETTER_Port_TO_OBJ(obj) COM_FORWARD_IMediumAttachment_GETTER_Port_TO ((obj)->)
#define COM_FORWARD_IMediumAttachment_GETTER_Port_TO_BASE(base) COM_FORWARD_IMediumAttachment_GETTER_Port_TO (base::)
#define COM_FORWARD_IMediumAttachment_GETTER_Device_TO(smth) NS_IMETHOD GetDevice (PRInt32 * aDevice) { return smth GetDevice (aDevice); }
#define COM_FORWARD_IMediumAttachment_GETTER_Device_TO_OBJ(obj) COM_FORWARD_IMediumAttachment_GETTER_Device_TO ((obj)->)
#define COM_FORWARD_IMediumAttachment_GETTER_Device_TO_BASE(base) COM_FORWARD_IMediumAttachment_GETTER_Device_TO (base::)
#define COM_FORWARD_IMediumAttachment_GETTER_Type_TO(smth) NS_IMETHOD GetType (PRUint32 * aType) { return smth GetType (aType); }
#define COM_FORWARD_IMediumAttachment_GETTER_Type_TO_OBJ(obj) COM_FORWARD_IMediumAttachment_GETTER_Type_TO ((obj)->)
#define COM_FORWARD_IMediumAttachment_GETTER_Type_TO_BASE(base) COM_FORWARD_IMediumAttachment_GETTER_Type_TO (base::)
#define COM_FORWARD_IMediumAttachment_GETTER_Passthrough_TO(smth) NS_IMETHOD GetPassthrough (PRBool * aPassthrough) { return smth GetPassthrough (aPassthrough); }
#define COM_FORWARD_IMediumAttachment_GETTER_Passthrough_TO_OBJ(obj) COM_FORWARD_IMediumAttachment_GETTER_Passthrough_TO ((obj)->)
#define COM_FORWARD_IMediumAttachment_GETTER_Passthrough_TO_BASE(base) COM_FORWARD_IMediumAttachment_GETTER_Passthrough_TO (base::)
#define COM_FORWARD_IMediumAttachment_GETTER_TemporaryEject_TO(smth) NS_IMETHOD GetTemporaryEject (PRBool * aTemporaryEject) { return smth GetTemporaryEject (aTemporaryEject); }
#define COM_FORWARD_IMediumAttachment_GETTER_TemporaryEject_TO_OBJ(obj) COM_FORWARD_IMediumAttachment_GETTER_TemporaryEject_TO ((obj)->)
#define COM_FORWARD_IMediumAttachment_GETTER_TemporaryEject_TO_BASE(base) COM_FORWARD_IMediumAttachment_GETTER_TemporaryEject_TO (base::)
#define COM_FORWARD_IMediumAttachment_GETTER_IsEjected_TO(smth) NS_IMETHOD GetIsEjected (PRBool * aIsEjected) { return smth GetIsEjected (aIsEjected); }
#define COM_FORWARD_IMediumAttachment_GETTER_IsEjected_TO_OBJ(obj) COM_FORWARD_IMediumAttachment_GETTER_IsEjected_TO ((obj)->)
#define COM_FORWARD_IMediumAttachment_GETTER_IsEjected_TO_BASE(base) COM_FORWARD_IMediumAttachment_GETTER_IsEjected_TO (base::)
#define COM_FORWARD_IMediumAttachment_GETTER_NonRotational_TO(smth) NS_IMETHOD GetNonRotational (PRBool * aNonRotational) { return smth GetNonRotational (aNonRotational); }
#define COM_FORWARD_IMediumAttachment_GETTER_NonRotational_TO_OBJ(obj) COM_FORWARD_IMediumAttachment_GETTER_NonRotational_TO ((obj)->)
#define COM_FORWARD_IMediumAttachment_GETTER_NonRotational_TO_BASE(base) COM_FORWARD_IMediumAttachment_GETTER_NonRotational_TO (base::)
#define COM_FORWARD_IMediumAttachment_GETTER_Discard_TO(smth) NS_IMETHOD GetDiscard (PRBool * aDiscard) { return smth GetDiscard (aDiscard); }
#define COM_FORWARD_IMediumAttachment_GETTER_Discard_TO_OBJ(obj) COM_FORWARD_IMediumAttachment_GETTER_Discard_TO ((obj)->)
#define COM_FORWARD_IMediumAttachment_GETTER_Discard_TO_BASE(base) COM_FORWARD_IMediumAttachment_GETTER_Discard_TO (base::)
#define COM_FORWARD_IMediumAttachment_GETTER_HotPluggable_TO(smth) NS_IMETHOD GetHotPluggable (PRBool * aHotPluggable) { return smth GetHotPluggable (aHotPluggable); }
#define COM_FORWARD_IMediumAttachment_GETTER_HotPluggable_TO_OBJ(obj) COM_FORWARD_IMediumAttachment_GETTER_HotPluggable_TO ((obj)->)
#define COM_FORWARD_IMediumAttachment_GETTER_HotPluggable_TO_BASE(base) COM_FORWARD_IMediumAttachment_GETTER_HotPluggable_TO (base::)
#define COM_FORWARD_IMediumAttachment_GETTER_BandwidthGroup_TO(smth) NS_IMETHOD GetBandwidthGroup (IBandwidthGroup * * aBandwidthGroup) { return smth GetBandwidthGroup (aBandwidthGroup); }
#define COM_FORWARD_IMediumAttachment_GETTER_BandwidthGroup_TO_OBJ(obj) COM_FORWARD_IMediumAttachment_GETTER_BandwidthGroup_TO ((obj)->)
#define COM_FORWARD_IMediumAttachment_GETTER_BandwidthGroup_TO_BASE(base) COM_FORWARD_IMediumAttachment_GETTER_BandwidthGroup_TO (base::)
#define COM_FORWARD_IMediumAttachment_TO(smth) NS_FORWARD_IMEDIUMATTACHMENT (smth)
#define COM_FORWARD_IMediumAttachment_TO_OBJ(obj) COM_FORWARD_IMediumAttachment_TO ((obj)->)
#define COM_FORWARD_IMediumAttachment_TO_BASE(base) COM_FORWARD_IMediumAttachment_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IMediumAttachment;
%}

[
    uuid(ad47ad09-787b-44ab-b343-a082a3f2dfb1),
    scriptable
]
interface IMedium : nsISupports
{
    readonly attribute wstring id;

    attribute wstring description;

    readonly attribute MediumState_T state;

    void getVariant (
        out unsigned long variantSize,
        [array, size_is(variantSize), retval] out MediumVariant_T variant
    );

    attribute wstring location;

    readonly attribute wstring name;

    readonly attribute DeviceType_T deviceType;

    readonly attribute boolean hostDrive;

    readonly attribute long long size;

    readonly attribute wstring format;

    readonly attribute IMediumFormat mediumFormat;

    attribute MediumType_T type;

    void getAllowedTypes (
        out unsigned long allowedTypesSize,
        [array, size_is(allowedTypesSize), retval] out MediumType_T allowedTypes
    );

    readonly attribute IMedium parent;

    void getChildren (
        out unsigned long childrenSize,
        [array, size_is(childrenSize), retval] out IMedium children
    );

    readonly attribute IMedium base;

    readonly attribute boolean readOnly;

    readonly attribute long long logicalSize;

    attribute boolean autoReset;

    readonly attribute wstring lastAccessError;

    void getMachineIds (
        out unsigned long machineIdsSize,
        [array, size_is(machineIdsSize), retval] out wstring machineIds
    );

    readonly attribute unsigned long InternalAndReservedAttribute1IMedium;

    readonly attribute unsigned long InternalAndReservedAttribute2IMedium;

    readonly attribute unsigned long InternalAndReservedAttribute3IMedium;

    readonly attribute unsigned long InternalAndReservedAttribute4IMedium;

    readonly attribute unsigned long InternalAndReservedAttribute5IMedium;

    readonly attribute unsigned long InternalAndReservedAttribute6IMedium;

    readonly attribute unsigned long InternalAndReservedAttribute7IMedium;

    readonly attribute unsigned long InternalAndReservedAttribute8IMedium;

    readonly attribute unsigned long InternalAndReservedAttribute9IMedium;

    readonly attribute unsigned long InternalAndReservedAttribute10IMedium;

    readonly attribute unsigned long InternalAndReservedAttribute11IMedium;

    readonly attribute unsigned long InternalAndReservedAttribute12IMedium;

    void setIds (
        in boolean setImageId,
        in wstring imageId,
        in boolean setParentId,
        in wstring parentId
    );

    void refreshState (
        [retval] out MediumState_T state
    );

    void getSnapshotIds (
        in wstring machineId,
        out unsigned long snapshotIdsSize,
        [array, size_is(snapshotIdsSize) , retval] out wstring snapshotIds
    );

    void lockRead (
        [retval] out IToken token
    );

    void lockWrite (
        [retval] out IToken token
    );

    void close();

    void getProperty (
        in wstring name,
        [retval] out wstring value
    );

    void setProperty (
        in wstring name,
        in wstring value
    );

    void getProperties (
        in wstring names,
        out unsigned long returnNamesSize,
        [array, size_is(returnNamesSize)] out wstring returnNames,
        out unsigned long returnValuesSize,
        [array, size_is(returnValuesSize) , retval] out wstring returnValues
    );

    void setProperties (
        in unsigned long namesSize,
        [array, size_is(namesSize)] in wstring names,
        in unsigned long valuesSize,
        [array, size_is(valuesSize)] in wstring values
    );

    void createBaseStorage (
        in long long logicalSize,
        in unsigned long variantSize,
        [array, size_is(variantSize)] in MediumVariant_T variant,
        [retval] out IProgress progress
    );

    void deleteStorage (
        [retval] out IProgress progress
    );

    void createDiffStorage (
        in IMedium target,
        in unsigned long variantSize,
        [array, size_is(variantSize)] in MediumVariant_T variant,
        [retval] out IProgress progress
    );

    void mergeTo (
        in IMedium target,
        [retval] out IProgress progress
    );

    void cloneTo (
        in IMedium target,
        in unsigned long variantSize,
        [array, size_is(variantSize)] in MediumVariant_T variant,
        in IMedium parent,
        [retval] out IProgress progress
    );

    void cloneToBase (
        in IMedium target,
        in unsigned long variantSize,
        [array, size_is(variantSize)] in MediumVariant_T variant,
        [retval] out IProgress progress
    );

    void moveTo (
        in wstring location,
        [retval] out IProgress progress
    );

    void compact (
        [retval] out IProgress progress
    );

    void resize (
        in long long logicalSize,
        [retval] out IProgress progress
    );

    void reset (
        [retval] out IProgress progress
    );

    void changeEncryption (
        in wstring currentPassword,
        in wstring cipher,
        in wstring newPassword,
        in wstring newPasswordId,
        [retval] out IProgress progress
    );

    void getEncryptionSettings (
        out wstring cipher,
        [retval] out wstring passwordId
    );

    void checkEncryptionPassword (
        in wstring password
    );

    void openForIO (
        in boolean writable,
        in wstring password,
        [retval] out IMediumIO mediumIO
    );

    void InternalAndReservedMethod1IMedium();

    void InternalAndReservedMethod2IMedium();

    void InternalAndReservedMethod3IMedium();

    void InternalAndReservedMethod4IMedium();

    void InternalAndReservedMethod5IMedium();

    void InternalAndReservedMethod6IMedium();

    void InternalAndReservedMethod7IMedium();

    void InternalAndReservedMethod8IMedium();

}; /* interface IMedium */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IMedium_GETTER_Id_TO(smth) NS_IMETHOD GetId (PRUnichar * * aId) { return smth GetId (aId); }
#define COM_FORWARD_IMedium_GETTER_Id_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_Id_TO ((obj)->)
#define COM_FORWARD_IMedium_GETTER_Id_TO_BASE(base) COM_FORWARD_IMedium_GETTER_Id_TO (base::)
#define COM_FORWARD_IMedium_GETTER_Description_TO(smth) NS_IMETHOD GetDescription (PRUnichar * * aDescription) { return smth GetDescription (aDescription); }
#define COM_FORWARD_IMedium_GETTER_Description_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_Description_TO ((obj)->)
#define COM_FORWARD_IMedium_GETTER_Description_TO_BASE(base) COM_FORWARD_IMedium_GETTER_Description_TO (base::)
#define COM_FORWARD_IMedium_SETTER_Description_TO(smth) NS_IMETHOD SetDescription (const PRUnichar * aDescription) { return smth SetDescription (aDescription); }
#define COM_FORWARD_IMedium_SETTER_Description_TO_OBJ(obj) COM_FORWARD_IMedium_SETTER_Description_TO ((obj)->)
#define COM_FORWARD_IMedium_SETTER_Description_TO_BASE(base) COM_FORWARD_IMedium_SETTER_Description_TO (base::)
#define COM_FORWARD_IMedium_GETTER_State_TO(smth) NS_IMETHOD GetState (PRUint32 * aState) { return smth GetState (aState); }
#define COM_FORWARD_IMedium_GETTER_State_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_State_TO ((obj)->)
#define COM_FORWARD_IMedium_GETTER_State_TO_BASE(base) COM_FORWARD_IMedium_GETTER_State_TO (base::)
#define COM_FORWARD_IMedium_GETTER_Variant_TO(smth) NS_IMETHOD GetVariant (PRUint32 * aVariantSize, PRUint32 * * aVariant) { return smth GetVariant (aVariantSize, aVariant); }
#define COM_FORWARD_IMedium_GETTER_Variant_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_Variant_TO ((obj)->)
#define COM_FORWARD_IMedium_GETTER_Variant_TO_BASE(base) COM_FORWARD_IMedium_GETTER_Variant_TO (base::)
#define COM_FORWARD_IMedium_GETTER_Location_TO(smth) NS_IMETHOD GetLocation (PRUnichar * * aLocation) { return smth GetLocation (aLocation); }
#define COM_FORWARD_IMedium_GETTER_Location_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_Location_TO ((obj)->)
#define COM_FORWARD_IMedium_GETTER_Location_TO_BASE(base) COM_FORWARD_IMedium_GETTER_Location_TO (base::)
#define COM_FORWARD_IMedium_SETTER_Location_TO(smth) NS_IMETHOD SetLocation (const PRUnichar * aLocation) { return smth SetLocation (aLocation); }
#define COM_FORWARD_IMedium_SETTER_Location_TO_OBJ(obj) COM_FORWARD_IMedium_SETTER_Location_TO ((obj)->)
#define COM_FORWARD_IMedium_SETTER_Location_TO_BASE(base) COM_FORWARD_IMedium_SETTER_Location_TO (base::)
#define COM_FORWARD_IMedium_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_IMedium_GETTER_Name_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_IMedium_GETTER_Name_TO_BASE(base) COM_FORWARD_IMedium_GETTER_Name_TO (base::)
#define COM_FORWARD_IMedium_GETTER_DeviceType_TO(smth) NS_IMETHOD GetDeviceType (PRUint32 * aDeviceType) { return smth GetDeviceType (aDeviceType); }
#define COM_FORWARD_IMedium_GETTER_DeviceType_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_DeviceType_TO ((obj)->)
#define COM_FORWARD_IMedium_GETTER_DeviceType_TO_BASE(base) COM_FORWARD_IMedium_GETTER_DeviceType_TO (base::)
#define COM_FORWARD_IMedium_GETTER_HostDrive_TO(smth) NS_IMETHOD GetHostDrive (PRBool * aHostDrive) { return smth GetHostDrive (aHostDrive); }
#define COM_FORWARD_IMedium_GETTER_HostDrive_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_HostDrive_TO ((obj)->)
#define COM_FORWARD_IMedium_GETTER_HostDrive_TO_BASE(base) COM_FORWARD_IMedium_GETTER_HostDrive_TO (base::)
#define COM_FORWARD_IMedium_GETTER_Size_TO(smth) NS_IMETHOD GetSize (PRInt64 * aSize) { return smth GetSize (aSize); }
#define COM_FORWARD_IMedium_GETTER_Size_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_Size_TO ((obj)->)
#define COM_FORWARD_IMedium_GETTER_Size_TO_BASE(base) COM_FORWARD_IMedium_GETTER_Size_TO (base::)
#define COM_FORWARD_IMedium_GETTER_Format_TO(smth) NS_IMETHOD GetFormat (PRUnichar * * aFormat) { return smth GetFormat (aFormat); }
#define COM_FORWARD_IMedium_GETTER_Format_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_Format_TO ((obj)->)
#define COM_FORWARD_IMedium_GETTER_Format_TO_BASE(base) COM_FORWARD_IMedium_GETTER_Format_TO (base::)
#define COM_FORWARD_IMedium_GETTER_MediumFormat_TO(smth) NS_IMETHOD GetMediumFormat (IMediumFormat * * aMediumFormat) { return smth GetMediumFormat (aMediumFormat); }
#define COM_FORWARD_IMedium_GETTER_MediumFormat_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_MediumFormat_TO ((obj)->)
#define COM_FORWARD_IMedium_GETTER_MediumFormat_TO_BASE(base) COM_FORWARD_IMedium_GETTER_MediumFormat_TO (base::)
#define COM_FORWARD_IMedium_GETTER_Type_TO(smth) NS_IMETHOD GetType (PRUint32 * aType) { return smth GetType (aType); }
#define COM_FORWARD_IMedium_GETTER_Type_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_Type_TO ((obj)->)
#define COM_FORWARD_IMedium_GETTER_Type_TO_BASE(base) COM_FORWARD_IMedium_GETTER_Type_TO (base::)
#define COM_FORWARD_IMedium_SETTER_Type_TO(smth) NS_IMETHOD SetType (PRUint32 aType) { return smth SetType (aType); }
#define COM_FORWARD_IMedium_SETTER_Type_TO_OBJ(obj) COM_FORWARD_IMedium_SETTER_Type_TO ((obj)->)
#define COM_FORWARD_IMedium_SETTER_Type_TO_BASE(base) COM_FORWARD_IMedium_SETTER_Type_TO (base::)
#define COM_FORWARD_IMedium_GETTER_AllowedTypes_TO(smth) NS_IMETHOD GetAllowedTypes (PRUint32 * aAllowedTypesSize, PRUint32 * * aAllowedTypes) { return smth GetAllowedTypes (aAllowedTypesSize, aAllowedTypes); }
#define COM_FORWARD_IMedium_GETTER_AllowedTypes_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_AllowedTypes_TO ((obj)->)
#define COM_FORWARD_IMedium_GETTER_AllowedTypes_TO_BASE(base) COM_FORWARD_IMedium_GETTER_AllowedTypes_TO (base::)
#define COM_FORWARD_IMedium_GETTER_Parent_TO(smth) NS_IMETHOD GetParent (IMedium * * aParent) { return smth GetParent (aParent); }
#define COM_FORWARD_IMedium_GETTER_Parent_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_Parent_TO ((obj)->)
#define COM_FORWARD_IMedium_GETTER_Parent_TO_BASE(base) COM_FORWARD_IMedium_GETTER_Parent_TO (base::)
#define COM_FORWARD_IMedium_GETTER_Children_TO(smth) NS_IMETHOD GetChildren (PRUint32 * aChildrenSize, IMedium * * * aChildren) { return smth GetChildren (aChildrenSize, aChildren); }
#define COM_FORWARD_IMedium_GETTER_Children_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_Children_TO ((obj)->)
#define COM_FORWARD_IMedium_GETTER_Children_TO_BASE(base) COM_FORWARD_IMedium_GETTER_Children_TO (base::)
#define COM_FORWARD_IMedium_GETTER_Base_TO(smth) NS_IMETHOD GetBase (IMedium * * aBase) { return smth GetBase (aBase); }
#define COM_FORWARD_IMedium_GETTER_Base_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_Base_TO ((obj)->)
#define COM_FORWARD_IMedium_GETTER_Base_TO_BASE(base) COM_FORWARD_IMedium_GETTER_Base_TO (base::)
#define COM_FORWARD_IMedium_GETTER_ReadOnly_TO(smth) NS_IMETHOD GetReadOnly (PRBool * aReadOnly) { return smth GetReadOnly (aReadOnly); }
#define COM_FORWARD_IMedium_GETTER_ReadOnly_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_ReadOnly_TO ((obj)->)
#define COM_FORWARD_IMedium_GETTER_ReadOnly_TO_BASE(base) COM_FORWARD_IMedium_GETTER_ReadOnly_TO (base::)
#define COM_FORWARD_IMedium_GETTER_LogicalSize_TO(smth) NS_IMETHOD GetLogicalSize (PRInt64 * aLogicalSize) { return smth GetLogicalSize (aLogicalSize); }
#define COM_FORWARD_IMedium_GETTER_LogicalSize_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_LogicalSize_TO ((obj)->)
#define COM_FORWARD_IMedium_GETTER_LogicalSize_TO_BASE(base) COM_FORWARD_IMedium_GETTER_LogicalSize_TO (base::)
#define COM_FORWARD_IMedium_GETTER_AutoReset_TO(smth) NS_IMETHOD GetAutoReset (PRBool * aAutoReset) { return smth GetAutoReset (aAutoReset); }
#define COM_FORWARD_IMedium_GETTER_AutoReset_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_AutoReset_TO ((obj)->)
#define COM_FORWARD_IMedium_GETTER_AutoReset_TO_BASE(base) COM_FORWARD_IMedium_GETTER_AutoReset_TO (base::)
#define COM_FORWARD_IMedium_SETTER_AutoReset_TO(smth) NS_IMETHOD SetAutoReset (PRBool aAutoReset) { return smth SetAutoReset (aAutoReset); }
#define COM_FORWARD_IMedium_SETTER_AutoReset_TO_OBJ(obj) COM_FORWARD_IMedium_SETTER_AutoReset_TO ((obj)->)
#define COM_FORWARD_IMedium_SETTER_AutoReset_TO_BASE(base) COM_FORWARD_IMedium_SETTER_AutoReset_TO (base::)
#define COM_FORWARD_IMedium_GETTER_LastAccessError_TO(smth) NS_IMETHOD GetLastAccessError (PRUnichar * * aLastAccessError) { return smth GetLastAccessError (aLastAccessError); }
#define COM_FORWARD_IMedium_GETTER_LastAccessError_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_LastAccessError_TO ((obj)->)
#define COM_FORWARD_IMedium_GETTER_LastAccessError_TO_BASE(base) COM_FORWARD_IMedium_GETTER_LastAccessError_TO (base::)
#define COM_FORWARD_IMedium_GETTER_MachineIds_TO(smth) NS_IMETHOD GetMachineIds (PRUint32 * aMachineIdsSize, PRUnichar * * * aMachineIds) { return smth GetMachineIds (aMachineIdsSize, aMachineIds); }
#define COM_FORWARD_IMedium_GETTER_MachineIds_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_MachineIds_TO ((obj)->)
#define COM_FORWARD_IMedium_GETTER_MachineIds_TO_BASE(base) COM_FORWARD_IMedium_GETTER_MachineIds_TO (base::)
#define COM_FORWARD_IMedium_SetIds_TO(smth) NS_IMETHOD SetIds (PRBool aSetImageId, PRUnichar * aImageId, PRBool aSetParentId, PRUnichar * aParentId) { return smth SetIds (aSetImageId, aImageId, aSetParentId, aParentId); }
#define COM_FORWARD_IMedium_SetIds_TO_OBJ(obj) COM_FORWARD_IMedium_SetIds_TO ((obj)->)
#define COM_FORWARD_IMedium_SetIds_TO_BASE(base) COM_FORWARD_IMedium_SetIds_TO (base::)
#define COM_FORWARD_IMedium_RefreshState_TO(smth) NS_IMETHOD RefreshState (PRUint32 * aState) { return smth RefreshState (aState); }
#define COM_FORWARD_IMedium_RefreshState_TO_OBJ(obj) COM_FORWARD_IMedium_RefreshState_TO ((obj)->)
#define COM_FORWARD_IMedium_RefreshState_TO_BASE(base) COM_FORWARD_IMedium_RefreshState_TO (base::)
#define COM_FORWARD_IMedium_GetSnapshotIds_TO(smth) NS_IMETHOD GetSnapshotIds (PRUnichar * aMachineId, PRUint32 * aSnapshotIdsSize, PRUnichar * * * aSnapshotIds) { return smth GetSnapshotIds (aMachineId, aSnapshotIdsSize, aSnapshotIds); }
#define COM_FORWARD_IMedium_GetSnapshotIds_TO_OBJ(obj) COM_FORWARD_IMedium_GetSnapshotIds_TO ((obj)->)
#define COM_FORWARD_IMedium_GetSnapshotIds_TO_BASE(base) COM_FORWARD_IMedium_GetSnapshotIds_TO (base::)
#define COM_FORWARD_IMedium_LockRead_TO(smth) NS_IMETHOD LockRead (IToken * * aToken) { return smth LockRead (aToken); }
#define COM_FORWARD_IMedium_LockRead_TO_OBJ(obj) COM_FORWARD_IMedium_LockRead_TO ((obj)->)
#define COM_FORWARD_IMedium_LockRead_TO_BASE(base) COM_FORWARD_IMedium_LockRead_TO (base::)
#define COM_FORWARD_IMedium_LockWrite_TO(smth) NS_IMETHOD LockWrite (IToken * * aToken) { return smth LockWrite (aToken); }
#define COM_FORWARD_IMedium_LockWrite_TO_OBJ(obj) COM_FORWARD_IMedium_LockWrite_TO ((obj)->)
#define COM_FORWARD_IMedium_LockWrite_TO_BASE(base) COM_FORWARD_IMedium_LockWrite_TO (base::)
#define COM_FORWARD_IMedium_Close_TO(smth) NS_IMETHOD Close() { return smth Close(); }
#define COM_FORWARD_IMedium_Close_TO_OBJ(obj) COM_FORWARD_IMedium_Close_TO ((obj)->)
#define COM_FORWARD_IMedium_Close_TO_BASE(base) COM_FORWARD_IMedium_Close_TO (base::)
#define COM_FORWARD_IMedium_GetProperty_TO(smth) NS_IMETHOD GetProperty (PRUnichar * aName, PRUnichar * * aValue) { return smth GetProperty (aName, aValue); }
#define COM_FORWARD_IMedium_GetProperty_TO_OBJ(obj) COM_FORWARD_IMedium_GetProperty_TO ((obj)->)
#define COM_FORWARD_IMedium_GetProperty_TO_BASE(base) COM_FORWARD_IMedium_GetProperty_TO (base::)
#define COM_FORWARD_IMedium_SetProperty_TO(smth) NS_IMETHOD SetProperty (PRUnichar * aName, PRUnichar * aValue) { return smth SetProperty (aName, aValue); }
#define COM_FORWARD_IMedium_SetProperty_TO_OBJ(obj) COM_FORWARD_IMedium_SetProperty_TO ((obj)->)
#define COM_FORWARD_IMedium_SetProperty_TO_BASE(base) COM_FORWARD_IMedium_SetProperty_TO (base::)
#define COM_FORWARD_IMedium_GetProperties_TO(smth) NS_IMETHOD GetProperties (PRUnichar * aNames, PRUint32 * aReturnNamesSize, PRUnichar * * * aReturnNames, PRUint32 * aReturnValuesSize, PRUnichar * * * aReturnValues) { return smth GetProperties (aNames, aReturnNamesSize+++, aReturnNames, aReturnValuesSize, aReturnValues); }
#define COM_FORWARD_IMedium_GetProperties_TO_OBJ(obj) COM_FORWARD_IMedium_GetProperties_TO ((obj)->)
#define COM_FORWARD_IMedium_GetProperties_TO_BASE(base) COM_FORWARD_IMedium_GetProperties_TO (base::)
#define COM_FORWARD_IMedium_SetProperties_TO(smth) NS_IMETHOD SetProperties (PRUint32 aNamesSize, PRUnichar * * aNames, PRUint32 aValuesSize, PRUnichar * * aValues) { return smth SetProperties (aNamesSize+++, aNames, aValuesSize, aValues); }
#define COM_FORWARD_IMedium_SetProperties_TO_OBJ(obj) COM_FORWARD_IMedium_SetProperties_TO ((obj)->)
#define COM_FORWARD_IMedium_SetProperties_TO_BASE(base) COM_FORWARD_IMedium_SetProperties_TO (base::)
#define COM_FORWARD_IMedium_CreateBaseStorage_TO(smth) NS_IMETHOD CreateBaseStorage (PRInt64 aLogicalSize, PRUint32 aVariantSize, PRUint32 * aVariant, IProgress * * aProgress) { return smth CreateBaseStorage (aLogicalSize, aVariantSize+++, aVariant, aProgress); }
#define COM_FORWARD_IMedium_CreateBaseStorage_TO_OBJ(obj) COM_FORWARD_IMedium_CreateBaseStorage_TO ((obj)->)
#define COM_FORWARD_IMedium_CreateBaseStorage_TO_BASE(base) COM_FORWARD_IMedium_CreateBaseStorage_TO (base::)
#define COM_FORWARD_IMedium_DeleteStorage_TO(smth) NS_IMETHOD DeleteStorage (IProgress * * aProgress) { return smth DeleteStorage (aProgress); }
#define COM_FORWARD_IMedium_DeleteStorage_TO_OBJ(obj) COM_FORWARD_IMedium_DeleteStorage_TO ((obj)->)
#define COM_FORWARD_IMedium_DeleteStorage_TO_BASE(base) COM_FORWARD_IMedium_DeleteStorage_TO (base::)
#define COM_FORWARD_IMedium_CreateDiffStorage_TO(smth) NS_IMETHOD CreateDiffStorage (IMedium * aTarget, PRUint32 aVariantSize, PRUint32 * aVariant, IProgress * * aProgress) { return smth CreateDiffStorage (aTarget, aVariantSize+++, aVariant, aProgress); }
#define COM_FORWARD_IMedium_CreateDiffStorage_TO_OBJ(obj) COM_FORWARD_IMedium_CreateDiffStorage_TO ((obj)->)
#define COM_FORWARD_IMedium_CreateDiffStorage_TO_BASE(base) COM_FORWARD_IMedium_CreateDiffStorage_TO (base::)
#define COM_FORWARD_IMedium_MergeTo_TO(smth) NS_IMETHOD MergeTo (IMedium * aTarget, IProgress * * aProgress) { return smth MergeTo (aTarget, aProgress); }
#define COM_FORWARD_IMedium_MergeTo_TO_OBJ(obj) COM_FORWARD_IMedium_MergeTo_TO ((obj)->)
#define COM_FORWARD_IMedium_MergeTo_TO_BASE(base) COM_FORWARD_IMedium_MergeTo_TO (base::)
#define COM_FORWARD_IMedium_CloneTo_TO(smth) NS_IMETHOD CloneTo (IMedium * aTarget, PRUint32 aVariantSize, PRUint32 * aVariant, IMedium * aParent, IProgress * * aProgress) { return smth CloneTo (aTarget, aVariantSize+++, aVariant, aParent, aProgress); }
#define COM_FORWARD_IMedium_CloneTo_TO_OBJ(obj) COM_FORWARD_IMedium_CloneTo_TO ((obj)->)
#define COM_FORWARD_IMedium_CloneTo_TO_BASE(base) COM_FORWARD_IMedium_CloneTo_TO (base::)
#define COM_FORWARD_IMedium_CloneToBase_TO(smth) NS_IMETHOD CloneToBase (IMedium * aTarget, PRUint32 aVariantSize, PRUint32 * aVariant, IProgress * * aProgress) { return smth CloneToBase (aTarget, aVariantSize+++, aVariant, aProgress); }
#define COM_FORWARD_IMedium_CloneToBase_TO_OBJ(obj) COM_FORWARD_IMedium_CloneToBase_TO ((obj)->)
#define COM_FORWARD_IMedium_CloneToBase_TO_BASE(base) COM_FORWARD_IMedium_CloneToBase_TO (base::)
#define COM_FORWARD_IMedium_MoveTo_TO(smth) NS_IMETHOD MoveTo (PRUnichar * aLocation, IProgress * * aProgress) { return smth MoveTo (aLocation, aProgress); }
#define COM_FORWARD_IMedium_MoveTo_TO_OBJ(obj) COM_FORWARD_IMedium_MoveTo_TO ((obj)->)
#define COM_FORWARD_IMedium_MoveTo_TO_BASE(base) COM_FORWARD_IMedium_MoveTo_TO (base::)
#define COM_FORWARD_IMedium_Compact_TO(smth) NS_IMETHOD Compact (IProgress * * aProgress) { return smth Compact (aProgress); }
#define COM_FORWARD_IMedium_Compact_TO_OBJ(obj) COM_FORWARD_IMedium_Compact_TO ((obj)->)
#define COM_FORWARD_IMedium_Compact_TO_BASE(base) COM_FORWARD_IMedium_Compact_TO (base::)
#define COM_FORWARD_IMedium_Resize_TO(smth) NS_IMETHOD Resize (PRInt64 aLogicalSize, IProgress * * aProgress) { return smth Resize (aLogicalSize, aProgress); }
#define COM_FORWARD_IMedium_Resize_TO_OBJ(obj) COM_FORWARD_IMedium_Resize_TO ((obj)->)
#define COM_FORWARD_IMedium_Resize_TO_BASE(base) COM_FORWARD_IMedium_Resize_TO (base::)
#define COM_FORWARD_IMedium_Reset_TO(smth) NS_IMETHOD Reset (IProgress * * aProgress) { return smth Reset (aProgress); }
#define COM_FORWARD_IMedium_Reset_TO_OBJ(obj) COM_FORWARD_IMedium_Reset_TO ((obj)->)
#define COM_FORWARD_IMedium_Reset_TO_BASE(base) COM_FORWARD_IMedium_Reset_TO (base::)
#define COM_FORWARD_IMedium_ChangeEncryption_TO(smth) NS_IMETHOD ChangeEncryption (PRUnichar * aCurrentPassword, PRUnichar * aCipher, PRUnichar * aNewPassword, PRUnichar * aNewPasswordId, IProgress * * aProgress) { return smth ChangeEncryption (aCurrentPassword, aCipher, aNewPassword, aNewPasswordId, aProgress); }
#define COM_FORWARD_IMedium_ChangeEncryption_TO_OBJ(obj) COM_FORWARD_IMedium_ChangeEncryption_TO ((obj)->)
#define COM_FORWARD_IMedium_ChangeEncryption_TO_BASE(base) COM_FORWARD_IMedium_ChangeEncryption_TO (base::)
#define COM_FORWARD_IMedium_GetEncryptionSettings_TO(smth) NS_IMETHOD GetEncryptionSettings (PRUnichar * * aCipher, PRUnichar * * aPasswordId) { return smth GetEncryptionSettings (aCipher, aPasswordId); }
#define COM_FORWARD_IMedium_GetEncryptionSettings_TO_OBJ(obj) COM_FORWARD_IMedium_GetEncryptionSettings_TO ((obj)->)
#define COM_FORWARD_IMedium_GetEncryptionSettings_TO_BASE(base) COM_FORWARD_IMedium_GetEncryptionSettings_TO (base::)
#define COM_FORWARD_IMedium_CheckEncryptionPassword_TO(smth) NS_IMETHOD CheckEncryptionPassword (PRUnichar * aPassword) { return smth CheckEncryptionPassword (aPassword); }
#define COM_FORWARD_IMedium_CheckEncryptionPassword_TO_OBJ(obj) COM_FORWARD_IMedium_CheckEncryptionPassword_TO ((obj)->)
#define COM_FORWARD_IMedium_CheckEncryptionPassword_TO_BASE(base) COM_FORWARD_IMedium_CheckEncryptionPassword_TO (base::)
#define COM_FORWARD_IMedium_OpenForIO_TO(smth) NS_IMETHOD OpenForIO (PRBool aWritable, PRUnichar * aPassword, IMediumIO * * aMediumIO) { return smth OpenForIO (aWritable, aPassword, aMediumIO); }
#define COM_FORWARD_IMedium_OpenForIO_TO_OBJ(obj) COM_FORWARD_IMedium_OpenForIO_TO ((obj)->)
#define COM_FORWARD_IMedium_OpenForIO_TO_BASE(base) COM_FORWARD_IMedium_OpenForIO_TO (base::)
#define COM_FORWARD_IMedium_TO(smth) NS_FORWARD_IMEDIUM (smth)
#define COM_FORWARD_IMedium_TO_OBJ(obj) COM_FORWARD_IMedium_TO ((obj)->)
#define COM_FORWARD_IMedium_TO_BASE(base) COM_FORWARD_IMedium_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IMedium;
%}

[
    uuid(11be93c7-a862-4dc9-8c89-bf4ba74a886a),
    scriptable
]
interface IMediumFormat : nsISupports
{
    readonly attribute wstring id;

    readonly attribute wstring name;

    void getCapabilities (
        out unsigned long capabilitiesSize,
        [array, size_is(capabilitiesSize), retval] out MediumFormatCapabilities_T capabilities
    );

    readonly attribute unsigned long InternalAndReservedAttribute1IMediumFormat;

    readonly attribute unsigned long InternalAndReservedAttribute2IMediumFormat;

    readonly attribute unsigned long InternalAndReservedAttribute3IMediumFormat;

    readonly attribute unsigned long InternalAndReservedAttribute4IMediumFormat;

    void describeFileExtensions (
        out unsigned long extensionsSize,
        [array, size_is(extensionsSize)] out wstring extensions,
        out unsigned long typesSize,
        [array, size_is(typesSize)] out DeviceType_T types
    );

    void describeProperties (
        out unsigned long namesSize,
        [array, size_is(namesSize)] out wstring names,
        out unsigned long descriptionsSize,
        [array, size_is(descriptionsSize)] out wstring descriptions,
        out unsigned long typesSize,
        [array, size_is(typesSize)] out DataType_T types,
        out unsigned long flagsSize,
        [array, size_is(flagsSize)] out unsigned long flags,
        out unsigned long defaultsSize,
        [array, size_is(defaultsSize)] out wstring defaults
    );

    void InternalAndReservedMethod1IMediumFormat();

    void InternalAndReservedMethod2IMediumFormat();

}; /* interface IMediumFormat */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IMediumFormat_GETTER_Id_TO(smth) NS_IMETHOD GetId (PRUnichar * * aId) { return smth GetId (aId); }
#define COM_FORWARD_IMediumFormat_GETTER_Id_TO_OBJ(obj) COM_FORWARD_IMediumFormat_GETTER_Id_TO ((obj)->)
#define COM_FORWARD_IMediumFormat_GETTER_Id_TO_BASE(base) COM_FORWARD_IMediumFormat_GETTER_Id_TO (base::)
#define COM_FORWARD_IMediumFormat_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_IMediumFormat_GETTER_Name_TO_OBJ(obj) COM_FORWARD_IMediumFormat_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_IMediumFormat_GETTER_Name_TO_BASE(base) COM_FORWARD_IMediumFormat_GETTER_Name_TO (base::)
#define COM_FORWARD_IMediumFormat_GETTER_Capabilities_TO(smth) NS_IMETHOD GetCapabilities (PRUint32 * aCapabilitiesSize, PRUint32 * * aCapabilities) { return smth GetCapabilities (aCapabilitiesSize, aCapabilities); }
#define COM_FORWARD_IMediumFormat_GETTER_Capabilities_TO_OBJ(obj) COM_FORWARD_IMediumFormat_GETTER_Capabilities_TO ((obj)->)
#define COM_FORWARD_IMediumFormat_GETTER_Capabilities_TO_BASE(base) COM_FORWARD_IMediumFormat_GETTER_Capabilities_TO (base::)
#define COM_FORWARD_IMediumFormat_DescribeFileExtensions_TO(smth) NS_IMETHOD DescribeFileExtensions (PRUint32 * aExtensionsSize, PRUnichar * * * aExtensions, PRUint32 * aTypesSize, PRUint32 * * aTypes) { return smth DescribeFileExtensions (aExtensionsSize+++, aExtensions, aTypesSize, aTypes); }
#define COM_FORWARD_IMediumFormat_DescribeFileExtensions_TO_OBJ(obj) COM_FORWARD_IMediumFormat_DescribeFileExtensions_TO ((obj)->)
#define COM_FORWARD_IMediumFormat_DescribeFileExtensions_TO_BASE(base) COM_FORWARD_IMediumFormat_DescribeFileExtensions_TO (base::)
#define COM_FORWARD_IMediumFormat_DescribeProperties_TO(smth) NS_IMETHOD DescribeProperties (PRUint32 * aNamesSize, PRUnichar * * * aNames, PRUint32 * aDescriptionsSize, PRUnichar * * * aDescriptions, PRUint32 * aTypesSize, PRUint32 * * aTypes, PRUint32 * aFlagsSize, PRUint32 * * aFlags, PRUint32 * aDefaultsSize, PRUnichar * * * aDefaults) { return smth DescribeProperties (aNamesSize+++, aNames, aDescriptionsSize+++, aDescriptions, aTypesSize+++, aTypes, aFlagsSize+++, aFlags, aDefaultsSize, aDefaults); }
#define COM_FORWARD_IMediumFormat_DescribeProperties_TO_OBJ(obj) COM_FORWARD_IMediumFormat_DescribeProperties_TO ((obj)->)
#define COM_FORWARD_IMediumFormat_DescribeProperties_TO_BASE(base) COM_FORWARD_IMediumFormat_DescribeProperties_TO (base::)
#define COM_FORWARD_IMediumFormat_TO(smth) NS_FORWARD_IMEDIUMFORMAT (smth)
#define COM_FORWARD_IMediumFormat_TO_OBJ(obj) COM_FORWARD_IMediumFormat_TO ((obj)->)
#define COM_FORWARD_IMediumFormat_TO_BASE(base) COM_FORWARD_IMediumFormat_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IMediumFormat;
%}

[
    uuid(a338ed20-58d9-43ae-8b03-c1fd7088ef15),
    scriptable
]
interface IDataStream : nsISupports
{
    readonly attribute unsigned long readSize;

    readonly attribute unsigned long InternalAndReservedAttribute1IDataStream;

    readonly attribute unsigned long InternalAndReservedAttribute2IDataStream;

    readonly attribute unsigned long InternalAndReservedAttribute3IDataStream;

    readonly attribute unsigned long InternalAndReservedAttribute4IDataStream;

    readonly attribute unsigned long InternalAndReservedAttribute5IDataStream;

    readonly attribute unsigned long InternalAndReservedAttribute6IDataStream;

    readonly attribute unsigned long InternalAndReservedAttribute7IDataStream;

    readonly attribute unsigned long InternalAndReservedAttribute8IDataStream;

    void read (
        in unsigned long size,
        in unsigned long timeoutMS,
        out unsigned long dataSize,
        [array, size_is(dataSize) , retval] out octet data
    );

    void InternalAndReservedMethod1IDataStream();

    void InternalAndReservedMethod2IDataStream();

    void InternalAndReservedMethod3IDataStream();

    void InternalAndReservedMethod4IDataStream();

}; /* interface IDataStream */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IDataStream_GETTER_ReadSize_TO(smth) NS_IMETHOD GetReadSize (PRUint32 * aReadSize) { return smth GetReadSize (aReadSize); }
#define COM_FORWARD_IDataStream_GETTER_ReadSize_TO_OBJ(obj) COM_FORWARD_IDataStream_GETTER_ReadSize_TO ((obj)->)
#define COM_FORWARD_IDataStream_GETTER_ReadSize_TO_BASE(base) COM_FORWARD_IDataStream_GETTER_ReadSize_TO (base::)
#define COM_FORWARD_IDataStream_Read_TO(smth) NS_IMETHOD Read (PRUint32 aSize, PRUint32 aTimeoutMS, PRUint32 * aDataSize, PRUint8 * * aData) { return smth Read (aSize, aTimeoutMS, aDataSize, aData); }
#define COM_FORWARD_IDataStream_Read_TO_OBJ(obj) COM_FORWARD_IDataStream_Read_TO ((obj)->)
#define COM_FORWARD_IDataStream_Read_TO_BASE(base) COM_FORWARD_IDataStream_Read_TO (base::)
#define COM_FORWARD_IDataStream_TO(smth) NS_FORWARD_IDATASTREAM (smth)
#define COM_FORWARD_IDataStream_TO_OBJ(obj) COM_FORWARD_IDataStream_TO ((obj)->)
#define COM_FORWARD_IDataStream_TO_BASE(base) COM_FORWARD_IDataStream_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IDataStream;
%}

[
    uuid(e4b301a9-5f86-4d65-ad1b-87ca284fb1c8),
    scriptable
]
interface IMediumIO : nsISupports
{
    readonly attribute IMedium medium;

    readonly attribute boolean writable;

    readonly attribute IVFSExplorer explorer;

    readonly attribute unsigned long InternalAndReservedAttribute1IMediumIO;

    readonly attribute unsigned long InternalAndReservedAttribute2IMediumIO;

    readonly attribute unsigned long InternalAndReservedAttribute3IMediumIO;

    readonly attribute unsigned long InternalAndReservedAttribute4IMediumIO;

    readonly attribute unsigned long InternalAndReservedAttribute5IMediumIO;

    readonly attribute unsigned long InternalAndReservedAttribute6IMediumIO;

    readonly attribute unsigned long InternalAndReservedAttribute7IMediumIO;

    readonly attribute unsigned long InternalAndReservedAttribute8IMediumIO;

    void read (
        in long long offset,
        in unsigned long size,
        out unsigned long dataSize,
        [array, size_is(dataSize) , retval] out octet data
    );

    void write (
        in long long offset,
        in unsigned long dataSize,
        [array, size_is(dataSize)] in octet data,
        [retval] out unsigned long written
    );

    void formatFAT (
        in boolean quick
    );

    void initializePartitionTable (
        in PartitionTableType_T format,
        in boolean wholeDiskInOneEntry
    );

    void convertToStream (
        in wstring format,
        in unsigned long variantSize,
        [array, size_is(variantSize)] in MediumVariant_T variant,
        in unsigned long bufferSize,
        out IDataStream stream,
        [retval] out IProgress progress
    );

    void close();

    void InternalAndReservedMethod1IMediumIO();

    void InternalAndReservedMethod2IMediumIO();

    void InternalAndReservedMethod3IMediumIO();

    void InternalAndReservedMethod4IMediumIO();

}; /* interface IMediumIO */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IMediumIO_GETTER_Medium_TO(smth) NS_IMETHOD GetMedium (IMedium * * aMedium) { return smth GetMedium (aMedium); }
#define COM_FORWARD_IMediumIO_GETTER_Medium_TO_OBJ(obj) COM_FORWARD_IMediumIO_GETTER_Medium_TO ((obj)->)
#define COM_FORWARD_IMediumIO_GETTER_Medium_TO_BASE(base) COM_FORWARD_IMediumIO_GETTER_Medium_TO (base::)
#define COM_FORWARD_IMediumIO_GETTER_Writable_TO(smth) NS_IMETHOD GetWritable (PRBool * aWritable) { return smth GetWritable (aWritable); }
#define COM_FORWARD_IMediumIO_GETTER_Writable_TO_OBJ(obj) COM_FORWARD_IMediumIO_GETTER_Writable_TO ((obj)->)
#define COM_FORWARD_IMediumIO_GETTER_Writable_TO_BASE(base) COM_FORWARD_IMediumIO_GETTER_Writable_TO (base::)
#define COM_FORWARD_IMediumIO_GETTER_Explorer_TO(smth) NS_IMETHOD GetExplorer (IVFSExplorer * * aExplorer) { return smth GetExplorer (aExplorer); }
#define COM_FORWARD_IMediumIO_GETTER_Explorer_TO_OBJ(obj) COM_FORWARD_IMediumIO_GETTER_Explorer_TO ((obj)->)
#define COM_FORWARD_IMediumIO_GETTER_Explorer_TO_BASE(base) COM_FORWARD_IMediumIO_GETTER_Explorer_TO (base::)
#define COM_FORWARD_IMediumIO_Read_TO(smth) NS_IMETHOD Read (PRInt64 aOffset, PRUint32 aSize, PRUint32 * aDataSize, PRUint8 * * aData) { return smth Read (aOffset, aSize, aDataSize, aData); }
#define COM_FORWARD_IMediumIO_Read_TO_OBJ(obj) COM_FORWARD_IMediumIO_Read_TO ((obj)->)
#define COM_FORWARD_IMediumIO_Read_TO_BASE(base) COM_FORWARD_IMediumIO_Read_TO (base::)
#define COM_FORWARD_IMediumIO_Write_TO(smth) NS_IMETHOD Write (PRInt64 aOffset, PRUint32 aDataSize, PRUint8 * aData, PRUint32 * aWritten) { return smth Write (aOffset, aDataSize+++, aData, aWritten); }
#define COM_FORWARD_IMediumIO_Write_TO_OBJ(obj) COM_FORWARD_IMediumIO_Write_TO ((obj)->)
#define COM_FORWARD_IMediumIO_Write_TO_BASE(base) COM_FORWARD_IMediumIO_Write_TO (base::)
#define COM_FORWARD_IMediumIO_FormatFAT_TO(smth) NS_IMETHOD FormatFAT (PRBool aQuick) { return smth FormatFAT (aQuick); }
#define COM_FORWARD_IMediumIO_FormatFAT_TO_OBJ(obj) COM_FORWARD_IMediumIO_FormatFAT_TO ((obj)->)
#define COM_FORWARD_IMediumIO_FormatFAT_TO_BASE(base) COM_FORWARD_IMediumIO_FormatFAT_TO (base::)
#define COM_FORWARD_IMediumIO_InitializePartitionTable_TO(smth) NS_IMETHOD InitializePartitionTable (PRUint32 aFormat, PRBool aWholeDiskInOneEntry) { return smth InitializePartitionTable (aFormat, aWholeDiskInOneEntry); }
#define COM_FORWARD_IMediumIO_InitializePartitionTable_TO_OBJ(obj) COM_FORWARD_IMediumIO_InitializePartitionTable_TO ((obj)->)
#define COM_FORWARD_IMediumIO_InitializePartitionTable_TO_BASE(base) COM_FORWARD_IMediumIO_InitializePartitionTable_TO (base::)
#define COM_FORWARD_IMediumIO_ConvertToStream_TO(smth) NS_IMETHOD ConvertToStream (PRUnichar * aFormat, PRUint32 aVariantSize, PRUint32 * aVariant, PRUint32 aBufferSize, IDataStream * * aStream, IProgress * * aProgress) { return smth ConvertToStream (aFormat, aVariantSize+++, aVariant, aBufferSize, aStream, aProgress); }
#define COM_FORWARD_IMediumIO_ConvertToStream_TO_OBJ(obj) COM_FORWARD_IMediumIO_ConvertToStream_TO ((obj)->)
#define COM_FORWARD_IMediumIO_ConvertToStream_TO_BASE(base) COM_FORWARD_IMediumIO_ConvertToStream_TO (base::)
#define COM_FORWARD_IMediumIO_Close_TO(smth) NS_IMETHOD Close() { return smth Close(); }
#define COM_FORWARD_IMediumIO_Close_TO_OBJ(obj) COM_FORWARD_IMediumIO_Close_TO ((obj)->)
#define COM_FORWARD_IMediumIO_Close_TO_BASE(base) COM_FORWARD_IMediumIO_Close_TO (base::)
#define COM_FORWARD_IMediumIO_TO(smth) NS_FORWARD_IMEDIUMIO (smth)
#define COM_FORWARD_IMediumIO_TO_OBJ(obj) COM_FORWARD_IMediumIO_TO ((obj)->)
#define COM_FORWARD_IMediumIO_TO_BASE(base) COM_FORWARD_IMediumIO_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IMediumIO;
%}

[
    uuid(20479eaf-d8ed-44cf-85ac-c83a26c95a4d),
    scriptable
]
interface IToken : nsISupports
{
    readonly attribute unsigned long InternalAndReservedAttribute1IToken;

    readonly attribute unsigned long InternalAndReservedAttribute2IToken;

    void abandon();

    void dummy();

    void InternalAndReservedMethod1IToken();

}; /* interface IToken */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IToken_Abandon_TO(smth) NS_IMETHOD Abandon() { return smth Abandon(); }
#define COM_FORWARD_IToken_Abandon_TO_OBJ(obj) COM_FORWARD_IToken_Abandon_TO ((obj)->)
#define COM_FORWARD_IToken_Abandon_TO_BASE(base) COM_FORWARD_IToken_Abandon_TO (base::)
#define COM_FORWARD_IToken_Dummy_TO(smth) NS_IMETHOD Dummy() { return smth Dummy(); }
#define COM_FORWARD_IToken_Dummy_TO_OBJ(obj) COM_FORWARD_IToken_Dummy_TO ((obj)->)
#define COM_FORWARD_IToken_Dummy_TO_BASE(base) COM_FORWARD_IToken_Dummy_TO (base::)
#define COM_FORWARD_IToken_TO(smth) NS_FORWARD_ITOKEN (smth)
#define COM_FORWARD_IToken_TO_OBJ(obj) COM_FORWARD_IToken_TO ((obj)->)
#define COM_FORWARD_IToken_TO_BASE(base) COM_FORWARD_IToken_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IToken;
%}

[
    uuid(755e6bdf-1640-41f9-bd74-3ef5fd653250),
    scriptable
]
interface IKeyboard : nsISupports
{
    void getKeyboardLEDs (
        out unsigned long keyboardLEDsSize,
        [array, size_is(keyboardLEDsSize), retval] out KeyboardLED_T keyboardLEDs
    );

    readonly attribute IEventSource eventSource;

    readonly attribute unsigned long InternalAndReservedAttribute1IKeyboard;

    readonly attribute unsigned long InternalAndReservedAttribute2IKeyboard;

    readonly attribute unsigned long InternalAndReservedAttribute3IKeyboard;

    readonly attribute unsigned long InternalAndReservedAttribute4IKeyboard;

    void putScancode (
        in long scancode
    );

    void putScancodes (
        in unsigned long scancodesSize,
        [array, size_is(scancodesSize)] in long scancodes,
        [retval] out unsigned long codesStored
    );

    void putCAD();

    void releaseKeys();

    void putUsageCode (
        in long usageCode,
        in long usagePage,
        in boolean keyRelease
    );

    void InternalAndReservedMethod1IKeyboard();

    void InternalAndReservedMethod2IKeyboard();

    void InternalAndReservedMethod3IKeyboard();

    void InternalAndReservedMethod4IKeyboard();

}; /* interface IKeyboard */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IKeyboard_GETTER_KeyboardLEDs_TO(smth) NS_IMETHOD GetKeyboardLEDs (PRUint32 * aKeyboardLEDsSize, PRUint32 * * aKeyboardLEDs) { return smth GetKeyboardLEDs (aKeyboardLEDsSize, aKeyboardLEDs); }
#define COM_FORWARD_IKeyboard_GETTER_KeyboardLEDs_TO_OBJ(obj) COM_FORWARD_IKeyboard_GETTER_KeyboardLEDs_TO ((obj)->)
#define COM_FORWARD_IKeyboard_GETTER_KeyboardLEDs_TO_BASE(base) COM_FORWARD_IKeyboard_GETTER_KeyboardLEDs_TO (base::)
#define COM_FORWARD_IKeyboard_GETTER_EventSource_TO(smth) NS_IMETHOD GetEventSource (IEventSource * * aEventSource) { return smth GetEventSource (aEventSource); }
#define COM_FORWARD_IKeyboard_GETTER_EventSource_TO_OBJ(obj) COM_FORWARD_IKeyboard_GETTER_EventSource_TO ((obj)->)
#define COM_FORWARD_IKeyboard_GETTER_EventSource_TO_BASE(base) COM_FORWARD_IKeyboard_GETTER_EventSource_TO (base::)
#define COM_FORWARD_IKeyboard_PutScancode_TO(smth) NS_IMETHOD PutScancode (PRInt32 aScancode) { return smth PutScancode (aScancode); }
#define COM_FORWARD_IKeyboard_PutScancode_TO_OBJ(obj) COM_FORWARD_IKeyboard_PutScancode_TO ((obj)->)
#define COM_FORWARD_IKeyboard_PutScancode_TO_BASE(base) COM_FORWARD_IKeyboard_PutScancode_TO (base::)
#define COM_FORWARD_IKeyboard_PutScancodes_TO(smth) NS_IMETHOD PutScancodes (PRUint32 aScancodesSize, PRInt32 * aScancodes, PRUint32 * aCodesStored) { return smth PutScancodes (aScancodesSize+++, aScancodes, aCodesStored); }
#define COM_FORWARD_IKeyboard_PutScancodes_TO_OBJ(obj) COM_FORWARD_IKeyboard_PutScancodes_TO ((obj)->)
#define COM_FORWARD_IKeyboard_PutScancodes_TO_BASE(base) COM_FORWARD_IKeyboard_PutScancodes_TO (base::)
#define COM_FORWARD_IKeyboard_PutCAD_TO(smth) NS_IMETHOD PutCAD() { return smth PutCAD(); }
#define COM_FORWARD_IKeyboard_PutCAD_TO_OBJ(obj) COM_FORWARD_IKeyboard_PutCAD_TO ((obj)->)
#define COM_FORWARD_IKeyboard_PutCAD_TO_BASE(base) COM_FORWARD_IKeyboard_PutCAD_TO (base::)
#define COM_FORWARD_IKeyboard_ReleaseKeys_TO(smth) NS_IMETHOD ReleaseKeys() { return smth ReleaseKeys(); }
#define COM_FORWARD_IKeyboard_ReleaseKeys_TO_OBJ(obj) COM_FORWARD_IKeyboard_ReleaseKeys_TO ((obj)->)
#define COM_FORWARD_IKeyboard_ReleaseKeys_TO_BASE(base) COM_FORWARD_IKeyboard_ReleaseKeys_TO (base::)
#define COM_FORWARD_IKeyboard_PutUsageCode_TO(smth) NS_IMETHOD PutUsageCode (PRInt32 aUsageCode, PRInt32 aUsagePage, PRBool aKeyRelease) { return smth PutUsageCode (aUsageCode, aUsagePage, aKeyRelease); }
#define COM_FORWARD_IKeyboard_PutUsageCode_TO_OBJ(obj) COM_FORWARD_IKeyboard_PutUsageCode_TO ((obj)->)
#define COM_FORWARD_IKeyboard_PutUsageCode_TO_BASE(base) COM_FORWARD_IKeyboard_PutUsageCode_TO (base::)
#define COM_FORWARD_IKeyboard_TO(smth) NS_FORWARD_IKEYBOARD (smth)
#define COM_FORWARD_IKeyboard_TO_OBJ(obj) COM_FORWARD_IKeyboard_TO ((obj)->)
#define COM_FORWARD_IKeyboard_TO_BASE(base) COM_FORWARD_IKeyboard_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IKeyboard;
%}

[
    uuid(1e775ea3-9070-4f9c-b0d5-53054496dbe0),
    scriptable
]
interface IMousePointerShape : nsISupports
{
    readonly attribute boolean visible;

    readonly attribute boolean alpha;

    readonly attribute unsigned long hotX;

    readonly attribute unsigned long hotY;

    readonly attribute unsigned long width;

    readonly attribute unsigned long height;

    void getShape (
        out unsigned long shapeSize,
        [array, size_is(shapeSize), retval] out octet shape
    );

    readonly attribute unsigned long InternalAndReservedAttribute1IMousePointerShape;

    readonly attribute unsigned long InternalAndReservedAttribute2IMousePointerShape;

    readonly attribute unsigned long InternalAndReservedAttribute3IMousePointerShape;

    readonly attribute unsigned long InternalAndReservedAttribute4IMousePointerShape;

}; /* interface IMousePointerShape */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IMousePointerShape_GETTER_Visible_TO(smth) NS_IMETHOD GetVisible (PRBool * aVisible) { return smth GetVisible (aVisible); }
#define COM_FORWARD_IMousePointerShape_GETTER_Visible_TO_OBJ(obj) COM_FORWARD_IMousePointerShape_GETTER_Visible_TO ((obj)->)
#define COM_FORWARD_IMousePointerShape_GETTER_Visible_TO_BASE(base) COM_FORWARD_IMousePointerShape_GETTER_Visible_TO (base::)
#define COM_FORWARD_IMousePointerShape_GETTER_Alpha_TO(smth) NS_IMETHOD GetAlpha (PRBool * aAlpha) { return smth GetAlpha (aAlpha); }
#define COM_FORWARD_IMousePointerShape_GETTER_Alpha_TO_OBJ(obj) COM_FORWARD_IMousePointerShape_GETTER_Alpha_TO ((obj)->)
#define COM_FORWARD_IMousePointerShape_GETTER_Alpha_TO_BASE(base) COM_FORWARD_IMousePointerShape_GETTER_Alpha_TO (base::)
#define COM_FORWARD_IMousePointerShape_GETTER_HotX_TO(smth) NS_IMETHOD GetHotX (PRUint32 * aHotX) { return smth GetHotX (aHotX); }
#define COM_FORWARD_IMousePointerShape_GETTER_HotX_TO_OBJ(obj) COM_FORWARD_IMousePointerShape_GETTER_HotX_TO ((obj)->)
#define COM_FORWARD_IMousePointerShape_GETTER_HotX_TO_BASE(base) COM_FORWARD_IMousePointerShape_GETTER_HotX_TO (base::)
#define COM_FORWARD_IMousePointerShape_GETTER_HotY_TO(smth) NS_IMETHOD GetHotY (PRUint32 * aHotY) { return smth GetHotY (aHotY); }
#define COM_FORWARD_IMousePointerShape_GETTER_HotY_TO_OBJ(obj) COM_FORWARD_IMousePointerShape_GETTER_HotY_TO ((obj)->)
#define COM_FORWARD_IMousePointerShape_GETTER_HotY_TO_BASE(base) COM_FORWARD_IMousePointerShape_GETTER_HotY_TO (base::)
#define COM_FORWARD_IMousePointerShape_GETTER_Width_TO(smth) NS_IMETHOD GetWidth (PRUint32 * aWidth) { return smth GetWidth (aWidth); }
#define COM_FORWARD_IMousePointerShape_GETTER_Width_TO_OBJ(obj) COM_FORWARD_IMousePointerShape_GETTER_Width_TO ((obj)->)
#define COM_FORWARD_IMousePointerShape_GETTER_Width_TO_BASE(base) COM_FORWARD_IMousePointerShape_GETTER_Width_TO (base::)
#define COM_FORWARD_IMousePointerShape_GETTER_Height_TO(smth) NS_IMETHOD GetHeight (PRUint32 * aHeight) { return smth GetHeight (aHeight); }
#define COM_FORWARD_IMousePointerShape_GETTER_Height_TO_OBJ(obj) COM_FORWARD_IMousePointerShape_GETTER_Height_TO ((obj)->)
#define COM_FORWARD_IMousePointerShape_GETTER_Height_TO_BASE(base) COM_FORWARD_IMousePointerShape_GETTER_Height_TO (base::)
#define COM_FORWARD_IMousePointerShape_GETTER_Shape_TO(smth) NS_IMETHOD GetShape (PRUint32 * aShapeSize, PRUint8 * * aShape) { return smth GetShape (aShapeSize, aShape); }
#define COM_FORWARD_IMousePointerShape_GETTER_Shape_TO_OBJ(obj) COM_FORWARD_IMousePointerShape_GETTER_Shape_TO ((obj)->)
#define COM_FORWARD_IMousePointerShape_GETTER_Shape_TO_BASE(base) COM_FORWARD_IMousePointerShape_GETTER_Shape_TO (base::)
#define COM_FORWARD_IMousePointerShape_TO(smth) NS_FORWARD_IMOUSEPOINTERSHAPE (smth)
#define COM_FORWARD_IMousePointerShape_TO_OBJ(obj) COM_FORWARD_IMousePointerShape_TO ((obj)->)
#define COM_FORWARD_IMousePointerShape_TO_BASE(base) COM_FORWARD_IMousePointerShape_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IMousePointerShape;
%}

[
    uuid(10cd08d0-e8b8-4838-b10c-45ba193734c1),
    scriptable
]
interface IMouse : nsISupports
{
    readonly attribute boolean absoluteSupported;

    readonly attribute boolean relativeSupported;

    readonly attribute boolean multiTouchSupported;

    readonly attribute boolean needsHostCursor;

    readonly attribute IMousePointerShape pointerShape;

    readonly attribute IEventSource eventSource;

    readonly attribute unsigned long InternalAndReservedAttribute1IMouse;

    readonly attribute unsigned long InternalAndReservedAttribute2IMouse;

    readonly attribute unsigned long InternalAndReservedAttribute3IMouse;

    readonly attribute unsigned long InternalAndReservedAttribute4IMouse;

    void putMouseEvent (
        in long dx,
        in long dy,
        in long dz,
        in long dw,
        in long buttonState
    );

    void putMouseEventAbsolute (
        in long x,
        in long y,
        in long dz,
        in long dw,
        in long buttonState
    );

    void putEventMultiTouch (
        in long count,
        in unsigned long contactsSize,
        [array, size_is(contactsSize)] in long long contacts,
        in unsigned long scanTime
    );

    void putEventMultiTouchString (
        in long count,
        in wstring contacts,
        in unsigned long scanTime
    );

    void InternalAndReservedMethod1IMouse();

    void InternalAndReservedMethod2IMouse();

    void InternalAndReservedMethod3IMouse();

    void InternalAndReservedMethod4IMouse();

}; /* interface IMouse */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IMouse_GETTER_AbsoluteSupported_TO(smth) NS_IMETHOD GetAbsoluteSupported (PRBool * aAbsoluteSupported) { return smth GetAbsoluteSupported (aAbsoluteSupported); }
#define COM_FORWARD_IMouse_GETTER_AbsoluteSupported_TO_OBJ(obj) COM_FORWARD_IMouse_GETTER_AbsoluteSupported_TO ((obj)->)
#define COM_FORWARD_IMouse_GETTER_AbsoluteSupported_TO_BASE(base) COM_FORWARD_IMouse_GETTER_AbsoluteSupported_TO (base::)
#define COM_FORWARD_IMouse_GETTER_RelativeSupported_TO(smth) NS_IMETHOD GetRelativeSupported (PRBool * aRelativeSupported) { return smth GetRelativeSupported (aRelativeSupported); }
#define COM_FORWARD_IMouse_GETTER_RelativeSupported_TO_OBJ(obj) COM_FORWARD_IMouse_GETTER_RelativeSupported_TO ((obj)->)
#define COM_FORWARD_IMouse_GETTER_RelativeSupported_TO_BASE(base) COM_FORWARD_IMouse_GETTER_RelativeSupported_TO (base::)
#define COM_FORWARD_IMouse_GETTER_MultiTouchSupported_TO(smth) NS_IMETHOD GetMultiTouchSupported (PRBool * aMultiTouchSupported) { return smth GetMultiTouchSupported (aMultiTouchSupported); }
#define COM_FORWARD_IMouse_GETTER_MultiTouchSupported_TO_OBJ(obj) COM_FORWARD_IMouse_GETTER_MultiTouchSupported_TO ((obj)->)
#define COM_FORWARD_IMouse_GETTER_MultiTouchSupported_TO_BASE(base) COM_FORWARD_IMouse_GETTER_MultiTouchSupported_TO (base::)
#define COM_FORWARD_IMouse_GETTER_NeedsHostCursor_TO(smth) NS_IMETHOD GetNeedsHostCursor (PRBool * aNeedsHostCursor) { return smth GetNeedsHostCursor (aNeedsHostCursor); }
#define COM_FORWARD_IMouse_GETTER_NeedsHostCursor_TO_OBJ(obj) COM_FORWARD_IMouse_GETTER_NeedsHostCursor_TO ((obj)->)
#define COM_FORWARD_IMouse_GETTER_NeedsHostCursor_TO_BASE(base) COM_FORWARD_IMouse_GETTER_NeedsHostCursor_TO (base::)
#define COM_FORWARD_IMouse_GETTER_PointerShape_TO(smth) NS_IMETHOD GetPointerShape (IMousePointerShape * * aPointerShape) { return smth GetPointerShape (aPointerShape); }
#define COM_FORWARD_IMouse_GETTER_PointerShape_TO_OBJ(obj) COM_FORWARD_IMouse_GETTER_PointerShape_TO ((obj)->)
#define COM_FORWARD_IMouse_GETTER_PointerShape_TO_BASE(base) COM_FORWARD_IMouse_GETTER_PointerShape_TO (base::)
#define COM_FORWARD_IMouse_GETTER_EventSource_TO(smth) NS_IMETHOD GetEventSource (IEventSource * * aEventSource) { return smth GetEventSource (aEventSource); }
#define COM_FORWARD_IMouse_GETTER_EventSource_TO_OBJ(obj) COM_FORWARD_IMouse_GETTER_EventSource_TO ((obj)->)
#define COM_FORWARD_IMouse_GETTER_EventSource_TO_BASE(base) COM_FORWARD_IMouse_GETTER_EventSource_TO (base::)
#define COM_FORWARD_IMouse_PutMouseEvent_TO(smth) NS_IMETHOD PutMouseEvent (PRInt32 aDx, PRInt32 aDy, PRInt32 aDz, PRInt32 aDw, PRInt32 aButtonState) { return smth PutMouseEvent (aDx, aDy, aDz, aDw, aButtonState); }
#define COM_FORWARD_IMouse_PutMouseEvent_TO_OBJ(obj) COM_FORWARD_IMouse_PutMouseEvent_TO ((obj)->)
#define COM_FORWARD_IMouse_PutMouseEvent_TO_BASE(base) COM_FORWARD_IMouse_PutMouseEvent_TO (base::)
#define COM_FORWARD_IMouse_PutMouseEventAbsolute_TO(smth) NS_IMETHOD PutMouseEventAbsolute (PRInt32 aX, PRInt32 aY, PRInt32 aDz, PRInt32 aDw, PRInt32 aButtonState) { return smth PutMouseEventAbsolute (aX, aY, aDz, aDw, aButtonState); }
#define COM_FORWARD_IMouse_PutMouseEventAbsolute_TO_OBJ(obj) COM_FORWARD_IMouse_PutMouseEventAbsolute_TO ((obj)->)
#define COM_FORWARD_IMouse_PutMouseEventAbsolute_TO_BASE(base) COM_FORWARD_IMouse_PutMouseEventAbsolute_TO (base::)
#define COM_FORWARD_IMouse_PutEventMultiTouch_TO(smth) NS_IMETHOD PutEventMultiTouch (PRInt32 aCount, PRUint32 aContactsSize, PRInt64 * aContacts, PRUint32 aScanTime) { return smth PutEventMultiTouch (aCount, aContactsSize+++, aContacts, aScanTime); }
#define COM_FORWARD_IMouse_PutEventMultiTouch_TO_OBJ(obj) COM_FORWARD_IMouse_PutEventMultiTouch_TO ((obj)->)
#define COM_FORWARD_IMouse_PutEventMultiTouch_TO_BASE(base) COM_FORWARD_IMouse_PutEventMultiTouch_TO (base::)
#define COM_FORWARD_IMouse_PutEventMultiTouchString_TO(smth) NS_IMETHOD PutEventMultiTouchString (PRInt32 aCount, PRUnichar * aContacts, PRUint32 aScanTime) { return smth PutEventMultiTouchString (aCount, aContacts, aScanTime); }
#define COM_FORWARD_IMouse_PutEventMultiTouchString_TO_OBJ(obj) COM_FORWARD_IMouse_PutEventMultiTouchString_TO ((obj)->)
#define COM_FORWARD_IMouse_PutEventMultiTouchString_TO_BASE(base) COM_FORWARD_IMouse_PutEventMultiTouchString_TO (base::)
#define COM_FORWARD_IMouse_TO(smth) NS_FORWARD_IMOUSE (smth)
#define COM_FORWARD_IMouse_TO_OBJ(obj) COM_FORWARD_IMouse_TO ((obj)->)
#define COM_FORWARD_IMouse_TO_BASE(base) COM_FORWARD_IMouse_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IMouse;
%}

[
    uuid(5094f67a-8084-11e9-b185-dbe296e54799),
    scriptable
]
interface IDisplaySourceBitmap : nsISupports
{
    readonly attribute unsigned long screenId;

    [noscript]
    void queryBitmapInfo (
        out octetPtr address,
        out unsigned long width,
        out unsigned long height,
        out unsigned long bitsPerPixel,
        out unsigned long bytesPerLine,
        out BitmapFormat_T bitmapFormat
    );

}; /* interface IDisplaySourceBitmap */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IDisplaySourceBitmap_GETTER_ScreenId_TO(smth) NS_IMETHOD GetScreenId (PRUint32 * aScreenId) { return smth GetScreenId (aScreenId); }
#define COM_FORWARD_IDisplaySourceBitmap_GETTER_ScreenId_TO_OBJ(obj) COM_FORWARD_IDisplaySourceBitmap_GETTER_ScreenId_TO ((obj)->)
#define COM_FORWARD_IDisplaySourceBitmap_GETTER_ScreenId_TO_BASE(base) COM_FORWARD_IDisplaySourceBitmap_GETTER_ScreenId_TO (base::)
#define COM_FORWARD_IDisplaySourceBitmap_QueryBitmapInfo_TO(smth) NS_IMETHOD QueryBitmapInfo (PRUint8 * * aAddress, PRUint32 * aWidth, PRUint32 * aHeight, PRUint32 * aBitsPerPixel, PRUint32 * aBytesPerLine, PRUint32 * aBitmapFormat) { return smth QueryBitmapInfo (aAddress, aWidth, aHeight, aBitsPerPixel, aBytesPerLine, aBitmapFormat); }
#define COM_FORWARD_IDisplaySourceBitmap_QueryBitmapInfo_TO_OBJ(obj) COM_FORWARD_IDisplaySourceBitmap_QueryBitmapInfo_TO ((obj)->)
#define COM_FORWARD_IDisplaySourceBitmap_QueryBitmapInfo_TO_BASE(base) COM_FORWARD_IDisplaySourceBitmap_QueryBitmapInfo_TO (base::)
#define COM_FORWARD_IDisplaySourceBitmap_TO(smth) NS_FORWARD_IDISPLAYSOURCEBITMAP (smth)
#define COM_FORWARD_IDisplaySourceBitmap_TO_OBJ(obj) COM_FORWARD_IDisplaySourceBitmap_TO ((obj)->)
#define COM_FORWARD_IDisplaySourceBitmap_TO_BASE(base) COM_FORWARD_IDisplaySourceBitmap_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IDisplaySourceBitmap;
%}

[
    uuid(1e8d3f27-b45c-48ae-8b36-d35e83d207aa),
    scriptable
]
interface IFramebuffer : nsISupports
{
    readonly attribute unsigned long width;

    readonly attribute unsigned long height;

    readonly attribute unsigned long bitsPerPixel;

    readonly attribute unsigned long bytesPerLine;

    readonly attribute BitmapFormat_T pixelFormat;

    readonly attribute unsigned long heightReduction;

    readonly attribute IFramebufferOverlay overlay;

    readonly attribute long long winId;

    void getCapabilities (
        out unsigned long capabilitiesSize,
        [array, size_is(capabilitiesSize), retval] out FramebufferCapabilities_T capabilities
    );

    void notifyUpdate (
        in unsigned long x,
        in unsigned long y,
        in unsigned long width,
        in unsigned long height
    );

    void notifyUpdateImage (
        in unsigned long x,
        in unsigned long y,
        in unsigned long width,
        in unsigned long height,
        in unsigned long imageSize,
        [array, size_is(imageSize)] in octet image
    );

    void notifyChange (
        in unsigned long screenId,
        in unsigned long xOrigin,
        in unsigned long yOrigin,
        in unsigned long width,
        in unsigned long height
    );

    void videoModeSupported (
        in unsigned long width,
        in unsigned long height,
        in unsigned long bpp,
        [retval] out boolean supported
    );

    [noscript]
    void getVisibleRegion (
        in octetPtr rectangles,
        in unsigned long count,
        [retval] out unsigned long countCopied
    );

    [noscript]
    void setVisibleRegion (
        in octetPtr rectangles,
        in unsigned long count
    );

    [noscript]
    void processVHWACommand (
        in octetPtr command,
        in long enmCmd,
        in boolean fromGuest
    );

    void notify3DEvent (
        in unsigned long type,
        in unsigned long dataSize,
        [array, size_is(dataSize)] in octet data
    );

}; /* interface IFramebuffer */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IFramebuffer_GETTER_Width_TO(smth) NS_IMETHOD GetWidth (PRUint32 * aWidth) { return smth GetWidth (aWidth); }
#define COM_FORWARD_IFramebuffer_GETTER_Width_TO_OBJ(obj) COM_FORWARD_IFramebuffer_GETTER_Width_TO ((obj)->)
#define COM_FORWARD_IFramebuffer_GETTER_Width_TO_BASE(base) COM_FORWARD_IFramebuffer_GETTER_Width_TO (base::)
#define COM_FORWARD_IFramebuffer_GETTER_Height_TO(smth) NS_IMETHOD GetHeight (PRUint32 * aHeight) { return smth GetHeight (aHeight); }
#define COM_FORWARD_IFramebuffer_GETTER_Height_TO_OBJ(obj) COM_FORWARD_IFramebuffer_GETTER_Height_TO ((obj)->)
#define COM_FORWARD_IFramebuffer_GETTER_Height_TO_BASE(base) COM_FORWARD_IFramebuffer_GETTER_Height_TO (base::)
#define COM_FORWARD_IFramebuffer_GETTER_BitsPerPixel_TO(smth) NS_IMETHOD GetBitsPerPixel (PRUint32 * aBitsPerPixel) { return smth GetBitsPerPixel (aBitsPerPixel); }
#define COM_FORWARD_IFramebuffer_GETTER_BitsPerPixel_TO_OBJ(obj) COM_FORWARD_IFramebuffer_GETTER_BitsPerPixel_TO ((obj)->)
#define COM_FORWARD_IFramebuffer_GETTER_BitsPerPixel_TO_BASE(base) COM_FORWARD_IFramebuffer_GETTER_BitsPerPixel_TO (base::)
#define COM_FORWARD_IFramebuffer_GETTER_BytesPerLine_TO(smth) NS_IMETHOD GetBytesPerLine (PRUint32 * aBytesPerLine) { return smth GetBytesPerLine (aBytesPerLine); }
#define COM_FORWARD_IFramebuffer_GETTER_BytesPerLine_TO_OBJ(obj) COM_FORWARD_IFramebuffer_GETTER_BytesPerLine_TO ((obj)->)
#define COM_FORWARD_IFramebuffer_GETTER_BytesPerLine_TO_BASE(base) COM_FORWARD_IFramebuffer_GETTER_BytesPerLine_TO (base::)
#define COM_FORWARD_IFramebuffer_GETTER_PixelFormat_TO(smth) NS_IMETHOD GetPixelFormat (PRUint32 * aPixelFormat) { return smth GetPixelFormat (aPixelFormat); }
#define COM_FORWARD_IFramebuffer_GETTER_PixelFormat_TO_OBJ(obj) COM_FORWARD_IFramebuffer_GETTER_PixelFormat_TO ((obj)->)
#define COM_FORWARD_IFramebuffer_GETTER_PixelFormat_TO_BASE(base) COM_FORWARD_IFramebuffer_GETTER_PixelFormat_TO (base::)
#define COM_FORWARD_IFramebuffer_GETTER_HeightReduction_TO(smth) NS_IMETHOD GetHeightReduction (PRUint32 * aHeightReduction) { return smth GetHeightReduction (aHeightReduction); }
#define COM_FORWARD_IFramebuffer_GETTER_HeightReduction_TO_OBJ(obj) COM_FORWARD_IFramebuffer_GETTER_HeightReduction_TO ((obj)->)
#define COM_FORWARD_IFramebuffer_GETTER_HeightReduction_TO_BASE(base) COM_FORWARD_IFramebuffer_GETTER_HeightReduction_TO (base::)
#define COM_FORWARD_IFramebuffer_GETTER_Overlay_TO(smth) NS_IMETHOD GetOverlay (IFramebufferOverlay * * aOverlay) { return smth GetOverlay (aOverlay); }
#define COM_FORWARD_IFramebuffer_GETTER_Overlay_TO_OBJ(obj) COM_FORWARD_IFramebuffer_GETTER_Overlay_TO ((obj)->)
#define COM_FORWARD_IFramebuffer_GETTER_Overlay_TO_BASE(base) COM_FORWARD_IFramebuffer_GETTER_Overlay_TO (base::)
#define COM_FORWARD_IFramebuffer_GETTER_WinId_TO(smth) NS_IMETHOD GetWinId (PRInt64 * aWinId) { return smth GetWinId (aWinId); }
#define COM_FORWARD_IFramebuffer_GETTER_WinId_TO_OBJ(obj) COM_FORWARD_IFramebuffer_GETTER_WinId_TO ((obj)->)
#define COM_FORWARD_IFramebuffer_GETTER_WinId_TO_BASE(base) COM_FORWARD_IFramebuffer_GETTER_WinId_TO (base::)
#define COM_FORWARD_IFramebuffer_GETTER_Capabilities_TO(smth) NS_IMETHOD GetCapabilities (PRUint32 * aCapabilitiesSize, PRUint32 * * aCapabilities) { return smth GetCapabilities (aCapabilitiesSize, aCapabilities); }
#define COM_FORWARD_IFramebuffer_GETTER_Capabilities_TO_OBJ(obj) COM_FORWARD_IFramebuffer_GETTER_Capabilities_TO ((obj)->)
#define COM_FORWARD_IFramebuffer_GETTER_Capabilities_TO_BASE(base) COM_FORWARD_IFramebuffer_GETTER_Capabilities_TO (base::)
#define COM_FORWARD_IFramebuffer_NotifyUpdate_TO(smth) NS_IMETHOD NotifyUpdate (PRUint32 aX, PRUint32 aY, PRUint32 aWidth, PRUint32 aHeight) { return smth NotifyUpdate (aX, aY, aWidth, aHeight); }
#define COM_FORWARD_IFramebuffer_NotifyUpdate_TO_OBJ(obj) COM_FORWARD_IFramebuffer_NotifyUpdate_TO ((obj)->)
#define COM_FORWARD_IFramebuffer_NotifyUpdate_TO_BASE(base) COM_FORWARD_IFramebuffer_NotifyUpdate_TO (base::)
#define COM_FORWARD_IFramebuffer_NotifyUpdateImage_TO(smth) NS_IMETHOD NotifyUpdateImage (PRUint32 aX, PRUint32 aY, PRUint32 aWidth, PRUint32 aHeight, PRUint32 aImageSize, PRUint8 * aImage) { return smth NotifyUpdateImage (aX, aY, aWidth, aHeight, aImageSize, aImage); }
#define COM_FORWARD_IFramebuffer_NotifyUpdateImage_TO_OBJ(obj) COM_FORWARD_IFramebuffer_NotifyUpdateImage_TO ((obj)->)
#define COM_FORWARD_IFramebuffer_NotifyUpdateImage_TO_BASE(base) COM_FORWARD_IFramebuffer_NotifyUpdateImage_TO (base::)
#define COM_FORWARD_IFramebuffer_NotifyChange_TO(smth) NS_IMETHOD NotifyChange (PRUint32 aScreenId, PRUint32 aXOrigin, PRUint32 aYOrigin, PRUint32 aWidth, PRUint32 aHeight) { return smth NotifyChange (aScreenId, aXOrigin, aYOrigin, aWidth, aHeight); }
#define COM_FORWARD_IFramebuffer_NotifyChange_TO_OBJ(obj) COM_FORWARD_IFramebuffer_NotifyChange_TO ((obj)->)
#define COM_FORWARD_IFramebuffer_NotifyChange_TO_BASE(base) COM_FORWARD_IFramebuffer_NotifyChange_TO (base::)
#define COM_FORWARD_IFramebuffer_VideoModeSupported_TO(smth) NS_IMETHOD VideoModeSupported (PRUint32 aWidth, PRUint32 aHeight, PRUint32 aBpp, PRBool * aSupported) { return smth VideoModeSupported (aWidth, aHeight, aBpp, aSupported); }
#define COM_FORWARD_IFramebuffer_VideoModeSupported_TO_OBJ(obj) COM_FORWARD_IFramebuffer_VideoModeSupported_TO ((obj)->)
#define COM_FORWARD_IFramebuffer_VideoModeSupported_TO_BASE(base) COM_FORWARD_IFramebuffer_VideoModeSupported_TO (base::)
#define COM_FORWARD_IFramebuffer_GetVisibleRegion_TO(smth) NS_IMETHOD GetVisibleRegion (PRUint8 * aRectangles, PRUint32 aCount, PRUint32 * aCountCopied) { return smth GetVisibleRegion (aRectangles, aCount, aCountCopied); }
#define COM_FORWARD_IFramebuffer_GetVisibleRegion_TO_OBJ(obj) COM_FORWARD_IFramebuffer_GetVisibleRegion_TO ((obj)->)
#define COM_FORWARD_IFramebuffer_GetVisibleRegion_TO_BASE(base) COM_FORWARD_IFramebuffer_GetVisibleRegion_TO (base::)
#define COM_FORWARD_IFramebuffer_SetVisibleRegion_TO(smth) NS_IMETHOD SetVisibleRegion (PRUint8 * aRectangles, PRUint32 aCount) { return smth SetVisibleRegion (aRectangles, aCount); }
#define COM_FORWARD_IFramebuffer_SetVisibleRegion_TO_OBJ(obj) COM_FORWARD_IFramebuffer_SetVisibleRegion_TO ((obj)->)
#define COM_FORWARD_IFramebuffer_SetVisibleRegion_TO_BASE(base) COM_FORWARD_IFramebuffer_SetVisibleRegion_TO (base::)
#define COM_FORWARD_IFramebuffer_ProcessVHWACommand_TO(smth) NS_IMETHOD ProcessVHWACommand (PRUint8 * aCommand, PRInt32 aEnmCmd, PRBool aFromGuest) { return smth ProcessVHWACommand (aCommand, aEnmCmd, aFromGuest); }
#define COM_FORWARD_IFramebuffer_ProcessVHWACommand_TO_OBJ(obj) COM_FORWARD_IFramebuffer_ProcessVHWACommand_TO ((obj)->)
#define COM_FORWARD_IFramebuffer_ProcessVHWACommand_TO_BASE(base) COM_FORWARD_IFramebuffer_ProcessVHWACommand_TO (base::)
#define COM_FORWARD_IFramebuffer_Notify3DEvent_TO(smth) NS_IMETHOD Notify3DEvent (PRUint32 aType, PRUint32 aDataSize, PRUint8 * aData) { return smth Notify3DEvent (aType, aDataSize, aData); }
#define COM_FORWARD_IFramebuffer_Notify3DEvent_TO_OBJ(obj) COM_FORWARD_IFramebuffer_Notify3DEvent_TO ((obj)->)
#define COM_FORWARD_IFramebuffer_Notify3DEvent_TO_BASE(base) COM_FORWARD_IFramebuffer_Notify3DEvent_TO (base::)
#define COM_FORWARD_IFramebuffer_TO(smth) NS_FORWARD_IFRAMEBUFFER (smth)
#define COM_FORWARD_IFramebuffer_TO_OBJ(obj) COM_FORWARD_IFramebuffer_TO ((obj)->)
#define COM_FORWARD_IFramebuffer_TO_BASE(base) COM_FORWARD_IFramebuffer_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IFramebuffer;
%}

[
    uuid(af398a9a-6b76-4805-8fab-00a9dcf4732b),
    scriptable
]
interface IFramebufferOverlay : IFramebuffer
{
    readonly attribute unsigned long x;

    readonly attribute unsigned long y;

    attribute boolean visible;

    attribute unsigned long alpha;

    void move (
        in unsigned long x,
        in unsigned long y
    );

}; /* interface IFramebufferOverlay */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IFramebufferOverlay_GETTER_X_TO(smth) NS_IMETHOD GetX (PRUint32 * aX) { return smth GetX (aX); }
#define COM_FORWARD_IFramebufferOverlay_GETTER_X_TO_OBJ(obj) COM_FORWARD_IFramebufferOverlay_GETTER_X_TO ((obj)->)
#define COM_FORWARD_IFramebufferOverlay_GETTER_X_TO_BASE(base) COM_FORWARD_IFramebufferOverlay_GETTER_X_TO (base::)
#define COM_FORWARD_IFramebufferOverlay_GETTER_Y_TO(smth) NS_IMETHOD GetY (PRUint32 * aY) { return smth GetY (aY); }
#define COM_FORWARD_IFramebufferOverlay_GETTER_Y_TO_OBJ(obj) COM_FORWARD_IFramebufferOverlay_GETTER_Y_TO ((obj)->)
#define COM_FORWARD_IFramebufferOverlay_GETTER_Y_TO_BASE(base) COM_FORWARD_IFramebufferOverlay_GETTER_Y_TO (base::)
#define COM_FORWARD_IFramebufferOverlay_GETTER_Visible_TO(smth) NS_IMETHOD GetVisible (PRBool * aVisible) { return smth GetVisible (aVisible); }
#define COM_FORWARD_IFramebufferOverlay_GETTER_Visible_TO_OBJ(obj) COM_FORWARD_IFramebufferOverlay_GETTER_Visible_TO ((obj)->)
#define COM_FORWARD_IFramebufferOverlay_GETTER_Visible_TO_BASE(base) COM_FORWARD_IFramebufferOverlay_GETTER_Visible_TO (base::)
#define COM_FORWARD_IFramebufferOverlay_SETTER_Visible_TO(smth) NS_IMETHOD SetVisible (PRBool aVisible) { return smth SetVisible (aVisible); }
#define COM_FORWARD_IFramebufferOverlay_SETTER_Visible_TO_OBJ(obj) COM_FORWARD_IFramebufferOverlay_SETTER_Visible_TO ((obj)->)
#define COM_FORWARD_IFramebufferOverlay_SETTER_Visible_TO_BASE(base) COM_FORWARD_IFramebufferOverlay_SETTER_Visible_TO (base::)
#define COM_FORWARD_IFramebufferOverlay_GETTER_Alpha_TO(smth) NS_IMETHOD GetAlpha (PRUint32 * aAlpha) { return smth GetAlpha (aAlpha); }
#define COM_FORWARD_IFramebufferOverlay_GETTER_Alpha_TO_OBJ(obj) COM_FORWARD_IFramebufferOverlay_GETTER_Alpha_TO ((obj)->)
#define COM_FORWARD_IFramebufferOverlay_GETTER_Alpha_TO_BASE(base) COM_FORWARD_IFramebufferOverlay_GETTER_Alpha_TO (base::)
#define COM_FORWARD_IFramebufferOverlay_SETTER_Alpha_TO(smth) NS_IMETHOD SetAlpha (PRUint32 aAlpha) { return smth SetAlpha (aAlpha); }
#define COM_FORWARD_IFramebufferOverlay_SETTER_Alpha_TO_OBJ(obj) COM_FORWARD_IFramebufferOverlay_SETTER_Alpha_TO ((obj)->)
#define COM_FORWARD_IFramebufferOverlay_SETTER_Alpha_TO_BASE(base) COM_FORWARD_IFramebufferOverlay_SETTER_Alpha_TO (base::)
#define COM_FORWARD_IFramebufferOverlay_Move_TO(smth) NS_IMETHOD Move (PRUint32 aX, PRUint32 aY) { return smth Move (aX, aY); }
#define COM_FORWARD_IFramebufferOverlay_Move_TO_OBJ(obj) COM_FORWARD_IFramebufferOverlay_Move_TO ((obj)->)
#define COM_FORWARD_IFramebufferOverlay_Move_TO_BASE(base) COM_FORWARD_IFramebufferOverlay_Move_TO (base::)
#define COM_FORWARD_IFramebufferOverlay_TO(smth) NS_FORWARD_IFRAMEBUFFEROVERLAY (smth)
#define COM_FORWARD_IFramebufferOverlay_TO_OBJ(obj) COM_FORWARD_IFramebufferOverlay_TO ((obj)->)
#define COM_FORWARD_IFramebufferOverlay_TO_BASE(base) COM_FORWARD_IFramebufferOverlay_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IFramebufferOverlay;
%}

[
    uuid(6b2f98f8-9641-4397-854a-040439d0114b),
    scriptable
]
interface IGuestScreenInfo : nsISupports
{
    readonly attribute unsigned long screenId;

    readonly attribute GuestMonitorStatus_T guestMonitorStatus;

    readonly attribute boolean primary;

    readonly attribute boolean origin;

    readonly attribute long originX;

    readonly attribute long originY;

    readonly attribute unsigned long width;

    readonly attribute unsigned long height;

    readonly attribute unsigned long bitsPerPixel;

    readonly attribute wstring extendedInfo;

}; /* interface IGuestScreenInfo */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IGuestScreenInfo_GETTER_ScreenId_TO(smth) NS_IMETHOD GetScreenId (PRUint32 * aScreenId) { return smth GetScreenId (aScreenId); }
#define COM_FORWARD_IGuestScreenInfo_GETTER_ScreenId_TO_OBJ(obj) COM_FORWARD_IGuestScreenInfo_GETTER_ScreenId_TO ((obj)->)
#define COM_FORWARD_IGuestScreenInfo_GETTER_ScreenId_TO_BASE(base) COM_FORWARD_IGuestScreenInfo_GETTER_ScreenId_TO (base::)
#define COM_FORWARD_IGuestScreenInfo_GETTER_GuestMonitorStatus_TO(smth) NS_IMETHOD GetGuestMonitorStatus (PRUint32 * aGuestMonitorStatus) { return smth GetGuestMonitorStatus (aGuestMonitorStatus); }
#define COM_FORWARD_IGuestScreenInfo_GETTER_GuestMonitorStatus_TO_OBJ(obj) COM_FORWARD_IGuestScreenInfo_GETTER_GuestMonitorStatus_TO ((obj)->)
#define COM_FORWARD_IGuestScreenInfo_GETTER_GuestMonitorStatus_TO_BASE(base) COM_FORWARD_IGuestScreenInfo_GETTER_GuestMonitorStatus_TO (base::)
#define COM_FORWARD_IGuestScreenInfo_GETTER_Primary_TO(smth) NS_IMETHOD GetPrimary (PRBool * aPrimary) { return smth GetPrimary (aPrimary); }
#define COM_FORWARD_IGuestScreenInfo_GETTER_Primary_TO_OBJ(obj) COM_FORWARD_IGuestScreenInfo_GETTER_Primary_TO ((obj)->)
#define COM_FORWARD_IGuestScreenInfo_GETTER_Primary_TO_BASE(base) COM_FORWARD_IGuestScreenInfo_GETTER_Primary_TO (base::)
#define COM_FORWARD_IGuestScreenInfo_GETTER_Origin_TO(smth) NS_IMETHOD GetOrigin (PRBool * aOrigin) { return smth GetOrigin (aOrigin); }
#define COM_FORWARD_IGuestScreenInfo_GETTER_Origin_TO_OBJ(obj) COM_FORWARD_IGuestScreenInfo_GETTER_Origin_TO ((obj)->)
#define COM_FORWARD_IGuestScreenInfo_GETTER_Origin_TO_BASE(base) COM_FORWARD_IGuestScreenInfo_GETTER_Origin_TO (base::)
#define COM_FORWARD_IGuestScreenInfo_GETTER_OriginX_TO(smth) NS_IMETHOD GetOriginX (PRInt32 * aOriginX) { return smth GetOriginX (aOriginX); }
#define COM_FORWARD_IGuestScreenInfo_GETTER_OriginX_TO_OBJ(obj) COM_FORWARD_IGuestScreenInfo_GETTER_OriginX_TO ((obj)->)
#define COM_FORWARD_IGuestScreenInfo_GETTER_OriginX_TO_BASE(base) COM_FORWARD_IGuestScreenInfo_GETTER_OriginX_TO (base::)
#define COM_FORWARD_IGuestScreenInfo_GETTER_OriginY_TO(smth) NS_IMETHOD GetOriginY (PRInt32 * aOriginY) { return smth GetOriginY (aOriginY); }
#define COM_FORWARD_IGuestScreenInfo_GETTER_OriginY_TO_OBJ(obj) COM_FORWARD_IGuestScreenInfo_GETTER_OriginY_TO ((obj)->)
#define COM_FORWARD_IGuestScreenInfo_GETTER_OriginY_TO_BASE(base) COM_FORWARD_IGuestScreenInfo_GETTER_OriginY_TO (base::)
#define COM_FORWARD_IGuestScreenInfo_GETTER_Width_TO(smth) NS_IMETHOD GetWidth (PRUint32 * aWidth) { return smth GetWidth (aWidth); }
#define COM_FORWARD_IGuestScreenInfo_GETTER_Width_TO_OBJ(obj) COM_FORWARD_IGuestScreenInfo_GETTER_Width_TO ((obj)->)
#define COM_FORWARD_IGuestScreenInfo_GETTER_Width_TO_BASE(base) COM_FORWARD_IGuestScreenInfo_GETTER_Width_TO (base::)
#define COM_FORWARD_IGuestScreenInfo_GETTER_Height_TO(smth) NS_IMETHOD GetHeight (PRUint32 * aHeight) { return smth GetHeight (aHeight); }
#define COM_FORWARD_IGuestScreenInfo_GETTER_Height_TO_OBJ(obj) COM_FORWARD_IGuestScreenInfo_GETTER_Height_TO ((obj)->)
#define COM_FORWARD_IGuestScreenInfo_GETTER_Height_TO_BASE(base) COM_FORWARD_IGuestScreenInfo_GETTER_Height_TO (base::)
#define COM_FORWARD_IGuestScreenInfo_GETTER_BitsPerPixel_TO(smth) NS_IMETHOD GetBitsPerPixel (PRUint32 * aBitsPerPixel) { return smth GetBitsPerPixel (aBitsPerPixel); }
#define COM_FORWARD_IGuestScreenInfo_GETTER_BitsPerPixel_TO_OBJ(obj) COM_FORWARD_IGuestScreenInfo_GETTER_BitsPerPixel_TO ((obj)->)
#define COM_FORWARD_IGuestScreenInfo_GETTER_BitsPerPixel_TO_BASE(base) COM_FORWARD_IGuestScreenInfo_GETTER_BitsPerPixel_TO (base::)
#define COM_FORWARD_IGuestScreenInfo_GETTER_ExtendedInfo_TO(smth) NS_IMETHOD GetExtendedInfo (PRUnichar * * aExtendedInfo) { return smth GetExtendedInfo (aExtendedInfo); }
#define COM_FORWARD_IGuestScreenInfo_GETTER_ExtendedInfo_TO_OBJ(obj) COM_FORWARD_IGuestScreenInfo_GETTER_ExtendedInfo_TO ((obj)->)
#define COM_FORWARD_IGuestScreenInfo_GETTER_ExtendedInfo_TO_BASE(base) COM_FORWARD_IGuestScreenInfo_GETTER_ExtendedInfo_TO (base::)
#define COM_FORWARD_IGuestScreenInfo_TO(smth) NS_FORWARD_IGUESTSCREENINFO (smth)
#define COM_FORWARD_IGuestScreenInfo_TO_OBJ(obj) COM_FORWARD_IGuestScreenInfo_TO ((obj)->)
#define COM_FORWARD_IGuestScreenInfo_TO_BASE(base) COM_FORWARD_IGuestScreenInfo_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestScreenInfo;
%}

[
    uuid(4680b2de-8690-11e9-b83d-5719e53cf1de),
    scriptable
]
interface IDisplay : nsISupports
{
    void getGuestScreenLayout (
        out unsigned long guestScreenLayoutSize,
        [array, size_is(guestScreenLayoutSize), retval] out IGuestScreenInfo guestScreenLayout
    );

    readonly attribute unsigned long InternalAndReservedAttribute1IDisplay;

    readonly attribute unsigned long InternalAndReservedAttribute2IDisplay;

    readonly attribute unsigned long InternalAndReservedAttribute3IDisplay;

    readonly attribute unsigned long InternalAndReservedAttribute4IDisplay;

    readonly attribute unsigned long InternalAndReservedAttribute5IDisplay;

    readonly attribute unsigned long InternalAndReservedAttribute6IDisplay;

    readonly attribute unsigned long InternalAndReservedAttribute7IDisplay;

    readonly attribute unsigned long InternalAndReservedAttribute8IDisplay;

    readonly attribute unsigned long InternalAndReservedAttribute9IDisplay;

    readonly attribute unsigned long InternalAndReservedAttribute10IDisplay;

    readonly attribute unsigned long InternalAndReservedAttribute11IDisplay;

    readonly attribute unsigned long InternalAndReservedAttribute12IDisplay;

    readonly attribute unsigned long InternalAndReservedAttribute13IDisplay;

    readonly attribute unsigned long InternalAndReservedAttribute14IDisplay;

    readonly attribute unsigned long InternalAndReservedAttribute15IDisplay;

    readonly attribute unsigned long InternalAndReservedAttribute16IDisplay;

    void getScreenResolution (
        in unsigned long screenId,
        out unsigned long width,
        out unsigned long height,
        out unsigned long bitsPerPixel,
        out long xOrigin,
        out long yOrigin,
        out GuestMonitorStatus_T guestMonitorStatus
    );

    void attachFramebuffer (
        in unsigned long screenId,
        in IFramebuffer framebuffer,
        [retval] out wstring id
    );

    void detachFramebuffer (
        in unsigned long screenId,
        in wstring id
    );

    void queryFramebuffer (
        in unsigned long screenId,
        [retval] out IFramebuffer framebuffer
    );

    void setVideoModeHint (
        in unsigned long display,
        in boolean enabled,
        in boolean changeOrigin,
        in long originX,
        in long originY,
        in unsigned long width,
        in unsigned long height,
        in unsigned long bitsPerPixel,
        in boolean notify
    );

    void getVideoModeHint (
        in unsigned long display,
        out boolean enabled,
        out boolean changeOrigin,
        out long originX,
        out long originY,
        out unsigned long width,
        out unsigned long height,
        out unsigned long bitsPerPixel
    );

    void setSeamlessMode (
        in boolean enabled
    );

    [noscript]
    void takeScreenShot (
        in unsigned long screenId,
        in octetPtr address,
        in unsigned long width,
        in unsigned long height,
        in BitmapFormat_T bitmapFormat
    );

    void takeScreenShotToArray (
        in unsigned long screenId,
        in unsigned long width,
        in unsigned long height,
        in BitmapFormat_T bitmapFormat,
        out unsigned long screenDataSize,
        [array, size_is(screenDataSize) , retval] out octet screenData
    );

    [noscript]
    void drawToScreen (
        in unsigned long screenId,
        in octetPtr address,
        in unsigned long x,
        in unsigned long y,
        in unsigned long width,
        in unsigned long height
    );

    void invalidateAndUpdate();

    void invalidateAndUpdateScreen (
        in unsigned long screenId
    );

    [noscript]
    void completeVHWACommand (
        in octetPtr command
    );

    void viewportChanged (
        in unsigned long screenId,
        in unsigned long x,
        in unsigned long y,
        in unsigned long width,
        in unsigned long height
    );

    void querySourceBitmap (
        in unsigned long screenId,
        out IDisplaySourceBitmap displaySourceBitmap
    );

    void notifyScaleFactorChange (
        in unsigned long screenId,
        in unsigned long u32ScaleFactorWMultiplied,
        in unsigned long u32ScaleFactorHMultiplied
    );

    void notifyHiDPIOutputPolicyChange (
        in boolean fUnscaledHiDPI
    );

    void setScreenLayout (
        in ScreenLayoutMode_T screenLayoutMode,
        in unsigned long guestScreenInfoSize,
        [array, size_is(guestScreenInfoSize)] in IGuestScreenInfo guestScreenInfo
    );

    void detachScreens (
        in unsigned long screenIdsSize,
        [array, size_is(screenIdsSize)] in long screenIds
    );

    void createGuestScreenInfo (
        in unsigned long display,
        in GuestMonitorStatus_T status,
        in boolean primary,
        in boolean changeOrigin,
        in long originX,
        in long originY,
        in unsigned long width,
        in unsigned long height,
        in unsigned long bitsPerPixel,
        [retval] out IGuestScreenInfo guestScreenInfo
    );

    void InternalAndReservedMethod1IDisplay();

    void InternalAndReservedMethod2IDisplay();

    void InternalAndReservedMethod3IDisplay();

    void InternalAndReservedMethod4IDisplay();

    void InternalAndReservedMethod5IDisplay();

    void InternalAndReservedMethod6IDisplay();

    void InternalAndReservedMethod7IDisplay();

    void InternalAndReservedMethod8IDisplay();

}; /* interface IDisplay */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IDisplay_GETTER_GuestScreenLayout_TO(smth) NS_IMETHOD GetGuestScreenLayout (PRUint32 * aGuestScreenLayoutSize, IGuestScreenInfo * * * aGuestScreenLayout) { return smth GetGuestScreenLayout (aGuestScreenLayoutSize, aGuestScreenLayout); }
#define COM_FORWARD_IDisplay_GETTER_GuestScreenLayout_TO_OBJ(obj) COM_FORWARD_IDisplay_GETTER_GuestScreenLayout_TO ((obj)->)
#define COM_FORWARD_IDisplay_GETTER_GuestScreenLayout_TO_BASE(base) COM_FORWARD_IDisplay_GETTER_GuestScreenLayout_TO (base::)
#define COM_FORWARD_IDisplay_GetScreenResolution_TO(smth) NS_IMETHOD GetScreenResolution (PRUint32 aScreenId, PRUint32 * aWidth, PRUint32 * aHeight, PRUint32 * aBitsPerPixel, PRInt32 * aXOrigin, PRInt32 * aYOrigin, PRUint32 * aGuestMonitorStatus) { return smth GetScreenResolution (aScreenId, aWidth, aHeight, aBitsPerPixel, aXOrigin, aYOrigin, aGuestMonitorStatus); }
#define COM_FORWARD_IDisplay_GetScreenResolution_TO_OBJ(obj) COM_FORWARD_IDisplay_GetScreenResolution_TO ((obj)->)
#define COM_FORWARD_IDisplay_GetScreenResolution_TO_BASE(base) COM_FORWARD_IDisplay_GetScreenResolution_TO (base::)
#define COM_FORWARD_IDisplay_AttachFramebuffer_TO(smth) NS_IMETHOD AttachFramebuffer (PRUint32 aScreenId, IFramebuffer * aFramebuffer, PRUnichar * * aId) { return smth AttachFramebuffer (aScreenId, aFramebuffer, aId); }
#define COM_FORWARD_IDisplay_AttachFramebuffer_TO_OBJ(obj) COM_FORWARD_IDisplay_AttachFramebuffer_TO ((obj)->)
#define COM_FORWARD_IDisplay_AttachFramebuffer_TO_BASE(base) COM_FORWARD_IDisplay_AttachFramebuffer_TO (base::)
#define COM_FORWARD_IDisplay_DetachFramebuffer_TO(smth) NS_IMETHOD DetachFramebuffer (PRUint32 aScreenId, PRUnichar * aId) { return smth DetachFramebuffer (aScreenId, aId); }
#define COM_FORWARD_IDisplay_DetachFramebuffer_TO_OBJ(obj) COM_FORWARD_IDisplay_DetachFramebuffer_TO ((obj)->)
#define COM_FORWARD_IDisplay_DetachFramebuffer_TO_BASE(base) COM_FORWARD_IDisplay_DetachFramebuffer_TO (base::)
#define COM_FORWARD_IDisplay_QueryFramebuffer_TO(smth) NS_IMETHOD QueryFramebuffer (PRUint32 aScreenId, IFramebuffer * * aFramebuffer) { return smth QueryFramebuffer (aScreenId, aFramebuffer); }
#define COM_FORWARD_IDisplay_QueryFramebuffer_TO_OBJ(obj) COM_FORWARD_IDisplay_QueryFramebuffer_TO ((obj)->)
#define COM_FORWARD_IDisplay_QueryFramebuffer_TO_BASE(base) COM_FORWARD_IDisplay_QueryFramebuffer_TO (base::)
#define COM_FORWARD_IDisplay_SetVideoModeHint_TO(smth) NS_IMETHOD SetVideoModeHint (PRUint32 aDisplay, PRBool aEnabled, PRBool aChangeOrigin, PRInt32 aOriginX, PRInt32 aOriginY, PRUint32 aWidth, PRUint32 aHeight, PRUint32 aBitsPerPixel, PRBool aNotify) { return smth SetVideoModeHint (aDisplay, aEnabled, aChangeOrigin, aOriginX, aOriginY, aWidth, aHeight, aBitsPerPixel, aNotify); }
#define COM_FORWARD_IDisplay_SetVideoModeHint_TO_OBJ(obj) COM_FORWARD_IDisplay_SetVideoModeHint_TO ((obj)->)
#define COM_FORWARD_IDisplay_SetVideoModeHint_TO_BASE(base) COM_FORWARD_IDisplay_SetVideoModeHint_TO (base::)
#define COM_FORWARD_IDisplay_GetVideoModeHint_TO(smth) NS_IMETHOD GetVideoModeHint (PRUint32 aDisplay, PRBool * aEnabled, PRBool * aChangeOrigin, PRInt32 * aOriginX, PRInt32 * aOriginY, PRUint32 * aWidth, PRUint32 * aHeight, PRUint32 * aBitsPerPixel) { return smth GetVideoModeHint (aDisplay, aEnabled, aChangeOrigin, aOriginX, aOriginY, aWidth, aHeight, aBitsPerPixel); }
#define COM_FORWARD_IDisplay_GetVideoModeHint_TO_OBJ(obj) COM_FORWARD_IDisplay_GetVideoModeHint_TO ((obj)->)
#define COM_FORWARD_IDisplay_GetVideoModeHint_TO_BASE(base) COM_FORWARD_IDisplay_GetVideoModeHint_TO (base::)
#define COM_FORWARD_IDisplay_SetSeamlessMode_TO(smth) NS_IMETHOD SetSeamlessMode (PRBool aEnabled) { return smth SetSeamlessMode (aEnabled); }
#define COM_FORWARD_IDisplay_SetSeamlessMode_TO_OBJ(obj) COM_FORWARD_IDisplay_SetSeamlessMode_TO ((obj)->)
#define COM_FORWARD_IDisplay_SetSeamlessMode_TO_BASE(base) COM_FORWARD_IDisplay_SetSeamlessMode_TO (base::)
#define COM_FORWARD_IDisplay_TakeScreenShot_TO(smth) NS_IMETHOD TakeScreenShot (PRUint32 aScreenId, PRUint8 * aAddress, PRUint32 aWidth, PRUint32 aHeight, PRUint32 aBitmapFormat) { return smth TakeScreenShot (aScreenId, aAddress, aWidth, aHeight, aBitmapFormat); }
#define COM_FORWARD_IDisplay_TakeScreenShot_TO_OBJ(obj) COM_FORWARD_IDisplay_TakeScreenShot_TO ((obj)->)
#define COM_FORWARD_IDisplay_TakeScreenShot_TO_BASE(base) COM_FORWARD_IDisplay_TakeScreenShot_TO (base::)
#define COM_FORWARD_IDisplay_TakeScreenShotToArray_TO(smth) NS_IMETHOD TakeScreenShotToArray (PRUint32 aScreenId, PRUint32 aWidth, PRUint32 aHeight, PRUint32 aBitmapFormat, PRUint32 * aScreenDataSize, PRUint8 * * aScreenData) { return smth TakeScreenShotToArray (aScreenId, aWidth, aHeight, aBitmapFormat, aScreenDataSize, aScreenData); }
#define COM_FORWARD_IDisplay_TakeScreenShotToArray_TO_OBJ(obj) COM_FORWARD_IDisplay_TakeScreenShotToArray_TO ((obj)->)
#define COM_FORWARD_IDisplay_TakeScreenShotToArray_TO_BASE(base) COM_FORWARD_IDisplay_TakeScreenShotToArray_TO (base::)
#define COM_FORWARD_IDisplay_DrawToScreen_TO(smth) NS_IMETHOD DrawToScreen (PRUint32 aScreenId, PRUint8 * aAddress, PRUint32 aX, PRUint32 aY, PRUint32 aWidth, PRUint32 aHeight) { return smth DrawToScreen (aScreenId, aAddress, aX, aY, aWidth, aHeight); }
#define COM_FORWARD_IDisplay_DrawToScreen_TO_OBJ(obj) COM_FORWARD_IDisplay_DrawToScreen_TO ((obj)->)
#define COM_FORWARD_IDisplay_DrawToScreen_TO_BASE(base) COM_FORWARD_IDisplay_DrawToScreen_TO (base::)
#define COM_FORWARD_IDisplay_InvalidateAndUpdate_TO(smth) NS_IMETHOD InvalidateAndUpdate() { return smth InvalidateAndUpdate(); }
#define COM_FORWARD_IDisplay_InvalidateAndUpdate_TO_OBJ(obj) COM_FORWARD_IDisplay_InvalidateAndUpdate_TO ((obj)->)
#define COM_FORWARD_IDisplay_InvalidateAndUpdate_TO_BASE(base) COM_FORWARD_IDisplay_InvalidateAndUpdate_TO (base::)
#define COM_FORWARD_IDisplay_InvalidateAndUpdateScreen_TO(smth) NS_IMETHOD InvalidateAndUpdateScreen (PRUint32 aScreenId) { return smth InvalidateAndUpdateScreen (aScreenId); }
#define COM_FORWARD_IDisplay_InvalidateAndUpdateScreen_TO_OBJ(obj) COM_FORWARD_IDisplay_InvalidateAndUpdateScreen_TO ((obj)->)
#define COM_FORWARD_IDisplay_InvalidateAndUpdateScreen_TO_BASE(base) COM_FORWARD_IDisplay_InvalidateAndUpdateScreen_TO (base::)
#define COM_FORWARD_IDisplay_CompleteVHWACommand_TO(smth) NS_IMETHOD CompleteVHWACommand (PRUint8 * aCommand) { return smth CompleteVHWACommand (aCommand); }
#define COM_FORWARD_IDisplay_CompleteVHWACommand_TO_OBJ(obj) COM_FORWARD_IDisplay_CompleteVHWACommand_TO ((obj)->)
#define COM_FORWARD_IDisplay_CompleteVHWACommand_TO_BASE(base) COM_FORWARD_IDisplay_CompleteVHWACommand_TO (base::)
#define COM_FORWARD_IDisplay_ViewportChanged_TO(smth) NS_IMETHOD ViewportChanged (PRUint32 aScreenId, PRUint32 aX, PRUint32 aY, PRUint32 aWidth, PRUint32 aHeight) { return smth ViewportChanged (aScreenId, aX, aY, aWidth, aHeight); }
#define COM_FORWARD_IDisplay_ViewportChanged_TO_OBJ(obj) COM_FORWARD_IDisplay_ViewportChanged_TO ((obj)->)
#define COM_FORWARD_IDisplay_ViewportChanged_TO_BASE(base) COM_FORWARD_IDisplay_ViewportChanged_TO (base::)
#define COM_FORWARD_IDisplay_QuerySourceBitmap_TO(smth) NS_IMETHOD QuerySourceBitmap (PRUint32 aScreenId, IDisplaySourceBitmap * * aDisplaySourceBitmap) { return smth QuerySourceBitmap (aScreenId, aDisplaySourceBitmap); }
#define COM_FORWARD_IDisplay_QuerySourceBitmap_TO_OBJ(obj) COM_FORWARD_IDisplay_QuerySourceBitmap_TO ((obj)->)
#define COM_FORWARD_IDisplay_QuerySourceBitmap_TO_BASE(base) COM_FORWARD_IDisplay_QuerySourceBitmap_TO (base::)
#define COM_FORWARD_IDisplay_NotifyScaleFactorChange_TO(smth) NS_IMETHOD NotifyScaleFactorChange (PRUint32 aScreenId, PRUint32 aU32ScaleFactorWMultiplied, PRUint32 aU32ScaleFactorHMultiplied) { return smth NotifyScaleFactorChange (aScreenId, aU32ScaleFactorWMultiplied, aU32ScaleFactorHMultiplied); }
#define COM_FORWARD_IDisplay_NotifyScaleFactorChange_TO_OBJ(obj) COM_FORWARD_IDisplay_NotifyScaleFactorChange_TO ((obj)->)
#define COM_FORWARD_IDisplay_NotifyScaleFactorChange_TO_BASE(base) COM_FORWARD_IDisplay_NotifyScaleFactorChange_TO (base::)
#define COM_FORWARD_IDisplay_NotifyHiDPIOutputPolicyChange_TO(smth) NS_IMETHOD NotifyHiDPIOutputPolicyChange (PRBool aFUnscaledHiDPI) { return smth NotifyHiDPIOutputPolicyChange (aFUnscaledHiDPI); }
#define COM_FORWARD_IDisplay_NotifyHiDPIOutputPolicyChange_TO_OBJ(obj) COM_FORWARD_IDisplay_NotifyHiDPIOutputPolicyChange_TO ((obj)->)
#define COM_FORWARD_IDisplay_NotifyHiDPIOutputPolicyChange_TO_BASE(base) COM_FORWARD_IDisplay_NotifyHiDPIOutputPolicyChange_TO (base::)
#define COM_FORWARD_IDisplay_SetScreenLayout_TO(smth) NS_IMETHOD SetScreenLayout (PRUint32 aScreenLayoutMode, PRUint32 aGuestScreenInfoSize, IGuestScreenInfo * * aGuestScreenInfo) { return smth SetScreenLayout (aScreenLayoutMode, aGuestScreenInfoSize, aGuestScreenInfo); }
#define COM_FORWARD_IDisplay_SetScreenLayout_TO_OBJ(obj) COM_FORWARD_IDisplay_SetScreenLayout_TO ((obj)->)
#define COM_FORWARD_IDisplay_SetScreenLayout_TO_BASE(base) COM_FORWARD_IDisplay_SetScreenLayout_TO (base::)
#define COM_FORWARD_IDisplay_DetachScreens_TO(smth) NS_IMETHOD DetachScreens (PRUint32 aScreenIdsSize, PRInt32 * aScreenIds) { return smth DetachScreens (aScreenIdsSize, aScreenIds); }
#define COM_FORWARD_IDisplay_DetachScreens_TO_OBJ(obj) COM_FORWARD_IDisplay_DetachScreens_TO ((obj)->)
#define COM_FORWARD_IDisplay_DetachScreens_TO_BASE(base) COM_FORWARD_IDisplay_DetachScreens_TO (base::)
#define COM_FORWARD_IDisplay_CreateGuestScreenInfo_TO(smth) NS_IMETHOD CreateGuestScreenInfo (PRUint32 aDisplay, PRUint32 aStatus, PRBool aPrimary, PRBool aChangeOrigin, PRInt32 aOriginX, PRInt32 aOriginY, PRUint32 aWidth, PRUint32 aHeight, PRUint32 aBitsPerPixel, IGuestScreenInfo * * aGuestScreenInfo) { return smth CreateGuestScreenInfo (aDisplay, aStatus, aPrimary, aChangeOrigin, aOriginX, aOriginY, aWidth, aHeight, aBitsPerPixel, aGuestScreenInfo); }
#define COM_FORWARD_IDisplay_CreateGuestScreenInfo_TO_OBJ(obj) COM_FORWARD_IDisplay_CreateGuestScreenInfo_TO ((obj)->)
#define COM_FORWARD_IDisplay_CreateGuestScreenInfo_TO_BASE(base) COM_FORWARD_IDisplay_CreateGuestScreenInfo_TO (base::)
#define COM_FORWARD_IDisplay_TO(smth) NS_FORWARD_IDISPLAY (smth)
#define COM_FORWARD_IDisplay_TO_OBJ(obj) COM_FORWARD_IDisplay_TO ((obj)->)
#define COM_FORWARD_IDisplay_TO_BASE(base) COM_FORWARD_IDisplay_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IDisplay;
%}

[
    uuid(e9a0c183-7071-4894-93d6-dcbec010fa91),
    scriptable
]
interface INetworkAdapter : nsISupports
{
    attribute NetworkAdapterType_T adapterType;

    readonly attribute unsigned long slot;

    attribute boolean enabled;

    attribute wstring MACAddress;

    attribute NetworkAttachmentType_T attachmentType;

    attribute wstring bridgedInterface;

    attribute wstring hostOnlyInterface;

    attribute wstring internalNetwork;

    attribute wstring NATNetwork;

    attribute wstring genericDriver;

    attribute wstring cloudNetwork;

    attribute boolean cableConnected;

    attribute unsigned long lineSpeed;

    attribute NetworkAdapterPromiscModePolicy_T promiscModePolicy;

    attribute boolean traceEnabled;

    attribute wstring traceFile;

    readonly attribute INATEngine NATEngine;

    attribute unsigned long bootPriority;

    attribute IBandwidthGroup bandwidthGroup;

    readonly attribute unsigned long InternalAndReservedAttribute1INetworkAdapter;

    readonly attribute unsigned long InternalAndReservedAttribute2INetworkAdapter;

    readonly attribute unsigned long InternalAndReservedAttribute3INetworkAdapter;

    readonly attribute unsigned long InternalAndReservedAttribute4INetworkAdapter;

    readonly attribute unsigned long InternalAndReservedAttribute5INetworkAdapter;

    readonly attribute unsigned long InternalAndReservedAttribute6INetworkAdapter;

    readonly attribute unsigned long InternalAndReservedAttribute7INetworkAdapter;

    readonly attribute unsigned long InternalAndReservedAttribute8INetworkAdapter;

    void getProperty (
        in wstring key,
        [retval] out wstring value
    );

    void setProperty (
        in wstring key,
        in wstring value
    );

    void getProperties (
        in wstring names,
        out unsigned long returnNamesSize,
        [array, size_is(returnNamesSize)] out wstring returnNames,
        out unsigned long returnValuesSize,
        [array, size_is(returnValuesSize) , retval] out wstring returnValues
    );

    void InternalAndReservedMethod1INetworkAdapter();

    void InternalAndReservedMethod2INetworkAdapter();

    void InternalAndReservedMethod3INetworkAdapter();

    void InternalAndReservedMethod4INetworkAdapter();

}; /* interface INetworkAdapter */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_INetworkAdapter_GETTER_AdapterType_TO(smth) NS_IMETHOD GetAdapterType (PRUint32 * aAdapterType) { return smth GetAdapterType (aAdapterType); }
#define COM_FORWARD_INetworkAdapter_GETTER_AdapterType_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_AdapterType_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_GETTER_AdapterType_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_AdapterType_TO (base::)
#define COM_FORWARD_INetworkAdapter_SETTER_AdapterType_TO(smth) NS_IMETHOD SetAdapterType (PRUint32 aAdapterType) { return smth SetAdapterType (aAdapterType); }
#define COM_FORWARD_INetworkAdapter_SETTER_AdapterType_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_AdapterType_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_SETTER_AdapterType_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_AdapterType_TO (base::)
#define COM_FORWARD_INetworkAdapter_GETTER_Slot_TO(smth) NS_IMETHOD GetSlot (PRUint32 * aSlot) { return smth GetSlot (aSlot); }
#define COM_FORWARD_INetworkAdapter_GETTER_Slot_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_Slot_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_GETTER_Slot_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_Slot_TO (base::)
#define COM_FORWARD_INetworkAdapter_GETTER_Enabled_TO(smth) NS_IMETHOD GetEnabled (PRBool * aEnabled) { return smth GetEnabled (aEnabled); }
#define COM_FORWARD_INetworkAdapter_GETTER_Enabled_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_Enabled_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_GETTER_Enabled_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_Enabled_TO (base::)
#define COM_FORWARD_INetworkAdapter_SETTER_Enabled_TO(smth) NS_IMETHOD SetEnabled (PRBool aEnabled) { return smth SetEnabled (aEnabled); }
#define COM_FORWARD_INetworkAdapter_SETTER_Enabled_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_Enabled_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_SETTER_Enabled_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_Enabled_TO (base::)
#define COM_FORWARD_INetworkAdapter_GETTER_MACAddress_TO(smth) NS_IMETHOD GetMACAddress (PRUnichar * * aMACAddress) { return smth GetMACAddress (aMACAddress); }
#define COM_FORWARD_INetworkAdapter_GETTER_MACAddress_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_MACAddress_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_GETTER_MACAddress_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_MACAddress_TO (base::)
#define COM_FORWARD_INetworkAdapter_SETTER_MACAddress_TO(smth) NS_IMETHOD SetMACAddress (const PRUnichar * aMACAddress) { return smth SetMACAddress (aMACAddress); }
#define COM_FORWARD_INetworkAdapter_SETTER_MACAddress_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_MACAddress_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_SETTER_MACAddress_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_MACAddress_TO (base::)
#define COM_FORWARD_INetworkAdapter_GETTER_AttachmentType_TO(smth) NS_IMETHOD GetAttachmentType (PRUint32 * aAttachmentType) { return smth GetAttachmentType (aAttachmentType); }
#define COM_FORWARD_INetworkAdapter_GETTER_AttachmentType_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_AttachmentType_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_GETTER_AttachmentType_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_AttachmentType_TO (base::)
#define COM_FORWARD_INetworkAdapter_SETTER_AttachmentType_TO(smth) NS_IMETHOD SetAttachmentType (PRUint32 aAttachmentType) { return smth SetAttachmentType (aAttachmentType); }
#define COM_FORWARD_INetworkAdapter_SETTER_AttachmentType_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_AttachmentType_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_SETTER_AttachmentType_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_AttachmentType_TO (base::)
#define COM_FORWARD_INetworkAdapter_GETTER_BridgedInterface_TO(smth) NS_IMETHOD GetBridgedInterface (PRUnichar * * aBridgedInterface) { return smth GetBridgedInterface (aBridgedInterface); }
#define COM_FORWARD_INetworkAdapter_GETTER_BridgedInterface_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_BridgedInterface_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_GETTER_BridgedInterface_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_BridgedInterface_TO (base::)
#define COM_FORWARD_INetworkAdapter_SETTER_BridgedInterface_TO(smth) NS_IMETHOD SetBridgedInterface (const PRUnichar * aBridgedInterface) { return smth SetBridgedInterface (aBridgedInterface); }
#define COM_FORWARD_INetworkAdapter_SETTER_BridgedInterface_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_BridgedInterface_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_SETTER_BridgedInterface_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_BridgedInterface_TO (base::)
#define COM_FORWARD_INetworkAdapter_GETTER_HostOnlyInterface_TO(smth) NS_IMETHOD GetHostOnlyInterface (PRUnichar * * aHostOnlyInterface) { return smth GetHostOnlyInterface (aHostOnlyInterface); }
#define COM_FORWARD_INetworkAdapter_GETTER_HostOnlyInterface_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_HostOnlyInterface_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_GETTER_HostOnlyInterface_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_HostOnlyInterface_TO (base::)
#define COM_FORWARD_INetworkAdapter_SETTER_HostOnlyInterface_TO(smth) NS_IMETHOD SetHostOnlyInterface (const PRUnichar * aHostOnlyInterface) { return smth SetHostOnlyInterface (aHostOnlyInterface); }
#define COM_FORWARD_INetworkAdapter_SETTER_HostOnlyInterface_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_HostOnlyInterface_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_SETTER_HostOnlyInterface_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_HostOnlyInterface_TO (base::)
#define COM_FORWARD_INetworkAdapter_GETTER_InternalNetwork_TO(smth) NS_IMETHOD GetInternalNetwork (PRUnichar * * aInternalNetwork) { return smth GetInternalNetwork (aInternalNetwork); }
#define COM_FORWARD_INetworkAdapter_GETTER_InternalNetwork_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_InternalNetwork_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_GETTER_InternalNetwork_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_InternalNetwork_TO (base::)
#define COM_FORWARD_INetworkAdapter_SETTER_InternalNetwork_TO(smth) NS_IMETHOD SetInternalNetwork (const PRUnichar * aInternalNetwork) { return smth SetInternalNetwork (aInternalNetwork); }
#define COM_FORWARD_INetworkAdapter_SETTER_InternalNetwork_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_InternalNetwork_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_SETTER_InternalNetwork_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_InternalNetwork_TO (base::)
#define COM_FORWARD_INetworkAdapter_GETTER_NATNetwork_TO(smth) NS_IMETHOD GetNATNetwork (PRUnichar * * aNATNetwork) { return smth GetNATNetwork (aNATNetwork); }
#define COM_FORWARD_INetworkAdapter_GETTER_NATNetwork_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_NATNetwork_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_GETTER_NATNetwork_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_NATNetwork_TO (base::)
#define COM_FORWARD_INetworkAdapter_SETTER_NATNetwork_TO(smth) NS_IMETHOD SetNATNetwork (const PRUnichar * aNATNetwork) { return smth SetNATNetwork (aNATNetwork); }
#define COM_FORWARD_INetworkAdapter_SETTER_NATNetwork_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_NATNetwork_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_SETTER_NATNetwork_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_NATNetwork_TO (base::)
#define COM_FORWARD_INetworkAdapter_GETTER_GenericDriver_TO(smth) NS_IMETHOD GetGenericDriver (PRUnichar * * aGenericDriver) { return smth GetGenericDriver (aGenericDriver); }
#define COM_FORWARD_INetworkAdapter_GETTER_GenericDriver_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_GenericDriver_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_GETTER_GenericDriver_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_GenericDriver_TO (base::)
#define COM_FORWARD_INetworkAdapter_SETTER_GenericDriver_TO(smth) NS_IMETHOD SetGenericDriver (const PRUnichar * aGenericDriver) { return smth SetGenericDriver (aGenericDriver); }
#define COM_FORWARD_INetworkAdapter_SETTER_GenericDriver_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_GenericDriver_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_SETTER_GenericDriver_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_GenericDriver_TO (base::)
#define COM_FORWARD_INetworkAdapter_GETTER_CloudNetwork_TO(smth) NS_IMETHOD GetCloudNetwork (PRUnichar * * aCloudNetwork) { return smth GetCloudNetwork (aCloudNetwork); }
#define COM_FORWARD_INetworkAdapter_GETTER_CloudNetwork_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_CloudNetwork_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_GETTER_CloudNetwork_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_CloudNetwork_TO (base::)
#define COM_FORWARD_INetworkAdapter_SETTER_CloudNetwork_TO(smth) NS_IMETHOD SetCloudNetwork (const PRUnichar * aCloudNetwork) { return smth SetCloudNetwork (aCloudNetwork); }
#define COM_FORWARD_INetworkAdapter_SETTER_CloudNetwork_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_CloudNetwork_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_SETTER_CloudNetwork_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_CloudNetwork_TO (base::)
#define COM_FORWARD_INetworkAdapter_GETTER_CableConnected_TO(smth) NS_IMETHOD GetCableConnected (PRBool * aCableConnected) { return smth GetCableConnected (aCableConnected); }
#define COM_FORWARD_INetworkAdapter_GETTER_CableConnected_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_CableConnected_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_GETTER_CableConnected_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_CableConnected_TO (base::)
#define COM_FORWARD_INetworkAdapter_SETTER_CableConnected_TO(smth) NS_IMETHOD SetCableConnected (PRBool aCableConnected) { return smth SetCableConnected (aCableConnected); }
#define COM_FORWARD_INetworkAdapter_SETTER_CableConnected_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_CableConnected_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_SETTER_CableConnected_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_CableConnected_TO (base::)
#define COM_FORWARD_INetworkAdapter_GETTER_LineSpeed_TO(smth) NS_IMETHOD GetLineSpeed (PRUint32 * aLineSpeed) { return smth GetLineSpeed (aLineSpeed); }
#define COM_FORWARD_INetworkAdapter_GETTER_LineSpeed_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_LineSpeed_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_GETTER_LineSpeed_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_LineSpeed_TO (base::)
#define COM_FORWARD_INetworkAdapter_SETTER_LineSpeed_TO(smth) NS_IMETHOD SetLineSpeed (PRUint32 aLineSpeed) { return smth SetLineSpeed (aLineSpeed); }
#define COM_FORWARD_INetworkAdapter_SETTER_LineSpeed_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_LineSpeed_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_SETTER_LineSpeed_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_LineSpeed_TO (base::)
#define COM_FORWARD_INetworkAdapter_GETTER_PromiscModePolicy_TO(smth) NS_IMETHOD GetPromiscModePolicy (PRUint32 * aPromiscModePolicy) { return smth GetPromiscModePolicy (aPromiscModePolicy); }
#define COM_FORWARD_INetworkAdapter_GETTER_PromiscModePolicy_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_PromiscModePolicy_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_GETTER_PromiscModePolicy_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_PromiscModePolicy_TO (base::)
#define COM_FORWARD_INetworkAdapter_SETTER_PromiscModePolicy_TO(smth) NS_IMETHOD SetPromiscModePolicy (PRUint32 aPromiscModePolicy) { return smth SetPromiscModePolicy (aPromiscModePolicy); }
#define COM_FORWARD_INetworkAdapter_SETTER_PromiscModePolicy_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_PromiscModePolicy_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_SETTER_PromiscModePolicy_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_PromiscModePolicy_TO (base::)
#define COM_FORWARD_INetworkAdapter_GETTER_TraceEnabled_TO(smth) NS_IMETHOD GetTraceEnabled (PRBool * aTraceEnabled) { return smth GetTraceEnabled (aTraceEnabled); }
#define COM_FORWARD_INetworkAdapter_GETTER_TraceEnabled_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_TraceEnabled_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_GETTER_TraceEnabled_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_TraceEnabled_TO (base::)
#define COM_FORWARD_INetworkAdapter_SETTER_TraceEnabled_TO(smth) NS_IMETHOD SetTraceEnabled (PRBool aTraceEnabled) { return smth SetTraceEnabled (aTraceEnabled); }
#define COM_FORWARD_INetworkAdapter_SETTER_TraceEnabled_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_TraceEnabled_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_SETTER_TraceEnabled_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_TraceEnabled_TO (base::)
#define COM_FORWARD_INetworkAdapter_GETTER_TraceFile_TO(smth) NS_IMETHOD GetTraceFile (PRUnichar * * aTraceFile) { return smth GetTraceFile (aTraceFile); }
#define COM_FORWARD_INetworkAdapter_GETTER_TraceFile_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_TraceFile_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_GETTER_TraceFile_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_TraceFile_TO (base::)
#define COM_FORWARD_INetworkAdapter_SETTER_TraceFile_TO(smth) NS_IMETHOD SetTraceFile (const PRUnichar * aTraceFile) { return smth SetTraceFile (aTraceFile); }
#define COM_FORWARD_INetworkAdapter_SETTER_TraceFile_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_TraceFile_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_SETTER_TraceFile_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_TraceFile_TO (base::)
#define COM_FORWARD_INetworkAdapter_GETTER_NATEngine_TO(smth) NS_IMETHOD GetNATEngine (INATEngine * * aNATEngine) { return smth GetNATEngine (aNATEngine); }
#define COM_FORWARD_INetworkAdapter_GETTER_NATEngine_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_NATEngine_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_GETTER_NATEngine_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_NATEngine_TO (base::)
#define COM_FORWARD_INetworkAdapter_GETTER_BootPriority_TO(smth) NS_IMETHOD GetBootPriority (PRUint32 * aBootPriority) { return smth GetBootPriority (aBootPriority); }
#define COM_FORWARD_INetworkAdapter_GETTER_BootPriority_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_BootPriority_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_GETTER_BootPriority_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_BootPriority_TO (base::)
#define COM_FORWARD_INetworkAdapter_SETTER_BootPriority_TO(smth) NS_IMETHOD SetBootPriority (PRUint32 aBootPriority) { return smth SetBootPriority (aBootPriority); }
#define COM_FORWARD_INetworkAdapter_SETTER_BootPriority_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_BootPriority_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_SETTER_BootPriority_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_BootPriority_TO (base::)
#define COM_FORWARD_INetworkAdapter_GETTER_BandwidthGroup_TO(smth) NS_IMETHOD GetBandwidthGroup (IBandwidthGroup * * aBandwidthGroup) { return smth GetBandwidthGroup (aBandwidthGroup); }
#define COM_FORWARD_INetworkAdapter_GETTER_BandwidthGroup_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_BandwidthGroup_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_GETTER_BandwidthGroup_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_BandwidthGroup_TO (base::)
#define COM_FORWARD_INetworkAdapter_SETTER_BandwidthGroup_TO(smth) NS_IMETHOD SetBandwidthGroup (IBandwidthGroup * aBandwidthGroup) { return smth SetBandwidthGroup (aBandwidthGroup); }
#define COM_FORWARD_INetworkAdapter_SETTER_BandwidthGroup_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_BandwidthGroup_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_SETTER_BandwidthGroup_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_BandwidthGroup_TO (base::)
#define COM_FORWARD_INetworkAdapter_GetProperty_TO(smth) NS_IMETHOD GetProperty (PRUnichar * aKey, PRUnichar * * aValue) { return smth GetProperty (aKey, aValue); }
#define COM_FORWARD_INetworkAdapter_GetProperty_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GetProperty_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_GetProperty_TO_BASE(base) COM_FORWARD_INetworkAdapter_GetProperty_TO (base::)
#define COM_FORWARD_INetworkAdapter_SetProperty_TO(smth) NS_IMETHOD SetProperty (PRUnichar * aKey, PRUnichar * aValue) { return smth SetProperty (aKey, aValue); }
#define COM_FORWARD_INetworkAdapter_SetProperty_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SetProperty_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_SetProperty_TO_BASE(base) COM_FORWARD_INetworkAdapter_SetProperty_TO (base::)
#define COM_FORWARD_INetworkAdapter_GetProperties_TO(smth) NS_IMETHOD GetProperties (PRUnichar * aNames, PRUint32 * aReturnNamesSize, PRUnichar * * * aReturnNames, PRUint32 * aReturnValuesSize, PRUnichar * * * aReturnValues) { return smth GetProperties (aNames, aReturnNamesSize+++, aReturnNames, aReturnValuesSize, aReturnValues); }
#define COM_FORWARD_INetworkAdapter_GetProperties_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GetProperties_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_GetProperties_TO_BASE(base) COM_FORWARD_INetworkAdapter_GetProperties_TO (base::)
#define COM_FORWARD_INetworkAdapter_TO(smth) NS_FORWARD_INETWORKADAPTER (smth)
#define COM_FORWARD_INetworkAdapter_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_TO_BASE(base) COM_FORWARD_INetworkAdapter_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_INetworkAdapter;
%}

[
    uuid(5587d0f6-a227-4f23-8278-2f675eea1bb2),
    scriptable
]
interface ISerialPort : nsISupports
{
    readonly attribute unsigned long slot;

    attribute boolean enabled;

    attribute unsigned long IOBase;

    attribute unsigned long IRQ;

    attribute PortMode_T hostMode;

    attribute boolean server;

    attribute wstring path;

    attribute UartType_T uartType;

    readonly attribute unsigned long InternalAndReservedAttribute1ISerialPort;

    readonly attribute unsigned long InternalAndReservedAttribute2ISerialPort;

    readonly attribute unsigned long InternalAndReservedAttribute3ISerialPort;

    readonly attribute unsigned long InternalAndReservedAttribute4ISerialPort;

}; /* interface ISerialPort */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_ISerialPort_GETTER_Slot_TO(smth) NS_IMETHOD GetSlot (PRUint32 * aSlot) { return smth GetSlot (aSlot); }
#define COM_FORWARD_ISerialPort_GETTER_Slot_TO_OBJ(obj) COM_FORWARD_ISerialPort_GETTER_Slot_TO ((obj)->)
#define COM_FORWARD_ISerialPort_GETTER_Slot_TO_BASE(base) COM_FORWARD_ISerialPort_GETTER_Slot_TO (base::)
#define COM_FORWARD_ISerialPort_GETTER_Enabled_TO(smth) NS_IMETHOD GetEnabled (PRBool * aEnabled) { return smth GetEnabled (aEnabled); }
#define COM_FORWARD_ISerialPort_GETTER_Enabled_TO_OBJ(obj) COM_FORWARD_ISerialPort_GETTER_Enabled_TO ((obj)->)
#define COM_FORWARD_ISerialPort_GETTER_Enabled_TO_BASE(base) COM_FORWARD_ISerialPort_GETTER_Enabled_TO (base::)
#define COM_FORWARD_ISerialPort_SETTER_Enabled_TO(smth) NS_IMETHOD SetEnabled (PRBool aEnabled) { return smth SetEnabled (aEnabled); }
#define COM_FORWARD_ISerialPort_SETTER_Enabled_TO_OBJ(obj) COM_FORWARD_ISerialPort_SETTER_Enabled_TO ((obj)->)
#define COM_FORWARD_ISerialPort_SETTER_Enabled_TO_BASE(base) COM_FORWARD_ISerialPort_SETTER_Enabled_TO (base::)
#define COM_FORWARD_ISerialPort_GETTER_IOBase_TO(smth) NS_IMETHOD GetIOBase (PRUint32 * aIOBase) { return smth GetIOBase (aIOBase); }
#define COM_FORWARD_ISerialPort_GETTER_IOBase_TO_OBJ(obj) COM_FORWARD_ISerialPort_GETTER_IOBase_TO ((obj)->)
#define COM_FORWARD_ISerialPort_GETTER_IOBase_TO_BASE(base) COM_FORWARD_ISerialPort_GETTER_IOBase_TO (base::)
#define COM_FORWARD_ISerialPort_SETTER_IOBase_TO(smth) NS_IMETHOD SetIOBase (PRUint32 aIOBase) { return smth SetIOBase (aIOBase); }
#define COM_FORWARD_ISerialPort_SETTER_IOBase_TO_OBJ(obj) COM_FORWARD_ISerialPort_SETTER_IOBase_TO ((obj)->)
#define COM_FORWARD_ISerialPort_SETTER_IOBase_TO_BASE(base) COM_FORWARD_ISerialPort_SETTER_IOBase_TO (base::)
#define COM_FORWARD_ISerialPort_GETTER_IRQ_TO(smth) NS_IMETHOD GetIRQ (PRUint32 * aIRQ) { return smth GetIRQ (aIRQ); }
#define COM_FORWARD_ISerialPort_GETTER_IRQ_TO_OBJ(obj) COM_FORWARD_ISerialPort_GETTER_IRQ_TO ((obj)->)
#define COM_FORWARD_ISerialPort_GETTER_IRQ_TO_BASE(base) COM_FORWARD_ISerialPort_GETTER_IRQ_TO (base::)
#define COM_FORWARD_ISerialPort_SETTER_IRQ_TO(smth) NS_IMETHOD SetIRQ (PRUint32 aIRQ) { return smth SetIRQ (aIRQ); }
#define COM_FORWARD_ISerialPort_SETTER_IRQ_TO_OBJ(obj) COM_FORWARD_ISerialPort_SETTER_IRQ_TO ((obj)->)
#define COM_FORWARD_ISerialPort_SETTER_IRQ_TO_BASE(base) COM_FORWARD_ISerialPort_SETTER_IRQ_TO (base::)
#define COM_FORWARD_ISerialPort_GETTER_HostMode_TO(smth) NS_IMETHOD GetHostMode (PRUint32 * aHostMode) { return smth GetHostMode (aHostMode); }
#define COM_FORWARD_ISerialPort_GETTER_HostMode_TO_OBJ(obj) COM_FORWARD_ISerialPort_GETTER_HostMode_TO ((obj)->)
#define COM_FORWARD_ISerialPort_GETTER_HostMode_TO_BASE(base) COM_FORWARD_ISerialPort_GETTER_HostMode_TO (base::)
#define COM_FORWARD_ISerialPort_SETTER_HostMode_TO(smth) NS_IMETHOD SetHostMode (PRUint32 aHostMode) { return smth SetHostMode (aHostMode); }
#define COM_FORWARD_ISerialPort_SETTER_HostMode_TO_OBJ(obj) COM_FORWARD_ISerialPort_SETTER_HostMode_TO ((obj)->)
#define COM_FORWARD_ISerialPort_SETTER_HostMode_TO_BASE(base) COM_FORWARD_ISerialPort_SETTER_HostMode_TO (base::)
#define COM_FORWARD_ISerialPort_GETTER_Server_TO(smth) NS_IMETHOD GetServer (PRBool * aServer) { return smth GetServer (aServer); }
#define COM_FORWARD_ISerialPort_GETTER_Server_TO_OBJ(obj) COM_FORWARD_ISerialPort_GETTER_Server_TO ((obj)->)
#define COM_FORWARD_ISerialPort_GETTER_Server_TO_BASE(base) COM_FORWARD_ISerialPort_GETTER_Server_TO (base::)
#define COM_FORWARD_ISerialPort_SETTER_Server_TO(smth) NS_IMETHOD SetServer (PRBool aServer) { return smth SetServer (aServer); }
#define COM_FORWARD_ISerialPort_SETTER_Server_TO_OBJ(obj) COM_FORWARD_ISerialPort_SETTER_Server_TO ((obj)->)
#define COM_FORWARD_ISerialPort_SETTER_Server_TO_BASE(base) COM_FORWARD_ISerialPort_SETTER_Server_TO (base::)
#define COM_FORWARD_ISerialPort_GETTER_Path_TO(smth) NS_IMETHOD GetPath (PRUnichar * * aPath) { return smth GetPath (aPath); }
#define COM_FORWARD_ISerialPort_GETTER_Path_TO_OBJ(obj) COM_FORWARD_ISerialPort_GETTER_Path_TO ((obj)->)
#define COM_FORWARD_ISerialPort_GETTER_Path_TO_BASE(base) COM_FORWARD_ISerialPort_GETTER_Path_TO (base::)
#define COM_FORWARD_ISerialPort_SETTER_Path_TO(smth) NS_IMETHOD SetPath (const PRUnichar * aPath) { return smth SetPath (aPath); }
#define COM_FORWARD_ISerialPort_SETTER_Path_TO_OBJ(obj) COM_FORWARD_ISerialPort_SETTER_Path_TO ((obj)->)
#define COM_FORWARD_ISerialPort_SETTER_Path_TO_BASE(base) COM_FORWARD_ISerialPort_SETTER_Path_TO (base::)
#define COM_FORWARD_ISerialPort_GETTER_UartType_TO(smth) NS_IMETHOD GetUartType (PRUint32 * aUartType) { return smth GetUartType (aUartType); }
#define COM_FORWARD_ISerialPort_GETTER_UartType_TO_OBJ(obj) COM_FORWARD_ISerialPort_GETTER_UartType_TO ((obj)->)
#define COM_FORWARD_ISerialPort_GETTER_UartType_TO_BASE(base) COM_FORWARD_ISerialPort_GETTER_UartType_TO (base::)
#define COM_FORWARD_ISerialPort_SETTER_UartType_TO(smth) NS_IMETHOD SetUartType (PRUint32 aUartType) { return smth SetUartType (aUartType); }
#define COM_FORWARD_ISerialPort_SETTER_UartType_TO_OBJ(obj) COM_FORWARD_ISerialPort_SETTER_UartType_TO ((obj)->)
#define COM_FORWARD_ISerialPort_SETTER_UartType_TO_BASE(base) COM_FORWARD_ISerialPort_SETTER_UartType_TO (base::)
#define COM_FORWARD_ISerialPort_TO(smth) NS_FORWARD_ISERIALPORT (smth)
#define COM_FORWARD_ISerialPort_TO_OBJ(obj) COM_FORWARD_ISerialPort_TO ((obj)->)
#define COM_FORWARD_ISerialPort_TO_BASE(base) COM_FORWARD_ISerialPort_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ISerialPort;
%}

[
    uuid(788b87df-7708-444b-9eef-c116ce423d39),
    scriptable
]
interface IParallelPort : nsISupports
{
    readonly attribute unsigned long slot;

    attribute boolean enabled;

    attribute unsigned long IOBase;

    attribute unsigned long IRQ;

    attribute wstring path;

    readonly attribute unsigned long InternalAndReservedAttribute1IParallelPort;

    readonly attribute unsigned long InternalAndReservedAttribute2IParallelPort;

    readonly attribute unsigned long InternalAndReservedAttribute3IParallelPort;

    readonly attribute unsigned long InternalAndReservedAttribute4IParallelPort;

}; /* interface IParallelPort */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IParallelPort_GETTER_Slot_TO(smth) NS_IMETHOD GetSlot (PRUint32 * aSlot) { return smth GetSlot (aSlot); }
#define COM_FORWARD_IParallelPort_GETTER_Slot_TO_OBJ(obj) COM_FORWARD_IParallelPort_GETTER_Slot_TO ((obj)->)
#define COM_FORWARD_IParallelPort_GETTER_Slot_TO_BASE(base) COM_FORWARD_IParallelPort_GETTER_Slot_TO (base::)
#define COM_FORWARD_IParallelPort_GETTER_Enabled_TO(smth) NS_IMETHOD GetEnabled (PRBool * aEnabled) { return smth GetEnabled (aEnabled); }
#define COM_FORWARD_IParallelPort_GETTER_Enabled_TO_OBJ(obj) COM_FORWARD_IParallelPort_GETTER_Enabled_TO ((obj)->)
#define COM_FORWARD_IParallelPort_GETTER_Enabled_TO_BASE(base) COM_FORWARD_IParallelPort_GETTER_Enabled_TO (base::)
#define COM_FORWARD_IParallelPort_SETTER_Enabled_TO(smth) NS_IMETHOD SetEnabled (PRBool aEnabled) { return smth SetEnabled (aEnabled); }
#define COM_FORWARD_IParallelPort_SETTER_Enabled_TO_OBJ(obj) COM_FORWARD_IParallelPort_SETTER_Enabled_TO ((obj)->)
#define COM_FORWARD_IParallelPort_SETTER_Enabled_TO_BASE(base) COM_FORWARD_IParallelPort_SETTER_Enabled_TO (base::)
#define COM_FORWARD_IParallelPort_GETTER_IOBase_TO(smth) NS_IMETHOD GetIOBase (PRUint32 * aIOBase) { return smth GetIOBase (aIOBase); }
#define COM_FORWARD_IParallelPort_GETTER_IOBase_TO_OBJ(obj) COM_FORWARD_IParallelPort_GETTER_IOBase_TO ((obj)->)
#define COM_FORWARD_IParallelPort_GETTER_IOBase_TO_BASE(base) COM_FORWARD_IParallelPort_GETTER_IOBase_TO (base::)
#define COM_FORWARD_IParallelPort_SETTER_IOBase_TO(smth) NS_IMETHOD SetIOBase (PRUint32 aIOBase) { return smth SetIOBase (aIOBase); }
#define COM_FORWARD_IParallelPort_SETTER_IOBase_TO_OBJ(obj) COM_FORWARD_IParallelPort_SETTER_IOBase_TO ((obj)->)
#define COM_FORWARD_IParallelPort_SETTER_IOBase_TO_BASE(base) COM_FORWARD_IParallelPort_SETTER_IOBase_TO (base::)
#define COM_FORWARD_IParallelPort_GETTER_IRQ_TO(smth) NS_IMETHOD GetIRQ (PRUint32 * aIRQ) { return smth GetIRQ (aIRQ); }
#define COM_FORWARD_IParallelPort_GETTER_IRQ_TO_OBJ(obj) COM_FORWARD_IParallelPort_GETTER_IRQ_TO ((obj)->)
#define COM_FORWARD_IParallelPort_GETTER_IRQ_TO_BASE(base) COM_FORWARD_IParallelPort_GETTER_IRQ_TO (base::)
#define COM_FORWARD_IParallelPort_SETTER_IRQ_TO(smth) NS_IMETHOD SetIRQ (PRUint32 aIRQ) { return smth SetIRQ (aIRQ); }
#define COM_FORWARD_IParallelPort_SETTER_IRQ_TO_OBJ(obj) COM_FORWARD_IParallelPort_SETTER_IRQ_TO ((obj)->)
#define COM_FORWARD_IParallelPort_SETTER_IRQ_TO_BASE(base) COM_FORWARD_IParallelPort_SETTER_IRQ_TO (base::)
#define COM_FORWARD_IParallelPort_GETTER_Path_TO(smth) NS_IMETHOD GetPath (PRUnichar * * aPath) { return smth GetPath (aPath); }
#define COM_FORWARD_IParallelPort_GETTER_Path_TO_OBJ(obj) COM_FORWARD_IParallelPort_GETTER_Path_TO ((obj)->)
#define COM_FORWARD_IParallelPort_GETTER_Path_TO_BASE(base) COM_FORWARD_IParallelPort_GETTER_Path_TO (base::)
#define COM_FORWARD_IParallelPort_SETTER_Path_TO(smth) NS_IMETHOD SetPath (const PRUnichar * aPath) { return smth SetPath (aPath); }
#define COM_FORWARD_IParallelPort_SETTER_Path_TO_OBJ(obj) COM_FORWARD_IParallelPort_SETTER_Path_TO ((obj)->)
#define COM_FORWARD_IParallelPort_SETTER_Path_TO_BASE(base) COM_FORWARD_IParallelPort_SETTER_Path_TO (base::)
#define COM_FORWARD_IParallelPort_TO(smth) NS_FORWARD_IPARALLELPORT (smth)
#define COM_FORWARD_IParallelPort_TO_OBJ(obj) COM_FORWARD_IParallelPort_TO ((obj)->)
#define COM_FORWARD_IParallelPort_TO_BASE(base) COM_FORWARD_IParallelPort_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IParallelPort;
%}

[
    uuid(00ae6af4-00a7-4104-0009-49bc00b2da80),
    scriptable
]
interface IMachineDebugger : nsISupports
{
    attribute boolean singleStep;

    attribute boolean recompileUser;

    attribute boolean recompileSupervisor;

    attribute boolean executeAllInIEM;

    attribute boolean PATMEnabled;

    attribute boolean CSAMEnabled;

    attribute boolean logEnabled;

    readonly attribute wstring logDbgFlags;

    readonly attribute wstring logDbgGroups;

    readonly attribute wstring logDbgDestinations;

    readonly attribute wstring logRelFlags;

    readonly attribute wstring logRelGroups;

    readonly attribute wstring logRelDestinations;

    readonly attribute VMExecutionEngine_T executionEngine;

    readonly attribute boolean HWVirtExEnabled;

    readonly attribute boolean HWVirtExNestedPagingEnabled;

    readonly attribute boolean HWVirtExVPIDEnabled;

    readonly attribute boolean HWVirtExUXEnabled;

    readonly attribute wstring OSName;

    readonly attribute wstring OSVersion;

    readonly attribute boolean PAEEnabled;

    attribute unsigned long virtualTimeRate;

    readonly attribute long long VM;

    readonly attribute long long uptime;

    readonly attribute unsigned long InternalAndReservedAttribute1IMachineDebugger;

    readonly attribute unsigned long InternalAndReservedAttribute2IMachineDebugger;

    readonly attribute unsigned long InternalAndReservedAttribute3IMachineDebugger;

    readonly attribute unsigned long InternalAndReservedAttribute4IMachineDebugger;

    readonly attribute unsigned long InternalAndReservedAttribute5IMachineDebugger;

    readonly attribute unsigned long InternalAndReservedAttribute6IMachineDebugger;

    readonly attribute unsigned long InternalAndReservedAttribute7IMachineDebugger;

    readonly attribute unsigned long InternalAndReservedAttribute8IMachineDebugger;

    readonly attribute unsigned long InternalAndReservedAttribute9IMachineDebugger;

    readonly attribute unsigned long InternalAndReservedAttribute10IMachineDebugger;

    readonly attribute unsigned long InternalAndReservedAttribute11IMachineDebugger;

    readonly attribute unsigned long InternalAndReservedAttribute12IMachineDebugger;

    readonly attribute unsigned long InternalAndReservedAttribute13IMachineDebugger;

    readonly attribute unsigned long InternalAndReservedAttribute14IMachineDebugger;

    readonly attribute unsigned long InternalAndReservedAttribute15IMachineDebugger;

    readonly attribute unsigned long InternalAndReservedAttribute16IMachineDebugger;

    void dumpGuestCore (
        in wstring filename,
        in wstring compression
    );

    void dumpHostProcessCore (
        in wstring filename,
        in wstring compression
    );

    void info (
        in wstring name,
        in wstring args,
        [retval] out wstring info
    );

    void injectNMI();

    void modifyLogGroups (
        in wstring settings
    );

    void modifyLogFlags (
        in wstring settings
    );

    void modifyLogDestinations (
        in wstring settings
    );

    void readPhysicalMemory (
        in long long address,
        in unsigned long size,
        out unsigned long bytesSize,
        [array, size_is(bytesSize) , retval] out octet bytes
    );

    void writePhysicalMemory (
        in long long address,
        in unsigned long size,
        in unsigned long bytesSize,
        [array, size_is(bytesSize)] in octet bytes
    );

    void readVirtualMemory (
        in unsigned long cpuId,
        in long long address,
        in unsigned long size,
        out unsigned long bytesSize,
        [array, size_is(bytesSize) , retval] out octet bytes
    );

    void writeVirtualMemory (
        in unsigned long cpuId,
        in long long address,
        in unsigned long size,
        in unsigned long bytesSize,
        [array, size_is(bytesSize)] in octet bytes
    );

    void loadPlugIn (
        in wstring name,
        [retval] out wstring plugInName
    );

    void unloadPlugIn (
        in wstring name
    );

    void detectOS (
        [retval] out wstring os
    );

    void queryOSKernelLog (
        in unsigned long maxMessages,
        [retval] out wstring dmesg
    );

    void getRegister (
        in unsigned long cpuId,
        in wstring name,
        [retval] out wstring value
    );

    void getRegisters (
        in unsigned long cpuId,
        out unsigned long namesSize,
        [array, size_is(namesSize)] out wstring names,
        out unsigned long valuesSize,
        [array, size_is(valuesSize)] out wstring values
    );

    void setRegister (
        in unsigned long cpuId,
        in wstring name,
        in wstring value
    );

    void setRegisters (
        in unsigned long cpuId,
        in unsigned long namesSize,
        [array, size_is(namesSize)] in wstring names,
        in unsigned long valuesSize,
        [array, size_is(valuesSize)] in wstring values
    );

    void dumpGuestStack (
        in unsigned long cpuId,
        [retval] out wstring stack
    );

    void resetStats (
        in wstring pattern
    );

    void dumpStats (
        in wstring pattern
    );

    void getStats (
        in wstring pattern,
        in boolean withDescriptions,
        [retval] out wstring stats
    );

    void getCPULoad (
        in unsigned long cpuId,
        out unsigned long pctExecuting,
        out unsigned long pctHalted,
        out unsigned long pctOther,
        [retval] out long long msInterval
    );

    void InternalAndReservedMethod1IMachineDebugger();

    void InternalAndReservedMethod2IMachineDebugger();

    void InternalAndReservedMethod3IMachineDebugger();

    void InternalAndReservedMethod4IMachineDebugger();

    void InternalAndReservedMethod5IMachineDebugger();

    void InternalAndReservedMethod6IMachineDebugger();

    void InternalAndReservedMethod7IMachineDebugger();

    void InternalAndReservedMethod8IMachineDebugger();

    void InternalAndReservedMethod9IMachineDebugger();

    void InternalAndReservedMethod10IMachineDebugger();

    void InternalAndReservedMethod11IMachineDebugger();

    void InternalAndReservedMethod12IMachineDebugger();

    void InternalAndReservedMethod13IMachineDebugger();

    void InternalAndReservedMethod14IMachineDebugger();

    void InternalAndReservedMethod15IMachineDebugger();

    void InternalAndReservedMethod16IMachineDebugger();

}; /* interface IMachineDebugger */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IMachineDebugger_GETTER_SingleStep_TO(smth) NS_IMETHOD GetSingleStep (PRBool * aSingleStep) { return smth GetSingleStep (aSingleStep); }
#define COM_FORWARD_IMachineDebugger_GETTER_SingleStep_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_SingleStep_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GETTER_SingleStep_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_SingleStep_TO (base::)
#define COM_FORWARD_IMachineDebugger_SETTER_SingleStep_TO(smth) NS_IMETHOD SetSingleStep (PRBool aSingleStep) { return smth SetSingleStep (aSingleStep); }
#define COM_FORWARD_IMachineDebugger_SETTER_SingleStep_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_SETTER_SingleStep_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_SETTER_SingleStep_TO_BASE(base) COM_FORWARD_IMachineDebugger_SETTER_SingleStep_TO (base::)
#define COM_FORWARD_IMachineDebugger_GETTER_RecompileUser_TO(smth) NS_IMETHOD GetRecompileUser (PRBool * aRecompileUser) { return smth GetRecompileUser (aRecompileUser); }
#define COM_FORWARD_IMachineDebugger_GETTER_RecompileUser_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_RecompileUser_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GETTER_RecompileUser_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_RecompileUser_TO (base::)
#define COM_FORWARD_IMachineDebugger_SETTER_RecompileUser_TO(smth) NS_IMETHOD SetRecompileUser (PRBool aRecompileUser) { return smth SetRecompileUser (aRecompileUser); }
#define COM_FORWARD_IMachineDebugger_SETTER_RecompileUser_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_SETTER_RecompileUser_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_SETTER_RecompileUser_TO_BASE(base) COM_FORWARD_IMachineDebugger_SETTER_RecompileUser_TO (base::)
#define COM_FORWARD_IMachineDebugger_GETTER_RecompileSupervisor_TO(smth) NS_IMETHOD GetRecompileSupervisor (PRBool * aRecompileSupervisor) { return smth GetRecompileSupervisor (aRecompileSupervisor); }
#define COM_FORWARD_IMachineDebugger_GETTER_RecompileSupervisor_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_RecompileSupervisor_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GETTER_RecompileSupervisor_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_RecompileSupervisor_TO (base::)
#define COM_FORWARD_IMachineDebugger_SETTER_RecompileSupervisor_TO(smth) NS_IMETHOD SetRecompileSupervisor (PRBool aRecompileSupervisor) { return smth SetRecompileSupervisor (aRecompileSupervisor); }
#define COM_FORWARD_IMachineDebugger_SETTER_RecompileSupervisor_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_SETTER_RecompileSupervisor_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_SETTER_RecompileSupervisor_TO_BASE(base) COM_FORWARD_IMachineDebugger_SETTER_RecompileSupervisor_TO (base::)
#define COM_FORWARD_IMachineDebugger_GETTER_ExecuteAllInIEM_TO(smth) NS_IMETHOD GetExecuteAllInIEM (PRBool * aExecuteAllInIEM) { return smth GetExecuteAllInIEM (aExecuteAllInIEM); }
#define COM_FORWARD_IMachineDebugger_GETTER_ExecuteAllInIEM_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_ExecuteAllInIEM_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GETTER_ExecuteAllInIEM_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_ExecuteAllInIEM_TO (base::)
#define COM_FORWARD_IMachineDebugger_SETTER_ExecuteAllInIEM_TO(smth) NS_IMETHOD SetExecuteAllInIEM (PRBool aExecuteAllInIEM) { return smth SetExecuteAllInIEM (aExecuteAllInIEM); }
#define COM_FORWARD_IMachineDebugger_SETTER_ExecuteAllInIEM_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_SETTER_ExecuteAllInIEM_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_SETTER_ExecuteAllInIEM_TO_BASE(base) COM_FORWARD_IMachineDebugger_SETTER_ExecuteAllInIEM_TO (base::)
#define COM_FORWARD_IMachineDebugger_GETTER_PATMEnabled_TO(smth) NS_IMETHOD GetPATMEnabled (PRBool * aPATMEnabled) { return smth GetPATMEnabled (aPATMEnabled); }
#define COM_FORWARD_IMachineDebugger_GETTER_PATMEnabled_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_PATMEnabled_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GETTER_PATMEnabled_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_PATMEnabled_TO (base::)
#define COM_FORWARD_IMachineDebugger_SETTER_PATMEnabled_TO(smth) NS_IMETHOD SetPATMEnabled (PRBool aPATMEnabled) { return smth SetPATMEnabled (aPATMEnabled); }
#define COM_FORWARD_IMachineDebugger_SETTER_PATMEnabled_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_SETTER_PATMEnabled_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_SETTER_PATMEnabled_TO_BASE(base) COM_FORWARD_IMachineDebugger_SETTER_PATMEnabled_TO (base::)
#define COM_FORWARD_IMachineDebugger_GETTER_CSAMEnabled_TO(smth) NS_IMETHOD GetCSAMEnabled (PRBool * aCSAMEnabled) { return smth GetCSAMEnabled (aCSAMEnabled); }
#define COM_FORWARD_IMachineDebugger_GETTER_CSAMEnabled_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_CSAMEnabled_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GETTER_CSAMEnabled_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_CSAMEnabled_TO (base::)
#define COM_FORWARD_IMachineDebugger_SETTER_CSAMEnabled_TO(smth) NS_IMETHOD SetCSAMEnabled (PRBool aCSAMEnabled) { return smth SetCSAMEnabled (aCSAMEnabled); }
#define COM_FORWARD_IMachineDebugger_SETTER_CSAMEnabled_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_SETTER_CSAMEnabled_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_SETTER_CSAMEnabled_TO_BASE(base) COM_FORWARD_IMachineDebugger_SETTER_CSAMEnabled_TO (base::)
#define COM_FORWARD_IMachineDebugger_GETTER_LogEnabled_TO(smth) NS_IMETHOD GetLogEnabled (PRBool * aLogEnabled) { return smth GetLogEnabled (aLogEnabled); }
#define COM_FORWARD_IMachineDebugger_GETTER_LogEnabled_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_LogEnabled_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GETTER_LogEnabled_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_LogEnabled_TO (base::)
#define COM_FORWARD_IMachineDebugger_SETTER_LogEnabled_TO(smth) NS_IMETHOD SetLogEnabled (PRBool aLogEnabled) { return smth SetLogEnabled (aLogEnabled); }
#define COM_FORWARD_IMachineDebugger_SETTER_LogEnabled_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_SETTER_LogEnabled_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_SETTER_LogEnabled_TO_BASE(base) COM_FORWARD_IMachineDebugger_SETTER_LogEnabled_TO (base::)
#define COM_FORWARD_IMachineDebugger_GETTER_LogDbgFlags_TO(smth) NS_IMETHOD GetLogDbgFlags (PRUnichar * * aLogDbgFlags) { return smth GetLogDbgFlags (aLogDbgFlags); }
#define COM_FORWARD_IMachineDebugger_GETTER_LogDbgFlags_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_LogDbgFlags_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GETTER_LogDbgFlags_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_LogDbgFlags_TO (base::)
#define COM_FORWARD_IMachineDebugger_GETTER_LogDbgGroups_TO(smth) NS_IMETHOD GetLogDbgGroups (PRUnichar * * aLogDbgGroups) { return smth GetLogDbgGroups (aLogDbgGroups); }
#define COM_FORWARD_IMachineDebugger_GETTER_LogDbgGroups_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_LogDbgGroups_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GETTER_LogDbgGroups_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_LogDbgGroups_TO (base::)
#define COM_FORWARD_IMachineDebugger_GETTER_LogDbgDestinations_TO(smth) NS_IMETHOD GetLogDbgDestinations (PRUnichar * * aLogDbgDestinations) { return smth GetLogDbgDestinations (aLogDbgDestinations); }
#define COM_FORWARD_IMachineDebugger_GETTER_LogDbgDestinations_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_LogDbgDestinations_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GETTER_LogDbgDestinations_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_LogDbgDestinations_TO (base::)
#define COM_FORWARD_IMachineDebugger_GETTER_LogRelFlags_TO(smth) NS_IMETHOD GetLogRelFlags (PRUnichar * * aLogRelFlags) { return smth GetLogRelFlags (aLogRelFlags); }
#define COM_FORWARD_IMachineDebugger_GETTER_LogRelFlags_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_LogRelFlags_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GETTER_LogRelFlags_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_LogRelFlags_TO (base::)
#define COM_FORWARD_IMachineDebugger_GETTER_LogRelGroups_TO(smth) NS_IMETHOD GetLogRelGroups (PRUnichar * * aLogRelGroups) { return smth GetLogRelGroups (aLogRelGroups); }
#define COM_FORWARD_IMachineDebugger_GETTER_LogRelGroups_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_LogRelGroups_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GETTER_LogRelGroups_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_LogRelGroups_TO (base::)
#define COM_FORWARD_IMachineDebugger_GETTER_LogRelDestinations_TO(smth) NS_IMETHOD GetLogRelDestinations (PRUnichar * * aLogRelDestinations) { return smth GetLogRelDestinations (aLogRelDestinations); }
#define COM_FORWARD_IMachineDebugger_GETTER_LogRelDestinations_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_LogRelDestinations_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GETTER_LogRelDestinations_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_LogRelDestinations_TO (base::)
#define COM_FORWARD_IMachineDebugger_GETTER_ExecutionEngine_TO(smth) NS_IMETHOD GetExecutionEngine (PRUint32 * aExecutionEngine) { return smth GetExecutionEngine (aExecutionEngine); }
#define COM_FORWARD_IMachineDebugger_GETTER_ExecutionEngine_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_ExecutionEngine_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GETTER_ExecutionEngine_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_ExecutionEngine_TO (base::)
#define COM_FORWARD_IMachineDebugger_GETTER_HWVirtExEnabled_TO(smth) NS_IMETHOD GetHWVirtExEnabled (PRBool * aHWVirtExEnabled) { return smth GetHWVirtExEnabled (aHWVirtExEnabled); }
#define COM_FORWARD_IMachineDebugger_GETTER_HWVirtExEnabled_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_HWVirtExEnabled_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GETTER_HWVirtExEnabled_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_HWVirtExEnabled_TO (base::)
#define COM_FORWARD_IMachineDebugger_GETTER_HWVirtExNestedPagingEnabled_TO(smth) NS_IMETHOD GetHWVirtExNestedPagingEnabled (PRBool * aHWVirtExNestedPagingEnabled) { return smth GetHWVirtExNestedPagingEnabled (aHWVirtExNestedPagingEnabled); }
#define COM_FORWARD_IMachineDebugger_GETTER_HWVirtExNestedPagingEnabled_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_HWVirtExNestedPagingEnabled_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GETTER_HWVirtExNestedPagingEnabled_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_HWVirtExNestedPagingEnabled_TO (base::)
#define COM_FORWARD_IMachineDebugger_GETTER_HWVirtExVPIDEnabled_TO(smth) NS_IMETHOD GetHWVirtExVPIDEnabled (PRBool * aHWVirtExVPIDEnabled) { return smth GetHWVirtExVPIDEnabled (aHWVirtExVPIDEnabled); }
#define COM_FORWARD_IMachineDebugger_GETTER_HWVirtExVPIDEnabled_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_HWVirtExVPIDEnabled_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GETTER_HWVirtExVPIDEnabled_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_HWVirtExVPIDEnabled_TO (base::)
#define COM_FORWARD_IMachineDebugger_GETTER_HWVirtExUXEnabled_TO(smth) NS_IMETHOD GetHWVirtExUXEnabled (PRBool * aHWVirtExUXEnabled) { return smth GetHWVirtExUXEnabled (aHWVirtExUXEnabled); }
#define COM_FORWARD_IMachineDebugger_GETTER_HWVirtExUXEnabled_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_HWVirtExUXEnabled_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GETTER_HWVirtExUXEnabled_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_HWVirtExUXEnabled_TO (base::)
#define COM_FORWARD_IMachineDebugger_GETTER_OSName_TO(smth) NS_IMETHOD GetOSName (PRUnichar * * aOSName) { return smth GetOSName (aOSName); }
#define COM_FORWARD_IMachineDebugger_GETTER_OSName_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_OSName_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GETTER_OSName_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_OSName_TO (base::)
#define COM_FORWARD_IMachineDebugger_GETTER_OSVersion_TO(smth) NS_IMETHOD GetOSVersion (PRUnichar * * aOSVersion) { return smth GetOSVersion (aOSVersion); }
#define COM_FORWARD_IMachineDebugger_GETTER_OSVersion_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_OSVersion_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GETTER_OSVersion_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_OSVersion_TO (base::)
#define COM_FORWARD_IMachineDebugger_GETTER_PAEEnabled_TO(smth) NS_IMETHOD GetPAEEnabled (PRBool * aPAEEnabled) { return smth GetPAEEnabled (aPAEEnabled); }
#define COM_FORWARD_IMachineDebugger_GETTER_PAEEnabled_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_PAEEnabled_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GETTER_PAEEnabled_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_PAEEnabled_TO (base::)
#define COM_FORWARD_IMachineDebugger_GETTER_VirtualTimeRate_TO(smth) NS_IMETHOD GetVirtualTimeRate (PRUint32 * aVirtualTimeRate) { return smth GetVirtualTimeRate (aVirtualTimeRate); }
#define COM_FORWARD_IMachineDebugger_GETTER_VirtualTimeRate_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_VirtualTimeRate_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GETTER_VirtualTimeRate_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_VirtualTimeRate_TO (base::)
#define COM_FORWARD_IMachineDebugger_SETTER_VirtualTimeRate_TO(smth) NS_IMETHOD SetVirtualTimeRate (PRUint32 aVirtualTimeRate) { return smth SetVirtualTimeRate (aVirtualTimeRate); }
#define COM_FORWARD_IMachineDebugger_SETTER_VirtualTimeRate_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_SETTER_VirtualTimeRate_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_SETTER_VirtualTimeRate_TO_BASE(base) COM_FORWARD_IMachineDebugger_SETTER_VirtualTimeRate_TO (base::)
#define COM_FORWARD_IMachineDebugger_GETTER_VM_TO(smth) NS_IMETHOD GetVM (PRInt64 * aVM) { return smth GetVM (aVM); }
#define COM_FORWARD_IMachineDebugger_GETTER_VM_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_VM_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GETTER_VM_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_VM_TO (base::)
#define COM_FORWARD_IMachineDebugger_GETTER_Uptime_TO(smth) NS_IMETHOD GetUptime (PRInt64 * aUptime) { return smth GetUptime (aUptime); }
#define COM_FORWARD_IMachineDebugger_GETTER_Uptime_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_Uptime_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GETTER_Uptime_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_Uptime_TO (base::)
#define COM_FORWARD_IMachineDebugger_DumpGuestCore_TO(smth) NS_IMETHOD DumpGuestCore (PRUnichar * aFilename, PRUnichar * aCompression) { return smth DumpGuestCore (aFilename, aCompression); }
#define COM_FORWARD_IMachineDebugger_DumpGuestCore_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_DumpGuestCore_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_DumpGuestCore_TO_BASE(base) COM_FORWARD_IMachineDebugger_DumpGuestCore_TO (base::)
#define COM_FORWARD_IMachineDebugger_DumpHostProcessCore_TO(smth) NS_IMETHOD DumpHostProcessCore (PRUnichar * aFilename, PRUnichar * aCompression) { return smth DumpHostProcessCore (aFilename, aCompression); }
#define COM_FORWARD_IMachineDebugger_DumpHostProcessCore_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_DumpHostProcessCore_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_DumpHostProcessCore_TO_BASE(base) COM_FORWARD_IMachineDebugger_DumpHostProcessCore_TO (base::)
#define COM_FORWARD_IMachineDebugger_Info_TO(smth) NS_IMETHOD Info (PRUnichar * aName, PRUnichar * aArgs, PRUnichar * * aInfo) { return smth Info (aName, aArgs, aInfo); }
#define COM_FORWARD_IMachineDebugger_Info_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_Info_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_Info_TO_BASE(base) COM_FORWARD_IMachineDebugger_Info_TO (base::)
#define COM_FORWARD_IMachineDebugger_InjectNMI_TO(smth) NS_IMETHOD InjectNMI() { return smth InjectNMI(); }
#define COM_FORWARD_IMachineDebugger_InjectNMI_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_InjectNMI_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_InjectNMI_TO_BASE(base) COM_FORWARD_IMachineDebugger_InjectNMI_TO (base::)
#define COM_FORWARD_IMachineDebugger_ModifyLogGroups_TO(smth) NS_IMETHOD ModifyLogGroups (PRUnichar * aSettings) { return smth ModifyLogGroups (aSettings); }
#define COM_FORWARD_IMachineDebugger_ModifyLogGroups_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_ModifyLogGroups_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_ModifyLogGroups_TO_BASE(base) COM_FORWARD_IMachineDebugger_ModifyLogGroups_TO (base::)
#define COM_FORWARD_IMachineDebugger_ModifyLogFlags_TO(smth) NS_IMETHOD ModifyLogFlags (PRUnichar * aSettings) { return smth ModifyLogFlags (aSettings); }
#define COM_FORWARD_IMachineDebugger_ModifyLogFlags_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_ModifyLogFlags_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_ModifyLogFlags_TO_BASE(base) COM_FORWARD_IMachineDebugger_ModifyLogFlags_TO (base::)
#define COM_FORWARD_IMachineDebugger_ModifyLogDestinations_TO(smth) NS_IMETHOD ModifyLogDestinations (PRUnichar * aSettings) { return smth ModifyLogDestinations (aSettings); }
#define COM_FORWARD_IMachineDebugger_ModifyLogDestinations_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_ModifyLogDestinations_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_ModifyLogDestinations_TO_BASE(base) COM_FORWARD_IMachineDebugger_ModifyLogDestinations_TO (base::)
#define COM_FORWARD_IMachineDebugger_ReadPhysicalMemory_TO(smth) NS_IMETHOD ReadPhysicalMemory (PRInt64 aAddress, PRUint32 aSize, PRUint32 * aBytesSize, PRUint8 * * aBytes) { return smth ReadPhysicalMemory (aAddress, aSize, aBytesSize, aBytes); }
#define COM_FORWARD_IMachineDebugger_ReadPhysicalMemory_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_ReadPhysicalMemory_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_ReadPhysicalMemory_TO_BASE(base) COM_FORWARD_IMachineDebugger_ReadPhysicalMemory_TO (base::)
#define COM_FORWARD_IMachineDebugger_WritePhysicalMemory_TO(smth) NS_IMETHOD WritePhysicalMemory (PRInt64 aAddress, PRUint32 aSize, PRUint32 aBytesSize, PRUint8 * aBytes) { return smth WritePhysicalMemory (aAddress, aSize, aBytesSize, aBytes); }
#define COM_FORWARD_IMachineDebugger_WritePhysicalMemory_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_WritePhysicalMemory_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_WritePhysicalMemory_TO_BASE(base) COM_FORWARD_IMachineDebugger_WritePhysicalMemory_TO (base::)
#define COM_FORWARD_IMachineDebugger_ReadVirtualMemory_TO(smth) NS_IMETHOD ReadVirtualMemory (PRUint32 aCpuId, PRInt64 aAddress, PRUint32 aSize, PRUint32 * aBytesSize, PRUint8 * * aBytes) { return smth ReadVirtualMemory (aCpuId, aAddress, aSize, aBytesSize, aBytes); }
#define COM_FORWARD_IMachineDebugger_ReadVirtualMemory_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_ReadVirtualMemory_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_ReadVirtualMemory_TO_BASE(base) COM_FORWARD_IMachineDebugger_ReadVirtualMemory_TO (base::)
#define COM_FORWARD_IMachineDebugger_WriteVirtualMemory_TO(smth) NS_IMETHOD WriteVirtualMemory (PRUint32 aCpuId, PRInt64 aAddress, PRUint32 aSize, PRUint32 aBytesSize, PRUint8 * aBytes) { return smth WriteVirtualMemory (aCpuId, aAddress, aSize, aBytesSize, aBytes); }
#define COM_FORWARD_IMachineDebugger_WriteVirtualMemory_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_WriteVirtualMemory_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_WriteVirtualMemory_TO_BASE(base) COM_FORWARD_IMachineDebugger_WriteVirtualMemory_TO (base::)
#define COM_FORWARD_IMachineDebugger_LoadPlugIn_TO(smth) NS_IMETHOD LoadPlugIn (PRUnichar * aName, PRUnichar * * aPlugInName) { return smth LoadPlugIn (aName, aPlugInName); }
#define COM_FORWARD_IMachineDebugger_LoadPlugIn_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_LoadPlugIn_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_LoadPlugIn_TO_BASE(base) COM_FORWARD_IMachineDebugger_LoadPlugIn_TO (base::)
#define COM_FORWARD_IMachineDebugger_UnloadPlugIn_TO(smth) NS_IMETHOD UnloadPlugIn (PRUnichar * aName) { return smth UnloadPlugIn (aName); }
#define COM_FORWARD_IMachineDebugger_UnloadPlugIn_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_UnloadPlugIn_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_UnloadPlugIn_TO_BASE(base) COM_FORWARD_IMachineDebugger_UnloadPlugIn_TO (base::)
#define COM_FORWARD_IMachineDebugger_DetectOS_TO(smth) NS_IMETHOD DetectOS (PRUnichar * * aOs) { return smth DetectOS (aOs); }
#define COM_FORWARD_IMachineDebugger_DetectOS_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_DetectOS_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_DetectOS_TO_BASE(base) COM_FORWARD_IMachineDebugger_DetectOS_TO (base::)
#define COM_FORWARD_IMachineDebugger_QueryOSKernelLog_TO(smth) NS_IMETHOD QueryOSKernelLog (PRUint32 aMaxMessages, PRUnichar * * aDmesg) { return smth QueryOSKernelLog (aMaxMessages, aDmesg); }
#define COM_FORWARD_IMachineDebugger_QueryOSKernelLog_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_QueryOSKernelLog_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_QueryOSKernelLog_TO_BASE(base) COM_FORWARD_IMachineDebugger_QueryOSKernelLog_TO (base::)
#define COM_FORWARD_IMachineDebugger_GetRegister_TO(smth) NS_IMETHOD GetRegister (PRUint32 aCpuId, PRUnichar * aName, PRUnichar * * aValue) { return smth GetRegister (aCpuId, aName, aValue); }
#define COM_FORWARD_IMachineDebugger_GetRegister_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GetRegister_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GetRegister_TO_BASE(base) COM_FORWARD_IMachineDebugger_GetRegister_TO (base::)
#define COM_FORWARD_IMachineDebugger_GetRegisters_TO(smth) NS_IMETHOD GetRegisters (PRUint32 aCpuId, PRUint32 * aNamesSize, PRUnichar * * * aNames, PRUint32 * aValuesSize, PRUnichar * * * aValues) { return smth GetRegisters (aCpuId, aNamesSize+++, aNames, aValuesSize, aValues); }
#define COM_FORWARD_IMachineDebugger_GetRegisters_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GetRegisters_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GetRegisters_TO_BASE(base) COM_FORWARD_IMachineDebugger_GetRegisters_TO (base::)
#define COM_FORWARD_IMachineDebugger_SetRegister_TO(smth) NS_IMETHOD SetRegister (PRUint32 aCpuId, PRUnichar * aName, PRUnichar * aValue) { return smth SetRegister (aCpuId, aName, aValue); }
#define COM_FORWARD_IMachineDebugger_SetRegister_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_SetRegister_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_SetRegister_TO_BASE(base) COM_FORWARD_IMachineDebugger_SetRegister_TO (base::)
#define COM_FORWARD_IMachineDebugger_SetRegisters_TO(smth) NS_IMETHOD SetRegisters (PRUint32 aCpuId, PRUint32 aNamesSize, PRUnichar * * aNames, PRUint32 aValuesSize, PRUnichar * * aValues) { return smth SetRegisters (aCpuId, aNamesSize+++, aNames, aValuesSize, aValues); }
#define COM_FORWARD_IMachineDebugger_SetRegisters_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_SetRegisters_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_SetRegisters_TO_BASE(base) COM_FORWARD_IMachineDebugger_SetRegisters_TO (base::)
#define COM_FORWARD_IMachineDebugger_DumpGuestStack_TO(smth) NS_IMETHOD DumpGuestStack (PRUint32 aCpuId, PRUnichar * * aStack) { return smth DumpGuestStack (aCpuId, aStack); }
#define COM_FORWARD_IMachineDebugger_DumpGuestStack_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_DumpGuestStack_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_DumpGuestStack_TO_BASE(base) COM_FORWARD_IMachineDebugger_DumpGuestStack_TO (base::)
#define COM_FORWARD_IMachineDebugger_ResetStats_TO(smth) NS_IMETHOD ResetStats (PRUnichar * aPattern) { return smth ResetStats (aPattern); }
#define COM_FORWARD_IMachineDebugger_ResetStats_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_ResetStats_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_ResetStats_TO_BASE(base) COM_FORWARD_IMachineDebugger_ResetStats_TO (base::)
#define COM_FORWARD_IMachineDebugger_DumpStats_TO(smth) NS_IMETHOD DumpStats (PRUnichar * aPattern) { return smth DumpStats (aPattern); }
#define COM_FORWARD_IMachineDebugger_DumpStats_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_DumpStats_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_DumpStats_TO_BASE(base) COM_FORWARD_IMachineDebugger_DumpStats_TO (base::)
#define COM_FORWARD_IMachineDebugger_GetStats_TO(smth) NS_IMETHOD GetStats (PRUnichar * aPattern, PRBool aWithDescriptions, PRUnichar * * aStats) { return smth GetStats (aPattern, aWithDescriptions, aStats); }
#define COM_FORWARD_IMachineDebugger_GetStats_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GetStats_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GetStats_TO_BASE(base) COM_FORWARD_IMachineDebugger_GetStats_TO (base::)
#define COM_FORWARD_IMachineDebugger_GetCPULoad_TO(smth) NS_IMETHOD GetCPULoad (PRUint32 aCpuId, PRUint32 * aPctExecuting, PRUint32 * aPctHalted, PRUint32 * aPctOther, PRInt64 * aMsInterval) { return smth GetCPULoad (aCpuId, aPctExecuting, aPctHalted, aPctOther, aMsInterval); }
#define COM_FORWARD_IMachineDebugger_GetCPULoad_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GetCPULoad_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GetCPULoad_TO_BASE(base) COM_FORWARD_IMachineDebugger_GetCPULoad_TO (base::)
#define COM_FORWARD_IMachineDebugger_TO(smth) NS_FORWARD_IMACHINEDEBUGGER (smth)
#define COM_FORWARD_IMachineDebugger_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_TO_BASE(base) COM_FORWARD_IMachineDebugger_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IMachineDebugger;
%}

[
    uuid(9709db9b-3346-49d6-8f1c-41b0c4784ff2),
    scriptable
]
interface IUSBDeviceFilters : nsISupports
{
    void getDeviceFilters (
        out unsigned long deviceFiltersSize,
        [array, size_is(deviceFiltersSize), retval] out IUSBDeviceFilter deviceFilters
    );

    readonly attribute unsigned long InternalAndReservedAttribute1IUSBDeviceFilters;

    readonly attribute unsigned long InternalAndReservedAttribute2IUSBDeviceFilters;

    void createDeviceFilter (
        in wstring name,
        [retval] out IUSBDeviceFilter filter
    );

    void insertDeviceFilter (
        in unsigned long position,
        in IUSBDeviceFilter filter
    );

    void removeDeviceFilter (
        in unsigned long position,
        [retval] out IUSBDeviceFilter filter
    );

    void InternalAndReservedMethod1IUSBDeviceFilters();

    void InternalAndReservedMethod2IUSBDeviceFilters();

}; /* interface IUSBDeviceFilters */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IUSBDeviceFilters_GETTER_DeviceFilters_TO(smth) NS_IMETHOD GetDeviceFilters (PRUint32 * aDeviceFiltersSize, IUSBDeviceFilter * * * aDeviceFilters) { return smth GetDeviceFilters (aDeviceFiltersSize, aDeviceFilters); }
#define COM_FORWARD_IUSBDeviceFilters_GETTER_DeviceFilters_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilters_GETTER_DeviceFilters_TO ((obj)->)
#define COM_FORWARD_IUSBDeviceFilters_GETTER_DeviceFilters_TO_BASE(base) COM_FORWARD_IUSBDeviceFilters_GETTER_DeviceFilters_TO (base::)
#define COM_FORWARD_IUSBDeviceFilters_CreateDeviceFilter_TO(smth) NS_IMETHOD CreateDeviceFilter (PRUnichar * aName, IUSBDeviceFilter * * aFilter) { return smth CreateDeviceFilter (aName, aFilter); }
#define COM_FORWARD_IUSBDeviceFilters_CreateDeviceFilter_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilters_CreateDeviceFilter_TO ((obj)->)
#define COM_FORWARD_IUSBDeviceFilters_CreateDeviceFilter_TO_BASE(base) COM_FORWARD_IUSBDeviceFilters_CreateDeviceFilter_TO (base::)
#define COM_FORWARD_IUSBDeviceFilters_InsertDeviceFilter_TO(smth) NS_IMETHOD InsertDeviceFilter (PRUint32 aPosition, IUSBDeviceFilter * aFilter) { return smth InsertDeviceFilter (aPosition, aFilter); }
#define COM_FORWARD_IUSBDeviceFilters_InsertDeviceFilter_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilters_InsertDeviceFilter_TO ((obj)->)
#define COM_FORWARD_IUSBDeviceFilters_InsertDeviceFilter_TO_BASE(base) COM_FORWARD_IUSBDeviceFilters_InsertDeviceFilter_TO (base::)
#define COM_FORWARD_IUSBDeviceFilters_RemoveDeviceFilter_TO(smth) NS_IMETHOD RemoveDeviceFilter (PRUint32 aPosition, IUSBDeviceFilter * * aFilter) { return smth RemoveDeviceFilter (aPosition, aFilter); }
#define COM_FORWARD_IUSBDeviceFilters_RemoveDeviceFilter_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilters_RemoveDeviceFilter_TO ((obj)->)
#define COM_FORWARD_IUSBDeviceFilters_RemoveDeviceFilter_TO_BASE(base) COM_FORWARD_IUSBDeviceFilters_RemoveDeviceFilter_TO (base::)
#define COM_FORWARD_IUSBDeviceFilters_TO(smth) NS_FORWARD_IUSBDEVICEFILTERS (smth)
#define COM_FORWARD_IUSBDeviceFilters_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilters_TO ((obj)->)
#define COM_FORWARD_IUSBDeviceFilters_TO_BASE(base) COM_FORWARD_IUSBDeviceFilters_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IUSBDeviceFilters;
%}

[
    uuid(ee206a6e-7ff8-4a84-bd34-0c651e118bb5),
    scriptable
]
interface IUSBController : nsISupports
{
    attribute wstring name;

    attribute USBControllerType_T type;

    readonly attribute unsigned short USBStandard;

    readonly attribute unsigned long InternalAndReservedAttribute1IUSBController;

    readonly attribute unsigned long InternalAndReservedAttribute2IUSBController;

    readonly attribute unsigned long InternalAndReservedAttribute3IUSBController;

    readonly attribute unsigned long InternalAndReservedAttribute4IUSBController;

}; /* interface IUSBController */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IUSBController_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_IUSBController_GETTER_Name_TO_OBJ(obj) COM_FORWARD_IUSBController_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_IUSBController_GETTER_Name_TO_BASE(base) COM_FORWARD_IUSBController_GETTER_Name_TO (base::)
#define COM_FORWARD_IUSBController_SETTER_Name_TO(smth) NS_IMETHOD SetName (const PRUnichar * aName) { return smth SetName (aName); }
#define COM_FORWARD_IUSBController_SETTER_Name_TO_OBJ(obj) COM_FORWARD_IUSBController_SETTER_Name_TO ((obj)->)
#define COM_FORWARD_IUSBController_SETTER_Name_TO_BASE(base) COM_FORWARD_IUSBController_SETTER_Name_TO (base::)
#define COM_FORWARD_IUSBController_GETTER_Type_TO(smth) NS_IMETHOD GetType (PRUint32 * aType) { return smth GetType (aType); }
#define COM_FORWARD_IUSBController_GETTER_Type_TO_OBJ(obj) COM_FORWARD_IUSBController_GETTER_Type_TO ((obj)->)
#define COM_FORWARD_IUSBController_GETTER_Type_TO_BASE(base) COM_FORWARD_IUSBController_GETTER_Type_TO (base::)
#define COM_FORWARD_IUSBController_SETTER_Type_TO(smth) NS_IMETHOD SetType (PRUint32 aType) { return smth SetType (aType); }
#define COM_FORWARD_IUSBController_SETTER_Type_TO_OBJ(obj) COM_FORWARD_IUSBController_SETTER_Type_TO ((obj)->)
#define COM_FORWARD_IUSBController_SETTER_Type_TO_BASE(base) COM_FORWARD_IUSBController_SETTER_Type_TO (base::)
#define COM_FORWARD_IUSBController_GETTER_USBStandard_TO(smth) NS_IMETHOD GetUSBStandard (PRUint16 * aUSBStandard) { return smth GetUSBStandard (aUSBStandard); }
#define COM_FORWARD_IUSBController_GETTER_USBStandard_TO_OBJ(obj) COM_FORWARD_IUSBController_GETTER_USBStandard_TO ((obj)->)
#define COM_FORWARD_IUSBController_GETTER_USBStandard_TO_BASE(base) COM_FORWARD_IUSBController_GETTER_USBStandard_TO (base::)
#define COM_FORWARD_IUSBController_TO(smth) NS_FORWARD_IUSBCONTROLLER (smth)
#define COM_FORWARD_IUSBController_TO_OBJ(obj) COM_FORWARD_IUSBController_TO ((obj)->)
#define COM_FORWARD_IUSBController_TO_BASE(base) COM_FORWARD_IUSBController_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IUSBController;
%}

[
    uuid(6dc83c2c-81a9-4005-9d52-fc45a78bf3f5),
    scriptable
]
interface IUSBDevice : nsISupports
{
    readonly attribute wstring id;

    readonly attribute unsigned short vendorId;

    readonly attribute unsigned short productId;

    readonly attribute unsigned short revision;

    readonly attribute wstring manufacturer;

    readonly attribute wstring product;

    readonly attribute wstring serialNumber;

    readonly attribute wstring address;

    readonly attribute unsigned short port;

    readonly attribute wstring portPath;

    readonly attribute unsigned short version;

    readonly attribute USBConnectionSpeed_T speed;

    readonly attribute boolean remote;

    void getDeviceInfo (
        out unsigned long deviceInfoSize,
        [array, size_is(deviceInfoSize), retval] out wstring deviceInfo
    );

    readonly attribute wstring backend;

    readonly attribute unsigned long InternalAndReservedAttribute1IUSBDevice;

    readonly attribute unsigned long InternalAndReservedAttribute2IUSBDevice;

    readonly attribute unsigned long InternalAndReservedAttribute3IUSBDevice;

    readonly attribute unsigned long InternalAndReservedAttribute4IUSBDevice;

}; /* interface IUSBDevice */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IUSBDevice_GETTER_Id_TO(smth) NS_IMETHOD GetId (PRUnichar * * aId) { return smth GetId (aId); }
#define COM_FORWARD_IUSBDevice_GETTER_Id_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_Id_TO ((obj)->)
#define COM_FORWARD_IUSBDevice_GETTER_Id_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_Id_TO (base::)
#define COM_FORWARD_IUSBDevice_GETTER_VendorId_TO(smth) NS_IMETHOD GetVendorId (PRUint16 * aVendorId) { return smth GetVendorId (aVendorId); }
#define COM_FORWARD_IUSBDevice_GETTER_VendorId_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_VendorId_TO ((obj)->)
#define COM_FORWARD_IUSBDevice_GETTER_VendorId_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_VendorId_TO (base::)
#define COM_FORWARD_IUSBDevice_GETTER_ProductId_TO(smth) NS_IMETHOD GetProductId (PRUint16 * aProductId) { return smth GetProductId (aProductId); }
#define COM_FORWARD_IUSBDevice_GETTER_ProductId_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_ProductId_TO ((obj)->)
#define COM_FORWARD_IUSBDevice_GETTER_ProductId_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_ProductId_TO (base::)
#define COM_FORWARD_IUSBDevice_GETTER_Revision_TO(smth) NS_IMETHOD GetRevision (PRUint16 * aRevision) { return smth GetRevision (aRevision); }
#define COM_FORWARD_IUSBDevice_GETTER_Revision_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_Revision_TO ((obj)->)
#define COM_FORWARD_IUSBDevice_GETTER_Revision_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_Revision_TO (base::)
#define COM_FORWARD_IUSBDevice_GETTER_Manufacturer_TO(smth) NS_IMETHOD GetManufacturer (PRUnichar * * aManufacturer) { return smth GetManufacturer (aManufacturer); }
#define COM_FORWARD_IUSBDevice_GETTER_Manufacturer_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_Manufacturer_TO ((obj)->)
#define COM_FORWARD_IUSBDevice_GETTER_Manufacturer_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_Manufacturer_TO (base::)
#define COM_FORWARD_IUSBDevice_GETTER_Product_TO(smth) NS_IMETHOD GetProduct (PRUnichar * * aProduct) { return smth GetProduct (aProduct); }
#define COM_FORWARD_IUSBDevice_GETTER_Product_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_Product_TO ((obj)->)
#define COM_FORWARD_IUSBDevice_GETTER_Product_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_Product_TO (base::)
#define COM_FORWARD_IUSBDevice_GETTER_SerialNumber_TO(smth) NS_IMETHOD GetSerialNumber (PRUnichar * * aSerialNumber) { return smth GetSerialNumber (aSerialNumber); }
#define COM_FORWARD_IUSBDevice_GETTER_SerialNumber_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_SerialNumber_TO ((obj)->)
#define COM_FORWARD_IUSBDevice_GETTER_SerialNumber_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_SerialNumber_TO (base::)
#define COM_FORWARD_IUSBDevice_GETTER_Address_TO(smth) NS_IMETHOD GetAddress (PRUnichar * * aAddress) { return smth GetAddress (aAddress); }
#define COM_FORWARD_IUSBDevice_GETTER_Address_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_Address_TO ((obj)->)
#define COM_FORWARD_IUSBDevice_GETTER_Address_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_Address_TO (base::)
#define COM_FORWARD_IUSBDevice_GETTER_Port_TO(smth) NS_IMETHOD GetPort (PRUint16 * aPort) { return smth GetPort (aPort); }
#define COM_FORWARD_IUSBDevice_GETTER_Port_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_Port_TO ((obj)->)
#define COM_FORWARD_IUSBDevice_GETTER_Port_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_Port_TO (base::)
#define COM_FORWARD_IUSBDevice_GETTER_PortPath_TO(smth) NS_IMETHOD GetPortPath (PRUnichar * * aPortPath) { return smth GetPortPath (aPortPath); }
#define COM_FORWARD_IUSBDevice_GETTER_PortPath_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_PortPath_TO ((obj)->)
#define COM_FORWARD_IUSBDevice_GETTER_PortPath_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_PortPath_TO (base::)
#define COM_FORWARD_IUSBDevice_GETTER_Version_TO(smth) NS_IMETHOD GetVersion (PRUint16 * aVersion) { return smth GetVersion (aVersion); }
#define COM_FORWARD_IUSBDevice_GETTER_Version_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_Version_TO ((obj)->)
#define COM_FORWARD_IUSBDevice_GETTER_Version_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_Version_TO (base::)
#define COM_FORWARD_IUSBDevice_GETTER_Speed_TO(smth) NS_IMETHOD GetSpeed (PRUint32 * aSpeed) { return smth GetSpeed (aSpeed); }
#define COM_FORWARD_IUSBDevice_GETTER_Speed_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_Speed_TO ((obj)->)
#define COM_FORWARD_IUSBDevice_GETTER_Speed_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_Speed_TO (base::)
#define COM_FORWARD_IUSBDevice_GETTER_Remote_TO(smth) NS_IMETHOD GetRemote (PRBool * aRemote) { return smth GetRemote (aRemote); }
#define COM_FORWARD_IUSBDevice_GETTER_Remote_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_Remote_TO ((obj)->)
#define COM_FORWARD_IUSBDevice_GETTER_Remote_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_Remote_TO (base::)
#define COM_FORWARD_IUSBDevice_GETTER_DeviceInfo_TO(smth) NS_IMETHOD GetDeviceInfo (PRUint32 * aDeviceInfoSize, PRUnichar * * * aDeviceInfo) { return smth GetDeviceInfo (aDeviceInfoSize, aDeviceInfo); }
#define COM_FORWARD_IUSBDevice_GETTER_DeviceInfo_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_DeviceInfo_TO ((obj)->)
#define COM_FORWARD_IUSBDevice_GETTER_DeviceInfo_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_DeviceInfo_TO (base::)
#define COM_FORWARD_IUSBDevice_GETTER_Backend_TO(smth) NS_IMETHOD GetBackend (PRUnichar * * aBackend) { return smth GetBackend (aBackend); }
#define COM_FORWARD_IUSBDevice_GETTER_Backend_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_Backend_TO ((obj)->)
#define COM_FORWARD_IUSBDevice_GETTER_Backend_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_Backend_TO (base::)
#define COM_FORWARD_IUSBDevice_TO(smth) NS_FORWARD_IUSBDEVICE (smth)
#define COM_FORWARD_IUSBDevice_TO_OBJ(obj) COM_FORWARD_IUSBDevice_TO ((obj)->)
#define COM_FORWARD_IUSBDevice_TO_BASE(base) COM_FORWARD_IUSBDevice_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IUSBDevice;
%}

[
    uuid(45587218-4289-ef4e-8e6a-e5b07816b631),
    scriptable
]
interface IUSBDeviceFilter : nsISupports
{
    attribute wstring name;

    attribute boolean active;

    attribute wstring vendorId;

    attribute wstring productId;

    attribute wstring revision;

    attribute wstring manufacturer;

    attribute wstring product;

    attribute wstring serialNumber;

    attribute wstring port;

    attribute wstring remote;

    attribute unsigned long maskedInterfaces;

    readonly attribute unsigned long InternalAndReservedAttribute1IUSBDeviceFilter;

    readonly attribute unsigned long InternalAndReservedAttribute2IUSBDeviceFilter;

    readonly attribute unsigned long InternalAndReservedAttribute3IUSBDeviceFilter;

    readonly attribute unsigned long InternalAndReservedAttribute4IUSBDeviceFilter;

    readonly attribute unsigned long InternalAndReservedAttribute5IUSBDeviceFilter;

    readonly attribute unsigned long InternalAndReservedAttribute6IUSBDeviceFilter;

    readonly attribute unsigned long InternalAndReservedAttribute7IUSBDeviceFilter;

    readonly attribute unsigned long InternalAndReservedAttribute8IUSBDeviceFilter;

}; /* interface IUSBDeviceFilter */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IUSBDeviceFilter_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_IUSBDeviceFilter_GETTER_Name_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_IUSBDeviceFilter_GETTER_Name_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_GETTER_Name_TO (base::)
#define COM_FORWARD_IUSBDeviceFilter_SETTER_Name_TO(smth) NS_IMETHOD SetName (const PRUnichar * aName) { return smth SetName (aName); }
#define COM_FORWARD_IUSBDeviceFilter_SETTER_Name_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_SETTER_Name_TO ((obj)->)
#define COM_FORWARD_IUSBDeviceFilter_SETTER_Name_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_SETTER_Name_TO (base::)
#define COM_FORWARD_IUSBDeviceFilter_GETTER_Active_TO(smth) NS_IMETHOD GetActive (PRBool * aActive) { return smth GetActive (aActive); }
#define COM_FORWARD_IUSBDeviceFilter_GETTER_Active_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_GETTER_Active_TO ((obj)->)
#define COM_FORWARD_IUSBDeviceFilter_GETTER_Active_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_GETTER_Active_TO (base::)
#define COM_FORWARD_IUSBDeviceFilter_SETTER_Active_TO(smth) NS_IMETHOD SetActive (PRBool aActive) { return smth SetActive (aActive); }
#define COM_FORWARD_IUSBDeviceFilter_SETTER_Active_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_SETTER_Active_TO ((obj)->)
#define COM_FORWARD_IUSBDeviceFilter_SETTER_Active_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_SETTER_Active_TO (base::)
#define COM_FORWARD_IUSBDeviceFilter_GETTER_VendorId_TO(smth) NS_IMETHOD GetVendorId (PRUnichar * * aVendorId) { return smth GetVendorId (aVendorId); }
#define COM_FORWARD_IUSBDeviceFilter_GETTER_VendorId_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_GETTER_VendorId_TO ((obj)->)
#define COM_FORWARD_IUSBDeviceFilter_GETTER_VendorId_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_GETTER_VendorId_TO (base::)
#define COM_FORWARD_IUSBDeviceFilter_SETTER_VendorId_TO(smth) NS_IMETHOD SetVendorId (const PRUnichar * aVendorId) { return smth SetVendorId (aVendorId); }
#define COM_FORWARD_IUSBDeviceFilter_SETTER_VendorId_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_SETTER_VendorId_TO ((obj)->)
#define COM_FORWARD_IUSBDeviceFilter_SETTER_VendorId_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_SETTER_VendorId_TO (base::)
#define COM_FORWARD_IUSBDeviceFilter_GETTER_ProductId_TO(smth) NS_IMETHOD GetProductId (PRUnichar * * aProductId) { return smth GetProductId (aProductId); }
#define COM_FORWARD_IUSBDeviceFilter_GETTER_ProductId_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_GETTER_ProductId_TO ((obj)->)
#define COM_FORWARD_IUSBDeviceFilter_GETTER_ProductId_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_GETTER_ProductId_TO (base::)
#define COM_FORWARD_IUSBDeviceFilter_SETTER_ProductId_TO(smth) NS_IMETHOD SetProductId (const PRUnichar * aProductId) { return smth SetProductId (aProductId); }
#define COM_FORWARD_IUSBDeviceFilter_SETTER_ProductId_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_SETTER_ProductId_TO ((obj)->)
#define COM_FORWARD_IUSBDeviceFilter_SETTER_ProductId_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_SETTER_ProductId_TO (base::)
#define COM_FORWARD_IUSBDeviceFilter_GETTER_Revision_TO(smth) NS_IMETHOD GetRevision (PRUnichar * * aRevision) { return smth GetRevision (aRevision); }
#define COM_FORWARD_IUSBDeviceFilter_GETTER_Revision_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_GETTER_Revision_TO ((obj)->)
#define COM_FORWARD_IUSBDeviceFilter_GETTER_Revision_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_GETTER_Revision_TO (base::)
#define COM_FORWARD_IUSBDeviceFilter_SETTER_Revision_TO(smth) NS_IMETHOD SetRevision (const PRUnichar * aRevision) { return smth SetRevision (aRevision); }
#define COM_FORWARD_IUSBDeviceFilter_SETTER_Revision_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_SETTER_Revision_TO ((obj)->)
#define COM_FORWARD_IUSBDeviceFilter_SETTER_Revision_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_SETTER_Revision_TO (base::)
#define COM_FORWARD_IUSBDeviceFilter_GETTER_Manufacturer_TO(smth) NS_IMETHOD GetManufacturer (PRUnichar * * aManufacturer) { return smth GetManufacturer (aManufacturer); }
#define COM_FORWARD_IUSBDeviceFilter_GETTER_Manufacturer_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_GETTER_Manufacturer_TO ((obj)->)
#define COM_FORWARD_IUSBDeviceFilter_GETTER_Manufacturer_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_GETTER_Manufacturer_TO (base::)
#define COM_FORWARD_IUSBDeviceFilter_SETTER_Manufacturer_TO(smth) NS_IMETHOD SetManufacturer (const PRUnichar * aManufacturer) { return smth SetManufacturer (aManufacturer); }
#define COM_FORWARD_IUSBDeviceFilter_SETTER_Manufacturer_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_SETTER_Manufacturer_TO ((obj)->)
#define COM_FORWARD_IUSBDeviceFilter_SETTER_Manufacturer_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_SETTER_Manufacturer_TO (base::)
#define COM_FORWARD_IUSBDeviceFilter_GETTER_Product_TO(smth) NS_IMETHOD GetProduct (PRUnichar * * aProduct) { return smth GetProduct (aProduct); }
#define COM_FORWARD_IUSBDeviceFilter_GETTER_Product_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_GETTER_Product_TO ((obj)->)
#define COM_FORWARD_IUSBDeviceFilter_GETTER_Product_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_GETTER_Product_TO (base::)
#define COM_FORWARD_IUSBDeviceFilter_SETTER_Product_TO(smth) NS_IMETHOD SetProduct (const PRUnichar * aProduct) { return smth SetProduct (aProduct); }
#define COM_FORWARD_IUSBDeviceFilter_SETTER_Product_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_SETTER_Product_TO ((obj)->)
#define COM_FORWARD_IUSBDeviceFilter_SETTER_Product_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_SETTER_Product_TO (base::)
#define COM_FORWARD_IUSBDeviceFilter_GETTER_SerialNumber_TO(smth) NS_IMETHOD GetSerialNumber (PRUnichar * * aSerialNumber) { return smth GetSerialNumber (aSerialNumber); }
#define COM_FORWARD_IUSBDeviceFilter_GETTER_SerialNumber_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_GETTER_SerialNumber_TO ((obj)->)
#define COM_FORWARD_IUSBDeviceFilter_GETTER_SerialNumber_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_GETTER_SerialNumber_TO (base::)
#define COM_FORWARD_IUSBDeviceFilter_SETTER_SerialNumber_TO(smth) NS_IMETHOD SetSerialNumber (const PRUnichar * aSerialNumber) { return smth SetSerialNumber (aSerialNumber); }
#define COM_FORWARD_IUSBDeviceFilter_SETTER_SerialNumber_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_SETTER_SerialNumber_TO ((obj)->)
#define COM_FORWARD_IUSBDeviceFilter_SETTER_SerialNumber_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_SETTER_SerialNumber_TO (base::)
#define COM_FORWARD_IUSBDeviceFilter_GETTER_Port_TO(smth) NS_IMETHOD GetPort (PRUnichar * * aPort) { return smth GetPort (aPort); }
#define COM_FORWARD_IUSBDeviceFilter_GETTER_Port_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_GETTER_Port_TO ((obj)->)
#define COM_FORWARD_IUSBDeviceFilter_GETTER_Port_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_GETTER_Port_TO (base::)
#define COM_FORWARD_IUSBDeviceFilter_SETTER_Port_TO(smth) NS_IMETHOD SetPort (const PRUnichar * aPort) { return smth SetPort (aPort); }
#define COM_FORWARD_IUSBDeviceFilter_SETTER_Port_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_SETTER_Port_TO ((obj)->)
#define COM_FORWARD_IUSBDeviceFilter_SETTER_Port_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_SETTER_Port_TO (base::)
#define COM_FORWARD_IUSBDeviceFilter_GETTER_Remote_TO(smth) NS_IMETHOD GetRemote (PRUnichar * * aRemote) { return smth GetRemote (aRemote); }
#define COM_FORWARD_IUSBDeviceFilter_GETTER_Remote_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_GETTER_Remote_TO ((obj)->)
#define COM_FORWARD_IUSBDeviceFilter_GETTER_Remote_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_GETTER_Remote_TO (base::)
#define COM_FORWARD_IUSBDeviceFilter_SETTER_Remote_TO(smth) NS_IMETHOD SetRemote (const PRUnichar * aRemote) { return smth SetRemote (aRemote); }
#define COM_FORWARD_IUSBDeviceFilter_SETTER_Remote_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_SETTER_Remote_TO ((obj)->)
#define COM_FORWARD_IUSBDeviceFilter_SETTER_Remote_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_SETTER_Remote_TO (base::)
#define COM_FORWARD_IUSBDeviceFilter_GETTER_MaskedInterfaces_TO(smth) NS_IMETHOD GetMaskedInterfaces (PRUint32 * aMaskedInterfaces) { return smth GetMaskedInterfaces (aMaskedInterfaces); }
#define COM_FORWARD_IUSBDeviceFilter_GETTER_MaskedInterfaces_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_GETTER_MaskedInterfaces_TO ((obj)->)
#define COM_FORWARD_IUSBDeviceFilter_GETTER_MaskedInterfaces_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_GETTER_MaskedInterfaces_TO (base::)
#define COM_FORWARD_IUSBDeviceFilter_SETTER_MaskedInterfaces_TO(smth) NS_IMETHOD SetMaskedInterfaces (PRUint32 aMaskedInterfaces) { return smth SetMaskedInterfaces (aMaskedInterfaces); }
#define COM_FORWARD_IUSBDeviceFilter_SETTER_MaskedInterfaces_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_SETTER_MaskedInterfaces_TO ((obj)->)
#define COM_FORWARD_IUSBDeviceFilter_SETTER_MaskedInterfaces_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_SETTER_MaskedInterfaces_TO (base::)
#define COM_FORWARD_IUSBDeviceFilter_TO(smth) NS_FORWARD_IUSBDEVICEFILTER (smth)
#define COM_FORWARD_IUSBDeviceFilter_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_TO ((obj)->)
#define COM_FORWARD_IUSBDeviceFilter_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IUSBDeviceFilter;
%}

[
    uuid(c19073dd-cc7b-431b-98b2-951fda8eab89),
    scriptable
]
interface IHostUSBDevice : IUSBDevice
{
    readonly attribute USBDeviceState_T state;

    readonly attribute unsigned long InternalAndReservedAttribute1IHostUSBDevice;

    readonly attribute unsigned long InternalAndReservedAttribute2IHostUSBDevice;

    readonly attribute unsigned long InternalAndReservedAttribute3IHostUSBDevice;

    readonly attribute unsigned long InternalAndReservedAttribute4IHostUSBDevice;

}; /* interface IHostUSBDevice */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IHostUSBDevice_GETTER_State_TO(smth) NS_IMETHOD GetState (PRUint32 * aState) { return smth GetState (aState); }
#define COM_FORWARD_IHostUSBDevice_GETTER_State_TO_OBJ(obj) COM_FORWARD_IHostUSBDevice_GETTER_State_TO ((obj)->)
#define COM_FORWARD_IHostUSBDevice_GETTER_State_TO_BASE(base) COM_FORWARD_IHostUSBDevice_GETTER_State_TO (base::)
#define COM_FORWARD_IHostUSBDevice_TO(smth) NS_FORWARD_IHOSTUSBDEVICE (smth)
#define COM_FORWARD_IHostUSBDevice_TO_OBJ(obj) COM_FORWARD_IHostUSBDevice_TO ((obj)->)
#define COM_FORWARD_IHostUSBDevice_TO_BASE(base) COM_FORWARD_IHostUSBDevice_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IHostUSBDevice;
%}

[
    uuid(01adb2d6-aedf-461c-be2c-99e91bdad8a1),
    scriptable
]
interface IHostUSBDeviceFilter : IUSBDeviceFilter
{
    attribute USBDeviceFilterAction_T action;

    readonly attribute unsigned long InternalAndReservedAttribute1IHostUSBDeviceFilter;

    readonly attribute unsigned long InternalAndReservedAttribute2IHostUSBDeviceFilter;

    readonly attribute unsigned long InternalAndReservedAttribute3IHostUSBDeviceFilter;

    readonly attribute unsigned long InternalAndReservedAttribute4IHostUSBDeviceFilter;

    readonly attribute unsigned long InternalAndReservedAttribute5IHostUSBDeviceFilter;

    readonly attribute unsigned long InternalAndReservedAttribute6IHostUSBDeviceFilter;

    readonly attribute unsigned long InternalAndReservedAttribute7IHostUSBDeviceFilter;

    readonly attribute unsigned long InternalAndReservedAttribute8IHostUSBDeviceFilter;

}; /* interface IHostUSBDeviceFilter */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IHostUSBDeviceFilter_GETTER_Action_TO(smth) NS_IMETHOD GetAction (PRUint32 * aAction) { return smth GetAction (aAction); }
#define COM_FORWARD_IHostUSBDeviceFilter_GETTER_Action_TO_OBJ(obj) COM_FORWARD_IHostUSBDeviceFilter_GETTER_Action_TO ((obj)->)
#define COM_FORWARD_IHostUSBDeviceFilter_GETTER_Action_TO_BASE(base) COM_FORWARD_IHostUSBDeviceFilter_GETTER_Action_TO (base::)
#define COM_FORWARD_IHostUSBDeviceFilter_SETTER_Action_TO(smth) NS_IMETHOD SetAction (PRUint32 aAction) { return smth SetAction (aAction); }
#define COM_FORWARD_IHostUSBDeviceFilter_SETTER_Action_TO_OBJ(obj) COM_FORWARD_IHostUSBDeviceFilter_SETTER_Action_TO ((obj)->)
#define COM_FORWARD_IHostUSBDeviceFilter_SETTER_Action_TO_BASE(base) COM_FORWARD_IHostUSBDeviceFilter_SETTER_Action_TO (base::)
#define COM_FORWARD_IHostUSBDeviceFilter_TO(smth) NS_FORWARD_IHOSTUSBDEVICEFILTER (smth)
#define COM_FORWARD_IHostUSBDeviceFilter_TO_OBJ(obj) COM_FORWARD_IHostUSBDeviceFilter_TO ((obj)->)
#define COM_FORWARD_IHostUSBDeviceFilter_TO_BASE(base) COM_FORWARD_IHostUSBDeviceFilter_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IHostUSBDeviceFilter;
%}

[
    uuid(dfe56449-6989-4002-80cf-3607f377d40c),
    scriptable
]
interface IUSBProxyBackend : nsISupports
{
    readonly attribute wstring name;

    readonly attribute wstring type;

    readonly attribute unsigned long InternalAndReservedAttribute1IUSBProxyBackend;

    readonly attribute unsigned long InternalAndReservedAttribute2IUSBProxyBackend;

    readonly attribute unsigned long InternalAndReservedAttribute3IUSBProxyBackend;

    readonly attribute unsigned long InternalAndReservedAttribute4IUSBProxyBackend;

    readonly attribute unsigned long InternalAndReservedAttribute5IUSBProxyBackend;

    readonly attribute unsigned long InternalAndReservedAttribute6IUSBProxyBackend;

    readonly attribute unsigned long InternalAndReservedAttribute7IUSBProxyBackend;

    readonly attribute unsigned long InternalAndReservedAttribute8IUSBProxyBackend;

    void InternalAndReservedMethod1IUSBProxyBackend();

    void InternalAndReservedMethod2IUSBProxyBackend();

    void InternalAndReservedMethod3IUSBProxyBackend();

    void InternalAndReservedMethod4IUSBProxyBackend();

}; /* interface IUSBProxyBackend */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IUSBProxyBackend_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_IUSBProxyBackend_GETTER_Name_TO_OBJ(obj) COM_FORWARD_IUSBProxyBackend_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_IUSBProxyBackend_GETTER_Name_TO_BASE(base) COM_FORWARD_IUSBProxyBackend_GETTER_Name_TO (base::)
#define COM_FORWARD_IUSBProxyBackend_GETTER_Type_TO(smth) NS_IMETHOD GetType (PRUnichar * * aType) { return smth GetType (aType); }
#define COM_FORWARD_IUSBProxyBackend_GETTER_Type_TO_OBJ(obj) COM_FORWARD_IUSBProxyBackend_GETTER_Type_TO ((obj)->)
#define COM_FORWARD_IUSBProxyBackend_GETTER_Type_TO_BASE(base) COM_FORWARD_IUSBProxyBackend_GETTER_Type_TO (base::)
#define COM_FORWARD_IUSBProxyBackend_TO(smth) NS_FORWARD_IUSBPROXYBACKEND (smth)
#define COM_FORWARD_IUSBProxyBackend_TO_OBJ(obj) COM_FORWARD_IUSBProxyBackend_TO ((obj)->)
#define COM_FORWARD_IUSBProxyBackend_TO_BASE(base) COM_FORWARD_IUSBProxyBackend_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IUSBProxyBackend;
%}

[
    uuid(5155bfd3-7ba7-45a8-b26d-c91ae3754e37),
    scriptable
]
interface IAudioAdapter : nsISupports
{
    attribute boolean enabled;

    attribute boolean enabledIn;

    attribute boolean enabledOut;

    attribute AudioControllerType_T audioController;

    attribute AudioCodecType_T audioCodec;

    attribute AudioDriverType_T audioDriver;

    void getPropertiesList (
        out unsigned long propertiesListSize,
        [array, size_is(propertiesListSize), retval] out wstring propertiesList
    );

    readonly attribute unsigned long InternalAndReservedAttribute1IAudioAdapter;

    readonly attribute unsigned long InternalAndReservedAttribute2IAudioAdapter;

    readonly attribute unsigned long InternalAndReservedAttribute3IAudioAdapter;

    readonly attribute unsigned long InternalAndReservedAttribute4IAudioAdapter;

    readonly attribute unsigned long InternalAndReservedAttribute5IAudioAdapter;

    readonly attribute unsigned long InternalAndReservedAttribute6IAudioAdapter;

    readonly attribute unsigned long InternalAndReservedAttribute7IAudioAdapter;

    readonly attribute unsigned long InternalAndReservedAttribute8IAudioAdapter;

    void setProperty (
        in wstring key,
        in wstring value
    );

    void getProperty (
        in wstring key,
        [retval] out wstring value
    );

    void InternalAndReservedMethod1IAudioAdapter();

    void InternalAndReservedMethod2IAudioAdapter();

    void InternalAndReservedMethod3IAudioAdapter();

    void InternalAndReservedMethod4IAudioAdapter();

}; /* interface IAudioAdapter */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IAudioAdapter_GETTER_Enabled_TO(smth) NS_IMETHOD GetEnabled (PRBool * aEnabled) { return smth GetEnabled (aEnabled); }
#define COM_FORWARD_IAudioAdapter_GETTER_Enabled_TO_OBJ(obj) COM_FORWARD_IAudioAdapter_GETTER_Enabled_TO ((obj)->)
#define COM_FORWARD_IAudioAdapter_GETTER_Enabled_TO_BASE(base) COM_FORWARD_IAudioAdapter_GETTER_Enabled_TO (base::)
#define COM_FORWARD_IAudioAdapter_SETTER_Enabled_TO(smth) NS_IMETHOD SetEnabled (PRBool aEnabled) { return smth SetEnabled (aEnabled); }
#define COM_FORWARD_IAudioAdapter_SETTER_Enabled_TO_OBJ(obj) COM_FORWARD_IAudioAdapter_SETTER_Enabled_TO ((obj)->)
#define COM_FORWARD_IAudioAdapter_SETTER_Enabled_TO_BASE(base) COM_FORWARD_IAudioAdapter_SETTER_Enabled_TO (base::)
#define COM_FORWARD_IAudioAdapter_GETTER_EnabledIn_TO(smth) NS_IMETHOD GetEnabledIn (PRBool * aEnabledIn) { return smth GetEnabledIn (aEnabledIn); }
#define COM_FORWARD_IAudioAdapter_GETTER_EnabledIn_TO_OBJ(obj) COM_FORWARD_IAudioAdapter_GETTER_EnabledIn_TO ((obj)->)
#define COM_FORWARD_IAudioAdapter_GETTER_EnabledIn_TO_BASE(base) COM_FORWARD_IAudioAdapter_GETTER_EnabledIn_TO (base::)
#define COM_FORWARD_IAudioAdapter_SETTER_EnabledIn_TO(smth) NS_IMETHOD SetEnabledIn (PRBool aEnabledIn) { return smth SetEnabledIn (aEnabledIn); }
#define COM_FORWARD_IAudioAdapter_SETTER_EnabledIn_TO_OBJ(obj) COM_FORWARD_IAudioAdapter_SETTER_EnabledIn_TO ((obj)->)
#define COM_FORWARD_IAudioAdapter_SETTER_EnabledIn_TO_BASE(base) COM_FORWARD_IAudioAdapter_SETTER_EnabledIn_TO (base::)
#define COM_FORWARD_IAudioAdapter_GETTER_EnabledOut_TO(smth) NS_IMETHOD GetEnabledOut (PRBool * aEnabledOut) { return smth GetEnabledOut (aEnabledOut); }
#define COM_FORWARD_IAudioAdapter_GETTER_EnabledOut_TO_OBJ(obj) COM_FORWARD_IAudioAdapter_GETTER_EnabledOut_TO ((obj)->)
#define COM_FORWARD_IAudioAdapter_GETTER_EnabledOut_TO_BASE(base) COM_FORWARD_IAudioAdapter_GETTER_EnabledOut_TO (base::)
#define COM_FORWARD_IAudioAdapter_SETTER_EnabledOut_TO(smth) NS_IMETHOD SetEnabledOut (PRBool aEnabledOut) { return smth SetEnabledOut (aEnabledOut); }
#define COM_FORWARD_IAudioAdapter_SETTER_EnabledOut_TO_OBJ(obj) COM_FORWARD_IAudioAdapter_SETTER_EnabledOut_TO ((obj)->)
#define COM_FORWARD_IAudioAdapter_SETTER_EnabledOut_TO_BASE(base) COM_FORWARD_IAudioAdapter_SETTER_EnabledOut_TO (base::)
#define COM_FORWARD_IAudioAdapter_GETTER_AudioController_TO(smth) NS_IMETHOD GetAudioController (PRUint32 * aAudioController) { return smth GetAudioController (aAudioController); }
#define COM_FORWARD_IAudioAdapter_GETTER_AudioController_TO_OBJ(obj) COM_FORWARD_IAudioAdapter_GETTER_AudioController_TO ((obj)->)
#define COM_FORWARD_IAudioAdapter_GETTER_AudioController_TO_BASE(base) COM_FORWARD_IAudioAdapter_GETTER_AudioController_TO (base::)
#define COM_FORWARD_IAudioAdapter_SETTER_AudioController_TO(smth) NS_IMETHOD SetAudioController (PRUint32 aAudioController) { return smth SetAudioController (aAudioController); }
#define COM_FORWARD_IAudioAdapter_SETTER_AudioController_TO_OBJ(obj) COM_FORWARD_IAudioAdapter_SETTER_AudioController_TO ((obj)->)
#define COM_FORWARD_IAudioAdapter_SETTER_AudioController_TO_BASE(base) COM_FORWARD_IAudioAdapter_SETTER_AudioController_TO (base::)
#define COM_FORWARD_IAudioAdapter_GETTER_AudioCodec_TO(smth) NS_IMETHOD GetAudioCodec (PRUint32 * aAudioCodec) { return smth GetAudioCodec (aAudioCodec); }
#define COM_FORWARD_IAudioAdapter_GETTER_AudioCodec_TO_OBJ(obj) COM_FORWARD_IAudioAdapter_GETTER_AudioCodec_TO ((obj)->)
#define COM_FORWARD_IAudioAdapter_GETTER_AudioCodec_TO_BASE(base) COM_FORWARD_IAudioAdapter_GETTER_AudioCodec_TO (base::)
#define COM_FORWARD_IAudioAdapter_SETTER_AudioCodec_TO(smth) NS_IMETHOD SetAudioCodec (PRUint32 aAudioCodec) { return smth SetAudioCodec (aAudioCodec); }
#define COM_FORWARD_IAudioAdapter_SETTER_AudioCodec_TO_OBJ(obj) COM_FORWARD_IAudioAdapter_SETTER_AudioCodec_TO ((obj)->)
#define COM_FORWARD_IAudioAdapter_SETTER_AudioCodec_TO_BASE(base) COM_FORWARD_IAudioAdapter_SETTER_AudioCodec_TO (base::)
#define COM_FORWARD_IAudioAdapter_GETTER_AudioDriver_TO(smth) NS_IMETHOD GetAudioDriver (PRUint32 * aAudioDriver) { return smth GetAudioDriver (aAudioDriver); }
#define COM_FORWARD_IAudioAdapter_GETTER_AudioDriver_TO_OBJ(obj) COM_FORWARD_IAudioAdapter_GETTER_AudioDriver_TO ((obj)->)
#define COM_FORWARD_IAudioAdapter_GETTER_AudioDriver_TO_BASE(base) COM_FORWARD_IAudioAdapter_GETTER_AudioDriver_TO (base::)
#define COM_FORWARD_IAudioAdapter_SETTER_AudioDriver_TO(smth) NS_IMETHOD SetAudioDriver (PRUint32 aAudioDriver) { return smth SetAudioDriver (aAudioDriver); }
#define COM_FORWARD_IAudioAdapter_SETTER_AudioDriver_TO_OBJ(obj) COM_FORWARD_IAudioAdapter_SETTER_AudioDriver_TO ((obj)->)
#define COM_FORWARD_IAudioAdapter_SETTER_AudioDriver_TO_BASE(base) COM_FORWARD_IAudioAdapter_SETTER_AudioDriver_TO (base::)
#define COM_FORWARD_IAudioAdapter_GETTER_PropertiesList_TO(smth) NS_IMETHOD GetPropertiesList (PRUint32 * aPropertiesListSize, PRUnichar * * * aPropertiesList) { return smth GetPropertiesList (aPropertiesListSize, aPropertiesList); }
#define COM_FORWARD_IAudioAdapter_GETTER_PropertiesList_TO_OBJ(obj) COM_FORWARD_IAudioAdapter_GETTER_PropertiesList_TO ((obj)->)
#define COM_FORWARD_IAudioAdapter_GETTER_PropertiesList_TO_BASE(base) COM_FORWARD_IAudioAdapter_GETTER_PropertiesList_TO (base::)
#define COM_FORWARD_IAudioAdapter_SetProperty_TO(smth) NS_IMETHOD SetProperty (PRUnichar * aKey, PRUnichar * aValue) { return smth SetProperty (aKey, aValue); }
#define COM_FORWARD_IAudioAdapter_SetProperty_TO_OBJ(obj) COM_FORWARD_IAudioAdapter_SetProperty_TO ((obj)->)
#define COM_FORWARD_IAudioAdapter_SetProperty_TO_BASE(base) COM_FORWARD_IAudioAdapter_SetProperty_TO (base::)
#define COM_FORWARD_IAudioAdapter_GetProperty_TO(smth) NS_IMETHOD GetProperty (PRUnichar * aKey, PRUnichar * * aValue) { return smth GetProperty (aKey, aValue); }
#define COM_FORWARD_IAudioAdapter_GetProperty_TO_OBJ(obj) COM_FORWARD_IAudioAdapter_GetProperty_TO ((obj)->)
#define COM_FORWARD_IAudioAdapter_GetProperty_TO_BASE(base) COM_FORWARD_IAudioAdapter_GetProperty_TO (base::)
#define COM_FORWARD_IAudioAdapter_TO(smth) NS_FORWARD_IAUDIOADAPTER (smth)
#define COM_FORWARD_IAudioAdapter_TO_OBJ(obj) COM_FORWARD_IAudioAdapter_TO ((obj)->)
#define COM_FORWARD_IAudioAdapter_TO_BASE(base) COM_FORWARD_IAudioAdapter_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IAudioAdapter;
%}

[
    uuid(08e25756-08a2-41af-a05f-d7c661abaebe),
    scriptable
]
interface IVRDEServer : nsISupports
{
    attribute boolean enabled;

    attribute AuthType_T authType;

    attribute unsigned long authTimeout;

    attribute boolean allowMultiConnection;

    attribute boolean reuseSingleConnection;

    attribute wstring VRDEExtPack;

    attribute wstring authLibrary;

    void getVRDEProperties (
        out unsigned long VRDEPropertiesSize,
        [array, size_is(VRDEPropertiesSize), retval] out wstring VRDEProperties
    );

    readonly attribute unsigned long InternalAndReservedAttribute1IVRDEServer;

    readonly attribute unsigned long InternalAndReservedAttribute2IVRDEServer;

    readonly attribute unsigned long InternalAndReservedAttribute3IVRDEServer;

    readonly attribute unsigned long InternalAndReservedAttribute4IVRDEServer;

    void setVRDEProperty (
        in wstring key,
        in wstring value
    );

    void getVRDEProperty (
        in wstring key,
        [retval] out wstring value
    );

    void InternalAndReservedMethod1IVRDEServer();

    void InternalAndReservedMethod2IVRDEServer();

}; /* interface IVRDEServer */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IVRDEServer_GETTER_Enabled_TO(smth) NS_IMETHOD GetEnabled (PRBool * aEnabled) { return smth GetEnabled (aEnabled); }
#define COM_FORWARD_IVRDEServer_GETTER_Enabled_TO_OBJ(obj) COM_FORWARD_IVRDEServer_GETTER_Enabled_TO ((obj)->)
#define COM_FORWARD_IVRDEServer_GETTER_Enabled_TO_BASE(base) COM_FORWARD_IVRDEServer_GETTER_Enabled_TO (base::)
#define COM_FORWARD_IVRDEServer_SETTER_Enabled_TO(smth) NS_IMETHOD SetEnabled (PRBool aEnabled) { return smth SetEnabled (aEnabled); }
#define COM_FORWARD_IVRDEServer_SETTER_Enabled_TO_OBJ(obj) COM_FORWARD_IVRDEServer_SETTER_Enabled_TO ((obj)->)
#define COM_FORWARD_IVRDEServer_SETTER_Enabled_TO_BASE(base) COM_FORWARD_IVRDEServer_SETTER_Enabled_TO (base::)
#define COM_FORWARD_IVRDEServer_GETTER_AuthType_TO(smth) NS_IMETHOD GetAuthType (PRUint32 * aAuthType) { return smth GetAuthType (aAuthType); }
#define COM_FORWARD_IVRDEServer_GETTER_AuthType_TO_OBJ(obj) COM_FORWARD_IVRDEServer_GETTER_AuthType_TO ((obj)->)
#define COM_FORWARD_IVRDEServer_GETTER_AuthType_TO_BASE(base) COM_FORWARD_IVRDEServer_GETTER_AuthType_TO (base::)
#define COM_FORWARD_IVRDEServer_SETTER_AuthType_TO(smth) NS_IMETHOD SetAuthType (PRUint32 aAuthType) { return smth SetAuthType (aAuthType); }
#define COM_FORWARD_IVRDEServer_SETTER_AuthType_TO_OBJ(obj) COM_FORWARD_IVRDEServer_SETTER_AuthType_TO ((obj)->)
#define COM_FORWARD_IVRDEServer_SETTER_AuthType_TO_BASE(base) COM_FORWARD_IVRDEServer_SETTER_AuthType_TO (base::)
#define COM_FORWARD_IVRDEServer_GETTER_AuthTimeout_TO(smth) NS_IMETHOD GetAuthTimeout (PRUint32 * aAuthTimeout) { return smth GetAuthTimeout (aAuthTimeout); }
#define COM_FORWARD_IVRDEServer_GETTER_AuthTimeout_TO_OBJ(obj) COM_FORWARD_IVRDEServer_GETTER_AuthTimeout_TO ((obj)->)
#define COM_FORWARD_IVRDEServer_GETTER_AuthTimeout_TO_BASE(base) COM_FORWARD_IVRDEServer_GETTER_AuthTimeout_TO (base::)
#define COM_FORWARD_IVRDEServer_SETTER_AuthTimeout_TO(smth) NS_IMETHOD SetAuthTimeout (PRUint32 aAuthTimeout) { return smth SetAuthTimeout (aAuthTimeout); }
#define COM_FORWARD_IVRDEServer_SETTER_AuthTimeout_TO_OBJ(obj) COM_FORWARD_IVRDEServer_SETTER_AuthTimeout_TO ((obj)->)
#define COM_FORWARD_IVRDEServer_SETTER_AuthTimeout_TO_BASE(base) COM_FORWARD_IVRDEServer_SETTER_AuthTimeout_TO (base::)
#define COM_FORWARD_IVRDEServer_GETTER_AllowMultiConnection_TO(smth) NS_IMETHOD GetAllowMultiConnection (PRBool * aAllowMultiConnection) { return smth GetAllowMultiConnection (aAllowMultiConnection); }
#define COM_FORWARD_IVRDEServer_GETTER_AllowMultiConnection_TO_OBJ(obj) COM_FORWARD_IVRDEServer_GETTER_AllowMultiConnection_TO ((obj)->)
#define COM_FORWARD_IVRDEServer_GETTER_AllowMultiConnection_TO_BASE(base) COM_FORWARD_IVRDEServer_GETTER_AllowMultiConnection_TO (base::)
#define COM_FORWARD_IVRDEServer_SETTER_AllowMultiConnection_TO(smth) NS_IMETHOD SetAllowMultiConnection (PRBool aAllowMultiConnection) { return smth SetAllowMultiConnection (aAllowMultiConnection); }
#define COM_FORWARD_IVRDEServer_SETTER_AllowMultiConnection_TO_OBJ(obj) COM_FORWARD_IVRDEServer_SETTER_AllowMultiConnection_TO ((obj)->)
#define COM_FORWARD_IVRDEServer_SETTER_AllowMultiConnection_TO_BASE(base) COM_FORWARD_IVRDEServer_SETTER_AllowMultiConnection_TO (base::)
#define COM_FORWARD_IVRDEServer_GETTER_ReuseSingleConnection_TO(smth) NS_IMETHOD GetReuseSingleConnection (PRBool * aReuseSingleConnection) { return smth GetReuseSingleConnection (aReuseSingleConnection); }
#define COM_FORWARD_IVRDEServer_GETTER_ReuseSingleConnection_TO_OBJ(obj) COM_FORWARD_IVRDEServer_GETTER_ReuseSingleConnection_TO ((obj)->)
#define COM_FORWARD_IVRDEServer_GETTER_ReuseSingleConnection_TO_BASE(base) COM_FORWARD_IVRDEServer_GETTER_ReuseSingleConnection_TO (base::)
#define COM_FORWARD_IVRDEServer_SETTER_ReuseSingleConnection_TO(smth) NS_IMETHOD SetReuseSingleConnection (PRBool aReuseSingleConnection) { return smth SetReuseSingleConnection (aReuseSingleConnection); }
#define COM_FORWARD_IVRDEServer_SETTER_ReuseSingleConnection_TO_OBJ(obj) COM_FORWARD_IVRDEServer_SETTER_ReuseSingleConnection_TO ((obj)->)
#define COM_FORWARD_IVRDEServer_SETTER_ReuseSingleConnection_TO_BASE(base) COM_FORWARD_IVRDEServer_SETTER_ReuseSingleConnection_TO (base::)
#define COM_FORWARD_IVRDEServer_GETTER_VRDEExtPack_TO(smth) NS_IMETHOD GetVRDEExtPack (PRUnichar * * aVRDEExtPack) { return smth GetVRDEExtPack (aVRDEExtPack); }
#define COM_FORWARD_IVRDEServer_GETTER_VRDEExtPack_TO_OBJ(obj) COM_FORWARD_IVRDEServer_GETTER_VRDEExtPack_TO ((obj)->)
#define COM_FORWARD_IVRDEServer_GETTER_VRDEExtPack_TO_BASE(base) COM_FORWARD_IVRDEServer_GETTER_VRDEExtPack_TO (base::)
#define COM_FORWARD_IVRDEServer_SETTER_VRDEExtPack_TO(smth) NS_IMETHOD SetVRDEExtPack (const PRUnichar * aVRDEExtPack) { return smth SetVRDEExtPack (aVRDEExtPack); }
#define COM_FORWARD_IVRDEServer_SETTER_VRDEExtPack_TO_OBJ(obj) COM_FORWARD_IVRDEServer_SETTER_VRDEExtPack_TO ((obj)->)
#define COM_FORWARD_IVRDEServer_SETTER_VRDEExtPack_TO_BASE(base) COM_FORWARD_IVRDEServer_SETTER_VRDEExtPack_TO (base::)
#define COM_FORWARD_IVRDEServer_GETTER_AuthLibrary_TO(smth) NS_IMETHOD GetAuthLibrary (PRUnichar * * aAuthLibrary) { return smth GetAuthLibrary (aAuthLibrary); }
#define COM_FORWARD_IVRDEServer_GETTER_AuthLibrary_TO_OBJ(obj) COM_FORWARD_IVRDEServer_GETTER_AuthLibrary_TO ((obj)->)
#define COM_FORWARD_IVRDEServer_GETTER_AuthLibrary_TO_BASE(base) COM_FORWARD_IVRDEServer_GETTER_AuthLibrary_TO (base::)
#define COM_FORWARD_IVRDEServer_SETTER_AuthLibrary_TO(smth) NS_IMETHOD SetAuthLibrary (const PRUnichar * aAuthLibrary) { return smth SetAuthLibrary (aAuthLibrary); }
#define COM_FORWARD_IVRDEServer_SETTER_AuthLibrary_TO_OBJ(obj) COM_FORWARD_IVRDEServer_SETTER_AuthLibrary_TO ((obj)->)
#define COM_FORWARD_IVRDEServer_SETTER_AuthLibrary_TO_BASE(base) COM_FORWARD_IVRDEServer_SETTER_AuthLibrary_TO (base::)
#define COM_FORWARD_IVRDEServer_GETTER_VRDEProperties_TO(smth) NS_IMETHOD GetVRDEProperties (PRUint32 * aVRDEPropertiesSize, PRUnichar * * * aVRDEProperties) { return smth GetVRDEProperties (aVRDEPropertiesSize, aVRDEProperties); }
#define COM_FORWARD_IVRDEServer_GETTER_VRDEProperties_TO_OBJ(obj) COM_FORWARD_IVRDEServer_GETTER_VRDEProperties_TO ((obj)->)
#define COM_FORWARD_IVRDEServer_GETTER_VRDEProperties_TO_BASE(base) COM_FORWARD_IVRDEServer_GETTER_VRDEProperties_TO (base::)
#define COM_FORWARD_IVRDEServer_SetVRDEProperty_TO(smth) NS_IMETHOD SetVRDEProperty (PRUnichar * aKey, PRUnichar * aValue) { return smth SetVRDEProperty (aKey, aValue); }
#define COM_FORWARD_IVRDEServer_SetVRDEProperty_TO_OBJ(obj) COM_FORWARD_IVRDEServer_SetVRDEProperty_TO ((obj)->)
#define COM_FORWARD_IVRDEServer_SetVRDEProperty_TO_BASE(base) COM_FORWARD_IVRDEServer_SetVRDEProperty_TO (base::)
#define COM_FORWARD_IVRDEServer_GetVRDEProperty_TO(smth) NS_IMETHOD GetVRDEProperty (PRUnichar * aKey, PRUnichar * * aValue) { return smth GetVRDEProperty (aKey, aValue); }
#define COM_FORWARD_IVRDEServer_GetVRDEProperty_TO_OBJ(obj) COM_FORWARD_IVRDEServer_GetVRDEProperty_TO ((obj)->)
#define COM_FORWARD_IVRDEServer_GetVRDEProperty_TO_BASE(base) COM_FORWARD_IVRDEServer_GetVRDEProperty_TO (base::)
#define COM_FORWARD_IVRDEServer_TO(smth) NS_FORWARD_IVRDESERVER (smth)
#define COM_FORWARD_IVRDEServer_TO_OBJ(obj) COM_FORWARD_IVRDEServer_TO ((obj)->)
#define COM_FORWARD_IVRDEServer_TO_BASE(base) COM_FORWARD_IVRDEServer_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IVRDEServer;
%}

[
    uuid(9622225a-5409-414b-bd16-77df7ba3451e),
    scriptable
]
interface ISharedFolder : nsISupports
{
    readonly attribute wstring name;

    readonly attribute wstring hostPath;

    readonly attribute boolean accessible;

    attribute boolean writable;

    attribute boolean autoMount;

    attribute wstring autoMountPoint;

    readonly attribute wstring lastAccessError;

    readonly attribute unsigned long InternalAndReservedAttribute1ISharedFolder;

    readonly attribute unsigned long InternalAndReservedAttribute2ISharedFolder;

    readonly attribute unsigned long InternalAndReservedAttribute3ISharedFolder;

    readonly attribute unsigned long InternalAndReservedAttribute4ISharedFolder;

    readonly attribute unsigned long InternalAndReservedAttribute5ISharedFolder;

    readonly attribute unsigned long InternalAndReservedAttribute6ISharedFolder;

    readonly attribute unsigned long InternalAndReservedAttribute7ISharedFolder;

    readonly attribute unsigned long InternalAndReservedAttribute8ISharedFolder;

}; /* interface ISharedFolder */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_ISharedFolder_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_ISharedFolder_GETTER_Name_TO_OBJ(obj) COM_FORWARD_ISharedFolder_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_ISharedFolder_GETTER_Name_TO_BASE(base) COM_FORWARD_ISharedFolder_GETTER_Name_TO (base::)
#define COM_FORWARD_ISharedFolder_GETTER_HostPath_TO(smth) NS_IMETHOD GetHostPath (PRUnichar * * aHostPath) { return smth GetHostPath (aHostPath); }
#define COM_FORWARD_ISharedFolder_GETTER_HostPath_TO_OBJ(obj) COM_FORWARD_ISharedFolder_GETTER_HostPath_TO ((obj)->)
#define COM_FORWARD_ISharedFolder_GETTER_HostPath_TO_BASE(base) COM_FORWARD_ISharedFolder_GETTER_HostPath_TO (base::)
#define COM_FORWARD_ISharedFolder_GETTER_Accessible_TO(smth) NS_IMETHOD GetAccessible (PRBool * aAccessible) { return smth GetAccessible (aAccessible); }
#define COM_FORWARD_ISharedFolder_GETTER_Accessible_TO_OBJ(obj) COM_FORWARD_ISharedFolder_GETTER_Accessible_TO ((obj)->)
#define COM_FORWARD_ISharedFolder_GETTER_Accessible_TO_BASE(base) COM_FORWARD_ISharedFolder_GETTER_Accessible_TO (base::)
#define COM_FORWARD_ISharedFolder_GETTER_Writable_TO(smth) NS_IMETHOD GetWritable (PRBool * aWritable) { return smth GetWritable (aWritable); }
#define COM_FORWARD_ISharedFolder_GETTER_Writable_TO_OBJ(obj) COM_FORWARD_ISharedFolder_GETTER_Writable_TO ((obj)->)
#define COM_FORWARD_ISharedFolder_GETTER_Writable_TO_BASE(base) COM_FORWARD_ISharedFolder_GETTER_Writable_TO (base::)
#define COM_FORWARD_ISharedFolder_SETTER_Writable_TO(smth) NS_IMETHOD SetWritable (PRBool aWritable) { return smth SetWritable (aWritable); }
#define COM_FORWARD_ISharedFolder_SETTER_Writable_TO_OBJ(obj) COM_FORWARD_ISharedFolder_SETTER_Writable_TO ((obj)->)
#define COM_FORWARD_ISharedFolder_SETTER_Writable_TO_BASE(base) COM_FORWARD_ISharedFolder_SETTER_Writable_TO (base::)
#define COM_FORWARD_ISharedFolder_GETTER_AutoMount_TO(smth) NS_IMETHOD GetAutoMount (PRBool * aAutoMount) { return smth GetAutoMount (aAutoMount); }
#define COM_FORWARD_ISharedFolder_GETTER_AutoMount_TO_OBJ(obj) COM_FORWARD_ISharedFolder_GETTER_AutoMount_TO ((obj)->)
#define COM_FORWARD_ISharedFolder_GETTER_AutoMount_TO_BASE(base) COM_FORWARD_ISharedFolder_GETTER_AutoMount_TO (base::)
#define COM_FORWARD_ISharedFolder_SETTER_AutoMount_TO(smth) NS_IMETHOD SetAutoMount (PRBool aAutoMount) { return smth SetAutoMount (aAutoMount); }
#define COM_FORWARD_ISharedFolder_SETTER_AutoMount_TO_OBJ(obj) COM_FORWARD_ISharedFolder_SETTER_AutoMount_TO ((obj)->)
#define COM_FORWARD_ISharedFolder_SETTER_AutoMount_TO_BASE(base) COM_FORWARD_ISharedFolder_SETTER_AutoMount_TO (base::)
#define COM_FORWARD_ISharedFolder_GETTER_AutoMountPoint_TO(smth) NS_IMETHOD GetAutoMountPoint (PRUnichar * * aAutoMountPoint) { return smth GetAutoMountPoint (aAutoMountPoint); }
#define COM_FORWARD_ISharedFolder_GETTER_AutoMountPoint_TO_OBJ(obj) COM_FORWARD_ISharedFolder_GETTER_AutoMountPoint_TO ((obj)->)
#define COM_FORWARD_ISharedFolder_GETTER_AutoMountPoint_TO_BASE(base) COM_FORWARD_ISharedFolder_GETTER_AutoMountPoint_TO (base::)
#define COM_FORWARD_ISharedFolder_SETTER_AutoMountPoint_TO(smth) NS_IMETHOD SetAutoMountPoint (const PRUnichar * aAutoMountPoint) { return smth SetAutoMountPoint (aAutoMountPoint); }
#define COM_FORWARD_ISharedFolder_SETTER_AutoMountPoint_TO_OBJ(obj) COM_FORWARD_ISharedFolder_SETTER_AutoMountPoint_TO ((obj)->)
#define COM_FORWARD_ISharedFolder_SETTER_AutoMountPoint_TO_BASE(base) COM_FORWARD_ISharedFolder_SETTER_AutoMountPoint_TO (base::)
#define COM_FORWARD_ISharedFolder_GETTER_LastAccessError_TO(smth) NS_IMETHOD GetLastAccessError (PRUnichar * * aLastAccessError) { return smth GetLastAccessError (aLastAccessError); }
#define COM_FORWARD_ISharedFolder_GETTER_LastAccessError_TO_OBJ(obj) COM_FORWARD_ISharedFolder_GETTER_LastAccessError_TO ((obj)->)
#define COM_FORWARD_ISharedFolder_GETTER_LastAccessError_TO_BASE(base) COM_FORWARD_ISharedFolder_GETTER_LastAccessError_TO (base::)
#define COM_FORWARD_ISharedFolder_TO(smth) NS_FORWARD_ISHAREDFOLDER (smth)
#define COM_FORWARD_ISharedFolder_TO_OBJ(obj) COM_FORWARD_ISharedFolder_TO ((obj)->)
#define COM_FORWARD_ISharedFolder_TO_BASE(base) COM_FORWARD_ISharedFolder_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ISharedFolder;
%}

[
    uuid(f4638054-f1f8-4590-941a-cdb66075c5bf),
    scriptable
]
interface IInternalSessionControl : nsISupports
{
    readonly attribute unsigned long PID;

    readonly attribute IConsole remoteConsole;

    readonly attribute MachineState_T nominalState;

    void assignRemoteMachine (
        in IMachine machine,
        in IConsole console
    );

    void updateMachineState (
        in MachineState_T machineState
    );

    void uninitialize();

    void onNetworkAdapterChange (
        in INetworkAdapter networkAdapter,
        in boolean changeAdapter
    );

    void onAudioAdapterChange (
        in IAudioAdapter audioAdapter
    );

    void onSerialPortChange (
        in ISerialPort serialPort
    );

    void onParallelPortChange (
        in IParallelPort parallelPort
    );

    void onStorageControllerChange (
        in wstring machineId,
        in wstring controllerName
    );

    void onMediumChange (
        in IMediumAttachment mediumAttachment,
        in boolean force
    );

    void onStorageDeviceChange (
        in IMediumAttachment mediumAttachment,
        in boolean remove,
        in boolean silent
    );

    void onVMProcessPriorityChange (
        in VMProcPriority_T priority
    );

    void onClipboardModeChange (
        in ClipboardMode_T clipboardMode
    );

    void onClipboardFileTransferModeChange (
        in boolean enabled
    );

    void onDnDModeChange (
        in DnDMode_T dndMode
    );

    void onCPUChange (
        in unsigned long cpu,
        in boolean add
    );

    void onCPUExecutionCapChange (
        in unsigned long executionCap
    );

    void onVRDEServerChange (
        in boolean restart
    );

    void onRecordingChange (
        in boolean enable
    );

    void onUSBControllerChange();

    void onSharedFolderChange (
        in boolean global
    );

    void onUSBDeviceAttach (
        in IUSBDevice device,
        in IVirtualBoxErrorInfo error,
        in unsigned long maskedInterfaces,
        in wstring captureFilename
    );

    void onUSBDeviceDetach (
        in wstring id,
        in IVirtualBoxErrorInfo error
    );

    void onShowWindow (
        in boolean check,
        out boolean canShow,
        out long long winId
    );

    void onBandwidthGroupChange (
        in IBandwidthGroup bandwidthGroup
    );

    void accessGuestProperty (
        in wstring name,
        in wstring value,
        in wstring flags,
        in unsigned long accessMode,
        out wstring retValue,
        out long long retTimestamp,
        out wstring retFlags
    );

    void enumerateGuestProperties (
        in wstring patterns,
        out unsigned long keysSize,
        [array, size_is(keysSize)] out wstring keys,
        out unsigned long valuesSize,
        [array, size_is(valuesSize)] out wstring values,
        out unsigned long timestampsSize,
        [array, size_is(timestampsSize)] out long long timestamps,
        out unsigned long flagsSize,
        [array, size_is(flagsSize)] out wstring flags
    );

    void onlineMergeMedium (
        in IMediumAttachment mediumAttachment,
        in unsigned long sourceIdx,
        in unsigned long targetIdx,
        in IProgress progress
    );

    void reconfigureMediumAttachments (
        in unsigned long attachmentsSize,
        [array, size_is(attachmentsSize)] in IMediumAttachment attachments
    );

    void enableVMMStatistics (
        in boolean enable
    );

    void pauseWithReason (
        in Reason_T reason
    );

    void resumeWithReason (
        in Reason_T reason
    );

    void saveStateWithReason (
        in Reason_T reason,
        in IProgress progress,
        in ISnapshot snapshot,
        in wstring stateFilePath,
        in boolean pauseVM,
        [retval] out boolean leftPaused
    );

    void cancelSaveStateWithReason();

    void assignMachine (
        in IMachine machine,
        in LockType_T lockType,
        in IToken token
    );

}; /* interface IInternalSessionControl */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IInternalSessionControl_GETTER_PID_TO(smth) NS_IMETHOD GetPID (PRUint32 * aPID) { return smth GetPID (aPID); }
#define COM_FORWARD_IInternalSessionControl_GETTER_PID_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_GETTER_PID_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_GETTER_PID_TO_BASE(base) COM_FORWARD_IInternalSessionControl_GETTER_PID_TO (base::)
#define COM_FORWARD_IInternalSessionControl_GETTER_RemoteConsole_TO(smth) NS_IMETHOD GetRemoteConsole (IConsole * * aRemoteConsole) { return smth GetRemoteConsole (aRemoteConsole); }
#define COM_FORWARD_IInternalSessionControl_GETTER_RemoteConsole_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_GETTER_RemoteConsole_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_GETTER_RemoteConsole_TO_BASE(base) COM_FORWARD_IInternalSessionControl_GETTER_RemoteConsole_TO (base::)
#define COM_FORWARD_IInternalSessionControl_GETTER_NominalState_TO(smth) NS_IMETHOD GetNominalState (PRUint32 * aNominalState) { return smth GetNominalState (aNominalState); }
#define COM_FORWARD_IInternalSessionControl_GETTER_NominalState_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_GETTER_NominalState_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_GETTER_NominalState_TO_BASE(base) COM_FORWARD_IInternalSessionControl_GETTER_NominalState_TO (base::)
#define COM_FORWARD_IInternalSessionControl_AssignRemoteMachine_TO(smth) NS_IMETHOD AssignRemoteMachine (IMachine * aMachine, IConsole * aConsole) { return smth AssignRemoteMachine (aMachine, aConsole); }
#define COM_FORWARD_IInternalSessionControl_AssignRemoteMachine_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_AssignRemoteMachine_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_AssignRemoteMachine_TO_BASE(base) COM_FORWARD_IInternalSessionControl_AssignRemoteMachine_TO (base::)
#define COM_FORWARD_IInternalSessionControl_UpdateMachineState_TO(smth) NS_IMETHOD UpdateMachineState (PRUint32 aMachineState) { return smth UpdateMachineState (aMachineState); }
#define COM_FORWARD_IInternalSessionControl_UpdateMachineState_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_UpdateMachineState_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_UpdateMachineState_TO_BASE(base) COM_FORWARD_IInternalSessionControl_UpdateMachineState_TO (base::)
#define COM_FORWARD_IInternalSessionControl_Uninitialize_TO(smth) NS_IMETHOD Uninitialize() { return smth Uninitialize(); }
#define COM_FORWARD_IInternalSessionControl_Uninitialize_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_Uninitialize_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_Uninitialize_TO_BASE(base) COM_FORWARD_IInternalSessionControl_Uninitialize_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnNetworkAdapterChange_TO(smth) NS_IMETHOD OnNetworkAdapterChange (INetworkAdapter * aNetworkAdapter, PRBool aChangeAdapter) { return smth OnNetworkAdapterChange (aNetworkAdapter, aChangeAdapter); }
#define COM_FORWARD_IInternalSessionControl_OnNetworkAdapterChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnNetworkAdapterChange_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnNetworkAdapterChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnNetworkAdapterChange_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnAudioAdapterChange_TO(smth) NS_IMETHOD OnAudioAdapterChange (IAudioAdapter * aAudioAdapter) { return smth OnAudioAdapterChange (aAudioAdapter); }
#define COM_FORWARD_IInternalSessionControl_OnAudioAdapterChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnAudioAdapterChange_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnAudioAdapterChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnAudioAdapterChange_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnSerialPortChange_TO(smth) NS_IMETHOD OnSerialPortChange (ISerialPort * aSerialPort) { return smth OnSerialPortChange (aSerialPort); }
#define COM_FORWARD_IInternalSessionControl_OnSerialPortChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnSerialPortChange_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnSerialPortChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnSerialPortChange_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnParallelPortChange_TO(smth) NS_IMETHOD OnParallelPortChange (IParallelPort * aParallelPort) { return smth OnParallelPortChange (aParallelPort); }
#define COM_FORWARD_IInternalSessionControl_OnParallelPortChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnParallelPortChange_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnParallelPortChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnParallelPortChange_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnStorageControllerChange_TO(smth) NS_IMETHOD OnStorageControllerChange (PRUnichar * aMachineId, PRUnichar * aControllerName) { return smth OnStorageControllerChange (aMachineId, aControllerName); }
#define COM_FORWARD_IInternalSessionControl_OnStorageControllerChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnStorageControllerChange_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnStorageControllerChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnStorageControllerChange_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnMediumChange_TO(smth) NS_IMETHOD OnMediumChange (IMediumAttachment * aMediumAttachment, PRBool aForce) { return smth OnMediumChange (aMediumAttachment, aForce); }
#define COM_FORWARD_IInternalSessionControl_OnMediumChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnMediumChange_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnMediumChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnMediumChange_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnStorageDeviceChange_TO(smth) NS_IMETHOD OnStorageDeviceChange (IMediumAttachment * aMediumAttachment, PRBool aRemove, PRBool aSilent) { return smth OnStorageDeviceChange (aMediumAttachment, aRemove, aSilent); }
#define COM_FORWARD_IInternalSessionControl_OnStorageDeviceChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnStorageDeviceChange_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnStorageDeviceChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnStorageDeviceChange_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnVMProcessPriorityChange_TO(smth) NS_IMETHOD OnVMProcessPriorityChange (PRUint32 aPriority) { return smth OnVMProcessPriorityChange (aPriority); }
#define COM_FORWARD_IInternalSessionControl_OnVMProcessPriorityChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnVMProcessPriorityChange_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnVMProcessPriorityChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnVMProcessPriorityChange_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnClipboardModeChange_TO(smth) NS_IMETHOD OnClipboardModeChange (PRUint32 aClipboardMode) { return smth OnClipboardModeChange (aClipboardMode); }
#define COM_FORWARD_IInternalSessionControl_OnClipboardModeChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnClipboardModeChange_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnClipboardModeChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnClipboardModeChange_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnClipboardFileTransferModeChange_TO(smth) NS_IMETHOD OnClipboardFileTransferModeChange (PRBool aEnabled) { return smth OnClipboardFileTransferModeChange (aEnabled); }
#define COM_FORWARD_IInternalSessionControl_OnClipboardFileTransferModeChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnClipboardFileTransferModeChange_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnClipboardFileTransferModeChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnClipboardFileTransferModeChange_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnDnDModeChange_TO(smth) NS_IMETHOD OnDnDModeChange (PRUint32 aDndMode) { return smth OnDnDModeChange (aDndMode); }
#define COM_FORWARD_IInternalSessionControl_OnDnDModeChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnDnDModeChange_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnDnDModeChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnDnDModeChange_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnCPUChange_TO(smth) NS_IMETHOD OnCPUChange (PRUint32 aCpu, PRBool aAdd) { return smth OnCPUChange (aCpu, aAdd); }
#define COM_FORWARD_IInternalSessionControl_OnCPUChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnCPUChange_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnCPUChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnCPUChange_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnCPUExecutionCapChange_TO(smth) NS_IMETHOD OnCPUExecutionCapChange (PRUint32 aExecutionCap) { return smth OnCPUExecutionCapChange (aExecutionCap); }
#define COM_FORWARD_IInternalSessionControl_OnCPUExecutionCapChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnCPUExecutionCapChange_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnCPUExecutionCapChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnCPUExecutionCapChange_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnVRDEServerChange_TO(smth) NS_IMETHOD OnVRDEServerChange (PRBool aRestart) { return smth OnVRDEServerChange (aRestart); }
#define COM_FORWARD_IInternalSessionControl_OnVRDEServerChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnVRDEServerChange_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnVRDEServerChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnVRDEServerChange_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnRecordingChange_TO(smth) NS_IMETHOD OnRecordingChange (PRBool aEnable) { return smth OnRecordingChange (aEnable); }
#define COM_FORWARD_IInternalSessionControl_OnRecordingChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnRecordingChange_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnRecordingChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnRecordingChange_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnUSBControllerChange_TO(smth) NS_IMETHOD OnUSBControllerChange() { return smth OnUSBControllerChange(); }
#define COM_FORWARD_IInternalSessionControl_OnUSBControllerChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnUSBControllerChange_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnUSBControllerChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnUSBControllerChange_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnSharedFolderChange_TO(smth) NS_IMETHOD OnSharedFolderChange (PRBool aGlobal) { return smth OnSharedFolderChange (aGlobal); }
#define COM_FORWARD_IInternalSessionControl_OnSharedFolderChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnSharedFolderChange_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnSharedFolderChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnSharedFolderChange_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnUSBDeviceAttach_TO(smth) NS_IMETHOD OnUSBDeviceAttach (IUSBDevice * aDevice, IVirtualBoxErrorInfo * aError, PRUint32 aMaskedInterfaces, PRUnichar * aCaptureFilename) { return smth OnUSBDeviceAttach (aDevice, aError, aMaskedInterfaces, aCaptureFilename); }
#define COM_FORWARD_IInternalSessionControl_OnUSBDeviceAttach_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnUSBDeviceAttach_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnUSBDeviceAttach_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnUSBDeviceAttach_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnUSBDeviceDetach_TO(smth) NS_IMETHOD OnUSBDeviceDetach (PRUnichar * aId, IVirtualBoxErrorInfo * aError) { return smth OnUSBDeviceDetach (aId, aError); }
#define COM_FORWARD_IInternalSessionControl_OnUSBDeviceDetach_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnUSBDeviceDetach_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnUSBDeviceDetach_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnUSBDeviceDetach_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnShowWindow_TO(smth) NS_IMETHOD OnShowWindow (PRBool aCheck, PRBool * aCanShow, PRInt64 * aWinId) { return smth OnShowWindow (aCheck, aCanShow, aWinId); }
#define COM_FORWARD_IInternalSessionControl_OnShowWindow_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnShowWindow_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnShowWindow_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnShowWindow_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnBandwidthGroupChange_TO(smth) NS_IMETHOD OnBandwidthGroupChange (IBandwidthGroup * aBandwidthGroup) { return smth OnBandwidthGroupChange (aBandwidthGroup); }
#define COM_FORWARD_IInternalSessionControl_OnBandwidthGroupChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnBandwidthGroupChange_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnBandwidthGroupChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnBandwidthGroupChange_TO (base::)
#define COM_FORWARD_IInternalSessionControl_AccessGuestProperty_TO(smth) NS_IMETHOD AccessGuestProperty (PRUnichar * aName, PRUnichar * aValue, PRUnichar * aFlags, PRUint32 aAccessMode, PRUnichar * * aRetValue, PRInt64 * aRetTimestamp, PRUnichar * * aRetFlags) { return smth AccessGuestProperty (aName, aValue, aFlags, aAccessMode, aRetValue, aRetTimestamp, aRetFlags); }
#define COM_FORWARD_IInternalSessionControl_AccessGuestProperty_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_AccessGuestProperty_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_AccessGuestProperty_TO_BASE(base) COM_FORWARD_IInternalSessionControl_AccessGuestProperty_TO (base::)
#define COM_FORWARD_IInternalSessionControl_EnumerateGuestProperties_TO(smth) NS_IMETHOD EnumerateGuestProperties (PRUnichar * aPatterns, PRUint32 * aKeysSize, PRUnichar * * * aKeys, PRUint32 * aValuesSize, PRUnichar * * * aValues, PRUint32 * aTimestampsSize, PRInt64 * * aTimestamps, PRUint32 * aFlagsSize, PRUnichar * * * aFlags) { return smth EnumerateGuestProperties (aPatterns, aKeysSize+++, aKeys, aValuesSize+++, aValues, aTimestampsSize+++, aTimestamps, aFlagsSize, aFlags); }
#define COM_FORWARD_IInternalSessionControl_EnumerateGuestProperties_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_EnumerateGuestProperties_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_EnumerateGuestProperties_TO_BASE(base) COM_FORWARD_IInternalSessionControl_EnumerateGuestProperties_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnlineMergeMedium_TO(smth) NS_IMETHOD OnlineMergeMedium (IMediumAttachment * aMediumAttachment, PRUint32 aSourceIdx, PRUint32 aTargetIdx, IProgress * aProgress) { return smth OnlineMergeMedium (aMediumAttachment, aSourceIdx, aTargetIdx, aProgress); }
#define COM_FORWARD_IInternalSessionControl_OnlineMergeMedium_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnlineMergeMedium_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnlineMergeMedium_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnlineMergeMedium_TO (base::)
#define COM_FORWARD_IInternalSessionControl_ReconfigureMediumAttachments_TO(smth) NS_IMETHOD ReconfigureMediumAttachments (PRUint32 aAttachmentsSize, IMediumAttachment * * aAttachments) { return smth ReconfigureMediumAttachments (aAttachmentsSize, aAttachments); }
#define COM_FORWARD_IInternalSessionControl_ReconfigureMediumAttachments_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_ReconfigureMediumAttachments_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_ReconfigureMediumAttachments_TO_BASE(base) COM_FORWARD_IInternalSessionControl_ReconfigureMediumAttachments_TO (base::)
#define COM_FORWARD_IInternalSessionControl_EnableVMMStatistics_TO(smth) NS_IMETHOD EnableVMMStatistics (PRBool aEnable) { return smth EnableVMMStatistics (aEnable); }
#define COM_FORWARD_IInternalSessionControl_EnableVMMStatistics_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_EnableVMMStatistics_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_EnableVMMStatistics_TO_BASE(base) COM_FORWARD_IInternalSessionControl_EnableVMMStatistics_TO (base::)
#define COM_FORWARD_IInternalSessionControl_PauseWithReason_TO(smth) NS_IMETHOD PauseWithReason (PRUint32 aReason) { return smth PauseWithReason (aReason); }
#define COM_FORWARD_IInternalSessionControl_PauseWithReason_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_PauseWithReason_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_PauseWithReason_TO_BASE(base) COM_FORWARD_IInternalSessionControl_PauseWithReason_TO (base::)
#define COM_FORWARD_IInternalSessionControl_ResumeWithReason_TO(smth) NS_IMETHOD ResumeWithReason (PRUint32 aReason) { return smth ResumeWithReason (aReason); }
#define COM_FORWARD_IInternalSessionControl_ResumeWithReason_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_ResumeWithReason_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_ResumeWithReason_TO_BASE(base) COM_FORWARD_IInternalSessionControl_ResumeWithReason_TO (base::)
#define COM_FORWARD_IInternalSessionControl_SaveStateWithReason_TO(smth) NS_IMETHOD SaveStateWithReason (PRUint32 aReason, IProgress * aProgress, ISnapshot * aSnapshot, PRUnichar * aStateFilePath, PRBool aPauseVM, PRBool * aLeftPaused) { return smth SaveStateWithReason (aReason, aProgress, aSnapshot, aStateFilePath, aPauseVM, aLeftPaused); }
#define COM_FORWARD_IInternalSessionControl_SaveStateWithReason_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_SaveStateWithReason_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_SaveStateWithReason_TO_BASE(base) COM_FORWARD_IInternalSessionControl_SaveStateWithReason_TO (base::)
#define COM_FORWARD_IInternalSessionControl_CancelSaveStateWithReason_TO(smth) NS_IMETHOD CancelSaveStateWithReason() { return smth CancelSaveStateWithReason(); }
#define COM_FORWARD_IInternalSessionControl_CancelSaveStateWithReason_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_CancelSaveStateWithReason_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_CancelSaveStateWithReason_TO_BASE(base) COM_FORWARD_IInternalSessionControl_CancelSaveStateWithReason_TO (base::)
#define COM_FORWARD_IInternalSessionControl_AssignMachine_TO(smth) NS_IMETHOD AssignMachine (IMachine * aMachine, PRUint32 aLockType, PRUnichar * aTokenId) { return smth AssignMachine (aMachine, aLockType, aTokenId); }
#define COM_FORWARD_IInternalSessionControl_AssignMachine_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_AssignMachine_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_AssignMachine_TO_BASE(base) COM_FORWARD_IInternalSessionControl_AssignMachine_TO (base::)
#define COM_FORWARD_IInternalSessionControl_TO(smth) NS_FORWARD_IINTERNALSESSIONCONTROL (smth)
#define COM_FORWARD_IInternalSessionControl_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_TO_BASE(base) COM_FORWARD_IInternalSessionControl_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IInternalSessionControl;
%}

[
    uuid(c0447716-ff5a-4795-b57a-ecd5fffa18a4),
    scriptable
]
interface ISession : nsISupports
{
    readonly attribute SessionState_T state;

    readonly attribute SessionType_T type;

    attribute wstring name;

    readonly attribute IMachine machine;

    readonly attribute IConsole console;

    readonly attribute unsigned long InternalAndReservedAttribute1ISession;

    readonly attribute unsigned long InternalAndReservedAttribute2ISession;

    readonly attribute unsigned long InternalAndReservedAttribute3ISession;

    readonly attribute unsigned long InternalAndReservedAttribute4ISession;

    readonly attribute unsigned long InternalAndReservedAttribute5ISession;

    readonly attribute unsigned long InternalAndReservedAttribute6ISession;

    readonly attribute unsigned long InternalAndReservedAttribute7ISession;

    readonly attribute unsigned long InternalAndReservedAttribute8ISession;

    void unlockMachine();

    void InternalAndReservedMethod1ISession();

    void InternalAndReservedMethod2ISession();

    void InternalAndReservedMethod3ISession();

    void InternalAndReservedMethod4ISession();

}; /* interface ISession */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_ISession_GETTER_State_TO(smth) NS_IMETHOD GetState (PRUint32 * aState) { return smth GetState (aState); }
#define COM_FORWARD_ISession_GETTER_State_TO_OBJ(obj) COM_FORWARD_ISession_GETTER_State_TO ((obj)->)
#define COM_FORWARD_ISession_GETTER_State_TO_BASE(base) COM_FORWARD_ISession_GETTER_State_TO (base::)
#define COM_FORWARD_ISession_GETTER_Type_TO(smth) NS_IMETHOD GetType (PRUint32 * aType) { return smth GetType (aType); }
#define COM_FORWARD_ISession_GETTER_Type_TO_OBJ(obj) COM_FORWARD_ISession_GETTER_Type_TO ((obj)->)
#define COM_FORWARD_ISession_GETTER_Type_TO_BASE(base) COM_FORWARD_ISession_GETTER_Type_TO (base::)
#define COM_FORWARD_ISession_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_ISession_GETTER_Name_TO_OBJ(obj) COM_FORWARD_ISession_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_ISession_GETTER_Name_TO_BASE(base) COM_FORWARD_ISession_GETTER_Name_TO (base::)
#define COM_FORWARD_ISession_SETTER_Name_TO(smth) NS_IMETHOD SetName (const PRUnichar * aName) { return smth SetName (aName); }
#define COM_FORWARD_ISession_SETTER_Name_TO_OBJ(obj) COM_FORWARD_ISession_SETTER_Name_TO ((obj)->)
#define COM_FORWARD_ISession_SETTER_Name_TO_BASE(base) COM_FORWARD_ISession_SETTER_Name_TO (base::)
#define COM_FORWARD_ISession_GETTER_Machine_TO(smth) NS_IMETHOD GetMachine (IMachine * * aMachine) { return smth GetMachine (aMachine); }
#define COM_FORWARD_ISession_GETTER_Machine_TO_OBJ(obj) COM_FORWARD_ISession_GETTER_Machine_TO ((obj)->)
#define COM_FORWARD_ISession_GETTER_Machine_TO_BASE(base) COM_FORWARD_ISession_GETTER_Machine_TO (base::)
#define COM_FORWARD_ISession_GETTER_Console_TO(smth) NS_IMETHOD GetConsole (IConsole * * aConsole) { return smth GetConsole (aConsole); }
#define COM_FORWARD_ISession_GETTER_Console_TO_OBJ(obj) COM_FORWARD_ISession_GETTER_Console_TO ((obj)->)
#define COM_FORWARD_ISession_GETTER_Console_TO_BASE(base) COM_FORWARD_ISession_GETTER_Console_TO (base::)
#define COM_FORWARD_ISession_UnlockMachine_TO(smth) NS_IMETHOD UnlockMachine() { return smth UnlockMachine(); }
#define COM_FORWARD_ISession_UnlockMachine_TO_OBJ(obj) COM_FORWARD_ISession_UnlockMachine_TO ((obj)->)
#define COM_FORWARD_ISession_UnlockMachine_TO_BASE(base) COM_FORWARD_ISession_UnlockMachine_TO (base::)
#define COM_FORWARD_ISession_TO(smth) NS_FORWARD_ISESSION (smth)
#define COM_FORWARD_ISession_TO_OBJ(obj) COM_FORWARD_ISession_TO ((obj)->)
#define COM_FORWARD_ISession_TO_BASE(base) COM_FORWARD_ISession_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ISession;
%}

[
    uuid(ddca7247-bf98-47fb-ab2f-b5177533f493),
    scriptable
]
interface IStorageController : nsISupports
{
    attribute wstring name;

    readonly attribute unsigned long maxDevicesPerPortCount;

    readonly attribute unsigned long minPortCount;

    readonly attribute unsigned long maxPortCount;

    attribute unsigned long instance;

    attribute unsigned long portCount;

    readonly attribute StorageBus_T bus;

    attribute StorageControllerType_T controllerType;

    attribute boolean useHostIOCache;

    readonly attribute boolean bootable;

    readonly attribute unsigned long InternalAndReservedAttribute1IStorageController;

    readonly attribute unsigned long InternalAndReservedAttribute2IStorageController;

    readonly attribute unsigned long InternalAndReservedAttribute3IStorageController;

    readonly attribute unsigned long InternalAndReservedAttribute4IStorageController;

    readonly attribute unsigned long InternalAndReservedAttribute5IStorageController;

    readonly attribute unsigned long InternalAndReservedAttribute6IStorageController;

    readonly attribute unsigned long InternalAndReservedAttribute7IStorageController;

    readonly attribute unsigned long InternalAndReservedAttribute8IStorageController;

    void InternalAndReservedMethod1IStorageController();

    void InternalAndReservedMethod2IStorageController();

    void InternalAndReservedMethod3IStorageController();

    void InternalAndReservedMethod4IStorageController();

}; /* interface IStorageController */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IStorageController_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_IStorageController_GETTER_Name_TO_OBJ(obj) COM_FORWARD_IStorageController_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_IStorageController_GETTER_Name_TO_BASE(base) COM_FORWARD_IStorageController_GETTER_Name_TO (base::)
#define COM_FORWARD_IStorageController_SETTER_Name_TO(smth) NS_IMETHOD SetName (const PRUnichar * aName) { return smth SetName (aName); }
#define COM_FORWARD_IStorageController_SETTER_Name_TO_OBJ(obj) COM_FORWARD_IStorageController_SETTER_Name_TO ((obj)->)
#define COM_FORWARD_IStorageController_SETTER_Name_TO_BASE(base) COM_FORWARD_IStorageController_SETTER_Name_TO (base::)
#define COM_FORWARD_IStorageController_GETTER_MaxDevicesPerPortCount_TO(smth) NS_IMETHOD GetMaxDevicesPerPortCount (PRUint32 * aMaxDevicesPerPortCount) { return smth GetMaxDevicesPerPortCount (aMaxDevicesPerPortCount); }
#define COM_FORWARD_IStorageController_GETTER_MaxDevicesPerPortCount_TO_OBJ(obj) COM_FORWARD_IStorageController_GETTER_MaxDevicesPerPortCount_TO ((obj)->)
#define COM_FORWARD_IStorageController_GETTER_MaxDevicesPerPortCount_TO_BASE(base) COM_FORWARD_IStorageController_GETTER_MaxDevicesPerPortCount_TO (base::)
#define COM_FORWARD_IStorageController_GETTER_MinPortCount_TO(smth) NS_IMETHOD GetMinPortCount (PRUint32 * aMinPortCount) { return smth GetMinPortCount (aMinPortCount); }
#define COM_FORWARD_IStorageController_GETTER_MinPortCount_TO_OBJ(obj) COM_FORWARD_IStorageController_GETTER_MinPortCount_TO ((obj)->)
#define COM_FORWARD_IStorageController_GETTER_MinPortCount_TO_BASE(base) COM_FORWARD_IStorageController_GETTER_MinPortCount_TO (base::)
#define COM_FORWARD_IStorageController_GETTER_MaxPortCount_TO(smth) NS_IMETHOD GetMaxPortCount (PRUint32 * aMaxPortCount) { return smth GetMaxPortCount (aMaxPortCount); }
#define COM_FORWARD_IStorageController_GETTER_MaxPortCount_TO_OBJ(obj) COM_FORWARD_IStorageController_GETTER_MaxPortCount_TO ((obj)->)
#define COM_FORWARD_IStorageController_GETTER_MaxPortCount_TO_BASE(base) COM_FORWARD_IStorageController_GETTER_MaxPortCount_TO (base::)
#define COM_FORWARD_IStorageController_GETTER_Instance_TO(smth) NS_IMETHOD GetInstance (PRUint32 * aInstance) { return smth GetInstance (aInstance); }
#define COM_FORWARD_IStorageController_GETTER_Instance_TO_OBJ(obj) COM_FORWARD_IStorageController_GETTER_Instance_TO ((obj)->)
#define COM_FORWARD_IStorageController_GETTER_Instance_TO_BASE(base) COM_FORWARD_IStorageController_GETTER_Instance_TO (base::)
#define COM_FORWARD_IStorageController_SETTER_Instance_TO(smth) NS_IMETHOD SetInstance (PRUint32 aInstance) { return smth SetInstance (aInstance); }
#define COM_FORWARD_IStorageController_SETTER_Instance_TO_OBJ(obj) COM_FORWARD_IStorageController_SETTER_Instance_TO ((obj)->)
#define COM_FORWARD_IStorageController_SETTER_Instance_TO_BASE(base) COM_FORWARD_IStorageController_SETTER_Instance_TO (base::)
#define COM_FORWARD_IStorageController_GETTER_PortCount_TO(smth) NS_IMETHOD GetPortCount (PRUint32 * aPortCount) { return smth GetPortCount (aPortCount); }
#define COM_FORWARD_IStorageController_GETTER_PortCount_TO_OBJ(obj) COM_FORWARD_IStorageController_GETTER_PortCount_TO ((obj)->)
#define COM_FORWARD_IStorageController_GETTER_PortCount_TO_BASE(base) COM_FORWARD_IStorageController_GETTER_PortCount_TO (base::)
#define COM_FORWARD_IStorageController_SETTER_PortCount_TO(smth) NS_IMETHOD SetPortCount (PRUint32 aPortCount) { return smth SetPortCount (aPortCount); }
#define COM_FORWARD_IStorageController_SETTER_PortCount_TO_OBJ(obj) COM_FORWARD_IStorageController_SETTER_PortCount_TO ((obj)->)
#define COM_FORWARD_IStorageController_SETTER_PortCount_TO_BASE(base) COM_FORWARD_IStorageController_SETTER_PortCount_TO (base::)
#define COM_FORWARD_IStorageController_GETTER_Bus_TO(smth) NS_IMETHOD GetBus (PRUint32 * aBus) { return smth GetBus (aBus); }
#define COM_FORWARD_IStorageController_GETTER_Bus_TO_OBJ(obj) COM_FORWARD_IStorageController_GETTER_Bus_TO ((obj)->)
#define COM_FORWARD_IStorageController_GETTER_Bus_TO_BASE(base) COM_FORWARD_IStorageController_GETTER_Bus_TO (base::)
#define COM_FORWARD_IStorageController_GETTER_ControllerType_TO(smth) NS_IMETHOD GetControllerType (PRUint32 * aControllerType) { return smth GetControllerType (aControllerType); }
#define COM_FORWARD_IStorageController_GETTER_ControllerType_TO_OBJ(obj) COM_FORWARD_IStorageController_GETTER_ControllerType_TO ((obj)->)
#define COM_FORWARD_IStorageController_GETTER_ControllerType_TO_BASE(base) COM_FORWARD_IStorageController_GETTER_ControllerType_TO (base::)
#define COM_FORWARD_IStorageController_SETTER_ControllerType_TO(smth) NS_IMETHOD SetControllerType (PRUint32 aControllerType) { return smth SetControllerType (aControllerType); }
#define COM_FORWARD_IStorageController_SETTER_ControllerType_TO_OBJ(obj) COM_FORWARD_IStorageController_SETTER_ControllerType_TO ((obj)->)
#define COM_FORWARD_IStorageController_SETTER_ControllerType_TO_BASE(base) COM_FORWARD_IStorageController_SETTER_ControllerType_TO (base::)
#define COM_FORWARD_IStorageController_GETTER_UseHostIOCache_TO(smth) NS_IMETHOD GetUseHostIOCache (PRBool * aUseHostIOCache) { return smth GetUseHostIOCache (aUseHostIOCache); }
#define COM_FORWARD_IStorageController_GETTER_UseHostIOCache_TO_OBJ(obj) COM_FORWARD_IStorageController_GETTER_UseHostIOCache_TO ((obj)->)
#define COM_FORWARD_IStorageController_GETTER_UseHostIOCache_TO_BASE(base) COM_FORWARD_IStorageController_GETTER_UseHostIOCache_TO (base::)
#define COM_FORWARD_IStorageController_SETTER_UseHostIOCache_TO(smth) NS_IMETHOD SetUseHostIOCache (PRBool aUseHostIOCache) { return smth SetUseHostIOCache (aUseHostIOCache); }
#define COM_FORWARD_IStorageController_SETTER_UseHostIOCache_TO_OBJ(obj) COM_FORWARD_IStorageController_SETTER_UseHostIOCache_TO ((obj)->)
#define COM_FORWARD_IStorageController_SETTER_UseHostIOCache_TO_BASE(base) COM_FORWARD_IStorageController_SETTER_UseHostIOCache_TO (base::)
#define COM_FORWARD_IStorageController_GETTER_Bootable_TO(smth) NS_IMETHOD GetBootable (PRBool * aBootable) { return smth GetBootable (aBootable); }
#define COM_FORWARD_IStorageController_GETTER_Bootable_TO_OBJ(obj) COM_FORWARD_IStorageController_GETTER_Bootable_TO ((obj)->)
#define COM_FORWARD_IStorageController_GETTER_Bootable_TO_BASE(base) COM_FORWARD_IStorageController_GETTER_Bootable_TO (base::)
#define COM_FORWARD_IStorageController_TO(smth) NS_FORWARD_ISTORAGECONTROLLER (smth)
#define COM_FORWARD_IStorageController_TO_OBJ(obj) COM_FORWARD_IStorageController_TO ((obj)->)
#define COM_FORWARD_IStorageController_TO_BASE(base) COM_FORWARD_IStorageController_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IStorageController;
%}

[
    uuid(81314d14-fd1c-411a-95c5-e9bb1414e632),
    scriptable
]
interface IPerformanceMetric : nsISupports
{
    readonly attribute wstring metricName;

    readonly attribute nsISupports object;

    readonly attribute wstring description;

    readonly attribute unsigned long period;

    readonly attribute unsigned long count;

    readonly attribute wstring unit;

    readonly attribute long minimumValue;

    readonly attribute long maximumValue;

    readonly attribute unsigned long InternalAndReservedAttribute1IPerformanceMetric;

    readonly attribute unsigned long InternalAndReservedAttribute2IPerformanceMetric;

    readonly attribute unsigned long InternalAndReservedAttribute3IPerformanceMetric;

    readonly attribute unsigned long InternalAndReservedAttribute4IPerformanceMetric;

    readonly attribute unsigned long InternalAndReservedAttribute5IPerformanceMetric;

    readonly attribute unsigned long InternalAndReservedAttribute6IPerformanceMetric;

    readonly attribute unsigned long InternalAndReservedAttribute7IPerformanceMetric;

    readonly attribute unsigned long InternalAndReservedAttribute8IPerformanceMetric;

}; /* interface IPerformanceMetric */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IPerformanceMetric_GETTER_MetricName_TO(smth) NS_IMETHOD GetMetricName (PRUnichar * * aMetricName) { return smth GetMetricName (aMetricName); }
#define COM_FORWARD_IPerformanceMetric_GETTER_MetricName_TO_OBJ(obj) COM_FORWARD_IPerformanceMetric_GETTER_MetricName_TO ((obj)->)
#define COM_FORWARD_IPerformanceMetric_GETTER_MetricName_TO_BASE(base) COM_FORWARD_IPerformanceMetric_GETTER_MetricName_TO (base::)
#define COM_FORWARD_IPerformanceMetric_GETTER_Object_TO(smth) NS_IMETHOD GetObject (nsISupports * * aObject) { return smth GetObject (aObject); }
#define COM_FORWARD_IPerformanceMetric_GETTER_Object_TO_OBJ(obj) COM_FORWARD_IPerformanceMetric_GETTER_Object_TO ((obj)->)
#define COM_FORWARD_IPerformanceMetric_GETTER_Object_TO_BASE(base) COM_FORWARD_IPerformanceMetric_GETTER_Object_TO (base::)
#define COM_FORWARD_IPerformanceMetric_GETTER_Description_TO(smth) NS_IMETHOD GetDescription (PRUnichar * * aDescription) { return smth GetDescription (aDescription); }
#define COM_FORWARD_IPerformanceMetric_GETTER_Description_TO_OBJ(obj) COM_FORWARD_IPerformanceMetric_GETTER_Description_TO ((obj)->)
#define COM_FORWARD_IPerformanceMetric_GETTER_Description_TO_BASE(base) COM_FORWARD_IPerformanceMetric_GETTER_Description_TO (base::)
#define COM_FORWARD_IPerformanceMetric_GETTER_Period_TO(smth) NS_IMETHOD GetPeriod (PRUint32 * aPeriod) { return smth GetPeriod (aPeriod); }
#define COM_FORWARD_IPerformanceMetric_GETTER_Period_TO_OBJ(obj) COM_FORWARD_IPerformanceMetric_GETTER_Period_TO ((obj)->)
#define COM_FORWARD_IPerformanceMetric_GETTER_Period_TO_BASE(base) COM_FORWARD_IPerformanceMetric_GETTER_Period_TO (base::)
#define COM_FORWARD_IPerformanceMetric_GETTER_Count_TO(smth) NS_IMETHOD GetCount (PRUint32 * aCount) { return smth GetCount (aCount); }
#define COM_FORWARD_IPerformanceMetric_GETTER_Count_TO_OBJ(obj) COM_FORWARD_IPerformanceMetric_GETTER_Count_TO ((obj)->)
#define COM_FORWARD_IPerformanceMetric_GETTER_Count_TO_BASE(base) COM_FORWARD_IPerformanceMetric_GETTER_Count_TO (base::)
#define COM_FORWARD_IPerformanceMetric_GETTER_Unit_TO(smth) NS_IMETHOD GetUnit (PRUnichar * * aUnit) { return smth GetUnit (aUnit); }
#define COM_FORWARD_IPerformanceMetric_GETTER_Unit_TO_OBJ(obj) COM_FORWARD_IPerformanceMetric_GETTER_Unit_TO ((obj)->)
#define COM_FORWARD_IPerformanceMetric_GETTER_Unit_TO_BASE(base) COM_FORWARD_IPerformanceMetric_GETTER_Unit_TO (base::)
#define COM_FORWARD_IPerformanceMetric_GETTER_MinimumValue_TO(smth) NS_IMETHOD GetMinimumValue (PRInt32 * aMinimumValue) { return smth GetMinimumValue (aMinimumValue); }
#define COM_FORWARD_IPerformanceMetric_GETTER_MinimumValue_TO_OBJ(obj) COM_FORWARD_IPerformanceMetric_GETTER_MinimumValue_TO ((obj)->)
#define COM_FORWARD_IPerformanceMetric_GETTER_MinimumValue_TO_BASE(base) COM_FORWARD_IPerformanceMetric_GETTER_MinimumValue_TO (base::)
#define COM_FORWARD_IPerformanceMetric_GETTER_MaximumValue_TO(smth) NS_IMETHOD GetMaximumValue (PRInt32 * aMaximumValue) { return smth GetMaximumValue (aMaximumValue); }
#define COM_FORWARD_IPerformanceMetric_GETTER_MaximumValue_TO_OBJ(obj) COM_FORWARD_IPerformanceMetric_GETTER_MaximumValue_TO ((obj)->)
#define COM_FORWARD_IPerformanceMetric_GETTER_MaximumValue_TO_BASE(base) COM_FORWARD_IPerformanceMetric_GETTER_MaximumValue_TO (base::)
#define COM_FORWARD_IPerformanceMetric_TO(smth) NS_FORWARD_IPERFORMANCEMETRIC (smth)
#define COM_FORWARD_IPerformanceMetric_TO_OBJ(obj) COM_FORWARD_IPerformanceMetric_TO ((obj)->)
#define COM_FORWARD_IPerformanceMetric_TO_BASE(base) COM_FORWARD_IPerformanceMetric_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IPerformanceMetric;
%}

[
    uuid(b14290ad-cd54-400c-b858-797bcb82570e),
    scriptable
]
interface IPerformanceCollector : nsISupports
{
    void getMetricNames (
        out unsigned long metricNamesSize,
        [array, size_is(metricNamesSize), retval] out wstring metricNames
    );

    readonly attribute unsigned long InternalAndReservedAttribute1IPerformanceCollector;

    readonly attribute unsigned long InternalAndReservedAttribute2IPerformanceCollector;

    readonly attribute unsigned long InternalAndReservedAttribute3IPerformanceCollector;

    readonly attribute unsigned long InternalAndReservedAttribute4IPerformanceCollector;

    readonly attribute unsigned long InternalAndReservedAttribute5IPerformanceCollector;

    readonly attribute unsigned long InternalAndReservedAttribute6IPerformanceCollector;

    readonly attribute unsigned long InternalAndReservedAttribute7IPerformanceCollector;

    readonly attribute unsigned long InternalAndReservedAttribute8IPerformanceCollector;

    void getMetrics (
        in unsigned long metricNamesSize,
        [array, size_is(metricNamesSize)] in wstring metricNames,
        in unsigned long objectsSize,
        [array, size_is(objectsSize)] in nsISupports objects,
        out unsigned long metricsSize,
        [array, size_is(metricsSize) , retval] out IPerformanceMetric metrics
    );

    void setupMetrics (
        in unsigned long metricNamesSize,
        [array, size_is(metricNamesSize)] in wstring metricNames,
        in unsigned long objectsSize,
        [array, size_is(objectsSize)] in nsISupports objects,
        in unsigned long period,
        in unsigned long count,
        out unsigned long affectedMetricsSize,
        [array, size_is(affectedMetricsSize) , retval] out IPerformanceMetric affectedMetrics
    );

    void enableMetrics (
        in unsigned long metricNamesSize,
        [array, size_is(metricNamesSize)] in wstring metricNames,
        in unsigned long objectsSize,
        [array, size_is(objectsSize)] in nsISupports objects,
        out unsigned long affectedMetricsSize,
        [array, size_is(affectedMetricsSize) , retval] out IPerformanceMetric affectedMetrics
    );

    void disableMetrics (
        in unsigned long metricNamesSize,
        [array, size_is(metricNamesSize)] in wstring metricNames,
        in unsigned long objectsSize,
        [array, size_is(objectsSize)] in nsISupports objects,
        out unsigned long affectedMetricsSize,
        [array, size_is(affectedMetricsSize) , retval] out IPerformanceMetric affectedMetrics
    );

    void queryMetricsData (
        in unsigned long metricNamesSize,
        [array, size_is(metricNamesSize)] in wstring metricNames,
        in unsigned long objectsSize,
        [array, size_is(objectsSize)] in nsISupports objects,
        out unsigned long returnMetricNamesSize,
        [array, size_is(returnMetricNamesSize)] out wstring returnMetricNames,
        out unsigned long returnObjectsSize,
        [array, size_is(returnObjectsSize)] out nsISupports returnObjects,
        out unsigned long returnUnitsSize,
        [array, size_is(returnUnitsSize)] out wstring returnUnits,
        out unsigned long returnScalesSize,
        [array, size_is(returnScalesSize)] out unsigned long returnScales,
        out unsigned long returnSequenceNumbersSize,
        [array, size_is(returnSequenceNumbersSize)] out unsigned long returnSequenceNumbers,
        out unsigned long returnDataIndicesSize,
        [array, size_is(returnDataIndicesSize)] out unsigned long returnDataIndices,
        out unsigned long returnDataLengthsSize,
        [array, size_is(returnDataLengthsSize)] out unsigned long returnDataLengths,
        out unsigned long returnDataSize,
        [array, size_is(returnDataSize) , retval] out long returnData
    );

    void InternalAndReservedMethod1IPerformanceCollector();

    void InternalAndReservedMethod2IPerformanceCollector();

    void InternalAndReservedMethod3IPerformanceCollector();

    void InternalAndReservedMethod4IPerformanceCollector();

}; /* interface IPerformanceCollector */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IPerformanceCollector_GETTER_MetricNames_TO(smth) NS_IMETHOD GetMetricNames (PRUint32 * aMetricNamesSize, PRUnichar * * * aMetricNames) { return smth GetMetricNames (aMetricNamesSize, aMetricNames); }
#define COM_FORWARD_IPerformanceCollector_GETTER_MetricNames_TO_OBJ(obj) COM_FORWARD_IPerformanceCollector_GETTER_MetricNames_TO ((obj)->)
#define COM_FORWARD_IPerformanceCollector_GETTER_MetricNames_TO_BASE(base) COM_FORWARD_IPerformanceCollector_GETTER_MetricNames_TO (base::)
#define COM_FORWARD_IPerformanceCollector_GetMetrics_TO(smth) NS_IMETHOD GetMetrics (PRUint32 aMetricNamesSize, PRUnichar * * aMetricNames, PRUint32 aObjectsSize, nsISupports * * aObjects, PRUint32 * aMetricsSize, IPerformanceMetric * * * aMetrics) { return smth GetMetrics (aMetricNamesSize+++, aMetricNames, aObjectsSize+++, aObjects, aMetricsSize, aMetrics); }
#define COM_FORWARD_IPerformanceCollector_GetMetrics_TO_OBJ(obj) COM_FORWARD_IPerformanceCollector_GetMetrics_TO ((obj)->)
#define COM_FORWARD_IPerformanceCollector_GetMetrics_TO_BASE(base) COM_FORWARD_IPerformanceCollector_GetMetrics_TO (base::)
#define COM_FORWARD_IPerformanceCollector_SetupMetrics_TO(smth) NS_IMETHOD SetupMetrics (PRUint32 aMetricNamesSize, PRUnichar * * aMetricNames, PRUint32 aObjectsSize, nsISupports * * aObjects, PRUint32 aPeriod, PRUint32 aCount, PRUint32 * aAffectedMetricsSize, IPerformanceMetric * * * aAffectedMetrics) { return smth SetupMetrics (aMetricNamesSize+++, aMetricNames, aObjectsSize+++, aObjects, aPeriod, aCount, aAffectedMetricsSize, aAffectedMetrics); }
#define COM_FORWARD_IPerformanceCollector_SetupMetrics_TO_OBJ(obj) COM_FORWARD_IPerformanceCollector_SetupMetrics_TO ((obj)->)
#define COM_FORWARD_IPerformanceCollector_SetupMetrics_TO_BASE(base) COM_FORWARD_IPerformanceCollector_SetupMetrics_TO (base::)
#define COM_FORWARD_IPerformanceCollector_EnableMetrics_TO(smth) NS_IMETHOD EnableMetrics (PRUint32 aMetricNamesSize, PRUnichar * * aMetricNames, PRUint32 aObjectsSize, nsISupports * * aObjects, PRUint32 * aAffectedMetricsSize, IPerformanceMetric * * * aAffectedMetrics) { return smth EnableMetrics (aMetricNamesSize+++, aMetricNames, aObjectsSize+++, aObjects, aAffectedMetricsSize, aAffectedMetrics); }
#define COM_FORWARD_IPerformanceCollector_EnableMetrics_TO_OBJ(obj) COM_FORWARD_IPerformanceCollector_EnableMetrics_TO ((obj)->)
#define COM_FORWARD_IPerformanceCollector_EnableMetrics_TO_BASE(base) COM_FORWARD_IPerformanceCollector_EnableMetrics_TO (base::)
#define COM_FORWARD_IPerformanceCollector_DisableMetrics_TO(smth) NS_IMETHOD DisableMetrics (PRUint32 aMetricNamesSize, PRUnichar * * aMetricNames, PRUint32 aObjectsSize, nsISupports * * aObjects, PRUint32 * aAffectedMetricsSize, IPerformanceMetric * * * aAffectedMetrics) { return smth DisableMetrics (aMetricNamesSize+++, aMetricNames, aObjectsSize+++, aObjects, aAffectedMetricsSize, aAffectedMetrics); }
#define COM_FORWARD_IPerformanceCollector_DisableMetrics_TO_OBJ(obj) COM_FORWARD_IPerformanceCollector_DisableMetrics_TO ((obj)->)
#define COM_FORWARD_IPerformanceCollector_DisableMetrics_TO_BASE(base) COM_FORWARD_IPerformanceCollector_DisableMetrics_TO (base::)
#define COM_FORWARD_IPerformanceCollector_QueryMetricsData_TO(smth) NS_IMETHOD QueryMetricsData (PRUint32 aMetricNamesSize, PRUnichar * * aMetricNames, PRUint32 aObjectsSize, nsISupports * * aObjects, PRUint32 * aReturnMetricNamesSize, PRUnichar * * * aReturnMetricNames, PRUint32 * aReturnObjectsSize, nsISupports * * * aReturnObjects, PRUint32 * aReturnUnitsSize, PRUnichar * * * aReturnUnits, PRUint32 * aReturnScalesSize, PRUint32 * * aReturnScales, PRUint32 * aReturnSequenceNumbersSize, PRUint32 * * aReturnSequenceNumbers, PRUint32 * aReturnDataIndicesSize, PRUint32 * * aReturnDataIndices, PRUint32 * aReturnDataLengthsSize, PRUint32 * * aReturnDataLengths, PRUint32 * aReturnDataSize, PRInt32 * * aReturnData) { return smth QueryMetricsData (aMetricNamesSize+++, aMetricNames, aObjectsSize+++, aObjects, aReturnMetricNamesSize+++, aReturnMetricNames, aReturnObjectsSize+++, aReturnObjects, aReturnUnitsSize+++, aReturnUnits, aReturnScalesSize+++, aReturnScales, aReturnSequenceNumbersSize+++, aReturnSequenceNumbers, aReturnDataIndicesSize+++, aReturnDataIndices, aReturnDataLengthsSize+++, aReturnDataLengths, aReturnDataSize, aReturnData); }
#define COM_FORWARD_IPerformanceCollector_QueryMetricsData_TO_OBJ(obj) COM_FORWARD_IPerformanceCollector_QueryMetricsData_TO ((obj)->)
#define COM_FORWARD_IPerformanceCollector_QueryMetricsData_TO_BASE(base) COM_FORWARD_IPerformanceCollector_QueryMetricsData_TO (base::)
#define COM_FORWARD_IPerformanceCollector_TO(smth) NS_FORWARD_IPERFORMANCECOLLECTOR (smth)
#define COM_FORWARD_IPerformanceCollector_TO_OBJ(obj) COM_FORWARD_IPerformanceCollector_TO ((obj)->)
#define COM_FORWARD_IPerformanceCollector_TO_BASE(base) COM_FORWARD_IPerformanceCollector_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IPerformanceCollector;
%}

[
    uuid(8faef61e-6e15-4f71-a6a5-94e707fafbcc),
    scriptable
]
interface INATEngine : nsISupports
{
    attribute wstring network;

    attribute wstring hostIP;

    attribute wstring TFTPPrefix;

    attribute wstring TFTPBootFile;

    attribute wstring TFTPNextServer;

    attribute unsigned long aliasMode;

    attribute boolean DNSPassDomain;

    attribute boolean DNSProxy;

    attribute boolean DNSUseHostResolver;

    void getRedirects (
        out unsigned long redirectsSize,
        [array, size_is(redirectsSize), retval] out wstring redirects
    );

    readonly attribute unsigned long InternalAndReservedAttribute1INATEngine;

    readonly attribute unsigned long InternalAndReservedAttribute2INATEngine;

    readonly attribute unsigned long InternalAndReservedAttribute3INATEngine;

    readonly attribute unsigned long InternalAndReservedAttribute4INATEngine;

    readonly attribute unsigned long InternalAndReservedAttribute5INATEngine;

    readonly attribute unsigned long InternalAndReservedAttribute6INATEngine;

    readonly attribute unsigned long InternalAndReservedAttribute7INATEngine;

    readonly attribute unsigned long InternalAndReservedAttribute8INATEngine;

    void setNetworkSettings (
        in unsigned long mtu,
        in unsigned long sockSnd,
        in unsigned long sockRcv,
        in unsigned long TcpWndSnd,
        in unsigned long TcpWndRcv
    );

    void getNetworkSettings (
        out unsigned long mtu,
        out unsigned long sockSnd,
        out unsigned long sockRcv,
        out unsigned long TcpWndSnd,
        out unsigned long TcpWndRcv
    );

    void addRedirect (
        in wstring name,
        in NATProtocol_T proto,
        in wstring hostIP,
        in unsigned short hostPort,
        in wstring guestIP,
        in unsigned short guestPort
    );

    void removeRedirect (
        in wstring name
    );

    void InternalAndReservedMethod1INATEngine();

    void InternalAndReservedMethod2INATEngine();

    void InternalAndReservedMethod3INATEngine();

    void InternalAndReservedMethod4INATEngine();

}; /* interface INATEngine */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_INATEngine_GETTER_Network_TO(smth) NS_IMETHOD GetNetwork (PRUnichar * * aNetwork) { return smth GetNetwork (aNetwork); }
#define COM_FORWARD_INATEngine_GETTER_Network_TO_OBJ(obj) COM_FORWARD_INATEngine_GETTER_Network_TO ((obj)->)
#define COM_FORWARD_INATEngine_GETTER_Network_TO_BASE(base) COM_FORWARD_INATEngine_GETTER_Network_TO (base::)
#define COM_FORWARD_INATEngine_SETTER_Network_TO(smth) NS_IMETHOD SetNetwork (const PRUnichar * aNetwork) { return smth SetNetwork (aNetwork); }
#define COM_FORWARD_INATEngine_SETTER_Network_TO_OBJ(obj) COM_FORWARD_INATEngine_SETTER_Network_TO ((obj)->)
#define COM_FORWARD_INATEngine_SETTER_Network_TO_BASE(base) COM_FORWARD_INATEngine_SETTER_Network_TO (base::)
#define COM_FORWARD_INATEngine_GETTER_HostIP_TO(smth) NS_IMETHOD GetHostIP (PRUnichar * * aHostIP) { return smth GetHostIP (aHostIP); }
#define COM_FORWARD_INATEngine_GETTER_HostIP_TO_OBJ(obj) COM_FORWARD_INATEngine_GETTER_HostIP_TO ((obj)->)
#define COM_FORWARD_INATEngine_GETTER_HostIP_TO_BASE(base) COM_FORWARD_INATEngine_GETTER_HostIP_TO (base::)
#define COM_FORWARD_INATEngine_SETTER_HostIP_TO(smth) NS_IMETHOD SetHostIP (const PRUnichar * aHostIP) { return smth SetHostIP (aHostIP); }
#define COM_FORWARD_INATEngine_SETTER_HostIP_TO_OBJ(obj) COM_FORWARD_INATEngine_SETTER_HostIP_TO ((obj)->)
#define COM_FORWARD_INATEngine_SETTER_HostIP_TO_BASE(base) COM_FORWARD_INATEngine_SETTER_HostIP_TO (base::)
#define COM_FORWARD_INATEngine_GETTER_TFTPPrefix_TO(smth) NS_IMETHOD GetTFTPPrefix (PRUnichar * * aTFTPPrefix) { return smth GetTFTPPrefix (aTFTPPrefix); }
#define COM_FORWARD_INATEngine_GETTER_TFTPPrefix_TO_OBJ(obj) COM_FORWARD_INATEngine_GETTER_TFTPPrefix_TO ((obj)->)
#define COM_FORWARD_INATEngine_GETTER_TFTPPrefix_TO_BASE(base) COM_FORWARD_INATEngine_GETTER_TFTPPrefix_TO (base::)
#define COM_FORWARD_INATEngine_SETTER_TFTPPrefix_TO(smth) NS_IMETHOD SetTFTPPrefix (const PRUnichar * aTFTPPrefix) { return smth SetTFTPPrefix (aTFTPPrefix); }
#define COM_FORWARD_INATEngine_SETTER_TFTPPrefix_TO_OBJ(obj) COM_FORWARD_INATEngine_SETTER_TFTPPrefix_TO ((obj)->)
#define COM_FORWARD_INATEngine_SETTER_TFTPPrefix_TO_BASE(base) COM_FORWARD_INATEngine_SETTER_TFTPPrefix_TO (base::)
#define COM_FORWARD_INATEngine_GETTER_TFTPBootFile_TO(smth) NS_IMETHOD GetTFTPBootFile (PRUnichar * * aTFTPBootFile) { return smth GetTFTPBootFile (aTFTPBootFile); }
#define COM_FORWARD_INATEngine_GETTER_TFTPBootFile_TO_OBJ(obj) COM_FORWARD_INATEngine_GETTER_TFTPBootFile_TO ((obj)->)
#define COM_FORWARD_INATEngine_GETTER_TFTPBootFile_TO_BASE(base) COM_FORWARD_INATEngine_GETTER_TFTPBootFile_TO (base::)
#define COM_FORWARD_INATEngine_SETTER_TFTPBootFile_TO(smth) NS_IMETHOD SetTFTPBootFile (const PRUnichar * aTFTPBootFile) { return smth SetTFTPBootFile (aTFTPBootFile); }
#define COM_FORWARD_INATEngine_SETTER_TFTPBootFile_TO_OBJ(obj) COM_FORWARD_INATEngine_SETTER_TFTPBootFile_TO ((obj)->)
#define COM_FORWARD_INATEngine_SETTER_TFTPBootFile_TO_BASE(base) COM_FORWARD_INATEngine_SETTER_TFTPBootFile_TO (base::)
#define COM_FORWARD_INATEngine_GETTER_TFTPNextServer_TO(smth) NS_IMETHOD GetTFTPNextServer (PRUnichar * * aTFTPNextServer) { return smth GetTFTPNextServer (aTFTPNextServer); }
#define COM_FORWARD_INATEngine_GETTER_TFTPNextServer_TO_OBJ(obj) COM_FORWARD_INATEngine_GETTER_TFTPNextServer_TO ((obj)->)
#define COM_FORWARD_INATEngine_GETTER_TFTPNextServer_TO_BASE(base) COM_FORWARD_INATEngine_GETTER_TFTPNextServer_TO (base::)
#define COM_FORWARD_INATEngine_SETTER_TFTPNextServer_TO(smth) NS_IMETHOD SetTFTPNextServer (const PRUnichar * aTFTPNextServer) { return smth SetTFTPNextServer (aTFTPNextServer); }
#define COM_FORWARD_INATEngine_SETTER_TFTPNextServer_TO_OBJ(obj) COM_FORWARD_INATEngine_SETTER_TFTPNextServer_TO ((obj)->)
#define COM_FORWARD_INATEngine_SETTER_TFTPNextServer_TO_BASE(base) COM_FORWARD_INATEngine_SETTER_TFTPNextServer_TO (base::)
#define COM_FORWARD_INATEngine_GETTER_AliasMode_TO(smth) NS_IMETHOD GetAliasMode (PRUint32 * aAliasMode) { return smth GetAliasMode (aAliasMode); }
#define COM_FORWARD_INATEngine_GETTER_AliasMode_TO_OBJ(obj) COM_FORWARD_INATEngine_GETTER_AliasMode_TO ((obj)->)
#define COM_FORWARD_INATEngine_GETTER_AliasMode_TO_BASE(base) COM_FORWARD_INATEngine_GETTER_AliasMode_TO (base::)
#define COM_FORWARD_INATEngine_SETTER_AliasMode_TO(smth) NS_IMETHOD SetAliasMode (PRUint32 aAliasMode) { return smth SetAliasMode (aAliasMode); }
#define COM_FORWARD_INATEngine_SETTER_AliasMode_TO_OBJ(obj) COM_FORWARD_INATEngine_SETTER_AliasMode_TO ((obj)->)
#define COM_FORWARD_INATEngine_SETTER_AliasMode_TO_BASE(base) COM_FORWARD_INATEngine_SETTER_AliasMode_TO (base::)
#define COM_FORWARD_INATEngine_GETTER_DNSPassDomain_TO(smth) NS_IMETHOD GetDNSPassDomain (PRBool * aDNSPassDomain) { return smth GetDNSPassDomain (aDNSPassDomain); }
#define COM_FORWARD_INATEngine_GETTER_DNSPassDomain_TO_OBJ(obj) COM_FORWARD_INATEngine_GETTER_DNSPassDomain_TO ((obj)->)
#define COM_FORWARD_INATEngine_GETTER_DNSPassDomain_TO_BASE(base) COM_FORWARD_INATEngine_GETTER_DNSPassDomain_TO (base::)
#define COM_FORWARD_INATEngine_SETTER_DNSPassDomain_TO(smth) NS_IMETHOD SetDNSPassDomain (PRBool aDNSPassDomain) { return smth SetDNSPassDomain (aDNSPassDomain); }
#define COM_FORWARD_INATEngine_SETTER_DNSPassDomain_TO_OBJ(obj) COM_FORWARD_INATEngine_SETTER_DNSPassDomain_TO ((obj)->)
#define COM_FORWARD_INATEngine_SETTER_DNSPassDomain_TO_BASE(base) COM_FORWARD_INATEngine_SETTER_DNSPassDomain_TO (base::)
#define COM_FORWARD_INATEngine_GETTER_DNSProxy_TO(smth) NS_IMETHOD GetDNSProxy (PRBool * aDNSProxy) { return smth GetDNSProxy (aDNSProxy); }
#define COM_FORWARD_INATEngine_GETTER_DNSProxy_TO_OBJ(obj) COM_FORWARD_INATEngine_GETTER_DNSProxy_TO ((obj)->)
#define COM_FORWARD_INATEngine_GETTER_DNSProxy_TO_BASE(base) COM_FORWARD_INATEngine_GETTER_DNSProxy_TO (base::)
#define COM_FORWARD_INATEngine_SETTER_DNSProxy_TO(smth) NS_IMETHOD SetDNSProxy (PRBool aDNSProxy) { return smth SetDNSProxy (aDNSProxy); }
#define COM_FORWARD_INATEngine_SETTER_DNSProxy_TO_OBJ(obj) COM_FORWARD_INATEngine_SETTER_DNSProxy_TO ((obj)->)
#define COM_FORWARD_INATEngine_SETTER_DNSProxy_TO_BASE(base) COM_FORWARD_INATEngine_SETTER_DNSProxy_TO (base::)
#define COM_FORWARD_INATEngine_GETTER_DNSUseHostResolver_TO(smth) NS_IMETHOD GetDNSUseHostResolver (PRBool * aDNSUseHostResolver) { return smth GetDNSUseHostResolver (aDNSUseHostResolver); }
#define COM_FORWARD_INATEngine_GETTER_DNSUseHostResolver_TO_OBJ(obj) COM_FORWARD_INATEngine_GETTER_DNSUseHostResolver_TO ((obj)->)
#define COM_FORWARD_INATEngine_GETTER_DNSUseHostResolver_TO_BASE(base) COM_FORWARD_INATEngine_GETTER_DNSUseHostResolver_TO (base::)
#define COM_FORWARD_INATEngine_SETTER_DNSUseHostResolver_TO(smth) NS_IMETHOD SetDNSUseHostResolver (PRBool aDNSUseHostResolver) { return smth SetDNSUseHostResolver (aDNSUseHostResolver); }
#define COM_FORWARD_INATEngine_SETTER_DNSUseHostResolver_TO_OBJ(obj) COM_FORWARD_INATEngine_SETTER_DNSUseHostResolver_TO ((obj)->)
#define COM_FORWARD_INATEngine_SETTER_DNSUseHostResolver_TO_BASE(base) COM_FORWARD_INATEngine_SETTER_DNSUseHostResolver_TO (base::)
#define COM_FORWARD_INATEngine_GETTER_Redirects_TO(smth) NS_IMETHOD GetRedirects (PRUint32 * aRedirectsSize, PRUnichar * * * aRedirects) { return smth GetRedirects (aRedirectsSize, aRedirects); }
#define COM_FORWARD_INATEngine_GETTER_Redirects_TO_OBJ(obj) COM_FORWARD_INATEngine_GETTER_Redirects_TO ((obj)->)
#define COM_FORWARD_INATEngine_GETTER_Redirects_TO_BASE(base) COM_FORWARD_INATEngine_GETTER_Redirects_TO (base::)
#define COM_FORWARD_INATEngine_SetNetworkSettings_TO(smth) NS_IMETHOD SetNetworkSettings (PRUint32 aMtu, PRUint32 aSockSnd, PRUint32 aSockRcv, PRUint32 aTcpWndSnd, PRUint32 aTcpWndRcv) { return smth SetNetworkSettings (aMtu, aSockSnd, aSockRcv, aTcpWndSnd, aTcpWndRcv); }
#define COM_FORWARD_INATEngine_SetNetworkSettings_TO_OBJ(obj) COM_FORWARD_INATEngine_SetNetworkSettings_TO ((obj)->)
#define COM_FORWARD_INATEngine_SetNetworkSettings_TO_BASE(base) COM_FORWARD_INATEngine_SetNetworkSettings_TO (base::)
#define COM_FORWARD_INATEngine_GetNetworkSettings_TO(smth) NS_IMETHOD GetNetworkSettings (PRUint32 * aMtu, PRUint32 * aSockSnd, PRUint32 * aSockRcv, PRUint32 * aTcpWndSnd, PRUint32 * aTcpWndRcv) { return smth GetNetworkSettings (aMtu, aSockSnd, aSockRcv, aTcpWndSnd, aTcpWndRcv); }
#define COM_FORWARD_INATEngine_GetNetworkSettings_TO_OBJ(obj) COM_FORWARD_INATEngine_GetNetworkSettings_TO ((obj)->)
#define COM_FORWARD_INATEngine_GetNetworkSettings_TO_BASE(base) COM_FORWARD_INATEngine_GetNetworkSettings_TO (base::)
#define COM_FORWARD_INATEngine_AddRedirect_TO(smth) NS_IMETHOD AddRedirect (PRUnichar * aName, PRUint32 aProto, PRUnichar * aHostIP, PRUint16 aHostPort, PRUnichar * aGuestIP, PRUint16 aGuestPort) { return smth AddRedirect (aName, aProto, aHostIP, aHostPort, aGuestIP, aGuestPort); }
#define COM_FORWARD_INATEngine_AddRedirect_TO_OBJ(obj) COM_FORWARD_INATEngine_AddRedirect_TO ((obj)->)
#define COM_FORWARD_INATEngine_AddRedirect_TO_BASE(base) COM_FORWARD_INATEngine_AddRedirect_TO (base::)
#define COM_FORWARD_INATEngine_RemoveRedirect_TO(smth) NS_IMETHOD RemoveRedirect (PRUnichar * aName) { return smth RemoveRedirect (aName); }
#define COM_FORWARD_INATEngine_RemoveRedirect_TO_OBJ(obj) COM_FORWARD_INATEngine_RemoveRedirect_TO ((obj)->)
#define COM_FORWARD_INATEngine_RemoveRedirect_TO_BASE(base) COM_FORWARD_INATEngine_RemoveRedirect_TO (base::)
#define COM_FORWARD_INATEngine_TO(smth) NS_FORWARD_INATENGINE (smth)
#define COM_FORWARD_INATEngine_TO_OBJ(obj) COM_FORWARD_INATEngine_TO ((obj)->)
#define COM_FORWARD_INATEngine_TO_BASE(base) COM_FORWARD_INATEngine_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_INATEngine;
%}

[
    uuid(78861431-d545-44aa-8013-181b8c288554),
    scriptable
]
interface IExtPackPlugIn : nsISupports
{
    readonly attribute wstring name;

    readonly attribute wstring description;

    readonly attribute wstring frontend;

    readonly attribute wstring modulePath;

    readonly attribute unsigned long InternalAndReservedAttribute1IExtPackPlugIn;

    readonly attribute unsigned long InternalAndReservedAttribute2IExtPackPlugIn;

    readonly attribute unsigned long InternalAndReservedAttribute3IExtPackPlugIn;

    readonly attribute unsigned long InternalAndReservedAttribute4IExtPackPlugIn;

}; /* interface IExtPackPlugIn */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IExtPackPlugIn_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_IExtPackPlugIn_GETTER_Name_TO_OBJ(obj) COM_FORWARD_IExtPackPlugIn_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_IExtPackPlugIn_GETTER_Name_TO_BASE(base) COM_FORWARD_IExtPackPlugIn_GETTER_Name_TO (base::)
#define COM_FORWARD_IExtPackPlugIn_GETTER_Description_TO(smth) NS_IMETHOD GetDescription (PRUnichar * * aDescription) { return smth GetDescription (aDescription); }
#define COM_FORWARD_IExtPackPlugIn_GETTER_Description_TO_OBJ(obj) COM_FORWARD_IExtPackPlugIn_GETTER_Description_TO ((obj)->)
#define COM_FORWARD_IExtPackPlugIn_GETTER_Description_TO_BASE(base) COM_FORWARD_IExtPackPlugIn_GETTER_Description_TO (base::)
#define COM_FORWARD_IExtPackPlugIn_GETTER_Frontend_TO(smth) NS_IMETHOD GetFrontend (PRUnichar * * aFrontend) { return smth GetFrontend (aFrontend); }
#define COM_FORWARD_IExtPackPlugIn_GETTER_Frontend_TO_OBJ(obj) COM_FORWARD_IExtPackPlugIn_GETTER_Frontend_TO ((obj)->)
#define COM_FORWARD_IExtPackPlugIn_GETTER_Frontend_TO_BASE(base) COM_FORWARD_IExtPackPlugIn_GETTER_Frontend_TO (base::)
#define COM_FORWARD_IExtPackPlugIn_GETTER_ModulePath_TO(smth) NS_IMETHOD GetModulePath (PRUnichar * * aModulePath) { return smth GetModulePath (aModulePath); }
#define COM_FORWARD_IExtPackPlugIn_GETTER_ModulePath_TO_OBJ(obj) COM_FORWARD_IExtPackPlugIn_GETTER_ModulePath_TO ((obj)->)
#define COM_FORWARD_IExtPackPlugIn_GETTER_ModulePath_TO_BASE(base) COM_FORWARD_IExtPackPlugIn_GETTER_ModulePath_TO (base::)
#define COM_FORWARD_IExtPackPlugIn_TO(smth) NS_FORWARD_IEXTPACKPLUGIN (smth)
#define COM_FORWARD_IExtPackPlugIn_TO_OBJ(obj) COM_FORWARD_IExtPackPlugIn_TO ((obj)->)
#define COM_FORWARD_IExtPackPlugIn_TO_BASE(base) COM_FORWARD_IExtPackPlugIn_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IExtPackPlugIn;
%}

[
    uuid(f25aca3d-0b79-4350-bdd9-a0376cd6e6e3),
    scriptable
]
interface IExtPackBase : nsISupports
{
    readonly attribute wstring name;

    readonly attribute wstring description;

    readonly attribute wstring version;

    readonly attribute unsigned long revision;

    readonly attribute wstring edition;

    readonly attribute wstring VRDEModule;

    void getPlugIns (
        out unsigned long plugInsSize,
        [array, size_is(plugInsSize), retval] out IExtPackPlugIn plugIns
    );

    readonly attribute boolean usable;

    readonly attribute wstring whyUnusable;

    readonly attribute boolean showLicense;

    readonly attribute wstring license;

    readonly attribute unsigned long InternalAndReservedAttribute1IExtPackBase;

    readonly attribute unsigned long InternalAndReservedAttribute2IExtPackBase;

    readonly attribute unsigned long InternalAndReservedAttribute3IExtPackBase;

    readonly attribute unsigned long InternalAndReservedAttribute4IExtPackBase;

    readonly attribute unsigned long InternalAndReservedAttribute5IExtPackBase;

    readonly attribute unsigned long InternalAndReservedAttribute6IExtPackBase;

    readonly attribute unsigned long InternalAndReservedAttribute7IExtPackBase;

    readonly attribute unsigned long InternalAndReservedAttribute8IExtPackBase;

    void queryLicense (
        in wstring preferredLocale,
        in wstring preferredLanguage,
        in wstring format,
        [retval] out wstring licenseText
    );

    void InternalAndReservedMethod1IExtPackBase();

    void InternalAndReservedMethod2IExtPackBase();

    void InternalAndReservedMethod3IExtPackBase();

    void InternalAndReservedMethod4IExtPackBase();

}; /* interface IExtPackBase */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IExtPackBase_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_IExtPackBase_GETTER_Name_TO_OBJ(obj) COM_FORWARD_IExtPackBase_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_IExtPackBase_GETTER_Name_TO_BASE(base) COM_FORWARD_IExtPackBase_GETTER_Name_TO (base::)
#define COM_FORWARD_IExtPackBase_GETTER_Description_TO(smth) NS_IMETHOD GetDescription (PRUnichar * * aDescription) { return smth GetDescription (aDescription); }
#define COM_FORWARD_IExtPackBase_GETTER_Description_TO_OBJ(obj) COM_FORWARD_IExtPackBase_GETTER_Description_TO ((obj)->)
#define COM_FORWARD_IExtPackBase_GETTER_Description_TO_BASE(base) COM_FORWARD_IExtPackBase_GETTER_Description_TO (base::)
#define COM_FORWARD_IExtPackBase_GETTER_Version_TO(smth) NS_IMETHOD GetVersion (PRUnichar * * aVersion) { return smth GetVersion (aVersion); }
#define COM_FORWARD_IExtPackBase_GETTER_Version_TO_OBJ(obj) COM_FORWARD_IExtPackBase_GETTER_Version_TO ((obj)->)
#define COM_FORWARD_IExtPackBase_GETTER_Version_TO_BASE(base) COM_FORWARD_IExtPackBase_GETTER_Version_TO (base::)
#define COM_FORWARD_IExtPackBase_GETTER_Revision_TO(smth) NS_IMETHOD GetRevision (PRUint32 * aRevision) { return smth GetRevision (aRevision); }
#define COM_FORWARD_IExtPackBase_GETTER_Revision_TO_OBJ(obj) COM_FORWARD_IExtPackBase_GETTER_Revision_TO ((obj)->)
#define COM_FORWARD_IExtPackBase_GETTER_Revision_TO_BASE(base) COM_FORWARD_IExtPackBase_GETTER_Revision_TO (base::)
#define COM_FORWARD_IExtPackBase_GETTER_Edition_TO(smth) NS_IMETHOD GetEdition (PRUnichar * * aEdition) { return smth GetEdition (aEdition); }
#define COM_FORWARD_IExtPackBase_GETTER_Edition_TO_OBJ(obj) COM_FORWARD_IExtPackBase_GETTER_Edition_TO ((obj)->)
#define COM_FORWARD_IExtPackBase_GETTER_Edition_TO_BASE(base) COM_FORWARD_IExtPackBase_GETTER_Edition_TO (base::)
#define COM_FORWARD_IExtPackBase_GETTER_VRDEModule_TO(smth) NS_IMETHOD GetVRDEModule (PRUnichar * * aVRDEModule) { return smth GetVRDEModule (aVRDEModule); }
#define COM_FORWARD_IExtPackBase_GETTER_VRDEModule_TO_OBJ(obj) COM_FORWARD_IExtPackBase_GETTER_VRDEModule_TO ((obj)->)
#define COM_FORWARD_IExtPackBase_GETTER_VRDEModule_TO_BASE(base) COM_FORWARD_IExtPackBase_GETTER_VRDEModule_TO (base::)
#define COM_FORWARD_IExtPackBase_GETTER_PlugIns_TO(smth) NS_IMETHOD GetPlugIns (PRUint32 * aPlugInsSize, IExtPackPlugIn * * * aPlugIns) { return smth GetPlugIns (aPlugInsSize, aPlugIns); }
#define COM_FORWARD_IExtPackBase_GETTER_PlugIns_TO_OBJ(obj) COM_FORWARD_IExtPackBase_GETTER_PlugIns_TO ((obj)->)
#define COM_FORWARD_IExtPackBase_GETTER_PlugIns_TO_BASE(base) COM_FORWARD_IExtPackBase_GETTER_PlugIns_TO (base::)
#define COM_FORWARD_IExtPackBase_GETTER_Usable_TO(smth) NS_IMETHOD GetUsable (PRBool * aUsable) { return smth GetUsable (aUsable); }
#define COM_FORWARD_IExtPackBase_GETTER_Usable_TO_OBJ(obj) COM_FORWARD_IExtPackBase_GETTER_Usable_TO ((obj)->)
#define COM_FORWARD_IExtPackBase_GETTER_Usable_TO_BASE(base) COM_FORWARD_IExtPackBase_GETTER_Usable_TO (base::)
#define COM_FORWARD_IExtPackBase_GETTER_WhyUnusable_TO(smth) NS_IMETHOD GetWhyUnusable (PRUnichar * * aWhyUnusable) { return smth GetWhyUnusable (aWhyUnusable); }
#define COM_FORWARD_IExtPackBase_GETTER_WhyUnusable_TO_OBJ(obj) COM_FORWARD_IExtPackBase_GETTER_WhyUnusable_TO ((obj)->)
#define COM_FORWARD_IExtPackBase_GETTER_WhyUnusable_TO_BASE(base) COM_FORWARD_IExtPackBase_GETTER_WhyUnusable_TO (base::)
#define COM_FORWARD_IExtPackBase_GETTER_ShowLicense_TO(smth) NS_IMETHOD GetShowLicense (PRBool * aShowLicense) { return smth GetShowLicense (aShowLicense); }
#define COM_FORWARD_IExtPackBase_GETTER_ShowLicense_TO_OBJ(obj) COM_FORWARD_IExtPackBase_GETTER_ShowLicense_TO ((obj)->)
#define COM_FORWARD_IExtPackBase_GETTER_ShowLicense_TO_BASE(base) COM_FORWARD_IExtPackBase_GETTER_ShowLicense_TO (base::)
#define COM_FORWARD_IExtPackBase_GETTER_License_TO(smth) NS_IMETHOD GetLicense (PRUnichar * * aLicense) { return smth GetLicense (aLicense); }
#define COM_FORWARD_IExtPackBase_GETTER_License_TO_OBJ(obj) COM_FORWARD_IExtPackBase_GETTER_License_TO ((obj)->)
#define COM_FORWARD_IExtPackBase_GETTER_License_TO_BASE(base) COM_FORWARD_IExtPackBase_GETTER_License_TO (base::)
#define COM_FORWARD_IExtPackBase_QueryLicense_TO(smth) NS_IMETHOD QueryLicense (PRUnichar * aPreferredLocale, PRUnichar * aPreferredLanguage, PRUnichar * aFormat, PRUnichar * * aLicenseText) { return smth QueryLicense (aPreferredLocale, aPreferredLanguage, aFormat, aLicenseText); }
#define COM_FORWARD_IExtPackBase_QueryLicense_TO_OBJ(obj) COM_FORWARD_IExtPackBase_QueryLicense_TO ((obj)->)
#define COM_FORWARD_IExtPackBase_QueryLicense_TO_BASE(base) COM_FORWARD_IExtPackBase_QueryLicense_TO (base::)
#define COM_FORWARD_IExtPackBase_TO(smth) NS_FORWARD_IEXTPACKBASE (smth)
#define COM_FORWARD_IExtPackBase_TO_OBJ(obj) COM_FORWARD_IExtPackBase_TO ((obj)->)
#define COM_FORWARD_IExtPackBase_TO_BASE(base) COM_FORWARD_IExtPackBase_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IExtPackBase;
%}

[
    uuid(431685da-3618-4ebc-b038-833ba829b4b2),
    scriptable
]
interface IExtPack : IExtPackBase
{
    void queryObject (
        in wstring objUuid,
        [retval] out nsISupports returnInterface
    );

}; /* interface IExtPack */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IExtPack_QueryObject_TO(smth) NS_IMETHOD QueryObject (PRUnichar * aObjUuid, nsISupports * * aReturnInterface) { return smth QueryObject (aObjUuid, aReturnInterface); }
#define COM_FORWARD_IExtPack_QueryObject_TO_OBJ(obj) COM_FORWARD_IExtPack_QueryObject_TO ((obj)->)
#define COM_FORWARD_IExtPack_QueryObject_TO_BASE(base) COM_FORWARD_IExtPack_QueryObject_TO (base::)
#define COM_FORWARD_IExtPack_TO(smth) NS_FORWARD_IEXTPACK (smth)
#define COM_FORWARD_IExtPack_TO_OBJ(obj) COM_FORWARD_IExtPack_TO ((obj)->)
#define COM_FORWARD_IExtPack_TO_BASE(base) COM_FORWARD_IExtPack_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IExtPack;
%}

[
    uuid(41304f1b-7e72-4f34-b8f6-682785620c57),
    scriptable
]
interface IExtPackFile : IExtPackBase
{
    readonly attribute wstring filePath;

    readonly attribute unsigned long InternalAndReservedAttribute1IExtPackFile;

    readonly attribute unsigned long InternalAndReservedAttribute2IExtPackFile;

    readonly attribute unsigned long InternalAndReservedAttribute3IExtPackFile;

    readonly attribute unsigned long InternalAndReservedAttribute4IExtPackFile;

    void install (
        in boolean replace,
        in wstring displayInfo,
        [retval] out IProgress progess
    );

    void InternalAndReservedMethod1IExtPackFile();

    void InternalAndReservedMethod2IExtPackFile();

}; /* interface IExtPackFile */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IExtPackFile_GETTER_FilePath_TO(smth) NS_IMETHOD GetFilePath (PRUnichar * * aFilePath) { return smth GetFilePath (aFilePath); }
#define COM_FORWARD_IExtPackFile_GETTER_FilePath_TO_OBJ(obj) COM_FORWARD_IExtPackFile_GETTER_FilePath_TO ((obj)->)
#define COM_FORWARD_IExtPackFile_GETTER_FilePath_TO_BASE(base) COM_FORWARD_IExtPackFile_GETTER_FilePath_TO (base::)
#define COM_FORWARD_IExtPackFile_Install_TO(smth) NS_IMETHOD Install (PRBool aReplace, PRUnichar * aDisplayInfo, IProgress * * aProgess) { return smth Install (aReplace, aDisplayInfo, aProgess); }
#define COM_FORWARD_IExtPackFile_Install_TO_OBJ(obj) COM_FORWARD_IExtPackFile_Install_TO ((obj)->)
#define COM_FORWARD_IExtPackFile_Install_TO_BASE(base) COM_FORWARD_IExtPackFile_Install_TO (base::)
#define COM_FORWARD_IExtPackFile_TO(smth) NS_FORWARD_IEXTPACKFILE (smth)
#define COM_FORWARD_IExtPackFile_TO_OBJ(obj) COM_FORWARD_IExtPackFile_TO ((obj)->)
#define COM_FORWARD_IExtPackFile_TO_BASE(base) COM_FORWARD_IExtPackFile_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IExtPackFile;
%}

[
    uuid(70401eef-c8e9-466b-9660-45cb3e9979e4),
    scriptable
]
interface IExtPackManager : nsISupports
{
    void getInstalledExtPacks (
        out unsigned long installedExtPacksSize,
        [array, size_is(installedExtPacksSize), retval] out IExtPack installedExtPacks
    );

    readonly attribute unsigned long InternalAndReservedAttribute1IExtPackManager;

    readonly attribute unsigned long InternalAndReservedAttribute2IExtPackManager;

    readonly attribute unsigned long InternalAndReservedAttribute3IExtPackManager;

    readonly attribute unsigned long InternalAndReservedAttribute4IExtPackManager;

    readonly attribute unsigned long InternalAndReservedAttribute5IExtPackManager;

    readonly attribute unsigned long InternalAndReservedAttribute6IExtPackManager;

    readonly attribute unsigned long InternalAndReservedAttribute7IExtPackManager;

    readonly attribute unsigned long InternalAndReservedAttribute8IExtPackManager;

    void find (
        in wstring name,
        [retval] out IExtPack returnData
    );

    void openExtPackFile (
        in wstring path,
        [retval] out IExtPackFile file
    );

    void uninstall (
        in wstring name,
        in boolean forcedRemoval,
        in wstring displayInfo,
        [retval] out IProgress progess
    );

    void cleanup();

    void queryAllPlugInsForFrontend (
        in wstring frontendName,
        out unsigned long plugInModulesSize,
        [array, size_is(plugInModulesSize) , retval] out wstring plugInModules
    );

    void isExtPackUsable (
        in wstring name,
        [retval] out boolean usable
    );

    void InternalAndReservedMethod1IExtPackManager();

    void InternalAndReservedMethod2IExtPackManager();

    void InternalAndReservedMethod3IExtPackManager();

    void InternalAndReservedMethod4IExtPackManager();

}; /* interface IExtPackManager */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IExtPackManager_GETTER_InstalledExtPacks_TO(smth) NS_IMETHOD GetInstalledExtPacks (PRUint32 * aInstalledExtPacksSize, IExtPack * * * aInstalledExtPacks) { return smth GetInstalledExtPacks (aInstalledExtPacksSize, aInstalledExtPacks); }
#define COM_FORWARD_IExtPackManager_GETTER_InstalledExtPacks_TO_OBJ(obj) COM_FORWARD_IExtPackManager_GETTER_InstalledExtPacks_TO ((obj)->)
#define COM_FORWARD_IExtPackManager_GETTER_InstalledExtPacks_TO_BASE(base) COM_FORWARD_IExtPackManager_GETTER_InstalledExtPacks_TO (base::)
#define COM_FORWARD_IExtPackManager_Find_TO(smth) NS_IMETHOD Find (PRUnichar * aName, IExtPack * * aReturnData) { return smth Find (aName, aReturnData); }
#define COM_FORWARD_IExtPackManager_Find_TO_OBJ(obj) COM_FORWARD_IExtPackManager_Find_TO ((obj)->)
#define COM_FORWARD_IExtPackManager_Find_TO_BASE(base) COM_FORWARD_IExtPackManager_Find_TO (base::)
#define COM_FORWARD_IExtPackManager_OpenExtPackFile_TO(smth) NS_IMETHOD OpenExtPackFile (PRUnichar * aPath, IExtPackFile * * aFile) { return smth OpenExtPackFile (aPath, aFile); }
#define COM_FORWARD_IExtPackManager_OpenExtPackFile_TO_OBJ(obj) COM_FORWARD_IExtPackManager_OpenExtPackFile_TO ((obj)->)
#define COM_FORWARD_IExtPackManager_OpenExtPackFile_TO_BASE(base) COM_FORWARD_IExtPackManager_OpenExtPackFile_TO (base::)
#define COM_FORWARD_IExtPackManager_Uninstall_TO(smth) NS_IMETHOD Uninstall (PRUnichar * aName, PRBool aForcedRemoval, PRUnichar * aDisplayInfo, IProgress * * aProgess) { return smth Uninstall (aName, aForcedRemoval, aDisplayInfo, aProgess); }
#define COM_FORWARD_IExtPackManager_Uninstall_TO_OBJ(obj) COM_FORWARD_IExtPackManager_Uninstall_TO ((obj)->)
#define COM_FORWARD_IExtPackManager_Uninstall_TO_BASE(base) COM_FORWARD_IExtPackManager_Uninstall_TO (base::)
#define COM_FORWARD_IExtPackManager_Cleanup_TO(smth) NS_IMETHOD Cleanup() { return smth Cleanup(); }
#define COM_FORWARD_IExtPackManager_Cleanup_TO_OBJ(obj) COM_FORWARD_IExtPackManager_Cleanup_TO ((obj)->)
#define COM_FORWARD_IExtPackManager_Cleanup_TO_BASE(base) COM_FORWARD_IExtPackManager_Cleanup_TO (base::)
#define COM_FORWARD_IExtPackManager_QueryAllPlugInsForFrontend_TO(smth) NS_IMETHOD QueryAllPlugInsForFrontend (PRUnichar * aFrontendName, PRUint32 * aPlugInModulesSize, PRUnichar * * * aPlugInModules) { return smth QueryAllPlugInsForFrontend (aFrontendName, aPlugInModulesSize, aPlugInModules); }
#define COM_FORWARD_IExtPackManager_QueryAllPlugInsForFrontend_TO_OBJ(obj) COM_FORWARD_IExtPackManager_QueryAllPlugInsForFrontend_TO ((obj)->)
#define COM_FORWARD_IExtPackManager_QueryAllPlugInsForFrontend_TO_BASE(base) COM_FORWARD_IExtPackManager_QueryAllPlugInsForFrontend_TO (base::)
#define COM_FORWARD_IExtPackManager_IsExtPackUsable_TO(smth) NS_IMETHOD IsExtPackUsable (PRUnichar * aName, PRBool * aUsable) { return smth IsExtPackUsable (aName, aUsable); }
#define COM_FORWARD_IExtPackManager_IsExtPackUsable_TO_OBJ(obj) COM_FORWARD_IExtPackManager_IsExtPackUsable_TO ((obj)->)
#define COM_FORWARD_IExtPackManager_IsExtPackUsable_TO_BASE(base) COM_FORWARD_IExtPackManager_IsExtPackUsable_TO (base::)
#define COM_FORWARD_IExtPackManager_TO(smth) NS_FORWARD_IEXTPACKMANAGER (smth)
#define COM_FORWARD_IExtPackManager_TO_OBJ(obj) COM_FORWARD_IExtPackManager_TO ((obj)->)
#define COM_FORWARD_IExtPackManager_TO_BASE(base) COM_FORWARD_IExtPackManager_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IExtPackManager;
%}

[
    uuid(31587f93-2d12-4d7c-ba6d-ce51d0d5b265),
    scriptable
]
interface IBandwidthGroup : nsISupports
{
    readonly attribute wstring name;

    readonly attribute BandwidthGroupType_T type;

    readonly attribute unsigned long reference;

    attribute long long maxBytesPerSec;

    readonly attribute unsigned long InternalAndReservedAttribute1IBandwidthGroup;

    readonly attribute unsigned long InternalAndReservedAttribute2IBandwidthGroup;

    readonly attribute unsigned long InternalAndReservedAttribute3IBandwidthGroup;

    readonly attribute unsigned long InternalAndReservedAttribute4IBandwidthGroup;

}; /* interface IBandwidthGroup */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IBandwidthGroup_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_IBandwidthGroup_GETTER_Name_TO_OBJ(obj) COM_FORWARD_IBandwidthGroup_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_IBandwidthGroup_GETTER_Name_TO_BASE(base) COM_FORWARD_IBandwidthGroup_GETTER_Name_TO (base::)
#define COM_FORWARD_IBandwidthGroup_GETTER_Type_TO(smth) NS_IMETHOD GetType (PRUint32 * aType) { return smth GetType (aType); }
#define COM_FORWARD_IBandwidthGroup_GETTER_Type_TO_OBJ(obj) COM_FORWARD_IBandwidthGroup_GETTER_Type_TO ((obj)->)
#define COM_FORWARD_IBandwidthGroup_GETTER_Type_TO_BASE(base) COM_FORWARD_IBandwidthGroup_GETTER_Type_TO (base::)
#define COM_FORWARD_IBandwidthGroup_GETTER_Reference_TO(smth) NS_IMETHOD GetReference (PRUint32 * aReference) { return smth GetReference (aReference); }
#define COM_FORWARD_IBandwidthGroup_GETTER_Reference_TO_OBJ(obj) COM_FORWARD_IBandwidthGroup_GETTER_Reference_TO ((obj)->)
#define COM_FORWARD_IBandwidthGroup_GETTER_Reference_TO_BASE(base) COM_FORWARD_IBandwidthGroup_GETTER_Reference_TO (base::)
#define COM_FORWARD_IBandwidthGroup_GETTER_MaxBytesPerSec_TO(smth) NS_IMETHOD GetMaxBytesPerSec (PRInt64 * aMaxBytesPerSec) { return smth GetMaxBytesPerSec (aMaxBytesPerSec); }
#define COM_FORWARD_IBandwidthGroup_GETTER_MaxBytesPerSec_TO_OBJ(obj) COM_FORWARD_IBandwidthGroup_GETTER_MaxBytesPerSec_TO ((obj)->)
#define COM_FORWARD_IBandwidthGroup_GETTER_MaxBytesPerSec_TO_BASE(base) COM_FORWARD_IBandwidthGroup_GETTER_MaxBytesPerSec_TO (base::)
#define COM_FORWARD_IBandwidthGroup_SETTER_MaxBytesPerSec_TO(smth) NS_IMETHOD SetMaxBytesPerSec (PRInt64 aMaxBytesPerSec) { return smth SetMaxBytesPerSec (aMaxBytesPerSec); }
#define COM_FORWARD_IBandwidthGroup_SETTER_MaxBytesPerSec_TO_OBJ(obj) COM_FORWARD_IBandwidthGroup_SETTER_MaxBytesPerSec_TO ((obj)->)
#define COM_FORWARD_IBandwidthGroup_SETTER_MaxBytesPerSec_TO_BASE(base) COM_FORWARD_IBandwidthGroup_SETTER_MaxBytesPerSec_TO (base::)
#define COM_FORWARD_IBandwidthGroup_TO(smth) NS_FORWARD_IBANDWIDTHGROUP (smth)
#define COM_FORWARD_IBandwidthGroup_TO_OBJ(obj) COM_FORWARD_IBandwidthGroup_TO ((obj)->)
#define COM_FORWARD_IBandwidthGroup_TO_BASE(base) COM_FORWARD_IBandwidthGroup_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IBandwidthGroup;
%}

[
    uuid(48c7f4c0-c9d6-4742-957c-a6fd52e8c4ae),
    scriptable
]
interface IBandwidthControl : nsISupports
{
    readonly attribute unsigned long numGroups;

    readonly attribute unsigned long InternalAndReservedAttribute1IBandwidthControl;

    readonly attribute unsigned long InternalAndReservedAttribute2IBandwidthControl;

    void createBandwidthGroup (
        in wstring name,
        in BandwidthGroupType_T type,
        in long long maxBytesPerSec
    );

    void deleteBandwidthGroup (
        in wstring name
    );

    void getBandwidthGroup (
        in wstring name,
        [retval] out IBandwidthGroup bandwidthGroup
    );

    void getAllBandwidthGroups (
        out unsigned long bandwidthGroupsSize,
        [array, size_is(bandwidthGroupsSize) , retval] out IBandwidthGroup bandwidthGroups
    );

    void InternalAndReservedMethod1IBandwidthControl();

    void InternalAndReservedMethod2IBandwidthControl();

}; /* interface IBandwidthControl */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IBandwidthControl_GETTER_NumGroups_TO(smth) NS_IMETHOD GetNumGroups (PRUint32 * aNumGroups) { return smth GetNumGroups (aNumGroups); }
#define COM_FORWARD_IBandwidthControl_GETTER_NumGroups_TO_OBJ(obj) COM_FORWARD_IBandwidthControl_GETTER_NumGroups_TO ((obj)->)
#define COM_FORWARD_IBandwidthControl_GETTER_NumGroups_TO_BASE(base) COM_FORWARD_IBandwidthControl_GETTER_NumGroups_TO (base::)
#define COM_FORWARD_IBandwidthControl_CreateBandwidthGroup_TO(smth) NS_IMETHOD CreateBandwidthGroup (PRUnichar * aName, PRUint32 aType, PRInt64 aMaxBytesPerSec) { return smth CreateBandwidthGroup (aName, aType, aMaxBytesPerSec); }
#define COM_FORWARD_IBandwidthControl_CreateBandwidthGroup_TO_OBJ(obj) COM_FORWARD_IBandwidthControl_CreateBandwidthGroup_TO ((obj)->)
#define COM_FORWARD_IBandwidthControl_CreateBandwidthGroup_TO_BASE(base) COM_FORWARD_IBandwidthControl_CreateBandwidthGroup_TO (base::)
#define COM_FORWARD_IBandwidthControl_DeleteBandwidthGroup_TO(smth) NS_IMETHOD DeleteBandwidthGroup (PRUnichar * aName) { return smth DeleteBandwidthGroup (aName); }
#define COM_FORWARD_IBandwidthControl_DeleteBandwidthGroup_TO_OBJ(obj) COM_FORWARD_IBandwidthControl_DeleteBandwidthGroup_TO ((obj)->)
#define COM_FORWARD_IBandwidthControl_DeleteBandwidthGroup_TO_BASE(base) COM_FORWARD_IBandwidthControl_DeleteBandwidthGroup_TO (base::)
#define COM_FORWARD_IBandwidthControl_GetBandwidthGroup_TO(smth) NS_IMETHOD GetBandwidthGroup (PRUnichar * aName, IBandwidthGroup * * aBandwidthGroup) { return smth GetBandwidthGroup (aName, aBandwidthGroup); }
#define COM_FORWARD_IBandwidthControl_GetBandwidthGroup_TO_OBJ(obj) COM_FORWARD_IBandwidthControl_GetBandwidthGroup_TO ((obj)->)
#define COM_FORWARD_IBandwidthControl_GetBandwidthGroup_TO_BASE(base) COM_FORWARD_IBandwidthControl_GetBandwidthGroup_TO (base::)
#define COM_FORWARD_IBandwidthControl_GetAllBandwidthGroups_TO(smth) NS_IMETHOD GetAllBandwidthGroups (PRUint32 * aBandwidthGroupsSize, IBandwidthGroup * * * aBandwidthGroups) { return smth GetAllBandwidthGroups (aBandwidthGroupsSize, aBandwidthGroups); }
#define COM_FORWARD_IBandwidthControl_GetAllBandwidthGroups_TO_OBJ(obj) COM_FORWARD_IBandwidthControl_GetAllBandwidthGroups_TO ((obj)->)
#define COM_FORWARD_IBandwidthControl_GetAllBandwidthGroups_TO_BASE(base) COM_FORWARD_IBandwidthControl_GetAllBandwidthGroups_TO (base::)
#define COM_FORWARD_IBandwidthControl_TO(smth) NS_FORWARD_IBANDWIDTHCONTROL (smth)
#define COM_FORWARD_IBandwidthControl_TO_OBJ(obj) COM_FORWARD_IBandwidthControl_TO ((obj)->)
#define COM_FORWARD_IBandwidthControl_TO_BASE(base) COM_FORWARD_IBandwidthControl_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IBandwidthControl;
%}

[
    uuid(d2937a8e-cb8d-4382-90ba-b7da78a74573),
    scriptable
]
interface IVirtualBoxClient : nsISupports
{
    readonly attribute IVirtualBox virtualBox;

    readonly attribute ISession session;

    readonly attribute IEventSource eventSource;

    readonly attribute unsigned long InternalAndReservedAttribute1IVirtualBoxClient;

    readonly attribute unsigned long InternalAndReservedAttribute2IVirtualBoxClient;

    readonly attribute unsigned long InternalAndReservedAttribute3IVirtualBoxClient;

    readonly attribute unsigned long InternalAndReservedAttribute4IVirtualBoxClient;

    void checkMachineError (
        in IMachine machine
    );

    void InternalAndReservedMethod1IVirtualBoxClient();

    void InternalAndReservedMethod2IVirtualBoxClient();

    void InternalAndReservedMethod3IVirtualBoxClient();

    void InternalAndReservedMethod4IVirtualBoxClient();

}; /* interface IVirtualBoxClient */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IVirtualBoxClient_GETTER_VirtualBox_TO(smth) NS_IMETHOD GetVirtualBox (IVirtualBox * * aVirtualBox) { return smth GetVirtualBox (aVirtualBox); }
#define COM_FORWARD_IVirtualBoxClient_GETTER_VirtualBox_TO_OBJ(obj) COM_FORWARD_IVirtualBoxClient_GETTER_VirtualBox_TO ((obj)->)
#define COM_FORWARD_IVirtualBoxClient_GETTER_VirtualBox_TO_BASE(base) COM_FORWARD_IVirtualBoxClient_GETTER_VirtualBox_TO (base::)
#define COM_FORWARD_IVirtualBoxClient_GETTER_Session_TO(smth) NS_IMETHOD GetSession (ISession * * aSession) { return smth GetSession (aSession); }
#define COM_FORWARD_IVirtualBoxClient_GETTER_Session_TO_OBJ(obj) COM_FORWARD_IVirtualBoxClient_GETTER_Session_TO ((obj)->)
#define COM_FORWARD_IVirtualBoxClient_GETTER_Session_TO_BASE(base) COM_FORWARD_IVirtualBoxClient_GETTER_Session_TO (base::)
#define COM_FORWARD_IVirtualBoxClient_GETTER_EventSource_TO(smth) NS_IMETHOD GetEventSource (IEventSource * * aEventSource) { return smth GetEventSource (aEventSource); }
#define COM_FORWARD_IVirtualBoxClient_GETTER_EventSource_TO_OBJ(obj) COM_FORWARD_IVirtualBoxClient_GETTER_EventSource_TO ((obj)->)
#define COM_FORWARD_IVirtualBoxClient_GETTER_EventSource_TO_BASE(base) COM_FORWARD_IVirtualBoxClient_GETTER_EventSource_TO (base::)
#define COM_FORWARD_IVirtualBoxClient_CheckMachineError_TO(smth) NS_IMETHOD CheckMachineError (IMachine * aMachine) { return smth CheckMachineError (aMachine); }
#define COM_FORWARD_IVirtualBoxClient_CheckMachineError_TO_OBJ(obj) COM_FORWARD_IVirtualBoxClient_CheckMachineError_TO ((obj)->)
#define COM_FORWARD_IVirtualBoxClient_CheckMachineError_TO_BASE(base) COM_FORWARD_IVirtualBoxClient_CheckMachineError_TO (base::)
#define COM_FORWARD_IVirtualBoxClient_TO(smth) NS_FORWARD_IVIRTUALBOXCLIENT (smth)
#define COM_FORWARD_IVirtualBoxClient_TO_OBJ(obj) COM_FORWARD_IVirtualBoxClient_TO ((obj)->)
#define COM_FORWARD_IVirtualBoxClient_TO_BASE(base) COM_FORWARD_IVirtualBoxClient_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IVirtualBoxClient;
%}

[
    uuid(9b6e1aee-35f3-4f4d-b5bb-ed0ecefd8538),
    scriptable
]
interface IEventSource : nsISupports
{
    void createListener (
        [retval] out IEventListener listener
    );

    void createAggregator (
        in unsigned long subordinatesSize,
        [array, size_is(subordinatesSize)] in IEventSource subordinates,
        [retval] out IEventSource result
    );

    void registerListener (
        in IEventListener listener,
        in unsigned long interestingSize,
        [array, size_is(interestingSize)] in VBoxEventType_T interesting,
        in boolean active
    );

    void unregisterListener (
        in IEventListener listener
    );

    void fireEvent (
        in IEvent event,
        in long timeout,
        [retval] out boolean result
    );

    void getEvent (
        in IEventListener listener,
        in long timeout,
        [retval] out IEvent event
    );

    void eventProcessed (
        in IEventListener listener,
        in IEvent event
    );

}; /* interface IEventSource */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IEventSource_CreateListener_TO(smth) NS_IMETHOD CreateListener (IEventListener * * aListener) { return smth CreateListener (aListener); }
#define COM_FORWARD_IEventSource_CreateListener_TO_OBJ(obj) COM_FORWARD_IEventSource_CreateListener_TO ((obj)->)
#define COM_FORWARD_IEventSource_CreateListener_TO_BASE(base) COM_FORWARD_IEventSource_CreateListener_TO (base::)
#define COM_FORWARD_IEventSource_CreateAggregator_TO(smth) NS_IMETHOD CreateAggregator (PRUint32 aSubordinatesSize, IEventSource * * aSubordinates, IEventSource * * aResult) { return smth CreateAggregator (aSubordinatesSize+++, aSubordinates, aResult); }
#define COM_FORWARD_IEventSource_CreateAggregator_TO_OBJ(obj) COM_FORWARD_IEventSource_CreateAggregator_TO ((obj)->)
#define COM_FORWARD_IEventSource_CreateAggregator_TO_BASE(base) COM_FORWARD_IEventSource_CreateAggregator_TO (base::)
#define COM_FORWARD_IEventSource_RegisterListener_TO(smth) NS_IMETHOD RegisterListener (IEventListener * aListener, PRUint32 aInterestingSize, PRUint32 * aInteresting, PRBool aActive) { return smth RegisterListener (aListener, aInterestingSize+++, aInteresting, aActive); }
#define COM_FORWARD_IEventSource_RegisterListener_TO_OBJ(obj) COM_FORWARD_IEventSource_RegisterListener_TO ((obj)->)
#define COM_FORWARD_IEventSource_RegisterListener_TO_BASE(base) COM_FORWARD_IEventSource_RegisterListener_TO (base::)
#define COM_FORWARD_IEventSource_UnregisterListener_TO(smth) NS_IMETHOD UnregisterListener (IEventListener * aListener) { return smth UnregisterListener (aListener); }
#define COM_FORWARD_IEventSource_UnregisterListener_TO_OBJ(obj) COM_FORWARD_IEventSource_UnregisterListener_TO ((obj)->)
#define COM_FORWARD_IEventSource_UnregisterListener_TO_BASE(base) COM_FORWARD_IEventSource_UnregisterListener_TO (base::)
#define COM_FORWARD_IEventSource_FireEvent_TO(smth) NS_IMETHOD FireEvent (IEvent * aEvent, PRInt32 aTimeout, PRBool * aResult) { return smth FireEvent (aEvent, aTimeout, aResult); }
#define COM_FORWARD_IEventSource_FireEvent_TO_OBJ(obj) COM_FORWARD_IEventSource_FireEvent_TO ((obj)->)
#define COM_FORWARD_IEventSource_FireEvent_TO_BASE(base) COM_FORWARD_IEventSource_FireEvent_TO (base::)
#define COM_FORWARD_IEventSource_GetEvent_TO(smth) NS_IMETHOD GetEvent (IEventListener * aListener, PRInt32 aTimeout, IEvent * * aEvent) { return smth GetEvent (aListener, aTimeout, aEvent); }
#define COM_FORWARD_IEventSource_GetEvent_TO_OBJ(obj) COM_FORWARD_IEventSource_GetEvent_TO ((obj)->)
#define COM_FORWARD_IEventSource_GetEvent_TO_BASE(base) COM_FORWARD_IEventSource_GetEvent_TO (base::)
#define COM_FORWARD_IEventSource_EventProcessed_TO(smth) NS_IMETHOD EventProcessed (IEventListener * aListener, IEvent * aEvent) { return smth EventProcessed (aListener, aEvent); }
#define COM_FORWARD_IEventSource_EventProcessed_TO_OBJ(obj) COM_FORWARD_IEventSource_EventProcessed_TO ((obj)->)
#define COM_FORWARD_IEventSource_EventProcessed_TO_BASE(base) COM_FORWARD_IEventSource_EventProcessed_TO (base::)
#define COM_FORWARD_IEventSource_TO(smth) NS_FORWARD_IEVENTSOURCE (smth)
#define COM_FORWARD_IEventSource_TO_OBJ(obj) COM_FORWARD_IEventSource_TO ((obj)->)
#define COM_FORWARD_IEventSource_TO_BASE(base) COM_FORWARD_IEventSource_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IEventSource;
%}

[
    uuid(67099191-32e7-4f6c-85ee-422304c71b90),
    scriptable
]
interface IEventListener : nsISupports
{
    void handleEvent (
        in IEvent event
    );

}; /* interface IEventListener */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IEventListener_HandleEvent_TO(smth) NS_IMETHOD HandleEvent (IEvent * aEvent) { return smth HandleEvent (aEvent); }
#define COM_FORWARD_IEventListener_HandleEvent_TO_OBJ(obj) COM_FORWARD_IEventListener_HandleEvent_TO ((obj)->)
#define COM_FORWARD_IEventListener_HandleEvent_TO_BASE(base) COM_FORWARD_IEventListener_HandleEvent_TO (base::)
#define COM_FORWARD_IEventListener_TO(smth) NS_FORWARD_IEVENTLISTENER (smth)
#define COM_FORWARD_IEventListener_TO_OBJ(obj) COM_FORWARD_IEventListener_TO ((obj)->)
#define COM_FORWARD_IEventListener_TO_BASE(base) COM_FORWARD_IEventListener_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IEventListener;
%}

[
    uuid(0ca2adba-8f30-401b-a8cd-fe31dbe839c0),
    scriptable
]
interface IEvent : nsISupports
{
    readonly attribute VBoxEventType_T type;

    readonly attribute IEventSource source;

    readonly attribute boolean waitable;

    void setProcessed();

    void waitProcessed (
        in long timeout,
        [retval] out boolean result
    );

}; /* interface IEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IEvent_GETTER_Type_TO(smth) NS_IMETHOD GetType (PRUint32 * aType) { return smth GetType (aType); }
#define COM_FORWARD_IEvent_GETTER_Type_TO_OBJ(obj) COM_FORWARD_IEvent_GETTER_Type_TO ((obj)->)
#define COM_FORWARD_IEvent_GETTER_Type_TO_BASE(base) COM_FORWARD_IEvent_GETTER_Type_TO (base::)
#define COM_FORWARD_IEvent_GETTER_Source_TO(smth) NS_IMETHOD GetSource (IEventSource * * aSource) { return smth GetSource (aSource); }
#define COM_FORWARD_IEvent_GETTER_Source_TO_OBJ(obj) COM_FORWARD_IEvent_GETTER_Source_TO ((obj)->)
#define COM_FORWARD_IEvent_GETTER_Source_TO_BASE(base) COM_FORWARD_IEvent_GETTER_Source_TO (base::)
#define COM_FORWARD_IEvent_GETTER_Waitable_TO(smth) NS_IMETHOD GetWaitable (PRBool * aWaitable) { return smth GetWaitable (aWaitable); }
#define COM_FORWARD_IEvent_GETTER_Waitable_TO_OBJ(obj) COM_FORWARD_IEvent_GETTER_Waitable_TO ((obj)->)
#define COM_FORWARD_IEvent_GETTER_Waitable_TO_BASE(base) COM_FORWARD_IEvent_GETTER_Waitable_TO (base::)
#define COM_FORWARD_IEvent_SetProcessed_TO(smth) NS_IMETHOD SetProcessed() { return smth SetProcessed(); }
#define COM_FORWARD_IEvent_SetProcessed_TO_OBJ(obj) COM_FORWARD_IEvent_SetProcessed_TO ((obj)->)
#define COM_FORWARD_IEvent_SetProcessed_TO_BASE(base) COM_FORWARD_IEvent_SetProcessed_TO (base::)
#define COM_FORWARD_IEvent_WaitProcessed_TO(smth) NS_IMETHOD WaitProcessed (PRInt32 aTimeout, PRBool * aResult) { return smth WaitProcessed (aTimeout, aResult); }
#define COM_FORWARD_IEvent_WaitProcessed_TO_OBJ(obj) COM_FORWARD_IEvent_WaitProcessed_TO ((obj)->)
#define COM_FORWARD_IEvent_WaitProcessed_TO_BASE(base) COM_FORWARD_IEvent_WaitProcessed_TO (base::)
#define COM_FORWARD_IEvent_TO(smth) NS_FORWARD_IEVENT (smth)
#define COM_FORWARD_IEvent_TO_OBJ(obj) COM_FORWARD_IEvent_TO ((obj)->)
#define COM_FORWARD_IEvent_TO_BASE(base) COM_FORWARD_IEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IEvent;
%}

[
    uuid(69bfb134-80f6-4266-8e20-16371f68fa25),
    scriptable
]
interface IReusableEvent : IEvent
{
    readonly attribute unsigned long generation;

    void reuse();

}; /* interface IReusableEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IReusableEvent_GETTER_Generation_TO(smth) NS_IMETHOD GetGeneration (PRUint32 * aGeneration) { return smth GetGeneration (aGeneration); }
#define COM_FORWARD_IReusableEvent_GETTER_Generation_TO_OBJ(obj) COM_FORWARD_IReusableEvent_GETTER_Generation_TO ((obj)->)
#define COM_FORWARD_IReusableEvent_GETTER_Generation_TO_BASE(base) COM_FORWARD_IReusableEvent_GETTER_Generation_TO (base::)
#define COM_FORWARD_IReusableEvent_Reuse_TO(smth) NS_IMETHOD Reuse() { return smth Reuse(); }
#define COM_FORWARD_IReusableEvent_Reuse_TO_OBJ(obj) COM_FORWARD_IReusableEvent_Reuse_TO ((obj)->)
#define COM_FORWARD_IReusableEvent_Reuse_TO_BASE(base) COM_FORWARD_IReusableEvent_Reuse_TO (base::)
#define COM_FORWARD_IReusableEvent_TO(smth) NS_FORWARD_IREUSABLEEVENT (smth)
#define COM_FORWARD_IReusableEvent_TO_OBJ(obj) COM_FORWARD_IReusableEvent_TO ((obj)->)
#define COM_FORWARD_IReusableEvent_TO_BASE(base) COM_FORWARD_IReusableEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IReusableEvent;
%}

[
    uuid(92ed7b1a-0d96-40ed-ae46-a564d484325e),
    scriptable
]
interface IMachineEvent : IEvent
{
    readonly attribute wstring machineId;

}; /* interface IMachineEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IMachineEvent_GETTER_MachineId_TO(smth) NS_IMETHOD GetMachineId (PRUnichar * * aMachineId) { return smth GetMachineId (aMachineId); }
#define COM_FORWARD_IMachineEvent_GETTER_MachineId_TO_OBJ(obj) COM_FORWARD_IMachineEvent_GETTER_MachineId_TO ((obj)->)
#define COM_FORWARD_IMachineEvent_GETTER_MachineId_TO_BASE(base) COM_FORWARD_IMachineEvent_GETTER_MachineId_TO (base::)
#define COM_FORWARD_IMachineEvent_TO(smth) NS_FORWARD_IMACHINEEVENT (smth)
#define COM_FORWARD_IMachineEvent_TO_OBJ(obj) COM_FORWARD_IMachineEvent_TO ((obj)->)
#define COM_FORWARD_IMachineEvent_TO_BASE(base) COM_FORWARD_IMachineEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IMachineEvent;
%}

[
    uuid(5748F794-48DF-438D-85EB-98FFD70D18C9),
    scriptable
]
interface IMachineStateChangedEvent : IMachineEvent
{
    readonly attribute MachineState_T state;

}; /* interface IMachineStateChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IMachineStateChangedEvent_GETTER_State_TO(smth) NS_IMETHOD GetState (PRUint32 * aState) { return smth GetState (aState); }
#define COM_FORWARD_IMachineStateChangedEvent_GETTER_State_TO_OBJ(obj) COM_FORWARD_IMachineStateChangedEvent_GETTER_State_TO ((obj)->)
#define COM_FORWARD_IMachineStateChangedEvent_GETTER_State_TO_BASE(base) COM_FORWARD_IMachineStateChangedEvent_GETTER_State_TO (base::)
#define COM_FORWARD_IMachineStateChangedEvent_TO(smth) NS_FORWARD_IMACHINESTATECHANGEDEVENT (smth)
#define COM_FORWARD_IMachineStateChangedEvent_TO_OBJ(obj) COM_FORWARD_IMachineStateChangedEvent_TO ((obj)->)
#define COM_FORWARD_IMachineStateChangedEvent_TO_BASE(base) COM_FORWARD_IMachineStateChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IMachineStateChangedEvent;
%}

[
    uuid(abe94809-2e88-4436-83d7-50f3e64d0503),
    scriptable
]
interface IMachineDataChangedEvent : IMachineEvent
{
    readonly attribute boolean temporary;

}; /* interface IMachineDataChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IMachineDataChangedEvent_GETTER_Temporary_TO(smth) NS_IMETHOD GetTemporary (PRBool * aTemporary) { return smth GetTemporary (aTemporary); }
#define COM_FORWARD_IMachineDataChangedEvent_GETTER_Temporary_TO_OBJ(obj) COM_FORWARD_IMachineDataChangedEvent_GETTER_Temporary_TO ((obj)->)
#define COM_FORWARD_IMachineDataChangedEvent_GETTER_Temporary_TO_BASE(base) COM_FORWARD_IMachineDataChangedEvent_GETTER_Temporary_TO (base::)
#define COM_FORWARD_IMachineDataChangedEvent_TO(smth) NS_FORWARD_IMACHINEDATACHANGEDEVENT (smth)
#define COM_FORWARD_IMachineDataChangedEvent_TO_OBJ(obj) COM_FORWARD_IMachineDataChangedEvent_TO ((obj)->)
#define COM_FORWARD_IMachineDataChangedEvent_TO_BASE(base) COM_FORWARD_IMachineDataChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IMachineDataChangedEvent;
%}

[
    uuid(53fac49a-b7f1-4a5a-a4ef-a11dd9c2a458),
    scriptable
]
interface IMediumRegisteredEvent : IEvent
{
    readonly attribute wstring mediumId;

    readonly attribute DeviceType_T mediumType;

    readonly attribute boolean registered;

}; /* interface IMediumRegisteredEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IMediumRegisteredEvent_GETTER_MediumId_TO(smth) NS_IMETHOD GetMediumId (PRUnichar * * aMediumId) { return smth GetMediumId (aMediumId); }
#define COM_FORWARD_IMediumRegisteredEvent_GETTER_MediumId_TO_OBJ(obj) COM_FORWARD_IMediumRegisteredEvent_GETTER_MediumId_TO ((obj)->)
#define COM_FORWARD_IMediumRegisteredEvent_GETTER_MediumId_TO_BASE(base) COM_FORWARD_IMediumRegisteredEvent_GETTER_MediumId_TO (base::)
#define COM_FORWARD_IMediumRegisteredEvent_GETTER_MediumType_TO(smth) NS_IMETHOD GetMediumType (PRUint32 * aMediumType) { return smth GetMediumType (aMediumType); }
#define COM_FORWARD_IMediumRegisteredEvent_GETTER_MediumType_TO_OBJ(obj) COM_FORWARD_IMediumRegisteredEvent_GETTER_MediumType_TO ((obj)->)
#define COM_FORWARD_IMediumRegisteredEvent_GETTER_MediumType_TO_BASE(base) COM_FORWARD_IMediumRegisteredEvent_GETTER_MediumType_TO (base::)
#define COM_FORWARD_IMediumRegisteredEvent_GETTER_Registered_TO(smth) NS_IMETHOD GetRegistered (PRBool * aRegistered) { return smth GetRegistered (aRegistered); }
#define COM_FORWARD_IMediumRegisteredEvent_GETTER_Registered_TO_OBJ(obj) COM_FORWARD_IMediumRegisteredEvent_GETTER_Registered_TO ((obj)->)
#define COM_FORWARD_IMediumRegisteredEvent_GETTER_Registered_TO_BASE(base) COM_FORWARD_IMediumRegisteredEvent_GETTER_Registered_TO (base::)
#define COM_FORWARD_IMediumRegisteredEvent_TO(smth) NS_FORWARD_IMEDIUMREGISTEREDEVENT (smth)
#define COM_FORWARD_IMediumRegisteredEvent_TO_OBJ(obj) COM_FORWARD_IMediumRegisteredEvent_TO ((obj)->)
#define COM_FORWARD_IMediumRegisteredEvent_TO_BASE(base) COM_FORWARD_IMediumRegisteredEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IMediumRegisteredEvent;
%}

[
    uuid(dd3e2654-a161-41f1-b583-4892f4a9d5d5),
    scriptable
]
interface IMediumConfigChangedEvent : IEvent
{
    readonly attribute IMedium medium;

}; /* interface IMediumConfigChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IMediumConfigChangedEvent_GETTER_Medium_TO(smth) NS_IMETHOD GetMedium (IMedium * * aMedium) { return smth GetMedium (aMedium); }
#define COM_FORWARD_IMediumConfigChangedEvent_GETTER_Medium_TO_OBJ(obj) COM_FORWARD_IMediumConfigChangedEvent_GETTER_Medium_TO ((obj)->)
#define COM_FORWARD_IMediumConfigChangedEvent_GETTER_Medium_TO_BASE(base) COM_FORWARD_IMediumConfigChangedEvent_GETTER_Medium_TO (base::)
#define COM_FORWARD_IMediumConfigChangedEvent_TO(smth) NS_FORWARD_IMEDIUMCONFIGCHANGEDEVENT (smth)
#define COM_FORWARD_IMediumConfigChangedEvent_TO_OBJ(obj) COM_FORWARD_IMediumConfigChangedEvent_TO ((obj)->)
#define COM_FORWARD_IMediumConfigChangedEvent_TO_BASE(base) COM_FORWARD_IMediumConfigChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IMediumConfigChangedEvent;
%}

[
    uuid(c354a762-3ff2-4f2e-8f09-07382ee25088),
    scriptable
]
interface IMachineRegisteredEvent : IMachineEvent
{
    readonly attribute boolean registered;

}; /* interface IMachineRegisteredEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IMachineRegisteredEvent_GETTER_Registered_TO(smth) NS_IMETHOD GetRegistered (PRBool * aRegistered) { return smth GetRegistered (aRegistered); }
#define COM_FORWARD_IMachineRegisteredEvent_GETTER_Registered_TO_OBJ(obj) COM_FORWARD_IMachineRegisteredEvent_GETTER_Registered_TO ((obj)->)
#define COM_FORWARD_IMachineRegisteredEvent_GETTER_Registered_TO_BASE(base) COM_FORWARD_IMachineRegisteredEvent_GETTER_Registered_TO (base::)
#define COM_FORWARD_IMachineRegisteredEvent_TO(smth) NS_FORWARD_IMACHINEREGISTEREDEVENT (smth)
#define COM_FORWARD_IMachineRegisteredEvent_TO_OBJ(obj) COM_FORWARD_IMachineRegisteredEvent_TO ((obj)->)
#define COM_FORWARD_IMachineRegisteredEvent_TO_BASE(base) COM_FORWARD_IMachineRegisteredEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IMachineRegisteredEvent;
%}

[
    uuid(714a3eef-799a-4489-86cd-fe8e45b2ff8e),
    scriptable
]
interface ISessionStateChangedEvent : IMachineEvent
{
    readonly attribute SessionState_T state;

}; /* interface ISessionStateChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_ISessionStateChangedEvent_GETTER_State_TO(smth) NS_IMETHOD GetState (PRUint32 * aState) { return smth GetState (aState); }
#define COM_FORWARD_ISessionStateChangedEvent_GETTER_State_TO_OBJ(obj) COM_FORWARD_ISessionStateChangedEvent_GETTER_State_TO ((obj)->)
#define COM_FORWARD_ISessionStateChangedEvent_GETTER_State_TO_BASE(base) COM_FORWARD_ISessionStateChangedEvent_GETTER_State_TO (base::)
#define COM_FORWARD_ISessionStateChangedEvent_TO(smth) NS_FORWARD_ISESSIONSTATECHANGEDEVENT (smth)
#define COM_FORWARD_ISessionStateChangedEvent_TO_OBJ(obj) COM_FORWARD_ISessionStateChangedEvent_TO ((obj)->)
#define COM_FORWARD_ISessionStateChangedEvent_TO_BASE(base) COM_FORWARD_ISessionStateChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ISessionStateChangedEvent;
%}

[
    uuid(3f63597a-26f1-4edb-8dd2-6bddd0912368),
    scriptable
]
interface IGuestPropertyChangedEvent : IMachineEvent
{
    readonly attribute wstring name;

    readonly attribute wstring value;

    readonly attribute wstring flags;

}; /* interface IGuestPropertyChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IGuestPropertyChangedEvent_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_IGuestPropertyChangedEvent_GETTER_Name_TO_OBJ(obj) COM_FORWARD_IGuestPropertyChangedEvent_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_IGuestPropertyChangedEvent_GETTER_Name_TO_BASE(base) COM_FORWARD_IGuestPropertyChangedEvent_GETTER_Name_TO (base::)
#define COM_FORWARD_IGuestPropertyChangedEvent_GETTER_Value_TO(smth) NS_IMETHOD GetValue (PRUnichar * * aValue) { return smth GetValue (aValue); }
#define COM_FORWARD_IGuestPropertyChangedEvent_GETTER_Value_TO_OBJ(obj) COM_FORWARD_IGuestPropertyChangedEvent_GETTER_Value_TO ((obj)->)
#define COM_FORWARD_IGuestPropertyChangedEvent_GETTER_Value_TO_BASE(base) COM_FORWARD_IGuestPropertyChangedEvent_GETTER_Value_TO (base::)
#define COM_FORWARD_IGuestPropertyChangedEvent_GETTER_Flags_TO(smth) NS_IMETHOD GetFlags (PRUnichar * * aFlags) { return smth GetFlags (aFlags); }
#define COM_FORWARD_IGuestPropertyChangedEvent_GETTER_Flags_TO_OBJ(obj) COM_FORWARD_IGuestPropertyChangedEvent_GETTER_Flags_TO ((obj)->)
#define COM_FORWARD_IGuestPropertyChangedEvent_GETTER_Flags_TO_BASE(base) COM_FORWARD_IGuestPropertyChangedEvent_GETTER_Flags_TO (base::)
#define COM_FORWARD_IGuestPropertyChangedEvent_TO(smth) NS_FORWARD_IGUESTPROPERTYCHANGEDEVENT (smth)
#define COM_FORWARD_IGuestPropertyChangedEvent_TO_OBJ(obj) COM_FORWARD_IGuestPropertyChangedEvent_TO ((obj)->)
#define COM_FORWARD_IGuestPropertyChangedEvent_TO_BASE(base) COM_FORWARD_IGuestPropertyChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestPropertyChangedEvent;
%}

[
    uuid(21637b0e-34b8-42d3-acfb-7e96daf77c22),
    scriptable
]
interface ISnapshotEvent : IMachineEvent
{
    readonly attribute wstring snapshotId;

}; /* interface ISnapshotEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_ISnapshotEvent_GETTER_SnapshotId_TO(smth) NS_IMETHOD GetSnapshotId (PRUnichar * * aSnapshotId) { return smth GetSnapshotId (aSnapshotId); }
#define COM_FORWARD_ISnapshotEvent_GETTER_SnapshotId_TO_OBJ(obj) COM_FORWARD_ISnapshotEvent_GETTER_SnapshotId_TO ((obj)->)
#define COM_FORWARD_ISnapshotEvent_GETTER_SnapshotId_TO_BASE(base) COM_FORWARD_ISnapshotEvent_GETTER_SnapshotId_TO (base::)
#define COM_FORWARD_ISnapshotEvent_TO(smth) NS_FORWARD_ISNAPSHOTEVENT (smth)
#define COM_FORWARD_ISnapshotEvent_TO_OBJ(obj) COM_FORWARD_ISnapshotEvent_TO ((obj)->)
#define COM_FORWARD_ISnapshotEvent_TO_BASE(base) COM_FORWARD_ISnapshotEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ISnapshotEvent;
%}

[
    uuid(d27c0b3d-6038-422c-b45e-6d4a0503d9f1),
    scriptable
]
interface ISnapshotTakenEvent : ISnapshotEvent
{
    readonly attribute boolean midlDoesNotLikeEmptyInterfaces;

}; /* interface ISnapshotTakenEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_ISnapshotTakenEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO(smth) NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces (PRBool * aMidlDoesNotLikeEmptyInterfaces) { return smth GetMidlDoesNotLikeEmptyInterfaces (aMidlDoesNotLikeEmptyInterfaces); }
#define COM_FORWARD_ISnapshotTakenEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_OBJ(obj) COM_FORWARD_ISnapshotTakenEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO ((obj)->)
#define COM_FORWARD_ISnapshotTakenEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_BASE(base) COM_FORWARD_ISnapshotTakenEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO (base::)
#define COM_FORWARD_ISnapshotTakenEvent_TO(smth) NS_FORWARD_ISNAPSHOTTAKENEVENT (smth)
#define COM_FORWARD_ISnapshotTakenEvent_TO_OBJ(obj) COM_FORWARD_ISnapshotTakenEvent_TO ((obj)->)
#define COM_FORWARD_ISnapshotTakenEvent_TO_BASE(base) COM_FORWARD_ISnapshotTakenEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ISnapshotTakenEvent;
%}

[
    uuid(c48f3401-4a9e-43f4-b7a7-54bd285e22f4),
    scriptable
]
interface ISnapshotDeletedEvent : ISnapshotEvent
{
    readonly attribute boolean midlDoesNotLikeEmptyInterfaces;

}; /* interface ISnapshotDeletedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_ISnapshotDeletedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO(smth) NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces (PRBool * aMidlDoesNotLikeEmptyInterfaces) { return smth GetMidlDoesNotLikeEmptyInterfaces (aMidlDoesNotLikeEmptyInterfaces); }
#define COM_FORWARD_ISnapshotDeletedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_OBJ(obj) COM_FORWARD_ISnapshotDeletedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO ((obj)->)
#define COM_FORWARD_ISnapshotDeletedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_BASE(base) COM_FORWARD_ISnapshotDeletedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO (base::)
#define COM_FORWARD_ISnapshotDeletedEvent_TO(smth) NS_FORWARD_ISNAPSHOTDELETEDEVENT (smth)
#define COM_FORWARD_ISnapshotDeletedEvent_TO_OBJ(obj) COM_FORWARD_ISnapshotDeletedEvent_TO ((obj)->)
#define COM_FORWARD_ISnapshotDeletedEvent_TO_BASE(base) COM_FORWARD_ISnapshotDeletedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ISnapshotDeletedEvent;
%}

[
    uuid(f4d803b4-9b2d-4377-bfe6-9702e881516b),
    scriptable
]
interface ISnapshotRestoredEvent : ISnapshotEvent
{
    readonly attribute boolean midlDoesNotLikeEmptyInterfaces;

}; /* interface ISnapshotRestoredEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_ISnapshotRestoredEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO(smth) NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces (PRBool * aMidlDoesNotLikeEmptyInterfaces) { return smth GetMidlDoesNotLikeEmptyInterfaces (aMidlDoesNotLikeEmptyInterfaces); }
#define COM_FORWARD_ISnapshotRestoredEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_OBJ(obj) COM_FORWARD_ISnapshotRestoredEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO ((obj)->)
#define COM_FORWARD_ISnapshotRestoredEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_BASE(base) COM_FORWARD_ISnapshotRestoredEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO (base::)
#define COM_FORWARD_ISnapshotRestoredEvent_TO(smth) NS_FORWARD_ISNAPSHOTRESTOREDEVENT (smth)
#define COM_FORWARD_ISnapshotRestoredEvent_TO_OBJ(obj) COM_FORWARD_ISnapshotRestoredEvent_TO ((obj)->)
#define COM_FORWARD_ISnapshotRestoredEvent_TO_BASE(base) COM_FORWARD_ISnapshotRestoredEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ISnapshotRestoredEvent;
%}

[
    uuid(07541941-8079-447a-a33e-47a69c7980db),
    scriptable
]
interface ISnapshotChangedEvent : ISnapshotEvent
{
    readonly attribute boolean midlDoesNotLikeEmptyInterfaces;

}; /* interface ISnapshotChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_ISnapshotChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO(smth) NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces (PRBool * aMidlDoesNotLikeEmptyInterfaces) { return smth GetMidlDoesNotLikeEmptyInterfaces (aMidlDoesNotLikeEmptyInterfaces); }
#define COM_FORWARD_ISnapshotChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_OBJ(obj) COM_FORWARD_ISnapshotChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO ((obj)->)
#define COM_FORWARD_ISnapshotChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_BASE(base) COM_FORWARD_ISnapshotChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO (base::)
#define COM_FORWARD_ISnapshotChangedEvent_TO(smth) NS_FORWARD_ISNAPSHOTCHANGEDEVENT (smth)
#define COM_FORWARD_ISnapshotChangedEvent_TO_OBJ(obj) COM_FORWARD_ISnapshotChangedEvent_TO ((obj)->)
#define COM_FORWARD_ISnapshotChangedEvent_TO_BASE(base) COM_FORWARD_ISnapshotChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ISnapshotChangedEvent;
%}

[
    uuid(a6dcf6e8-416b-4181-8c4a-45ec95177aef),
    scriptable
]
interface IMousePointerShapeChangedEvent : IEvent
{
    readonly attribute boolean visible;

    readonly attribute boolean alpha;

    readonly attribute unsigned long xhot;

    readonly attribute unsigned long yhot;

    readonly attribute unsigned long width;

    readonly attribute unsigned long height;

    void getShape (
        out unsigned long shapeSize,
        [array, size_is(shapeSize), retval] out octet shape
    );

}; /* interface IMousePointerShapeChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IMousePointerShapeChangedEvent_GETTER_Visible_TO(smth) NS_IMETHOD GetVisible (PRBool * aVisible) { return smth GetVisible (aVisible); }
#define COM_FORWARD_IMousePointerShapeChangedEvent_GETTER_Visible_TO_OBJ(obj) COM_FORWARD_IMousePointerShapeChangedEvent_GETTER_Visible_TO ((obj)->)
#define COM_FORWARD_IMousePointerShapeChangedEvent_GETTER_Visible_TO_BASE(base) COM_FORWARD_IMousePointerShapeChangedEvent_GETTER_Visible_TO (base::)
#define COM_FORWARD_IMousePointerShapeChangedEvent_GETTER_Alpha_TO(smth) NS_IMETHOD GetAlpha (PRBool * aAlpha) { return smth GetAlpha (aAlpha); }
#define COM_FORWARD_IMousePointerShapeChangedEvent_GETTER_Alpha_TO_OBJ(obj) COM_FORWARD_IMousePointerShapeChangedEvent_GETTER_Alpha_TO ((obj)->)
#define COM_FORWARD_IMousePointerShapeChangedEvent_GETTER_Alpha_TO_BASE(base) COM_FORWARD_IMousePointerShapeChangedEvent_GETTER_Alpha_TO (base::)
#define COM_FORWARD_IMousePointerShapeChangedEvent_GETTER_Xhot_TO(smth) NS_IMETHOD GetXhot (PRUint32 * aXhot) { return smth GetXhot (aXhot); }
#define COM_FORWARD_IMousePointerShapeChangedEvent_GETTER_Xhot_TO_OBJ(obj) COM_FORWARD_IMousePointerShapeChangedEvent_GETTER_Xhot_TO ((obj)->)
#define COM_FORWARD_IMousePointerShapeChangedEvent_GETTER_Xhot_TO_BASE(base) COM_FORWARD_IMousePointerShapeChangedEvent_GETTER_Xhot_TO (base::)
#define COM_FORWARD_IMousePointerShapeChangedEvent_GETTER_Yhot_TO(smth) NS_IMETHOD GetYhot (PRUint32 * aYhot) { return smth GetYhot (aYhot); }
#define COM_FORWARD_IMousePointerShapeChangedEvent_GETTER_Yhot_TO_OBJ(obj) COM_FORWARD_IMousePointerShapeChangedEvent_GETTER_Yhot_TO ((obj)->)
#define COM_FORWARD_IMousePointerShapeChangedEvent_GETTER_Yhot_TO_BASE(base) COM_FORWARD_IMousePointerShapeChangedEvent_GETTER_Yhot_TO (base::)
#define COM_FORWARD_IMousePointerShapeChangedEvent_GETTER_Width_TO(smth) NS_IMETHOD GetWidth (PRUint32 * aWidth) { return smth GetWidth (aWidth); }
#define COM_FORWARD_IMousePointerShapeChangedEvent_GETTER_Width_TO_OBJ(obj) COM_FORWARD_IMousePointerShapeChangedEvent_GETTER_Width_TO ((obj)->)
#define COM_FORWARD_IMousePointerShapeChangedEvent_GETTER_Width_TO_BASE(base) COM_FORWARD_IMousePointerShapeChangedEvent_GETTER_Width_TO (base::)
#define COM_FORWARD_IMousePointerShapeChangedEvent_GETTER_Height_TO(smth) NS_IMETHOD GetHeight (PRUint32 * aHeight) { return smth GetHeight (aHeight); }
#define COM_FORWARD_IMousePointerShapeChangedEvent_GETTER_Height_TO_OBJ(obj) COM_FORWARD_IMousePointerShapeChangedEvent_GETTER_Height_TO ((obj)->)
#define COM_FORWARD_IMousePointerShapeChangedEvent_GETTER_Height_TO_BASE(base) COM_FORWARD_IMousePointerShapeChangedEvent_GETTER_Height_TO (base::)
#define COM_FORWARD_IMousePointerShapeChangedEvent_GETTER_Shape_TO(smth) NS_IMETHOD GetShape (PRUint32 * aShapeSize, PRUint8 * * aShape) { return smth GetShape (aShapeSize, aShape); }
#define COM_FORWARD_IMousePointerShapeChangedEvent_GETTER_Shape_TO_OBJ(obj) COM_FORWARD_IMousePointerShapeChangedEvent_GETTER_Shape_TO ((obj)->)
#define COM_FORWARD_IMousePointerShapeChangedEvent_GETTER_Shape_TO_BASE(base) COM_FORWARD_IMousePointerShapeChangedEvent_GETTER_Shape_TO (base::)
#define COM_FORWARD_IMousePointerShapeChangedEvent_TO(smth) NS_FORWARD_IMOUSEPOINTERSHAPECHANGEDEVENT (smth)
#define COM_FORWARD_IMousePointerShapeChangedEvent_TO_OBJ(obj) COM_FORWARD_IMousePointerShapeChangedEvent_TO ((obj)->)
#define COM_FORWARD_IMousePointerShapeChangedEvent_TO_BASE(base) COM_FORWARD_IMousePointerShapeChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IMousePointerShapeChangedEvent;
%}

[
    uuid(70e7779a-e64a-4908-804e-371cad23a756),
    scriptable
]
interface IMouseCapabilityChangedEvent : IEvent
{
    readonly attribute boolean supportsAbsolute;

    readonly attribute boolean supportsRelative;

    readonly attribute boolean supportsMultiTouch;

    readonly attribute boolean needsHostCursor;

}; /* interface IMouseCapabilityChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IMouseCapabilityChangedEvent_GETTER_SupportsAbsolute_TO(smth) NS_IMETHOD GetSupportsAbsolute (PRBool * aSupportsAbsolute) { return smth GetSupportsAbsolute (aSupportsAbsolute); }
#define COM_FORWARD_IMouseCapabilityChangedEvent_GETTER_SupportsAbsolute_TO_OBJ(obj) COM_FORWARD_IMouseCapabilityChangedEvent_GETTER_SupportsAbsolute_TO ((obj)->)
#define COM_FORWARD_IMouseCapabilityChangedEvent_GETTER_SupportsAbsolute_TO_BASE(base) COM_FORWARD_IMouseCapabilityChangedEvent_GETTER_SupportsAbsolute_TO (base::)
#define COM_FORWARD_IMouseCapabilityChangedEvent_GETTER_SupportsRelative_TO(smth) NS_IMETHOD GetSupportsRelative (PRBool * aSupportsRelative) { return smth GetSupportsRelative (aSupportsRelative); }
#define COM_FORWARD_IMouseCapabilityChangedEvent_GETTER_SupportsRelative_TO_OBJ(obj) COM_FORWARD_IMouseCapabilityChangedEvent_GETTER_SupportsRelative_TO ((obj)->)
#define COM_FORWARD_IMouseCapabilityChangedEvent_GETTER_SupportsRelative_TO_BASE(base) COM_FORWARD_IMouseCapabilityChangedEvent_GETTER_SupportsRelative_TO (base::)
#define COM_FORWARD_IMouseCapabilityChangedEvent_GETTER_SupportsMultiTouch_TO(smth) NS_IMETHOD GetSupportsMultiTouch (PRBool * aSupportsMultiTouch) { return smth GetSupportsMultiTouch (aSupportsMultiTouch); }
#define COM_FORWARD_IMouseCapabilityChangedEvent_GETTER_SupportsMultiTouch_TO_OBJ(obj) COM_FORWARD_IMouseCapabilityChangedEvent_GETTER_SupportsMultiTouch_TO ((obj)->)
#define COM_FORWARD_IMouseCapabilityChangedEvent_GETTER_SupportsMultiTouch_TO_BASE(base) COM_FORWARD_IMouseCapabilityChangedEvent_GETTER_SupportsMultiTouch_TO (base::)
#define COM_FORWARD_IMouseCapabilityChangedEvent_GETTER_NeedsHostCursor_TO(smth) NS_IMETHOD GetNeedsHostCursor (PRBool * aNeedsHostCursor) { return smth GetNeedsHostCursor (aNeedsHostCursor); }
#define COM_FORWARD_IMouseCapabilityChangedEvent_GETTER_NeedsHostCursor_TO_OBJ(obj) COM_FORWARD_IMouseCapabilityChangedEvent_GETTER_NeedsHostCursor_TO ((obj)->)
#define COM_FORWARD_IMouseCapabilityChangedEvent_GETTER_NeedsHostCursor_TO_BASE(base) COM_FORWARD_IMouseCapabilityChangedEvent_GETTER_NeedsHostCursor_TO (base::)
#define COM_FORWARD_IMouseCapabilityChangedEvent_TO(smth) NS_FORWARD_IMOUSECAPABILITYCHANGEDEVENT (smth)
#define COM_FORWARD_IMouseCapabilityChangedEvent_TO_OBJ(obj) COM_FORWARD_IMouseCapabilityChangedEvent_TO ((obj)->)
#define COM_FORWARD_IMouseCapabilityChangedEvent_TO_BASE(base) COM_FORWARD_IMouseCapabilityChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IMouseCapabilityChangedEvent;
%}

[
    uuid(6DDEF35E-4737-457B-99FC-BC52C851A44F),
    scriptable
]
interface IKeyboardLedsChangedEvent : IEvent
{
    readonly attribute boolean numLock;

    readonly attribute boolean capsLock;

    readonly attribute boolean scrollLock;

}; /* interface IKeyboardLedsChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IKeyboardLedsChangedEvent_GETTER_NumLock_TO(smth) NS_IMETHOD GetNumLock (PRBool * aNumLock) { return smth GetNumLock (aNumLock); }
#define COM_FORWARD_IKeyboardLedsChangedEvent_GETTER_NumLock_TO_OBJ(obj) COM_FORWARD_IKeyboardLedsChangedEvent_GETTER_NumLock_TO ((obj)->)
#define COM_FORWARD_IKeyboardLedsChangedEvent_GETTER_NumLock_TO_BASE(base) COM_FORWARD_IKeyboardLedsChangedEvent_GETTER_NumLock_TO (base::)
#define COM_FORWARD_IKeyboardLedsChangedEvent_GETTER_CapsLock_TO(smth) NS_IMETHOD GetCapsLock (PRBool * aCapsLock) { return smth GetCapsLock (aCapsLock); }
#define COM_FORWARD_IKeyboardLedsChangedEvent_GETTER_CapsLock_TO_OBJ(obj) COM_FORWARD_IKeyboardLedsChangedEvent_GETTER_CapsLock_TO ((obj)->)
#define COM_FORWARD_IKeyboardLedsChangedEvent_GETTER_CapsLock_TO_BASE(base) COM_FORWARD_IKeyboardLedsChangedEvent_GETTER_CapsLock_TO (base::)
#define COM_FORWARD_IKeyboardLedsChangedEvent_GETTER_ScrollLock_TO(smth) NS_IMETHOD GetScrollLock (PRBool * aScrollLock) { return smth GetScrollLock (aScrollLock); }
#define COM_FORWARD_IKeyboardLedsChangedEvent_GETTER_ScrollLock_TO_OBJ(obj) COM_FORWARD_IKeyboardLedsChangedEvent_GETTER_ScrollLock_TO ((obj)->)
#define COM_FORWARD_IKeyboardLedsChangedEvent_GETTER_ScrollLock_TO_BASE(base) COM_FORWARD_IKeyboardLedsChangedEvent_GETTER_ScrollLock_TO (base::)
#define COM_FORWARD_IKeyboardLedsChangedEvent_TO(smth) NS_FORWARD_IKEYBOARDLEDSCHANGEDEVENT (smth)
#define COM_FORWARD_IKeyboardLedsChangedEvent_TO_OBJ(obj) COM_FORWARD_IKeyboardLedsChangedEvent_TO ((obj)->)
#define COM_FORWARD_IKeyboardLedsChangedEvent_TO_BASE(base) COM_FORWARD_IKeyboardLedsChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IKeyboardLedsChangedEvent;
%}

[
    uuid(4376693C-CF37-453B-9289-3B0F521CAF27),
    scriptable
]
interface IStateChangedEvent : IEvent
{
    readonly attribute MachineState_T state;

}; /* interface IStateChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IStateChangedEvent_GETTER_State_TO(smth) NS_IMETHOD GetState (PRUint32 * aState) { return smth GetState (aState); }
#define COM_FORWARD_IStateChangedEvent_GETTER_State_TO_OBJ(obj) COM_FORWARD_IStateChangedEvent_GETTER_State_TO ((obj)->)
#define COM_FORWARD_IStateChangedEvent_GETTER_State_TO_BASE(base) COM_FORWARD_IStateChangedEvent_GETTER_State_TO (base::)
#define COM_FORWARD_IStateChangedEvent_TO(smth) NS_FORWARD_ISTATECHANGEDEVENT (smth)
#define COM_FORWARD_IStateChangedEvent_TO_OBJ(obj) COM_FORWARD_IStateChangedEvent_TO ((obj)->)
#define COM_FORWARD_IStateChangedEvent_TO_BASE(base) COM_FORWARD_IStateChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IStateChangedEvent;
%}

[
    uuid(D70F7915-DA7C-44C8-A7AC-9F173490446A),
    scriptable
]
interface IAdditionsStateChangedEvent : IEvent
{
    readonly attribute boolean midlDoesNotLikeEmptyInterfaces;

}; /* interface IAdditionsStateChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IAdditionsStateChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO(smth) NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces (PRBool * aMidlDoesNotLikeEmptyInterfaces) { return smth GetMidlDoesNotLikeEmptyInterfaces (aMidlDoesNotLikeEmptyInterfaces); }
#define COM_FORWARD_IAdditionsStateChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_OBJ(obj) COM_FORWARD_IAdditionsStateChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO ((obj)->)
#define COM_FORWARD_IAdditionsStateChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_BASE(base) COM_FORWARD_IAdditionsStateChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO (base::)
#define COM_FORWARD_IAdditionsStateChangedEvent_TO(smth) NS_FORWARD_IADDITIONSSTATECHANGEDEVENT (smth)
#define COM_FORWARD_IAdditionsStateChangedEvent_TO_OBJ(obj) COM_FORWARD_IAdditionsStateChangedEvent_TO ((obj)->)
#define COM_FORWARD_IAdditionsStateChangedEvent_TO_BASE(base) COM_FORWARD_IAdditionsStateChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IAdditionsStateChangedEvent;
%}

[
    uuid(08889892-1EC6-4883-801D-77F56CFD0103),
    scriptable
]
interface INetworkAdapterChangedEvent : IEvent
{
    readonly attribute INetworkAdapter networkAdapter;

}; /* interface INetworkAdapterChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_INetworkAdapterChangedEvent_GETTER_NetworkAdapter_TO(smth) NS_IMETHOD GetNetworkAdapter (INetworkAdapter * * aNetworkAdapter) { return smth GetNetworkAdapter (aNetworkAdapter); }
#define COM_FORWARD_INetworkAdapterChangedEvent_GETTER_NetworkAdapter_TO_OBJ(obj) COM_FORWARD_INetworkAdapterChangedEvent_GETTER_NetworkAdapter_TO ((obj)->)
#define COM_FORWARD_INetworkAdapterChangedEvent_GETTER_NetworkAdapter_TO_BASE(base) COM_FORWARD_INetworkAdapterChangedEvent_GETTER_NetworkAdapter_TO (base::)
#define COM_FORWARD_INetworkAdapterChangedEvent_TO(smth) NS_FORWARD_INETWORKADAPTERCHANGEDEVENT (smth)
#define COM_FORWARD_INetworkAdapterChangedEvent_TO_OBJ(obj) COM_FORWARD_INetworkAdapterChangedEvent_TO ((obj)->)
#define COM_FORWARD_INetworkAdapterChangedEvent_TO_BASE(base) COM_FORWARD_INetworkAdapterChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_INetworkAdapterChangedEvent;
%}

[
    uuid(D5ABC823-04D0-4DB6-8D66-DC2F033120E1),
    scriptable
]
interface IAudioAdapterChangedEvent : IEvent
{
    readonly attribute IAudioAdapter audioAdapter;

}; /* interface IAudioAdapterChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IAudioAdapterChangedEvent_GETTER_AudioAdapter_TO(smth) NS_IMETHOD GetAudioAdapter (IAudioAdapter * * aAudioAdapter) { return smth GetAudioAdapter (aAudioAdapter); }
#define COM_FORWARD_IAudioAdapterChangedEvent_GETTER_AudioAdapter_TO_OBJ(obj) COM_FORWARD_IAudioAdapterChangedEvent_GETTER_AudioAdapter_TO ((obj)->)
#define COM_FORWARD_IAudioAdapterChangedEvent_GETTER_AudioAdapter_TO_BASE(base) COM_FORWARD_IAudioAdapterChangedEvent_GETTER_AudioAdapter_TO (base::)
#define COM_FORWARD_IAudioAdapterChangedEvent_TO(smth) NS_FORWARD_IAUDIOADAPTERCHANGEDEVENT (smth)
#define COM_FORWARD_IAudioAdapterChangedEvent_TO_OBJ(obj) COM_FORWARD_IAudioAdapterChangedEvent_TO ((obj)->)
#define COM_FORWARD_IAudioAdapterChangedEvent_TO_BASE(base) COM_FORWARD_IAudioAdapterChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IAudioAdapterChangedEvent;
%}

[
    uuid(3BA329DC-659C-488B-835C-4ECA7AE71C6C),
    scriptable
]
interface ISerialPortChangedEvent : IEvent
{
    readonly attribute ISerialPort serialPort;

}; /* interface ISerialPortChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_ISerialPortChangedEvent_GETTER_SerialPort_TO(smth) NS_IMETHOD GetSerialPort (ISerialPort * * aSerialPort) { return smth GetSerialPort (aSerialPort); }
#define COM_FORWARD_ISerialPortChangedEvent_GETTER_SerialPort_TO_OBJ(obj) COM_FORWARD_ISerialPortChangedEvent_GETTER_SerialPort_TO ((obj)->)
#define COM_FORWARD_ISerialPortChangedEvent_GETTER_SerialPort_TO_BASE(base) COM_FORWARD_ISerialPortChangedEvent_GETTER_SerialPort_TO (base::)
#define COM_FORWARD_ISerialPortChangedEvent_TO(smth) NS_FORWARD_ISERIALPORTCHANGEDEVENT (smth)
#define COM_FORWARD_ISerialPortChangedEvent_TO_OBJ(obj) COM_FORWARD_ISerialPortChangedEvent_TO ((obj)->)
#define COM_FORWARD_ISerialPortChangedEvent_TO_BASE(base) COM_FORWARD_ISerialPortChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ISerialPortChangedEvent;
%}

[
    uuid(813C99FC-9849-4F47-813E-24A75DC85615),
    scriptable
]
interface IParallelPortChangedEvent : IEvent
{
    readonly attribute IParallelPort parallelPort;

}; /* interface IParallelPortChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IParallelPortChangedEvent_GETTER_ParallelPort_TO(smth) NS_IMETHOD GetParallelPort (IParallelPort * * aParallelPort) { return smth GetParallelPort (aParallelPort); }
#define COM_FORWARD_IParallelPortChangedEvent_GETTER_ParallelPort_TO_OBJ(obj) COM_FORWARD_IParallelPortChangedEvent_GETTER_ParallelPort_TO ((obj)->)
#define COM_FORWARD_IParallelPortChangedEvent_GETTER_ParallelPort_TO_BASE(base) COM_FORWARD_IParallelPortChangedEvent_GETTER_ParallelPort_TO (base::)
#define COM_FORWARD_IParallelPortChangedEvent_TO(smth) NS_FORWARD_IPARALLELPORTCHANGEDEVENT (smth)
#define COM_FORWARD_IParallelPortChangedEvent_TO_OBJ(obj) COM_FORWARD_IParallelPortChangedEvent_TO ((obj)->)
#define COM_FORWARD_IParallelPortChangedEvent_TO_BASE(base) COM_FORWARD_IParallelPortChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IParallelPortChangedEvent;
%}

[
    uuid(6BB335CC-1C58-440C-BB7B-3A1397284C7B),
    scriptable
]
interface IStorageControllerChangedEvent : IEvent
{
    readonly attribute wstring machinId;

    readonly attribute wstring controllerName;

}; /* interface IStorageControllerChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IStorageControllerChangedEvent_GETTER_MachinId_TO(smth) NS_IMETHOD GetMachinId (PRUnichar * * aMachinId) { return smth GetMachinId (aMachinId); }
#define COM_FORWARD_IStorageControllerChangedEvent_GETTER_MachinId_TO_OBJ(obj) COM_FORWARD_IStorageControllerChangedEvent_GETTER_MachinId_TO ((obj)->)
#define COM_FORWARD_IStorageControllerChangedEvent_GETTER_MachinId_TO_BASE(base) COM_FORWARD_IStorageControllerChangedEvent_GETTER_MachinId_TO (base::)
#define COM_FORWARD_IStorageControllerChangedEvent_GETTER_ControllerName_TO(smth) NS_IMETHOD GetControllerName (PRUnichar * * aControllerName) { return smth GetControllerName (aControllerName); }
#define COM_FORWARD_IStorageControllerChangedEvent_GETTER_ControllerName_TO_OBJ(obj) COM_FORWARD_IStorageControllerChangedEvent_GETTER_ControllerName_TO ((obj)->)
#define COM_FORWARD_IStorageControllerChangedEvent_GETTER_ControllerName_TO_BASE(base) COM_FORWARD_IStorageControllerChangedEvent_GETTER_ControllerName_TO (base::)
#define COM_FORWARD_IStorageControllerChangedEvent_TO(smth) NS_FORWARD_ISTORAGECONTROLLERCHANGEDEVENT (smth)
#define COM_FORWARD_IStorageControllerChangedEvent_TO_OBJ(obj) COM_FORWARD_IStorageControllerChangedEvent_TO ((obj)->)
#define COM_FORWARD_IStorageControllerChangedEvent_TO_BASE(base) COM_FORWARD_IStorageControllerChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IStorageControllerChangedEvent;
%}

[
    uuid(0FE2DA40-5637-472A-9736-72019EABD7DE),
    scriptable
]
interface IMediumChangedEvent : IEvent
{
    readonly attribute IMediumAttachment mediumAttachment;

}; /* interface IMediumChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IMediumChangedEvent_GETTER_MediumAttachment_TO(smth) NS_IMETHOD GetMediumAttachment (IMediumAttachment * * aMediumAttachment) { return smth GetMediumAttachment (aMediumAttachment); }
#define COM_FORWARD_IMediumChangedEvent_GETTER_MediumAttachment_TO_OBJ(obj) COM_FORWARD_IMediumChangedEvent_GETTER_MediumAttachment_TO ((obj)->)
#define COM_FORWARD_IMediumChangedEvent_GETTER_MediumAttachment_TO_BASE(base) COM_FORWARD_IMediumChangedEvent_GETTER_MediumAttachment_TO (base::)
#define COM_FORWARD_IMediumChangedEvent_TO(smth) NS_FORWARD_IMEDIUMCHANGEDEVENT (smth)
#define COM_FORWARD_IMediumChangedEvent_TO_OBJ(obj) COM_FORWARD_IMediumChangedEvent_TO ((obj)->)
#define COM_FORWARD_IMediumChangedEvent_TO_BASE(base) COM_FORWARD_IMediumChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IMediumChangedEvent;
%}

[
    uuid(cac21692-7997-4595-a731-3a509db604e5),
    scriptable
]
interface IClipboardModeChangedEvent : IEvent
{
    readonly attribute ClipboardMode_T clipboardMode;

}; /* interface IClipboardModeChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IClipboardModeChangedEvent_GETTER_ClipboardMode_TO(smth) NS_IMETHOD GetClipboardMode (PRUint32 * aClipboardMode) { return smth GetClipboardMode (aClipboardMode); }
#define COM_FORWARD_IClipboardModeChangedEvent_GETTER_ClipboardMode_TO_OBJ(obj) COM_FORWARD_IClipboardModeChangedEvent_GETTER_ClipboardMode_TO ((obj)->)
#define COM_FORWARD_IClipboardModeChangedEvent_GETTER_ClipboardMode_TO_BASE(base) COM_FORWARD_IClipboardModeChangedEvent_GETTER_ClipboardMode_TO (base::)
#define COM_FORWARD_IClipboardModeChangedEvent_TO(smth) NS_FORWARD_ICLIPBOARDMODECHANGEDEVENT (smth)
#define COM_FORWARD_IClipboardModeChangedEvent_TO_OBJ(obj) COM_FORWARD_IClipboardModeChangedEvent_TO ((obj)->)
#define COM_FORWARD_IClipboardModeChangedEvent_TO_BASE(base) COM_FORWARD_IClipboardModeChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IClipboardModeChangedEvent;
%}

[
    uuid(00391758-00B1-4E9D-0000-11FA00F9D583),
    scriptable
]
interface IClipboardFileTransferModeChangedEvent : IEvent
{
    readonly attribute boolean enabled;

}; /* interface IClipboardFileTransferModeChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IClipboardFileTransferModeChangedEvent_GETTER_Enabled_TO(smth) NS_IMETHOD GetEnabled (PRBool * aEnabled) { return smth GetEnabled (aEnabled); }
#define COM_FORWARD_IClipboardFileTransferModeChangedEvent_GETTER_Enabled_TO_OBJ(obj) COM_FORWARD_IClipboardFileTransferModeChangedEvent_GETTER_Enabled_TO ((obj)->)
#define COM_FORWARD_IClipboardFileTransferModeChangedEvent_GETTER_Enabled_TO_BASE(base) COM_FORWARD_IClipboardFileTransferModeChangedEvent_GETTER_Enabled_TO (base::)
#define COM_FORWARD_IClipboardFileTransferModeChangedEvent_TO(smth) NS_FORWARD_ICLIPBOARDFILETRANSFERMODECHANGEDEVENT (smth)
#define COM_FORWARD_IClipboardFileTransferModeChangedEvent_TO_OBJ(obj) COM_FORWARD_IClipboardFileTransferModeChangedEvent_TO ((obj)->)
#define COM_FORWARD_IClipboardFileTransferModeChangedEvent_TO_BASE(base) COM_FORWARD_IClipboardFileTransferModeChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IClipboardFileTransferModeChangedEvent;
%}

[
    uuid(b55cf856-1f8b-4692-abb4-462429fae5e9),
    scriptable
]
interface IDnDModeChangedEvent : IEvent
{
    readonly attribute DnDMode_T dndMode;

}; /* interface IDnDModeChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IDnDModeChangedEvent_GETTER_DndMode_TO(smth) NS_IMETHOD GetDndMode (PRUint32 * aDndMode) { return smth GetDndMode (aDndMode); }
#define COM_FORWARD_IDnDModeChangedEvent_GETTER_DndMode_TO_OBJ(obj) COM_FORWARD_IDnDModeChangedEvent_GETTER_DndMode_TO ((obj)->)
#define COM_FORWARD_IDnDModeChangedEvent_GETTER_DndMode_TO_BASE(base) COM_FORWARD_IDnDModeChangedEvent_GETTER_DndMode_TO (base::)
#define COM_FORWARD_IDnDModeChangedEvent_TO(smth) NS_FORWARD_IDNDMODECHANGEDEVENT (smth)
#define COM_FORWARD_IDnDModeChangedEvent_TO_OBJ(obj) COM_FORWARD_IDnDModeChangedEvent_TO ((obj)->)
#define COM_FORWARD_IDnDModeChangedEvent_TO_BASE(base) COM_FORWARD_IDnDModeChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IDnDModeChangedEvent;
%}

[
    uuid(4da2dec7-71b2-4817-9a64-4ed12c17388e),
    scriptable
]
interface ICPUChangedEvent : IEvent
{
    readonly attribute unsigned long CPU;

    readonly attribute boolean add;

}; /* interface ICPUChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_ICPUChangedEvent_GETTER_CPU_TO(smth) NS_IMETHOD GetCPU (PRUint32 * aCPU) { return smth GetCPU (aCPU); }
#define COM_FORWARD_ICPUChangedEvent_GETTER_CPU_TO_OBJ(obj) COM_FORWARD_ICPUChangedEvent_GETTER_CPU_TO ((obj)->)
#define COM_FORWARD_ICPUChangedEvent_GETTER_CPU_TO_BASE(base) COM_FORWARD_ICPUChangedEvent_GETTER_CPU_TO (base::)
#define COM_FORWARD_ICPUChangedEvent_GETTER_Add_TO(smth) NS_IMETHOD GetAdd (PRBool * aAdd) { return smth GetAdd (aAdd); }
#define COM_FORWARD_ICPUChangedEvent_GETTER_Add_TO_OBJ(obj) COM_FORWARD_ICPUChangedEvent_GETTER_Add_TO ((obj)->)
#define COM_FORWARD_ICPUChangedEvent_GETTER_Add_TO_BASE(base) COM_FORWARD_ICPUChangedEvent_GETTER_Add_TO (base::)
#define COM_FORWARD_ICPUChangedEvent_TO(smth) NS_FORWARD_ICPUCHANGEDEVENT (smth)
#define COM_FORWARD_ICPUChangedEvent_TO_OBJ(obj) COM_FORWARD_ICPUChangedEvent_TO ((obj)->)
#define COM_FORWARD_ICPUChangedEvent_TO_BASE(base) COM_FORWARD_ICPUChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ICPUChangedEvent;
%}

[
    uuid(dfa7e4f5-b4a4-44ce-85a8-127ac5eb59dc),
    scriptable
]
interface ICPUExecutionCapChangedEvent : IEvent
{
    readonly attribute unsigned long executionCap;

}; /* interface ICPUExecutionCapChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_ICPUExecutionCapChangedEvent_GETTER_ExecutionCap_TO(smth) NS_IMETHOD GetExecutionCap (PRUint32 * aExecutionCap) { return smth GetExecutionCap (aExecutionCap); }
#define COM_FORWARD_ICPUExecutionCapChangedEvent_GETTER_ExecutionCap_TO_OBJ(obj) COM_FORWARD_ICPUExecutionCapChangedEvent_GETTER_ExecutionCap_TO ((obj)->)
#define COM_FORWARD_ICPUExecutionCapChangedEvent_GETTER_ExecutionCap_TO_BASE(base) COM_FORWARD_ICPUExecutionCapChangedEvent_GETTER_ExecutionCap_TO (base::)
#define COM_FORWARD_ICPUExecutionCapChangedEvent_TO(smth) NS_FORWARD_ICPUEXECUTIONCAPCHANGEDEVENT (smth)
#define COM_FORWARD_ICPUExecutionCapChangedEvent_TO_OBJ(obj) COM_FORWARD_ICPUExecutionCapChangedEvent_TO ((obj)->)
#define COM_FORWARD_ICPUExecutionCapChangedEvent_TO_BASE(base) COM_FORWARD_ICPUExecutionCapChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ICPUExecutionCapChangedEvent;
%}

[
    uuid(88394258-7006-40d4-b339-472ee3801844),
    scriptable
]
interface IGuestKeyboardEvent : IEvent
{
    void getScancodes (
        out unsigned long scancodesSize,
        [array, size_is(scancodesSize), retval] out long scancodes
    );

}; /* interface IGuestKeyboardEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IGuestKeyboardEvent_GETTER_Scancodes_TO(smth) NS_IMETHOD GetScancodes (PRUint32 * aScancodesSize, PRInt32 * * aScancodes) { return smth GetScancodes (aScancodesSize, aScancodes); }
#define COM_FORWARD_IGuestKeyboardEvent_GETTER_Scancodes_TO_OBJ(obj) COM_FORWARD_IGuestKeyboardEvent_GETTER_Scancodes_TO ((obj)->)
#define COM_FORWARD_IGuestKeyboardEvent_GETTER_Scancodes_TO_BASE(base) COM_FORWARD_IGuestKeyboardEvent_GETTER_Scancodes_TO (base::)
#define COM_FORWARD_IGuestKeyboardEvent_TO(smth) NS_FORWARD_IGUESTKEYBOARDEVENT (smth)
#define COM_FORWARD_IGuestKeyboardEvent_TO_OBJ(obj) COM_FORWARD_IGuestKeyboardEvent_TO ((obj)->)
#define COM_FORWARD_IGuestKeyboardEvent_TO_BASE(base) COM_FORWARD_IGuestKeyboardEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestKeyboardEvent;
%}

[
    uuid(179f8647-319c-4e7e-8150-c5837bd265f6),
    scriptable
]
interface IGuestMouseEvent : IReusableEvent
{
    readonly attribute GuestMouseEventMode_T mode;

    readonly attribute long x;

    readonly attribute long y;

    readonly attribute long z;

    readonly attribute long w;

    readonly attribute long buttons;

}; /* interface IGuestMouseEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IGuestMouseEvent_GETTER_Mode_TO(smth) NS_IMETHOD GetMode (PRUint32 * aMode) { return smth GetMode (aMode); }
#define COM_FORWARD_IGuestMouseEvent_GETTER_Mode_TO_OBJ(obj) COM_FORWARD_IGuestMouseEvent_GETTER_Mode_TO ((obj)->)
#define COM_FORWARD_IGuestMouseEvent_GETTER_Mode_TO_BASE(base) COM_FORWARD_IGuestMouseEvent_GETTER_Mode_TO (base::)
#define COM_FORWARD_IGuestMouseEvent_GETTER_X_TO(smth) NS_IMETHOD GetX (PRInt32 * aX) { return smth GetX (aX); }
#define COM_FORWARD_IGuestMouseEvent_GETTER_X_TO_OBJ(obj) COM_FORWARD_IGuestMouseEvent_GETTER_X_TO ((obj)->)
#define COM_FORWARD_IGuestMouseEvent_GETTER_X_TO_BASE(base) COM_FORWARD_IGuestMouseEvent_GETTER_X_TO (base::)
#define COM_FORWARD_IGuestMouseEvent_GETTER_Y_TO(smth) NS_IMETHOD GetY (PRInt32 * aY) { return smth GetY (aY); }
#define COM_FORWARD_IGuestMouseEvent_GETTER_Y_TO_OBJ(obj) COM_FORWARD_IGuestMouseEvent_GETTER_Y_TO ((obj)->)
#define COM_FORWARD_IGuestMouseEvent_GETTER_Y_TO_BASE(base) COM_FORWARD_IGuestMouseEvent_GETTER_Y_TO (base::)
#define COM_FORWARD_IGuestMouseEvent_GETTER_Z_TO(smth) NS_IMETHOD GetZ (PRInt32 * aZ) { return smth GetZ (aZ); }
#define COM_FORWARD_IGuestMouseEvent_GETTER_Z_TO_OBJ(obj) COM_FORWARD_IGuestMouseEvent_GETTER_Z_TO ((obj)->)
#define COM_FORWARD_IGuestMouseEvent_GETTER_Z_TO_BASE(base) COM_FORWARD_IGuestMouseEvent_GETTER_Z_TO (base::)
#define COM_FORWARD_IGuestMouseEvent_GETTER_W_TO(smth) NS_IMETHOD GetW (PRInt32 * aW) { return smth GetW (aW); }
#define COM_FORWARD_IGuestMouseEvent_GETTER_W_TO_OBJ(obj) COM_FORWARD_IGuestMouseEvent_GETTER_W_TO ((obj)->)
#define COM_FORWARD_IGuestMouseEvent_GETTER_W_TO_BASE(base) COM_FORWARD_IGuestMouseEvent_GETTER_W_TO (base::)
#define COM_FORWARD_IGuestMouseEvent_GETTER_Buttons_TO(smth) NS_IMETHOD GetButtons (PRInt32 * aButtons) { return smth GetButtons (aButtons); }
#define COM_FORWARD_IGuestMouseEvent_GETTER_Buttons_TO_OBJ(obj) COM_FORWARD_IGuestMouseEvent_GETTER_Buttons_TO ((obj)->)
#define COM_FORWARD_IGuestMouseEvent_GETTER_Buttons_TO_BASE(base) COM_FORWARD_IGuestMouseEvent_GETTER_Buttons_TO (base::)
#define COM_FORWARD_IGuestMouseEvent_TO(smth) NS_FORWARD_IGUESTMOUSEEVENT (smth)
#define COM_FORWARD_IGuestMouseEvent_TO_OBJ(obj) COM_FORWARD_IGuestMouseEvent_TO ((obj)->)
#define COM_FORWARD_IGuestMouseEvent_TO_BASE(base) COM_FORWARD_IGuestMouseEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestMouseEvent;
%}

[
    uuid(be8a0eb5-f4f4-4dd0-9d30-c89b873247ec),
    scriptable
]
interface IGuestMultiTouchEvent : IEvent
{
    readonly attribute long contactCount;

    void getXPositions (
        out unsigned long xPositionsSize,
        [array, size_is(xPositionsSize), retval] out short xPositions
    );

    void getYPositions (
        out unsigned long yPositionsSize,
        [array, size_is(yPositionsSize), retval] out short yPositions
    );

    void getContactIds (
        out unsigned long contactIdsSize,
        [array, size_is(contactIdsSize), retval] out unsigned short contactIds
    );

    void getContactFlags (
        out unsigned long contactFlagsSize,
        [array, size_is(contactFlagsSize), retval] out unsigned short contactFlags
    );

    readonly attribute unsigned long scanTime;

}; /* interface IGuestMultiTouchEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IGuestMultiTouchEvent_GETTER_ContactCount_TO(smth) NS_IMETHOD GetContactCount (PRInt32 * aContactCount) { return smth GetContactCount (aContactCount); }
#define COM_FORWARD_IGuestMultiTouchEvent_GETTER_ContactCount_TO_OBJ(obj) COM_FORWARD_IGuestMultiTouchEvent_GETTER_ContactCount_TO ((obj)->)
#define COM_FORWARD_IGuestMultiTouchEvent_GETTER_ContactCount_TO_BASE(base) COM_FORWARD_IGuestMultiTouchEvent_GETTER_ContactCount_TO (base::)
#define COM_FORWARD_IGuestMultiTouchEvent_GETTER_XPositions_TO(smth) NS_IMETHOD GetXPositions (PRUint32 * aXPositionsSize, PRInt16 * * aXPositions) { return smth GetXPositions (aXPositionsSize, aXPositions); }
#define COM_FORWARD_IGuestMultiTouchEvent_GETTER_XPositions_TO_OBJ(obj) COM_FORWARD_IGuestMultiTouchEvent_GETTER_XPositions_TO ((obj)->)
#define COM_FORWARD_IGuestMultiTouchEvent_GETTER_XPositions_TO_BASE(base) COM_FORWARD_IGuestMultiTouchEvent_GETTER_XPositions_TO (base::)
#define COM_FORWARD_IGuestMultiTouchEvent_GETTER_YPositions_TO(smth) NS_IMETHOD GetYPositions (PRUint32 * aYPositionsSize, PRInt16 * * aYPositions) { return smth GetYPositions (aYPositionsSize, aYPositions); }
#define COM_FORWARD_IGuestMultiTouchEvent_GETTER_YPositions_TO_OBJ(obj) COM_FORWARD_IGuestMultiTouchEvent_GETTER_YPositions_TO ((obj)->)
#define COM_FORWARD_IGuestMultiTouchEvent_GETTER_YPositions_TO_BASE(base) COM_FORWARD_IGuestMultiTouchEvent_GETTER_YPositions_TO (base::)
#define COM_FORWARD_IGuestMultiTouchEvent_GETTER_ContactIds_TO(smth) NS_IMETHOD GetContactIds (PRUint32 * aContactIdsSize, PRUint16 * * aContactIds) { return smth GetContactIds (aContactIdsSize, aContactIds); }
#define COM_FORWARD_IGuestMultiTouchEvent_GETTER_ContactIds_TO_OBJ(obj) COM_FORWARD_IGuestMultiTouchEvent_GETTER_ContactIds_TO ((obj)->)
#define COM_FORWARD_IGuestMultiTouchEvent_GETTER_ContactIds_TO_BASE(base) COM_FORWARD_IGuestMultiTouchEvent_GETTER_ContactIds_TO (base::)
#define COM_FORWARD_IGuestMultiTouchEvent_GETTER_ContactFlags_TO(smth) NS_IMETHOD GetContactFlags (PRUint32 * aContactFlagsSize, PRUint16 * * aContactFlags) { return smth GetContactFlags (aContactFlagsSize, aContactFlags); }
#define COM_FORWARD_IGuestMultiTouchEvent_GETTER_ContactFlags_TO_OBJ(obj) COM_FORWARD_IGuestMultiTouchEvent_GETTER_ContactFlags_TO ((obj)->)
#define COM_FORWARD_IGuestMultiTouchEvent_GETTER_ContactFlags_TO_BASE(base) COM_FORWARD_IGuestMultiTouchEvent_GETTER_ContactFlags_TO (base::)
#define COM_FORWARD_IGuestMultiTouchEvent_GETTER_ScanTime_TO(smth) NS_IMETHOD GetScanTime (PRUint32 * aScanTime) { return smth GetScanTime (aScanTime); }
#define COM_FORWARD_IGuestMultiTouchEvent_GETTER_ScanTime_TO_OBJ(obj) COM_FORWARD_IGuestMultiTouchEvent_GETTER_ScanTime_TO ((obj)->)
#define COM_FORWARD_IGuestMultiTouchEvent_GETTER_ScanTime_TO_BASE(base) COM_FORWARD_IGuestMultiTouchEvent_GETTER_ScanTime_TO (base::)
#define COM_FORWARD_IGuestMultiTouchEvent_TO(smth) NS_FORWARD_IGUESTMULTITOUCHEVENT (smth)
#define COM_FORWARD_IGuestMultiTouchEvent_TO_OBJ(obj) COM_FORWARD_IGuestMultiTouchEvent_TO ((obj)->)
#define COM_FORWARD_IGuestMultiTouchEvent_TO_BASE(base) COM_FORWARD_IGuestMultiTouchEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestMultiTouchEvent;
%}

[
    uuid(b9acd33f-647d-45ac-8fe9-f49b3183ba37),
    scriptable
]
interface IGuestSessionEvent : IEvent
{
    readonly attribute IGuestSession session;

}; /* interface IGuestSessionEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IGuestSessionEvent_GETTER_Session_TO(smth) NS_IMETHOD GetSession (IGuestSession * * aSession) { return smth GetSession (aSession); }
#define COM_FORWARD_IGuestSessionEvent_GETTER_Session_TO_OBJ(obj) COM_FORWARD_IGuestSessionEvent_GETTER_Session_TO ((obj)->)
#define COM_FORWARD_IGuestSessionEvent_GETTER_Session_TO_BASE(base) COM_FORWARD_IGuestSessionEvent_GETTER_Session_TO (base::)
#define COM_FORWARD_IGuestSessionEvent_TO(smth) NS_FORWARD_IGUESTSESSIONEVENT (smth)
#define COM_FORWARD_IGuestSessionEvent_TO_OBJ(obj) COM_FORWARD_IGuestSessionEvent_TO ((obj)->)
#define COM_FORWARD_IGuestSessionEvent_TO_BASE(base) COM_FORWARD_IGuestSessionEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestSessionEvent;
%}

[
    uuid(327e3c00-ee61-462f-aed3-0dff6cbf9904),
    scriptable
]
interface IGuestSessionStateChangedEvent : IGuestSessionEvent
{
    readonly attribute unsigned long id;

    readonly attribute GuestSessionStatus_T status;

    readonly attribute IVirtualBoxErrorInfo error;

}; /* interface IGuestSessionStateChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IGuestSessionStateChangedEvent_GETTER_Id_TO(smth) NS_IMETHOD GetId (PRUint32 * aId) { return smth GetId (aId); }
#define COM_FORWARD_IGuestSessionStateChangedEvent_GETTER_Id_TO_OBJ(obj) COM_FORWARD_IGuestSessionStateChangedEvent_GETTER_Id_TO ((obj)->)
#define COM_FORWARD_IGuestSessionStateChangedEvent_GETTER_Id_TO_BASE(base) COM_FORWARD_IGuestSessionStateChangedEvent_GETTER_Id_TO (base::)
#define COM_FORWARD_IGuestSessionStateChangedEvent_GETTER_Status_TO(smth) NS_IMETHOD GetStatus (PRUint32 * aStatus) { return smth GetStatus (aStatus); }
#define COM_FORWARD_IGuestSessionStateChangedEvent_GETTER_Status_TO_OBJ(obj) COM_FORWARD_IGuestSessionStateChangedEvent_GETTER_Status_TO ((obj)->)
#define COM_FORWARD_IGuestSessionStateChangedEvent_GETTER_Status_TO_BASE(base) COM_FORWARD_IGuestSessionStateChangedEvent_GETTER_Status_TO (base::)
#define COM_FORWARD_IGuestSessionStateChangedEvent_GETTER_Error_TO(smth) NS_IMETHOD GetError (IVirtualBoxErrorInfo * * aError) { return smth GetError (aError); }
#define COM_FORWARD_IGuestSessionStateChangedEvent_GETTER_Error_TO_OBJ(obj) COM_FORWARD_IGuestSessionStateChangedEvent_GETTER_Error_TO ((obj)->)
#define COM_FORWARD_IGuestSessionStateChangedEvent_GETTER_Error_TO_BASE(base) COM_FORWARD_IGuestSessionStateChangedEvent_GETTER_Error_TO (base::)
#define COM_FORWARD_IGuestSessionStateChangedEvent_TO(smth) NS_FORWARD_IGUESTSESSIONSTATECHANGEDEVENT (smth)
#define COM_FORWARD_IGuestSessionStateChangedEvent_TO_OBJ(obj) COM_FORWARD_IGuestSessionStateChangedEvent_TO ((obj)->)
#define COM_FORWARD_IGuestSessionStateChangedEvent_TO_BASE(base) COM_FORWARD_IGuestSessionStateChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestSessionStateChangedEvent;
%}

[
    uuid(b79de686-eabd-4fa6-960a-f1756c99ea1c),
    scriptable
]
interface IGuestSessionRegisteredEvent : IGuestSessionEvent
{
    readonly attribute boolean registered;

}; /* interface IGuestSessionRegisteredEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IGuestSessionRegisteredEvent_GETTER_Registered_TO(smth) NS_IMETHOD GetRegistered (PRBool * aRegistered) { return smth GetRegistered (aRegistered); }
#define COM_FORWARD_IGuestSessionRegisteredEvent_GETTER_Registered_TO_OBJ(obj) COM_FORWARD_IGuestSessionRegisteredEvent_GETTER_Registered_TO ((obj)->)
#define COM_FORWARD_IGuestSessionRegisteredEvent_GETTER_Registered_TO_BASE(base) COM_FORWARD_IGuestSessionRegisteredEvent_GETTER_Registered_TO (base::)
#define COM_FORWARD_IGuestSessionRegisteredEvent_TO(smth) NS_FORWARD_IGUESTSESSIONREGISTEREDEVENT (smth)
#define COM_FORWARD_IGuestSessionRegisteredEvent_TO_OBJ(obj) COM_FORWARD_IGuestSessionRegisteredEvent_TO ((obj)->)
#define COM_FORWARD_IGuestSessionRegisteredEvent_TO_BASE(base) COM_FORWARD_IGuestSessionRegisteredEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestSessionRegisteredEvent;
%}

[
    uuid(2405f0e5-6588-40a3-9b0a-68c05ba52c4b),
    scriptable
]
interface IGuestProcessEvent : IGuestSessionEvent
{
    readonly attribute IGuestProcess process;

    readonly attribute unsigned long pid;

}; /* interface IGuestProcessEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IGuestProcessEvent_GETTER_Process_TO(smth) NS_IMETHOD GetProcess (IGuestProcess * * aProcess) { return smth GetProcess (aProcess); }
#define COM_FORWARD_IGuestProcessEvent_GETTER_Process_TO_OBJ(obj) COM_FORWARD_IGuestProcessEvent_GETTER_Process_TO ((obj)->)
#define COM_FORWARD_IGuestProcessEvent_GETTER_Process_TO_BASE(base) COM_FORWARD_IGuestProcessEvent_GETTER_Process_TO (base::)
#define COM_FORWARD_IGuestProcessEvent_GETTER_Pid_TO(smth) NS_IMETHOD GetPid (PRUint32 * aPid) { return smth GetPid (aPid); }
#define COM_FORWARD_IGuestProcessEvent_GETTER_Pid_TO_OBJ(obj) COM_FORWARD_IGuestProcessEvent_GETTER_Pid_TO ((obj)->)
#define COM_FORWARD_IGuestProcessEvent_GETTER_Pid_TO_BASE(base) COM_FORWARD_IGuestProcessEvent_GETTER_Pid_TO (base::)
#define COM_FORWARD_IGuestProcessEvent_TO(smth) NS_FORWARD_IGUESTPROCESSEVENT (smth)
#define COM_FORWARD_IGuestProcessEvent_TO_OBJ(obj) COM_FORWARD_IGuestProcessEvent_TO ((obj)->)
#define COM_FORWARD_IGuestProcessEvent_TO_BASE(base) COM_FORWARD_IGuestProcessEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestProcessEvent;
%}

[
    uuid(1d89e2b3-c6ea-45b6-9d43-dc6f70cc9f02),
    scriptable
]
interface IGuestProcessRegisteredEvent : IGuestProcessEvent
{
    readonly attribute boolean registered;

}; /* interface IGuestProcessRegisteredEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IGuestProcessRegisteredEvent_GETTER_Registered_TO(smth) NS_IMETHOD GetRegistered (PRBool * aRegistered) { return smth GetRegistered (aRegistered); }
#define COM_FORWARD_IGuestProcessRegisteredEvent_GETTER_Registered_TO_OBJ(obj) COM_FORWARD_IGuestProcessRegisteredEvent_GETTER_Registered_TO ((obj)->)
#define COM_FORWARD_IGuestProcessRegisteredEvent_GETTER_Registered_TO_BASE(base) COM_FORWARD_IGuestProcessRegisteredEvent_GETTER_Registered_TO (base::)
#define COM_FORWARD_IGuestProcessRegisteredEvent_TO(smth) NS_FORWARD_IGUESTPROCESSREGISTEREDEVENT (smth)
#define COM_FORWARD_IGuestProcessRegisteredEvent_TO_OBJ(obj) COM_FORWARD_IGuestProcessRegisteredEvent_TO ((obj)->)
#define COM_FORWARD_IGuestProcessRegisteredEvent_TO_BASE(base) COM_FORWARD_IGuestProcessRegisteredEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestProcessRegisteredEvent;
%}

[
    uuid(c365fb7b-4430-499f-92c8-8bed814a567a),
    scriptable
]
interface IGuestProcessStateChangedEvent : IGuestProcessEvent
{
    readonly attribute ProcessStatus_T status;

    readonly attribute IVirtualBoxErrorInfo error;

}; /* interface IGuestProcessStateChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IGuestProcessStateChangedEvent_GETTER_Status_TO(smth) NS_IMETHOD GetStatus (PRUint32 * aStatus) { return smth GetStatus (aStatus); }
#define COM_FORWARD_IGuestProcessStateChangedEvent_GETTER_Status_TO_OBJ(obj) COM_FORWARD_IGuestProcessStateChangedEvent_GETTER_Status_TO ((obj)->)
#define COM_FORWARD_IGuestProcessStateChangedEvent_GETTER_Status_TO_BASE(base) COM_FORWARD_IGuestProcessStateChangedEvent_GETTER_Status_TO (base::)
#define COM_FORWARD_IGuestProcessStateChangedEvent_GETTER_Error_TO(smth) NS_IMETHOD GetError (IVirtualBoxErrorInfo * * aError) { return smth GetError (aError); }
#define COM_FORWARD_IGuestProcessStateChangedEvent_GETTER_Error_TO_OBJ(obj) COM_FORWARD_IGuestProcessStateChangedEvent_GETTER_Error_TO ((obj)->)
#define COM_FORWARD_IGuestProcessStateChangedEvent_GETTER_Error_TO_BASE(base) COM_FORWARD_IGuestProcessStateChangedEvent_GETTER_Error_TO (base::)
#define COM_FORWARD_IGuestProcessStateChangedEvent_TO(smth) NS_FORWARD_IGUESTPROCESSSTATECHANGEDEVENT (smth)
#define COM_FORWARD_IGuestProcessStateChangedEvent_TO_OBJ(obj) COM_FORWARD_IGuestProcessStateChangedEvent_TO ((obj)->)
#define COM_FORWARD_IGuestProcessStateChangedEvent_TO_BASE(base) COM_FORWARD_IGuestProcessStateChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestProcessStateChangedEvent;
%}

[
    uuid(9ea9227c-e9bb-49b3-bfc7-c5171e93ef38),
    scriptable
]
interface IGuestProcessIOEvent : IGuestProcessEvent
{
    readonly attribute unsigned long handle;

    readonly attribute unsigned long processed;

}; /* interface IGuestProcessIOEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IGuestProcessIOEvent_GETTER_Handle_TO(smth) NS_IMETHOD GetHandle (PRUint32 * aHandle) { return smth GetHandle (aHandle); }
#define COM_FORWARD_IGuestProcessIOEvent_GETTER_Handle_TO_OBJ(obj) COM_FORWARD_IGuestProcessIOEvent_GETTER_Handle_TO ((obj)->)
#define COM_FORWARD_IGuestProcessIOEvent_GETTER_Handle_TO_BASE(base) COM_FORWARD_IGuestProcessIOEvent_GETTER_Handle_TO (base::)
#define COM_FORWARD_IGuestProcessIOEvent_GETTER_Processed_TO(smth) NS_IMETHOD GetProcessed (PRUint32 * aProcessed) { return smth GetProcessed (aProcessed); }
#define COM_FORWARD_IGuestProcessIOEvent_GETTER_Processed_TO_OBJ(obj) COM_FORWARD_IGuestProcessIOEvent_GETTER_Processed_TO ((obj)->)
#define COM_FORWARD_IGuestProcessIOEvent_GETTER_Processed_TO_BASE(base) COM_FORWARD_IGuestProcessIOEvent_GETTER_Processed_TO (base::)
#define COM_FORWARD_IGuestProcessIOEvent_TO(smth) NS_FORWARD_IGUESTPROCESSIOEVENT (smth)
#define COM_FORWARD_IGuestProcessIOEvent_TO_OBJ(obj) COM_FORWARD_IGuestProcessIOEvent_TO ((obj)->)
#define COM_FORWARD_IGuestProcessIOEvent_TO_BASE(base) COM_FORWARD_IGuestProcessIOEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestProcessIOEvent;
%}

[
    uuid(0de887f2-b7db-4616-aac6-cfb94d89ba78),
    scriptable
]
interface IGuestProcessInputNotifyEvent : IGuestProcessIOEvent
{
    readonly attribute ProcessInputStatus_T status;

}; /* interface IGuestProcessInputNotifyEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IGuestProcessInputNotifyEvent_GETTER_Status_TO(smth) NS_IMETHOD GetStatus (PRUint32 * aStatus) { return smth GetStatus (aStatus); }
#define COM_FORWARD_IGuestProcessInputNotifyEvent_GETTER_Status_TO_OBJ(obj) COM_FORWARD_IGuestProcessInputNotifyEvent_GETTER_Status_TO ((obj)->)
#define COM_FORWARD_IGuestProcessInputNotifyEvent_GETTER_Status_TO_BASE(base) COM_FORWARD_IGuestProcessInputNotifyEvent_GETTER_Status_TO (base::)
#define COM_FORWARD_IGuestProcessInputNotifyEvent_TO(smth) NS_FORWARD_IGUESTPROCESSINPUTNOTIFYEVENT (smth)
#define COM_FORWARD_IGuestProcessInputNotifyEvent_TO_OBJ(obj) COM_FORWARD_IGuestProcessInputNotifyEvent_TO ((obj)->)
#define COM_FORWARD_IGuestProcessInputNotifyEvent_TO_BASE(base) COM_FORWARD_IGuestProcessInputNotifyEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestProcessInputNotifyEvent;
%}

[
    uuid(d3d5f1ee-bcb2-4905-a7ab-cc85448a742b),
    scriptable
]
interface IGuestProcessOutputEvent : IGuestProcessIOEvent
{
    void getData (
        out unsigned long dataSize,
        [array, size_is(dataSize), retval] out octet data
    );

}; /* interface IGuestProcessOutputEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IGuestProcessOutputEvent_GETTER_Data_TO(smth) NS_IMETHOD GetData (PRUint32 * aDataSize, PRUint8 * * aData) { return smth GetData (aDataSize, aData); }
#define COM_FORWARD_IGuestProcessOutputEvent_GETTER_Data_TO_OBJ(obj) COM_FORWARD_IGuestProcessOutputEvent_GETTER_Data_TO ((obj)->)
#define COM_FORWARD_IGuestProcessOutputEvent_GETTER_Data_TO_BASE(base) COM_FORWARD_IGuestProcessOutputEvent_GETTER_Data_TO (base::)
#define COM_FORWARD_IGuestProcessOutputEvent_TO(smth) NS_FORWARD_IGUESTPROCESSOUTPUTEVENT (smth)
#define COM_FORWARD_IGuestProcessOutputEvent_TO_OBJ(obj) COM_FORWARD_IGuestProcessOutputEvent_TO ((obj)->)
#define COM_FORWARD_IGuestProcessOutputEvent_TO_BASE(base) COM_FORWARD_IGuestProcessOutputEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestProcessOutputEvent;
%}

[
    uuid(c8adb7b0-057d-4391-b928-f14b06b710c5),
    scriptable
]
interface IGuestFileEvent : IGuestSessionEvent
{
    readonly attribute IGuestFile file;

}; /* interface IGuestFileEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IGuestFileEvent_GETTER_File_TO(smth) NS_IMETHOD GetFile (IGuestFile * * aFile) { return smth GetFile (aFile); }
#define COM_FORWARD_IGuestFileEvent_GETTER_File_TO_OBJ(obj) COM_FORWARD_IGuestFileEvent_GETTER_File_TO ((obj)->)
#define COM_FORWARD_IGuestFileEvent_GETTER_File_TO_BASE(base) COM_FORWARD_IGuestFileEvent_GETTER_File_TO (base::)
#define COM_FORWARD_IGuestFileEvent_TO(smth) NS_FORWARD_IGUESTFILEEVENT (smth)
#define COM_FORWARD_IGuestFileEvent_TO_OBJ(obj) COM_FORWARD_IGuestFileEvent_TO ((obj)->)
#define COM_FORWARD_IGuestFileEvent_TO_BASE(base) COM_FORWARD_IGuestFileEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestFileEvent;
%}

[
    uuid(d0d93830-70a2-487e-895e-d3fc9679f7b3),
    scriptable
]
interface IGuestFileRegisteredEvent : IGuestFileEvent
{
    readonly attribute boolean registered;

}; /* interface IGuestFileRegisteredEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IGuestFileRegisteredEvent_GETTER_Registered_TO(smth) NS_IMETHOD GetRegistered (PRBool * aRegistered) { return smth GetRegistered (aRegistered); }
#define COM_FORWARD_IGuestFileRegisteredEvent_GETTER_Registered_TO_OBJ(obj) COM_FORWARD_IGuestFileRegisteredEvent_GETTER_Registered_TO ((obj)->)
#define COM_FORWARD_IGuestFileRegisteredEvent_GETTER_Registered_TO_BASE(base) COM_FORWARD_IGuestFileRegisteredEvent_GETTER_Registered_TO (base::)
#define COM_FORWARD_IGuestFileRegisteredEvent_TO(smth) NS_FORWARD_IGUESTFILEREGISTEREDEVENT (smth)
#define COM_FORWARD_IGuestFileRegisteredEvent_TO_OBJ(obj) COM_FORWARD_IGuestFileRegisteredEvent_TO ((obj)->)
#define COM_FORWARD_IGuestFileRegisteredEvent_TO_BASE(base) COM_FORWARD_IGuestFileRegisteredEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestFileRegisteredEvent;
%}

[
    uuid(d37fe88f-0979-486c-baa1-3abb144dc82d),
    scriptable
]
interface IGuestFileStateChangedEvent : IGuestFileEvent
{
    readonly attribute FileStatus_T status;

    readonly attribute IVirtualBoxErrorInfo error;

}; /* interface IGuestFileStateChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IGuestFileStateChangedEvent_GETTER_Status_TO(smth) NS_IMETHOD GetStatus (PRUint32 * aStatus) { return smth GetStatus (aStatus); }
#define COM_FORWARD_IGuestFileStateChangedEvent_GETTER_Status_TO_OBJ(obj) COM_FORWARD_IGuestFileStateChangedEvent_GETTER_Status_TO ((obj)->)
#define COM_FORWARD_IGuestFileStateChangedEvent_GETTER_Status_TO_BASE(base) COM_FORWARD_IGuestFileStateChangedEvent_GETTER_Status_TO (base::)
#define COM_FORWARD_IGuestFileStateChangedEvent_GETTER_Error_TO(smth) NS_IMETHOD GetError (IVirtualBoxErrorInfo * * aError) { return smth GetError (aError); }
#define COM_FORWARD_IGuestFileStateChangedEvent_GETTER_Error_TO_OBJ(obj) COM_FORWARD_IGuestFileStateChangedEvent_GETTER_Error_TO ((obj)->)
#define COM_FORWARD_IGuestFileStateChangedEvent_GETTER_Error_TO_BASE(base) COM_FORWARD_IGuestFileStateChangedEvent_GETTER_Error_TO (base::)
#define COM_FORWARD_IGuestFileStateChangedEvent_TO(smth) NS_FORWARD_IGUESTFILESTATECHANGEDEVENT (smth)
#define COM_FORWARD_IGuestFileStateChangedEvent_TO_OBJ(obj) COM_FORWARD_IGuestFileStateChangedEvent_TO ((obj)->)
#define COM_FORWARD_IGuestFileStateChangedEvent_TO_BASE(base) COM_FORWARD_IGuestFileStateChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestFileStateChangedEvent;
%}

[
    uuid(b5191a7c-9536-4ef8-820e-3b0e17e5bbc8),
    scriptable
]
interface IGuestFileIOEvent : IGuestFileEvent
{
    readonly attribute long long offset;

    readonly attribute unsigned long processed;

}; /* interface IGuestFileIOEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IGuestFileIOEvent_GETTER_Offset_TO(smth) NS_IMETHOD GetOffset (PRInt64 * aOffset) { return smth GetOffset (aOffset); }
#define COM_FORWARD_IGuestFileIOEvent_GETTER_Offset_TO_OBJ(obj) COM_FORWARD_IGuestFileIOEvent_GETTER_Offset_TO ((obj)->)
#define COM_FORWARD_IGuestFileIOEvent_GETTER_Offset_TO_BASE(base) COM_FORWARD_IGuestFileIOEvent_GETTER_Offset_TO (base::)
#define COM_FORWARD_IGuestFileIOEvent_GETTER_Processed_TO(smth) NS_IMETHOD GetProcessed (PRUint32 * aProcessed) { return smth GetProcessed (aProcessed); }
#define COM_FORWARD_IGuestFileIOEvent_GETTER_Processed_TO_OBJ(obj) COM_FORWARD_IGuestFileIOEvent_GETTER_Processed_TO ((obj)->)
#define COM_FORWARD_IGuestFileIOEvent_GETTER_Processed_TO_BASE(base) COM_FORWARD_IGuestFileIOEvent_GETTER_Processed_TO (base::)
#define COM_FORWARD_IGuestFileIOEvent_TO(smth) NS_FORWARD_IGUESTFILEIOEVENT (smth)
#define COM_FORWARD_IGuestFileIOEvent_TO_OBJ(obj) COM_FORWARD_IGuestFileIOEvent_TO ((obj)->)
#define COM_FORWARD_IGuestFileIOEvent_TO_BASE(base) COM_FORWARD_IGuestFileIOEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestFileIOEvent;
%}

[
    uuid(e8f79a21-1207-4179-94cf-ca250036308f),
    scriptable
]
interface IGuestFileOffsetChangedEvent : IGuestFileIOEvent
{
    readonly attribute boolean midlDoesNotLikeEmptyInterfaces;

}; /* interface IGuestFileOffsetChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IGuestFileOffsetChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO(smth) NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces (PRBool * aMidlDoesNotLikeEmptyInterfaces) { return smth GetMidlDoesNotLikeEmptyInterfaces (aMidlDoesNotLikeEmptyInterfaces); }
#define COM_FORWARD_IGuestFileOffsetChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_OBJ(obj) COM_FORWARD_IGuestFileOffsetChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO ((obj)->)
#define COM_FORWARD_IGuestFileOffsetChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_BASE(base) COM_FORWARD_IGuestFileOffsetChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO (base::)
#define COM_FORWARD_IGuestFileOffsetChangedEvent_TO(smth) NS_FORWARD_IGUESTFILEOFFSETCHANGEDEVENT (smth)
#define COM_FORWARD_IGuestFileOffsetChangedEvent_TO_OBJ(obj) COM_FORWARD_IGuestFileOffsetChangedEvent_TO ((obj)->)
#define COM_FORWARD_IGuestFileOffsetChangedEvent_TO_BASE(base) COM_FORWARD_IGuestFileOffsetChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestFileOffsetChangedEvent;
%}

[
    uuid(d78374e9-486e-472f-481b-969746af2480),
    scriptable
]
interface IGuestFileSizeChangedEvent : IGuestFileEvent
{
    readonly attribute long long newSize;

}; /* interface IGuestFileSizeChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IGuestFileSizeChangedEvent_GETTER_NewSize_TO(smth) NS_IMETHOD GetNewSize (PRInt64 * aNewSize) { return smth GetNewSize (aNewSize); }
#define COM_FORWARD_IGuestFileSizeChangedEvent_GETTER_NewSize_TO_OBJ(obj) COM_FORWARD_IGuestFileSizeChangedEvent_GETTER_NewSize_TO ((obj)->)
#define COM_FORWARD_IGuestFileSizeChangedEvent_GETTER_NewSize_TO_BASE(base) COM_FORWARD_IGuestFileSizeChangedEvent_GETTER_NewSize_TO (base::)
#define COM_FORWARD_IGuestFileSizeChangedEvent_TO(smth) NS_FORWARD_IGUESTFILESIZECHANGEDEVENT (smth)
#define COM_FORWARD_IGuestFileSizeChangedEvent_TO_OBJ(obj) COM_FORWARD_IGuestFileSizeChangedEvent_TO ((obj)->)
#define COM_FORWARD_IGuestFileSizeChangedEvent_TO_BASE(base) COM_FORWARD_IGuestFileSizeChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestFileSizeChangedEvent;
%}

[
    uuid(4ee3cbcb-486f-40db-9150-deee3fd24189),
    scriptable
]
interface IGuestFileReadEvent : IGuestFileIOEvent
{
    void getData (
        out unsigned long dataSize,
        [array, size_is(dataSize), retval] out octet data
    );

}; /* interface IGuestFileReadEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IGuestFileReadEvent_GETTER_Data_TO(smth) NS_IMETHOD GetData (PRUint32 * aDataSize, PRUint8 * * aData) { return smth GetData (aDataSize, aData); }
#define COM_FORWARD_IGuestFileReadEvent_GETTER_Data_TO_OBJ(obj) COM_FORWARD_IGuestFileReadEvent_GETTER_Data_TO ((obj)->)
#define COM_FORWARD_IGuestFileReadEvent_GETTER_Data_TO_BASE(base) COM_FORWARD_IGuestFileReadEvent_GETTER_Data_TO (base::)
#define COM_FORWARD_IGuestFileReadEvent_TO(smth) NS_FORWARD_IGUESTFILEREADEVENT (smth)
#define COM_FORWARD_IGuestFileReadEvent_TO_OBJ(obj) COM_FORWARD_IGuestFileReadEvent_TO ((obj)->)
#define COM_FORWARD_IGuestFileReadEvent_TO_BASE(base) COM_FORWARD_IGuestFileReadEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestFileReadEvent;
%}

[
    uuid(e062a915-3cf5-4c0a-bc90-9b8d4cc94d89),
    scriptable
]
interface IGuestFileWriteEvent : IGuestFileIOEvent
{
    readonly attribute boolean midlDoesNotLikeEmptyInterfaces;

}; /* interface IGuestFileWriteEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IGuestFileWriteEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO(smth) NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces (PRBool * aMidlDoesNotLikeEmptyInterfaces) { return smth GetMidlDoesNotLikeEmptyInterfaces (aMidlDoesNotLikeEmptyInterfaces); }
#define COM_FORWARD_IGuestFileWriteEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_OBJ(obj) COM_FORWARD_IGuestFileWriteEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO ((obj)->)
#define COM_FORWARD_IGuestFileWriteEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_BASE(base) COM_FORWARD_IGuestFileWriteEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO (base::)
#define COM_FORWARD_IGuestFileWriteEvent_TO(smth) NS_FORWARD_IGUESTFILEWRITEEVENT (smth)
#define COM_FORWARD_IGuestFileWriteEvent_TO_OBJ(obj) COM_FORWARD_IGuestFileWriteEvent_TO ((obj)->)
#define COM_FORWARD_IGuestFileWriteEvent_TO_BASE(base) COM_FORWARD_IGuestFileWriteEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestFileWriteEvent;
%}

[
    uuid(a06fd66a-3188-4c8c-8756-1395e8cb691c),
    scriptable
]
interface IVRDEServerChangedEvent : IEvent
{
    readonly attribute boolean midlDoesNotLikeEmptyInterfaces;

}; /* interface IVRDEServerChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IVRDEServerChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO(smth) NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces (PRBool * aMidlDoesNotLikeEmptyInterfaces) { return smth GetMidlDoesNotLikeEmptyInterfaces (aMidlDoesNotLikeEmptyInterfaces); }
#define COM_FORWARD_IVRDEServerChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_OBJ(obj) COM_FORWARD_IVRDEServerChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO ((obj)->)
#define COM_FORWARD_IVRDEServerChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_BASE(base) COM_FORWARD_IVRDEServerChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO (base::)
#define COM_FORWARD_IVRDEServerChangedEvent_TO(smth) NS_FORWARD_IVRDESERVERCHANGEDEVENT (smth)
#define COM_FORWARD_IVRDEServerChangedEvent_TO_OBJ(obj) COM_FORWARD_IVRDEServerChangedEvent_TO ((obj)->)
#define COM_FORWARD_IVRDEServerChangedEvent_TO_BASE(base) COM_FORWARD_IVRDEServerChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IVRDEServerChangedEvent;
%}

[
    uuid(dd6a1080-e1b7-4339-a549-f0878115596e),
    scriptable
]
interface IVRDEServerInfoChangedEvent : IEvent
{
    readonly attribute boolean midlDoesNotLikeEmptyInterfaces;

}; /* interface IVRDEServerInfoChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IVRDEServerInfoChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO(smth) NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces (PRBool * aMidlDoesNotLikeEmptyInterfaces) { return smth GetMidlDoesNotLikeEmptyInterfaces (aMidlDoesNotLikeEmptyInterfaces); }
#define COM_FORWARD_IVRDEServerInfoChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_OBJ(obj) COM_FORWARD_IVRDEServerInfoChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO ((obj)->)
#define COM_FORWARD_IVRDEServerInfoChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_BASE(base) COM_FORWARD_IVRDEServerInfoChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO (base::)
#define COM_FORWARD_IVRDEServerInfoChangedEvent_TO(smth) NS_FORWARD_IVRDESERVERINFOCHANGEDEVENT (smth)
#define COM_FORWARD_IVRDEServerInfoChangedEvent_TO_OBJ(obj) COM_FORWARD_IVRDEServerInfoChangedEvent_TO ((obj)->)
#define COM_FORWARD_IVRDEServerInfoChangedEvent_TO_BASE(base) COM_FORWARD_IVRDEServerInfoChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IVRDEServerInfoChangedEvent;
%}

[
    uuid(B5DDB370-08A7-4C8F-910D-47AABD67253A),
    scriptable
]
interface IRecordingChangedEvent : IEvent
{
    readonly attribute boolean midlDoesNotLikeEmptyInterfaces;

}; /* interface IRecordingChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IRecordingChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO(smth) NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces (PRBool * aMidlDoesNotLikeEmptyInterfaces) { return smth GetMidlDoesNotLikeEmptyInterfaces (aMidlDoesNotLikeEmptyInterfaces); }
#define COM_FORWARD_IRecordingChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_OBJ(obj) COM_FORWARD_IRecordingChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO ((obj)->)
#define COM_FORWARD_IRecordingChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_BASE(base) COM_FORWARD_IRecordingChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO (base::)
#define COM_FORWARD_IRecordingChangedEvent_TO(smth) NS_FORWARD_IRECORDINGCHANGEDEVENT (smth)
#define COM_FORWARD_IRecordingChangedEvent_TO_OBJ(obj) COM_FORWARD_IRecordingChangedEvent_TO ((obj)->)
#define COM_FORWARD_IRecordingChangedEvent_TO_BASE(base) COM_FORWARD_IRecordingChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IRecordingChangedEvent;
%}

[
    uuid(93BADC0C-61D9-4940-A084-E6BB29AF3D83),
    scriptable
]
interface IUSBControllerChangedEvent : IEvent
{
    readonly attribute boolean midlDoesNotLikeEmptyInterfaces;

}; /* interface IUSBControllerChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IUSBControllerChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO(smth) NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces (PRBool * aMidlDoesNotLikeEmptyInterfaces) { return smth GetMidlDoesNotLikeEmptyInterfaces (aMidlDoesNotLikeEmptyInterfaces); }
#define COM_FORWARD_IUSBControllerChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_OBJ(obj) COM_FORWARD_IUSBControllerChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO ((obj)->)
#define COM_FORWARD_IUSBControllerChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_BASE(base) COM_FORWARD_IUSBControllerChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO (base::)
#define COM_FORWARD_IUSBControllerChangedEvent_TO(smth) NS_FORWARD_IUSBCONTROLLERCHANGEDEVENT (smth)
#define COM_FORWARD_IUSBControllerChangedEvent_TO_OBJ(obj) COM_FORWARD_IUSBControllerChangedEvent_TO ((obj)->)
#define COM_FORWARD_IUSBControllerChangedEvent_TO_BASE(base) COM_FORWARD_IUSBControllerChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IUSBControllerChangedEvent;
%}

[
    uuid(806da61b-6679-422a-b629-51b06b0c6d93),
    scriptable
]
interface IUSBDeviceStateChangedEvent : IEvent
{
    readonly attribute IUSBDevice device;

    readonly attribute boolean attached;

    readonly attribute IVirtualBoxErrorInfo error;

}; /* interface IUSBDeviceStateChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IUSBDeviceStateChangedEvent_GETTER_Device_TO(smth) NS_IMETHOD GetDevice (IUSBDevice * * aDevice) { return smth GetDevice (aDevice); }
#define COM_FORWARD_IUSBDeviceStateChangedEvent_GETTER_Device_TO_OBJ(obj) COM_FORWARD_IUSBDeviceStateChangedEvent_GETTER_Device_TO ((obj)->)
#define COM_FORWARD_IUSBDeviceStateChangedEvent_GETTER_Device_TO_BASE(base) COM_FORWARD_IUSBDeviceStateChangedEvent_GETTER_Device_TO (base::)
#define COM_FORWARD_IUSBDeviceStateChangedEvent_GETTER_Attached_TO(smth) NS_IMETHOD GetAttached (PRBool * aAttached) { return smth GetAttached (aAttached); }
#define COM_FORWARD_IUSBDeviceStateChangedEvent_GETTER_Attached_TO_OBJ(obj) COM_FORWARD_IUSBDeviceStateChangedEvent_GETTER_Attached_TO ((obj)->)
#define COM_FORWARD_IUSBDeviceStateChangedEvent_GETTER_Attached_TO_BASE(base) COM_FORWARD_IUSBDeviceStateChangedEvent_GETTER_Attached_TO (base::)
#define COM_FORWARD_IUSBDeviceStateChangedEvent_GETTER_Error_TO(smth) NS_IMETHOD GetError (IVirtualBoxErrorInfo * * aError) { return smth GetError (aError); }
#define COM_FORWARD_IUSBDeviceStateChangedEvent_GETTER_Error_TO_OBJ(obj) COM_FORWARD_IUSBDeviceStateChangedEvent_GETTER_Error_TO ((obj)->)
#define COM_FORWARD_IUSBDeviceStateChangedEvent_GETTER_Error_TO_BASE(base) COM_FORWARD_IUSBDeviceStateChangedEvent_GETTER_Error_TO (base::)
#define COM_FORWARD_IUSBDeviceStateChangedEvent_TO(smth) NS_FORWARD_IUSBDEVICESTATECHANGEDEVENT (smth)
#define COM_FORWARD_IUSBDeviceStateChangedEvent_TO_OBJ(obj) COM_FORWARD_IUSBDeviceStateChangedEvent_TO ((obj)->)
#define COM_FORWARD_IUSBDeviceStateChangedEvent_TO_BASE(base) COM_FORWARD_IUSBDeviceStateChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IUSBDeviceStateChangedEvent;
%}

[
    uuid(B66349B5-3534-4239-B2DE-8E1535D94C0B),
    scriptable
]
interface ISharedFolderChangedEvent : IEvent
{
    readonly attribute Scope_T scope;

}; /* interface ISharedFolderChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_ISharedFolderChangedEvent_GETTER_Scope_TO(smth) NS_IMETHOD GetScope (PRUint32 * aScope) { return smth GetScope (aScope); }
#define COM_FORWARD_ISharedFolderChangedEvent_GETTER_Scope_TO_OBJ(obj) COM_FORWARD_ISharedFolderChangedEvent_GETTER_Scope_TO ((obj)->)
#define COM_FORWARD_ISharedFolderChangedEvent_GETTER_Scope_TO_BASE(base) COM_FORWARD_ISharedFolderChangedEvent_GETTER_Scope_TO (base::)
#define COM_FORWARD_ISharedFolderChangedEvent_TO(smth) NS_FORWARD_ISHAREDFOLDERCHANGEDEVENT (smth)
#define COM_FORWARD_ISharedFolderChangedEvent_TO_OBJ(obj) COM_FORWARD_ISharedFolderChangedEvent_TO ((obj)->)
#define COM_FORWARD_ISharedFolderChangedEvent_TO_BASE(base) COM_FORWARD_ISharedFolderChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ISharedFolderChangedEvent;
%}

[
    uuid(883DD18B-0721-4CDE-867C-1A82ABAF914C),
    scriptable
]
interface IRuntimeErrorEvent : IEvent
{
    readonly attribute boolean fatal;

    readonly attribute wstring id;

    readonly attribute wstring message;

}; /* interface IRuntimeErrorEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IRuntimeErrorEvent_GETTER_Fatal_TO(smth) NS_IMETHOD GetFatal (PRBool * aFatal) { return smth GetFatal (aFatal); }
#define COM_FORWARD_IRuntimeErrorEvent_GETTER_Fatal_TO_OBJ(obj) COM_FORWARD_IRuntimeErrorEvent_GETTER_Fatal_TO ((obj)->)
#define COM_FORWARD_IRuntimeErrorEvent_GETTER_Fatal_TO_BASE(base) COM_FORWARD_IRuntimeErrorEvent_GETTER_Fatal_TO (base::)
#define COM_FORWARD_IRuntimeErrorEvent_GETTER_Id_TO(smth) NS_IMETHOD GetId (PRUnichar * * aId) { return smth GetId (aId); }
#define COM_FORWARD_IRuntimeErrorEvent_GETTER_Id_TO_OBJ(obj) COM_FORWARD_IRuntimeErrorEvent_GETTER_Id_TO ((obj)->)
#define COM_FORWARD_IRuntimeErrorEvent_GETTER_Id_TO_BASE(base) COM_FORWARD_IRuntimeErrorEvent_GETTER_Id_TO (base::)
#define COM_FORWARD_IRuntimeErrorEvent_GETTER_Message_TO(smth) NS_IMETHOD GetMessage (PRUnichar * * aMessage) { return smth GetMessage (aMessage); }
#define COM_FORWARD_IRuntimeErrorEvent_GETTER_Message_TO_OBJ(obj) COM_FORWARD_IRuntimeErrorEvent_GETTER_Message_TO ((obj)->)
#define COM_FORWARD_IRuntimeErrorEvent_GETTER_Message_TO_BASE(base) COM_FORWARD_IRuntimeErrorEvent_GETTER_Message_TO (base::)
#define COM_FORWARD_IRuntimeErrorEvent_TO(smth) NS_FORWARD_IRUNTIMEERROREVENT (smth)
#define COM_FORWARD_IRuntimeErrorEvent_TO_OBJ(obj) COM_FORWARD_IRuntimeErrorEvent_TO ((obj)->)
#define COM_FORWARD_IRuntimeErrorEvent_TO_BASE(base) COM_FORWARD_IRuntimeErrorEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IRuntimeErrorEvent;
%}

[
    uuid(e7932cb8-f6d4-4ab6-9cbf-558eb8959a6a),
    scriptable
]
interface IEventSourceChangedEvent : IEvent
{
    readonly attribute IEventListener listener;

    readonly attribute boolean add;

}; /* interface IEventSourceChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IEventSourceChangedEvent_GETTER_Listener_TO(smth) NS_IMETHOD GetListener (IEventListener * * aListener) { return smth GetListener (aListener); }
#define COM_FORWARD_IEventSourceChangedEvent_GETTER_Listener_TO_OBJ(obj) COM_FORWARD_IEventSourceChangedEvent_GETTER_Listener_TO ((obj)->)
#define COM_FORWARD_IEventSourceChangedEvent_GETTER_Listener_TO_BASE(base) COM_FORWARD_IEventSourceChangedEvent_GETTER_Listener_TO (base::)
#define COM_FORWARD_IEventSourceChangedEvent_GETTER_Add_TO(smth) NS_IMETHOD GetAdd (PRBool * aAdd) { return smth GetAdd (aAdd); }
#define COM_FORWARD_IEventSourceChangedEvent_GETTER_Add_TO_OBJ(obj) COM_FORWARD_IEventSourceChangedEvent_GETTER_Add_TO ((obj)->)
#define COM_FORWARD_IEventSourceChangedEvent_GETTER_Add_TO_BASE(base) COM_FORWARD_IEventSourceChangedEvent_GETTER_Add_TO (base::)
#define COM_FORWARD_IEventSourceChangedEvent_TO(smth) NS_FORWARD_IEVENTSOURCECHANGEDEVENT (smth)
#define COM_FORWARD_IEventSourceChangedEvent_TO_OBJ(obj) COM_FORWARD_IEventSourceChangedEvent_TO ((obj)->)
#define COM_FORWARD_IEventSourceChangedEvent_TO_BASE(base) COM_FORWARD_IEventSourceChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IEventSourceChangedEvent;
%}

[
    uuid(024F00CE-6E0B-492A-A8D0-968472A94DC7),
    scriptable
]
interface IExtraDataChangedEvent : IEvent
{
    readonly attribute wstring machineId;

    readonly attribute wstring key;

    readonly attribute wstring value;

}; /* interface IExtraDataChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IExtraDataChangedEvent_GETTER_MachineId_TO(smth) NS_IMETHOD GetMachineId (PRUnichar * * aMachineId) { return smth GetMachineId (aMachineId); }
#define COM_FORWARD_IExtraDataChangedEvent_GETTER_MachineId_TO_OBJ(obj) COM_FORWARD_IExtraDataChangedEvent_GETTER_MachineId_TO ((obj)->)
#define COM_FORWARD_IExtraDataChangedEvent_GETTER_MachineId_TO_BASE(base) COM_FORWARD_IExtraDataChangedEvent_GETTER_MachineId_TO (base::)
#define COM_FORWARD_IExtraDataChangedEvent_GETTER_Key_TO(smth) NS_IMETHOD GetKey (PRUnichar * * aKey) { return smth GetKey (aKey); }
#define COM_FORWARD_IExtraDataChangedEvent_GETTER_Key_TO_OBJ(obj) COM_FORWARD_IExtraDataChangedEvent_GETTER_Key_TO ((obj)->)
#define COM_FORWARD_IExtraDataChangedEvent_GETTER_Key_TO_BASE(base) COM_FORWARD_IExtraDataChangedEvent_GETTER_Key_TO (base::)
#define COM_FORWARD_IExtraDataChangedEvent_GETTER_Value_TO(smth) NS_IMETHOD GetValue (PRUnichar * * aValue) { return smth GetValue (aValue); }
#define COM_FORWARD_IExtraDataChangedEvent_GETTER_Value_TO_OBJ(obj) COM_FORWARD_IExtraDataChangedEvent_GETTER_Value_TO ((obj)->)
#define COM_FORWARD_IExtraDataChangedEvent_GETTER_Value_TO_BASE(base) COM_FORWARD_IExtraDataChangedEvent_GETTER_Value_TO (base::)
#define COM_FORWARD_IExtraDataChangedEvent_TO(smth) NS_FORWARD_IEXTRADATACHANGEDEVENT (smth)
#define COM_FORWARD_IExtraDataChangedEvent_TO_OBJ(obj) COM_FORWARD_IExtraDataChangedEvent_TO ((obj)->)
#define COM_FORWARD_IExtraDataChangedEvent_TO_BASE(base) COM_FORWARD_IExtraDataChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IExtraDataChangedEvent;
%}

[
    uuid(7c5e945f-2354-4267-883f-2f417d216519),
    scriptable
]
interface IVetoEvent : IEvent
{
    void addVeto (
        in wstring reason
    );

    void isVetoed (
        [retval] out boolean result
    );

    void getVetos (
        out unsigned long resultSize,
        [array, size_is(resultSize) , retval] out wstring result
    );

    void addApproval (
        in wstring reason
    );

    void isApproved (
        [retval] out boolean result
    );

    void getApprovals (
        out unsigned long resultSize,
        [array, size_is(resultSize) , retval] out wstring result
    );

}; /* interface IVetoEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IVetoEvent_AddVeto_TO(smth) NS_IMETHOD AddVeto (PRUnichar * aReason) { return smth AddVeto (aReason); }
#define COM_FORWARD_IVetoEvent_AddVeto_TO_OBJ(obj) COM_FORWARD_IVetoEvent_AddVeto_TO ((obj)->)
#define COM_FORWARD_IVetoEvent_AddVeto_TO_BASE(base) COM_FORWARD_IVetoEvent_AddVeto_TO (base::)
#define COM_FORWARD_IVetoEvent_IsVetoed_TO(smth) NS_IMETHOD IsVetoed (PRBool * aResult) { return smth IsVetoed (aResult); }
#define COM_FORWARD_IVetoEvent_IsVetoed_TO_OBJ(obj) COM_FORWARD_IVetoEvent_IsVetoed_TO ((obj)->)
#define COM_FORWARD_IVetoEvent_IsVetoed_TO_BASE(base) COM_FORWARD_IVetoEvent_IsVetoed_TO (base::)
#define COM_FORWARD_IVetoEvent_GetVetos_TO(smth) NS_IMETHOD GetVetos (PRUint32 * aResultSize, PRUnichar * * * aResult) { return smth GetVetos (aResultSize, aResult); }
#define COM_FORWARD_IVetoEvent_GetVetos_TO_OBJ(obj) COM_FORWARD_IVetoEvent_GetVetos_TO ((obj)->)
#define COM_FORWARD_IVetoEvent_GetVetos_TO_BASE(base) COM_FORWARD_IVetoEvent_GetVetos_TO (base::)
#define COM_FORWARD_IVetoEvent_AddApproval_TO(smth) NS_IMETHOD AddApproval (PRUnichar * aReason) { return smth AddApproval (aReason); }
#define COM_FORWARD_IVetoEvent_AddApproval_TO_OBJ(obj) COM_FORWARD_IVetoEvent_AddApproval_TO ((obj)->)
#define COM_FORWARD_IVetoEvent_AddApproval_TO_BASE(base) COM_FORWARD_IVetoEvent_AddApproval_TO (base::)
#define COM_FORWARD_IVetoEvent_IsApproved_TO(smth) NS_IMETHOD IsApproved (PRBool * aResult) { return smth IsApproved (aResult); }
#define COM_FORWARD_IVetoEvent_IsApproved_TO_OBJ(obj) COM_FORWARD_IVetoEvent_IsApproved_TO ((obj)->)
#define COM_FORWARD_IVetoEvent_IsApproved_TO_BASE(base) COM_FORWARD_IVetoEvent_IsApproved_TO (base::)
#define COM_FORWARD_IVetoEvent_GetApprovals_TO(smth) NS_IMETHOD GetApprovals (PRUint32 * aResultSize, PRUnichar * * * aResult) { return smth GetApprovals (aResultSize, aResult); }
#define COM_FORWARD_IVetoEvent_GetApprovals_TO_OBJ(obj) COM_FORWARD_IVetoEvent_GetApprovals_TO ((obj)->)
#define COM_FORWARD_IVetoEvent_GetApprovals_TO_BASE(base) COM_FORWARD_IVetoEvent_GetApprovals_TO (base::)
#define COM_FORWARD_IVetoEvent_TO(smth) NS_FORWARD_IVETOEVENT (smth)
#define COM_FORWARD_IVetoEvent_TO_OBJ(obj) COM_FORWARD_IVetoEvent_TO ((obj)->)
#define COM_FORWARD_IVetoEvent_TO_BASE(base) COM_FORWARD_IVetoEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IVetoEvent;
%}

[
    uuid(245d88bd-800a-40f8-87a6-170d02249a55),
    scriptable
]
interface IExtraDataCanChangeEvent : IVetoEvent
{
    readonly attribute wstring machineId;

    readonly attribute wstring key;

    readonly attribute wstring value;

}; /* interface IExtraDataCanChangeEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IExtraDataCanChangeEvent_GETTER_MachineId_TO(smth) NS_IMETHOD GetMachineId (PRUnichar * * aMachineId) { return smth GetMachineId (aMachineId); }
#define COM_FORWARD_IExtraDataCanChangeEvent_GETTER_MachineId_TO_OBJ(obj) COM_FORWARD_IExtraDataCanChangeEvent_GETTER_MachineId_TO ((obj)->)
#define COM_FORWARD_IExtraDataCanChangeEvent_GETTER_MachineId_TO_BASE(base) COM_FORWARD_IExtraDataCanChangeEvent_GETTER_MachineId_TO (base::)
#define COM_FORWARD_IExtraDataCanChangeEvent_GETTER_Key_TO(smth) NS_IMETHOD GetKey (PRUnichar * * aKey) { return smth GetKey (aKey); }
#define COM_FORWARD_IExtraDataCanChangeEvent_GETTER_Key_TO_OBJ(obj) COM_FORWARD_IExtraDataCanChangeEvent_GETTER_Key_TO ((obj)->)
#define COM_FORWARD_IExtraDataCanChangeEvent_GETTER_Key_TO_BASE(base) COM_FORWARD_IExtraDataCanChangeEvent_GETTER_Key_TO (base::)
#define COM_FORWARD_IExtraDataCanChangeEvent_GETTER_Value_TO(smth) NS_IMETHOD GetValue (PRUnichar * * aValue) { return smth GetValue (aValue); }
#define COM_FORWARD_IExtraDataCanChangeEvent_GETTER_Value_TO_OBJ(obj) COM_FORWARD_IExtraDataCanChangeEvent_GETTER_Value_TO ((obj)->)
#define COM_FORWARD_IExtraDataCanChangeEvent_GETTER_Value_TO_BASE(base) COM_FORWARD_IExtraDataCanChangeEvent_GETTER_Value_TO (base::)
#define COM_FORWARD_IExtraDataCanChangeEvent_TO(smth) NS_FORWARD_IEXTRADATACANCHANGEEVENT (smth)
#define COM_FORWARD_IExtraDataCanChangeEvent_TO_OBJ(obj) COM_FORWARD_IExtraDataCanChangeEvent_TO ((obj)->)
#define COM_FORWARD_IExtraDataCanChangeEvent_TO_BASE(base) COM_FORWARD_IExtraDataCanChangeEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IExtraDataCanChangeEvent;
%}

[
    uuid(adf292b0-92c9-4a77-9d35-e058b39fe0b9),
    scriptable
]
interface ICanShowWindowEvent : IVetoEvent
{
    readonly attribute boolean midlDoesNotLikeEmptyInterfaces;

}; /* interface ICanShowWindowEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_ICanShowWindowEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO(smth) NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces (PRBool * aMidlDoesNotLikeEmptyInterfaces) { return smth GetMidlDoesNotLikeEmptyInterfaces (aMidlDoesNotLikeEmptyInterfaces); }
#define COM_FORWARD_ICanShowWindowEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_OBJ(obj) COM_FORWARD_ICanShowWindowEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO ((obj)->)
#define COM_FORWARD_ICanShowWindowEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_BASE(base) COM_FORWARD_ICanShowWindowEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO (base::)
#define COM_FORWARD_ICanShowWindowEvent_TO(smth) NS_FORWARD_ICANSHOWWINDOWEVENT (smth)
#define COM_FORWARD_ICanShowWindowEvent_TO_OBJ(obj) COM_FORWARD_ICanShowWindowEvent_TO ((obj)->)
#define COM_FORWARD_ICanShowWindowEvent_TO_BASE(base) COM_FORWARD_ICanShowWindowEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ICanShowWindowEvent;
%}

[
    uuid(B0A0904D-2F05-4D28-855F-488F96BAD2B2),
    scriptable
]
interface IShowWindowEvent : IEvent
{
    attribute long long winId;

}; /* interface IShowWindowEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IShowWindowEvent_GETTER_WinId_TO(smth) NS_IMETHOD GetWinId (PRInt64 * aWinId) { return smth GetWinId (aWinId); }
#define COM_FORWARD_IShowWindowEvent_GETTER_WinId_TO_OBJ(obj) COM_FORWARD_IShowWindowEvent_GETTER_WinId_TO ((obj)->)
#define COM_FORWARD_IShowWindowEvent_GETTER_WinId_TO_BASE(base) COM_FORWARD_IShowWindowEvent_GETTER_WinId_TO (base::)
#define COM_FORWARD_IShowWindowEvent_SETTER_WinId_TO(smth) NS_IMETHOD SetWinId (PRInt64 aWinId) { return smth SetWinId (aWinId); }
#define COM_FORWARD_IShowWindowEvent_SETTER_WinId_TO_OBJ(obj) COM_FORWARD_IShowWindowEvent_SETTER_WinId_TO ((obj)->)
#define COM_FORWARD_IShowWindowEvent_SETTER_WinId_TO_BASE(base) COM_FORWARD_IShowWindowEvent_SETTER_WinId_TO (base::)
#define COM_FORWARD_IShowWindowEvent_TO(smth) NS_FORWARD_ISHOWWINDOWEVENT (smth)
#define COM_FORWARD_IShowWindowEvent_TO_OBJ(obj) COM_FORWARD_IShowWindowEvent_TO ((obj)->)
#define COM_FORWARD_IShowWindowEvent_TO_BASE(base) COM_FORWARD_IShowWindowEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IShowWindowEvent;
%}

[
    uuid(24eef068-c380-4510-bc7c-19314a7352f1),
    scriptable
]
interface INATRedirectEvent : IMachineEvent
{
    readonly attribute unsigned long slot;

    readonly attribute boolean remove;

    readonly attribute wstring name;

    readonly attribute NATProtocol_T proto;

    readonly attribute wstring hostIP;

    readonly attribute long hostPort;

    readonly attribute wstring guestIP;

    readonly attribute long guestPort;

}; /* interface INATRedirectEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_INATRedirectEvent_GETTER_Slot_TO(smth) NS_IMETHOD GetSlot (PRUint32 * aSlot) { return smth GetSlot (aSlot); }
#define COM_FORWARD_INATRedirectEvent_GETTER_Slot_TO_OBJ(obj) COM_FORWARD_INATRedirectEvent_GETTER_Slot_TO ((obj)->)
#define COM_FORWARD_INATRedirectEvent_GETTER_Slot_TO_BASE(base) COM_FORWARD_INATRedirectEvent_GETTER_Slot_TO (base::)
#define COM_FORWARD_INATRedirectEvent_GETTER_Remove_TO(smth) NS_IMETHOD GetRemove (PRBool * aRemove) { return smth GetRemove (aRemove); }
#define COM_FORWARD_INATRedirectEvent_GETTER_Remove_TO_OBJ(obj) COM_FORWARD_INATRedirectEvent_GETTER_Remove_TO ((obj)->)
#define COM_FORWARD_INATRedirectEvent_GETTER_Remove_TO_BASE(base) COM_FORWARD_INATRedirectEvent_GETTER_Remove_TO (base::)
#define COM_FORWARD_INATRedirectEvent_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_INATRedirectEvent_GETTER_Name_TO_OBJ(obj) COM_FORWARD_INATRedirectEvent_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_INATRedirectEvent_GETTER_Name_TO_BASE(base) COM_FORWARD_INATRedirectEvent_GETTER_Name_TO (base::)
#define COM_FORWARD_INATRedirectEvent_GETTER_Proto_TO(smth) NS_IMETHOD GetProto (PRUint32 * aProto) { return smth GetProto (aProto); }
#define COM_FORWARD_INATRedirectEvent_GETTER_Proto_TO_OBJ(obj) COM_FORWARD_INATRedirectEvent_GETTER_Proto_TO ((obj)->)
#define COM_FORWARD_INATRedirectEvent_GETTER_Proto_TO_BASE(base) COM_FORWARD_INATRedirectEvent_GETTER_Proto_TO (base::)
#define COM_FORWARD_INATRedirectEvent_GETTER_HostIP_TO(smth) NS_IMETHOD GetHostIP (PRUnichar * * aHostIP) { return smth GetHostIP (aHostIP); }
#define COM_FORWARD_INATRedirectEvent_GETTER_HostIP_TO_OBJ(obj) COM_FORWARD_INATRedirectEvent_GETTER_HostIP_TO ((obj)->)
#define COM_FORWARD_INATRedirectEvent_GETTER_HostIP_TO_BASE(base) COM_FORWARD_INATRedirectEvent_GETTER_HostIP_TO (base::)
#define COM_FORWARD_INATRedirectEvent_GETTER_HostPort_TO(smth) NS_IMETHOD GetHostPort (PRInt32 * aHostPort) { return smth GetHostPort (aHostPort); }
#define COM_FORWARD_INATRedirectEvent_GETTER_HostPort_TO_OBJ(obj) COM_FORWARD_INATRedirectEvent_GETTER_HostPort_TO ((obj)->)
#define COM_FORWARD_INATRedirectEvent_GETTER_HostPort_TO_BASE(base) COM_FORWARD_INATRedirectEvent_GETTER_HostPort_TO (base::)
#define COM_FORWARD_INATRedirectEvent_GETTER_GuestIP_TO(smth) NS_IMETHOD GetGuestIP (PRUnichar * * aGuestIP) { return smth GetGuestIP (aGuestIP); }
#define COM_FORWARD_INATRedirectEvent_GETTER_GuestIP_TO_OBJ(obj) COM_FORWARD_INATRedirectEvent_GETTER_GuestIP_TO ((obj)->)
#define COM_FORWARD_INATRedirectEvent_GETTER_GuestIP_TO_BASE(base) COM_FORWARD_INATRedirectEvent_GETTER_GuestIP_TO (base::)
#define COM_FORWARD_INATRedirectEvent_GETTER_GuestPort_TO(smth) NS_IMETHOD GetGuestPort (PRInt32 * aGuestPort) { return smth GetGuestPort (aGuestPort); }
#define COM_FORWARD_INATRedirectEvent_GETTER_GuestPort_TO_OBJ(obj) COM_FORWARD_INATRedirectEvent_GETTER_GuestPort_TO ((obj)->)
#define COM_FORWARD_INATRedirectEvent_GETTER_GuestPort_TO_BASE(base) COM_FORWARD_INATRedirectEvent_GETTER_GuestPort_TO (base::)
#define COM_FORWARD_INATRedirectEvent_TO(smth) NS_FORWARD_INATREDIRECTEVENT (smth)
#define COM_FORWARD_INATRedirectEvent_TO_OBJ(obj) COM_FORWARD_INATRedirectEvent_TO ((obj)->)
#define COM_FORWARD_INATRedirectEvent_TO_BASE(base) COM_FORWARD_INATRedirectEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_INATRedirectEvent;
%}

[
    uuid(a0bad6df-d612-47d3-89d4-db3992533948),
    scriptable
]
interface IHostPCIDevicePlugEvent : IMachineEvent
{
    readonly attribute boolean plugged;

    readonly attribute boolean success;

    readonly attribute IPCIDeviceAttachment attachment;

    readonly attribute wstring message;

}; /* interface IHostPCIDevicePlugEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IHostPCIDevicePlugEvent_GETTER_Plugged_TO(smth) NS_IMETHOD GetPlugged (PRBool * aPlugged) { return smth GetPlugged (aPlugged); }
#define COM_FORWARD_IHostPCIDevicePlugEvent_GETTER_Plugged_TO_OBJ(obj) COM_FORWARD_IHostPCIDevicePlugEvent_GETTER_Plugged_TO ((obj)->)
#define COM_FORWARD_IHostPCIDevicePlugEvent_GETTER_Plugged_TO_BASE(base) COM_FORWARD_IHostPCIDevicePlugEvent_GETTER_Plugged_TO (base::)
#define COM_FORWARD_IHostPCIDevicePlugEvent_GETTER_Success_TO(smth) NS_IMETHOD GetSuccess (PRBool * aSuccess) { return smth GetSuccess (aSuccess); }
#define COM_FORWARD_IHostPCIDevicePlugEvent_GETTER_Success_TO_OBJ(obj) COM_FORWARD_IHostPCIDevicePlugEvent_GETTER_Success_TO ((obj)->)
#define COM_FORWARD_IHostPCIDevicePlugEvent_GETTER_Success_TO_BASE(base) COM_FORWARD_IHostPCIDevicePlugEvent_GETTER_Success_TO (base::)
#define COM_FORWARD_IHostPCIDevicePlugEvent_GETTER_Attachment_TO(smth) NS_IMETHOD GetAttachment (IPCIDeviceAttachment * * aAttachment) { return smth GetAttachment (aAttachment); }
#define COM_FORWARD_IHostPCIDevicePlugEvent_GETTER_Attachment_TO_OBJ(obj) COM_FORWARD_IHostPCIDevicePlugEvent_GETTER_Attachment_TO ((obj)->)
#define COM_FORWARD_IHostPCIDevicePlugEvent_GETTER_Attachment_TO_BASE(base) COM_FORWARD_IHostPCIDevicePlugEvent_GETTER_Attachment_TO (base::)
#define COM_FORWARD_IHostPCIDevicePlugEvent_GETTER_Message_TO(smth) NS_IMETHOD GetMessage (PRUnichar * * aMessage) { return smth GetMessage (aMessage); }
#define COM_FORWARD_IHostPCIDevicePlugEvent_GETTER_Message_TO_OBJ(obj) COM_FORWARD_IHostPCIDevicePlugEvent_GETTER_Message_TO ((obj)->)
#define COM_FORWARD_IHostPCIDevicePlugEvent_GETTER_Message_TO_BASE(base) COM_FORWARD_IHostPCIDevicePlugEvent_GETTER_Message_TO (base::)
#define COM_FORWARD_IHostPCIDevicePlugEvent_TO(smth) NS_FORWARD_IHOSTPCIDEVICEPLUGEVENT (smth)
#define COM_FORWARD_IHostPCIDevicePlugEvent_TO_OBJ(obj) COM_FORWARD_IHostPCIDevicePlugEvent_TO ((obj)->)
#define COM_FORWARD_IHostPCIDevicePlugEvent_TO_BASE(base) COM_FORWARD_IHostPCIDevicePlugEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IHostPCIDevicePlugEvent;
%}

[
    uuid(97c78fcd-d4fc-485f-8613-5af88bfcfcdc),
    scriptable
]
interface IVBoxSVCAvailabilityChangedEvent : IEvent
{
    readonly attribute boolean available;

}; /* interface IVBoxSVCAvailabilityChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IVBoxSVCAvailabilityChangedEvent_GETTER_Available_TO(smth) NS_IMETHOD GetAvailable (PRBool * aAvailable) { return smth GetAvailable (aAvailable); }
#define COM_FORWARD_IVBoxSVCAvailabilityChangedEvent_GETTER_Available_TO_OBJ(obj) COM_FORWARD_IVBoxSVCAvailabilityChangedEvent_GETTER_Available_TO ((obj)->)
#define COM_FORWARD_IVBoxSVCAvailabilityChangedEvent_GETTER_Available_TO_BASE(base) COM_FORWARD_IVBoxSVCAvailabilityChangedEvent_GETTER_Available_TO (base::)
#define COM_FORWARD_IVBoxSVCAvailabilityChangedEvent_TO(smth) NS_FORWARD_IVBOXSVCAVAILABILITYCHANGEDEVENT (smth)
#define COM_FORWARD_IVBoxSVCAvailabilityChangedEvent_TO_OBJ(obj) COM_FORWARD_IVBoxSVCAvailabilityChangedEvent_TO ((obj)->)
#define COM_FORWARD_IVBoxSVCAvailabilityChangedEvent_TO_BASE(base) COM_FORWARD_IVBoxSVCAvailabilityChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IVBoxSVCAvailabilityChangedEvent;
%}

[
    uuid(334df94a-7556-4cbc-8c04-043096b02d82),
    scriptable
]
interface IBandwidthGroupChangedEvent : IEvent
{
    readonly attribute IBandwidthGroup bandwidthGroup;

}; /* interface IBandwidthGroupChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IBandwidthGroupChangedEvent_GETTER_BandwidthGroup_TO(smth) NS_IMETHOD GetBandwidthGroup (IBandwidthGroup * * aBandwidthGroup) { return smth GetBandwidthGroup (aBandwidthGroup); }
#define COM_FORWARD_IBandwidthGroupChangedEvent_GETTER_BandwidthGroup_TO_OBJ(obj) COM_FORWARD_IBandwidthGroupChangedEvent_GETTER_BandwidthGroup_TO ((obj)->)
#define COM_FORWARD_IBandwidthGroupChangedEvent_GETTER_BandwidthGroup_TO_BASE(base) COM_FORWARD_IBandwidthGroupChangedEvent_GETTER_BandwidthGroup_TO (base::)
#define COM_FORWARD_IBandwidthGroupChangedEvent_TO(smth) NS_FORWARD_IBANDWIDTHGROUPCHANGEDEVENT (smth)
#define COM_FORWARD_IBandwidthGroupChangedEvent_TO_OBJ(obj) COM_FORWARD_IBandwidthGroupChangedEvent_TO ((obj)->)
#define COM_FORWARD_IBandwidthGroupChangedEvent_TO_BASE(base) COM_FORWARD_IBandwidthGroupChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IBandwidthGroupChangedEvent;
%}

[
    uuid(0f7b8a22-c71f-4a36-8e5f-a77d01d76090),
    scriptable
]
interface IGuestMonitorChangedEvent : IEvent
{
    readonly attribute GuestMonitorChangedEventType_T changeType;

    readonly attribute unsigned long screenId;

    readonly attribute unsigned long originX;

    readonly attribute unsigned long originY;

    readonly attribute unsigned long width;

    readonly attribute unsigned long height;

}; /* interface IGuestMonitorChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IGuestMonitorChangedEvent_GETTER_ChangeType_TO(smth) NS_IMETHOD GetChangeType (PRUint32 * aChangeType) { return smth GetChangeType (aChangeType); }
#define COM_FORWARD_IGuestMonitorChangedEvent_GETTER_ChangeType_TO_OBJ(obj) COM_FORWARD_IGuestMonitorChangedEvent_GETTER_ChangeType_TO ((obj)->)
#define COM_FORWARD_IGuestMonitorChangedEvent_GETTER_ChangeType_TO_BASE(base) COM_FORWARD_IGuestMonitorChangedEvent_GETTER_ChangeType_TO (base::)
#define COM_FORWARD_IGuestMonitorChangedEvent_GETTER_ScreenId_TO(smth) NS_IMETHOD GetScreenId (PRUint32 * aScreenId) { return smth GetScreenId (aScreenId); }
#define COM_FORWARD_IGuestMonitorChangedEvent_GETTER_ScreenId_TO_OBJ(obj) COM_FORWARD_IGuestMonitorChangedEvent_GETTER_ScreenId_TO ((obj)->)
#define COM_FORWARD_IGuestMonitorChangedEvent_GETTER_ScreenId_TO_BASE(base) COM_FORWARD_IGuestMonitorChangedEvent_GETTER_ScreenId_TO (base::)
#define COM_FORWARD_IGuestMonitorChangedEvent_GETTER_OriginX_TO(smth) NS_IMETHOD GetOriginX (PRUint32 * aOriginX) { return smth GetOriginX (aOriginX); }
#define COM_FORWARD_IGuestMonitorChangedEvent_GETTER_OriginX_TO_OBJ(obj) COM_FORWARD_IGuestMonitorChangedEvent_GETTER_OriginX_TO ((obj)->)
#define COM_FORWARD_IGuestMonitorChangedEvent_GETTER_OriginX_TO_BASE(base) COM_FORWARD_IGuestMonitorChangedEvent_GETTER_OriginX_TO (base::)
#define COM_FORWARD_IGuestMonitorChangedEvent_GETTER_OriginY_TO(smth) NS_IMETHOD GetOriginY (PRUint32 * aOriginY) { return smth GetOriginY (aOriginY); }
#define COM_FORWARD_IGuestMonitorChangedEvent_GETTER_OriginY_TO_OBJ(obj) COM_FORWARD_IGuestMonitorChangedEvent_GETTER_OriginY_TO ((obj)->)
#define COM_FORWARD_IGuestMonitorChangedEvent_GETTER_OriginY_TO_BASE(base) COM_FORWARD_IGuestMonitorChangedEvent_GETTER_OriginY_TO (base::)
#define COM_FORWARD_IGuestMonitorChangedEvent_GETTER_Width_TO(smth) NS_IMETHOD GetWidth (PRUint32 * aWidth) { return smth GetWidth (aWidth); }
#define COM_FORWARD_IGuestMonitorChangedEvent_GETTER_Width_TO_OBJ(obj) COM_FORWARD_IGuestMonitorChangedEvent_GETTER_Width_TO ((obj)->)
#define COM_FORWARD_IGuestMonitorChangedEvent_GETTER_Width_TO_BASE(base) COM_FORWARD_IGuestMonitorChangedEvent_GETTER_Width_TO (base::)
#define COM_FORWARD_IGuestMonitorChangedEvent_GETTER_Height_TO(smth) NS_IMETHOD GetHeight (PRUint32 * aHeight) { return smth GetHeight (aHeight); }
#define COM_FORWARD_IGuestMonitorChangedEvent_GETTER_Height_TO_OBJ(obj) COM_FORWARD_IGuestMonitorChangedEvent_GETTER_Height_TO ((obj)->)
#define COM_FORWARD_IGuestMonitorChangedEvent_GETTER_Height_TO_BASE(base) COM_FORWARD_IGuestMonitorChangedEvent_GETTER_Height_TO (base::)
#define COM_FORWARD_IGuestMonitorChangedEvent_TO(smth) NS_FORWARD_IGUESTMONITORCHANGEDEVENT (smth)
#define COM_FORWARD_IGuestMonitorChangedEvent_TO_OBJ(obj) COM_FORWARD_IGuestMonitorChangedEvent_TO ((obj)->)
#define COM_FORWARD_IGuestMonitorChangedEvent_TO_BASE(base) COM_FORWARD_IGuestMonitorChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestMonitorChangedEvent;
%}

[
    uuid(39b4e759-1ec0-4c0f-857f-fbe2a737a256),
    scriptable
]
interface IGuestUserStateChangedEvent : IEvent
{
    readonly attribute wstring name;

    readonly attribute wstring domain;

    readonly attribute GuestUserState_T state;

    readonly attribute wstring stateDetails;

}; /* interface IGuestUserStateChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IGuestUserStateChangedEvent_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_IGuestUserStateChangedEvent_GETTER_Name_TO_OBJ(obj) COM_FORWARD_IGuestUserStateChangedEvent_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_IGuestUserStateChangedEvent_GETTER_Name_TO_BASE(base) COM_FORWARD_IGuestUserStateChangedEvent_GETTER_Name_TO (base::)
#define COM_FORWARD_IGuestUserStateChangedEvent_GETTER_Domain_TO(smth) NS_IMETHOD GetDomain (PRUnichar * * aDomain) { return smth GetDomain (aDomain); }
#define COM_FORWARD_IGuestUserStateChangedEvent_GETTER_Domain_TO_OBJ(obj) COM_FORWARD_IGuestUserStateChangedEvent_GETTER_Domain_TO ((obj)->)
#define COM_FORWARD_IGuestUserStateChangedEvent_GETTER_Domain_TO_BASE(base) COM_FORWARD_IGuestUserStateChangedEvent_GETTER_Domain_TO (base::)
#define COM_FORWARD_IGuestUserStateChangedEvent_GETTER_State_TO(smth) NS_IMETHOD GetState (PRUint32 * aState) { return smth GetState (aState); }
#define COM_FORWARD_IGuestUserStateChangedEvent_GETTER_State_TO_OBJ(obj) COM_FORWARD_IGuestUserStateChangedEvent_GETTER_State_TO ((obj)->)
#define COM_FORWARD_IGuestUserStateChangedEvent_GETTER_State_TO_BASE(base) COM_FORWARD_IGuestUserStateChangedEvent_GETTER_State_TO (base::)
#define COM_FORWARD_IGuestUserStateChangedEvent_GETTER_StateDetails_TO(smth) NS_IMETHOD GetStateDetails (PRUnichar * * aStateDetails) { return smth GetStateDetails (aStateDetails); }
#define COM_FORWARD_IGuestUserStateChangedEvent_GETTER_StateDetails_TO_OBJ(obj) COM_FORWARD_IGuestUserStateChangedEvent_GETTER_StateDetails_TO ((obj)->)
#define COM_FORWARD_IGuestUserStateChangedEvent_GETTER_StateDetails_TO_BASE(base) COM_FORWARD_IGuestUserStateChangedEvent_GETTER_StateDetails_TO (base::)
#define COM_FORWARD_IGuestUserStateChangedEvent_TO(smth) NS_FORWARD_IGUESTUSERSTATECHANGEDEVENT (smth)
#define COM_FORWARD_IGuestUserStateChangedEvent_TO_OBJ(obj) COM_FORWARD_IGuestUserStateChangedEvent_TO ((obj)->)
#define COM_FORWARD_IGuestUserStateChangedEvent_TO_BASE(base) COM_FORWARD_IGuestUserStateChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestUserStateChangedEvent;
%}

[
    uuid(232e9151-ae84-4b8e-b0f3-5c20c35caac9),
    scriptable
]
interface IStorageDeviceChangedEvent : IEvent
{
    readonly attribute IMediumAttachment storageDevice;

    readonly attribute boolean removed;

    readonly attribute boolean silent;

}; /* interface IStorageDeviceChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IStorageDeviceChangedEvent_GETTER_StorageDevice_TO(smth) NS_IMETHOD GetStorageDevice (IMediumAttachment * * aStorageDevice) { return smth GetStorageDevice (aStorageDevice); }
#define COM_FORWARD_IStorageDeviceChangedEvent_GETTER_StorageDevice_TO_OBJ(obj) COM_FORWARD_IStorageDeviceChangedEvent_GETTER_StorageDevice_TO ((obj)->)
#define COM_FORWARD_IStorageDeviceChangedEvent_GETTER_StorageDevice_TO_BASE(base) COM_FORWARD_IStorageDeviceChangedEvent_GETTER_StorageDevice_TO (base::)
#define COM_FORWARD_IStorageDeviceChangedEvent_GETTER_Removed_TO(smth) NS_IMETHOD GetRemoved (PRBool * aRemoved) { return smth GetRemoved (aRemoved); }
#define COM_FORWARD_IStorageDeviceChangedEvent_GETTER_Removed_TO_OBJ(obj) COM_FORWARD_IStorageDeviceChangedEvent_GETTER_Removed_TO ((obj)->)
#define COM_FORWARD_IStorageDeviceChangedEvent_GETTER_Removed_TO_BASE(base) COM_FORWARD_IStorageDeviceChangedEvent_GETTER_Removed_TO (base::)
#define COM_FORWARD_IStorageDeviceChangedEvent_GETTER_Silent_TO(smth) NS_IMETHOD GetSilent (PRBool * aSilent) { return smth GetSilent (aSilent); }
#define COM_FORWARD_IStorageDeviceChangedEvent_GETTER_Silent_TO_OBJ(obj) COM_FORWARD_IStorageDeviceChangedEvent_GETTER_Silent_TO ((obj)->)
#define COM_FORWARD_IStorageDeviceChangedEvent_GETTER_Silent_TO_BASE(base) COM_FORWARD_IStorageDeviceChangedEvent_GETTER_Silent_TO (base::)
#define COM_FORWARD_IStorageDeviceChangedEvent_TO(smth) NS_FORWARD_ISTORAGEDEVICECHANGEDEVENT (smth)
#define COM_FORWARD_IStorageDeviceChangedEvent_TO_OBJ(obj) COM_FORWARD_IStorageDeviceChangedEvent_TO ((obj)->)
#define COM_FORWARD_IStorageDeviceChangedEvent_TO_BASE(base) COM_FORWARD_IStorageDeviceChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IStorageDeviceChangedEvent;
%}

[
    uuid(101ae042-1a29-4a19-92cf-02285773f3b5),
    scriptable
]
interface INATNetworkChangedEvent : IEvent
{
    readonly attribute wstring networkName;

}; /* interface INATNetworkChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_INATNetworkChangedEvent_GETTER_NetworkName_TO(smth) NS_IMETHOD GetNetworkName (PRUnichar * * aNetworkName) { return smth GetNetworkName (aNetworkName); }
#define COM_FORWARD_INATNetworkChangedEvent_GETTER_NetworkName_TO_OBJ(obj) COM_FORWARD_INATNetworkChangedEvent_GETTER_NetworkName_TO ((obj)->)
#define COM_FORWARD_INATNetworkChangedEvent_GETTER_NetworkName_TO_BASE(base) COM_FORWARD_INATNetworkChangedEvent_GETTER_NetworkName_TO (base::)
#define COM_FORWARD_INATNetworkChangedEvent_TO(smth) NS_FORWARD_INATNETWORKCHANGEDEVENT (smth)
#define COM_FORWARD_INATNetworkChangedEvent_TO_OBJ(obj) COM_FORWARD_INATNetworkChangedEvent_TO ((obj)->)
#define COM_FORWARD_INATNetworkChangedEvent_TO_BASE(base) COM_FORWARD_INATNetworkChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_INATNetworkChangedEvent;
%}

[
    uuid(269d8f6b-fa1e-4cee-91c7-6d8496bea3c1),
    scriptable
]
interface INATNetworkStartStopEvent : INATNetworkChangedEvent
{
    readonly attribute boolean startEvent;

}; /* interface INATNetworkStartStopEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_INATNetworkStartStopEvent_GETTER_StartEvent_TO(smth) NS_IMETHOD GetStartEvent (PRBool * aStartEvent) { return smth GetStartEvent (aStartEvent); }
#define COM_FORWARD_INATNetworkStartStopEvent_GETTER_StartEvent_TO_OBJ(obj) COM_FORWARD_INATNetworkStartStopEvent_GETTER_StartEvent_TO ((obj)->)
#define COM_FORWARD_INATNetworkStartStopEvent_GETTER_StartEvent_TO_BASE(base) COM_FORWARD_INATNetworkStartStopEvent_GETTER_StartEvent_TO (base::)
#define COM_FORWARD_INATNetworkStartStopEvent_TO(smth) NS_FORWARD_INATNETWORKSTARTSTOPEVENT (smth)
#define COM_FORWARD_INATNetworkStartStopEvent_TO_OBJ(obj) COM_FORWARD_INATNetworkStartStopEvent_TO ((obj)->)
#define COM_FORWARD_INATNetworkStartStopEvent_TO_BASE(base) COM_FORWARD_INATNetworkStartStopEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_INATNetworkStartStopEvent;
%}

[
    uuid(d947adf5-4022-dc80-5535-6fb116815604),
    scriptable
]
interface INATNetworkAlterEvent : INATNetworkChangedEvent
{
    readonly attribute boolean midlDoesNotLikeEmptyInterfaces;

}; /* interface INATNetworkAlterEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_INATNetworkAlterEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO(smth) NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces (PRBool * aMidlDoesNotLikeEmptyInterfaces) { return smth GetMidlDoesNotLikeEmptyInterfaces (aMidlDoesNotLikeEmptyInterfaces); }
#define COM_FORWARD_INATNetworkAlterEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_OBJ(obj) COM_FORWARD_INATNetworkAlterEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO ((obj)->)
#define COM_FORWARD_INATNetworkAlterEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_BASE(base) COM_FORWARD_INATNetworkAlterEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO (base::)
#define COM_FORWARD_INATNetworkAlterEvent_TO(smth) NS_FORWARD_INATNETWORKALTEREVENT (smth)
#define COM_FORWARD_INATNetworkAlterEvent_TO_OBJ(obj) COM_FORWARD_INATNetworkAlterEvent_TO ((obj)->)
#define COM_FORWARD_INATNetworkAlterEvent_TO_BASE(base) COM_FORWARD_INATNetworkAlterEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_INATNetworkAlterEvent;
%}

[
    uuid(8d984a7e-b855-40b8-ab0c-44d3515b4528),
    scriptable
]
interface INATNetworkCreationDeletionEvent : INATNetworkAlterEvent
{
    readonly attribute boolean creationEvent;

}; /* interface INATNetworkCreationDeletionEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_INATNetworkCreationDeletionEvent_GETTER_CreationEvent_TO(smth) NS_IMETHOD GetCreationEvent (PRBool * aCreationEvent) { return smth GetCreationEvent (aCreationEvent); }
#define COM_FORWARD_INATNetworkCreationDeletionEvent_GETTER_CreationEvent_TO_OBJ(obj) COM_FORWARD_INATNetworkCreationDeletionEvent_GETTER_CreationEvent_TO ((obj)->)
#define COM_FORWARD_INATNetworkCreationDeletionEvent_GETTER_CreationEvent_TO_BASE(base) COM_FORWARD_INATNetworkCreationDeletionEvent_GETTER_CreationEvent_TO (base::)
#define COM_FORWARD_INATNetworkCreationDeletionEvent_TO(smth) NS_FORWARD_INATNETWORKCREATIONDELETIONEVENT (smth)
#define COM_FORWARD_INATNetworkCreationDeletionEvent_TO_OBJ(obj) COM_FORWARD_INATNetworkCreationDeletionEvent_TO ((obj)->)
#define COM_FORWARD_INATNetworkCreationDeletionEvent_TO_BASE(base) COM_FORWARD_INATNetworkCreationDeletionEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_INATNetworkCreationDeletionEvent;
%}

[
    uuid(9db3a9e6-7f29-4aae-a627-5a282c83092c),
    scriptable
]
interface INATNetworkSettingEvent : INATNetworkAlterEvent
{
    readonly attribute boolean enabled;

    readonly attribute wstring network;

    readonly attribute wstring gateway;

    readonly attribute boolean advertiseDefaultIPv6RouteEnabled;

    readonly attribute boolean needDhcpServer;

}; /* interface INATNetworkSettingEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_INATNetworkSettingEvent_GETTER_Enabled_TO(smth) NS_IMETHOD GetEnabled (PRBool * aEnabled) { return smth GetEnabled (aEnabled); }
#define COM_FORWARD_INATNetworkSettingEvent_GETTER_Enabled_TO_OBJ(obj) COM_FORWARD_INATNetworkSettingEvent_GETTER_Enabled_TO ((obj)->)
#define COM_FORWARD_INATNetworkSettingEvent_GETTER_Enabled_TO_BASE(base) COM_FORWARD_INATNetworkSettingEvent_GETTER_Enabled_TO (base::)
#define COM_FORWARD_INATNetworkSettingEvent_GETTER_Network_TO(smth) NS_IMETHOD GetNetwork (PRUnichar * * aNetwork) { return smth GetNetwork (aNetwork); }
#define COM_FORWARD_INATNetworkSettingEvent_GETTER_Network_TO_OBJ(obj) COM_FORWARD_INATNetworkSettingEvent_GETTER_Network_TO ((obj)->)
#define COM_FORWARD_INATNetworkSettingEvent_GETTER_Network_TO_BASE(base) COM_FORWARD_INATNetworkSettingEvent_GETTER_Network_TO (base::)
#define COM_FORWARD_INATNetworkSettingEvent_GETTER_Gateway_TO(smth) NS_IMETHOD GetGateway (PRUnichar * * aGateway) { return smth GetGateway (aGateway); }
#define COM_FORWARD_INATNetworkSettingEvent_GETTER_Gateway_TO_OBJ(obj) COM_FORWARD_INATNetworkSettingEvent_GETTER_Gateway_TO ((obj)->)
#define COM_FORWARD_INATNetworkSettingEvent_GETTER_Gateway_TO_BASE(base) COM_FORWARD_INATNetworkSettingEvent_GETTER_Gateway_TO (base::)
#define COM_FORWARD_INATNetworkSettingEvent_GETTER_AdvertiseDefaultIPv6RouteEnabled_TO(smth) NS_IMETHOD GetAdvertiseDefaultIPv6RouteEnabled (PRBool * aAdvertiseDefaultIPv6RouteEnabled) { return smth GetAdvertiseDefaultIPv6RouteEnabled (aAdvertiseDefaultIPv6RouteEnabled); }
#define COM_FORWARD_INATNetworkSettingEvent_GETTER_AdvertiseDefaultIPv6RouteEnabled_TO_OBJ(obj) COM_FORWARD_INATNetworkSettingEvent_GETTER_AdvertiseDefaultIPv6RouteEnabled_TO ((obj)->)
#define COM_FORWARD_INATNetworkSettingEvent_GETTER_AdvertiseDefaultIPv6RouteEnabled_TO_BASE(base) COM_FORWARD_INATNetworkSettingEvent_GETTER_AdvertiseDefaultIPv6RouteEnabled_TO (base::)
#define COM_FORWARD_INATNetworkSettingEvent_GETTER_NeedDhcpServer_TO(smth) NS_IMETHOD GetNeedDhcpServer (PRBool * aNeedDhcpServer) { return smth GetNeedDhcpServer (aNeedDhcpServer); }
#define COM_FORWARD_INATNetworkSettingEvent_GETTER_NeedDhcpServer_TO_OBJ(obj) COM_FORWARD_INATNetworkSettingEvent_GETTER_NeedDhcpServer_TO ((obj)->)
#define COM_FORWARD_INATNetworkSettingEvent_GETTER_NeedDhcpServer_TO_BASE(base) COM_FORWARD_INATNetworkSettingEvent_GETTER_NeedDhcpServer_TO (base::)
#define COM_FORWARD_INATNetworkSettingEvent_TO(smth) NS_FORWARD_INATNETWORKSETTINGEVENT (smth)
#define COM_FORWARD_INATNetworkSettingEvent_TO_OBJ(obj) COM_FORWARD_INATNetworkSettingEvent_TO ((obj)->)
#define COM_FORWARD_INATNetworkSettingEvent_TO_BASE(base) COM_FORWARD_INATNetworkSettingEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_INATNetworkSettingEvent;
%}

[
    uuid(2514881b-23d0-430a-a7ff-7ed7f05534bc),
    scriptable
]
interface INATNetworkPortForwardEvent : INATNetworkAlterEvent
{
    readonly attribute boolean create;

    readonly attribute boolean ipv6;

    readonly attribute wstring name;

    readonly attribute NATProtocol_T proto;

    readonly attribute wstring hostIp;

    readonly attribute long hostPort;

    readonly attribute wstring guestIp;

    readonly attribute long guestPort;

}; /* interface INATNetworkPortForwardEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_INATNetworkPortForwardEvent_GETTER_Create_TO(smth) NS_IMETHOD GetCreate (PRBool * aCreate) { return smth GetCreate (aCreate); }
#define COM_FORWARD_INATNetworkPortForwardEvent_GETTER_Create_TO_OBJ(obj) COM_FORWARD_INATNetworkPortForwardEvent_GETTER_Create_TO ((obj)->)
#define COM_FORWARD_INATNetworkPortForwardEvent_GETTER_Create_TO_BASE(base) COM_FORWARD_INATNetworkPortForwardEvent_GETTER_Create_TO (base::)
#define COM_FORWARD_INATNetworkPortForwardEvent_GETTER_Ipv6_TO(smth) NS_IMETHOD GetIpv6 (PRBool * aIpv6) { return smth GetIpv6 (aIpv6); }
#define COM_FORWARD_INATNetworkPortForwardEvent_GETTER_Ipv6_TO_OBJ(obj) COM_FORWARD_INATNetworkPortForwardEvent_GETTER_Ipv6_TO ((obj)->)
#define COM_FORWARD_INATNetworkPortForwardEvent_GETTER_Ipv6_TO_BASE(base) COM_FORWARD_INATNetworkPortForwardEvent_GETTER_Ipv6_TO (base::)
#define COM_FORWARD_INATNetworkPortForwardEvent_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_INATNetworkPortForwardEvent_GETTER_Name_TO_OBJ(obj) COM_FORWARD_INATNetworkPortForwardEvent_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_INATNetworkPortForwardEvent_GETTER_Name_TO_BASE(base) COM_FORWARD_INATNetworkPortForwardEvent_GETTER_Name_TO (base::)
#define COM_FORWARD_INATNetworkPortForwardEvent_GETTER_Proto_TO(smth) NS_IMETHOD GetProto (PRUint32 * aProto) { return smth GetProto (aProto); }
#define COM_FORWARD_INATNetworkPortForwardEvent_GETTER_Proto_TO_OBJ(obj) COM_FORWARD_INATNetworkPortForwardEvent_GETTER_Proto_TO ((obj)->)
#define COM_FORWARD_INATNetworkPortForwardEvent_GETTER_Proto_TO_BASE(base) COM_FORWARD_INATNetworkPortForwardEvent_GETTER_Proto_TO (base::)
#define COM_FORWARD_INATNetworkPortForwardEvent_GETTER_HostIp_TO(smth) NS_IMETHOD GetHostIp (PRUnichar * * aHostIp) { return smth GetHostIp (aHostIp); }
#define COM_FORWARD_INATNetworkPortForwardEvent_GETTER_HostIp_TO_OBJ(obj) COM_FORWARD_INATNetworkPortForwardEvent_GETTER_HostIp_TO ((obj)->)
#define COM_FORWARD_INATNetworkPortForwardEvent_GETTER_HostIp_TO_BASE(base) COM_FORWARD_INATNetworkPortForwardEvent_GETTER_HostIp_TO (base::)
#define COM_FORWARD_INATNetworkPortForwardEvent_GETTER_HostPort_TO(smth) NS_IMETHOD GetHostPort (PRInt32 * aHostPort) { return smth GetHostPort (aHostPort); }
#define COM_FORWARD_INATNetworkPortForwardEvent_GETTER_HostPort_TO_OBJ(obj) COM_FORWARD_INATNetworkPortForwardEvent_GETTER_HostPort_TO ((obj)->)
#define COM_FORWARD_INATNetworkPortForwardEvent_GETTER_HostPort_TO_BASE(base) COM_FORWARD_INATNetworkPortForwardEvent_GETTER_HostPort_TO (base::)
#define COM_FORWARD_INATNetworkPortForwardEvent_GETTER_GuestIp_TO(smth) NS_IMETHOD GetGuestIp (PRUnichar * * aGuestIp) { return smth GetGuestIp (aGuestIp); }
#define COM_FORWARD_INATNetworkPortForwardEvent_GETTER_GuestIp_TO_OBJ(obj) COM_FORWARD_INATNetworkPortForwardEvent_GETTER_GuestIp_TO ((obj)->)
#define COM_FORWARD_INATNetworkPortForwardEvent_GETTER_GuestIp_TO_BASE(base) COM_FORWARD_INATNetworkPortForwardEvent_GETTER_GuestIp_TO (base::)
#define COM_FORWARD_INATNetworkPortForwardEvent_GETTER_GuestPort_TO(smth) NS_IMETHOD GetGuestPort (PRInt32 * aGuestPort) { return smth GetGuestPort (aGuestPort); }
#define COM_FORWARD_INATNetworkPortForwardEvent_GETTER_GuestPort_TO_OBJ(obj) COM_FORWARD_INATNetworkPortForwardEvent_GETTER_GuestPort_TO ((obj)->)
#define COM_FORWARD_INATNetworkPortForwardEvent_GETTER_GuestPort_TO_BASE(base) COM_FORWARD_INATNetworkPortForwardEvent_GETTER_GuestPort_TO (base::)
#define COM_FORWARD_INATNetworkPortForwardEvent_TO(smth) NS_FORWARD_INATNETWORKPORTFORWARDEVENT (smth)
#define COM_FORWARD_INATNetworkPortForwardEvent_TO_OBJ(obj) COM_FORWARD_INATNetworkPortForwardEvent_TO ((obj)->)
#define COM_FORWARD_INATNetworkPortForwardEvent_TO_BASE(base) COM_FORWARD_INATNetworkPortForwardEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_INATNetworkPortForwardEvent;
%}

[
    uuid(f9b9e1cf-cb63-47a1-84fb-02c4894b89a9),
    scriptable
]
interface IHostNameResolutionConfigurationChangeEvent : IEvent
{
    readonly attribute boolean midlDoesNotLikeEmptyInterfaces;

}; /* interface IHostNameResolutionConfigurationChangeEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IHostNameResolutionConfigurationChangeEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO(smth) NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces (PRBool * aMidlDoesNotLikeEmptyInterfaces) { return smth GetMidlDoesNotLikeEmptyInterfaces (aMidlDoesNotLikeEmptyInterfaces); }
#define COM_FORWARD_IHostNameResolutionConfigurationChangeEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_OBJ(obj) COM_FORWARD_IHostNameResolutionConfigurationChangeEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO ((obj)->)
#define COM_FORWARD_IHostNameResolutionConfigurationChangeEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_BASE(base) COM_FORWARD_IHostNameResolutionConfigurationChangeEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO (base::)
#define COM_FORWARD_IHostNameResolutionConfigurationChangeEvent_TO(smth) NS_FORWARD_IHOSTNAMERESOLUTIONCONFIGURATIONCHANGEEVENT (smth)
#define COM_FORWARD_IHostNameResolutionConfigurationChangeEvent_TO_OBJ(obj) COM_FORWARD_IHostNameResolutionConfigurationChangeEvent_TO ((obj)->)
#define COM_FORWARD_IHostNameResolutionConfigurationChangeEvent_TO_BASE(base) COM_FORWARD_IHostNameResolutionConfigurationChangeEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IHostNameResolutionConfigurationChangeEvent;
%}

[
    uuid(daaf9016-1f04-4191-aa2f-1fac9646ae4c),
    scriptable
]
interface IProgressEvent : IEvent
{
    readonly attribute wstring progressId;

}; /* interface IProgressEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IProgressEvent_GETTER_ProgressId_TO(smth) NS_IMETHOD GetProgressId (PRUnichar * * aProgressId) { return smth GetProgressId (aProgressId); }
#define COM_FORWARD_IProgressEvent_GETTER_ProgressId_TO_OBJ(obj) COM_FORWARD_IProgressEvent_GETTER_ProgressId_TO ((obj)->)
#define COM_FORWARD_IProgressEvent_GETTER_ProgressId_TO_BASE(base) COM_FORWARD_IProgressEvent_GETTER_ProgressId_TO (base::)
#define COM_FORWARD_IProgressEvent_TO(smth) NS_FORWARD_IPROGRESSEVENT (smth)
#define COM_FORWARD_IProgressEvent_TO_OBJ(obj) COM_FORWARD_IProgressEvent_TO ((obj)->)
#define COM_FORWARD_IProgressEvent_TO_BASE(base) COM_FORWARD_IProgressEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IProgressEvent;
%}

[
    uuid(f05d7e60-1bcf-4218-9807-04e036cc70f1),
    scriptable
]
interface IProgressPercentageChangedEvent : IProgressEvent
{
    readonly attribute long percent;

}; /* interface IProgressPercentageChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IProgressPercentageChangedEvent_GETTER_Percent_TO(smth) NS_IMETHOD GetPercent (PRInt32 * aPercent) { return smth GetPercent (aPercent); }
#define COM_FORWARD_IProgressPercentageChangedEvent_GETTER_Percent_TO_OBJ(obj) COM_FORWARD_IProgressPercentageChangedEvent_GETTER_Percent_TO ((obj)->)
#define COM_FORWARD_IProgressPercentageChangedEvent_GETTER_Percent_TO_BASE(base) COM_FORWARD_IProgressPercentageChangedEvent_GETTER_Percent_TO (base::)
#define COM_FORWARD_IProgressPercentageChangedEvent_TO(smth) NS_FORWARD_IPROGRESSPERCENTAGECHANGEDEVENT (smth)
#define COM_FORWARD_IProgressPercentageChangedEvent_TO_OBJ(obj) COM_FORWARD_IProgressPercentageChangedEvent_TO ((obj)->)
#define COM_FORWARD_IProgressPercentageChangedEvent_TO_BASE(base) COM_FORWARD_IProgressPercentageChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IProgressPercentageChangedEvent;
%}

[
    uuid(a5bbdb7d-8ce7-469f-a4c2-6476f581ff72),
    scriptable
]
interface IProgressTaskCompletedEvent : IProgressEvent
{
    readonly attribute boolean midlDoesNotLikeEmptyInterfaces;

}; /* interface IProgressTaskCompletedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IProgressTaskCompletedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO(smth) NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces (PRBool * aMidlDoesNotLikeEmptyInterfaces) { return smth GetMidlDoesNotLikeEmptyInterfaces (aMidlDoesNotLikeEmptyInterfaces); }
#define COM_FORWARD_IProgressTaskCompletedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_OBJ(obj) COM_FORWARD_IProgressTaskCompletedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO ((obj)->)
#define COM_FORWARD_IProgressTaskCompletedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_BASE(base) COM_FORWARD_IProgressTaskCompletedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO (base::)
#define COM_FORWARD_IProgressTaskCompletedEvent_TO(smth) NS_FORWARD_IPROGRESSTASKCOMPLETEDEVENT (smth)
#define COM_FORWARD_IProgressTaskCompletedEvent_TO_OBJ(obj) COM_FORWARD_IProgressTaskCompletedEvent_TO ((obj)->)
#define COM_FORWARD_IProgressTaskCompletedEvent_TO_BASE(base) COM_FORWARD_IProgressTaskCompletedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IProgressTaskCompletedEvent;
%}

[
    uuid(6f302674-c927-11e7-b788-33c248e71fc7),
    scriptable
]
interface ICursorPositionChangedEvent : IEvent
{
    readonly attribute boolean hasData;

    readonly attribute unsigned long x;

    readonly attribute unsigned long y;

}; /* interface ICursorPositionChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_ICursorPositionChangedEvent_GETTER_HasData_TO(smth) NS_IMETHOD GetHasData (PRBool * aHasData) { return smth GetHasData (aHasData); }
#define COM_FORWARD_ICursorPositionChangedEvent_GETTER_HasData_TO_OBJ(obj) COM_FORWARD_ICursorPositionChangedEvent_GETTER_HasData_TO ((obj)->)
#define COM_FORWARD_ICursorPositionChangedEvent_GETTER_HasData_TO_BASE(base) COM_FORWARD_ICursorPositionChangedEvent_GETTER_HasData_TO (base::)
#define COM_FORWARD_ICursorPositionChangedEvent_GETTER_X_TO(smth) NS_IMETHOD GetX (PRUint32 * aX) { return smth GetX (aX); }
#define COM_FORWARD_ICursorPositionChangedEvent_GETTER_X_TO_OBJ(obj) COM_FORWARD_ICursorPositionChangedEvent_GETTER_X_TO ((obj)->)
#define COM_FORWARD_ICursorPositionChangedEvent_GETTER_X_TO_BASE(base) COM_FORWARD_ICursorPositionChangedEvent_GETTER_X_TO (base::)
#define COM_FORWARD_ICursorPositionChangedEvent_GETTER_Y_TO(smth) NS_IMETHOD GetY (PRUint32 * aY) { return smth GetY (aY); }
#define COM_FORWARD_ICursorPositionChangedEvent_GETTER_Y_TO_OBJ(obj) COM_FORWARD_ICursorPositionChangedEvent_GETTER_Y_TO ((obj)->)
#define COM_FORWARD_ICursorPositionChangedEvent_GETTER_Y_TO_BASE(base) COM_FORWARD_ICursorPositionChangedEvent_GETTER_Y_TO (base::)
#define COM_FORWARD_ICursorPositionChangedEvent_TO(smth) NS_FORWARD_ICURSORPOSITIONCHANGEDEVENT (smth)
#define COM_FORWARD_ICursorPositionChangedEvent_TO_OBJ(obj) COM_FORWARD_ICursorPositionChangedEvent_TO ((obj)->)
#define COM_FORWARD_ICursorPositionChangedEvent_TO_BASE(base) COM_FORWARD_ICursorPositionChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ICursorPositionChangedEvent;
%}

[
    uuid(a443da5b-aa82-4720-bc84-bd097b2b13b8),
    scriptable
]
interface IGuestAdditionsStatusChangedEvent : IEvent
{
    readonly attribute AdditionsFacilityType_T facility;

    readonly attribute AdditionsFacilityStatus_T status;

    readonly attribute AdditionsRunLevelType_T runLevel;

    readonly attribute long long timestamp;

}; /* interface IGuestAdditionsStatusChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_Facility_TO(smth) NS_IMETHOD GetFacility (PRUint32 * aFacility) { return smth GetFacility (aFacility); }
#define COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_Facility_TO_OBJ(obj) COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_Facility_TO ((obj)->)
#define COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_Facility_TO_BASE(base) COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_Facility_TO (base::)
#define COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_Status_TO(smth) NS_IMETHOD GetStatus (PRUint32 * aStatus) { return smth GetStatus (aStatus); }
#define COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_Status_TO_OBJ(obj) COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_Status_TO ((obj)->)
#define COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_Status_TO_BASE(base) COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_Status_TO (base::)
#define COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_RunLevel_TO(smth) NS_IMETHOD GetRunLevel (PRUint32 * aRunLevel) { return smth GetRunLevel (aRunLevel); }
#define COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_RunLevel_TO_OBJ(obj) COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_RunLevel_TO ((obj)->)
#define COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_RunLevel_TO_BASE(base) COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_RunLevel_TO (base::)
#define COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_Timestamp_TO(smth) NS_IMETHOD GetTimestamp (PRInt64 * aTimestamp) { return smth GetTimestamp (aTimestamp); }
#define COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_Timestamp_TO_OBJ(obj) COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_Timestamp_TO ((obj)->)
#define COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_Timestamp_TO_BASE(base) COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_Timestamp_TO (base::)
#define COM_FORWARD_IGuestAdditionsStatusChangedEvent_TO(smth) NS_FORWARD_IGUESTADDITIONSSTATUSCHANGEDEVENT (smth)
#define COM_FORWARD_IGuestAdditionsStatusChangedEvent_TO_OBJ(obj) COM_FORWARD_IGuestAdditionsStatusChangedEvent_TO ((obj)->)
#define COM_FORWARD_IGuestAdditionsStatusChangedEvent_TO_BASE(base) COM_FORWARD_IGuestAdditionsStatusChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestAdditionsStatusChangedEvent;
%}

[
    uuid(0b3cdeb2-808e-11e9-b773-133d9330f849),
    scriptable
]
interface IGuestMonitorInfoChangedEvent : IEvent
{
    readonly attribute unsigned long output;

}; /* interface IGuestMonitorInfoChangedEvent */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IGuestMonitorInfoChangedEvent_GETTER_Output_TO(smth) NS_IMETHOD GetOutput (PRUint32 * aOutput) { return smth GetOutput (aOutput); }
#define COM_FORWARD_IGuestMonitorInfoChangedEvent_GETTER_Output_TO_OBJ(obj) COM_FORWARD_IGuestMonitorInfoChangedEvent_GETTER_Output_TO ((obj)->)
#define COM_FORWARD_IGuestMonitorInfoChangedEvent_GETTER_Output_TO_BASE(base) COM_FORWARD_IGuestMonitorInfoChangedEvent_GETTER_Output_TO (base::)
#define COM_FORWARD_IGuestMonitorInfoChangedEvent_TO(smth) NS_FORWARD_IGUESTMONITORINFOCHANGEDEVENT (smth)
#define COM_FORWARD_IGuestMonitorInfoChangedEvent_TO_OBJ(obj) COM_FORWARD_IGuestMonitorInfoChangedEvent_TO ((obj)->)
#define COM_FORWARD_IGuestMonitorInfoChangedEvent_TO_BASE(base) COM_FORWARD_IGuestMonitorInfoChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestMonitorInfoChangedEvent;
%}

[
    uuid(3890b2c8-604d-11e9-92d3-53cb473db9fb),
    scriptable
]
interface IStringArray : nsISupports
{
    void getValues (
        out unsigned long valuesSize,
        [array, size_is(valuesSize), retval] out wstring values
    );

    void InternalAndReservedMethod1IStringArray();

    void InternalAndReservedMethod2IStringArray();

    void InternalAndReservedMethod3IStringArray();

    void InternalAndReservedMethod4IStringArray();

}; /* interface IStringArray */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IStringArray_GETTER_Values_TO(smth) NS_IMETHOD GetValues (PRUint32 * aValuesSize, PRUnichar * * * aValues) { return smth GetValues (aValuesSize, aValues); }
#define COM_FORWARD_IStringArray_GETTER_Values_TO_OBJ(obj) COM_FORWARD_IStringArray_GETTER_Values_TO ((obj)->)
#define COM_FORWARD_IStringArray_GETTER_Values_TO_BASE(base) COM_FORWARD_IStringArray_GETTER_Values_TO (base::)
#define COM_FORWARD_IStringArray_TO(smth) NS_FORWARD_ISTRINGARRAY (smth)
#define COM_FORWARD_IStringArray_TO_OBJ(obj) COM_FORWARD_IStringArray_TO ((obj)->)
#define COM_FORWARD_IStringArray_TO_BASE(base) COM_FORWARD_IStringArray_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IStringArray;
%}

[
    uuid(67c50afe-3e78-11e9-b25e-7768f80c0e07),
    scriptable
]
interface IFormValue : nsISupports
{
    readonly attribute FormValueType_T type;

    readonly attribute long generation;

    readonly attribute boolean enabled;

    readonly attribute boolean visible;

    readonly attribute wstring label;

    readonly attribute wstring description;

    readonly attribute wstring help;

    readonly attribute unsigned long InternalAndReservedAttribute1IFormValue;

    readonly attribute unsigned long InternalAndReservedAttribute2IFormValue;

    readonly attribute unsigned long InternalAndReservedAttribute3IFormValue;

    readonly attribute unsigned long InternalAndReservedAttribute4IFormValue;

    readonly attribute unsigned long InternalAndReservedAttribute5IFormValue;

    readonly attribute unsigned long InternalAndReservedAttribute6IFormValue;

    readonly attribute unsigned long InternalAndReservedAttribute7IFormValue;

    readonly attribute unsigned long InternalAndReservedAttribute8IFormValue;

    void InternalAndReservedMethod1IFormValue();

    void InternalAndReservedMethod2IFormValue();

    void InternalAndReservedMethod3IFormValue();

    void InternalAndReservedMethod4IFormValue();

}; /* interface IFormValue */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IFormValue_GETTER_Type_TO(smth) NS_IMETHOD GetType (PRUint32 * aType) { return smth GetType (aType); }
#define COM_FORWARD_IFormValue_GETTER_Type_TO_OBJ(obj) COM_FORWARD_IFormValue_GETTER_Type_TO ((obj)->)
#define COM_FORWARD_IFormValue_GETTER_Type_TO_BASE(base) COM_FORWARD_IFormValue_GETTER_Type_TO (base::)
#define COM_FORWARD_IFormValue_GETTER_Generation_TO(smth) NS_IMETHOD GetGeneration (PRInt32 * aGeneration) { return smth GetGeneration (aGeneration); }
#define COM_FORWARD_IFormValue_GETTER_Generation_TO_OBJ(obj) COM_FORWARD_IFormValue_GETTER_Generation_TO ((obj)->)
#define COM_FORWARD_IFormValue_GETTER_Generation_TO_BASE(base) COM_FORWARD_IFormValue_GETTER_Generation_TO (base::)
#define COM_FORWARD_IFormValue_GETTER_Enabled_TO(smth) NS_IMETHOD GetEnabled (PRBool * aEnabled) { return smth GetEnabled (aEnabled); }
#define COM_FORWARD_IFormValue_GETTER_Enabled_TO_OBJ(obj) COM_FORWARD_IFormValue_GETTER_Enabled_TO ((obj)->)
#define COM_FORWARD_IFormValue_GETTER_Enabled_TO_BASE(base) COM_FORWARD_IFormValue_GETTER_Enabled_TO (base::)
#define COM_FORWARD_IFormValue_GETTER_Visible_TO(smth) NS_IMETHOD GetVisible (PRBool * aVisible) { return smth GetVisible (aVisible); }
#define COM_FORWARD_IFormValue_GETTER_Visible_TO_OBJ(obj) COM_FORWARD_IFormValue_GETTER_Visible_TO ((obj)->)
#define COM_FORWARD_IFormValue_GETTER_Visible_TO_BASE(base) COM_FORWARD_IFormValue_GETTER_Visible_TO (base::)
#define COM_FORWARD_IFormValue_GETTER_Label_TO(smth) NS_IMETHOD GetLabel (PRUnichar * * aLabel) { return smth GetLabel (aLabel); }
#define COM_FORWARD_IFormValue_GETTER_Label_TO_OBJ(obj) COM_FORWARD_IFormValue_GETTER_Label_TO ((obj)->)
#define COM_FORWARD_IFormValue_GETTER_Label_TO_BASE(base) COM_FORWARD_IFormValue_GETTER_Label_TO (base::)
#define COM_FORWARD_IFormValue_GETTER_Description_TO(smth) NS_IMETHOD GetDescription (PRUnichar * * aDescription) { return smth GetDescription (aDescription); }
#define COM_FORWARD_IFormValue_GETTER_Description_TO_OBJ(obj) COM_FORWARD_IFormValue_GETTER_Description_TO ((obj)->)
#define COM_FORWARD_IFormValue_GETTER_Description_TO_BASE(base) COM_FORWARD_IFormValue_GETTER_Description_TO (base::)
#define COM_FORWARD_IFormValue_GETTER_Help_TO(smth) NS_IMETHOD GetHelp (PRUnichar * * aHelp) { return smth GetHelp (aHelp); }
#define COM_FORWARD_IFormValue_GETTER_Help_TO_OBJ(obj) COM_FORWARD_IFormValue_GETTER_Help_TO ((obj)->)
#define COM_FORWARD_IFormValue_GETTER_Help_TO_BASE(base) COM_FORWARD_IFormValue_GETTER_Help_TO (base::)
#define COM_FORWARD_IFormValue_TO(smth) NS_FORWARD_IFORMVALUE (smth)
#define COM_FORWARD_IFormValue_TO_OBJ(obj) COM_FORWARD_IFormValue_TO ((obj)->)
#define COM_FORWARD_IFormValue_TO_BASE(base) COM_FORWARD_IFormValue_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IFormValue;
%}

[
    uuid(4f4adcf6-3e87-11e9-8af2-576e84223953),
    scriptable
]
interface IBooleanFormValue : IFormValue
{
    readonly attribute unsigned long InternalAndReservedAttribute1IBooleanFormValue;

    readonly attribute unsigned long InternalAndReservedAttribute2IBooleanFormValue;

    readonly attribute unsigned long InternalAndReservedAttribute3IBooleanFormValue;

    readonly attribute unsigned long InternalAndReservedAttribute4IBooleanFormValue;

    void getSelected (
        [retval] out boolean selected
    );

    void setSelected (
        in boolean selected,
        [retval] out IProgress progress
    );

    void InternalAndReservedMethod1IBooleanFormValue();

    void InternalAndReservedMethod2IBooleanFormValue();

    void InternalAndReservedMethod3IBooleanFormValue();

    void InternalAndReservedMethod4IBooleanFormValue();

}; /* interface IBooleanFormValue */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IBooleanFormValue_GetSelected_TO(smth) NS_IMETHOD GetSelected (PRBool * aSelected) { return smth GetSelected (aSelected); }
#define COM_FORWARD_IBooleanFormValue_GetSelected_TO_OBJ(obj) COM_FORWARD_IBooleanFormValue_GetSelected_TO ((obj)->)
#define COM_FORWARD_IBooleanFormValue_GetSelected_TO_BASE(base) COM_FORWARD_IBooleanFormValue_GetSelected_TO (base::)
#define COM_FORWARD_IBooleanFormValue_SetSelected_TO(smth) NS_IMETHOD SetSelected (PRBool aSelected, IProgress * * aProgress) { return smth SetSelected (aSelected, aProgress); }
#define COM_FORWARD_IBooleanFormValue_SetSelected_TO_OBJ(obj) COM_FORWARD_IBooleanFormValue_SetSelected_TO ((obj)->)
#define COM_FORWARD_IBooleanFormValue_SetSelected_TO_BASE(base) COM_FORWARD_IBooleanFormValue_SetSelected_TO (base::)
#define COM_FORWARD_IBooleanFormValue_TO(smth) NS_FORWARD_IBOOLEANFORMVALUE (smth)
#define COM_FORWARD_IBooleanFormValue_TO_OBJ(obj) COM_FORWARD_IBooleanFormValue_TO ((obj)->)
#define COM_FORWARD_IBooleanFormValue_TO_BASE(base) COM_FORWARD_IBooleanFormValue_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IBooleanFormValue;
%}

[
    uuid(b31c4052-7bdc-11e9-8bc2-8ffdb8b19219),
    scriptable
]
interface IRangedIntegerFormValue : IFormValue
{
    readonly attribute wstring suffix;

    readonly attribute long minimum;

    readonly attribute long maximum;

    readonly attribute unsigned long InternalAndReservedAttribute1IRangedIntegerFormValue;

    readonly attribute unsigned long InternalAndReservedAttribute2IRangedIntegerFormValue;

    readonly attribute unsigned long InternalAndReservedAttribute3IRangedIntegerFormValue;

    readonly attribute unsigned long InternalAndReservedAttribute4IRangedIntegerFormValue;

    void getInteger (
        [retval] out long value
    );

    void setInteger (
        in long value,
        [retval] out IProgress progress
    );

    void InternalAndReservedMethod1IRangedIntegerFormValue();

    void InternalAndReservedMethod2IRangedIntegerFormValue();

    void InternalAndReservedMethod3IRangedIntegerFormValue();

    void InternalAndReservedMethod4IRangedIntegerFormValue();

}; /* interface IRangedIntegerFormValue */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IRangedIntegerFormValue_GETTER_Suffix_TO(smth) NS_IMETHOD GetSuffix (PRUnichar * * aSuffix) { return smth GetSuffix (aSuffix); }
#define COM_FORWARD_IRangedIntegerFormValue_GETTER_Suffix_TO_OBJ(obj) COM_FORWARD_IRangedIntegerFormValue_GETTER_Suffix_TO ((obj)->)
#define COM_FORWARD_IRangedIntegerFormValue_GETTER_Suffix_TO_BASE(base) COM_FORWARD_IRangedIntegerFormValue_GETTER_Suffix_TO (base::)
#define COM_FORWARD_IRangedIntegerFormValue_GETTER_Minimum_TO(smth) NS_IMETHOD GetMinimum (PRInt32 * aMinimum) { return smth GetMinimum (aMinimum); }
#define COM_FORWARD_IRangedIntegerFormValue_GETTER_Minimum_TO_OBJ(obj) COM_FORWARD_IRangedIntegerFormValue_GETTER_Minimum_TO ((obj)->)
#define COM_FORWARD_IRangedIntegerFormValue_GETTER_Minimum_TO_BASE(base) COM_FORWARD_IRangedIntegerFormValue_GETTER_Minimum_TO (base::)
#define COM_FORWARD_IRangedIntegerFormValue_GETTER_Maximum_TO(smth) NS_IMETHOD GetMaximum (PRInt32 * aMaximum) { return smth GetMaximum (aMaximum); }
#define COM_FORWARD_IRangedIntegerFormValue_GETTER_Maximum_TO_OBJ(obj) COM_FORWARD_IRangedIntegerFormValue_GETTER_Maximum_TO ((obj)->)
#define COM_FORWARD_IRangedIntegerFormValue_GETTER_Maximum_TO_BASE(base) COM_FORWARD_IRangedIntegerFormValue_GETTER_Maximum_TO (base::)
#define COM_FORWARD_IRangedIntegerFormValue_GetInteger_TO(smth) NS_IMETHOD GetInteger (PRInt32 * aValue) { return smth GetInteger (aValue); }
#define COM_FORWARD_IRangedIntegerFormValue_GetInteger_TO_OBJ(obj) COM_FORWARD_IRangedIntegerFormValue_GetInteger_TO ((obj)->)
#define COM_FORWARD_IRangedIntegerFormValue_GetInteger_TO_BASE(base) COM_FORWARD_IRangedIntegerFormValue_GetInteger_TO (base::)
#define COM_FORWARD_IRangedIntegerFormValue_SetInteger_TO(smth) NS_IMETHOD SetInteger (PRInt32 aValue, IProgress * * aProgress) { return smth SetInteger (aValue, aProgress); }
#define COM_FORWARD_IRangedIntegerFormValue_SetInteger_TO_OBJ(obj) COM_FORWARD_IRangedIntegerFormValue_SetInteger_TO ((obj)->)
#define COM_FORWARD_IRangedIntegerFormValue_SetInteger_TO_BASE(base) COM_FORWARD_IRangedIntegerFormValue_SetInteger_TO (base::)
#define COM_FORWARD_IRangedIntegerFormValue_TO(smth) NS_FORWARD_IRANGEDINTEGERFORMVALUE (smth)
#define COM_FORWARD_IRangedIntegerFormValue_TO_OBJ(obj) COM_FORWARD_IRangedIntegerFormValue_TO ((obj)->)
#define COM_FORWARD_IRangedIntegerFormValue_TO_BASE(base) COM_FORWARD_IRangedIntegerFormValue_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IRangedIntegerFormValue;
%}

[
    uuid(cb6f0f2c-8384-11e9-921d-8b984e28a686),
    scriptable
]
interface IStringFormValue : IFormValue
{
    readonly attribute boolean multiline;

    readonly attribute unsigned long InternalAndReservedAttribute1IStringFormValue;

    readonly attribute unsigned long InternalAndReservedAttribute2IStringFormValue;

    readonly attribute unsigned long InternalAndReservedAttribute3IStringFormValue;

    readonly attribute unsigned long InternalAndReservedAttribute4IStringFormValue;

    void getString (
        [retval] out wstring text
    );

    void setString (
        in wstring text,
        [retval] out IProgress progress
    );

    void InternalAndReservedMethod1IStringFormValue();

    void InternalAndReservedMethod2IStringFormValue();

    void InternalAndReservedMethod3IStringFormValue();

    void InternalAndReservedMethod4IStringFormValue();

}; /* interface IStringFormValue */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IStringFormValue_GETTER_Multiline_TO(smth) NS_IMETHOD GetMultiline (PRBool * aMultiline) { return smth GetMultiline (aMultiline); }
#define COM_FORWARD_IStringFormValue_GETTER_Multiline_TO_OBJ(obj) COM_FORWARD_IStringFormValue_GETTER_Multiline_TO ((obj)->)
#define COM_FORWARD_IStringFormValue_GETTER_Multiline_TO_BASE(base) COM_FORWARD_IStringFormValue_GETTER_Multiline_TO (base::)
#define COM_FORWARD_IStringFormValue_GetString_TO(smth) NS_IMETHOD GetString (PRUnichar * * aText) { return smth GetString (aText); }
#define COM_FORWARD_IStringFormValue_GetString_TO_OBJ(obj) COM_FORWARD_IStringFormValue_GetString_TO ((obj)->)
#define COM_FORWARD_IStringFormValue_GetString_TO_BASE(base) COM_FORWARD_IStringFormValue_GetString_TO (base::)
#define COM_FORWARD_IStringFormValue_SetString_TO(smth) NS_IMETHOD SetString (PRUnichar * aText, IProgress * * aProgress) { return smth SetString (aText, aProgress); }
#define COM_FORWARD_IStringFormValue_SetString_TO_OBJ(obj) COM_FORWARD_IStringFormValue_SetString_TO ((obj)->)
#define COM_FORWARD_IStringFormValue_SetString_TO_BASE(base) COM_FORWARD_IStringFormValue_SetString_TO (base::)
#define COM_FORWARD_IStringFormValue_TO(smth) NS_FORWARD_ISTRINGFORMVALUE (smth)
#define COM_FORWARD_IStringFormValue_TO_OBJ(obj) COM_FORWARD_IStringFormValue_TO ((obj)->)
#define COM_FORWARD_IStringFormValue_TO_BASE(base) COM_FORWARD_IStringFormValue_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IStringFormValue;
%}

[
    uuid(7191cf38-3e8a-11e9-825c-ab7b2cabce23),
    scriptable
]
interface IChoiceFormValue : IFormValue
{
    void getValues (
        out unsigned long valuesSize,
        [array, size_is(valuesSize), retval] out wstring values
    );

    readonly attribute unsigned long InternalAndReservedAttribute1IChoiceFormValue;

    readonly attribute unsigned long InternalAndReservedAttribute2IChoiceFormValue;

    readonly attribute unsigned long InternalAndReservedAttribute3IChoiceFormValue;

    readonly attribute unsigned long InternalAndReservedAttribute4IChoiceFormValue;

    void getSelectedIndex (
        [retval] out long index
    );

    void setSelectedIndex (
        in long index,
        [retval] out IProgress progress
    );

    void InternalAndReservedMethod1IChoiceFormValue();

    void InternalAndReservedMethod2IChoiceFormValue();

    void InternalAndReservedMethod3IChoiceFormValue();

    void InternalAndReservedMethod4IChoiceFormValue();

}; /* interface IChoiceFormValue */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IChoiceFormValue_GETTER_Values_TO(smth) NS_IMETHOD GetValues (PRUint32 * aValuesSize, PRUnichar * * * aValues) { return smth GetValues (aValuesSize, aValues); }
#define COM_FORWARD_IChoiceFormValue_GETTER_Values_TO_OBJ(obj) COM_FORWARD_IChoiceFormValue_GETTER_Values_TO ((obj)->)
#define COM_FORWARD_IChoiceFormValue_GETTER_Values_TO_BASE(base) COM_FORWARD_IChoiceFormValue_GETTER_Values_TO (base::)
#define COM_FORWARD_IChoiceFormValue_GetSelectedIndex_TO(smth) NS_IMETHOD GetSelectedIndex (PRInt32 * aIndex) { return smth GetSelectedIndex (aIndex); }
#define COM_FORWARD_IChoiceFormValue_GetSelectedIndex_TO_OBJ(obj) COM_FORWARD_IChoiceFormValue_GetSelectedIndex_TO ((obj)->)
#define COM_FORWARD_IChoiceFormValue_GetSelectedIndex_TO_BASE(base) COM_FORWARD_IChoiceFormValue_GetSelectedIndex_TO (base::)
#define COM_FORWARD_IChoiceFormValue_SetSelectedIndex_TO(smth) NS_IMETHOD SetSelectedIndex (PRInt32 aIndex, IProgress * * aProgress) { return smth SetSelectedIndex (aIndex, aProgress); }
#define COM_FORWARD_IChoiceFormValue_SetSelectedIndex_TO_OBJ(obj) COM_FORWARD_IChoiceFormValue_SetSelectedIndex_TO ((obj)->)
#define COM_FORWARD_IChoiceFormValue_SetSelectedIndex_TO_BASE(base) COM_FORWARD_IChoiceFormValue_SetSelectedIndex_TO (base::)
#define COM_FORWARD_IChoiceFormValue_TO(smth) NS_FORWARD_ICHOICEFORMVALUE (smth)
#define COM_FORWARD_IChoiceFormValue_TO_OBJ(obj) COM_FORWARD_IChoiceFormValue_TO ((obj)->)
#define COM_FORWARD_IChoiceFormValue_TO_BASE(base) COM_FORWARD_IChoiceFormValue_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IChoiceFormValue;
%}

[
    uuid(d05c91e2-3e8a-11e9-8082-db8ae479ef87),
    scriptable
]
interface IForm : nsISupports
{
    void getValues (
        out unsigned long valuesSize,
        [array, size_is(valuesSize), retval] out IFormValue values
    );

    readonly attribute unsigned long InternalAndReservedAttribute1IForm;

    readonly attribute unsigned long InternalAndReservedAttribute2IForm;

    readonly attribute unsigned long InternalAndReservedAttribute3IForm;

    readonly attribute unsigned long InternalAndReservedAttribute4IForm;

    void InternalAndReservedMethod1IForm();

    void InternalAndReservedMethod2IForm();

    void InternalAndReservedMethod3IForm();

    void InternalAndReservedMethod4IForm();

}; /* interface IForm */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IForm_GETTER_Values_TO(smth) NS_IMETHOD GetValues (PRUint32 * aValuesSize, IFormValue * * * aValues) { return smth GetValues (aValuesSize, aValues); }
#define COM_FORWARD_IForm_GETTER_Values_TO_OBJ(obj) COM_FORWARD_IForm_GETTER_Values_TO ((obj)->)
#define COM_FORWARD_IForm_GETTER_Values_TO_BASE(base) COM_FORWARD_IForm_GETTER_Values_TO (base::)
#define COM_FORWARD_IForm_TO(smth) NS_FORWARD_IFORM (smth)
#define COM_FORWARD_IForm_TO_OBJ(obj) COM_FORWARD_IForm_TO ((obj)->)
#define COM_FORWARD_IForm_TO_BASE(base) COM_FORWARD_IForm_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IForm;
%}

[
    uuid(14c2db8a-3ee4-11e9-b872-cb9447aad965),
    scriptable
]
interface IVirtualSystemDescriptionForm : IForm
{
    readonly attribute unsigned long InternalAndReservedAttribute1IVirtualSystemDescriptionForm;

    readonly attribute unsigned long InternalAndReservedAttribute2IVirtualSystemDescriptionForm;

    readonly attribute unsigned long InternalAndReservedAttribute3IVirtualSystemDescriptionForm;

    readonly attribute unsigned long InternalAndReservedAttribute4IVirtualSystemDescriptionForm;

    void getVirtualSystemDescription (
        [retval] out IVirtualSystemDescription description
    );

    void InternalAndReservedMethod1IVirtualSystemDescriptionForm();

    void InternalAndReservedMethod2IVirtualSystemDescriptionForm();

    void InternalAndReservedMethod3IVirtualSystemDescriptionForm();

    void InternalAndReservedMethod4IVirtualSystemDescriptionForm();

}; /* interface IVirtualSystemDescriptionForm */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_IVirtualSystemDescriptionForm_GetVirtualSystemDescription_TO(smth) NS_IMETHOD GetVirtualSystemDescription (IVirtualSystemDescription * * aDescription) { return smth GetVirtualSystemDescription (aDescription); }
#define COM_FORWARD_IVirtualSystemDescriptionForm_GetVirtualSystemDescription_TO_OBJ(obj) COM_FORWARD_IVirtualSystemDescriptionForm_GetVirtualSystemDescription_TO ((obj)->)
#define COM_FORWARD_IVirtualSystemDescriptionForm_GetVirtualSystemDescription_TO_BASE(base) COM_FORWARD_IVirtualSystemDescriptionForm_GetVirtualSystemDescription_TO (base::)
#define COM_FORWARD_IVirtualSystemDescriptionForm_TO(smth) NS_FORWARD_IVIRTUALSYSTEMDESCRIPTIONFORM (smth)
#define COM_FORWARD_IVirtualSystemDescriptionForm_TO_OBJ(obj) COM_FORWARD_IVirtualSystemDescriptionForm_TO ((obj)->)
#define COM_FORWARD_IVirtualSystemDescriptionForm_TO_BASE(base) COM_FORWARD_IVirtualSystemDescriptionForm_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IVirtualSystemDescriptionForm;
%}

[
    uuid(89a63ace-0c65-11ea-ad23-0ff257c71a7f),
    scriptable
]
interface ICloudNetworkGatewayInfo : nsISupports
{
    readonly attribute wstring publicIP;

    readonly attribute unsigned long InternalAndReservedAttribute1ICloudNetworkGatewayInfo;

    readonly attribute unsigned long InternalAndReservedAttribute2ICloudNetworkGatewayInfo;

    readonly attribute unsigned long InternalAndReservedAttribute3ICloudNetworkGatewayInfo;

    readonly attribute unsigned long InternalAndReservedAttribute4ICloudNetworkGatewayInfo;

    readonly attribute unsigned long InternalAndReservedAttribute5ICloudNetworkGatewayInfo;

    readonly attribute unsigned long InternalAndReservedAttribute6ICloudNetworkGatewayInfo;

    readonly attribute unsigned long InternalAndReservedAttribute7ICloudNetworkGatewayInfo;

    readonly attribute unsigned long InternalAndReservedAttribute8ICloudNetworkGatewayInfo;

}; /* interface ICloudNetworkGatewayInfo */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_ICloudNetworkGatewayInfo_GETTER_PublicIP_TO(smth) NS_IMETHOD GetPublicIP (PRUnichar * * aPublicIP) { return smth GetPublicIP (aPublicIP); }
#define COM_FORWARD_ICloudNetworkGatewayInfo_GETTER_PublicIP_TO_OBJ(obj) COM_FORWARD_ICloudNetworkGatewayInfo_GETTER_PublicIP_TO ((obj)->)
#define COM_FORWARD_ICloudNetworkGatewayInfo_GETTER_PublicIP_TO_BASE(base) COM_FORWARD_ICloudNetworkGatewayInfo_GETTER_PublicIP_TO (base::)
#define COM_FORWARD_ICloudNetworkGatewayInfo_TO(smth) NS_FORWARD_ICLOUDNETWORKGATEWAYINFO (smth)
#define COM_FORWARD_ICloudNetworkGatewayInfo_TO_OBJ(obj) COM_FORWARD_ICloudNetworkGatewayInfo_TO ((obj)->)
#define COM_FORWARD_ICloudNetworkGatewayInfo_TO_BASE(base) COM_FORWARD_ICloudNetworkGatewayInfo_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ICloudNetworkGatewayInfo;
%}

[
    uuid(435b66a2-0c60-11ea-a0ea-07eb0d1c4ead),
    scriptable
]
interface ICloudClient : nsISupports
{
    readonly attribute unsigned long InternalAndReservedAttribute1ICloudClient;

    readonly attribute unsigned long InternalAndReservedAttribute2ICloudClient;

    readonly attribute unsigned long InternalAndReservedAttribute3ICloudClient;

    readonly attribute unsigned long InternalAndReservedAttribute4ICloudClient;

    readonly attribute unsigned long InternalAndReservedAttribute5ICloudClient;

    readonly attribute unsigned long InternalAndReservedAttribute6ICloudClient;

    readonly attribute unsigned long InternalAndReservedAttribute7ICloudClient;

    readonly attribute unsigned long InternalAndReservedAttribute8ICloudClient;

    void getExportDescriptionForm (
        in IVirtualSystemDescription description,
        out IVirtualSystemDescriptionForm form,
        [retval] out IProgress progress
    );

    void exportVM (
        in IVirtualSystemDescription description,
        in IProgress progress
    );

    void getLaunchDescriptionForm (
        in IVirtualSystemDescription description,
        out IVirtualSystemDescriptionForm form,
        [retval] out IProgress progress
    );

    void launchVM (
        in IVirtualSystemDescription description,
        [retval] out IProgress progress
    );

    void getImportDescriptionForm (
        in IVirtualSystemDescription description,
        out IVirtualSystemDescriptionForm form,
        [retval] out IProgress progress
    );

    void importInstance (
        in IVirtualSystemDescription description,
        in IProgress progress
    );

    void listInstances (
        in unsigned long machineStateSize,
        [array, size_is(machineStateSize)] in CloudMachineState_T machineState,
        out IStringArray returnNames,
        out IStringArray returnIds,
        [retval] out IProgress progress
    );

    void listImages (
        in unsigned long imageStateSize,
        [array, size_is(imageStateSize)] in CloudImageState_T imageState,
        out IStringArray returnNames,
        out IStringArray returnIds,
        [retval] out IProgress progress
    );

    void getInstanceInfo (
        in wstring uid,
        in IVirtualSystemDescription description,
        [retval] out IProgress progress
    );

    void startInstance (
        in wstring uid,
        [retval] out IProgress progress
    );

    void pauseInstance (
        in wstring uid,
        [retval] out IProgress progress
    );

    void terminateInstance (
        in wstring uid,
        [retval] out IProgress progress
    );

    void createImage (
        in unsigned long parametersSize,
        [array, size_is(parametersSize)] in wstring parameters,
        [retval] out IProgress progress
    );

    void exportImage (
        in IMedium image,
        in unsigned long parametersSize,
        [array, size_is(parametersSize)] in wstring parameters,
        [retval] out IProgress progress
    );

    void importImage (
        in wstring uid,
        in unsigned long parametersSize,
        [array, size_is(parametersSize)] in wstring parameters,
        [retval] out IProgress progress
    );

    void deleteImage (
        in wstring uid,
        [retval] out IProgress progress
    );

    void getImageInfo (
        in wstring uid,
        out IStringArray infoArray,
        [retval] out IProgress progress
    );

    void startCloudNetworkGateway (
        in ICloudNetwork network,
        in wstring sshPublicKey,
        out ICloudNetworkGatewayInfo gatewayInfo,
        [retval] out IProgress progress
    );

    void InternalAndReservedMethod1ICloudClient();

    void InternalAndReservedMethod2ICloudClient();

    void InternalAndReservedMethod3ICloudClient();

    void InternalAndReservedMethod4ICloudClient();

    void InternalAndReservedMethod5ICloudClient();

    void InternalAndReservedMethod6ICloudClient();

    void InternalAndReservedMethod7ICloudClient();

    void InternalAndReservedMethod8ICloudClient();

    void InternalAndReservedMethod9ICloudClient();

    void InternalAndReservedMethod10ICloudClient();

    void InternalAndReservedMethod11ICloudClient();

    void InternalAndReservedMethod12ICloudClient();

    void InternalAndReservedMethod13ICloudClient();

    void InternalAndReservedMethod14ICloudClient();

    void InternalAndReservedMethod15ICloudClient();

    void InternalAndReservedMethod16ICloudClient();

}; /* interface ICloudClient */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_ICloudClient_GetExportDescriptionForm_TO(smth) NS_IMETHOD GetExportDescriptionForm (IVirtualSystemDescription * aDescription, IVirtualSystemDescriptionForm * * aForm, IProgress * * aProgress) { return smth GetExportDescriptionForm (aDescription, aForm, aProgress); }
#define COM_FORWARD_ICloudClient_GetExportDescriptionForm_TO_OBJ(obj) COM_FORWARD_ICloudClient_GetExportDescriptionForm_TO ((obj)->)
#define COM_FORWARD_ICloudClient_GetExportDescriptionForm_TO_BASE(base) COM_FORWARD_ICloudClient_GetExportDescriptionForm_TO (base::)
#define COM_FORWARD_ICloudClient_ExportVM_TO(smth) NS_IMETHOD ExportVM (IVirtualSystemDescription * aDescription, IProgress * aProgress) { return smth ExportVM (aDescription, aProgress); }
#define COM_FORWARD_ICloudClient_ExportVM_TO_OBJ(obj) COM_FORWARD_ICloudClient_ExportVM_TO ((obj)->)
#define COM_FORWARD_ICloudClient_ExportVM_TO_BASE(base) COM_FORWARD_ICloudClient_ExportVM_TO (base::)
#define COM_FORWARD_ICloudClient_GetLaunchDescriptionForm_TO(smth) NS_IMETHOD GetLaunchDescriptionForm (IVirtualSystemDescription * aDescription, IVirtualSystemDescriptionForm * * aForm, IProgress * * aProgress) { return smth GetLaunchDescriptionForm (aDescription, aForm, aProgress); }
#define COM_FORWARD_ICloudClient_GetLaunchDescriptionForm_TO_OBJ(obj) COM_FORWARD_ICloudClient_GetLaunchDescriptionForm_TO ((obj)->)
#define COM_FORWARD_ICloudClient_GetLaunchDescriptionForm_TO_BASE(base) COM_FORWARD_ICloudClient_GetLaunchDescriptionForm_TO (base::)
#define COM_FORWARD_ICloudClient_LaunchVM_TO(smth) NS_IMETHOD LaunchVM (IVirtualSystemDescription * aDescription, IProgress * * aProgress) { return smth LaunchVM (aDescription, aProgress); }
#define COM_FORWARD_ICloudClient_LaunchVM_TO_OBJ(obj) COM_FORWARD_ICloudClient_LaunchVM_TO ((obj)->)
#define COM_FORWARD_ICloudClient_LaunchVM_TO_BASE(base) COM_FORWARD_ICloudClient_LaunchVM_TO (base::)
#define COM_FORWARD_ICloudClient_GetImportDescriptionForm_TO(smth) NS_IMETHOD GetImportDescriptionForm (IVirtualSystemDescription * aDescription, IVirtualSystemDescriptionForm * * aForm, IProgress * * aProgress) { return smth GetImportDescriptionForm (aDescription, aForm, aProgress); }
#define COM_FORWARD_ICloudClient_GetImportDescriptionForm_TO_OBJ(obj) COM_FORWARD_ICloudClient_GetImportDescriptionForm_TO ((obj)->)
#define COM_FORWARD_ICloudClient_GetImportDescriptionForm_TO_BASE(base) COM_FORWARD_ICloudClient_GetImportDescriptionForm_TO (base::)
#define COM_FORWARD_ICloudClient_ImportInstance_TO(smth) NS_IMETHOD ImportInstance (IVirtualSystemDescription * aDescription, IProgress * aProgress) { return smth ImportInstance (aDescription, aProgress); }
#define COM_FORWARD_ICloudClient_ImportInstance_TO_OBJ(obj) COM_FORWARD_ICloudClient_ImportInstance_TO ((obj)->)
#define COM_FORWARD_ICloudClient_ImportInstance_TO_BASE(base) COM_FORWARD_ICloudClient_ImportInstance_TO (base::)
#define COM_FORWARD_ICloudClient_ListInstances_TO(smth) NS_IMETHOD ListInstances (PRUint32 aMachineStateSize, PRUint32 * aMachineState, IStringArray * * aReturnNames, IStringArray * * aReturnIds, IProgress * * aProgress) { return smth ListInstances (aMachineStateSize+++, aMachineState, aReturnNames, aReturnIds, aProgress); }
#define COM_FORWARD_ICloudClient_ListInstances_TO_OBJ(obj) COM_FORWARD_ICloudClient_ListInstances_TO ((obj)->)
#define COM_FORWARD_ICloudClient_ListInstances_TO_BASE(base) COM_FORWARD_ICloudClient_ListInstances_TO (base::)
#define COM_FORWARD_ICloudClient_ListImages_TO(smth) NS_IMETHOD ListImages (PRUint32 aImageStateSize, PRUint32 * aImageState, IStringArray * * aReturnNames, IStringArray * * aReturnIds, IProgress * * aProgress) { return smth ListImages (aImageStateSize+++, aImageState, aReturnNames, aReturnIds, aProgress); }
#define COM_FORWARD_ICloudClient_ListImages_TO_OBJ(obj) COM_FORWARD_ICloudClient_ListImages_TO ((obj)->)
#define COM_FORWARD_ICloudClient_ListImages_TO_BASE(base) COM_FORWARD_ICloudClient_ListImages_TO (base::)
#define COM_FORWARD_ICloudClient_GetInstanceInfo_TO(smth) NS_IMETHOD GetInstanceInfo (PRUnichar * aUid, IVirtualSystemDescription * aDescription, IProgress * * aProgress) { return smth GetInstanceInfo (aUid, aDescription, aProgress); }
#define COM_FORWARD_ICloudClient_GetInstanceInfo_TO_OBJ(obj) COM_FORWARD_ICloudClient_GetInstanceInfo_TO ((obj)->)
#define COM_FORWARD_ICloudClient_GetInstanceInfo_TO_BASE(base) COM_FORWARD_ICloudClient_GetInstanceInfo_TO (base::)
#define COM_FORWARD_ICloudClient_StartInstance_TO(smth) NS_IMETHOD StartInstance (PRUnichar * aUid, IProgress * * aProgress) { return smth StartInstance (aUid, aProgress); }
#define COM_FORWARD_ICloudClient_StartInstance_TO_OBJ(obj) COM_FORWARD_ICloudClient_StartInstance_TO ((obj)->)
#define COM_FORWARD_ICloudClient_StartInstance_TO_BASE(base) COM_FORWARD_ICloudClient_StartInstance_TO (base::)
#define COM_FORWARD_ICloudClient_PauseInstance_TO(smth) NS_IMETHOD PauseInstance (PRUnichar * aUid, IProgress * * aProgress) { return smth PauseInstance (aUid, aProgress); }
#define COM_FORWARD_ICloudClient_PauseInstance_TO_OBJ(obj) COM_FORWARD_ICloudClient_PauseInstance_TO ((obj)->)
#define COM_FORWARD_ICloudClient_PauseInstance_TO_BASE(base) COM_FORWARD_ICloudClient_PauseInstance_TO (base::)
#define COM_FORWARD_ICloudClient_TerminateInstance_TO(smth) NS_IMETHOD TerminateInstance (PRUnichar * aUid, IProgress * * aProgress) { return smth TerminateInstance (aUid, aProgress); }
#define COM_FORWARD_ICloudClient_TerminateInstance_TO_OBJ(obj) COM_FORWARD_ICloudClient_TerminateInstance_TO ((obj)->)
#define COM_FORWARD_ICloudClient_TerminateInstance_TO_BASE(base) COM_FORWARD_ICloudClient_TerminateInstance_TO (base::)
#define COM_FORWARD_ICloudClient_CreateImage_TO(smth) NS_IMETHOD CreateImage (PRUint32 aParametersSize, PRUnichar * * aParameters, IProgress * * aProgress) { return smth CreateImage (aParametersSize+++, aParameters, aProgress); }
#define COM_FORWARD_ICloudClient_CreateImage_TO_OBJ(obj) COM_FORWARD_ICloudClient_CreateImage_TO ((obj)->)
#define COM_FORWARD_ICloudClient_CreateImage_TO_BASE(base) COM_FORWARD_ICloudClient_CreateImage_TO (base::)
#define COM_FORWARD_ICloudClient_ExportImage_TO(smth) NS_IMETHOD ExportImage (IMedium * aImage, PRUint32 aParametersSize, PRUnichar * * aParameters, IProgress * * aProgress) { return smth ExportImage (aImage, aParametersSize+++, aParameters, aProgress); }
#define COM_FORWARD_ICloudClient_ExportImage_TO_OBJ(obj) COM_FORWARD_ICloudClient_ExportImage_TO ((obj)->)
#define COM_FORWARD_ICloudClient_ExportImage_TO_BASE(base) COM_FORWARD_ICloudClient_ExportImage_TO (base::)
#define COM_FORWARD_ICloudClient_ImportImage_TO(smth) NS_IMETHOD ImportImage (PRUnichar * aUid, PRUint32 aParametersSize, PRUnichar * * aParameters, IProgress * * aProgress) { return smth ImportImage (aUid, aParametersSize+++, aParameters, aProgress); }
#define COM_FORWARD_ICloudClient_ImportImage_TO_OBJ(obj) COM_FORWARD_ICloudClient_ImportImage_TO ((obj)->)
#define COM_FORWARD_ICloudClient_ImportImage_TO_BASE(base) COM_FORWARD_ICloudClient_ImportImage_TO (base::)
#define COM_FORWARD_ICloudClient_DeleteImage_TO(smth) NS_IMETHOD DeleteImage (PRUnichar * aUid, IProgress * * aProgress) { return smth DeleteImage (aUid, aProgress); }
#define COM_FORWARD_ICloudClient_DeleteImage_TO_OBJ(obj) COM_FORWARD_ICloudClient_DeleteImage_TO ((obj)->)
#define COM_FORWARD_ICloudClient_DeleteImage_TO_BASE(base) COM_FORWARD_ICloudClient_DeleteImage_TO (base::)
#define COM_FORWARD_ICloudClient_GetImageInfo_TO(smth) NS_IMETHOD GetImageInfo (PRUnichar * aUid, IStringArray * * aInfoArray, IProgress * * aProgress) { return smth GetImageInfo (aUid, aInfoArray, aProgress); }
#define COM_FORWARD_ICloudClient_GetImageInfo_TO_OBJ(obj) COM_FORWARD_ICloudClient_GetImageInfo_TO ((obj)->)
#define COM_FORWARD_ICloudClient_GetImageInfo_TO_BASE(base) COM_FORWARD_ICloudClient_GetImageInfo_TO (base::)
#define COM_FORWARD_ICloudClient_StartCloudNetworkGateway_TO(smth) NS_IMETHOD StartCloudNetworkGateway (ICloudNetwork * aNetwork, PRUnichar * aSshPublicKey, ICloudNetworkGatewayInfo * * aGatewayInfo, IProgress * * aProgress) { return smth StartCloudNetworkGateway (aNetwork, aSshPublicKey, aGatewayInfo, aProgress); }
#define COM_FORWARD_ICloudClient_StartCloudNetworkGateway_TO_OBJ(obj) COM_FORWARD_ICloudClient_StartCloudNetworkGateway_TO ((obj)->)
#define COM_FORWARD_ICloudClient_StartCloudNetworkGateway_TO_BASE(base) COM_FORWARD_ICloudClient_StartCloudNetworkGateway_TO (base::)
#define COM_FORWARD_ICloudClient_TO(smth) NS_FORWARD_ICLOUDCLIENT (smth)
#define COM_FORWARD_ICloudClient_TO_OBJ(obj) COM_FORWARD_ICloudClient_TO ((obj)->)
#define COM_FORWARD_ICloudClient_TO_BASE(base) COM_FORWARD_ICloudClient_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ICloudClient;
%}

[
    uuid(b1d978b8-f7b7-4b05-900e-2a9253c00f51),
    scriptable
]
interface ICloudProfile : nsISupports
{
    attribute wstring name;

    readonly attribute wstring providerId;

    readonly attribute unsigned long InternalAndReservedAttribute1ICloudProfile;

    readonly attribute unsigned long InternalAndReservedAttribute2ICloudProfile;

    readonly attribute unsigned long InternalAndReservedAttribute3ICloudProfile;

    readonly attribute unsigned long InternalAndReservedAttribute4ICloudProfile;

    readonly attribute unsigned long InternalAndReservedAttribute5ICloudProfile;

    readonly attribute unsigned long InternalAndReservedAttribute6ICloudProfile;

    readonly attribute unsigned long InternalAndReservedAttribute7ICloudProfile;

    readonly attribute unsigned long InternalAndReservedAttribute8ICloudProfile;

    void getProperty (
        in wstring name,
        [retval] out wstring value
    );

    void setProperty (
        in wstring name,
        in wstring value
    );

    void getProperties (
        in wstring names,
        out unsigned long returnNamesSize,
        [array, size_is(returnNamesSize)] out wstring returnNames,
        out unsigned long returnValuesSize,
        [array, size_is(returnValuesSize) , retval] out wstring returnValues
    );

    void setProperties (
        in unsigned long namesSize,
        [array, size_is(namesSize)] in wstring names,
        in unsigned long valuesSize,
        [array, size_is(valuesSize)] in wstring values
    );

    void remove();

    void createCloudClient (
        [retval] out ICloudClient cloudClient
    );

    void InternalAndReservedMethod1ICloudProfile();

    void InternalAndReservedMethod2ICloudProfile();

    void InternalAndReservedMethod3ICloudProfile();

    void InternalAndReservedMethod4ICloudProfile();

}; /* interface ICloudProfile */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_ICloudProfile_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_ICloudProfile_GETTER_Name_TO_OBJ(obj) COM_FORWARD_ICloudProfile_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_ICloudProfile_GETTER_Name_TO_BASE(base) COM_FORWARD_ICloudProfile_GETTER_Name_TO (base::)
#define COM_FORWARD_ICloudProfile_SETTER_Name_TO(smth) NS_IMETHOD SetName (const PRUnichar * aName) { return smth SetName (aName); }
#define COM_FORWARD_ICloudProfile_SETTER_Name_TO_OBJ(obj) COM_FORWARD_ICloudProfile_SETTER_Name_TO ((obj)->)
#define COM_FORWARD_ICloudProfile_SETTER_Name_TO_BASE(base) COM_FORWARD_ICloudProfile_SETTER_Name_TO (base::)
#define COM_FORWARD_ICloudProfile_GETTER_ProviderId_TO(smth) NS_IMETHOD GetProviderId (PRUnichar * * aProviderId) { return smth GetProviderId (aProviderId); }
#define COM_FORWARD_ICloudProfile_GETTER_ProviderId_TO_OBJ(obj) COM_FORWARD_ICloudProfile_GETTER_ProviderId_TO ((obj)->)
#define COM_FORWARD_ICloudProfile_GETTER_ProviderId_TO_BASE(base) COM_FORWARD_ICloudProfile_GETTER_ProviderId_TO (base::)
#define COM_FORWARD_ICloudProfile_GetProperty_TO(smth) NS_IMETHOD GetProperty (PRUnichar * aName, PRUnichar * * aValue) { return smth GetProperty (aName, aValue); }
#define COM_FORWARD_ICloudProfile_GetProperty_TO_OBJ(obj) COM_FORWARD_ICloudProfile_GetProperty_TO ((obj)->)
#define COM_FORWARD_ICloudProfile_GetProperty_TO_BASE(base) COM_FORWARD_ICloudProfile_GetProperty_TO (base::)
#define COM_FORWARD_ICloudProfile_SetProperty_TO(smth) NS_IMETHOD SetProperty (PRUnichar * aName, PRUnichar * aValue) { return smth SetProperty (aName, aValue); }
#define COM_FORWARD_ICloudProfile_SetProperty_TO_OBJ(obj) COM_FORWARD_ICloudProfile_SetProperty_TO ((obj)->)
#define COM_FORWARD_ICloudProfile_SetProperty_TO_BASE(base) COM_FORWARD_ICloudProfile_SetProperty_TO (base::)
#define COM_FORWARD_ICloudProfile_GetProperties_TO(smth) NS_IMETHOD GetProperties (PRUnichar * aNames, PRUint32 * aReturnNamesSize, PRUnichar * * * aReturnNames, PRUint32 * aReturnValuesSize, PRUnichar * * * aReturnValues) { return smth GetProperties (aNames, aReturnNamesSize+++, aReturnNames, aReturnValuesSize, aReturnValues); }
#define COM_FORWARD_ICloudProfile_GetProperties_TO_OBJ(obj) COM_FORWARD_ICloudProfile_GetProperties_TO ((obj)->)
#define COM_FORWARD_ICloudProfile_GetProperties_TO_BASE(base) COM_FORWARD_ICloudProfile_GetProperties_TO (base::)
#define COM_FORWARD_ICloudProfile_SetProperties_TO(smth) NS_IMETHOD SetProperties (PRUint32 aNamesSize, PRUnichar * * aNames, PRUint32 aValuesSize, PRUnichar * * aValues) { return smth SetProperties (aNamesSize+++, aNames, aValuesSize, aValues); }
#define COM_FORWARD_ICloudProfile_SetProperties_TO_OBJ(obj) COM_FORWARD_ICloudProfile_SetProperties_TO ((obj)->)
#define COM_FORWARD_ICloudProfile_SetProperties_TO_BASE(base) COM_FORWARD_ICloudProfile_SetProperties_TO (base::)
#define COM_FORWARD_ICloudProfile_Remove_TO(smth) NS_IMETHOD Remove() { return smth Remove(); }
#define COM_FORWARD_ICloudProfile_Remove_TO_OBJ(obj) COM_FORWARD_ICloudProfile_Remove_TO ((obj)->)
#define COM_FORWARD_ICloudProfile_Remove_TO_BASE(base) COM_FORWARD_ICloudProfile_Remove_TO (base::)
#define COM_FORWARD_ICloudProfile_CreateCloudClient_TO(smth) NS_IMETHOD CreateCloudClient (ICloudClient * * aCloudClient) { return smth CreateCloudClient (aCloudClient); }
#define COM_FORWARD_ICloudProfile_CreateCloudClient_TO_OBJ(obj) COM_FORWARD_ICloudProfile_CreateCloudClient_TO ((obj)->)
#define COM_FORWARD_ICloudProfile_CreateCloudClient_TO_BASE(base) COM_FORWARD_ICloudProfile_CreateCloudClient_TO (base::)
#define COM_FORWARD_ICloudProfile_TO(smth) NS_FORWARD_ICLOUDPROFILE (smth)
#define COM_FORWARD_ICloudProfile_TO_OBJ(obj) COM_FORWARD_ICloudProfile_TO ((obj)->)
#define COM_FORWARD_ICloudProfile_TO_BASE(base) COM_FORWARD_ICloudProfile_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ICloudProfile;
%}

[
    uuid(22363cfc-07da-41ec-ac4a-3dd99db35594),
    scriptable
]
interface ICloudProvider : nsISupports
{
    readonly attribute wstring name;

    readonly attribute wstring shortName;

    readonly attribute wstring id;

    void getProfiles (
        out unsigned long profilesSize,
        [array, size_is(profilesSize), retval] out ICloudProfile profiles
    );

    void getProfileNames (
        out unsigned long profileNamesSize,
        [array, size_is(profileNamesSize), retval] out wstring profileNames
    );

    void getSupportedPropertyNames (
        out unsigned long supportedPropertyNamesSize,
        [array, size_is(supportedPropertyNamesSize), retval] out wstring supportedPropertyNames
    );

    readonly attribute unsigned long InternalAndReservedAttribute1ICloudProvider;

    readonly attribute unsigned long InternalAndReservedAttribute2ICloudProvider;

    readonly attribute unsigned long InternalAndReservedAttribute3ICloudProvider;

    readonly attribute unsigned long InternalAndReservedAttribute4ICloudProvider;

    readonly attribute unsigned long InternalAndReservedAttribute5ICloudProvider;

    readonly attribute unsigned long InternalAndReservedAttribute6ICloudProvider;

    readonly attribute unsigned long InternalAndReservedAttribute7ICloudProvider;

    readonly attribute unsigned long InternalAndReservedAttribute8ICloudProvider;

    readonly attribute unsigned long InternalAndReservedAttribute9ICloudProvider;

    readonly attribute unsigned long InternalAndReservedAttribute10ICloudProvider;

    readonly attribute unsigned long InternalAndReservedAttribute11ICloudProvider;

    readonly attribute unsigned long InternalAndReservedAttribute12ICloudProvider;

    readonly attribute unsigned long InternalAndReservedAttribute13ICloudProvider;

    readonly attribute unsigned long InternalAndReservedAttribute14ICloudProvider;

    readonly attribute unsigned long InternalAndReservedAttribute15ICloudProvider;

    readonly attribute unsigned long InternalAndReservedAttribute16ICloudProvider;

    void getPropertyDescription (
        in wstring name,
        [retval] out wstring description
    );

    void createProfile (
        in wstring profileName,
        in unsigned long namesSize,
        [array, size_is(namesSize)] in wstring names,
        in unsigned long valuesSize,
        [array, size_is(valuesSize)] in wstring values
    );

    void importProfiles();

    void restoreProfiles();

    void saveProfiles();

    void getProfileByName (
        in wstring profileName,
        [retval] out ICloudProfile profile
    );

    void prepareUninstall();

    void InternalAndReservedMethod1ICloudProvider();

    void InternalAndReservedMethod2ICloudProvider();

    void InternalAndReservedMethod3ICloudProvider();

    void InternalAndReservedMethod4ICloudProvider();

    void InternalAndReservedMethod5ICloudProvider();

    void InternalAndReservedMethod6ICloudProvider();

    void InternalAndReservedMethod7ICloudProvider();

    void InternalAndReservedMethod8ICloudProvider();

}; /* interface ICloudProvider */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_ICloudProvider_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_ICloudProvider_GETTER_Name_TO_OBJ(obj) COM_FORWARD_ICloudProvider_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_ICloudProvider_GETTER_Name_TO_BASE(base) COM_FORWARD_ICloudProvider_GETTER_Name_TO (base::)
#define COM_FORWARD_ICloudProvider_GETTER_ShortName_TO(smth) NS_IMETHOD GetShortName (PRUnichar * * aShortName) { return smth GetShortName (aShortName); }
#define COM_FORWARD_ICloudProvider_GETTER_ShortName_TO_OBJ(obj) COM_FORWARD_ICloudProvider_GETTER_ShortName_TO ((obj)->)
#define COM_FORWARD_ICloudProvider_GETTER_ShortName_TO_BASE(base) COM_FORWARD_ICloudProvider_GETTER_ShortName_TO (base::)
#define COM_FORWARD_ICloudProvider_GETTER_Id_TO(smth) NS_IMETHOD GetId (PRUnichar * * aId) { return smth GetId (aId); }
#define COM_FORWARD_ICloudProvider_GETTER_Id_TO_OBJ(obj) COM_FORWARD_ICloudProvider_GETTER_Id_TO ((obj)->)
#define COM_FORWARD_ICloudProvider_GETTER_Id_TO_BASE(base) COM_FORWARD_ICloudProvider_GETTER_Id_TO (base::)
#define COM_FORWARD_ICloudProvider_GETTER_Profiles_TO(smth) NS_IMETHOD GetProfiles (PRUint32 * aProfilesSize, ICloudProfile * * * aProfiles) { return smth GetProfiles (aProfilesSize, aProfiles); }
#define COM_FORWARD_ICloudProvider_GETTER_Profiles_TO_OBJ(obj) COM_FORWARD_ICloudProvider_GETTER_Profiles_TO ((obj)->)
#define COM_FORWARD_ICloudProvider_GETTER_Profiles_TO_BASE(base) COM_FORWARD_ICloudProvider_GETTER_Profiles_TO (base::)
#define COM_FORWARD_ICloudProvider_GETTER_ProfileNames_TO(smth) NS_IMETHOD GetProfileNames (PRUint32 * aProfileNamesSize, PRUnichar * * * aProfileNames) { return smth GetProfileNames (aProfileNamesSize, aProfileNames); }
#define COM_FORWARD_ICloudProvider_GETTER_ProfileNames_TO_OBJ(obj) COM_FORWARD_ICloudProvider_GETTER_ProfileNames_TO ((obj)->)
#define COM_FORWARD_ICloudProvider_GETTER_ProfileNames_TO_BASE(base) COM_FORWARD_ICloudProvider_GETTER_ProfileNames_TO (base::)
#define COM_FORWARD_ICloudProvider_GETTER_SupportedPropertyNames_TO(smth) NS_IMETHOD GetSupportedPropertyNames (PRUint32 * aSupportedPropertyNamesSize, PRUnichar * * * aSupportedPropertyNames) { return smth GetSupportedPropertyNames (aSupportedPropertyNamesSize, aSupportedPropertyNames); }
#define COM_FORWARD_ICloudProvider_GETTER_SupportedPropertyNames_TO_OBJ(obj) COM_FORWARD_ICloudProvider_GETTER_SupportedPropertyNames_TO ((obj)->)
#define COM_FORWARD_ICloudProvider_GETTER_SupportedPropertyNames_TO_BASE(base) COM_FORWARD_ICloudProvider_GETTER_SupportedPropertyNames_TO (base::)
#define COM_FORWARD_ICloudProvider_GetPropertyDescription_TO(smth) NS_IMETHOD GetPropertyDescription (PRUnichar * aName, PRUnichar * * aDescription) { return smth GetPropertyDescription (aName, aDescription); }
#define COM_FORWARD_ICloudProvider_GetPropertyDescription_TO_OBJ(obj) COM_FORWARD_ICloudProvider_GetPropertyDescription_TO ((obj)->)
#define COM_FORWARD_ICloudProvider_GetPropertyDescription_TO_BASE(base) COM_FORWARD_ICloudProvider_GetPropertyDescription_TO (base::)
#define COM_FORWARD_ICloudProvider_CreateProfile_TO(smth) NS_IMETHOD CreateProfile (PRUnichar * aProfileName, PRUint32 aNamesSize, PRUnichar * * aNames, PRUint32 aValuesSize, PRUnichar * * aValues) { return smth CreateProfile (aProfileName, aNamesSize+++, aNames, aValuesSize, aValues); }
#define COM_FORWARD_ICloudProvider_CreateProfile_TO_OBJ(obj) COM_FORWARD_ICloudProvider_CreateProfile_TO ((obj)->)
#define COM_FORWARD_ICloudProvider_CreateProfile_TO_BASE(base) COM_FORWARD_ICloudProvider_CreateProfile_TO (base::)
#define COM_FORWARD_ICloudProvider_ImportProfiles_TO(smth) NS_IMETHOD ImportProfiles() { return smth ImportProfiles(); }
#define COM_FORWARD_ICloudProvider_ImportProfiles_TO_OBJ(obj) COM_FORWARD_ICloudProvider_ImportProfiles_TO ((obj)->)
#define COM_FORWARD_ICloudProvider_ImportProfiles_TO_BASE(base) COM_FORWARD_ICloudProvider_ImportProfiles_TO (base::)
#define COM_FORWARD_ICloudProvider_RestoreProfiles_TO(smth) NS_IMETHOD RestoreProfiles() { return smth RestoreProfiles(); }
#define COM_FORWARD_ICloudProvider_RestoreProfiles_TO_OBJ(obj) COM_FORWARD_ICloudProvider_RestoreProfiles_TO ((obj)->)
#define COM_FORWARD_ICloudProvider_RestoreProfiles_TO_BASE(base) COM_FORWARD_ICloudProvider_RestoreProfiles_TO (base::)
#define COM_FORWARD_ICloudProvider_SaveProfiles_TO(smth) NS_IMETHOD SaveProfiles() { return smth SaveProfiles(); }
#define COM_FORWARD_ICloudProvider_SaveProfiles_TO_OBJ(obj) COM_FORWARD_ICloudProvider_SaveProfiles_TO ((obj)->)
#define COM_FORWARD_ICloudProvider_SaveProfiles_TO_BASE(base) COM_FORWARD_ICloudProvider_SaveProfiles_TO (base::)
#define COM_FORWARD_ICloudProvider_GetProfileByName_TO(smth) NS_IMETHOD GetProfileByName (PRUnichar * aProfileName, ICloudProfile * * aProfile) { return smth GetProfileByName (aProfileName, aProfile); }
#define COM_FORWARD_ICloudProvider_GetProfileByName_TO_OBJ(obj) COM_FORWARD_ICloudProvider_GetProfileByName_TO ((obj)->)
#define COM_FORWARD_ICloudProvider_GetProfileByName_TO_BASE(base) COM_FORWARD_ICloudProvider_GetProfileByName_TO (base::)
#define COM_FORWARD_ICloudProvider_PrepareUninstall_TO(smth) NS_IMETHOD PrepareUninstall() { return smth PrepareUninstall(); }
#define COM_FORWARD_ICloudProvider_PrepareUninstall_TO_OBJ(obj) COM_FORWARD_ICloudProvider_PrepareUninstall_TO ((obj)->)
#define COM_FORWARD_ICloudProvider_PrepareUninstall_TO_BASE(base) COM_FORWARD_ICloudProvider_PrepareUninstall_TO (base::)
#define COM_FORWARD_ICloudProvider_TO(smth) NS_FORWARD_ICLOUDPROVIDER (smth)
#define COM_FORWARD_ICloudProvider_TO_OBJ(obj) COM_FORWARD_ICloudProvider_TO ((obj)->)
#define COM_FORWARD_ICloudProvider_TO_BASE(base) COM_FORWARD_ICloudProvider_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ICloudProvider;
%}

[
    uuid(9128800f-762e-4120-871c-a2014234a607),
    scriptable
]
interface ICloudProviderManager : nsISupports
{
    void getProviders (
        out unsigned long providersSize,
        [array, size_is(providersSize), retval] out ICloudProvider providers
    );

    readonly attribute unsigned long InternalAndReservedAttribute1ICloudProviderManager;

    readonly attribute unsigned long InternalAndReservedAttribute2ICloudProviderManager;

    readonly attribute unsigned long InternalAndReservedAttribute3ICloudProviderManager;

    readonly attribute unsigned long InternalAndReservedAttribute4ICloudProviderManager;

    readonly attribute unsigned long InternalAndReservedAttribute5ICloudProviderManager;

    readonly attribute unsigned long InternalAndReservedAttribute6ICloudProviderManager;

    readonly attribute unsigned long InternalAndReservedAttribute7ICloudProviderManager;

    readonly attribute unsigned long InternalAndReservedAttribute8ICloudProviderManager;

    void getProviderById (
        in wstring providerId,
        [retval] out ICloudProvider provider
    );

    void getProviderByShortName (
        in wstring providerName,
        [retval] out ICloudProvider provider
    );

    void getProviderByName (
        in wstring providerName,
        [retval] out ICloudProvider provider
    );

    void InternalAndReservedMethod1ICloudProviderManager();

    void InternalAndReservedMethod2ICloudProviderManager();

    void InternalAndReservedMethod3ICloudProviderManager();

    void InternalAndReservedMethod4ICloudProviderManager();

}; /* interface ICloudProviderManager */

/* Interface implementation forwarder macro */
%{C++
#define COM_FORWARD_ICloudProviderManager_GETTER_Providers_TO(smth) NS_IMETHOD GetProviders (PRUint32 * aProvidersSize, ICloudProvider * * * aProviders) { return smth GetProviders (aProvidersSize, aProviders); }
#define COM_FORWARD_ICloudProviderManager_GETTER_Providers_TO_OBJ(obj) COM_FORWARD_ICloudProviderManager_GETTER_Providers_TO ((obj)->)
#define COM_FORWARD_ICloudProviderManager_GETTER_Providers_TO_BASE(base) COM_FORWARD_ICloudProviderManager_GETTER_Providers_TO (base::)
#define COM_FORWARD_ICloudProviderManager_GetProviderById_TO(smth) NS_IMETHOD GetProviderById (PRUnichar * aProviderId, ICloudProvider * * aProvider) { return smth GetProviderById (aProviderId, aProvider); }
#define COM_FORWARD_ICloudProviderManager_GetProviderById_TO_OBJ(obj) COM_FORWARD_ICloudProviderManager_GetProviderById_TO ((obj)->)
#define COM_FORWARD_ICloudProviderManager_GetProviderById_TO_BASE(base) COM_FORWARD_ICloudProviderManager_GetProviderById_TO (base::)
#define COM_FORWARD_ICloudProviderManager_GetProviderByShortName_TO(smth) NS_IMETHOD GetProviderByShortName (PRUnichar * aProviderName, ICloudProvider * * aProvider) { return smth GetProviderByShortName (aProviderName, aProvider); }
#define COM_FORWARD_ICloudProviderManager_GetProviderByShortName_TO_OBJ(obj) COM_FORWARD_ICloudProviderManager_GetProviderByShortName_TO ((obj)->)
#define COM_FORWARD_ICloudProviderManager_GetProviderByShortName_TO_BASE(base) COM_FORWARD_ICloudProviderManager_GetProviderByShortName_TO (base::)
#define COM_FORWARD_ICloudProviderManager_GetProviderByName_TO(smth) NS_IMETHOD GetProviderByName (PRUnichar * aProviderName, ICloudProvider * * aProvider) { return smth GetProviderByName (aProviderName, aProvider); }
#define COM_FORWARD_ICloudProviderManager_GetProviderByName_TO_OBJ(obj) COM_FORWARD_ICloudProviderManager_GetProviderByName_TO ((obj)->)
#define COM_FORWARD_ICloudProviderManager_GetProviderByName_TO_BASE(base) COM_FORWARD_ICloudProviderManager_GetProviderByName_TO (base::)
#define COM_FORWARD_ICloudProviderManager_TO(smth) NS_FORWARD_ICLOUDPROVIDERMANAGER (smth)
#define COM_FORWARD_ICloudProviderManager_TO_OBJ(obj) COM_FORWARD_ICloudProviderManager_TO ((obj)->)
#define COM_FORWARD_ICloudProviderManager_TO_BASE(base) COM_FORWARD_ICloudProviderManager_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ICloudProviderManager;
%}

%{C++
// Definitions for module VBoxSVC, class VirtualBox:
#define NS_VIRTUALBOX_CID { \
    0xB1A7A4F2, 0x47B9, 0x4A1E, \
    { 0x82, 0xB2, 0x07, 0xCC, 0xD5, 0x32, 0x3C, 0x3F } \
}
#define NS_VIRTUALBOX_CONTRACTID "@virtualbox.org/VirtualBox;1"
// for compatibility with Win32
VBOX_EXTERN_C const nsCID CLSID_VirtualBox;
%}

%{C++
// Definitions for module VBoxC, class VirtualBoxClient:
#define NS_VIRTUALBOXCLIENT_CID { \
    0xdd3fc71d, 0x26c0, 0x4fe1, \
    { 0xbf, 0x6f, 0x67, 0xf6, 0x33, 0x26, 0x5b, 0xba } \
}
#define NS_VIRTUALBOXCLIENT_CONTRACTID "@virtualbox.org/VirtualBoxClient;1"
// for compatibility with Win32
VBOX_EXTERN_C const nsCID CLSID_VirtualBoxClient;
%}

%{C++
// Definitions for module VBoxC, class Session:
#define NS_SESSION_CID { \
    0x3C02F46D, 0xC9D2, 0x4F11, \
    { 0xA3, 0x84, 0x53, 0xF0, 0xCF, 0x91, 0x72, 0x14 } \
}
#define NS_SESSION_CONTRACTID "@virtualbox.org/Session;1"
// for compatibility with Win32
VBOX_EXTERN_C const nsCID CLSID_Session;
%}

