/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM /home/vbox/tinderbox/sdk/out/linux.amd64/release/bin/sdk/bindings/xpcom/idl/VirtualBox_XPCOM.idl
 */

#ifndef __gen_VirtualBox_XPCOM_h__
#define __gen_VirtualBox_XPCOM_h__


#ifndef __gen_nsISupports_h__
#include "nsISupports.h"
#endif

#ifndef __gen_nsIException_h__
#include "nsIException.h"
#endif

/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
/* 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
  
#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 0x80BB0001
#define VBOX_E_INVALID_VM_STATE 0x80BB0002
#define VBOX_E_VM_ERROR 0x80BB0003
#define VBOX_E_FILE_ERROR 0x80BB0004
#define VBOX_E_IPRT_ERROR 0x80BB0005
#define VBOX_E_PDM_ERROR 0x80BB0006
#define VBOX_E_INVALID_OBJECT_STATE 0x80BB0007
#define VBOX_E_HOST_ERROR 0x80BB0008
#define VBOX_E_NOT_SUPPORTED 0x80BB0009
#define VBOX_E_XML_ERROR 0x80BB000A
#define VBOX_E_INVALID_SESSION_STATE 0x80BB000B
#define VBOX_E_OBJECT_IN_USE 0x80BB000C
#define VBOX_E_PASSWORD_INCORRECT 0x80BB000D
class IVirtualBoxErrorInfo; /* forward declaration */

class INATNetwork; /* forward declaration */

class IDHCPServer; /* forward declaration */

class IVirtualBox; /* forward declaration */

class IVFSExplorer; /* forward declaration */

class ICertificate; /* forward declaration */

class IAppliance; /* forward declaration */

class IVirtualSystemDescription; /* forward declaration */

class IInternalMachineControl; /* forward declaration */

class IBIOSSettings; /* forward declaration */

class IPCIAddress; /* forward declaration */

class IPCIDeviceAttachment; /* forward declaration */

class IMachine; /* forward declaration */

class IEmulatedUSB; /* forward declaration */

class IVRDEServerInfo; /* forward declaration */

class IConsole; /* forward declaration */

class IHostNetworkInterface; /* forward declaration */

class IHostVideoInputDevice; /* forward declaration */

class IHost; /* forward declaration */

class ISystemProperties; /* forward declaration */

class IGuestOSType; /* forward declaration */

class IAdditionsFacility; /* forward declaration */

class IDnDBase; /* forward declaration */

class IDnDSource; /* forward declaration */

class IGuestDnDSource; /* forward declaration */

class IDnDTarget; /* forward declaration */

class IGuestDnDTarget; /* forward declaration */

class IGuestSession; /* forward declaration */

class IProcess; /* forward declaration */

class IGuestProcess; /* forward declaration */

class IDirectory; /* forward declaration */

class IGuestDirectory; /* forward declaration */

class IFile; /* forward declaration */

class IGuestFile; /* forward declaration */

class IFsObjInfo; /* forward declaration */

class IGuestFsObjInfo; /* forward declaration */

class IGuest; /* forward declaration */

class IProgress; /* forward declaration */

class ISnapshot; /* forward declaration */

class IMediumAttachment; /* forward declaration */

class IMedium; /* forward declaration */

class IMediumFormat; /* forward declaration */

class IToken; /* forward declaration */

class IKeyboard; /* forward declaration */

class IMousePointerShape; /* forward declaration */

class IMouse; /* forward declaration */

class IDisplaySourceBitmap; /* forward declaration */

class IFramebuffer; /* forward declaration */

class IFramebufferOverlay; /* forward declaration */

class IDisplay; /* forward declaration */

class INetworkAdapter; /* forward declaration */

class ISerialPort; /* forward declaration */

class IParallelPort; /* forward declaration */

class IMachineDebugger; /* forward declaration */

class IUSBDeviceFilters; /* forward declaration */

class IUSBController; /* forward declaration */

class IUSBDevice; /* forward declaration */

class IUSBDeviceFilter; /* forward declaration */

class IHostUSBDevice; /* forward declaration */

class IHostUSBDeviceFilter; /* forward declaration */

class IUSBProxyBackend; /* forward declaration */

class IAudioAdapter; /* forward declaration */

class IVRDEServer; /* forward declaration */

class ISharedFolder; /* forward declaration */

class IInternalSessionControl; /* forward declaration */

class ISession; /* forward declaration */

class IStorageController; /* forward declaration */

class IPerformanceMetric; /* forward declaration */

class IPerformanceCollector; /* forward declaration */

class INATEngine; /* forward declaration */

class IExtPackPlugIn; /* forward declaration */

class IExtPackBase; /* forward declaration */

class IExtPack; /* forward declaration */

class IExtPackFile; /* forward declaration */

class IExtPackManager; /* forward declaration */

class IBandwidthGroup; /* forward declaration */

class IBandwidthControl; /* forward declaration */

class IVirtualBoxClient; /* forward declaration */

class IEventSource; /* forward declaration */

class IEventListener; /* forward declaration */

class IEvent; /* forward declaration */

class IReusableEvent; /* forward declaration */

class IMachineEvent; /* forward declaration */

class IMachineStateChangedEvent; /* forward declaration */

class IMachineDataChangedEvent; /* forward declaration */

class IMediumRegisteredEvent; /* forward declaration */

class IMediumConfigChangedEvent; /* forward declaration */

class IMachineRegisteredEvent; /* forward declaration */

class ISessionStateChangedEvent; /* forward declaration */

class IGuestPropertyChangedEvent; /* forward declaration */

class ISnapshotEvent; /* forward declaration */

class ISnapshotTakenEvent; /* forward declaration */

class ISnapshotDeletedEvent; /* forward declaration */

class ISnapshotRestoredEvent; /* forward declaration */

class ISnapshotChangedEvent; /* forward declaration */

class IMousePointerShapeChangedEvent; /* forward declaration */

class IMouseCapabilityChangedEvent; /* forward declaration */

class IKeyboardLedsChangedEvent; /* forward declaration */

class IStateChangedEvent; /* forward declaration */

class IAdditionsStateChangedEvent; /* forward declaration */

class INetworkAdapterChangedEvent; /* forward declaration */

class ISerialPortChangedEvent; /* forward declaration */

class IParallelPortChangedEvent; /* forward declaration */

class IStorageControllerChangedEvent; /* forward declaration */

class IMediumChangedEvent; /* forward declaration */

class IClipboardModeChangedEvent; /* forward declaration */

class IDnDModeChangedEvent; /* forward declaration */

class ICPUChangedEvent; /* forward declaration */

class ICPUExecutionCapChangedEvent; /* forward declaration */

class IGuestKeyboardEvent; /* forward declaration */

class IGuestMouseEvent; /* forward declaration */

class IGuestMultiTouchEvent; /* forward declaration */

class IGuestSessionEvent; /* forward declaration */

class IGuestSessionStateChangedEvent; /* forward declaration */

class IGuestSessionRegisteredEvent; /* forward declaration */

class IGuestProcessEvent; /* forward declaration */

class IGuestProcessRegisteredEvent; /* forward declaration */

class IGuestProcessStateChangedEvent; /* forward declaration */

class IGuestProcessIOEvent; /* forward declaration */

class IGuestProcessInputNotifyEvent; /* forward declaration */

class IGuestProcessOutputEvent; /* forward declaration */

class IGuestFileEvent; /* forward declaration */

class IGuestFileRegisteredEvent; /* forward declaration */

class IGuestFileStateChangedEvent; /* forward declaration */

class IGuestFileIOEvent; /* forward declaration */

class IGuestFileOffsetChangedEvent; /* forward declaration */

class IGuestFileReadEvent; /* forward declaration */

class IGuestFileWriteEvent; /* forward declaration */

class IVRDEServerChangedEvent; /* forward declaration */

class IVRDEServerInfoChangedEvent; /* forward declaration */

class IVideoCaptureChangedEvent; /* forward declaration */

class IUSBControllerChangedEvent; /* forward declaration */

class IUSBDeviceStateChangedEvent; /* forward declaration */

class ISharedFolderChangedEvent; /* forward declaration */

class IRuntimeErrorEvent; /* forward declaration */

class IEventSourceChangedEvent; /* forward declaration */

class IExtraDataChangedEvent; /* forward declaration */

class IVetoEvent; /* forward declaration */

class IExtraDataCanChangeEvent; /* forward declaration */

class ICanShowWindowEvent; /* forward declaration */

class IShowWindowEvent; /* forward declaration */

class INATRedirectEvent; /* forward declaration */

class IHostPCIDevicePlugEvent; /* forward declaration */

class IVBoxSVCAvailabilityChangedEvent; /* forward declaration */

class IBandwidthGroupChangedEvent; /* forward declaration */

class IGuestMonitorChangedEvent; /* forward declaration */

class IGuestUserStateChangedEvent; /* forward declaration */

class IStorageDeviceChangedEvent; /* forward declaration */

class INATNetworkChangedEvent; /* forward declaration */

class INATNetworkStartStopEvent; /* forward declaration */

class INATNetworkAlterEvent; /* forward declaration */

class INATNetworkCreationDeletionEvent; /* forward declaration */

class INATNetworkSettingEvent; /* forward declaration */

class INATNetworkPortForwardEvent; /* forward declaration */

class IHostNameResolutionConfigurationChangeEvent; /* forward declaration */


/* starting interface:    SettingsVersion */
#define SETTINGSVERSION_IID_STR "b4cc23c2-96f2-419d-830b-bd13c1135dfb"

#define SETTINGSVERSION_IID \
  {0xb4cc23c2, 0x96f2, 0x419d, \
    { 0x83, 0x0b, 0xbd, 0x13, 0xc1, 0x13, 0x5d, 0xfb }}

class NS_NO_VTABLE SettingsVersion {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(SETTINGSVERSION_IID)

  enum { Null = 0U };

  enum { v1_0 = 1U };

  enum { v1_1 = 2U };

  enum { v1_2 = 3U };

  enum { v1_3pre = 4U };

  enum { v1_3 = 5U };

  enum { v1_4 = 6U };

  enum { v1_5 = 7U };

  enum { v1_6 = 8U };

  enum { v1_7 = 9U };

  enum { v1_8 = 10U };

  enum { v1_9 = 11U };

  enum { v1_10 = 12U };

  enum { v1_11 = 13U };

  enum { v1_12 = 14U };

  enum { v1_13 = 15U };

  enum { v1_14 = 16U };

  enum { v1_15 = 17U };

  enum { v1_16 = 18U };

  enum { Future = 99999U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_SETTINGSVERSION \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_SETTINGSVERSION(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_SETTINGSVERSION(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public SettingsVersion
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_SETTINGSVERSION

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, SettingsVersion)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define SettingsVersion_T PRUint32
#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_Future SettingsVersion::Future

/* starting interface:    AccessMode */
#define ACCESSMODE_IID_STR "1da0007c-ddf7-4be8-bcac-d84a1558785f"

#define ACCESSMODE_IID \
  {0x1da0007c, 0xddf7, 0x4be8, \
    { 0xbc, 0xac, 0xd8, 0x4a, 0x15, 0x58, 0x78, 0x5f }}

class NS_NO_VTABLE AccessMode {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ACCESSMODE_IID)

  enum { ReadOnly = 1U };

  enum { ReadWrite = 2U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ACCESSMODE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ACCESSMODE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ACCESSMODE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public AccessMode
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_ACCESSMODE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, AccessMode)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define AccessMode_T PRUint32
#define AccessMode_ReadOnly AccessMode::ReadOnly
#define AccessMode_ReadWrite AccessMode::ReadWrite

/* starting interface:    MachineState */
#define MACHINESTATE_IID_STR "87f085c3-ca67-4e45-9225-6057f32e9e8e"

#define MACHINESTATE_IID \
  {0x87f085c3, 0xca67, 0x4e45, \
    { 0x92, 0x25, 0x60, 0x57, 0xf3, 0x2e, 0x9e, 0x8e }}

class NS_NO_VTABLE MachineState {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(MACHINESTATE_IID)

  enum { Null = 0U };

  enum { PoweredOff = 1U };

  enum { Saved = 2U };

  enum { Teleported = 3U };

  enum { Aborted = 4U };

  enum { Running = 5U };

  enum { Paused = 6U };

  enum { Stuck = 7U };

  enum { Teleporting = 8U };

  enum { LiveSnapshotting = 9U };

  enum { Starting = 10U };

  enum { Stopping = 11U };

  enum { Saving = 12U };

  enum { Restoring = 13U };

  enum { TeleportingPausedVM = 14U };

  enum { TeleportingIn = 15U };

  enum { FaultTolerantSyncing = 16U };

  enum { DeletingSnapshotOnline = 17U };

  enum { DeletingSnapshotPaused = 18U };

  enum { OnlineSnapshotting = 19U };

  enum { RestoringSnapshot = 20U };

  enum { DeletingSnapshot = 21U };

  enum { SettingUp = 22U };

  enum { Snapshotting = 23U };

  enum { FirstOnline = 5U };

  enum { LastOnline = 19U };

  enum { FirstTransient = 8U };

  enum { LastTransient = 23U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_MACHINESTATE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_MACHINESTATE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_MACHINESTATE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public MachineState
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_MACHINESTATE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, MachineState)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define MachineState_T PRUint32
#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_FaultTolerantSyncing MachineState::FaultTolerantSyncing
#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

/* starting interface:    SessionState */
#define SESSIONSTATE_IID_STR "cf2700c0-ea4b-47ae-9725-7810114b94d8"

#define SESSIONSTATE_IID \
  {0xcf2700c0, 0xea4b, 0x47ae, \
    { 0x97, 0x25, 0x78, 0x10, 0x11, 0x4b, 0x94, 0xd8 }}

class NS_NO_VTABLE SessionState {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(SESSIONSTATE_IID)

  enum { Null = 0U };

  enum { Unlocked = 1U };

  enum { Locked = 2U };

  enum { Spawning = 3U };

  enum { Unlocking = 4U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_SESSIONSTATE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_SESSIONSTATE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_SESSIONSTATE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public SessionState
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_SESSIONSTATE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, SessionState)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define SessionState_T PRUint32
#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

/* starting interface:    CPUPropertyType */
#define CPUPROPERTYTYPE_IID_STR "cc6ecdad-a07c-4e81-9c0e-d767e0678d5a"

#define CPUPROPERTYTYPE_IID \
  {0xcc6ecdad, 0xa07c, 0x4e81, \
    { 0x9c, 0x0e, 0xd7, 0x67, 0xe0, 0x67, 0x8d, 0x5a }}

class NS_NO_VTABLE CPUPropertyType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(CPUPROPERTYTYPE_IID)

  enum { Null = 0U };

  enum { PAE = 1U };

  enum { LongMode = 2U };

  enum { TripleFaultReset = 3U };

  enum { APIC = 4U };

  enum { X2APIC = 5U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_CPUPROPERTYTYPE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_CPUPROPERTYTYPE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_CPUPROPERTYTYPE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public CPUPropertyType
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_CPUPROPERTYTYPE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, CPUPropertyType)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define CPUPropertyType_T PRUint32
#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

/* starting interface:    HWVirtExPropertyType */
#define HWVIRTEXPROPERTYTYPE_IID_STR "411ad0ea-aeeb-44cb-9d03-1624d0d025ac"

#define HWVIRTEXPROPERTYTYPE_IID \
  {0x411ad0ea, 0xaeeb, 0x44cb, \
    { 0x9d, 0x03, 0x16, 0x24, 0xd0, 0xd0, 0x25, 0xac }}

class NS_NO_VTABLE HWVirtExPropertyType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(HWVIRTEXPROPERTYTYPE_IID)

  enum { Null = 0U };

  enum { Enabled = 1U };

  enum { VPID = 2U };

  enum { NestedPaging = 3U };

  enum { UnrestrictedExecution = 4U };

  enum { LargePages = 5U };

  enum { Force = 6U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_HWVIRTEXPROPERTYTYPE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_HWVIRTEXPROPERTYTYPE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_HWVIRTEXPROPERTYTYPE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public HWVirtExPropertyType
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_HWVIRTEXPROPERTYTYPE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, HWVirtExPropertyType)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define HWVirtExPropertyType_T PRUint32
#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

/* starting interface:    ParavirtProvider */
#define PARAVIRTPROVIDER_IID_STR "696453ec-3742-4a05-bead-658ccbf2c944"

#define PARAVIRTPROVIDER_IID \
  {0x696453ec, 0x3742, 0x4a05, \
    { 0xbe, 0xad, 0x65, 0x8c, 0xcb, 0xf2, 0xc9, 0x44 }}

class NS_NO_VTABLE ParavirtProvider {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(PARAVIRTPROVIDER_IID)

  enum { None = 0U };

  enum { Default = 1U };

  enum { Legacy = 2U };

  enum { Minimal = 3U };

  enum { HyperV = 4U };

  enum { KVM = 5U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_PARAVIRTPROVIDER \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_PARAVIRTPROVIDER(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_PARAVIRTPROVIDER(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public ParavirtProvider
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_PARAVIRTPROVIDER

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, ParavirtProvider)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define ParavirtProvider_T PRUint32
#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

/* starting interface:    FaultToleranceState */
#define FAULTTOLERANCESTATE_IID_STR "5124f7ec-6b67-493c-9dee-ee45a44114e1"

#define FAULTTOLERANCESTATE_IID \
  {0x5124f7ec, 0x6b67, 0x493c, \
    { 0x9d, 0xee, 0xee, 0x45, 0xa4, 0x41, 0x14, 0xe1 }}

class NS_NO_VTABLE FaultToleranceState {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FAULTTOLERANCESTATE_IID)

  enum { Inactive = 1U };

  enum { Master = 2U };

  enum { Standby = 3U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FAULTTOLERANCESTATE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FAULTTOLERANCESTATE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_FAULTTOLERANCESTATE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public FaultToleranceState
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FAULTTOLERANCESTATE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, FaultToleranceState)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define FaultToleranceState_T PRUint32
#define FaultToleranceState_Inactive FaultToleranceState::Inactive
#define FaultToleranceState_Master FaultToleranceState::Master
#define FaultToleranceState_Standby FaultToleranceState::Standby

/* starting interface:    LockType */
#define LOCKTYPE_IID_STR "678aaf14-2815-4c3e-b20a-e86ed0216498"

#define LOCKTYPE_IID \
  {0x678aaf14, 0x2815, 0x4c3e, \
    { 0xb2, 0x0a, 0xe8, 0x6e, 0xd0, 0x21, 0x64, 0x98 }}

class NS_NO_VTABLE LockType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(LOCKTYPE_IID)

  enum { Null = 0U };

  enum { Shared = 1U };

  enum { Write = 2U };

  enum { VM = 3U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_LOCKTYPE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_LOCKTYPE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_LOCKTYPE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public LockType
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_LOCKTYPE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, LockType)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define LockType_T PRUint32
#define LockType_Null LockType::Null
#define LockType_Shared LockType::Shared
#define LockType_Write LockType::Write
#define LockType_VM LockType::VM

/* starting interface:    SessionType */
#define SESSIONTYPE_IID_STR "a13c02cb-0c2c-421e-8317-ac0e8aaa153a"

#define SESSIONTYPE_IID \
  {0xa13c02cb, 0x0c2c, 0x421e, \
    { 0x83, 0x17, 0xac, 0x0e, 0x8a, 0xaa, 0x15, 0x3a }}

class NS_NO_VTABLE SessionType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(SESSIONTYPE_IID)

  enum { Null = 0U };

  enum { WriteLock = 1U };

  enum { Remote = 2U };

  enum { Shared = 3U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_SESSIONTYPE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_SESSIONTYPE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_SESSIONTYPE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public SessionType
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_SESSIONTYPE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, SessionType)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define SessionType_T PRUint32
#define SessionType_Null SessionType::Null
#define SessionType_WriteLock SessionType::WriteLock
#define SessionType_Remote SessionType::Remote
#define SessionType_Shared SessionType::Shared

/* starting interface:    DeviceType */
#define DEVICETYPE_IID_STR "cb977be1-d1fb-41f8-ad7e-951736c6cb3e"

#define DEVICETYPE_IID \
  {0xcb977be1, 0xd1fb, 0x41f8, \
    { 0xad, 0x7e, 0x95, 0x17, 0x36, 0xc6, 0xcb, 0x3e }}

class NS_NO_VTABLE DeviceType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(DEVICETYPE_IID)

  enum { Null = 0U };

  enum { Floppy = 1U };

  enum { DVD = 2U };

  enum { HardDisk = 3U };

  enum { Network = 4U };

  enum { USB = 5U };

  enum { SharedFolder = 6U };

  enum { Graphics3D = 7U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_DEVICETYPE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_DEVICETYPE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_DEVICETYPE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public DeviceType
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_DEVICETYPE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, DeviceType)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define DeviceType_T PRUint32
#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

/* starting interface:    DeviceActivity */
#define DEVICEACTIVITY_IID_STR "6fc8aeaa-130a-4eb5-8954-3f921422d707"

#define DEVICEACTIVITY_IID \
  {0x6fc8aeaa, 0x130a, 0x4eb5, \
    { 0x89, 0x54, 0x3f, 0x92, 0x14, 0x22, 0xd7, 0x07 }}

class NS_NO_VTABLE DeviceActivity {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(DEVICEACTIVITY_IID)

  enum { Null = 0U };

  enum { Idle = 1U };

  enum { Reading = 2U };

  enum { Writing = 3U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_DEVICEACTIVITY \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_DEVICEACTIVITY(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_DEVICEACTIVITY(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public DeviceActivity
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_DEVICEACTIVITY

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, DeviceActivity)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define DeviceActivity_T PRUint32
#define DeviceActivity_Null DeviceActivity::Null
#define DeviceActivity_Idle DeviceActivity::Idle
#define DeviceActivity_Reading DeviceActivity::Reading
#define DeviceActivity_Writing DeviceActivity::Writing

/* starting interface:    ClipboardMode */
#define CLIPBOARDMODE_IID_STR "33364716-4008-4701-8f14-be0fa3d62950"

#define CLIPBOARDMODE_IID \
  {0x33364716, 0x4008, 0x4701, \
    { 0x8f, 0x14, 0xbe, 0x0f, 0xa3, 0xd6, 0x29, 0x50 }}

class NS_NO_VTABLE ClipboardMode {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(CLIPBOARDMODE_IID)

  enum { Disabled = 0U };

  enum { HostToGuest = 1U };

  enum { GuestToHost = 2U };

  enum { Bidirectional = 3U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_CLIPBOARDMODE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_CLIPBOARDMODE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_CLIPBOARDMODE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public ClipboardMode
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_CLIPBOARDMODE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, ClipboardMode)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define ClipboardMode_T PRUint32
#define ClipboardMode_Disabled ClipboardMode::Disabled
#define ClipboardMode_HostToGuest ClipboardMode::HostToGuest
#define ClipboardMode_GuestToHost ClipboardMode::GuestToHost
#define ClipboardMode_Bidirectional ClipboardMode::Bidirectional

/* starting interface:    DnDMode */
#define DNDMODE_IID_STR "07af8800-f936-4b33-9172-cd400e83c148"

#define DNDMODE_IID \
  {0x07af8800, 0xf936, 0x4b33, \
    { 0x91, 0x72, 0xcd, 0x40, 0x0e, 0x83, 0xc1, 0x48 }}

class NS_NO_VTABLE DnDMode {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(DNDMODE_IID)

  enum { Disabled = 0U };

  enum { HostToGuest = 1U };

  enum { GuestToHost = 2U };

  enum { Bidirectional = 3U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_DNDMODE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_DNDMODE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_DNDMODE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public DnDMode
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_DNDMODE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, DnDMode)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define DnDMode_T PRUint32
#define DnDMode_Disabled DnDMode::Disabled
#define DnDMode_HostToGuest DnDMode::HostToGuest
#define DnDMode_GuestToHost DnDMode::GuestToHost
#define DnDMode_Bidirectional DnDMode::Bidirectional

/* starting interface:    Scope */
#define SCOPE_IID_STR "7c91096e-499e-4eca-9f9b-9001438d7855"

#define SCOPE_IID \
  {0x7c91096e, 0x499e, 0x4eca, \
    { 0x9f, 0x9b, 0x90, 0x01, 0x43, 0x8d, 0x78, 0x55 }}

class NS_NO_VTABLE Scope {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(SCOPE_IID)

  enum { Global = 0U };

  enum { Machine = 1U };

  enum { Session = 2U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_SCOPE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_SCOPE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_SCOPE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public Scope
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_SCOPE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, Scope)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define Scope_T PRUint32
#define Scope_Global Scope::Global
#define Scope_Machine Scope::Machine
#define Scope_Session Scope::Session

/* starting interface:    BIOSBootMenuMode */
#define BIOSBOOTMENUMODE_IID_STR "ae4fb9f7-29d2-45b4-b2c7-d579603135d5"

#define BIOSBOOTMENUMODE_IID \
  {0xae4fb9f7, 0x29d2, 0x45b4, \
    { 0xb2, 0xc7, 0xd5, 0x79, 0x60, 0x31, 0x35, 0xd5 }}

class NS_NO_VTABLE BIOSBootMenuMode {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(BIOSBOOTMENUMODE_IID)

  enum { Disabled = 0U };

  enum { MenuOnly = 1U };

  enum { MessageAndMenu = 2U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_BIOSBOOTMENUMODE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_BIOSBOOTMENUMODE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_BIOSBOOTMENUMODE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public BIOSBootMenuMode
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_BIOSBOOTMENUMODE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, BIOSBootMenuMode)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define BIOSBootMenuMode_T PRUint32
#define BIOSBootMenuMode_Disabled BIOSBootMenuMode::Disabled
#define BIOSBootMenuMode_MenuOnly BIOSBootMenuMode::MenuOnly
#define BIOSBootMenuMode_MessageAndMenu BIOSBootMenuMode::MessageAndMenu

/* starting interface:    APICMode */
#define APICMODE_IID_STR "c6884ba5-3cc4-4a92-a7f6-4410f9fd894e"

#define APICMODE_IID \
  {0xc6884ba5, 0x3cc4, 0x4a92, \
    { 0xa7, 0xf6, 0x44, 0x10, 0xf9, 0xfd, 0x89, 0x4e }}

class NS_NO_VTABLE APICMode {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(APICMODE_IID)

  enum { Disabled = 0U };

  enum { APIC = 1U };

  enum { X2APIC = 2U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_APICMODE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_APICMODE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_APICMODE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class APCMode : public APICMode
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_APICMODE

  APCMode();

private:
  ~APCMode();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(APCMode, APICMode)

APCMode::APCMode()
{
  /* member initializers and constructor code */
}

APCMode::~APCMode()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define APICMode_T PRUint32
#define APICMode_Disabled APICMode::Disabled
#define APICMode_APIC APICMode::APIC
#define APICMode_X2APIC APICMode::X2APIC

/* starting interface:    ProcessorFeature */
#define PROCESSORFEATURE_IID_STR "64c38e6b-8bcf-45ad-ac03-9b406287c5bf"

#define PROCESSORFEATURE_IID \
  {0x64c38e6b, 0x8bcf, 0x45ad, \
    { 0xac, 0x03, 0x9b, 0x40, 0x62, 0x87, 0xc5, 0xbf }}

class NS_NO_VTABLE ProcessorFeature {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(PROCESSORFEATURE_IID)

  enum { HWVirtEx = 0U };

  enum { PAE = 1U };

  enum { LongMode = 2U };

  enum { NestedPaging = 3U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_PROCESSORFEATURE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_PROCESSORFEATURE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_PROCESSORFEATURE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public ProcessorFeature
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_PROCESSORFEATURE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, ProcessorFeature)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define ProcessorFeature_T PRUint32
#define ProcessorFeature_HWVirtEx ProcessorFeature::HWVirtEx
#define ProcessorFeature_PAE ProcessorFeature::PAE
#define ProcessorFeature_LongMode ProcessorFeature::LongMode
#define ProcessorFeature_NestedPaging ProcessorFeature::NestedPaging

/* starting interface:    FirmwareType */
#define FIRMWARETYPE_IID_STR "b903f264-c230-483e-ac74-2b37ce60d371"

#define FIRMWARETYPE_IID \
  {0xb903f264, 0xc230, 0x483e, \
    { 0xac, 0x74, 0x2b, 0x37, 0xce, 0x60, 0xd3, 0x71 }}

class NS_NO_VTABLE FirmwareType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FIRMWARETYPE_IID)

  enum { BIOS = 1U };

  enum { EFI = 2U };

  enum { EFI32 = 3U };

  enum { EFI64 = 4U };

  enum { EFIDUAL = 5U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FIRMWARETYPE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FIRMWARETYPE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_FIRMWARETYPE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public FirmwareType
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FIRMWARETYPE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, FirmwareType)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define FirmwareType_T PRUint32
#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

/* starting interface:    PointingHIDType */
#define POINTINGHIDTYPE_IID_STR "19964e93-0050-45c4-9382-a7bccc53e666"

#define POINTINGHIDTYPE_IID \
  {0x19964e93, 0x0050, 0x45c4, \
    { 0x93, 0x82, 0xa7, 0xbc, 0xcc, 0x53, 0xe6, 0x66 }}

class NS_NO_VTABLE PointingHIDType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(POINTINGHIDTYPE_IID)

  enum { None = 1U };

  enum { PS2Mouse = 2U };

  enum { USBMouse = 3U };

  enum { USBTablet = 4U };

  enum { ComboMouse = 5U };

  enum { USBMultiTouch = 6U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_POINTINGHIDTYPE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_POINTINGHIDTYPE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_POINTINGHIDTYPE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public PointingHIDType
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_POINTINGHIDTYPE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, PointingHIDType)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define PointingHIDType_T PRUint32
#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

/* starting interface:    KeyboardHIDType */
#define KEYBOARDHIDTYPE_IID_STR "383e43d7-5c7c-4ec8-9cb8-eda1bccd6699"

#define KEYBOARDHIDTYPE_IID \
  {0x383e43d7, 0x5c7c, 0x4ec8, \
    { 0x9c, 0xb8, 0xed, 0xa1, 0xbc, 0xcd, 0x66, 0x99 }}

class NS_NO_VTABLE KeyboardHIDType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(KEYBOARDHIDTYPE_IID)

  enum { None = 1U };

  enum { PS2Keyboard = 2U };

  enum { USBKeyboard = 3U };

  enum { ComboKeyboard = 4U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_KEYBOARDHIDTYPE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_KEYBOARDHIDTYPE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_KEYBOARDHIDTYPE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public KeyboardHIDType
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_KEYBOARDHIDTYPE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, KeyboardHIDType)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define KeyboardHIDType_T PRUint32
#define KeyboardHIDType_None KeyboardHIDType::None
#define KeyboardHIDType_PS2Keyboard KeyboardHIDType::PS2Keyboard
#define KeyboardHIDType_USBKeyboard KeyboardHIDType::USBKeyboard
#define KeyboardHIDType_ComboKeyboard KeyboardHIDType::ComboKeyboard

/* starting interface:    BitmapFormat */
#define BITMAPFORMAT_IID_STR "afb2bf39-8b1e-4f9f-8948-d1b887f83eb0"

#define BITMAPFORMAT_IID \
  {0xafb2bf39, 0x8b1e, 0x4f9f, \
    { 0x89, 0x48, 0xd1, 0xb8, 0x87, 0xf8, 0x3e, 0xb0 }}

class NS_NO_VTABLE BitmapFormat {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(BITMAPFORMAT_IID)

  enum { Opaque = 0U };

  enum { BGR = 542263106U };

  enum { BGR0 = 810698562U };

  enum { BGRA = 1095911234U };

  enum { RGBA = 1094862674U };

  enum { PNG = 541544016U };

  enum { JPEG = 1195724874U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_BITMAPFORMAT \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_BITMAPFORMAT(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_BITMAPFORMAT(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public BitmapFormat
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_BITMAPFORMAT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, BitmapFormat)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define BitmapFormat_T PRUint32
#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

/* starting interface:    DhcpOpt */
#define DHCPOPT_IID_STR "40d99bd3-3ece-44d2-a07e-1085fe9c4f0b"

#define DHCPOPT_IID \
  {0x40d99bd3, 0x3ece, 0x44d2, \
    { 0xa0, 0x7e, 0x10, 0x85, 0xfe, 0x9c, 0x4f, 0x0b }}

class NS_NO_VTABLE DhcpOpt {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(DHCPOPT_IID)

  enum { SubnetMask = 1U };

  enum { TimeOffset = 2U };

  enum { Router = 3U };

  enum { TimeServer = 4U };

  enum { NameServer = 5U };

  enum { DomainNameServer = 6U };

  enum { LogServer = 7U };

  enum { Cookie = 8U };

  enum { LPRServer = 9U };

  enum { ImpressServer = 10U };

  enum { ResourseLocationServer = 11U };

  enum { HostName = 12U };

  enum { BootFileSize = 13U };

  enum { MeritDumpFile = 14U };

  enum { DomainName = 15U };

  enum { SwapServer = 16U };

  enum { RootPath = 17U };

  enum { ExtensionPath = 18U };

  enum { IPForwardingEnableDisable = 19U };

  enum { NonLocalSourceRoutingEnableDisable = 20U };

  enum { PolicyFilter = 21U };

  enum { MaximumDatagramReassemblySize = 22U };

  enum { DefaultIPTime2Live = 23U };

  enum { PathMTUAgingTimeout = 24U };

  enum { IPLayerParametersPerInterface = 25U };

  enum { InterfaceMTU = 26U };

  enum { AllSubnetsAreLocal = 27U };

  enum { BroadcastAddress = 28U };

  enum { PerformMaskDiscovery = 29U };

  enum { MaskSupplier = 30U };

  enum { PerformRouteDiscovery = 31U };

  enum { RouterSolicitationAddress = 32U };

  enum { StaticRoute = 33U };

  enum { TrailerEncapsulation = 34U };

  enum { ARPCacheTimeout = 35U };

  enum { EthernetEncapsulation = 36U };

  enum { TCPDefaultTTL = 37U };

  enum { TCPKeepAliveInterval = 38U };

  enum { TCPKeepAliveGarbage = 39U };

  enum { NetworkInformationServiceDomain = 40U };

  enum { NetworkInformationServiceServers = 41U };

  enum { NetworkTimeProtocolServers = 42U };

  enum { VendorSpecificInformation = 43U };

  enum { Option_44 = 44U };

  enum { Option_45 = 45U };

  enum { Option_46 = 46U };

  enum { Option_47 = 47U };

  enum { Option_48 = 48U };

  enum { Option_49 = 49U };

  enum { IPAddressLeaseTime = 51U };

  enum { Option_64 = 64U };

  enum { Option_65 = 65U };

  enum { TFTPServerName = 66U };

  enum { BootfileName = 67U };

  enum { Option_68 = 68U };

  enum { Option_69 = 69U };

  enum { Option_70 = 70U };

  enum { Option_71 = 71U };

  enum { Option_72 = 72U };

  enum { Option_73 = 73U };

  enum { Option_74 = 74U };

  enum { Option_75 = 75U };

  enum { Option_119 = 119U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_DHCPOPT \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_DHCPOPT(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_DHCPOPT(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public DhcpOpt
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_DHCPOPT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, DhcpOpt)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define DhcpOpt_T PRUint32
#define DhcpOpt_SubnetMask DhcpOpt::SubnetMask
#define DhcpOpt_TimeOffset DhcpOpt::TimeOffset
#define DhcpOpt_Router DhcpOpt::Router
#define DhcpOpt_TimeServer DhcpOpt::TimeServer
#define DhcpOpt_NameServer DhcpOpt::NameServer
#define DhcpOpt_DomainNameServer DhcpOpt::DomainNameServer
#define DhcpOpt_LogServer DhcpOpt::LogServer
#define DhcpOpt_Cookie DhcpOpt::Cookie
#define DhcpOpt_LPRServer DhcpOpt::LPRServer
#define DhcpOpt_ImpressServer DhcpOpt::ImpressServer
#define DhcpOpt_ResourseLocationServer DhcpOpt::ResourseLocationServer
#define DhcpOpt_HostName DhcpOpt::HostName
#define DhcpOpt_BootFileSize DhcpOpt::BootFileSize
#define DhcpOpt_MeritDumpFile DhcpOpt::MeritDumpFile
#define DhcpOpt_DomainName DhcpOpt::DomainName
#define DhcpOpt_SwapServer DhcpOpt::SwapServer
#define DhcpOpt_RootPath DhcpOpt::RootPath
#define DhcpOpt_ExtensionPath DhcpOpt::ExtensionPath
#define DhcpOpt_IPForwardingEnableDisable DhcpOpt::IPForwardingEnableDisable
#define DhcpOpt_NonLocalSourceRoutingEnableDisable DhcpOpt::NonLocalSourceRoutingEnableDisable
#define DhcpOpt_PolicyFilter DhcpOpt::PolicyFilter
#define DhcpOpt_MaximumDatagramReassemblySize DhcpOpt::MaximumDatagramReassemblySize
#define DhcpOpt_DefaultIPTime2Live DhcpOpt::DefaultIPTime2Live
#define DhcpOpt_PathMTUAgingTimeout DhcpOpt::PathMTUAgingTimeout
#define DhcpOpt_IPLayerParametersPerInterface DhcpOpt::IPLayerParametersPerInterface
#define DhcpOpt_InterfaceMTU DhcpOpt::InterfaceMTU
#define DhcpOpt_AllSubnetsAreLocal DhcpOpt::AllSubnetsAreLocal
#define DhcpOpt_BroadcastAddress DhcpOpt::BroadcastAddress
#define DhcpOpt_PerformMaskDiscovery DhcpOpt::PerformMaskDiscovery
#define DhcpOpt_MaskSupplier DhcpOpt::MaskSupplier
#define DhcpOpt_PerformRouteDiscovery DhcpOpt::PerformRouteDiscovery
#define DhcpOpt_RouterSolicitationAddress DhcpOpt::RouterSolicitationAddress
#define DhcpOpt_StaticRoute DhcpOpt::StaticRoute
#define DhcpOpt_TrailerEncapsulation DhcpOpt::TrailerEncapsulation
#define DhcpOpt_ARPCacheTimeout DhcpOpt::ARPCacheTimeout
#define DhcpOpt_EthernetEncapsulation DhcpOpt::EthernetEncapsulation
#define DhcpOpt_TCPDefaultTTL DhcpOpt::TCPDefaultTTL
#define DhcpOpt_TCPKeepAliveInterval DhcpOpt::TCPKeepAliveInterval
#define DhcpOpt_TCPKeepAliveGarbage DhcpOpt::TCPKeepAliveGarbage
#define DhcpOpt_NetworkInformationServiceDomain DhcpOpt::NetworkInformationServiceDomain
#define DhcpOpt_NetworkInformationServiceServers DhcpOpt::NetworkInformationServiceServers
#define DhcpOpt_NetworkTimeProtocolServers DhcpOpt::NetworkTimeProtocolServers
#define DhcpOpt_VendorSpecificInformation DhcpOpt::VendorSpecificInformation
#define DhcpOpt_Option_44 DhcpOpt::Option_44
#define DhcpOpt_Option_45 DhcpOpt::Option_45
#define DhcpOpt_Option_46 DhcpOpt::Option_46
#define DhcpOpt_Option_47 DhcpOpt::Option_47
#define DhcpOpt_Option_48 DhcpOpt::Option_48
#define DhcpOpt_Option_49 DhcpOpt::Option_49
#define DhcpOpt_IPAddressLeaseTime DhcpOpt::IPAddressLeaseTime
#define DhcpOpt_Option_64 DhcpOpt::Option_64
#define DhcpOpt_Option_65 DhcpOpt::Option_65
#define DhcpOpt_TFTPServerName DhcpOpt::TFTPServerName
#define DhcpOpt_BootfileName DhcpOpt::BootfileName
#define DhcpOpt_Option_68 DhcpOpt::Option_68
#define DhcpOpt_Option_69 DhcpOpt::Option_69
#define DhcpOpt_Option_70 DhcpOpt::Option_70
#define DhcpOpt_Option_71 DhcpOpt::Option_71
#define DhcpOpt_Option_72 DhcpOpt::Option_72
#define DhcpOpt_Option_73 DhcpOpt::Option_73
#define DhcpOpt_Option_74 DhcpOpt::Option_74
#define DhcpOpt_Option_75 DhcpOpt::Option_75
#define DhcpOpt_Option_119 DhcpOpt::Option_119

/* starting interface:    DhcpOptEncoding */
#define DHCPOPTENCODING_IID_STR "88ea6d70-8648-4871-ba30-1f49c61cfaa2"

#define DHCPOPTENCODING_IID \
  {0x88ea6d70, 0x8648, 0x4871, \
    { 0xba, 0x30, 0x1f, 0x49, 0xc6, 0x1c, 0xfa, 0xa2 }}

class NS_NO_VTABLE DhcpOptEncoding {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(DHCPOPTENCODING_IID)

  enum { Legacy = 0U };

  enum { Hex = 1U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_DHCPOPTENCODING \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_DHCPOPTENCODING(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_DHCPOPTENCODING(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public DhcpOptEncoding
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_DHCPOPTENCODING

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, DhcpOptEncoding)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define DhcpOptEncoding_T PRUint32
#define DhcpOptEncoding_Legacy DhcpOptEncoding::Legacy
#define DhcpOptEncoding_Hex DhcpOptEncoding::Hex

/* starting interface:    VFSType */
#define VFSTYPE_IID_STR "813999ba-b949-48a8-9230-aadc6285e2f2"

#define VFSTYPE_IID \
  {0x813999ba, 0xb949, 0x48a8, \
    { 0x92, 0x30, 0xaa, 0xdc, 0x62, 0x85, 0xe2, 0xf2 }}

class NS_NO_VTABLE VFSType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(VFSTYPE_IID)

  enum { File = 1U };

  enum { Cloud = 2U };

  enum { S3 = 3U };

  enum { WebDav = 4U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_VFSTYPE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_VFSTYPE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_VFSTYPE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public VFSType
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_VFSTYPE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, VFSType)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define VFSType_T PRUint32
#define VFSType_File VFSType::File
#define VFSType_Cloud VFSType::Cloud
#define VFSType_S3 VFSType::S3
#define VFSType_WebDav VFSType::WebDav

/* starting interface:    ImportOptions */
#define IMPORTOPTIONS_IID_STR "0a981523-3b20-4004-8ee3-dfd322202ace"

#define IMPORTOPTIONS_IID \
  {0x0a981523, 0x3b20, 0x4004, \
    { 0x8e, 0xe3, 0xdf, 0xd3, 0x22, 0x20, 0x2a, 0xce }}

class NS_NO_VTABLE ImportOptions {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IMPORTOPTIONS_IID)

  enum { KeepAllMACs = 1U };

  enum { KeepNATMACs = 2U };

  enum { ImportToVDI = 3U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IMPORTOPTIONS \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IMPORTOPTIONS(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IMPORTOPTIONS(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public ImportOptions
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IMPORTOPTIONS

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, ImportOptions)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define ImportOptions_T PRUint32
#define ImportOptions_KeepAllMACs ImportOptions::KeepAllMACs
#define ImportOptions_KeepNATMACs ImportOptions::KeepNATMACs
#define ImportOptions_ImportToVDI ImportOptions::ImportToVDI

/* starting interface:    ExportOptions */
#define EXPORTOPTIONS_IID_STR "8f45eb08-fd34-41ee-af95-a880bdee5554"

#define EXPORTOPTIONS_IID \
  {0x8f45eb08, 0xfd34, 0x41ee, \
    { 0xaf, 0x95, 0xa8, 0x80, 0xbd, 0xee, 0x55, 0x54 }}

class NS_NO_VTABLE ExportOptions {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(EXPORTOPTIONS_IID)

  enum { CreateManifest = 1U };

  enum { ExportDVDImages = 2U };

  enum { StripAllMACs = 3U };

  enum { StripAllNonNATMACs = 4U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_EXPORTOPTIONS \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_EXPORTOPTIONS(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_EXPORTOPTIONS(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public ExportOptions
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_EXPORTOPTIONS

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, ExportOptions)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define ExportOptions_T PRUint32
#define ExportOptions_CreateManifest ExportOptions::CreateManifest
#define ExportOptions_ExportDVDImages ExportOptions::ExportDVDImages
#define ExportOptions_StripAllMACs ExportOptions::StripAllMACs
#define ExportOptions_StripAllNonNATMACs ExportOptions::StripAllNonNATMACs

/* starting interface:    CertificateVersion */
#define CERTIFICATEVERSION_IID_STR "9e232a99-51d0-4dbd-96a0-ffac4bc3e2a8"

#define CERTIFICATEVERSION_IID \
  {0x9e232a99, 0x51d0, 0x4dbd, \
    { 0x96, 0xa0, 0xff, 0xac, 0x4b, 0xc3, 0xe2, 0xa8 }}

class NS_NO_VTABLE CertificateVersion {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(CERTIFICATEVERSION_IID)

  enum { V1 = 1U };

  enum { V2 = 2U };

  enum { V3 = 3U };

  enum { Unknown = 99U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_CERTIFICATEVERSION \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_CERTIFICATEVERSION(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_CERTIFICATEVERSION(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public CertificateVersion
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_CERTIFICATEVERSION

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, CertificateVersion)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define CertificateVersion_T PRUint32
#define CertificateVersion_V1 CertificateVersion::V1
#define CertificateVersion_V2 CertificateVersion::V2
#define CertificateVersion_V3 CertificateVersion::V3
#define CertificateVersion_Unknown CertificateVersion::Unknown

/* starting interface:    VirtualSystemDescriptionType */
#define VIRTUALSYSTEMDESCRIPTIONTYPE_IID_STR "303c0900-a746-4612-8c67-79003e91f459"

#define VIRTUALSYSTEMDESCRIPTIONTYPE_IID \
  {0x303c0900, 0xa746, 0x4612, \
    { 0x8c, 0x67, 0x79, 0x00, 0x3e, 0x91, 0xf4, 0x59 }}

class NS_NO_VTABLE VirtualSystemDescriptionType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(VIRTUALSYSTEMDESCRIPTIONTYPE_IID)

  enum { Ignore = 1U };

  enum { OS = 2U };

  enum { Name = 3U };

  enum { Product = 4U };

  enum { Vendor = 5U };

  enum { Version = 6U };

  enum { ProductUrl = 7U };

  enum { VendorUrl = 8U };

  enum { Description = 9U };

  enum { License = 10U };

  enum { Miscellaneous = 11U };

  enum { CPU = 12U };

  enum { Memory = 13U };

  enum { HardDiskControllerIDE = 14U };

  enum { HardDiskControllerSATA = 15U };

  enum { HardDiskControllerSCSI = 16U };

  enum { HardDiskControllerSAS = 17U };

  enum { HardDiskImage = 18U };

  enum { Floppy = 19U };

  enum { CDROM = 20U };

  enum { NetworkAdapter = 21U };

  enum { USBController = 22U };

  enum { SoundCard = 23U };

  enum { SettingsFile = 24U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_VIRTUALSYSTEMDESCRIPTIONTYPE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_VIRTUALSYSTEMDESCRIPTIONTYPE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_VIRTUALSYSTEMDESCRIPTIONTYPE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public VirtualSystemDescriptionType
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_VIRTUALSYSTEMDESCRIPTIONTYPE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, VirtualSystemDescriptionType)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define VirtualSystemDescriptionType_T PRUint32
#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

/* starting interface:    VirtualSystemDescriptionValueType */
#define VIRTUALSYSTEMDESCRIPTIONVALUETYPE_IID_STR "56d9403f-3425-4118-9919-36f2a9b8c77c"

#define VIRTUALSYSTEMDESCRIPTIONVALUETYPE_IID \
  {0x56d9403f, 0x3425, 0x4118, \
    { 0x99, 0x19, 0x36, 0xf2, 0xa9, 0xb8, 0xc7, 0x7c }}

class NS_NO_VTABLE VirtualSystemDescriptionValueType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(VIRTUALSYSTEMDESCRIPTIONVALUETYPE_IID)

  enum { Reference = 1U };

  enum { Original = 2U };

  enum { Auto = 3U };

  enum { ExtraConfig = 4U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_VIRTUALSYSTEMDESCRIPTIONVALUETYPE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_VIRTUALSYSTEMDESCRIPTIONVALUETYPE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_VIRTUALSYSTEMDESCRIPTIONVALUETYPE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public VirtualSystemDescriptionValueType
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_VIRTUALSYSTEMDESCRIPTIONVALUETYPE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, VirtualSystemDescriptionValueType)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define VirtualSystemDescriptionValueType_T PRUint32
#define VirtualSystemDescriptionValueType_Reference VirtualSystemDescriptionValueType::Reference
#define VirtualSystemDescriptionValueType_Original VirtualSystemDescriptionValueType::Original
#define VirtualSystemDescriptionValueType_Auto VirtualSystemDescriptionValueType::Auto
#define VirtualSystemDescriptionValueType_ExtraConfig VirtualSystemDescriptionValueType::ExtraConfig

/* starting interface:    GraphicsControllerType */
#define GRAPHICSCONTROLLERTYPE_IID_STR "79c96ca0-9f39-4900-948e-68c41cbe127a"

#define GRAPHICSCONTROLLERTYPE_IID \
  {0x79c96ca0, 0x9f39, 0x4900, \
    { 0x94, 0x8e, 0x68, 0xc4, 0x1c, 0xbe, 0x12, 0x7a }}

class NS_NO_VTABLE GraphicsControllerType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(GRAPHICSCONTROLLERTYPE_IID)

  enum { Null = 0U };

  enum { VBoxVGA = 1U };

  enum { VMSVGA = 2U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_GRAPHICSCONTROLLERTYPE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_GRAPHICSCONTROLLERTYPE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_GRAPHICSCONTROLLERTYPE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public GraphicsControllerType
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_GRAPHICSCONTROLLERTYPE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, GraphicsControllerType)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define GraphicsControllerType_T PRUint32
#define GraphicsControllerType_Null GraphicsControllerType::Null
#define GraphicsControllerType_VBoxVGA GraphicsControllerType::VBoxVGA
#define GraphicsControllerType_VMSVGA GraphicsControllerType::VMSVGA

/* starting interface:    CleanupMode */
#define CLEANUPMODE_IID_STR "67897c50-7cca-47a9-83f6-ce8fd8eb5441"

#define CLEANUPMODE_IID \
  {0x67897c50, 0x7cca, 0x47a9, \
    { 0x83, 0xf6, 0xce, 0x8f, 0xd8, 0xeb, 0x54, 0x41 }}

class NS_NO_VTABLE CleanupMode {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(CLEANUPMODE_IID)

  enum { UnregisterOnly = 1U };

  enum { DetachAllReturnNone = 2U };

  enum { DetachAllReturnHardDisksOnly = 3U };

  enum { Full = 4U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_CLEANUPMODE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_CLEANUPMODE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_CLEANUPMODE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public CleanupMode
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_CLEANUPMODE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, CleanupMode)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define CleanupMode_T PRUint32
#define CleanupMode_UnregisterOnly CleanupMode::UnregisterOnly
#define CleanupMode_DetachAllReturnNone CleanupMode::DetachAllReturnNone
#define CleanupMode_DetachAllReturnHardDisksOnly CleanupMode::DetachAllReturnHardDisksOnly
#define CleanupMode_Full CleanupMode::Full

/* starting interface:    CloneMode */
#define CLONEMODE_IID_STR "a7a159fe-5096-4b8d-8c3c-d033cb0b35a8"

#define CLONEMODE_IID \
  {0xa7a159fe, 0x5096, 0x4b8d, \
    { 0x8c, 0x3c, 0xd0, 0x33, 0xcb, 0x0b, 0x35, 0xa8 }}

class NS_NO_VTABLE CloneMode {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(CLONEMODE_IID)

  enum { MachineState = 1U };

  enum { MachineAndChildStates = 2U };

  enum { AllStates = 3U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_CLONEMODE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_CLONEMODE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_CLONEMODE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public CloneMode
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_CLONEMODE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, CloneMode)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define CloneMode_T PRUint32
#define CloneMode_MachineState CloneMode::MachineState
#define CloneMode_MachineAndChildStates CloneMode::MachineAndChildStates
#define CloneMode_AllStates CloneMode::AllStates

/* starting interface:    CloneOptions */
#define CLONEOPTIONS_IID_STR "22243f8e-96ab-497c-8cf0-f40a566c630b"

#define CLONEOPTIONS_IID \
  {0x22243f8e, 0x96ab, 0x497c, \
    { 0x8c, 0xf0, 0xf4, 0x0a, 0x56, 0x6c, 0x63, 0x0b }}

class NS_NO_VTABLE CloneOptions {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(CLONEOPTIONS_IID)

  enum { Link = 1U };

  enum { KeepAllMACs = 2U };

  enum { KeepNATMACs = 3U };

  enum { KeepDiskNames = 4U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_CLONEOPTIONS \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_CLONEOPTIONS(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_CLONEOPTIONS(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public CloneOptions
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_CLONEOPTIONS

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, CloneOptions)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define CloneOptions_T PRUint32
#define CloneOptions_Link CloneOptions::Link
#define CloneOptions_KeepAllMACs CloneOptions::KeepAllMACs
#define CloneOptions_KeepNATMACs CloneOptions::KeepNATMACs
#define CloneOptions_KeepDiskNames CloneOptions::KeepDiskNames

/* starting interface:    AutostopType */
#define AUTOSTOPTYPE_IID_STR "6bb96740-cf34-470d-aab2-2cd48ea2e10e"

#define AUTOSTOPTYPE_IID \
  {0x6bb96740, 0xcf34, 0x470d, \
    { 0xaa, 0xb2, 0x2c, 0xd4, 0x8e, 0xa2, 0xe1, 0x0e }}

class NS_NO_VTABLE AutostopType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(AUTOSTOPTYPE_IID)

  enum { Disabled = 1U };

  enum { SaveState = 2U };

  enum { PowerOff = 3U };

  enum { AcpiShutdown = 4U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_AUTOSTOPTYPE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_AUTOSTOPTYPE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_AUTOSTOPTYPE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public AutostopType
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_AUTOSTOPTYPE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, AutostopType)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define AutostopType_T PRUint32
#define AutostopType_Disabled AutostopType::Disabled
#define AutostopType_SaveState AutostopType::SaveState
#define AutostopType_PowerOff AutostopType::PowerOff
#define AutostopType_AcpiShutdown AutostopType::AcpiShutdown

/* starting interface:    HostNetworkInterfaceMediumType */
#define HOSTNETWORKINTERFACEMEDIUMTYPE_IID_STR "1aa54aaf-2497-45a2-bfb1-8eb225e93d5b"

#define HOSTNETWORKINTERFACEMEDIUMTYPE_IID \
  {0x1aa54aaf, 0x2497, 0x45a2, \
    { 0xbf, 0xb1, 0x8e, 0xb2, 0x25, 0xe9, 0x3d, 0x5b }}

class NS_NO_VTABLE HostNetworkInterfaceMediumType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(HOSTNETWORKINTERFACEMEDIUMTYPE_IID)

  enum { Unknown = 0U };

  enum { Ethernet = 1U };

  enum { PPP = 2U };

  enum { SLIP = 3U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_HOSTNETWORKINTERFACEMEDIUMTYPE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_HOSTNETWORKINTERFACEMEDIUMTYPE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_HOSTNETWORKINTERFACEMEDIUMTYPE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public HostNetworkInterfaceMediumType
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_HOSTNETWORKINTERFACEMEDIUMTYPE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, HostNetworkInterfaceMediumType)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define HostNetworkInterfaceMediumType_T PRUint32
#define HostNetworkInterfaceMediumType_Unknown HostNetworkInterfaceMediumType::Unknown
#define HostNetworkInterfaceMediumType_Ethernet HostNetworkInterfaceMediumType::Ethernet
#define HostNetworkInterfaceMediumType_PPP HostNetworkInterfaceMediumType::PPP
#define HostNetworkInterfaceMediumType_SLIP HostNetworkInterfaceMediumType::SLIP

/* starting interface:    HostNetworkInterfaceStatus */
#define HOSTNETWORKINTERFACESTATUS_IID_STR "cc474a69-2710-434b-8d99-c38e5d5a6f41"

#define HOSTNETWORKINTERFACESTATUS_IID \
  {0xcc474a69, 0x2710, 0x434b, \
    { 0x8d, 0x99, 0xc3, 0x8e, 0x5d, 0x5a, 0x6f, 0x41 }}

class NS_NO_VTABLE HostNetworkInterfaceStatus {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(HOSTNETWORKINTERFACESTATUS_IID)

  enum { Unknown = 0U };

  enum { Up = 1U };

  enum { Down = 2U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_HOSTNETWORKINTERFACESTATUS \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_HOSTNETWORKINTERFACESTATUS(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_HOSTNETWORKINTERFACESTATUS(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public HostNetworkInterfaceStatus
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_HOSTNETWORKINTERFACESTATUS

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, HostNetworkInterfaceStatus)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define HostNetworkInterfaceStatus_T PRUint32
#define HostNetworkInterfaceStatus_Unknown HostNetworkInterfaceStatus::Unknown
#define HostNetworkInterfaceStatus_Up HostNetworkInterfaceStatus::Up
#define HostNetworkInterfaceStatus_Down HostNetworkInterfaceStatus::Down

/* starting interface:    HostNetworkInterfaceType */
#define HOSTNETWORKINTERFACETYPE_IID_STR "67431b00-9946-48a2-bc02-b25c5919f4f3"

#define HOSTNETWORKINTERFACETYPE_IID \
  {0x67431b00, 0x9946, 0x48a2, \
    { 0xbc, 0x02, 0xb2, 0x5c, 0x59, 0x19, 0xf4, 0xf3 }}

class NS_NO_VTABLE HostNetworkInterfaceType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(HOSTNETWORKINTERFACETYPE_IID)

  enum { Bridged = 1U };

  enum { HostOnly = 2U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_HOSTNETWORKINTERFACETYPE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_HOSTNETWORKINTERFACETYPE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_HOSTNETWORKINTERFACETYPE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public HostNetworkInterfaceType
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_HOSTNETWORKINTERFACETYPE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, HostNetworkInterfaceType)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define HostNetworkInterfaceType_T PRUint32
#define HostNetworkInterfaceType_Bridged HostNetworkInterfaceType::Bridged
#define HostNetworkInterfaceType_HostOnly HostNetworkInterfaceType::HostOnly

/* starting interface:    AdditionsFacilityType */
#define ADDITIONSFACILITYTYPE_IID_STR "98f7f957-89fb-49b6-a3b1-31e3285eb1d8"

#define ADDITIONSFACILITYTYPE_IID \
  {0x98f7f957, 0x89fb, 0x49b6, \
    { 0xa3, 0xb1, 0x31, 0xe3, 0x28, 0x5e, 0xb1, 0xd8 }}

class NS_NO_VTABLE AdditionsFacilityType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ADDITIONSFACILITYTYPE_IID)

  enum { None = 0U };

  enum { VBoxGuestDriver = 20U };

  enum { AutoLogon = 90U };

  enum { VBoxService = 100U };

  enum { VBoxTrayClient = 101U };

  enum { Seamless = 1000U };

  enum { Graphics = 1100U };

  enum { All = 2147483646U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ADDITIONSFACILITYTYPE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ADDITIONSFACILITYTYPE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ADDITIONSFACILITYTYPE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public AdditionsFacilityType
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_ADDITIONSFACILITYTYPE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, AdditionsFacilityType)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define AdditionsFacilityType_T PRUint32
#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_All AdditionsFacilityType::All

/* starting interface:    AdditionsFacilityClass */
#define ADDITIONSFACILITYCLASS_IID_STR "446451b2-c88d-4e5d-84c9-91bc7f533f5f"

#define ADDITIONSFACILITYCLASS_IID \
  {0x446451b2, 0xc88d, 0x4e5d, \
    { 0x84, 0xc9, 0x91, 0xbc, 0x7f, 0x53, 0x3f, 0x5f }}

class NS_NO_VTABLE AdditionsFacilityClass {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ADDITIONSFACILITYCLASS_IID)

  enum { None = 0U };

  enum { Driver = 10U };

  enum { Service = 30U };

  enum { Program = 50U };

  enum { Feature = 100U };

  enum { ThirdParty = 999U };

  enum { All = 2147483646U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ADDITIONSFACILITYCLASS \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ADDITIONSFACILITYCLASS(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ADDITIONSFACILITYCLASS(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public AdditionsFacilityClass
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_ADDITIONSFACILITYCLASS

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, AdditionsFacilityClass)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define AdditionsFacilityClass_T PRUint32
#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

/* starting interface:    AdditionsFacilityStatus */
#define ADDITIONSFACILITYSTATUS_IID_STR "ce06f9e1-394e-4fe9-9368-5a88c567dbde"

#define ADDITIONSFACILITYSTATUS_IID \
  {0xce06f9e1, 0x394e, 0x4fe9, \
    { 0x93, 0x68, 0x5a, 0x88, 0xc5, 0x67, 0xdb, 0xde }}

class NS_NO_VTABLE AdditionsFacilityStatus {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ADDITIONSFACILITYSTATUS_IID)

  enum { Inactive = 0U };

  enum { Paused = 1U };

  enum { PreInit = 20U };

  enum { Init = 30U };

  enum { Active = 50U };

  enum { Terminating = 100U };

  enum { Terminated = 101U };

  enum { Failed = 800U };

  enum { Unknown = 999U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ADDITIONSFACILITYSTATUS \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ADDITIONSFACILITYSTATUS(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ADDITIONSFACILITYSTATUS(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public AdditionsFacilityStatus
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_ADDITIONSFACILITYSTATUS

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, AdditionsFacilityStatus)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define AdditionsFacilityStatus_T PRUint32
#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

/* starting interface:    AdditionsRunLevelType */
#define ADDITIONSRUNLEVELTYPE_IID_STR "a25417ee-a9dd-4f5b-b0dc-377860087754"

#define ADDITIONSRUNLEVELTYPE_IID \
  {0xa25417ee, 0xa9dd, 0x4f5b, \
    { 0xb0, 0xdc, 0x37, 0x78, 0x60, 0x08, 0x77, 0x54 }}

class NS_NO_VTABLE AdditionsRunLevelType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ADDITIONSRUNLEVELTYPE_IID)

  enum { None = 0U };

  enum { System = 1U };

  enum { Userland = 2U };

  enum { Desktop = 3U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ADDITIONSRUNLEVELTYPE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ADDITIONSRUNLEVELTYPE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ADDITIONSRUNLEVELTYPE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public AdditionsRunLevelType
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_ADDITIONSRUNLEVELTYPE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, AdditionsRunLevelType)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define AdditionsRunLevelType_T PRUint32
#define AdditionsRunLevelType_None AdditionsRunLevelType::None
#define AdditionsRunLevelType_System AdditionsRunLevelType::System
#define AdditionsRunLevelType_Userland AdditionsRunLevelType::Userland
#define AdditionsRunLevelType_Desktop AdditionsRunLevelType::Desktop

/* starting interface:    AdditionsUpdateFlag */
#define ADDITIONSUPDATEFLAG_IID_STR "726a818d-18d6-4389-94e8-3e9e6826171a"

#define ADDITIONSUPDATEFLAG_IID \
  {0x726a818d, 0x18d6, 0x4389, \
    { 0x94, 0xe8, 0x3e, 0x9e, 0x68, 0x26, 0x17, 0x1a }}

class NS_NO_VTABLE AdditionsUpdateFlag {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ADDITIONSUPDATEFLAG_IID)

  enum { None = 0U };

  enum { WaitForUpdateStartOnly = 1U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ADDITIONSUPDATEFLAG \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ADDITIONSUPDATEFLAG(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ADDITIONSUPDATEFLAG(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public AdditionsUpdateFlag
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_ADDITIONSUPDATEFLAG

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, AdditionsUpdateFlag)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define AdditionsUpdateFlag_T PRUint32
#define AdditionsUpdateFlag_None AdditionsUpdateFlag::None
#define AdditionsUpdateFlag_WaitForUpdateStartOnly AdditionsUpdateFlag::WaitForUpdateStartOnly

/* starting interface:    GuestSessionStatus */
#define GUESTSESSIONSTATUS_IID_STR "ac2669da-4624-44f2-85b5-0b0bfb8d8673"

#define GUESTSESSIONSTATUS_IID \
  {0xac2669da, 0x4624, 0x44f2, \
    { 0x85, 0xb5, 0x0b, 0x0b, 0xfb, 0x8d, 0x86, 0x73 }}

class NS_NO_VTABLE GuestSessionStatus {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(GUESTSESSIONSTATUS_IID)

  enum { Undefined = 0U };

  enum { Starting = 10U };

  enum { Started = 100U };

  enum { Terminating = 480U };

  enum { Terminated = 500U };

  enum { TimedOutKilled = 512U };

  enum { TimedOutAbnormally = 513U };

  enum { Down = 600U };

  enum { Error = 800U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_GUESTSESSIONSTATUS \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_GUESTSESSIONSTATUS(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_GUESTSESSIONSTATUS(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public GuestSessionStatus
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_GUESTSESSIONSTATUS

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, GuestSessionStatus)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define GuestSessionStatus_T PRUint32
#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

/* starting interface:    GuestSessionWaitForFlag */
#define GUESTSESSIONWAITFORFLAG_IID_STR "bb7a372a-f635-4e11-a81a-e707f3a52ef5"

#define GUESTSESSIONWAITFORFLAG_IID \
  {0xbb7a372a, 0xf635, 0x4e11, \
    { 0xa8, 0x1a, 0xe7, 0x07, 0xf3, 0xa5, 0x2e, 0xf5 }}

class NS_NO_VTABLE GuestSessionWaitForFlag {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(GUESTSESSIONWAITFORFLAG_IID)

  enum { None = 0U };

  enum { Start = 1U };

  enum { Terminate = 2U };

  enum { Status = 4U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_GUESTSESSIONWAITFORFLAG \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_GUESTSESSIONWAITFORFLAG(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_GUESTSESSIONWAITFORFLAG(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public GuestSessionWaitForFlag
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_GUESTSESSIONWAITFORFLAG

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, GuestSessionWaitForFlag)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define GuestSessionWaitForFlag_T PRUint32
#define GuestSessionWaitForFlag_None GuestSessionWaitForFlag::None
#define GuestSessionWaitForFlag_Start GuestSessionWaitForFlag::Start
#define GuestSessionWaitForFlag_Terminate GuestSessionWaitForFlag::Terminate
#define GuestSessionWaitForFlag_Status GuestSessionWaitForFlag::Status

/* starting interface:    GuestSessionWaitResult */
#define GUESTSESSIONWAITRESULT_IID_STR "c0f6a8a5-fdb6-42bf-a582-56c6f82bcd2d"

#define GUESTSESSIONWAITRESULT_IID \
  {0xc0f6a8a5, 0xfdb6, 0x42bf, \
    { 0xa5, 0x82, 0x56, 0xc6, 0xf8, 0x2b, 0xcd, 0x2d }}

class NS_NO_VTABLE GuestSessionWaitResult {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(GUESTSESSIONWAITRESULT_IID)

  enum { None = 0U };

  enum { Start = 1U };

  enum { Terminate = 2U };

  enum { Status = 3U };

  enum { Error = 4U };

  enum { Timeout = 5U };

  enum { WaitFlagNotSupported = 6U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_GUESTSESSIONWAITRESULT \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_GUESTSESSIONWAITRESULT(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_GUESTSESSIONWAITRESULT(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public GuestSessionWaitResult
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_GUESTSESSIONWAITRESULT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, GuestSessionWaitResult)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define GuestSessionWaitResult_T PRUint32
#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

/* starting interface:    GuestUserState */
#define GUESTUSERSTATE_IID_STR "b2a82b02-fd3d-4fc2-ba84-6ba5ac8be198"

#define GUESTUSERSTATE_IID \
  {0xb2a82b02, 0xfd3d, 0x4fc2, \
    { 0xba, 0x84, 0x6b, 0xa5, 0xac, 0x8b, 0xe1, 0x98 }}

class NS_NO_VTABLE GuestUserState {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(GUESTUSERSTATE_IID)

  enum { Unknown = 0U };

  enum { LoggedIn = 1U };

  enum { LoggedOut = 2U };

  enum { Locked = 3U };

  enum { Unlocked = 4U };

  enum { Disabled = 5U };

  enum { Idle = 6U };

  enum { InUse = 7U };

  enum { Created = 8U };

  enum { Deleted = 9U };

  enum { SessionChanged = 10U };

  enum { CredentialsChanged = 11U };

  enum { RoleChanged = 12U };

  enum { GroupAdded = 13U };

  enum { GroupRemoved = 14U };

  enum { Elevated = 15U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_GUESTUSERSTATE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_GUESTUSERSTATE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_GUESTUSERSTATE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public GuestUserState
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_GUESTUSERSTATE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, GuestUserState)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define GuestUserState_T PRUint32
#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

/* starting interface:    FileSeekOrigin */
#define FILESEEKORIGIN_IID_STR "ad32f789-4279-4530-979c-f16892e1c263"

#define FILESEEKORIGIN_IID \
  {0xad32f789, 0x4279, 0x4530, \
    { 0x97, 0x9c, 0xf1, 0x68, 0x92, 0xe1, 0xc2, 0x63 }}

class NS_NO_VTABLE FileSeekOrigin {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FILESEEKORIGIN_IID)

  enum { Begin = 0U };

  enum { Current = 1U };

  enum { End = 2U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FILESEEKORIGIN \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FILESEEKORIGIN(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_FILESEEKORIGIN(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public FileSeekOrigin
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FILESEEKORIGIN

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, FileSeekOrigin)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define FileSeekOrigin_T PRUint32
#define FileSeekOrigin_Begin FileSeekOrigin::Begin
#define FileSeekOrigin_Current FileSeekOrigin::Current
#define FileSeekOrigin_End FileSeekOrigin::End

/* starting interface:    ProcessInputFlag */
#define PROCESSINPUTFLAG_IID_STR "5d38c1dd-2604-4ddf-92e5-0c0cdd3bdbd5"

#define PROCESSINPUTFLAG_IID \
  {0x5d38c1dd, 0x2604, 0x4ddf, \
    { 0x92, 0xe5, 0x0c, 0x0c, 0xdd, 0x3b, 0xdb, 0xd5 }}

class NS_NO_VTABLE ProcessInputFlag {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(PROCESSINPUTFLAG_IID)

  enum { None = 0U };

  enum { EndOfFile = 1U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_PROCESSINPUTFLAG \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_PROCESSINPUTFLAG(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_PROCESSINPUTFLAG(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public ProcessInputFlag
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_PROCESSINPUTFLAG

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, ProcessInputFlag)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define ProcessInputFlag_T PRUint32
#define ProcessInputFlag_None ProcessInputFlag::None
#define ProcessInputFlag_EndOfFile ProcessInputFlag::EndOfFile

/* starting interface:    ProcessOutputFlag */
#define PROCESSOUTPUTFLAG_IID_STR "9979e85a-52bb-40b7-870c-57115e27e0f1"

#define PROCESSOUTPUTFLAG_IID \
  {0x9979e85a, 0x52bb, 0x40b7, \
    { 0x87, 0x0c, 0x57, 0x11, 0x5e, 0x27, 0xe0, 0xf1 }}

class NS_NO_VTABLE ProcessOutputFlag {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(PROCESSOUTPUTFLAG_IID)

  enum { None = 0U };

  enum { StdErr = 1U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_PROCESSOUTPUTFLAG \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_PROCESSOUTPUTFLAG(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_PROCESSOUTPUTFLAG(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public ProcessOutputFlag
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_PROCESSOUTPUTFLAG

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, ProcessOutputFlag)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define ProcessOutputFlag_T PRUint32
#define ProcessOutputFlag_None ProcessOutputFlag::None
#define ProcessOutputFlag_StdErr ProcessOutputFlag::StdErr

/* starting interface:    ProcessWaitForFlag */
#define PROCESSWAITFORFLAG_IID_STR "23b550c7-78e1-437e-98f0-65fd9757bcd2"

#define PROCESSWAITFORFLAG_IID \
  {0x23b550c7, 0x78e1, 0x437e, \
    { 0x98, 0xf0, 0x65, 0xfd, 0x97, 0x57, 0xbc, 0xd2 }}

class NS_NO_VTABLE ProcessWaitForFlag {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(PROCESSWAITFORFLAG_IID)

  enum { None = 0U };

  enum { Start = 1U };

  enum { Terminate = 2U };

  enum { StdIn = 4U };

  enum { StdOut = 8U };

  enum { StdErr = 16U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_PROCESSWAITFORFLAG \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_PROCESSWAITFORFLAG(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_PROCESSWAITFORFLAG(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public ProcessWaitForFlag
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_PROCESSWAITFORFLAG

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, ProcessWaitForFlag)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define ProcessWaitForFlag_T PRUint32
#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

/* starting interface:    ProcessWaitResult */
#define PROCESSWAITRESULT_IID_STR "40719cbe-f192-4fe9-a231-6697b3c8e2b4"

#define PROCESSWAITRESULT_IID \
  {0x40719cbe, 0xf192, 0x4fe9, \
    { 0xa2, 0x31, 0x66, 0x97, 0xb3, 0xc8, 0xe2, 0xb4 }}

class NS_NO_VTABLE ProcessWaitResult {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(PROCESSWAITRESULT_IID)

  enum { None = 0U };

  enum { Start = 1U };

  enum { Terminate = 2U };

  enum { Status = 3U };

  enum { Error = 4U };

  enum { Timeout = 5U };

  enum { StdIn = 6U };

  enum { StdOut = 7U };

  enum { StdErr = 8U };

  enum { WaitFlagNotSupported = 9U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_PROCESSWAITRESULT \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_PROCESSWAITRESULT(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_PROCESSWAITRESULT(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public ProcessWaitResult
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_PROCESSWAITRESULT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, ProcessWaitResult)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define ProcessWaitResult_T PRUint32
#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

/* starting interface:    FileCopyFlag */
#define FILECOPYFLAG_IID_STR "791909d7-4c64-2fa4-4303-adb10658d347"

#define FILECOPYFLAG_IID \
  {0x791909d7, 0x4c64, 0x2fa4, \
    { 0x43, 0x03, 0xad, 0xb1, 0x06, 0x58, 0xd3, 0x47 }}

class NS_NO_VTABLE FileCopyFlag {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FILECOPYFLAG_IID)

  enum { None = 0U };

  enum { NoReplace = 1U };

  enum { FollowLinks = 2U };

  enum { Update = 4U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FILECOPYFLAG \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FILECOPYFLAG(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_FILECOPYFLAG(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public FileCopyFlag
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FILECOPYFLAG

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, FileCopyFlag)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define FileCopyFlag_T PRUint32
#define FileCopyFlag_None FileCopyFlag::None
#define FileCopyFlag_NoReplace FileCopyFlag::NoReplace
#define FileCopyFlag_FollowLinks FileCopyFlag::FollowLinks
#define FileCopyFlag_Update FileCopyFlag::Update

/* starting interface:    FsObjMoveFlags */
#define FSOBJMOVEFLAGS_IID_STR "98fdd11f-4063-ac60-5737-e49092aab95f"

#define FSOBJMOVEFLAGS_IID \
  {0x98fdd11f, 0x4063, 0xac60, \
    { 0x57, 0x37, 0xe4, 0x90, 0x92, 0xaa, 0xb9, 0x5f }}

class NS_NO_VTABLE FsObjMoveFlags {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FSOBJMOVEFLAGS_IID)

  enum { None = 0U };

  enum { Replace = 1U };

  enum { FollowLinks = 2U };

  enum { AllowDirectoryMoves = 4U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FSOBJMOVEFLAGS \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FSOBJMOVEFLAGS(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_FSOBJMOVEFLAGS(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public FsObjMoveFlags
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FSOBJMOVEFLAGS

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, FsObjMoveFlags)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define FsObjMoveFlags_T PRUint32
#define FsObjMoveFlags_None FsObjMoveFlags::None
#define FsObjMoveFlags_Replace FsObjMoveFlags::Replace
#define FsObjMoveFlags_FollowLinks FsObjMoveFlags::FollowLinks
#define FsObjMoveFlags_AllowDirectoryMoves FsObjMoveFlags::AllowDirectoryMoves

/* starting interface:    DirectoryCreateFlag */
#define DIRECTORYCREATEFLAG_IID_STR "bd721b0e-ced5-4f79-b368-249897c32a36"

#define DIRECTORYCREATEFLAG_IID \
  {0xbd721b0e, 0xced5, 0x4f79, \
    { 0xb3, 0x68, 0x24, 0x98, 0x97, 0xc3, 0x2a, 0x36 }}

class NS_NO_VTABLE DirectoryCreateFlag {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(DIRECTORYCREATEFLAG_IID)

  enum { None = 0U };

  enum { Parents = 1U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_DIRECTORYCREATEFLAG \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_DIRECTORYCREATEFLAG(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_DIRECTORYCREATEFLAG(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public DirectoryCreateFlag
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_DIRECTORYCREATEFLAG

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, DirectoryCreateFlag)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define DirectoryCreateFlag_T PRUint32
#define DirectoryCreateFlag_None DirectoryCreateFlag::None
#define DirectoryCreateFlag_Parents DirectoryCreateFlag::Parents

/* starting interface:    DirectoryCopyFlags */
#define DIRECTORYCOPYFLAGS_IID_STR "cc500f0c-4a54-88c9-56b3-7e9310416da7"

#define DIRECTORYCOPYFLAGS_IID \
  {0xcc500f0c, 0x4a54, 0x88c9, \
    { 0x56, 0xb3, 0x7e, 0x93, 0x10, 0x41, 0x6d, 0xa7 }}

class NS_NO_VTABLE DirectoryCopyFlags {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(DIRECTORYCOPYFLAGS_IID)

  enum { None = 0U };

  enum { CopyIntoExisting = 1U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_DIRECTORYCOPYFLAGS \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_DIRECTORYCOPYFLAGS(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_DIRECTORYCOPYFLAGS(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public DirectoryCopyFlags
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_DIRECTORYCOPYFLAGS

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, DirectoryCopyFlags)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define DirectoryCopyFlags_T PRUint32
#define DirectoryCopyFlags_None DirectoryCopyFlags::None
#define DirectoryCopyFlags_CopyIntoExisting DirectoryCopyFlags::CopyIntoExisting

/* starting interface:    DirectoryRemoveRecFlag */
#define DIRECTORYREMOVERECFLAG_IID_STR "455aabf0-7692-48f6-9061-f21579b65769"

#define DIRECTORYREMOVERECFLAG_IID \
  {0x455aabf0, 0x7692, 0x48f6, \
    { 0x90, 0x61, 0xf2, 0x15, 0x79, 0xb6, 0x57, 0x69 }}

class NS_NO_VTABLE DirectoryRemoveRecFlag {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(DIRECTORYREMOVERECFLAG_IID)

  enum { None = 0U };

  enum { ContentAndDir = 1U };

  enum { ContentOnly = 2U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_DIRECTORYREMOVERECFLAG \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_DIRECTORYREMOVERECFLAG(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_DIRECTORYREMOVERECFLAG(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public DirectoryRemoveRecFlag
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_DIRECTORYREMOVERECFLAG

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, DirectoryRemoveRecFlag)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define DirectoryRemoveRecFlag_T PRUint32
#define DirectoryRemoveRecFlag_None DirectoryRemoveRecFlag::None
#define DirectoryRemoveRecFlag_ContentAndDir DirectoryRemoveRecFlag::ContentAndDir
#define DirectoryRemoveRecFlag_ContentOnly DirectoryRemoveRecFlag::ContentOnly

/* starting interface:    FsObjRenameFlag */
#define FSOBJRENAMEFLAG_IID_STR "59bbf3a1-4e23-d7cf-05d5-ccae32080ed2"

#define FSOBJRENAMEFLAG_IID \
  {0x59bbf3a1, 0x4e23, 0xd7cf, \
    { 0x05, 0xd5, 0xcc, 0xae, 0x32, 0x08, 0x0e, 0xd2 }}

class NS_NO_VTABLE FsObjRenameFlag {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FSOBJRENAMEFLAG_IID)

  enum { NoReplace = 0U };

  enum { Replace = 1U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FSOBJRENAMEFLAG \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FSOBJRENAMEFLAG(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_FSOBJRENAMEFLAG(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public FsObjRenameFlag
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FSOBJRENAMEFLAG

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, FsObjRenameFlag)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define FsObjRenameFlag_T PRUint32
#define FsObjRenameFlag_NoReplace FsObjRenameFlag::NoReplace
#define FsObjRenameFlag_Replace FsObjRenameFlag::Replace

/* starting interface:    ProcessCreateFlag */
#define PROCESSCREATEFLAG_IID_STR "be8c8dbd-4a76-e9ac-20df-468e86edf383"

#define PROCESSCREATEFLAG_IID \
  {0xbe8c8dbd, 0x4a76, 0xe9ac, \
    { 0x20, 0xdf, 0x46, 0x8e, 0x86, 0xed, 0xf3, 0x83 }}

class NS_NO_VTABLE ProcessCreateFlag {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(PROCESSCREATEFLAG_IID)

  enum { None = 0U };

  enum { WaitForProcessStartOnly = 1U };

  enum { IgnoreOrphanedProcesses = 2U };

  enum { Hidden = 4U };

  enum { NoProfile = 8U };

  enum { WaitForStdOut = 16U };

  enum { WaitForStdErr = 32U };

  enum { ExpandArguments = 64U };

  enum { UnquotedArguments = 128U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_PROCESSCREATEFLAG \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_PROCESSCREATEFLAG(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_PROCESSCREATEFLAG(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public ProcessCreateFlag
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_PROCESSCREATEFLAG

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, ProcessCreateFlag)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define ProcessCreateFlag_T PRUint32
#define ProcessCreateFlag_None ProcessCreateFlag::None
#define ProcessCreateFlag_WaitForProcessStartOnly ProcessCreateFlag::WaitForProcessStartOnly
#define ProcessCreateFlag_IgnoreOrphanedProcesses ProcessCreateFlag::IgnoreOrphanedProcesses
#define ProcessCreateFlag_Hidden ProcessCreateFlag::Hidden
#define ProcessCreateFlag_NoProfile ProcessCreateFlag::NoProfile
#define ProcessCreateFlag_WaitForStdOut ProcessCreateFlag::WaitForStdOut
#define ProcessCreateFlag_WaitForStdErr ProcessCreateFlag::WaitForStdErr
#define ProcessCreateFlag_ExpandArguments ProcessCreateFlag::ExpandArguments
#define ProcessCreateFlag_UnquotedArguments ProcessCreateFlag::UnquotedArguments

/* starting interface:    ProcessPriority */
#define PROCESSPRIORITY_IID_STR "ee8cac50-e232-49fe-806b-d1214d9c2e49"

#define PROCESSPRIORITY_IID \
  {0xee8cac50, 0xe232, 0x49fe, \
    { 0x80, 0x6b, 0xd1, 0x21, 0x4d, 0x9c, 0x2e, 0x49 }}

class NS_NO_VTABLE ProcessPriority {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(PROCESSPRIORITY_IID)

  enum { Invalid = 0U };

  enum { Default = 1U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_PROCESSPRIORITY \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_PROCESSPRIORITY(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_PROCESSPRIORITY(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public ProcessPriority
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_PROCESSPRIORITY

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, ProcessPriority)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define ProcessPriority_T PRUint32
#define ProcessPriority_Invalid ProcessPriority::Invalid
#define ProcessPriority_Default ProcessPriority::Default

/* starting interface:    SymlinkType */
#define SYMLINKTYPE_IID_STR "37794668-f8f1-4714-98a5-6f8fa2ed0118"

#define SYMLINKTYPE_IID \
  {0x37794668, 0xf8f1, 0x4714, \
    { 0x98, 0xa5, 0x6f, 0x8f, 0xa2, 0xed, 0x01, 0x18 }}

class NS_NO_VTABLE SymlinkType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(SYMLINKTYPE_IID)

  enum { Unknown = 0U };

  enum { Directory = 1U };

  enum { File = 2U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_SYMLINKTYPE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_SYMLINKTYPE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_SYMLINKTYPE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public SymlinkType
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_SYMLINKTYPE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, SymlinkType)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define SymlinkType_T PRUint32
#define SymlinkType_Unknown SymlinkType::Unknown
#define SymlinkType_Directory SymlinkType::Directory
#define SymlinkType_File SymlinkType::File

/* starting interface:    SymlinkReadFlag */
#define SYMLINKREADFLAG_IID_STR "b7fe2b9d-790e-4b25-8adf-1ca33026931f"

#define SYMLINKREADFLAG_IID \
  {0xb7fe2b9d, 0x790e, 0x4b25, \
    { 0x8a, 0xdf, 0x1c, 0xa3, 0x30, 0x26, 0x93, 0x1f }}

class NS_NO_VTABLE SymlinkReadFlag {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(SYMLINKREADFLAG_IID)

  enum { None = 0U };

  enum { NoSymlinks = 1U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_SYMLINKREADFLAG \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_SYMLINKREADFLAG(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_SYMLINKREADFLAG(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public SymlinkReadFlag
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_SYMLINKREADFLAG

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, SymlinkReadFlag)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define SymlinkReadFlag_T PRUint32
#define SymlinkReadFlag_None SymlinkReadFlag::None
#define SymlinkReadFlag_NoSymlinks SymlinkReadFlag::NoSymlinks

/* starting interface:    ProcessStatus */
#define PROCESSSTATUS_IID_STR "4d52368f-5b48-4bfe-b486-acf89139b52f"

#define PROCESSSTATUS_IID \
  {0x4d52368f, 0x5b48, 0x4bfe, \
    { 0xb4, 0x86, 0xac, 0xf8, 0x91, 0x39, 0xb5, 0x2f }}

class NS_NO_VTABLE ProcessStatus {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(PROCESSSTATUS_IID)

  enum { Undefined = 0U };

  enum { Starting = 10U };

  enum { Started = 100U };

  enum { Paused = 110U };

  enum { Terminating = 480U };

  enum { TerminatedNormally = 500U };

  enum { TerminatedSignal = 510U };

  enum { TerminatedAbnormally = 511U };

  enum { TimedOutKilled = 512U };

  enum { TimedOutAbnormally = 513U };

  enum { Down = 600U };

  enum { Error = 800U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_PROCESSSTATUS \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_PROCESSSTATUS(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_PROCESSSTATUS(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public ProcessStatus
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_PROCESSSTATUS

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, ProcessStatus)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define ProcessStatus_T PRUint32
#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

/* starting interface:    ProcessInputStatus */
#define PROCESSINPUTSTATUS_IID_STR "a4a0ef9c-29cc-4805-9803-c8215ae9da6c"

#define PROCESSINPUTSTATUS_IID \
  {0xa4a0ef9c, 0x29cc, 0x4805, \
    { 0x98, 0x03, 0xc8, 0x21, 0x5a, 0xe9, 0xda, 0x6c }}

class NS_NO_VTABLE ProcessInputStatus {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(PROCESSINPUTSTATUS_IID)

  enum { Undefined = 0U };

  enum { Broken = 1U };

  enum { Available = 10U };

  enum { Written = 50U };

  enum { Overflow = 100U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_PROCESSINPUTSTATUS \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_PROCESSINPUTSTATUS(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_PROCESSINPUTSTATUS(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public ProcessInputStatus
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_PROCESSINPUTSTATUS

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, ProcessInputStatus)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define ProcessInputStatus_T PRUint32
#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

/* starting interface:    PathStyle */
#define PATHSTYLE_IID_STR "97303a5b-42e8-0a55-d16f-d2a92c295261"

#define PATHSTYLE_IID \
  {0x97303a5b, 0x42e8, 0x0a55, \
    { 0xd1, 0x6f, 0xd2, 0xa9, 0x2c, 0x29, 0x52, 0x61 }}

class NS_NO_VTABLE PathStyle {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(PATHSTYLE_IID)

  enum { DOS = 1U };

  enum { UNIX = 2U };

  enum { Unknown = 8U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_PATHSTYLE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_PATHSTYLE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_PATHSTYLE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public PathStyle
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_PATHSTYLE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, PathStyle)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define PathStyle_T PRUint32
#define PathStyle_DOS PathStyle::DOS
#define PathStyle_UNIX PathStyle::UNIX
#define PathStyle_Unknown PathStyle::Unknown

/* starting interface:    FileAccessMode */
#define FILEACCESSMODE_IID_STR "231a578f-47fb-ea30-3b3e-8489558227f0"

#define FILEACCESSMODE_IID \
  {0x231a578f, 0x47fb, 0xea30, \
    { 0x3b, 0x3e, 0x84, 0x89, 0x55, 0x82, 0x27, 0xf0 }}

class NS_NO_VTABLE FileAccessMode {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FILEACCESSMODE_IID)

  enum { ReadOnly = 1U };

  enum { WriteOnly = 2U };

  enum { ReadWrite = 3U };

  enum { AppendOnly = 4U };

  enum { AppendRead = 5U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FILEACCESSMODE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FILEACCESSMODE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_FILEACCESSMODE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public FileAccessMode
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FILEACCESSMODE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, FileAccessMode)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define FileAccessMode_T PRUint32
#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

/* starting interface:    FileOpenAction */
#define FILEOPENACTION_IID_STR "12bc97e2-4fc6-a8b4-4f84-0cbf4ab970d2"

#define FILEOPENACTION_IID \
  {0x12bc97e2, 0x4fc6, 0xa8b4, \
    { 0x4f, 0x84, 0x0c, 0xbf, 0x4a, 0xb9, 0x70, 0xd2 }}

class NS_NO_VTABLE FileOpenAction {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FILEOPENACTION_IID)

  enum { OpenExisting = 1U };

  enum { OpenOrCreate = 2U };

  enum { CreateNew = 3U };

  enum { CreateOrReplace = 4U };

  enum { OpenExistingTruncated = 5U };

  enum { AppendOrCreate = 99U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FILEOPENACTION \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FILEOPENACTION(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_FILEOPENACTION(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public FileOpenAction
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FILEOPENACTION

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, FileOpenAction)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define FileOpenAction_T PRUint32
#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

/* starting interface:    FileSharingMode */
#define FILESHARINGMODE_IID_STR "f87dfe58-425b-c5ba-7d6d-22adeea25de1"

#define FILESHARINGMODE_IID \
  {0xf87dfe58, 0x425b, 0xc5ba, \
    { 0x7d, 0x6d, 0x22, 0xad, 0xee, 0xa2, 0x5d, 0xe1 }}

class NS_NO_VTABLE FileSharingMode {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FILESHARINGMODE_IID)

  enum { Read = 1U };

  enum { Write = 2U };

  enum { ReadWrite = 3U };

  enum { Delete = 4U };

  enum { ReadDelete = 5U };

  enum { WriteDelete = 6U };

  enum { All = 7U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FILESHARINGMODE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FILESHARINGMODE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_FILESHARINGMODE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public FileSharingMode
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FILESHARINGMODE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, FileSharingMode)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define FileSharingMode_T PRUint32
#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

/* starting interface:    FileOpenExFlags */
#define FILEOPENEXFLAGS_IID_STR "9d62017b-ddd3-4e5a-a08e-14d1c23bbac1"

#define FILEOPENEXFLAGS_IID \
  {0x9d62017b, 0xddd3, 0x4e5a, \
    { 0xa0, 0x8e, 0x14, 0xd1, 0xc2, 0x3b, 0xba, 0xc1 }}

class NS_NO_VTABLE FileOpenExFlags {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FILEOPENEXFLAGS_IID)

  enum { None = 0U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FILEOPENEXFLAGS \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FILEOPENEXFLAGS(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_FILEOPENEXFLAGS(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public FileOpenExFlags
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FILEOPENEXFLAGS

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, FileOpenExFlags)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define FileOpenExFlags_T PRUint32
#define FileOpenExFlags_None FileOpenExFlags::None

/* starting interface:    FileStatus */
#define FILESTATUS_IID_STR "8c86468b-b97b-4080-8914-e29f5b0abd2c"

#define FILESTATUS_IID \
  {0x8c86468b, 0xb97b, 0x4080, \
    { 0x89, 0x14, 0xe2, 0x9f, 0x5b, 0x0a, 0xbd, 0x2c }}

class NS_NO_VTABLE FileStatus {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FILESTATUS_IID)

  enum { Undefined = 0U };

  enum { Opening = 10U };

  enum { Open = 100U };

  enum { Closing = 150U };

  enum { Closed = 200U };

  enum { Down = 600U };

  enum { Error = 800U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FILESTATUS \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FILESTATUS(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_FILESTATUS(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public FileStatus
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FILESTATUS

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, FileStatus)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define FileStatus_T PRUint32
#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

/* starting interface:    FsObjType */
#define FSOBJTYPE_IID_STR "34a0d1aa-491e-e209-e150-84964d6cee5f"

#define FSOBJTYPE_IID \
  {0x34a0d1aa, 0x491e, 0xe209, \
    { 0xe1, 0x50, 0x84, 0x96, 0x4d, 0x6c, 0xee, 0x5f }}

class NS_NO_VTABLE FsObjType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FSOBJTYPE_IID)

  enum { Unknown = 1U };

  enum { Fifo = 2U };

  enum { DevChar = 3U };

  enum { Directory = 4U };

  enum { DevBlock = 5U };

  enum { File = 6U };

  enum { Symlink = 7U };

  enum { Socket = 8U };

  enum { WhiteOut = 9U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FSOBJTYPE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FSOBJTYPE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_FSOBJTYPE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public FsObjType
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FSOBJTYPE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, FsObjType)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define FsObjType_T PRUint32
#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

/* starting interface:    DnDAction */
#define DNDACTION_IID_STR "17609e74-778e-4d0e-8827-35f5230f287b"

#define DNDACTION_IID \
  {0x17609e74, 0x778e, 0x4d0e, \
    { 0x88, 0x27, 0x35, 0xf5, 0x23, 0x0f, 0x28, 0x7b }}

class NS_NO_VTABLE DnDAction {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(DNDACTION_IID)

  enum { Ignore = 0U };

  enum { Copy = 1U };

  enum { Move = 2U };

  enum { Link = 3U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_DNDACTION \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_DNDACTION(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_DNDACTION(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public DnDAction
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_DNDACTION

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, DnDAction)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define DnDAction_T PRUint32
#define DnDAction_Ignore DnDAction::Ignore
#define DnDAction_Copy DnDAction::Copy
#define DnDAction_Move DnDAction::Move
#define DnDAction_Link DnDAction::Link

/* starting interface:    DirectoryOpenFlag */
#define DIRECTORYOPENFLAG_IID_STR "5138837a-8fd2-4194-a1b0-08f7bc3949d0"

#define DIRECTORYOPENFLAG_IID \
  {0x5138837a, 0x8fd2, 0x4194, \
    { 0xa1, 0xb0, 0x08, 0xf7, 0xbc, 0x39, 0x49, 0xd0 }}

class NS_NO_VTABLE DirectoryOpenFlag {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(DIRECTORYOPENFLAG_IID)

  enum { None = 0U };

  enum { NoSymlinks = 1U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_DIRECTORYOPENFLAG \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_DIRECTORYOPENFLAG(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_DIRECTORYOPENFLAG(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public DirectoryOpenFlag
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_DIRECTORYOPENFLAG

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, DirectoryOpenFlag)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define DirectoryOpenFlag_T PRUint32
#define DirectoryOpenFlag_None DirectoryOpenFlag::None
#define DirectoryOpenFlag_NoSymlinks DirectoryOpenFlag::NoSymlinks

/* starting interface:    MediumState */
#define MEDIUMSTATE_IID_STR "ef41e980-e012-43cd-9dea-479d4ef14d13"

#define MEDIUMSTATE_IID \
  {0xef41e980, 0xe012, 0x43cd, \
    { 0x9d, 0xea, 0x47, 0x9d, 0x4e, 0xf1, 0x4d, 0x13 }}

class NS_NO_VTABLE MediumState {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(MEDIUMSTATE_IID)

  enum { NotCreated = 0U };

  enum { Created = 1U };

  enum { LockedRead = 2U };

  enum { LockedWrite = 3U };

  enum { Inaccessible = 4U };

  enum { Creating = 5U };

  enum { Deleting = 6U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_MEDIUMSTATE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_MEDIUMSTATE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_MEDIUMSTATE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public MediumState
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_MEDIUMSTATE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, MediumState)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define MediumState_T PRUint32
#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

/* starting interface:    MediumType */
#define MEDIUMTYPE_IID_STR "fe663fb5-c244-4e1b-9d81-c628b417dd04"

#define MEDIUMTYPE_IID \
  {0xfe663fb5, 0xc244, 0x4e1b, \
    { 0x9d, 0x81, 0xc6, 0x28, 0xb4, 0x17, 0xdd, 0x04 }}

class NS_NO_VTABLE MediumType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(MEDIUMTYPE_IID)

  enum { Normal = 0U };

  enum { Immutable = 1U };

  enum { Writethrough = 2U };

  enum { Shareable = 3U };

  enum { Readonly = 4U };

  enum { MultiAttach = 5U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_MEDIUMTYPE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_MEDIUMTYPE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_MEDIUMTYPE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public MediumType
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_MEDIUMTYPE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, MediumType)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define MediumType_T PRUint32
#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

/* starting interface:    MediumVariant */
#define MEDIUMVARIANT_IID_STR "0282e97f-4ef3-4411-a8e0-47c384803cb6"

#define MEDIUMVARIANT_IID \
  {0x0282e97f, 0x4ef3, 0x4411, \
    { 0xa8, 0xe0, 0x47, 0xc3, 0x84, 0x80, 0x3c, 0xb6 }}

class NS_NO_VTABLE MediumVariant {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(MEDIUMVARIANT_IID)

  enum { Standard = 0U };

  enum { VmdkSplit2G = 1U };

  enum { VmdkRawDisk = 2U };

  enum { VmdkStreamOptimized = 4U };

  enum { VmdkESX = 8U };

  enum { VdiZeroExpand = 256U };

  enum { Fixed = 65536U };

  enum { Diff = 131072U };

  enum { NoCreateDir = 1073741824U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_MEDIUMVARIANT \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_MEDIUMVARIANT(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_MEDIUMVARIANT(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public MediumVariant
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_MEDIUMVARIANT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, MediumVariant)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define MediumVariant_T PRUint32
#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_NoCreateDir MediumVariant::NoCreateDir

/* starting interface:    DataType */
#define DATATYPE_IID_STR "d90ea51e-a3f1-4a01-beb1-c1723c0d3ba7"

#define DATATYPE_IID \
  {0xd90ea51e, 0xa3f1, 0x4a01, \
    { 0xbe, 0xb1, 0xc1, 0x72, 0x3c, 0x0d, 0x3b, 0xa7 }}

class NS_NO_VTABLE DataType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(DATATYPE_IID)

  enum { Int32 = 0U };

  enum { Int8 = 1U };

  enum { String = 2U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_DATATYPE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_DATATYPE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_DATATYPE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public DataType
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_DATATYPE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, DataType)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define DataType_T PRUint32
#define DataType_Int32 DataType::Int32
#define DataType_Int8 DataType::Int8
#define DataType_String DataType::String

/* starting interface:    DataFlags */
#define DATAFLAGS_IID_STR "86884dcf-1d6b-4f1b-b4bf-f5aa44959d60"

#define DATAFLAGS_IID \
  {0x86884dcf, 0x1d6b, 0x4f1b, \
    { 0xb4, 0xbf, 0xf5, 0xaa, 0x44, 0x95, 0x9d, 0x60 }}

class NS_NO_VTABLE DataFlags {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(DATAFLAGS_IID)

  enum { None = 0U };

  enum { Mandatory = 1U };

  enum { Expert = 2U };

  enum { Array = 4U };

  enum { FlagMask = 7U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_DATAFLAGS \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_DATAFLAGS(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_DATAFLAGS(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public DataFlags
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_DATAFLAGS

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, DataFlags)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define DataFlags_T PRUint32
#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

/* starting interface:    MediumFormatCapabilities */
#define MEDIUMFORMATCAPABILITIES_IID_STR "7342ba79-7ce0-4d94-8f86-5ed5a185d9bd"

#define MEDIUMFORMATCAPABILITIES_IID \
  {0x7342ba79, 0x7ce0, 0x4d94, \
    { 0x8f, 0x86, 0x5e, 0xd5, 0xa1, 0x85, 0xd9, 0xbd }}

class NS_NO_VTABLE MediumFormatCapabilities {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(MEDIUMFORMATCAPABILITIES_IID)

  enum { Uuid = 1U };

  enum { CreateFixed = 2U };

  enum { CreateDynamic = 4U };

  enum { CreateSplit2G = 8U };

  enum { Differencing = 16U };

  enum { Asynchronous = 32U };

  enum { File = 64U };

  enum { Properties = 128U };

  enum { TcpNetworking = 256U };

  enum { VFS = 512U };

  enum { Discard = 1024U };

  enum { Preferred = 2048U };

  enum { CapabilityMask = 4095U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_MEDIUMFORMATCAPABILITIES \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_MEDIUMFORMATCAPABILITIES(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_MEDIUMFORMATCAPABILITIES(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public MediumFormatCapabilities
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_MEDIUMFORMATCAPABILITIES

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, MediumFormatCapabilities)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define MediumFormatCapabilities_T PRUint32
#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

/* starting interface:    KeyboardLED */
#define KEYBOARDLED_IID_STR "ef29ea38-409b-49c7-a817-c858d426dfba"

#define KEYBOARDLED_IID \
  {0xef29ea38, 0x409b, 0x49c7, \
    { 0xa8, 0x17, 0xc8, 0x58, 0xd4, 0x26, 0xdf, 0xba }}

class NS_NO_VTABLE KeyboardLED {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(KEYBOARDLED_IID)

  enum { NumLock = 1U };

  enum { CapsLock = 2U };

  enum { ScrollLock = 4U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_KEYBOARDLED \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_KEYBOARDLED(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_KEYBOARDLED(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public KeyboardLED
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_KEYBOARDLED

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, KeyboardLED)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define KeyboardLED_T PRUint32
#define KeyboardLED_NumLock KeyboardLED::NumLock
#define KeyboardLED_CapsLock KeyboardLED::CapsLock
#define KeyboardLED_ScrollLock KeyboardLED::ScrollLock

/* starting interface:    MouseButtonState */
#define MOUSEBUTTONSTATE_IID_STR "9ee094b8-b28a-4d56-a166-973cb588d7f8"

#define MOUSEBUTTONSTATE_IID \
  {0x9ee094b8, 0xb28a, 0x4d56, \
    { 0xa1, 0x66, 0x97, 0x3c, 0xb5, 0x88, 0xd7, 0xf8 }}

class NS_NO_VTABLE MouseButtonState {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(MOUSEBUTTONSTATE_IID)

  enum { LeftButton = 1U };

  enum { RightButton = 2U };

  enum { MiddleButton = 4U };

  enum { WheelUp = 8U };

  enum { WheelDown = 16U };

  enum { XButton1 = 32U };

  enum { XButton2 = 64U };

  enum { MouseStateMask = 127U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_MOUSEBUTTONSTATE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_MOUSEBUTTONSTATE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_MOUSEBUTTONSTATE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public MouseButtonState
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_MOUSEBUTTONSTATE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, MouseButtonState)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define MouseButtonState_T PRUint32
#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

/* starting interface:    TouchContactState */
#define TOUCHCONTACTSTATE_IID_STR "3f942686-2506-421c-927c-90d4b45f4a38"

#define TOUCHCONTACTSTATE_IID \
  {0x3f942686, 0x2506, 0x421c, \
    { 0x92, 0x7c, 0x90, 0xd4, 0xb4, 0x5f, 0x4a, 0x38 }}

class NS_NO_VTABLE TouchContactState {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(TOUCHCONTACTSTATE_IID)

  enum { None = 0U };

  enum { InContact = 1U };

  enum { InRange = 2U };

  enum { ContactStateMask = 3U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_TOUCHCONTACTSTATE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_TOUCHCONTACTSTATE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_TOUCHCONTACTSTATE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public TouchContactState
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_TOUCHCONTACTSTATE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, TouchContactState)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define TouchContactState_T PRUint32
#define TouchContactState_None TouchContactState::None
#define TouchContactState_InContact TouchContactState::InContact
#define TouchContactState_InRange TouchContactState::InRange
#define TouchContactState_ContactStateMask TouchContactState::ContactStateMask

/* starting interface:    FramebufferCapabilities */
#define FRAMEBUFFERCAPABILITIES_IID_STR "cc395839-30fa-4ca5-ae65-e6360e3edd7a"

#define FRAMEBUFFERCAPABILITIES_IID \
  {0xcc395839, 0x30fa, 0x4ca5, \
    { 0xae, 0x65, 0xe6, 0x36, 0x0e, 0x3e, 0xdd, 0x7a }}

class NS_NO_VTABLE FramebufferCapabilities {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FRAMEBUFFERCAPABILITIES_IID)

  enum { UpdateImage = 1U };

  enum { VHWA = 2U };

  enum { VisibleRegion = 4U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FRAMEBUFFERCAPABILITIES \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FRAMEBUFFERCAPABILITIES(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_FRAMEBUFFERCAPABILITIES(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public FramebufferCapabilities
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FRAMEBUFFERCAPABILITIES

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, FramebufferCapabilities)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define FramebufferCapabilities_T PRUint32
#define FramebufferCapabilities_UpdateImage FramebufferCapabilities::UpdateImage
#define FramebufferCapabilities_VHWA FramebufferCapabilities::VHWA
#define FramebufferCapabilities_VisibleRegion FramebufferCapabilities::VisibleRegion

/* starting interface:    GuestMonitorStatus */
#define GUESTMONITORSTATUS_IID_STR "a0001cb1-97c9-496d-82bc-616c19a9e212"

#define GUESTMONITORSTATUS_IID \
  {0xa0001cb1, 0x97c9, 0x496d, \
    { 0x82, 0xbc, 0x61, 0x6c, 0x19, 0xa9, 0xe2, 0x12 }}

class NS_NO_VTABLE GuestMonitorStatus {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(GUESTMONITORSTATUS_IID)

  enum { Disabled = 0U };

  enum { Enabled = 1U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_GUESTMONITORSTATUS \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_GUESTMONITORSTATUS(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_GUESTMONITORSTATUS(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public GuestMonitorStatus
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_GUESTMONITORSTATUS

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, GuestMonitorStatus)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define GuestMonitorStatus_T PRUint32
#define GuestMonitorStatus_Disabled GuestMonitorStatus::Disabled
#define GuestMonitorStatus_Enabled GuestMonitorStatus::Enabled

/* starting interface:    NetworkAttachmentType */
#define NETWORKATTACHMENTTYPE_IID_STR "524a8f9d-4b86-4b51-877d-1aa27c4ebeac"

#define NETWORKATTACHMENTTYPE_IID \
  {0x524a8f9d, 0x4b86, 0x4b51, \
    { 0x87, 0x7d, 0x1a, 0xa2, 0x7c, 0x4e, 0xbe, 0xac }}

class NS_NO_VTABLE NetworkAttachmentType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NETWORKATTACHMENTTYPE_IID)

  enum { Null = 0U };

  enum { NAT = 1U };

  enum { Bridged = 2U };

  enum { Internal = 3U };

  enum { HostOnly = 4U };

  enum { Generic = 5U };

  enum { NATNetwork = 6U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NETWORKATTACHMENTTYPE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NETWORKATTACHMENTTYPE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NETWORKATTACHMENTTYPE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public NetworkAttachmentType
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NETWORKATTACHMENTTYPE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, NetworkAttachmentType)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define NetworkAttachmentType_T PRUint32
#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

/* starting interface:    NetworkAdapterType */
#define NETWORKADAPTERTYPE_IID_STR "3c2281e4-d952-4e87-8c7d-24379cb6a81c"

#define NETWORKADAPTERTYPE_IID \
  {0x3c2281e4, 0xd952, 0x4e87, \
    { 0x8c, 0x7d, 0x24, 0x37, 0x9c, 0xb6, 0xa8, 0x1c }}

class NS_NO_VTABLE NetworkAdapterType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NETWORKADAPTERTYPE_IID)

  enum { Null = 0U };

  enum { Am79C970A = 1U };

  enum { Am79C973 = 2U };

  enum { I82540EM = 3U };

  enum { I82543GC = 4U };

  enum { I82545EM = 5U };

  enum { Virtio = 6U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NETWORKADAPTERTYPE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NETWORKADAPTERTYPE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NETWORKADAPTERTYPE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public NetworkAdapterType
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NETWORKADAPTERTYPE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, NetworkAdapterType)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define NetworkAdapterType_T PRUint32
#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

/* starting interface:    NetworkAdapterPromiscModePolicy */
#define NETWORKADAPTERPROMISCMODEPOLICY_IID_STR "c963768a-376f-4c85-8d84-d8ced4b7269e"

#define NETWORKADAPTERPROMISCMODEPOLICY_IID \
  {0xc963768a, 0x376f, 0x4c85, \
    { 0x8d, 0x84, 0xd8, 0xce, 0xd4, 0xb7, 0x26, 0x9e }}

class NS_NO_VTABLE NetworkAdapterPromiscModePolicy {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NETWORKADAPTERPROMISCMODEPOLICY_IID)

  enum { Deny = 1U };

  enum { AllowNetwork = 2U };

  enum { AllowAll = 3U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NETWORKADAPTERPROMISCMODEPOLICY \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NETWORKADAPTERPROMISCMODEPOLICY(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NETWORKADAPTERPROMISCMODEPOLICY(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public NetworkAdapterPromiscModePolicy
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NETWORKADAPTERPROMISCMODEPOLICY

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, NetworkAdapterPromiscModePolicy)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define NetworkAdapterPromiscModePolicy_T PRUint32
#define NetworkAdapterPromiscModePolicy_Deny NetworkAdapterPromiscModePolicy::Deny
#define NetworkAdapterPromiscModePolicy_AllowNetwork NetworkAdapterPromiscModePolicy::AllowNetwork
#define NetworkAdapterPromiscModePolicy_AllowAll NetworkAdapterPromiscModePolicy::AllowAll

/* starting interface:    PortMode */
#define PORTMODE_IID_STR "7485fcfd-d603-470a-87af-26d33beb7de9"

#define PORTMODE_IID \
  {0x7485fcfd, 0xd603, 0x470a, \
    { 0x87, 0xaf, 0x26, 0xd3, 0x3b, 0xeb, 0x7d, 0xe9 }}

class NS_NO_VTABLE PortMode {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(PORTMODE_IID)

  enum { Disconnected = 0U };

  enum { HostPipe = 1U };

  enum { HostDevice = 2U };

  enum { RawFile = 3U };

  enum { TCP = 4U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_PORTMODE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_PORTMODE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_PORTMODE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public PortMode
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_PORTMODE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, PortMode)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define PortMode_T PRUint32
#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

/* starting interface:    USBControllerType */
#define USBCONTROLLERTYPE_IID_STR "8fdd1c6a-5412-41da-ab07-7baed7d6e18e"

#define USBCONTROLLERTYPE_IID \
  {0x8fdd1c6a, 0x5412, 0x41da, \
    { 0xab, 0x07, 0x7b, 0xae, 0xd7, 0xd6, 0xe1, 0x8e }}

class NS_NO_VTABLE USBControllerType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(USBCONTROLLERTYPE_IID)

  enum { Null = 0U };

  enum { OHCI = 1U };

  enum { EHCI = 2U };

  enum { XHCI = 3U };

  enum { Last = 4U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_USBCONTROLLERTYPE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_USBCONTROLLERTYPE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_USBCONTROLLERTYPE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public USBControllerType
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_USBCONTROLLERTYPE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, USBControllerType)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define USBControllerType_T PRUint32
#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

/* starting interface:    USBConnectionSpeed */
#define USBCONNECTIONSPEED_IID_STR "d2915840-ea26-4fb4-b72a-21eaf6b888ff"

#define USBCONNECTIONSPEED_IID \
  {0xd2915840, 0xea26, 0x4fb4, \
    { 0xb7, 0x2a, 0x21, 0xea, 0xf6, 0xb8, 0x88, 0xff }}

class NS_NO_VTABLE USBConnectionSpeed {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(USBCONNECTIONSPEED_IID)

  enum { Null = 0U };

  enum { Low = 1U };

  enum { Full = 2U };

  enum { High = 3U };

  enum { Super = 4U };

  enum { SuperPlus = 5U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_USBCONNECTIONSPEED \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_USBCONNECTIONSPEED(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_USBCONNECTIONSPEED(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public USBConnectionSpeed
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_USBCONNECTIONSPEED

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, USBConnectionSpeed)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define USBConnectionSpeed_T PRUint32
#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

/* starting interface:    USBDeviceState */
#define USBDEVICESTATE_IID_STR "b99a2e65-67fb-4882-82fd-f3e5e8193ab4"

#define USBDEVICESTATE_IID \
  {0xb99a2e65, 0x67fb, 0x4882, \
    { 0x82, 0xfd, 0xf3, 0xe5, 0xe8, 0x19, 0x3a, 0xb4 }}

class NS_NO_VTABLE USBDeviceState {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(USBDEVICESTATE_IID)

  enum { NotSupported = 0U };

  enum { Unavailable = 1U };

  enum { Busy = 2U };

  enum { Available = 3U };

  enum { Held = 4U };

  enum { Captured = 5U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_USBDEVICESTATE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_USBDEVICESTATE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_USBDEVICESTATE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public USBDeviceState
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_USBDEVICESTATE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, USBDeviceState)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define USBDeviceState_T PRUint32
#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

/* starting interface:    USBDeviceFilterAction */
#define USBDEVICEFILTERACTION_IID_STR "cbc30a49-2f4e-43b5-9da6-121320475933"

#define USBDEVICEFILTERACTION_IID \
  {0xcbc30a49, 0x2f4e, 0x43b5, \
    { 0x9d, 0xa6, 0x12, 0x13, 0x20, 0x47, 0x59, 0x33 }}

class NS_NO_VTABLE USBDeviceFilterAction {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(USBDEVICEFILTERACTION_IID)

  enum { Null = 0U };

  enum { Ignore = 1U };

  enum { Hold = 2U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_USBDEVICEFILTERACTION \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_USBDEVICEFILTERACTION(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_USBDEVICEFILTERACTION(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public USBDeviceFilterAction
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_USBDEVICEFILTERACTION

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, USBDeviceFilterAction)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define USBDeviceFilterAction_T PRUint32
#define USBDeviceFilterAction_Null USBDeviceFilterAction::Null
#define USBDeviceFilterAction_Ignore USBDeviceFilterAction::Ignore
#define USBDeviceFilterAction_Hold USBDeviceFilterAction::Hold

/* starting interface:    AudioDriverType */
#define AUDIODRIVERTYPE_IID_STR "4bcc3d73-c2fe-40db-b72f-0c2ca9d68496"

#define AUDIODRIVERTYPE_IID \
  {0x4bcc3d73, 0xc2fe, 0x40db, \
    { 0xb7, 0x2f, 0x0c, 0x2c, 0xa9, 0xd6, 0x84, 0x96 }}

class NS_NO_VTABLE AudioDriverType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(AUDIODRIVERTYPE_IID)

  enum { Null = 0U };

  enum { WinMM = 1U };

  enum { OSS = 2U };

  enum { ALSA = 3U };

  enum { DirectSound = 4U };

  enum { CoreAudio = 5U };

  enum { MMPM = 6U };

  enum { Pulse = 7U };

  enum { SolAudio = 8U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_AUDIODRIVERTYPE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_AUDIODRIVERTYPE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_AUDIODRIVERTYPE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public AudioDriverType
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_AUDIODRIVERTYPE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, AudioDriverType)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define AudioDriverType_T PRUint32
#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

/* starting interface:    AudioControllerType */
#define AUDIOCONTROLLERTYPE_IID_STR "7afd395c-42c3-444e-8788-3ce80292f36c"

#define AUDIOCONTROLLERTYPE_IID \
  {0x7afd395c, 0x42c3, 0x444e, \
    { 0x87, 0x88, 0x3c, 0xe8, 0x02, 0x92, 0xf3, 0x6c }}

class NS_NO_VTABLE AudioControllerType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(AUDIOCONTROLLERTYPE_IID)

  enum { AC97 = 0U };

  enum { SB16 = 1U };

  enum { HDA = 2U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_AUDIOCONTROLLERTYPE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_AUDIOCONTROLLERTYPE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_AUDIOCONTROLLERTYPE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public AudioControllerType
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_AUDIOCONTROLLERTYPE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, AudioControllerType)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define AudioControllerType_T PRUint32
#define AudioControllerType_AC97 AudioControllerType::AC97
#define AudioControllerType_SB16 AudioControllerType::SB16
#define AudioControllerType_HDA AudioControllerType::HDA

/* starting interface:    AudioCodecType */
#define AUDIOCODECTYPE_IID_STR "7b406301-f520-420c-9805-8ce11c086370"

#define AUDIOCODECTYPE_IID \
  {0x7b406301, 0xf520, 0x420c, \
    { 0x98, 0x05, 0x8c, 0xe1, 0x1c, 0x08, 0x63, 0x70 }}

class NS_NO_VTABLE AudioCodecType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(AUDIOCODECTYPE_IID)

  enum { Null = 0U };

  enum { SB16 = 1U };

  enum { STAC9700 = 2U };

  enum { AD1980 = 3U };

  enum { STAC9221 = 4U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_AUDIOCODECTYPE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_AUDIOCODECTYPE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_AUDIOCODECTYPE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public AudioCodecType
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_AUDIOCODECTYPE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, AudioCodecType)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define AudioCodecType_T PRUint32
#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

/* starting interface:    AuthType */
#define AUTHTYPE_IID_STR "7eef6ef6-98c2-4dc2-ab35-10d2b292028d"

#define AUTHTYPE_IID \
  {0x7eef6ef6, 0x98c2, 0x4dc2, \
    { 0xab, 0x35, 0x10, 0xd2, 0xb2, 0x92, 0x02, 0x8d }}

class NS_NO_VTABLE AuthType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(AUTHTYPE_IID)

  enum { Null = 0U };

  enum { External = 1U };

  enum { Guest = 2U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_AUTHTYPE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_AUTHTYPE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_AUTHTYPE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public AuthType
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_AUTHTYPE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, AuthType)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define AuthType_T PRUint32
#define AuthType_Null AuthType::Null
#define AuthType_External AuthType::External
#define AuthType_Guest AuthType::Guest

/* starting interface:    Reason */
#define REASON_IID_STR "e7e8e097-299d-4e98-8bbc-c31c2d47d0cc"

#define REASON_IID \
  {0xe7e8e097, 0x299d, 0x4e98, \
    { 0x8b, 0xbc, 0xc3, 0x1c, 0x2d, 0x47, 0xd0, 0xcc }}

class NS_NO_VTABLE Reason {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(REASON_IID)

  enum { Unspecified = 0U };

  enum { HostSuspend = 1U };

  enum { HostResume = 2U };

  enum { HostBatteryLow = 3U };

  enum { Snapshot = 4U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_REASON \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_REASON(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_REASON(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public Reason
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_REASON

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, Reason)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define Reason_T PRUint32
#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

/* starting interface:    StorageBus */
#define STORAGEBUS_IID_STR "21371490-8542-4b5a-a74d-ee9ac2d45a90"

#define STORAGEBUS_IID \
  {0x21371490, 0x8542, 0x4b5a, \
    { 0xa7, 0x4d, 0xee, 0x9a, 0xc2, 0xd4, 0x5a, 0x90 }}

class NS_NO_VTABLE StorageBus {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(STORAGEBUS_IID)

  enum { Null = 0U };

  enum { IDE = 1U };

  enum { SATA = 2U };

  enum { SCSI = 3U };

  enum { Floppy = 4U };

  enum { SAS = 5U };

  enum { USB = 6U };

  enum { PCIe = 7U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_STORAGEBUS \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_STORAGEBUS(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_STORAGEBUS(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public StorageBus
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_STORAGEBUS

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, StorageBus)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define StorageBus_T PRUint32
#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

/* starting interface:    StorageControllerType */
#define STORAGECONTROLLERTYPE_IID_STR "9427f309-82e7-468f-9964-abfefc4d3058"

#define STORAGECONTROLLERTYPE_IID \
  {0x9427f309, 0x82e7, 0x468f, \
    { 0x99, 0x64, 0xab, 0xfe, 0xfc, 0x4d, 0x30, 0x58 }}

class NS_NO_VTABLE StorageControllerType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(STORAGECONTROLLERTYPE_IID)

  enum { Null = 0U };

  enum { LsiLogic = 1U };

  enum { BusLogic = 2U };

  enum { IntelAhci = 3U };

  enum { PIIX3 = 4U };

  enum { PIIX4 = 5U };

  enum { ICH6 = 6U };

  enum { I82078 = 7U };

  enum { LsiLogicSas = 8U };

  enum { USB = 9U };

  enum { NVMe = 10U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_STORAGECONTROLLERTYPE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_STORAGECONTROLLERTYPE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_STORAGECONTROLLERTYPE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public StorageControllerType
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_STORAGECONTROLLERTYPE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, StorageControllerType)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define StorageControllerType_T PRUint32
#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

/* starting interface:    ChipsetType */
#define CHIPSETTYPE_IID_STR "8b4096a8-a7c3-4d3b-bbb1-05a0a51ec394"

#define CHIPSETTYPE_IID \
  {0x8b4096a8, 0xa7c3, 0x4d3b, \
    { 0xbb, 0xb1, 0x05, 0xa0, 0xa5, 0x1e, 0xc3, 0x94 }}

class NS_NO_VTABLE ChipsetType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(CHIPSETTYPE_IID)

  enum { Null = 0U };

  enum { PIIX3 = 1U };

  enum { ICH9 = 2U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_CHIPSETTYPE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_CHIPSETTYPE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_CHIPSETTYPE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public ChipsetType
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_CHIPSETTYPE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, ChipsetType)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define ChipsetType_T PRUint32
#define ChipsetType_Null ChipsetType::Null
#define ChipsetType_PIIX3 ChipsetType::PIIX3
#define ChipsetType_ICH9 ChipsetType::ICH9

/* starting interface:    NATAliasMode */
#define NATALIASMODE_IID_STR "67772168-50d9-11df-9669-7fb714ee4fa1"

#define NATALIASMODE_IID \
  {0x67772168, 0x50d9, 0x11df, \
    { 0x96, 0x69, 0x7f, 0xb7, 0x14, 0xee, 0x4f, 0xa1 }}

class NS_NO_VTABLE NATAliasMode {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NATALIASMODE_IID)

  enum { AliasLog = 1U };

  enum { AliasProxyOnly = 2U };

  enum { AliasUseSamePorts = 4U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NATALIASMODE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NATALIASMODE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NATALIASMODE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public NATAliasMode
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NATALIASMODE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, NATAliasMode)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define NATAliasMode_T PRUint32
#define NATAliasMode_AliasLog NATAliasMode::AliasLog
#define NATAliasMode_AliasProxyOnly NATAliasMode::AliasProxyOnly
#define NATAliasMode_AliasUseSamePorts NATAliasMode::AliasUseSamePorts

/* starting interface:    NATProtocol */
#define NATPROTOCOL_IID_STR "e90164be-eb03-11de-94af-fff9b1c1b19f"

#define NATPROTOCOL_IID \
  {0xe90164be, 0xeb03, 0x11de, \
    { 0x94, 0xaf, 0xff, 0xf9, 0xb1, 0xc1, 0xb1, 0x9f }}

class NS_NO_VTABLE NATProtocol {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NATPROTOCOL_IID)

  enum { UDP = 0U };

  enum { TCP = 1U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NATPROTOCOL \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NATPROTOCOL(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NATPROTOCOL(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public NATProtocol
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NATPROTOCOL

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, NATProtocol)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define NATProtocol_T PRUint32
#define NATProtocol_UDP NATProtocol::UDP
#define NATProtocol_TCP NATProtocol::TCP

/* starting interface:    BandwidthGroupType */
#define BANDWIDTHGROUPTYPE_IID_STR "1d92b67d-dc69-4be9-ad4c-93a01e1e0c8e"

#define BANDWIDTHGROUPTYPE_IID \
  {0x1d92b67d, 0xdc69, 0x4be9, \
    { 0xad, 0x4c, 0x93, 0xa0, 0x1e, 0x1e, 0x0c, 0x8e }}

class NS_NO_VTABLE BandwidthGroupType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(BANDWIDTHGROUPTYPE_IID)

  enum { Null = 0U };

  enum { Disk = 1U };

  enum { Network = 2U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_BANDWIDTHGROUPTYPE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_BANDWIDTHGROUPTYPE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_BANDWIDTHGROUPTYPE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public BandwidthGroupType
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_BANDWIDTHGROUPTYPE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, BandwidthGroupType)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define BandwidthGroupType_T PRUint32
#define BandwidthGroupType_Null BandwidthGroupType::Null
#define BandwidthGroupType_Disk BandwidthGroupType::Disk
#define BandwidthGroupType_Network BandwidthGroupType::Network

/* starting interface:    VBoxEventType */
#define VBOXEVENTTYPE_IID_STR "b2ddb312-2f9e-4e69-98df-7235e43b2149"

#define VBOXEVENTTYPE_IID \
  {0xb2ddb312, 0x2f9e, 0x4e69, \
    { 0x98, 0xdf, 0x72, 0x35, 0xe4, 0x3b, 0x21, 0x49 }}

class NS_NO_VTABLE VBoxEventType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(VBOXEVENTTYPE_IID)

  enum { Invalid = 0U };

  enum { Any = 1U };

  enum { Vetoable = 2U };

  enum { MachineEvent = 3U };

  enum { SnapshotEvent = 4U };

  enum { InputEvent = 5U };

  enum { LastWildcard = 31U };

  enum { OnMachineStateChanged = 32U };

  enum { OnMachineDataChanged = 33U };

  enum { OnExtraDataChanged = 34U };

  enum { OnExtraDataCanChange = 35U };

  enum { OnMediumRegistered = 36U };

  enum { OnMachineRegistered = 37U };

  enum { OnSessionStateChanged = 38U };

  enum { OnSnapshotTaken = 39U };

  enum { OnSnapshotDeleted = 40U };

  enum { OnSnapshotChanged = 41U };

  enum { OnGuestPropertyChanged = 42U };

  enum { OnMousePointerShapeChanged = 43U };

  enum { OnMouseCapabilityChanged = 44U };

  enum { OnKeyboardLedsChanged = 45U };

  enum { OnStateChanged = 46U };

  enum { OnAdditionsStateChanged = 47U };

  enum { OnNetworkAdapterChanged = 48U };

  enum { OnSerialPortChanged = 49U };

  enum { OnParallelPortChanged = 50U };

  enum { OnStorageControllerChanged = 51U };

  enum { OnMediumChanged = 52U };

  enum { OnVRDEServerChanged = 53U };

  enum { OnUSBControllerChanged = 54U };

  enum { OnUSBDeviceStateChanged = 55U };

  enum { OnSharedFolderChanged = 56U };

  enum { OnRuntimeError = 57U };

  enum { OnCanShowWindow = 58U };

  enum { OnShowWindow = 59U };

  enum { OnCPUChanged = 60U };

  enum { OnVRDEServerInfoChanged = 61U };

  enum { OnEventSourceChanged = 62U };

  enum { OnCPUExecutionCapChanged = 63U };

  enum { OnGuestKeyboard = 64U };

  enum { OnGuestMouse = 65U };

  enum { OnNATRedirect = 66U };

  enum { OnHostPCIDevicePlug = 67U };

  enum { OnVBoxSVCAvailabilityChanged = 68U };

  enum { OnBandwidthGroupChanged = 69U };

  enum { OnGuestMonitorChanged = 70U };

  enum { OnStorageDeviceChanged = 71U };

  enum { OnClipboardModeChanged = 72U };

  enum { OnDnDModeChanged = 73U };

  enum { OnNATNetworkChanged = 74U };

  enum { OnNATNetworkStartStop = 75U };

  enum { OnNATNetworkAlter = 76U };

  enum { OnNATNetworkCreationDeletion = 77U };

  enum { OnNATNetworkSetting = 78U };

  enum { OnNATNetworkPortForward = 79U };

  enum { OnGuestSessionStateChanged = 80U };

  enum { OnGuestSessionRegistered = 81U };

  enum { OnGuestProcessRegistered = 82U };

  enum { OnGuestProcessStateChanged = 83U };

  enum { OnGuestProcessInputNotify = 84U };

  enum { OnGuestProcessOutput = 85U };

  enum { OnGuestFileRegistered = 86U };

  enum { OnGuestFileStateChanged = 87U };

  enum { OnGuestFileOffsetChanged = 88U };

  enum { OnGuestFileRead = 89U };

  enum { OnGuestFileWrite = 90U };

  enum { OnVideoCaptureChanged = 91U };

  enum { OnGuestUserStateChanged = 92U };

  enum { OnGuestMultiTouch = 93U };

  enum { OnHostNameResolutionConfigurationChange = 94U };

  enum { OnSnapshotRestored = 95U };

  enum { OnMediumConfigChanged = 96U };

  enum { Last = 97U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_VBOXEVENTTYPE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_VBOXEVENTTYPE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_VBOXEVENTTYPE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public VBoxEventType
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_VBOXEVENTTYPE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, VBoxEventType)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define VBoxEventType_T PRUint32
#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_OnVideoCaptureChanged VBoxEventType::OnVideoCaptureChanged
#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_Last VBoxEventType::Last

/* starting interface:    GuestMouseEventMode */
#define GUESTMOUSEEVENTMODE_IID_STR "4b500146-ebba-4b7c-bc29-69c2d57a5caf"

#define GUESTMOUSEEVENTMODE_IID \
  {0x4b500146, 0xebba, 0x4b7c, \
    { 0xbc, 0x29, 0x69, 0xc2, 0xd5, 0x7a, 0x5c, 0xaf }}

class NS_NO_VTABLE GuestMouseEventMode {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(GUESTMOUSEEVENTMODE_IID)

  enum { Relative = 0U };

  enum { Absolute = 1U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_GUESTMOUSEEVENTMODE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_GUESTMOUSEEVENTMODE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_GUESTMOUSEEVENTMODE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public GuestMouseEventMode
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_GUESTMOUSEEVENTMODE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, GuestMouseEventMode)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define GuestMouseEventMode_T PRUint32
#define GuestMouseEventMode_Relative GuestMouseEventMode::Relative
#define GuestMouseEventMode_Absolute GuestMouseEventMode::Absolute

/* starting interface:    GuestMonitorChangedEventType */
#define GUESTMONITORCHANGEDEVENTTYPE_IID_STR "ef172985-7e36-4297-95be-e46396968d66"

#define GUESTMONITORCHANGEDEVENTTYPE_IID \
  {0xef172985, 0x7e36, 0x4297, \
    { 0x95, 0xbe, 0xe4, 0x63, 0x96, 0x96, 0x8d, 0x66 }}

class NS_NO_VTABLE GuestMonitorChangedEventType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(GUESTMONITORCHANGEDEVENTTYPE_IID)

  enum { Enabled = 0U };

  enum { Disabled = 1U };

  enum { NewOrigin = 2U };

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_GUESTMONITORCHANGEDEVENTTYPE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_GUESTMONITORCHANGEDEVENTTYPE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_GUESTMONITORCHANGEDEVENTTYPE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public GuestMonitorChangedEventType
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_GUESTMONITORCHANGEDEVENTTYPE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, GuestMonitorChangedEventType)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif

#define GuestMonitorChangedEventType_T PRUint32
#define GuestMonitorChangedEventType_Enabled GuestMonitorChangedEventType::Enabled
#define GuestMonitorChangedEventType_Disabled GuestMonitorChangedEventType::Disabled
#define GuestMonitorChangedEventType_NewOrigin GuestMonitorChangedEventType::NewOrigin

/* starting interface:    IVirtualBoxErrorInfo */
#define IVIRTUALBOXERRORINFO_IID_STR "c1bcc6d5-7966-481d-ab0b-d0ed73e28135"

#define IVIRTUALBOXERRORINFO_IID \
  {0xc1bcc6d5, 0x7966, 0x481d, \
    { 0xab, 0x0b, 0xd0, 0xed, 0x73, 0xe2, 0x81, 0x35 }}

class NS_NO_VTABLE IVirtualBoxErrorInfo : public nsIException {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IVIRTUALBOXERRORINFO_IID)

  /* readonly attribute long resultCode; */
  NS_IMETHOD GetResultCode(PRInt32 *aResultCode) = 0;

  /* readonly attribute long resultDetail; */
  NS_IMETHOD GetResultDetail(PRInt32 *aResultDetail) = 0;

  /* readonly attribute wstring interfaceID; */
  NS_IMETHOD GetInterfaceID(PRUnichar * *aInterfaceID) = 0;

  /* readonly attribute wstring component; */
  NS_IMETHOD GetComponent(PRUnichar * *aComponent) = 0;

  /* readonly attribute wstring text; */
  NS_IMETHOD GetText(PRUnichar * *aText) = 0;

  /* readonly attribute IVirtualBoxErrorInfo next; */
  NS_IMETHOD GetNext(IVirtualBoxErrorInfo * *aNext) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IVIRTUALBOXERRORINFO \
  NS_IMETHOD GetResultCode(PRInt32 *aResultCode); \
  NS_IMETHOD GetResultDetail(PRInt32 *aResultDetail); \
  NS_IMETHOD GetInterfaceID(PRUnichar * *aInterfaceID); \
  NS_IMETHOD GetComponent(PRUnichar * *aComponent); \
  NS_IMETHOD GetText(PRUnichar * *aText); \
  NS_IMETHOD GetNext(IVirtualBoxErrorInfo * *aNext); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IVIRTUALBOXERRORINFO(_to) \
  NS_IMETHOD GetResultCode(PRInt32 *aResultCode) { return _to GetResultCode(aResultCode); } \
  NS_IMETHOD GetResultDetail(PRInt32 *aResultDetail) { return _to GetResultDetail(aResultDetail); } \
  NS_IMETHOD GetInterfaceID(PRUnichar * *aInterfaceID) { return _to GetInterfaceID(aInterfaceID); } \
  NS_IMETHOD GetComponent(PRUnichar * *aComponent) { return _to GetComponent(aComponent); } \
  NS_IMETHOD GetText(PRUnichar * *aText) { return _to GetText(aText); } \
  NS_IMETHOD GetNext(IVirtualBoxErrorInfo * *aNext) { return _to GetNext(aNext); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IVIRTUALBOXERRORINFO(_to) \
  NS_IMETHOD GetResultCode(PRInt32 *aResultCode) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetResultCode(aResultCode); } \
  NS_IMETHOD GetResultDetail(PRInt32 *aResultDetail) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetResultDetail(aResultDetail); } \
  NS_IMETHOD GetInterfaceID(PRUnichar * *aInterfaceID) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInterfaceID(aInterfaceID); } \
  NS_IMETHOD GetComponent(PRUnichar * *aComponent) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetComponent(aComponent); } \
  NS_IMETHOD GetText(PRUnichar * *aText) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetText(aText); } \
  NS_IMETHOD GetNext(IVirtualBoxErrorInfo * *aNext) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNext(aNext); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IVirtualBoxErrorInfo
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IVIRTUALBOXERRORINFO

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IVirtualBoxErrorInfo)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute long resultCode; */
NS_IMETHODIMP _MYCLASS_::GetResultCode(PRInt32 *aResultCode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long resultDetail; */
NS_IMETHODIMP _MYCLASS_::GetResultDetail(PRInt32 *aResultDetail)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring interfaceID; */
NS_IMETHODIMP _MYCLASS_::GetInterfaceID(PRUnichar * *aInterfaceID)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring component; */
NS_IMETHODIMP _MYCLASS_::GetComponent(PRUnichar * *aComponent)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring text; */
NS_IMETHODIMP _MYCLASS_::GetText(PRUnichar * *aText)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IVirtualBoxErrorInfo next; */
NS_IMETHODIMP _MYCLASS_::GetNext(IVirtualBoxErrorInfo * *aNext)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    INATNetwork */
#define INATNETWORK_IID_STR "4bbc405d-f268-4483-9a52-f43ffdbf67f8"

#define INATNETWORK_IID \
  {0x4bbc405d, 0xf268, 0x4483, \
    { 0x9a, 0x52, 0xf4, 0x3f, 0xfd, 0xbf, 0x67, 0xf8 }}

class NS_NO_VTABLE INATNetwork : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(INATNETWORK_IID)

  /* attribute wstring networkName; */
  NS_IMETHOD GetNetworkName(PRUnichar * *aNetworkName) = 0;
  NS_IMETHOD SetNetworkName(const PRUnichar * aNetworkName) = 0;

  /* attribute boolean enabled; */
  NS_IMETHOD GetEnabled(PRBool *aEnabled) = 0;
  NS_IMETHOD SetEnabled(PRBool aEnabled) = 0;

  /* attribute wstring network; */
  NS_IMETHOD GetNetwork(PRUnichar * *aNetwork) = 0;
  NS_IMETHOD SetNetwork(const PRUnichar * aNetwork) = 0;

  /* readonly attribute wstring gateway; */
  NS_IMETHOD GetGateway(PRUnichar * *aGateway) = 0;

  /* attribute boolean IPv6Enabled; */
  NS_IMETHOD GetIPv6Enabled(PRBool *aIPv6Enabled) = 0;
  NS_IMETHOD SetIPv6Enabled(PRBool aIPv6Enabled) = 0;

  /* attribute wstring IPv6Prefix; */
  NS_IMETHOD GetIPv6Prefix(PRUnichar * *aIPv6Prefix) = 0;
  NS_IMETHOD SetIPv6Prefix(const PRUnichar * aIPv6Prefix) = 0;

  /* attribute boolean advertiseDefaultIPv6RouteEnabled; */
  NS_IMETHOD GetAdvertiseDefaultIPv6RouteEnabled(PRBool *aAdvertiseDefaultIPv6RouteEnabled) = 0;
  NS_IMETHOD SetAdvertiseDefaultIPv6RouteEnabled(PRBool aAdvertiseDefaultIPv6RouteEnabled) = 0;

  /* attribute boolean needDhcpServer; */
  NS_IMETHOD GetNeedDhcpServer(PRBool *aNeedDhcpServer) = 0;
  NS_IMETHOD SetNeedDhcpServer(PRBool aNeedDhcpServer) = 0;

  /* readonly attribute IEventSource eventSource; */
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) = 0;

  /* void getPortForwardRules4 (out unsigned long portForwardRules4Size, [array, size_is (portForwardRules4Size), retval] out wstring portForwardRules4); */
  NS_IMETHOD GetPortForwardRules4(PRUint32 *portForwardRules4Size, PRUnichar ***portForwardRules4) = 0;

  /* void getLocalMappings (out unsigned long localMappingsSize, [array, size_is (localMappingsSize), retval] out wstring localMappings); */
  NS_IMETHOD GetLocalMappings(PRUint32 *localMappingsSize, PRUnichar ***localMappings) = 0;

  /* attribute long loopbackIp6; */
  NS_IMETHOD GetLoopbackIp6(PRInt32 *aLoopbackIp6) = 0;
  NS_IMETHOD SetLoopbackIp6(PRInt32 aLoopbackIp6) = 0;

  /* void getPortForwardRules6 (out unsigned long portForwardRules6Size, [array, size_is (portForwardRules6Size), retval] out wstring portForwardRules6); */
  NS_IMETHOD GetPortForwardRules6(PRUint32 *portForwardRules6Size, PRUnichar ***portForwardRules6) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1INATNetwork; */
  NS_IMETHOD GetInternalAndReservedAttribute1INATNetwork(PRUint32 *aInternalAndReservedAttribute1INATNetwork) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2INATNetwork; */
  NS_IMETHOD GetInternalAndReservedAttribute2INATNetwork(PRUint32 *aInternalAndReservedAttribute2INATNetwork) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3INATNetwork; */
  NS_IMETHOD GetInternalAndReservedAttribute3INATNetwork(PRUint32 *aInternalAndReservedAttribute3INATNetwork) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4INATNetwork; */
  NS_IMETHOD GetInternalAndReservedAttribute4INATNetwork(PRUint32 *aInternalAndReservedAttribute4INATNetwork) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5INATNetwork; */
  NS_IMETHOD GetInternalAndReservedAttribute5INATNetwork(PRUint32 *aInternalAndReservedAttribute5INATNetwork) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6INATNetwork; */
  NS_IMETHOD GetInternalAndReservedAttribute6INATNetwork(PRUint32 *aInternalAndReservedAttribute6INATNetwork) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7INATNetwork; */
  NS_IMETHOD GetInternalAndReservedAttribute7INATNetwork(PRUint32 *aInternalAndReservedAttribute7INATNetwork) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8INATNetwork; */
  NS_IMETHOD GetInternalAndReservedAttribute8INATNetwork(PRUint32 *aInternalAndReservedAttribute8INATNetwork) = 0;

  /* void addLocalMapping (in wstring hostid, in long offset); */
  NS_IMETHOD AddLocalMapping(const PRUnichar *hostid, PRInt32 offset) = 0;

  /* void addPortForwardRule (in boolean isIpv6, in wstring ruleName, in PRUint32 proto, in wstring hostIP, in unsigned short hostPort, in wstring guestIP, in unsigned short guestPort); */
  NS_IMETHOD AddPortForwardRule(PRBool isIpv6, const PRUnichar *ruleName, PRUint32 proto, const PRUnichar *hostIP, PRUint16 hostPort, const PRUnichar *guestIP, PRUint16 guestPort) = 0;

  /* void removePortForwardRule (in boolean iSipv6, in wstring ruleName); */
  NS_IMETHOD RemovePortForwardRule(PRBool iSipv6, const PRUnichar *ruleName) = 0;

  /* void start (in wstring trunkType); */
  NS_IMETHOD Start(const PRUnichar *trunkType) = 0;

  /* void stop (); */
  NS_IMETHOD Stop(void) = 0;

  /* void InternalAndReservedMethod1INATNetwork (); */
  NS_IMETHOD InternalAndReservedMethod1INATNetwork(void) = 0;

  /* void InternalAndReservedMethod2INATNetwork (); */
  NS_IMETHOD InternalAndReservedMethod2INATNetwork(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_INATNETWORK \
  NS_IMETHOD GetNetworkName(PRUnichar * *aNetworkName); \
  NS_IMETHOD SetNetworkName(const PRUnichar * aNetworkName); \
  NS_IMETHOD GetEnabled(PRBool *aEnabled); \
  NS_IMETHOD SetEnabled(PRBool aEnabled); \
  NS_IMETHOD GetNetwork(PRUnichar * *aNetwork); \
  NS_IMETHOD SetNetwork(const PRUnichar * aNetwork); \
  NS_IMETHOD GetGateway(PRUnichar * *aGateway); \
  NS_IMETHOD GetIPv6Enabled(PRBool *aIPv6Enabled); \
  NS_IMETHOD SetIPv6Enabled(PRBool aIPv6Enabled); \
  NS_IMETHOD GetIPv6Prefix(PRUnichar * *aIPv6Prefix); \
  NS_IMETHOD SetIPv6Prefix(const PRUnichar * aIPv6Prefix); \
  NS_IMETHOD GetAdvertiseDefaultIPv6RouteEnabled(PRBool *aAdvertiseDefaultIPv6RouteEnabled); \
  NS_IMETHOD SetAdvertiseDefaultIPv6RouteEnabled(PRBool aAdvertiseDefaultIPv6RouteEnabled); \
  NS_IMETHOD GetNeedDhcpServer(PRBool *aNeedDhcpServer); \
  NS_IMETHOD SetNeedDhcpServer(PRBool aNeedDhcpServer); \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource); \
  NS_IMETHOD GetPortForwardRules4(PRUint32 *portForwardRules4Size, PRUnichar ***portForwardRules4); \
  NS_IMETHOD GetLocalMappings(PRUint32 *localMappingsSize, PRUnichar ***localMappings); \
  NS_IMETHOD GetLoopbackIp6(PRInt32 *aLoopbackIp6); \
  NS_IMETHOD SetLoopbackIp6(PRInt32 aLoopbackIp6); \
  NS_IMETHOD GetPortForwardRules6(PRUint32 *portForwardRules6Size, PRUnichar ***portForwardRules6); \
  NS_IMETHOD GetInternalAndReservedAttribute1INATNetwork(PRUint32 *aInternalAndReservedAttribute1INATNetwork); \
  NS_IMETHOD GetInternalAndReservedAttribute2INATNetwork(PRUint32 *aInternalAndReservedAttribute2INATNetwork); \
  NS_IMETHOD GetInternalAndReservedAttribute3INATNetwork(PRUint32 *aInternalAndReservedAttribute3INATNetwork); \
  NS_IMETHOD GetInternalAndReservedAttribute4INATNetwork(PRUint32 *aInternalAndReservedAttribute4INATNetwork); \
  NS_IMETHOD GetInternalAndReservedAttribute5INATNetwork(PRUint32 *aInternalAndReservedAttribute5INATNetwork); \
  NS_IMETHOD GetInternalAndReservedAttribute6INATNetwork(PRUint32 *aInternalAndReservedAttribute6INATNetwork); \
  NS_IMETHOD GetInternalAndReservedAttribute7INATNetwork(PRUint32 *aInternalAndReservedAttribute7INATNetwork); \
  NS_IMETHOD GetInternalAndReservedAttribute8INATNetwork(PRUint32 *aInternalAndReservedAttribute8INATNetwork); \
  NS_IMETHOD AddLocalMapping(const PRUnichar *hostid, PRInt32 offset); \
  NS_IMETHOD AddPortForwardRule(PRBool isIpv6, const PRUnichar *ruleName, PRUint32 proto, const PRUnichar *hostIP, PRUint16 hostPort, const PRUnichar *guestIP, PRUint16 guestPort); \
  NS_IMETHOD RemovePortForwardRule(PRBool iSipv6, const PRUnichar *ruleName); \
  NS_IMETHOD Start(const PRUnichar *trunkType); \
  NS_IMETHOD Stop(void); \
  NS_IMETHOD InternalAndReservedMethod1INATNetwork(void); \
  NS_IMETHOD InternalAndReservedMethod2INATNetwork(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_INATNETWORK(_to) \
  NS_IMETHOD GetNetworkName(PRUnichar * *aNetworkName) { return _to GetNetworkName(aNetworkName); } \
  NS_IMETHOD SetNetworkName(const PRUnichar * aNetworkName) { return _to SetNetworkName(aNetworkName); } \
  NS_IMETHOD GetEnabled(PRBool *aEnabled) { return _to GetEnabled(aEnabled); } \
  NS_IMETHOD SetEnabled(PRBool aEnabled) { return _to SetEnabled(aEnabled); } \
  NS_IMETHOD GetNetwork(PRUnichar * *aNetwork) { return _to GetNetwork(aNetwork); } \
  NS_IMETHOD SetNetwork(const PRUnichar * aNetwork) { return _to SetNetwork(aNetwork); } \
  NS_IMETHOD GetGateway(PRUnichar * *aGateway) { return _to GetGateway(aGateway); } \
  NS_IMETHOD GetIPv6Enabled(PRBool *aIPv6Enabled) { return _to GetIPv6Enabled(aIPv6Enabled); } \
  NS_IMETHOD SetIPv6Enabled(PRBool aIPv6Enabled) { return _to SetIPv6Enabled(aIPv6Enabled); } \
  NS_IMETHOD GetIPv6Prefix(PRUnichar * *aIPv6Prefix) { return _to GetIPv6Prefix(aIPv6Prefix); } \
  NS_IMETHOD SetIPv6Prefix(const PRUnichar * aIPv6Prefix) { return _to SetIPv6Prefix(aIPv6Prefix); } \
  NS_IMETHOD GetAdvertiseDefaultIPv6RouteEnabled(PRBool *aAdvertiseDefaultIPv6RouteEnabled) { return _to GetAdvertiseDefaultIPv6RouteEnabled(aAdvertiseDefaultIPv6RouteEnabled); } \
  NS_IMETHOD SetAdvertiseDefaultIPv6RouteEnabled(PRBool aAdvertiseDefaultIPv6RouteEnabled) { return _to SetAdvertiseDefaultIPv6RouteEnabled(aAdvertiseDefaultIPv6RouteEnabled); } \
  NS_IMETHOD GetNeedDhcpServer(PRBool *aNeedDhcpServer) { return _to GetNeedDhcpServer(aNeedDhcpServer); } \
  NS_IMETHOD SetNeedDhcpServer(PRBool aNeedDhcpServer) { return _to SetNeedDhcpServer(aNeedDhcpServer); } \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) { return _to GetEventSource(aEventSource); } \
  NS_IMETHOD GetPortForwardRules4(PRUint32 *portForwardRules4Size, PRUnichar ***portForwardRules4) { return _to GetPortForwardRules4(portForwardRules4Size, portForwardRules4); } \
  NS_IMETHOD GetLocalMappings(PRUint32 *localMappingsSize, PRUnichar ***localMappings) { return _to GetLocalMappings(localMappingsSize, localMappings); } \
  NS_IMETHOD GetLoopbackIp6(PRInt32 *aLoopbackIp6) { return _to GetLoopbackIp6(aLoopbackIp6); } \
  NS_IMETHOD SetLoopbackIp6(PRInt32 aLoopbackIp6) { return _to SetLoopbackIp6(aLoopbackIp6); } \
  NS_IMETHOD GetPortForwardRules6(PRUint32 *portForwardRules6Size, PRUnichar ***portForwardRules6) { return _to GetPortForwardRules6(portForwardRules6Size, portForwardRules6); } \
  NS_IMETHOD GetInternalAndReservedAttribute1INATNetwork(PRUint32 *aInternalAndReservedAttribute1INATNetwork) { return _to GetInternalAndReservedAttribute1INATNetwork(aInternalAndReservedAttribute1INATNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute2INATNetwork(PRUint32 *aInternalAndReservedAttribute2INATNetwork) { return _to GetInternalAndReservedAttribute2INATNetwork(aInternalAndReservedAttribute2INATNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute3INATNetwork(PRUint32 *aInternalAndReservedAttribute3INATNetwork) { return _to GetInternalAndReservedAttribute3INATNetwork(aInternalAndReservedAttribute3INATNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute4INATNetwork(PRUint32 *aInternalAndReservedAttribute4INATNetwork) { return _to GetInternalAndReservedAttribute4INATNetwork(aInternalAndReservedAttribute4INATNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute5INATNetwork(PRUint32 *aInternalAndReservedAttribute5INATNetwork) { return _to GetInternalAndReservedAttribute5INATNetwork(aInternalAndReservedAttribute5INATNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute6INATNetwork(PRUint32 *aInternalAndReservedAttribute6INATNetwork) { return _to GetInternalAndReservedAttribute6INATNetwork(aInternalAndReservedAttribute6INATNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute7INATNetwork(PRUint32 *aInternalAndReservedAttribute7INATNetwork) { return _to GetInternalAndReservedAttribute7INATNetwork(aInternalAndReservedAttribute7INATNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute8INATNetwork(PRUint32 *aInternalAndReservedAttribute8INATNetwork) { return _to GetInternalAndReservedAttribute8INATNetwork(aInternalAndReservedAttribute8INATNetwork); } \
  NS_IMETHOD AddLocalMapping(const PRUnichar *hostid, PRInt32 offset) { return _to AddLocalMapping(hostid, offset); } \
  NS_IMETHOD AddPortForwardRule(PRBool isIpv6, const PRUnichar *ruleName, PRUint32 proto, const PRUnichar *hostIP, PRUint16 hostPort, const PRUnichar *guestIP, PRUint16 guestPort) { return _to AddPortForwardRule(isIpv6, ruleName, proto, hostIP, hostPort, guestIP, guestPort); } \
  NS_IMETHOD RemovePortForwardRule(PRBool iSipv6, const PRUnichar *ruleName) { return _to RemovePortForwardRule(iSipv6, ruleName); } \
  NS_IMETHOD Start(const PRUnichar *trunkType) { return _to Start(trunkType); } \
  NS_IMETHOD Stop(void) { return _to Stop(); } \
  NS_IMETHOD InternalAndReservedMethod1INATNetwork(void) { return _to InternalAndReservedMethod1INATNetwork(); } \
  NS_IMETHOD InternalAndReservedMethod2INATNetwork(void) { return _to InternalAndReservedMethod2INATNetwork(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_INATNETWORK(_to) \
  NS_IMETHOD GetNetworkName(PRUnichar * *aNetworkName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNetworkName(aNetworkName); } \
  NS_IMETHOD SetNetworkName(const PRUnichar * aNetworkName) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetNetworkName(aNetworkName); } \
  NS_IMETHOD GetEnabled(PRBool *aEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEnabled(aEnabled); } \
  NS_IMETHOD SetEnabled(PRBool aEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetEnabled(aEnabled); } \
  NS_IMETHOD GetNetwork(PRUnichar * *aNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNetwork(aNetwork); } \
  NS_IMETHOD SetNetwork(const PRUnichar * aNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetNetwork(aNetwork); } \
  NS_IMETHOD GetGateway(PRUnichar * *aGateway) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGateway(aGateway); } \
  NS_IMETHOD GetIPv6Enabled(PRBool *aIPv6Enabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIPv6Enabled(aIPv6Enabled); } \
  NS_IMETHOD SetIPv6Enabled(PRBool aIPv6Enabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIPv6Enabled(aIPv6Enabled); } \
  NS_IMETHOD GetIPv6Prefix(PRUnichar * *aIPv6Prefix) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIPv6Prefix(aIPv6Prefix); } \
  NS_IMETHOD SetIPv6Prefix(const PRUnichar * aIPv6Prefix) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIPv6Prefix(aIPv6Prefix); } \
  NS_IMETHOD GetAdvertiseDefaultIPv6RouteEnabled(PRBool *aAdvertiseDefaultIPv6RouteEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAdvertiseDefaultIPv6RouteEnabled(aAdvertiseDefaultIPv6RouteEnabled); } \
  NS_IMETHOD SetAdvertiseDefaultIPv6RouteEnabled(PRBool aAdvertiseDefaultIPv6RouteEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAdvertiseDefaultIPv6RouteEnabled(aAdvertiseDefaultIPv6RouteEnabled); } \
  NS_IMETHOD GetNeedDhcpServer(PRBool *aNeedDhcpServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNeedDhcpServer(aNeedDhcpServer); } \
  NS_IMETHOD SetNeedDhcpServer(PRBool aNeedDhcpServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetNeedDhcpServer(aNeedDhcpServer); } \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEventSource(aEventSource); } \
  NS_IMETHOD GetPortForwardRules4(PRUint32 *portForwardRules4Size, PRUnichar ***portForwardRules4) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPortForwardRules4(portForwardRules4Size, portForwardRules4); } \
  NS_IMETHOD GetLocalMappings(PRUint32 *localMappingsSize, PRUnichar ***localMappings) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLocalMappings(localMappingsSize, localMappings); } \
  NS_IMETHOD GetLoopbackIp6(PRInt32 *aLoopbackIp6) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLoopbackIp6(aLoopbackIp6); } \
  NS_IMETHOD SetLoopbackIp6(PRInt32 aLoopbackIp6) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLoopbackIp6(aLoopbackIp6); } \
  NS_IMETHOD GetPortForwardRules6(PRUint32 *portForwardRules6Size, PRUnichar ***portForwardRules6) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPortForwardRules6(portForwardRules6Size, portForwardRules6); } \
  NS_IMETHOD GetInternalAndReservedAttribute1INATNetwork(PRUint32 *aInternalAndReservedAttribute1INATNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1INATNetwork(aInternalAndReservedAttribute1INATNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute2INATNetwork(PRUint32 *aInternalAndReservedAttribute2INATNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2INATNetwork(aInternalAndReservedAttribute2INATNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute3INATNetwork(PRUint32 *aInternalAndReservedAttribute3INATNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3INATNetwork(aInternalAndReservedAttribute3INATNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute4INATNetwork(PRUint32 *aInternalAndReservedAttribute4INATNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4INATNetwork(aInternalAndReservedAttribute4INATNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute5INATNetwork(PRUint32 *aInternalAndReservedAttribute5INATNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5INATNetwork(aInternalAndReservedAttribute5INATNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute6INATNetwork(PRUint32 *aInternalAndReservedAttribute6INATNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6INATNetwork(aInternalAndReservedAttribute6INATNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute7INATNetwork(PRUint32 *aInternalAndReservedAttribute7INATNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7INATNetwork(aInternalAndReservedAttribute7INATNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute8INATNetwork(PRUint32 *aInternalAndReservedAttribute8INATNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8INATNetwork(aInternalAndReservedAttribute8INATNetwork); } \
  NS_IMETHOD AddLocalMapping(const PRUnichar *hostid, PRInt32 offset) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddLocalMapping(hostid, offset); } \
  NS_IMETHOD AddPortForwardRule(PRBool isIpv6, const PRUnichar *ruleName, PRUint32 proto, const PRUnichar *hostIP, PRUint16 hostPort, const PRUnichar *guestIP, PRUint16 guestPort) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddPortForwardRule(isIpv6, ruleName, proto, hostIP, hostPort, guestIP, guestPort); } \
  NS_IMETHOD RemovePortForwardRule(PRBool iSipv6, const PRUnichar *ruleName) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemovePortForwardRule(iSipv6, ruleName); } \
  NS_IMETHOD Start(const PRUnichar *trunkType) { return !_to ? NS_ERROR_NULL_POINTER : _to->Start(trunkType); } \
  NS_IMETHOD Stop(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Stop(); } \
  NS_IMETHOD InternalAndReservedMethod1INATNetwork(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1INATNetwork(); } \
  NS_IMETHOD InternalAndReservedMethod2INATNetwork(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2INATNetwork(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public INATNetwork
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_INATNETWORK

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, INATNetwork)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* attribute wstring networkName; */
NS_IMETHODIMP _MYCLASS_::GetNetworkName(PRUnichar * *aNetworkName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetNetworkName(const PRUnichar * aNetworkName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean enabled; */
NS_IMETHODIMP _MYCLASS_::GetEnabled(PRBool *aEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetEnabled(PRBool aEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring network; */
NS_IMETHODIMP _MYCLASS_::GetNetwork(PRUnichar * *aNetwork)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetNetwork(const PRUnichar * aNetwork)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring gateway; */
NS_IMETHODIMP _MYCLASS_::GetGateway(PRUnichar * *aGateway)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean IPv6Enabled; */
NS_IMETHODIMP _MYCLASS_::GetIPv6Enabled(PRBool *aIPv6Enabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetIPv6Enabled(PRBool aIPv6Enabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring IPv6Prefix; */
NS_IMETHODIMP _MYCLASS_::GetIPv6Prefix(PRUnichar * *aIPv6Prefix)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetIPv6Prefix(const PRUnichar * aIPv6Prefix)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean advertiseDefaultIPv6RouteEnabled; */
NS_IMETHODIMP _MYCLASS_::GetAdvertiseDefaultIPv6RouteEnabled(PRBool *aAdvertiseDefaultIPv6RouteEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetAdvertiseDefaultIPv6RouteEnabled(PRBool aAdvertiseDefaultIPv6RouteEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean needDhcpServer; */
NS_IMETHODIMP _MYCLASS_::GetNeedDhcpServer(PRBool *aNeedDhcpServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetNeedDhcpServer(PRBool aNeedDhcpServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IEventSource eventSource; */
NS_IMETHODIMP _MYCLASS_::GetEventSource(IEventSource * *aEventSource)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getPortForwardRules4 (out unsigned long portForwardRules4Size, [array, size_is (portForwardRules4Size), retval] out wstring portForwardRules4); */
NS_IMETHODIMP _MYCLASS_::GetPortForwardRules4(PRUint32 *portForwardRules4Size, PRUnichar ***portForwardRules4)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getLocalMappings (out unsigned long localMappingsSize, [array, size_is (localMappingsSize), retval] out wstring localMappings); */
NS_IMETHODIMP _MYCLASS_::GetLocalMappings(PRUint32 *localMappingsSize, PRUnichar ***localMappings)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute long loopbackIp6; */
NS_IMETHODIMP _MYCLASS_::GetLoopbackIp6(PRInt32 *aLoopbackIp6)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetLoopbackIp6(PRInt32 aLoopbackIp6)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getPortForwardRules6 (out unsigned long portForwardRules6Size, [array, size_is (portForwardRules6Size), retval] out wstring portForwardRules6); */
NS_IMETHODIMP _MYCLASS_::GetPortForwardRules6(PRUint32 *portForwardRules6Size, PRUnichar ***portForwardRules6)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1INATNetwork; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1INATNetwork(PRUint32 *aInternalAndReservedAttribute1INATNetwork)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2INATNetwork; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2INATNetwork(PRUint32 *aInternalAndReservedAttribute2INATNetwork)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute3INATNetwork; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute3INATNetwork(PRUint32 *aInternalAndReservedAttribute3INATNetwork)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute4INATNetwork; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute4INATNetwork(PRUint32 *aInternalAndReservedAttribute4INATNetwork)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute5INATNetwork; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute5INATNetwork(PRUint32 *aInternalAndReservedAttribute5INATNetwork)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute6INATNetwork; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute6INATNetwork(PRUint32 *aInternalAndReservedAttribute6INATNetwork)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute7INATNetwork; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute7INATNetwork(PRUint32 *aInternalAndReservedAttribute7INATNetwork)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute8INATNetwork; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute8INATNetwork(PRUint32 *aInternalAndReservedAttribute8INATNetwork)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addLocalMapping (in wstring hostid, in long offset); */
NS_IMETHODIMP _MYCLASS_::AddLocalMapping(const PRUnichar *hostid, PRInt32 offset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addPortForwardRule (in boolean isIpv6, in wstring ruleName, in PRUint32 proto, in wstring hostIP, in unsigned short hostPort, in wstring guestIP, in unsigned short guestPort); */
NS_IMETHODIMP _MYCLASS_::AddPortForwardRule(PRBool isIpv6, const PRUnichar *ruleName, PRUint32 proto, const PRUnichar *hostIP, PRUint16 hostPort, const PRUnichar *guestIP, PRUint16 guestPort)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removePortForwardRule (in boolean iSipv6, in wstring ruleName); */
NS_IMETHODIMP _MYCLASS_::RemovePortForwardRule(PRBool iSipv6, const PRUnichar *ruleName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void start (in wstring trunkType); */
NS_IMETHODIMP _MYCLASS_::Start(const PRUnichar *trunkType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void stop (); */
NS_IMETHODIMP _MYCLASS_::Stop()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1INATNetwork (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1INATNetwork()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod2INATNetwork (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod2INATNetwork()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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 (PRUnichar * aTrunkType) { return smth Start (aTrunkType); }
#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;

/* starting interface:    IDHCPServer */
#define IDHCPSERVER_IID_STR "00c8f974-92c5-44a1-8f3f-702469fdd04b"

#define IDHCPSERVER_IID \
  {0x00c8f974, 0x92c5, 0x44a1, \
    { 0x8f, 0x3f, 0x70, 0x24, 0x69, 0xfd, 0xd0, 0x4b }}

class NS_NO_VTABLE IDHCPServer : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IDHCPSERVER_IID)

  /* readonly attribute IEventSource eventSource; */
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) = 0;

  /* attribute boolean enabled; */
  NS_IMETHOD GetEnabled(PRBool *aEnabled) = 0;
  NS_IMETHOD SetEnabled(PRBool aEnabled) = 0;

  /* readonly attribute wstring IPAddress; */
  NS_IMETHOD GetIPAddress(PRUnichar * *aIPAddress) = 0;

  /* readonly attribute wstring networkMask; */
  NS_IMETHOD GetNetworkMask(PRUnichar * *aNetworkMask) = 0;

  /* readonly attribute wstring networkName; */
  NS_IMETHOD GetNetworkName(PRUnichar * *aNetworkName) = 0;

  /* readonly attribute wstring lowerIP; */
  NS_IMETHOD GetLowerIP(PRUnichar * *aLowerIP) = 0;

  /* readonly attribute wstring upperIP; */
  NS_IMETHOD GetUpperIP(PRUnichar * *aUpperIP) = 0;

  /* void getGlobalOptions (out unsigned long globalOptionsSize, [array, size_is (globalOptionsSize), retval] out wstring globalOptions); */
  NS_IMETHOD GetGlobalOptions(PRUint32 *globalOptionsSize, PRUnichar ***globalOptions) = 0;

  /* void getVmConfigs (out unsigned long vmConfigsSize, [array, size_is (vmConfigsSize), retval] out wstring vmConfigs); */
  NS_IMETHOD GetVmConfigs(PRUint32 *vmConfigsSize, PRUnichar ***vmConfigs) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IDHCPServer; */
  NS_IMETHOD GetInternalAndReservedAttribute1IDHCPServer(PRUint32 *aInternalAndReservedAttribute1IDHCPServer) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IDHCPServer; */
  NS_IMETHOD GetInternalAndReservedAttribute2IDHCPServer(PRUint32 *aInternalAndReservedAttribute2IDHCPServer) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IDHCPServer; */
  NS_IMETHOD GetInternalAndReservedAttribute3IDHCPServer(PRUint32 *aInternalAndReservedAttribute3IDHCPServer) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IDHCPServer; */
  NS_IMETHOD GetInternalAndReservedAttribute4IDHCPServer(PRUint32 *aInternalAndReservedAttribute4IDHCPServer) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IDHCPServer; */
  NS_IMETHOD GetInternalAndReservedAttribute5IDHCPServer(PRUint32 *aInternalAndReservedAttribute5IDHCPServer) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IDHCPServer; */
  NS_IMETHOD GetInternalAndReservedAttribute6IDHCPServer(PRUint32 *aInternalAndReservedAttribute6IDHCPServer) = 0;

  /* void addGlobalOption (in PRUint32 option, in wstring value); */
  NS_IMETHOD AddGlobalOption(PRUint32 option, const PRUnichar *value) = 0;

  /* void addVmSlotOption (in wstring vmname, in long slot, in PRUint32 option, in wstring value); */
  NS_IMETHOD AddVmSlotOption(const PRUnichar *vmname, PRInt32 slot, PRUint32 option, const PRUnichar *value) = 0;

  /* void removeVmSlotOptions (in wstring vmname, in long slot); */
  NS_IMETHOD RemoveVmSlotOptions(const PRUnichar *vmname, PRInt32 slot) = 0;

  /* void getVmSlotOptions (in wstring vmname, in long slot, out unsigned long optionSize, [array, size_is (optionSize), retval] out wstring option); */
  NS_IMETHOD GetVmSlotOptions(const PRUnichar *vmname, PRInt32 slot, PRUint32 *optionSize, PRUnichar ***option) = 0;

  /* void getMacOptions (in wstring mac, out unsigned long optionSize, [array, size_is (optionSize), retval] out wstring option); */
  NS_IMETHOD GetMacOptions(const PRUnichar *mac, PRUint32 *optionSize, PRUnichar ***option) = 0;

  /* void setConfiguration (in wstring IPAddress, in wstring networkMask, in wstring FromIPAddress, in wstring ToIPAddress); */
  NS_IMETHOD SetConfiguration(const PRUnichar *IPAddress, const PRUnichar *networkMask, const PRUnichar *FromIPAddress, const PRUnichar *ToIPAddress) = 0;

  /* void start (in wstring networkName, in wstring trunkName, in wstring trunkType); */
  NS_IMETHOD Start(const PRUnichar *networkName, const PRUnichar *trunkName, const PRUnichar *trunkType) = 0;

  /* void stop (); */
  NS_IMETHOD Stop(void) = 0;

  /* void InternalAndReservedMethod1IDHCPServer (); */
  NS_IMETHOD InternalAndReservedMethod1IDHCPServer(void) = 0;

  /* void InternalAndReservedMethod2IDHCPServer (); */
  NS_IMETHOD InternalAndReservedMethod2IDHCPServer(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IDHCPSERVER \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource); \
  NS_IMETHOD GetEnabled(PRBool *aEnabled); \
  NS_IMETHOD SetEnabled(PRBool aEnabled); \
  NS_IMETHOD GetIPAddress(PRUnichar * *aIPAddress); \
  NS_IMETHOD GetNetworkMask(PRUnichar * *aNetworkMask); \
  NS_IMETHOD GetNetworkName(PRUnichar * *aNetworkName); \
  NS_IMETHOD GetLowerIP(PRUnichar * *aLowerIP); \
  NS_IMETHOD GetUpperIP(PRUnichar * *aUpperIP); \
  NS_IMETHOD GetGlobalOptions(PRUint32 *globalOptionsSize, PRUnichar ***globalOptions); \
  NS_IMETHOD GetVmConfigs(PRUint32 *vmConfigsSize, PRUnichar ***vmConfigs); \
  NS_IMETHOD GetInternalAndReservedAttribute1IDHCPServer(PRUint32 *aInternalAndReservedAttribute1IDHCPServer); \
  NS_IMETHOD GetInternalAndReservedAttribute2IDHCPServer(PRUint32 *aInternalAndReservedAttribute2IDHCPServer); \
  NS_IMETHOD GetInternalAndReservedAttribute3IDHCPServer(PRUint32 *aInternalAndReservedAttribute3IDHCPServer); \
  NS_IMETHOD GetInternalAndReservedAttribute4IDHCPServer(PRUint32 *aInternalAndReservedAttribute4IDHCPServer); \
  NS_IMETHOD GetInternalAndReservedAttribute5IDHCPServer(PRUint32 *aInternalAndReservedAttribute5IDHCPServer); \
  NS_IMETHOD GetInternalAndReservedAttribute6IDHCPServer(PRUint32 *aInternalAndReservedAttribute6IDHCPServer); \
  NS_IMETHOD AddGlobalOption(PRUint32 option, const PRUnichar *value); \
  NS_IMETHOD AddVmSlotOption(const PRUnichar *vmname, PRInt32 slot, PRUint32 option, const PRUnichar *value); \
  NS_IMETHOD RemoveVmSlotOptions(const PRUnichar *vmname, PRInt32 slot); \
  NS_IMETHOD GetVmSlotOptions(const PRUnichar *vmname, PRInt32 slot, PRUint32 *optionSize, PRUnichar ***option); \
  NS_IMETHOD GetMacOptions(const PRUnichar *mac, PRUint32 *optionSize, PRUnichar ***option); \
  NS_IMETHOD SetConfiguration(const PRUnichar *IPAddress, const PRUnichar *networkMask, const PRUnichar *FromIPAddress, const PRUnichar *ToIPAddress); \
  NS_IMETHOD Start(const PRUnichar *networkName, const PRUnichar *trunkName, const PRUnichar *trunkType); \
  NS_IMETHOD Stop(void); \
  NS_IMETHOD InternalAndReservedMethod1IDHCPServer(void); \
  NS_IMETHOD InternalAndReservedMethod2IDHCPServer(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IDHCPSERVER(_to) \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) { return _to GetEventSource(aEventSource); } \
  NS_IMETHOD GetEnabled(PRBool *aEnabled) { return _to GetEnabled(aEnabled); } \
  NS_IMETHOD SetEnabled(PRBool aEnabled) { return _to SetEnabled(aEnabled); } \
  NS_IMETHOD GetIPAddress(PRUnichar * *aIPAddress) { return _to GetIPAddress(aIPAddress); } \
  NS_IMETHOD GetNetworkMask(PRUnichar * *aNetworkMask) { return _to GetNetworkMask(aNetworkMask); } \
  NS_IMETHOD GetNetworkName(PRUnichar * *aNetworkName) { return _to GetNetworkName(aNetworkName); } \
  NS_IMETHOD GetLowerIP(PRUnichar * *aLowerIP) { return _to GetLowerIP(aLowerIP); } \
  NS_IMETHOD GetUpperIP(PRUnichar * *aUpperIP) { return _to GetUpperIP(aUpperIP); } \
  NS_IMETHOD GetGlobalOptions(PRUint32 *globalOptionsSize, PRUnichar ***globalOptions) { return _to GetGlobalOptions(globalOptionsSize, globalOptions); } \
  NS_IMETHOD GetVmConfigs(PRUint32 *vmConfigsSize, PRUnichar ***vmConfigs) { return _to GetVmConfigs(vmConfigsSize, vmConfigs); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IDHCPServer(PRUint32 *aInternalAndReservedAttribute1IDHCPServer) { return _to GetInternalAndReservedAttribute1IDHCPServer(aInternalAndReservedAttribute1IDHCPServer); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IDHCPServer(PRUint32 *aInternalAndReservedAttribute2IDHCPServer) { return _to GetInternalAndReservedAttribute2IDHCPServer(aInternalAndReservedAttribute2IDHCPServer); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IDHCPServer(PRUint32 *aInternalAndReservedAttribute3IDHCPServer) { return _to GetInternalAndReservedAttribute3IDHCPServer(aInternalAndReservedAttribute3IDHCPServer); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IDHCPServer(PRUint32 *aInternalAndReservedAttribute4IDHCPServer) { return _to GetInternalAndReservedAttribute4IDHCPServer(aInternalAndReservedAttribute4IDHCPServer); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IDHCPServer(PRUint32 *aInternalAndReservedAttribute5IDHCPServer) { return _to GetInternalAndReservedAttribute5IDHCPServer(aInternalAndReservedAttribute5IDHCPServer); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IDHCPServer(PRUint32 *aInternalAndReservedAttribute6IDHCPServer) { return _to GetInternalAndReservedAttribute6IDHCPServer(aInternalAndReservedAttribute6IDHCPServer); } \
  NS_IMETHOD AddGlobalOption(PRUint32 option, const PRUnichar *value) { return _to AddGlobalOption(option, value); } \
  NS_IMETHOD AddVmSlotOption(const PRUnichar *vmname, PRInt32 slot, PRUint32 option, const PRUnichar *value) { return _to AddVmSlotOption(vmname, slot, option, value); } \
  NS_IMETHOD RemoveVmSlotOptions(const PRUnichar *vmname, PRInt32 slot) { return _to RemoveVmSlotOptions(vmname, slot); } \
  NS_IMETHOD GetVmSlotOptions(const PRUnichar *vmname, PRInt32 slot, PRUint32 *optionSize, PRUnichar ***option) { return _to GetVmSlotOptions(vmname, slot, optionSize, option); } \
  NS_IMETHOD GetMacOptions(const PRUnichar *mac, PRUint32 *optionSize, PRUnichar ***option) { return _to GetMacOptions(mac, optionSize, option); } \
  NS_IMETHOD SetConfiguration(const PRUnichar *IPAddress, const PRUnichar *networkMask, const PRUnichar *FromIPAddress, const PRUnichar *ToIPAddress) { return _to SetConfiguration(IPAddress, networkMask, FromIPAddress, ToIPAddress); } \
  NS_IMETHOD Start(const PRUnichar *networkName, const PRUnichar *trunkName, const PRUnichar *trunkType) { return _to Start(networkName, trunkName, trunkType); } \
  NS_IMETHOD Stop(void) { return _to Stop(); } \
  NS_IMETHOD InternalAndReservedMethod1IDHCPServer(void) { return _to InternalAndReservedMethod1IDHCPServer(); } \
  NS_IMETHOD InternalAndReservedMethod2IDHCPServer(void) { return _to InternalAndReservedMethod2IDHCPServer(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IDHCPSERVER(_to) \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEventSource(aEventSource); } \
  NS_IMETHOD GetEnabled(PRBool *aEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEnabled(aEnabled); } \
  NS_IMETHOD SetEnabled(PRBool aEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetEnabled(aEnabled); } \
  NS_IMETHOD GetIPAddress(PRUnichar * *aIPAddress) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIPAddress(aIPAddress); } \
  NS_IMETHOD GetNetworkMask(PRUnichar * *aNetworkMask) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNetworkMask(aNetworkMask); } \
  NS_IMETHOD GetNetworkName(PRUnichar * *aNetworkName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNetworkName(aNetworkName); } \
  NS_IMETHOD GetLowerIP(PRUnichar * *aLowerIP) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLowerIP(aLowerIP); } \
  NS_IMETHOD GetUpperIP(PRUnichar * *aUpperIP) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUpperIP(aUpperIP); } \
  NS_IMETHOD GetGlobalOptions(PRUint32 *globalOptionsSize, PRUnichar ***globalOptions) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGlobalOptions(globalOptionsSize, globalOptions); } \
  NS_IMETHOD GetVmConfigs(PRUint32 *vmConfigsSize, PRUnichar ***vmConfigs) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVmConfigs(vmConfigsSize, vmConfigs); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IDHCPServer(PRUint32 *aInternalAndReservedAttribute1IDHCPServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IDHCPServer(aInternalAndReservedAttribute1IDHCPServer); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IDHCPServer(PRUint32 *aInternalAndReservedAttribute2IDHCPServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IDHCPServer(aInternalAndReservedAttribute2IDHCPServer); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IDHCPServer(PRUint32 *aInternalAndReservedAttribute3IDHCPServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IDHCPServer(aInternalAndReservedAttribute3IDHCPServer); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IDHCPServer(PRUint32 *aInternalAndReservedAttribute4IDHCPServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IDHCPServer(aInternalAndReservedAttribute4IDHCPServer); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IDHCPServer(PRUint32 *aInternalAndReservedAttribute5IDHCPServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IDHCPServer(aInternalAndReservedAttribute5IDHCPServer); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IDHCPServer(PRUint32 *aInternalAndReservedAttribute6IDHCPServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IDHCPServer(aInternalAndReservedAttribute6IDHCPServer); } \
  NS_IMETHOD AddGlobalOption(PRUint32 option, const PRUnichar *value) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddGlobalOption(option, value); } \
  NS_IMETHOD AddVmSlotOption(const PRUnichar *vmname, PRInt32 slot, PRUint32 option, const PRUnichar *value) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddVmSlotOption(vmname, slot, option, value); } \
  NS_IMETHOD RemoveVmSlotOptions(const PRUnichar *vmname, PRInt32 slot) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveVmSlotOptions(vmname, slot); } \
  NS_IMETHOD GetVmSlotOptions(const PRUnichar *vmname, PRInt32 slot, PRUint32 *optionSize, PRUnichar ***option) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVmSlotOptions(vmname, slot, optionSize, option); } \
  NS_IMETHOD GetMacOptions(const PRUnichar *mac, PRUint32 *optionSize, PRUnichar ***option) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMacOptions(mac, optionSize, option); } \
  NS_IMETHOD SetConfiguration(const PRUnichar *IPAddress, const PRUnichar *networkMask, const PRUnichar *FromIPAddress, const PRUnichar *ToIPAddress) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetConfiguration(IPAddress, networkMask, FromIPAddress, ToIPAddress); } \
  NS_IMETHOD Start(const PRUnichar *networkName, const PRUnichar *trunkName, const PRUnichar *trunkType) { return !_to ? NS_ERROR_NULL_POINTER : _to->Start(networkName, trunkName, trunkType); } \
  NS_IMETHOD Stop(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Stop(); } \
  NS_IMETHOD InternalAndReservedMethod1IDHCPServer(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IDHCPServer(); } \
  NS_IMETHOD InternalAndReservedMethod2IDHCPServer(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IDHCPServer(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IDHCPServer
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IDHCPSERVER

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IDHCPServer)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute IEventSource eventSource; */
NS_IMETHODIMP _MYCLASS_::GetEventSource(IEventSource * *aEventSource)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean enabled; */
NS_IMETHODIMP _MYCLASS_::GetEnabled(PRBool *aEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetEnabled(PRBool aEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring IPAddress; */
NS_IMETHODIMP _MYCLASS_::GetIPAddress(PRUnichar * *aIPAddress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring networkMask; */
NS_IMETHODIMP _MYCLASS_::GetNetworkMask(PRUnichar * *aNetworkMask)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring networkName; */
NS_IMETHODIMP _MYCLASS_::GetNetworkName(PRUnichar * *aNetworkName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring lowerIP; */
NS_IMETHODIMP _MYCLASS_::GetLowerIP(PRUnichar * *aLowerIP)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring upperIP; */
NS_IMETHODIMP _MYCLASS_::GetUpperIP(PRUnichar * *aUpperIP)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getGlobalOptions (out unsigned long globalOptionsSize, [array, size_is (globalOptionsSize), retval] out wstring globalOptions); */
NS_IMETHODIMP _MYCLASS_::GetGlobalOptions(PRUint32 *globalOptionsSize, PRUnichar ***globalOptions)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getVmConfigs (out unsigned long vmConfigsSize, [array, size_is (vmConfigsSize), retval] out wstring vmConfigs); */
NS_IMETHODIMP _MYCLASS_::GetVmConfigs(PRUint32 *vmConfigsSize, PRUnichar ***vmConfigs)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IDHCPServer; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IDHCPServer(PRUint32 *aInternalAndReservedAttribute1IDHCPServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IDHCPServer; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IDHCPServer(PRUint32 *aInternalAndReservedAttribute2IDHCPServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute3IDHCPServer; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute3IDHCPServer(PRUint32 *aInternalAndReservedAttribute3IDHCPServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute4IDHCPServer; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute4IDHCPServer(PRUint32 *aInternalAndReservedAttribute4IDHCPServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute5IDHCPServer; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute5IDHCPServer(PRUint32 *aInternalAndReservedAttribute5IDHCPServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute6IDHCPServer; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute6IDHCPServer(PRUint32 *aInternalAndReservedAttribute6IDHCPServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addGlobalOption (in PRUint32 option, in wstring value); */
NS_IMETHODIMP _MYCLASS_::AddGlobalOption(PRUint32 option, const PRUnichar *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addVmSlotOption (in wstring vmname, in long slot, in PRUint32 option, in wstring value); */
NS_IMETHODIMP _MYCLASS_::AddVmSlotOption(const PRUnichar *vmname, PRInt32 slot, PRUint32 option, const PRUnichar *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeVmSlotOptions (in wstring vmname, in long slot); */
NS_IMETHODIMP _MYCLASS_::RemoveVmSlotOptions(const PRUnichar *vmname, PRInt32 slot)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getVmSlotOptions (in wstring vmname, in long slot, out unsigned long optionSize, [array, size_is (optionSize), retval] out wstring option); */
NS_IMETHODIMP _MYCLASS_::GetVmSlotOptions(const PRUnichar *vmname, PRInt32 slot, PRUint32 *optionSize, PRUnichar ***option)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getMacOptions (in wstring mac, out unsigned long optionSize, [array, size_is (optionSize), retval] out wstring option); */
NS_IMETHODIMP _MYCLASS_::GetMacOptions(const PRUnichar *mac, PRUint32 *optionSize, PRUnichar ***option)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setConfiguration (in wstring IPAddress, in wstring networkMask, in wstring FromIPAddress, in wstring ToIPAddress); */
NS_IMETHODIMP _MYCLASS_::SetConfiguration(const PRUnichar *IPAddress, const PRUnichar *networkMask, const PRUnichar *FromIPAddress, const PRUnichar *ToIPAddress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void start (in wstring networkName, in wstring trunkName, in wstring trunkType); */
NS_IMETHODIMP _MYCLASS_::Start(const PRUnichar *networkName, const PRUnichar *trunkName, const PRUnichar *trunkType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void stop (); */
NS_IMETHODIMP _MYCLASS_::Stop()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1IDHCPServer (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1IDHCPServer()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod2IDHCPServer (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod2IDHCPServer()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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_GlobalOptions_TO(smth) NS_IMETHOD GetGlobalOptions (PRUint32 * aGlobalOptionsSize, PRUnichar * * * aGlobalOptions) { return smth GetGlobalOptions (aGlobalOptionsSize, aGlobalOptions); }
#define COM_FORWARD_IDHCPServer_GETTER_GlobalOptions_TO_OBJ(obj) COM_FORWARD_IDHCPServer_GETTER_GlobalOptions_TO ((obj)->)
#define COM_FORWARD_IDHCPServer_GETTER_GlobalOptions_TO_BASE(base) COM_FORWARD_IDHCPServer_GETTER_GlobalOptions_TO (base::)
#define COM_FORWARD_IDHCPServer_GETTER_VmConfigs_TO(smth) NS_IMETHOD GetVmConfigs (PRUint32 * aVmConfigsSize, PRUnichar * * * aVmConfigs) { return smth GetVmConfigs (aVmConfigsSize, aVmConfigs); }
#define COM_FORWARD_IDHCPServer_GETTER_VmConfigs_TO_OBJ(obj) COM_FORWARD_IDHCPServer_GETTER_VmConfigs_TO ((obj)->)
#define COM_FORWARD_IDHCPServer_GETTER_VmConfigs_TO_BASE(base) COM_FORWARD_IDHCPServer_GETTER_VmConfigs_TO (base::)
#define COM_FORWARD_IDHCPServer_AddGlobalOption_TO(smth) NS_IMETHOD AddGlobalOption (PRUint32 aOption, PRUnichar * aValue) { return smth AddGlobalOption (aOption, aValue); }
#define COM_FORWARD_IDHCPServer_AddGlobalOption_TO_OBJ(obj) COM_FORWARD_IDHCPServer_AddGlobalOption_TO ((obj)->)
#define COM_FORWARD_IDHCPServer_AddGlobalOption_TO_BASE(base) COM_FORWARD_IDHCPServer_AddGlobalOption_TO (base::)
#define COM_FORWARD_IDHCPServer_AddVmSlotOption_TO(smth) NS_IMETHOD AddVmSlotOption (PRUnichar * aVmname, PRInt32 aSlot, PRUint32 aOption, PRUnichar * aValue) { return smth AddVmSlotOption (aVmname, aSlot, aOption, aValue); }
#define COM_FORWARD_IDHCPServer_AddVmSlotOption_TO_OBJ(obj) COM_FORWARD_IDHCPServer_AddVmSlotOption_TO ((obj)->)
#define COM_FORWARD_IDHCPServer_AddVmSlotOption_TO_BASE(base) COM_FORWARD_IDHCPServer_AddVmSlotOption_TO (base::)
#define COM_FORWARD_IDHCPServer_RemoveVmSlotOptions_TO(smth) NS_IMETHOD RemoveVmSlotOptions (PRUnichar * aVmname, PRInt32 aSlot) { return smth RemoveVmSlotOptions (aVmname, aSlot); }
#define COM_FORWARD_IDHCPServer_RemoveVmSlotOptions_TO_OBJ(obj) COM_FORWARD_IDHCPServer_RemoveVmSlotOptions_TO ((obj)->)
#define COM_FORWARD_IDHCPServer_RemoveVmSlotOptions_TO_BASE(base) COM_FORWARD_IDHCPServer_RemoveVmSlotOptions_TO (base::)
#define COM_FORWARD_IDHCPServer_GetVmSlotOptions_TO(smth) NS_IMETHOD GetVmSlotOptions (PRUnichar * aVmname, PRInt32 aSlot, PRUint32 * aOptionSize, PRUnichar * * * aOption) { return smth GetVmSlotOptions (aVmname, aSlot, aOptionSize, aOption); }
#define COM_FORWARD_IDHCPServer_GetVmSlotOptions_TO_OBJ(obj) COM_FORWARD_IDHCPServer_GetVmSlotOptions_TO ((obj)->)
#define COM_FORWARD_IDHCPServer_GetVmSlotOptions_TO_BASE(base) COM_FORWARD_IDHCPServer_GetVmSlotOptions_TO (base::)
#define COM_FORWARD_IDHCPServer_GetMacOptions_TO(smth) NS_IMETHOD GetMacOptions (PRUnichar * aMac, PRUint32 * aOptionSize, PRUnichar * * * aOption) { return smth GetMacOptions (aMac, aOptionSize, aOption); }
#define COM_FORWARD_IDHCPServer_GetMacOptions_TO_OBJ(obj) COM_FORWARD_IDHCPServer_GetMacOptions_TO ((obj)->)
#define COM_FORWARD_IDHCPServer_GetMacOptions_TO_BASE(base) COM_FORWARD_IDHCPServer_GetMacOptions_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 * aNetworkName, PRUnichar * aTrunkName, PRUnichar * aTrunkType) { return smth Start (aNetworkName, 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_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;

/* starting interface:    IVirtualBox */
#define IVIRTUALBOX_IID_STR "0169423f-46b4-cde9-91af-1e9d5b6cd945"

#define IVIRTUALBOX_IID \
  {0x0169423f, 0x46b4, 0xcde9, \
    { 0x91, 0xaf, 0x1e, 0x9d, 0x5b, 0x6c, 0xd9, 0x45 }}

class NS_NO_VTABLE IVirtualBox : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IVIRTUALBOX_IID)

  /* readonly attribute wstring version; */
  NS_IMETHOD GetVersion(PRUnichar * *aVersion) = 0;

  /* readonly attribute wstring versionNormalized; */
  NS_IMETHOD GetVersionNormalized(PRUnichar * *aVersionNormalized) = 0;

  /* readonly attribute unsigned long revision; */
  NS_IMETHOD GetRevision(PRUint32 *aRevision) = 0;

  /* readonly attribute wstring packageType; */
  NS_IMETHOD GetPackageType(PRUnichar * *aPackageType) = 0;

  /* readonly attribute wstring APIVersion; */
  NS_IMETHOD GetAPIVersion(PRUnichar * *aAPIVersion) = 0;

  /* readonly attribute long long APIRevision; */
  NS_IMETHOD GetAPIRevision(PRInt64 *aAPIRevision) = 0;

  /* readonly attribute wstring homeFolder; */
  NS_IMETHOD GetHomeFolder(PRUnichar * *aHomeFolder) = 0;

  /* readonly attribute wstring settingsFilePath; */
  NS_IMETHOD GetSettingsFilePath(PRUnichar * *aSettingsFilePath) = 0;

  /* readonly attribute IHost host; */
  NS_IMETHOD GetHost(IHost * *aHost) = 0;

  /* readonly attribute ISystemProperties systemProperties; */
  NS_IMETHOD GetSystemProperties(ISystemProperties * *aSystemProperties) = 0;

  /* void getMachines (out unsigned long machinesSize, [array, size_is (machinesSize), retval] out IMachine machines); */
  NS_IMETHOD GetMachines(PRUint32 *machinesSize, IMachine ***machines) = 0;

  /* void getMachineGroups (out unsigned long machineGroupsSize, [array, size_is (machineGroupsSize), retval] out wstring machineGroups); */
  NS_IMETHOD GetMachineGroups(PRUint32 *machineGroupsSize, PRUnichar ***machineGroups) = 0;

  /* void getHardDisks (out unsigned long hardDisksSize, [array, size_is (hardDisksSize), retval] out IMedium hardDisks); */
  NS_IMETHOD GetHardDisks(PRUint32 *hardDisksSize, IMedium ***hardDisks) = 0;

  /* void getDVDImages (out unsigned long DVDImagesSize, [array, size_is (DVDImagesSize), retval] out IMedium DVDImages); */
  NS_IMETHOD GetDVDImages(PRUint32 *DVDImagesSize, IMedium ***DVDImages) = 0;

  /* void getFloppyImages (out unsigned long floppyImagesSize, [array, size_is (floppyImagesSize), retval] out IMedium floppyImages); */
  NS_IMETHOD GetFloppyImages(PRUint32 *floppyImagesSize, IMedium ***floppyImages) = 0;

  /* void getProgressOperations (out unsigned long progressOperationsSize, [array, size_is (progressOperationsSize), retval] out IProgress progressOperations); */
  NS_IMETHOD GetProgressOperations(PRUint32 *progressOperationsSize, IProgress ***progressOperations) = 0;

  /* void getGuestOSTypes (out unsigned long guestOSTypesSize, [array, size_is (guestOSTypesSize), retval] out IGuestOSType guestOSTypes); */
  NS_IMETHOD GetGuestOSTypes(PRUint32 *guestOSTypesSize, IGuestOSType ***guestOSTypes) = 0;

  /* void getSharedFolders (out unsigned long sharedFoldersSize, [array, size_is (sharedFoldersSize), retval] out ISharedFolder sharedFolders); */
  NS_IMETHOD GetSharedFolders(PRUint32 *sharedFoldersSize, ISharedFolder ***sharedFolders) = 0;

  /* readonly attribute IPerformanceCollector performanceCollector; */
  NS_IMETHOD GetPerformanceCollector(IPerformanceCollector * *aPerformanceCollector) = 0;

  /* void getDHCPServers (out unsigned long DHCPServersSize, [array, size_is (DHCPServersSize), retval] out IDHCPServer DHCPServers); */
  NS_IMETHOD GetDHCPServers(PRUint32 *DHCPServersSize, IDHCPServer ***DHCPServers) = 0;

  /* void getNATNetworks (out unsigned long NATNetworksSize, [array, size_is (NATNetworksSize), retval] out INATNetwork NATNetworks); */
  NS_IMETHOD GetNATNetworks(PRUint32 *NATNetworksSize, INATNetwork ***NATNetworks) = 0;

  /* readonly attribute IEventSource eventSource; */
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) = 0;

  /* readonly attribute IExtPackManager extensionPackManager; */
  NS_IMETHOD GetExtensionPackManager(IExtPackManager * *aExtensionPackManager) = 0;

  /* void getInternalNetworks (out unsigned long internalNetworksSize, [array, size_is (internalNetworksSize), retval] out wstring internalNetworks); */
  NS_IMETHOD GetInternalNetworks(PRUint32 *internalNetworksSize, PRUnichar ***internalNetworks) = 0;

  /* void getGenericNetworkDrivers (out unsigned long genericNetworkDriversSize, [array, size_is (genericNetworkDriversSize), retval] out wstring genericNetworkDrivers); */
  NS_IMETHOD GetGenericNetworkDrivers(PRUint32 *genericNetworkDriversSize, PRUnichar ***genericNetworkDrivers) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IVirtualBox; */
  NS_IMETHOD GetInternalAndReservedAttribute1IVirtualBox(PRUint32 *aInternalAndReservedAttribute1IVirtualBox) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IVirtualBox; */
  NS_IMETHOD GetInternalAndReservedAttribute2IVirtualBox(PRUint32 *aInternalAndReservedAttribute2IVirtualBox) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IVirtualBox; */
  NS_IMETHOD GetInternalAndReservedAttribute3IVirtualBox(PRUint32 *aInternalAndReservedAttribute3IVirtualBox) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IVirtualBox; */
  NS_IMETHOD GetInternalAndReservedAttribute4IVirtualBox(PRUint32 *aInternalAndReservedAttribute4IVirtualBox) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IVirtualBox; */
  NS_IMETHOD GetInternalAndReservedAttribute5IVirtualBox(PRUint32 *aInternalAndReservedAttribute5IVirtualBox) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IVirtualBox; */
  NS_IMETHOD GetInternalAndReservedAttribute6IVirtualBox(PRUint32 *aInternalAndReservedAttribute6IVirtualBox) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IVirtualBox; */
  NS_IMETHOD GetInternalAndReservedAttribute7IVirtualBox(PRUint32 *aInternalAndReservedAttribute7IVirtualBox) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IVirtualBox; */
  NS_IMETHOD GetInternalAndReservedAttribute8IVirtualBox(PRUint32 *aInternalAndReservedAttribute8IVirtualBox) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute9IVirtualBox; */
  NS_IMETHOD GetInternalAndReservedAttribute9IVirtualBox(PRUint32 *aInternalAndReservedAttribute9IVirtualBox) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute10IVirtualBox; */
  NS_IMETHOD GetInternalAndReservedAttribute10IVirtualBox(PRUint32 *aInternalAndReservedAttribute10IVirtualBox) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute11IVirtualBox; */
  NS_IMETHOD GetInternalAndReservedAttribute11IVirtualBox(PRUint32 *aInternalAndReservedAttribute11IVirtualBox) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute12IVirtualBox; */
  NS_IMETHOD GetInternalAndReservedAttribute12IVirtualBox(PRUint32 *aInternalAndReservedAttribute12IVirtualBox) = 0;

  /* void composeMachineFilename (in wstring name, in wstring group, in wstring createFlags, in wstring baseFolder, [retval] out wstring file); */
  NS_IMETHOD ComposeMachineFilename(const PRUnichar *name, const PRUnichar *group, const PRUnichar *createFlags, const PRUnichar *baseFolder, PRUnichar **file) = 0;

  /* 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); */
  NS_IMETHOD CreateMachine(const PRUnichar *settingsFile, const PRUnichar *name, PRUint32 groupsSize, const PRUnichar **groups, const PRUnichar *osTypeId, const PRUnichar *flags, IMachine **machine) = 0;

  /* void openMachine (in wstring settingsFile, [retval] out IMachine machine); */
  NS_IMETHOD OpenMachine(const PRUnichar *settingsFile, IMachine **machine) = 0;

  /* void registerMachine (in IMachine machine); */
  NS_IMETHOD RegisterMachine(IMachine *machine) = 0;

  /* void findMachine (in wstring nameOrId, [retval] out IMachine machine); */
  NS_IMETHOD FindMachine(const PRUnichar *nameOrId, IMachine **machine) = 0;

  /* 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); */
  NS_IMETHOD GetMachinesByGroups(PRUint32 groupsSize, const PRUnichar **groups, PRUint32 *machinesSize, IMachine ***machines) = 0;

  /* void getMachineStates (in unsigned long machinesSize, [array, size_is (machinesSize)] in IMachine machines, out unsigned long statesSize, [array, size_is (statesSize), retval] out PRUint32 states); */
  NS_IMETHOD GetMachineStates(PRUint32 machinesSize, IMachine **machines, PRUint32 *statesSize, PRUint32 **states) = 0;

  /* void createAppliance ([retval] out IAppliance appliance); */
  NS_IMETHOD CreateAppliance(IAppliance **appliance) = 0;

  /* void createMedium (in wstring format, in wstring location, in PRUint32 accessMode, in PRUint32 aDeviceTypeType, [retval] out IMedium medium); */
  NS_IMETHOD CreateMedium(const PRUnichar *format, const PRUnichar *location, PRUint32 accessMode, PRUint32 aDeviceTypeType, IMedium **medium) = 0;

  /* void openMedium (in wstring location, in PRUint32 deviceType, in PRUint32 accessMode, in boolean forceNewUuid, [retval] out IMedium medium); */
  NS_IMETHOD OpenMedium(const PRUnichar *location, PRUint32 deviceType, PRUint32 accessMode, PRBool forceNewUuid, IMedium **medium) = 0;

  /* void getGuestOSType (in wstring id, [retval] out IGuestOSType type); */
  NS_IMETHOD GetGuestOSType(const PRUnichar *id, IGuestOSType **type) = 0;

  /* void createSharedFolder (in wstring name, in wstring hostPath, in boolean writable, in boolean automount); */
  NS_IMETHOD CreateSharedFolder(const PRUnichar *name, const PRUnichar *hostPath, PRBool writable, PRBool automount) = 0;

  /* void removeSharedFolder (in wstring name); */
  NS_IMETHOD RemoveSharedFolder(const PRUnichar *name) = 0;

  /* void getExtraDataKeys (out unsigned long keysSize, [array, size_is (keysSize), retval] out wstring keys); */
  NS_IMETHOD GetExtraDataKeys(PRUint32 *keysSize, PRUnichar ***keys) = 0;

  /* void getExtraData (in wstring key, [retval] out wstring value); */
  NS_IMETHOD GetExtraData(const PRUnichar *key, PRUnichar **value) = 0;

  /* void setExtraData (in wstring key, in wstring value); */
  NS_IMETHOD SetExtraData(const PRUnichar *key, const PRUnichar *value) = 0;

  /* void setSettingsSecret (in wstring password); */
  NS_IMETHOD SetSettingsSecret(const PRUnichar *password) = 0;

  /* void createDHCPServer (in wstring name, [retval] out IDHCPServer server); */
  NS_IMETHOD CreateDHCPServer(const PRUnichar *name, IDHCPServer **server) = 0;

  /* void findDHCPServerByNetworkName (in wstring name, [retval] out IDHCPServer server); */
  NS_IMETHOD FindDHCPServerByNetworkName(const PRUnichar *name, IDHCPServer **server) = 0;

  /* void removeDHCPServer (in IDHCPServer server); */
  NS_IMETHOD RemoveDHCPServer(IDHCPServer *server) = 0;

  /* void createNATNetwork (in wstring networkName, [retval] out INATNetwork network); */
  NS_IMETHOD CreateNATNetwork(const PRUnichar *networkName, INATNetwork **network) = 0;

  /* void findNATNetworkByName (in wstring networkName, [retval] out INATNetwork network); */
  NS_IMETHOD FindNATNetworkByName(const PRUnichar *networkName, INATNetwork **network) = 0;

  /* void removeNATNetwork (in INATNetwork network); */
  NS_IMETHOD RemoveNATNetwork(INATNetwork *network) = 0;

  /* void checkFirmwarePresent (in PRUint32 firmwareType, in wstring version, out wstring url, out wstring file, [retval] out boolean result); */
  NS_IMETHOD CheckFirmwarePresent(PRUint32 firmwareType, const PRUnichar *version, PRUnichar **url, PRUnichar **file, PRBool *result) = 0;

  /* void InternalAndReservedMethod1IVirtualBox (); */
  NS_IMETHOD InternalAndReservedMethod1IVirtualBox(void) = 0;

  /* void InternalAndReservedMethod2IVirtualBox (); */
  NS_IMETHOD InternalAndReservedMethod2IVirtualBox(void) = 0;

  /* void InternalAndReservedMethod3IVirtualBox (); */
  NS_IMETHOD InternalAndReservedMethod3IVirtualBox(void) = 0;

  /* void InternalAndReservedMethod4IVirtualBox (); */
  NS_IMETHOD InternalAndReservedMethod4IVirtualBox(void) = 0;

  /* void InternalAndReservedMethod5IVirtualBox (); */
  NS_IMETHOD InternalAndReservedMethod5IVirtualBox(void) = 0;

  /* void InternalAndReservedMethod6IVirtualBox (); */
  NS_IMETHOD InternalAndReservedMethod6IVirtualBox(void) = 0;

  /* void InternalAndReservedMethod7IVirtualBox (); */
  NS_IMETHOD InternalAndReservedMethod7IVirtualBox(void) = 0;

  /* void InternalAndReservedMethod8IVirtualBox (); */
  NS_IMETHOD InternalAndReservedMethod8IVirtualBox(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IVIRTUALBOX \
  NS_IMETHOD GetVersion(PRUnichar * *aVersion); \
  NS_IMETHOD GetVersionNormalized(PRUnichar * *aVersionNormalized); \
  NS_IMETHOD GetRevision(PRUint32 *aRevision); \
  NS_IMETHOD GetPackageType(PRUnichar * *aPackageType); \
  NS_IMETHOD GetAPIVersion(PRUnichar * *aAPIVersion); \
  NS_IMETHOD GetAPIRevision(PRInt64 *aAPIRevision); \
  NS_IMETHOD GetHomeFolder(PRUnichar * *aHomeFolder); \
  NS_IMETHOD GetSettingsFilePath(PRUnichar * *aSettingsFilePath); \
  NS_IMETHOD GetHost(IHost * *aHost); \
  NS_IMETHOD GetSystemProperties(ISystemProperties * *aSystemProperties); \
  NS_IMETHOD GetMachines(PRUint32 *machinesSize, IMachine ***machines); \
  NS_IMETHOD GetMachineGroups(PRUint32 *machineGroupsSize, PRUnichar ***machineGroups); \
  NS_IMETHOD GetHardDisks(PRUint32 *hardDisksSize, IMedium ***hardDisks); \
  NS_IMETHOD GetDVDImages(PRUint32 *DVDImagesSize, IMedium ***DVDImages); \
  NS_IMETHOD GetFloppyImages(PRUint32 *floppyImagesSize, IMedium ***floppyImages); \
  NS_IMETHOD GetProgressOperations(PRUint32 *progressOperationsSize, IProgress ***progressOperations); \
  NS_IMETHOD GetGuestOSTypes(PRUint32 *guestOSTypesSize, IGuestOSType ***guestOSTypes); \
  NS_IMETHOD GetSharedFolders(PRUint32 *sharedFoldersSize, ISharedFolder ***sharedFolders); \
  NS_IMETHOD GetPerformanceCollector(IPerformanceCollector * *aPerformanceCollector); \
  NS_IMETHOD GetDHCPServers(PRUint32 *DHCPServersSize, IDHCPServer ***DHCPServers); \
  NS_IMETHOD GetNATNetworks(PRUint32 *NATNetworksSize, INATNetwork ***NATNetworks); \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource); \
  NS_IMETHOD GetExtensionPackManager(IExtPackManager * *aExtensionPackManager); \
  NS_IMETHOD GetInternalNetworks(PRUint32 *internalNetworksSize, PRUnichar ***internalNetworks); \
  NS_IMETHOD GetGenericNetworkDrivers(PRUint32 *genericNetworkDriversSize, PRUnichar ***genericNetworkDrivers); \
  NS_IMETHOD GetInternalAndReservedAttribute1IVirtualBox(PRUint32 *aInternalAndReservedAttribute1IVirtualBox); \
  NS_IMETHOD GetInternalAndReservedAttribute2IVirtualBox(PRUint32 *aInternalAndReservedAttribute2IVirtualBox); \
  NS_IMETHOD GetInternalAndReservedAttribute3IVirtualBox(PRUint32 *aInternalAndReservedAttribute3IVirtualBox); \
  NS_IMETHOD GetInternalAndReservedAttribute4IVirtualBox(PRUint32 *aInternalAndReservedAttribute4IVirtualBox); \
  NS_IMETHOD GetInternalAndReservedAttribute5IVirtualBox(PRUint32 *aInternalAndReservedAttribute5IVirtualBox); \
  NS_IMETHOD GetInternalAndReservedAttribute6IVirtualBox(PRUint32 *aInternalAndReservedAttribute6IVirtualBox); \
  NS_IMETHOD GetInternalAndReservedAttribute7IVirtualBox(PRUint32 *aInternalAndReservedAttribute7IVirtualBox); \
  NS_IMETHOD GetInternalAndReservedAttribute8IVirtualBox(PRUint32 *aInternalAndReservedAttribute8IVirtualBox); \
  NS_IMETHOD GetInternalAndReservedAttribute9IVirtualBox(PRUint32 *aInternalAndReservedAttribute9IVirtualBox); \
  NS_IMETHOD GetInternalAndReservedAttribute10IVirtualBox(PRUint32 *aInternalAndReservedAttribute10IVirtualBox); \
  NS_IMETHOD GetInternalAndReservedAttribute11IVirtualBox(PRUint32 *aInternalAndReservedAttribute11IVirtualBox); \
  NS_IMETHOD GetInternalAndReservedAttribute12IVirtualBox(PRUint32 *aInternalAndReservedAttribute12IVirtualBox); \
  NS_IMETHOD ComposeMachineFilename(const PRUnichar *name, const PRUnichar *group, const PRUnichar *createFlags, const PRUnichar *baseFolder, PRUnichar **file); \
  NS_IMETHOD CreateMachine(const PRUnichar *settingsFile, const PRUnichar *name, PRUint32 groupsSize, const PRUnichar **groups, const PRUnichar *osTypeId, const PRUnichar *flags, IMachine **machine); \
  NS_IMETHOD OpenMachine(const PRUnichar *settingsFile, IMachine **machine); \
  NS_IMETHOD RegisterMachine(IMachine *machine); \
  NS_IMETHOD FindMachine(const PRUnichar *nameOrId, IMachine **machine); \
  NS_IMETHOD GetMachinesByGroups(PRUint32 groupsSize, const PRUnichar **groups, PRUint32 *machinesSize, IMachine ***machines); \
  NS_IMETHOD GetMachineStates(PRUint32 machinesSize, IMachine **machines, PRUint32 *statesSize, PRUint32 **states); \
  NS_IMETHOD CreateAppliance(IAppliance **appliance); \
  NS_IMETHOD CreateMedium(const PRUnichar *format, const PRUnichar *location, PRUint32 accessMode, PRUint32 aDeviceTypeType, IMedium **medium); \
  NS_IMETHOD OpenMedium(const PRUnichar *location, PRUint32 deviceType, PRUint32 accessMode, PRBool forceNewUuid, IMedium **medium); \
  NS_IMETHOD GetGuestOSType(const PRUnichar *id, IGuestOSType **type); \
  NS_IMETHOD CreateSharedFolder(const PRUnichar *name, const PRUnichar *hostPath, PRBool writable, PRBool automount); \
  NS_IMETHOD RemoveSharedFolder(const PRUnichar *name); \
  NS_IMETHOD GetExtraDataKeys(PRUint32 *keysSize, PRUnichar ***keys); \
  NS_IMETHOD GetExtraData(const PRUnichar *key, PRUnichar **value); \
  NS_IMETHOD SetExtraData(const PRUnichar *key, const PRUnichar *value); \
  NS_IMETHOD SetSettingsSecret(const PRUnichar *password); \
  NS_IMETHOD CreateDHCPServer(const PRUnichar *name, IDHCPServer **server); \
  NS_IMETHOD FindDHCPServerByNetworkName(const PRUnichar *name, IDHCPServer **server); \
  NS_IMETHOD RemoveDHCPServer(IDHCPServer *server); \
  NS_IMETHOD CreateNATNetwork(const PRUnichar *networkName, INATNetwork **network); \
  NS_IMETHOD FindNATNetworkByName(const PRUnichar *networkName, INATNetwork **network); \
  NS_IMETHOD RemoveNATNetwork(INATNetwork *network); \
  NS_IMETHOD CheckFirmwarePresent(PRUint32 firmwareType, const PRUnichar *version, PRUnichar **url, PRUnichar **file, PRBool *result); \
  NS_IMETHOD InternalAndReservedMethod1IVirtualBox(void); \
  NS_IMETHOD InternalAndReservedMethod2IVirtualBox(void); \
  NS_IMETHOD InternalAndReservedMethod3IVirtualBox(void); \
  NS_IMETHOD InternalAndReservedMethod4IVirtualBox(void); \
  NS_IMETHOD InternalAndReservedMethod5IVirtualBox(void); \
  NS_IMETHOD InternalAndReservedMethod6IVirtualBox(void); \
  NS_IMETHOD InternalAndReservedMethod7IVirtualBox(void); \
  NS_IMETHOD InternalAndReservedMethod8IVirtualBox(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IVIRTUALBOX(_to) \
  NS_IMETHOD GetVersion(PRUnichar * *aVersion) { return _to GetVersion(aVersion); } \
  NS_IMETHOD GetVersionNormalized(PRUnichar * *aVersionNormalized) { return _to GetVersionNormalized(aVersionNormalized); } \
  NS_IMETHOD GetRevision(PRUint32 *aRevision) { return _to GetRevision(aRevision); } \
  NS_IMETHOD GetPackageType(PRUnichar * *aPackageType) { return _to GetPackageType(aPackageType); } \
  NS_IMETHOD GetAPIVersion(PRUnichar * *aAPIVersion) { return _to GetAPIVersion(aAPIVersion); } \
  NS_IMETHOD GetAPIRevision(PRInt64 *aAPIRevision) { return _to GetAPIRevision(aAPIRevision); } \
  NS_IMETHOD GetHomeFolder(PRUnichar * *aHomeFolder) { return _to GetHomeFolder(aHomeFolder); } \
  NS_IMETHOD GetSettingsFilePath(PRUnichar * *aSettingsFilePath) { return _to GetSettingsFilePath(aSettingsFilePath); } \
  NS_IMETHOD GetHost(IHost * *aHost) { return _to GetHost(aHost); } \
  NS_IMETHOD GetSystemProperties(ISystemProperties * *aSystemProperties) { return _to GetSystemProperties(aSystemProperties); } \
  NS_IMETHOD GetMachines(PRUint32 *machinesSize, IMachine ***machines) { return _to GetMachines(machinesSize, machines); } \
  NS_IMETHOD GetMachineGroups(PRUint32 *machineGroupsSize, PRUnichar ***machineGroups) { return _to GetMachineGroups(machineGroupsSize, machineGroups); } \
  NS_IMETHOD GetHardDisks(PRUint32 *hardDisksSize, IMedium ***hardDisks) { return _to GetHardDisks(hardDisksSize, hardDisks); } \
  NS_IMETHOD GetDVDImages(PRUint32 *DVDImagesSize, IMedium ***DVDImages) { return _to GetDVDImages(DVDImagesSize, DVDImages); } \
  NS_IMETHOD GetFloppyImages(PRUint32 *floppyImagesSize, IMedium ***floppyImages) { return _to GetFloppyImages(floppyImagesSize, floppyImages); } \
  NS_IMETHOD GetProgressOperations(PRUint32 *progressOperationsSize, IProgress ***progressOperations) { return _to GetProgressOperations(progressOperationsSize, progressOperations); } \
  NS_IMETHOD GetGuestOSTypes(PRUint32 *guestOSTypesSize, IGuestOSType ***guestOSTypes) { return _to GetGuestOSTypes(guestOSTypesSize, guestOSTypes); } \
  NS_IMETHOD GetSharedFolders(PRUint32 *sharedFoldersSize, ISharedFolder ***sharedFolders) { return _to GetSharedFolders(sharedFoldersSize, sharedFolders); } \
  NS_IMETHOD GetPerformanceCollector(IPerformanceCollector * *aPerformanceCollector) { return _to GetPerformanceCollector(aPerformanceCollector); } \
  NS_IMETHOD GetDHCPServers(PRUint32 *DHCPServersSize, IDHCPServer ***DHCPServers) { return _to GetDHCPServers(DHCPServersSize, DHCPServers); } \
  NS_IMETHOD GetNATNetworks(PRUint32 *NATNetworksSize, INATNetwork ***NATNetworks) { return _to GetNATNetworks(NATNetworksSize, NATNetworks); } \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) { return _to GetEventSource(aEventSource); } \
  NS_IMETHOD GetExtensionPackManager(IExtPackManager * *aExtensionPackManager) { return _to GetExtensionPackManager(aExtensionPackManager); } \
  NS_IMETHOD GetInternalNetworks(PRUint32 *internalNetworksSize, PRUnichar ***internalNetworks) { return _to GetInternalNetworks(internalNetworksSize, internalNetworks); } \
  NS_IMETHOD GetGenericNetworkDrivers(PRUint32 *genericNetworkDriversSize, PRUnichar ***genericNetworkDrivers) { return _to GetGenericNetworkDrivers(genericNetworkDriversSize, genericNetworkDrivers); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IVirtualBox(PRUint32 *aInternalAndReservedAttribute1IVirtualBox) { return _to GetInternalAndReservedAttribute1IVirtualBox(aInternalAndReservedAttribute1IVirtualBox); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IVirtualBox(PRUint32 *aInternalAndReservedAttribute2IVirtualBox) { return _to GetInternalAndReservedAttribute2IVirtualBox(aInternalAndReservedAttribute2IVirtualBox); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IVirtualBox(PRUint32 *aInternalAndReservedAttribute3IVirtualBox) { return _to GetInternalAndReservedAttribute3IVirtualBox(aInternalAndReservedAttribute3IVirtualBox); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IVirtualBox(PRUint32 *aInternalAndReservedAttribute4IVirtualBox) { return _to GetInternalAndReservedAttribute4IVirtualBox(aInternalAndReservedAttribute4IVirtualBox); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IVirtualBox(PRUint32 *aInternalAndReservedAttribute5IVirtualBox) { return _to GetInternalAndReservedAttribute5IVirtualBox(aInternalAndReservedAttribute5IVirtualBox); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IVirtualBox(PRUint32 *aInternalAndReservedAttribute6IVirtualBox) { return _to GetInternalAndReservedAttribute6IVirtualBox(aInternalAndReservedAttribute6IVirtualBox); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IVirtualBox(PRUint32 *aInternalAndReservedAttribute7IVirtualBox) { return _to GetInternalAndReservedAttribute7IVirtualBox(aInternalAndReservedAttribute7IVirtualBox); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IVirtualBox(PRUint32 *aInternalAndReservedAttribute8IVirtualBox) { return _to GetInternalAndReservedAttribute8IVirtualBox(aInternalAndReservedAttribute8IVirtualBox); } \
  NS_IMETHOD GetInternalAndReservedAttribute9IVirtualBox(PRUint32 *aInternalAndReservedAttribute9IVirtualBox) { return _to GetInternalAndReservedAttribute9IVirtualBox(aInternalAndReservedAttribute9IVirtualBox); } \
  NS_IMETHOD GetInternalAndReservedAttribute10IVirtualBox(PRUint32 *aInternalAndReservedAttribute10IVirtualBox) { return _to GetInternalAndReservedAttribute10IVirtualBox(aInternalAndReservedAttribute10IVirtualBox); } \
  NS_IMETHOD GetInternalAndReservedAttribute11IVirtualBox(PRUint32 *aInternalAndReservedAttribute11IVirtualBox) { return _to GetInternalAndReservedAttribute11IVirtualBox(aInternalAndReservedAttribute11IVirtualBox); } \
  NS_IMETHOD GetInternalAndReservedAttribute12IVirtualBox(PRUint32 *aInternalAndReservedAttribute12IVirtualBox) { return _to GetInternalAndReservedAttribute12IVirtualBox(aInternalAndReservedAttribute12IVirtualBox); } \
  NS_IMETHOD ComposeMachineFilename(const PRUnichar *name, const PRUnichar *group, const PRUnichar *createFlags, const PRUnichar *baseFolder, PRUnichar **file) { return _to ComposeMachineFilename(name, group, createFlags, baseFolder, file); } \
  NS_IMETHOD CreateMachine(const PRUnichar *settingsFile, const PRUnichar *name, PRUint32 groupsSize, const PRUnichar **groups, const PRUnichar *osTypeId, const PRUnichar *flags, IMachine **machine) { return _to CreateMachine(settingsFile, name, groupsSize, groups, osTypeId, flags, machine); } \
  NS_IMETHOD OpenMachine(const PRUnichar *settingsFile, IMachine **machine) { return _to OpenMachine(settingsFile, machine); } \
  NS_IMETHOD RegisterMachine(IMachine *machine) { return _to RegisterMachine(machine); } \
  NS_IMETHOD FindMachine(const PRUnichar *nameOrId, IMachine **machine) { return _to FindMachine(nameOrId, machine); } \
  NS_IMETHOD GetMachinesByGroups(PRUint32 groupsSize, const PRUnichar **groups, PRUint32 *machinesSize, IMachine ***machines) { return _to GetMachinesByGroups(groupsSize, groups, machinesSize, machines); } \
  NS_IMETHOD GetMachineStates(PRUint32 machinesSize, IMachine **machines, PRUint32 *statesSize, PRUint32 **states) { return _to GetMachineStates(machinesSize, machines, statesSize, states); } \
  NS_IMETHOD CreateAppliance(IAppliance **appliance) { return _to CreateAppliance(appliance); } \
  NS_IMETHOD CreateMedium(const PRUnichar *format, const PRUnichar *location, PRUint32 accessMode, PRUint32 aDeviceTypeType, IMedium **medium) { return _to CreateMedium(format, location, accessMode, aDeviceTypeType, medium); } \
  NS_IMETHOD OpenMedium(const PRUnichar *location, PRUint32 deviceType, PRUint32 accessMode, PRBool forceNewUuid, IMedium **medium) { return _to OpenMedium(location, deviceType, accessMode, forceNewUuid, medium); } \
  NS_IMETHOD GetGuestOSType(const PRUnichar *id, IGuestOSType **type) { return _to GetGuestOSType(id, type); } \
  NS_IMETHOD CreateSharedFolder(const PRUnichar *name, const PRUnichar *hostPath, PRBool writable, PRBool automount) { return _to CreateSharedFolder(name, hostPath, writable, automount); } \
  NS_IMETHOD RemoveSharedFolder(const PRUnichar *name) { return _to RemoveSharedFolder(name); } \
  NS_IMETHOD GetExtraDataKeys(PRUint32 *keysSize, PRUnichar ***keys) { return _to GetExtraDataKeys(keysSize, keys); } \
  NS_IMETHOD GetExtraData(const PRUnichar *key, PRUnichar **value) { return _to GetExtraData(key, value); } \
  NS_IMETHOD SetExtraData(const PRUnichar *key, const PRUnichar *value) { return _to SetExtraData(key, value); } \
  NS_IMETHOD SetSettingsSecret(const PRUnichar *password) { return _to SetSettingsSecret(password); } \
  NS_IMETHOD CreateDHCPServer(const PRUnichar *name, IDHCPServer **server) { return _to CreateDHCPServer(name, server); } \
  NS_IMETHOD FindDHCPServerByNetworkName(const PRUnichar *name, IDHCPServer **server) { return _to FindDHCPServerByNetworkName(name, server); } \
  NS_IMETHOD RemoveDHCPServer(IDHCPServer *server) { return _to RemoveDHCPServer(server); } \
  NS_IMETHOD CreateNATNetwork(const PRUnichar *networkName, INATNetwork **network) { return _to CreateNATNetwork(networkName, network); } \
  NS_IMETHOD FindNATNetworkByName(const PRUnichar *networkName, INATNetwork **network) { return _to FindNATNetworkByName(networkName, network); } \
  NS_IMETHOD RemoveNATNetwork(INATNetwork *network) { return _to RemoveNATNetwork(network); } \
  NS_IMETHOD CheckFirmwarePresent(PRUint32 firmwareType, const PRUnichar *version, PRUnichar **url, PRUnichar **file, PRBool *result) { return _to CheckFirmwarePresent(firmwareType, version, url, file, result); } \
  NS_IMETHOD InternalAndReservedMethod1IVirtualBox(void) { return _to InternalAndReservedMethod1IVirtualBox(); } \
  NS_IMETHOD InternalAndReservedMethod2IVirtualBox(void) { return _to InternalAndReservedMethod2IVirtualBox(); } \
  NS_IMETHOD InternalAndReservedMethod3IVirtualBox(void) { return _to InternalAndReservedMethod3IVirtualBox(); } \
  NS_IMETHOD InternalAndReservedMethod4IVirtualBox(void) { return _to InternalAndReservedMethod4IVirtualBox(); } \
  NS_IMETHOD InternalAndReservedMethod5IVirtualBox(void) { return _to InternalAndReservedMethod5IVirtualBox(); } \
  NS_IMETHOD InternalAndReservedMethod6IVirtualBox(void) { return _to InternalAndReservedMethod6IVirtualBox(); } \
  NS_IMETHOD InternalAndReservedMethod7IVirtualBox(void) { return _to InternalAndReservedMethod7IVirtualBox(); } \
  NS_IMETHOD InternalAndReservedMethod8IVirtualBox(void) { return _to InternalAndReservedMethod8IVirtualBox(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IVIRTUALBOX(_to) \
  NS_IMETHOD GetVersion(PRUnichar * *aVersion) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVersion(aVersion); } \
  NS_IMETHOD GetVersionNormalized(PRUnichar * *aVersionNormalized) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVersionNormalized(aVersionNormalized); } \
  NS_IMETHOD GetRevision(PRUint32 *aRevision) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRevision(aRevision); } \
  NS_IMETHOD GetPackageType(PRUnichar * *aPackageType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPackageType(aPackageType); } \
  NS_IMETHOD GetAPIVersion(PRUnichar * *aAPIVersion) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAPIVersion(aAPIVersion); } \
  NS_IMETHOD GetAPIRevision(PRInt64 *aAPIRevision) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAPIRevision(aAPIRevision); } \
  NS_IMETHOD GetHomeFolder(PRUnichar * *aHomeFolder) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHomeFolder(aHomeFolder); } \
  NS_IMETHOD GetSettingsFilePath(PRUnichar * *aSettingsFilePath) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSettingsFilePath(aSettingsFilePath); } \
  NS_IMETHOD GetHost(IHost * *aHost) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHost(aHost); } \
  NS_IMETHOD GetSystemProperties(ISystemProperties * *aSystemProperties) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSystemProperties(aSystemProperties); } \
  NS_IMETHOD GetMachines(PRUint32 *machinesSize, IMachine ***machines) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMachines(machinesSize, machines); } \
  NS_IMETHOD GetMachineGroups(PRUint32 *machineGroupsSize, PRUnichar ***machineGroups) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMachineGroups(machineGroupsSize, machineGroups); } \
  NS_IMETHOD GetHardDisks(PRUint32 *hardDisksSize, IMedium ***hardDisks) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHardDisks(hardDisksSize, hardDisks); } \
  NS_IMETHOD GetDVDImages(PRUint32 *DVDImagesSize, IMedium ***DVDImages) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDVDImages(DVDImagesSize, DVDImages); } \
  NS_IMETHOD GetFloppyImages(PRUint32 *floppyImagesSize, IMedium ***floppyImages) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFloppyImages(floppyImagesSize, floppyImages); } \
  NS_IMETHOD GetProgressOperations(PRUint32 *progressOperationsSize, IProgress ***progressOperations) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProgressOperations(progressOperationsSize, progressOperations); } \
  NS_IMETHOD GetGuestOSTypes(PRUint32 *guestOSTypesSize, IGuestOSType ***guestOSTypes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGuestOSTypes(guestOSTypesSize, guestOSTypes); } \
  NS_IMETHOD GetSharedFolders(PRUint32 *sharedFoldersSize, ISharedFolder ***sharedFolders) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSharedFolders(sharedFoldersSize, sharedFolders); } \
  NS_IMETHOD GetPerformanceCollector(IPerformanceCollector * *aPerformanceCollector) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPerformanceCollector(aPerformanceCollector); } \
  NS_IMETHOD GetDHCPServers(PRUint32 *DHCPServersSize, IDHCPServer ***DHCPServers) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDHCPServers(DHCPServersSize, DHCPServers); } \
  NS_IMETHOD GetNATNetworks(PRUint32 *NATNetworksSize, INATNetwork ***NATNetworks) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNATNetworks(NATNetworksSize, NATNetworks); } \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEventSource(aEventSource); } \
  NS_IMETHOD GetExtensionPackManager(IExtPackManager * *aExtensionPackManager) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetExtensionPackManager(aExtensionPackManager); } \
  NS_IMETHOD GetInternalNetworks(PRUint32 *internalNetworksSize, PRUnichar ***internalNetworks) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalNetworks(internalNetworksSize, internalNetworks); } \
  NS_IMETHOD GetGenericNetworkDrivers(PRUint32 *genericNetworkDriversSize, PRUnichar ***genericNetworkDrivers) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGenericNetworkDrivers(genericNetworkDriversSize, genericNetworkDrivers); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IVirtualBox(PRUint32 *aInternalAndReservedAttribute1IVirtualBox) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IVirtualBox(aInternalAndReservedAttribute1IVirtualBox); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IVirtualBox(PRUint32 *aInternalAndReservedAttribute2IVirtualBox) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IVirtualBox(aInternalAndReservedAttribute2IVirtualBox); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IVirtualBox(PRUint32 *aInternalAndReservedAttribute3IVirtualBox) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IVirtualBox(aInternalAndReservedAttribute3IVirtualBox); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IVirtualBox(PRUint32 *aInternalAndReservedAttribute4IVirtualBox) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IVirtualBox(aInternalAndReservedAttribute4IVirtualBox); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IVirtualBox(PRUint32 *aInternalAndReservedAttribute5IVirtualBox) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IVirtualBox(aInternalAndReservedAttribute5IVirtualBox); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IVirtualBox(PRUint32 *aInternalAndReservedAttribute6IVirtualBox) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IVirtualBox(aInternalAndReservedAttribute6IVirtualBox); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IVirtualBox(PRUint32 *aInternalAndReservedAttribute7IVirtualBox) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IVirtualBox(aInternalAndReservedAttribute7IVirtualBox); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IVirtualBox(PRUint32 *aInternalAndReservedAttribute8IVirtualBox) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IVirtualBox(aInternalAndReservedAttribute8IVirtualBox); } \
  NS_IMETHOD GetInternalAndReservedAttribute9IVirtualBox(PRUint32 *aInternalAndReservedAttribute9IVirtualBox) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute9IVirtualBox(aInternalAndReservedAttribute9IVirtualBox); } \
  NS_IMETHOD GetInternalAndReservedAttribute10IVirtualBox(PRUint32 *aInternalAndReservedAttribute10IVirtualBox) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute10IVirtualBox(aInternalAndReservedAttribute10IVirtualBox); } \
  NS_IMETHOD GetInternalAndReservedAttribute11IVirtualBox(PRUint32 *aInternalAndReservedAttribute11IVirtualBox) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute11IVirtualBox(aInternalAndReservedAttribute11IVirtualBox); } \
  NS_IMETHOD GetInternalAndReservedAttribute12IVirtualBox(PRUint32 *aInternalAndReservedAttribute12IVirtualBox) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute12IVirtualBox(aInternalAndReservedAttribute12IVirtualBox); } \
  NS_IMETHOD ComposeMachineFilename(const PRUnichar *name, const PRUnichar *group, const PRUnichar *createFlags, const PRUnichar *baseFolder, PRUnichar **file) { return !_to ? NS_ERROR_NULL_POINTER : _to->ComposeMachineFilename(name, group, createFlags, baseFolder, file); } \
  NS_IMETHOD CreateMachine(const PRUnichar *settingsFile, const PRUnichar *name, PRUint32 groupsSize, const PRUnichar **groups, const PRUnichar *osTypeId, const PRUnichar *flags, IMachine **machine) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateMachine(settingsFile, name, groupsSize, groups, osTypeId, flags, machine); } \
  NS_IMETHOD OpenMachine(const PRUnichar *settingsFile, IMachine **machine) { return !_to ? NS_ERROR_NULL_POINTER : _to->OpenMachine(settingsFile, machine); } \
  NS_IMETHOD RegisterMachine(IMachine *machine) { return !_to ? NS_ERROR_NULL_POINTER : _to->RegisterMachine(machine); } \
  NS_IMETHOD FindMachine(const PRUnichar *nameOrId, IMachine **machine) { return !_to ? NS_ERROR_NULL_POINTER : _to->FindMachine(nameOrId, machine); } \
  NS_IMETHOD GetMachinesByGroups(PRUint32 groupsSize, const PRUnichar **groups, PRUint32 *machinesSize, IMachine ***machines) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMachinesByGroups(groupsSize, groups, machinesSize, machines); } \
  NS_IMETHOD GetMachineStates(PRUint32 machinesSize, IMachine **machines, PRUint32 *statesSize, PRUint32 **states) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMachineStates(machinesSize, machines, statesSize, states); } \
  NS_IMETHOD CreateAppliance(IAppliance **appliance) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateAppliance(appliance); } \
  NS_IMETHOD CreateMedium(const PRUnichar *format, const PRUnichar *location, PRUint32 accessMode, PRUint32 aDeviceTypeType, IMedium **medium) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateMedium(format, location, accessMode, aDeviceTypeType, medium); } \
  NS_IMETHOD OpenMedium(const PRUnichar *location, PRUint32 deviceType, PRUint32 accessMode, PRBool forceNewUuid, IMedium **medium) { return !_to ? NS_ERROR_NULL_POINTER : _to->OpenMedium(location, deviceType, accessMode, forceNewUuid, medium); } \
  NS_IMETHOD GetGuestOSType(const PRUnichar *id, IGuestOSType **type) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGuestOSType(id, type); } \
  NS_IMETHOD CreateSharedFolder(const PRUnichar *name, const PRUnichar *hostPath, PRBool writable, PRBool automount) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateSharedFolder(name, hostPath, writable, automount); } \
  NS_IMETHOD RemoveSharedFolder(const PRUnichar *name) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveSharedFolder(name); } \
  NS_IMETHOD GetExtraDataKeys(PRUint32 *keysSize, PRUnichar ***keys) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetExtraDataKeys(keysSize, keys); } \
  NS_IMETHOD GetExtraData(const PRUnichar *key, PRUnichar **value) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetExtraData(key, value); } \
  NS_IMETHOD SetExtraData(const PRUnichar *key, const PRUnichar *value) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetExtraData(key, value); } \
  NS_IMETHOD SetSettingsSecret(const PRUnichar *password) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSettingsSecret(password); } \
  NS_IMETHOD CreateDHCPServer(const PRUnichar *name, IDHCPServer **server) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateDHCPServer(name, server); } \
  NS_IMETHOD FindDHCPServerByNetworkName(const PRUnichar *name, IDHCPServer **server) { return !_to ? NS_ERROR_NULL_POINTER : _to->FindDHCPServerByNetworkName(name, server); } \
  NS_IMETHOD RemoveDHCPServer(IDHCPServer *server) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveDHCPServer(server); } \
  NS_IMETHOD CreateNATNetwork(const PRUnichar *networkName, INATNetwork **network) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateNATNetwork(networkName, network); } \
  NS_IMETHOD FindNATNetworkByName(const PRUnichar *networkName, INATNetwork **network) { return !_to ? NS_ERROR_NULL_POINTER : _to->FindNATNetworkByName(networkName, network); } \
  NS_IMETHOD RemoveNATNetwork(INATNetwork *network) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveNATNetwork(network); } \
  NS_IMETHOD CheckFirmwarePresent(PRUint32 firmwareType, const PRUnichar *version, PRUnichar **url, PRUnichar **file, PRBool *result) { return !_to ? NS_ERROR_NULL_POINTER : _to->CheckFirmwarePresent(firmwareType, version, url, file, result); } \
  NS_IMETHOD InternalAndReservedMethod1IVirtualBox(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IVirtualBox(); } \
  NS_IMETHOD InternalAndReservedMethod2IVirtualBox(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IVirtualBox(); } \
  NS_IMETHOD InternalAndReservedMethod3IVirtualBox(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IVirtualBox(); } \
  NS_IMETHOD InternalAndReservedMethod4IVirtualBox(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IVirtualBox(); } \
  NS_IMETHOD InternalAndReservedMethod5IVirtualBox(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod5IVirtualBox(); } \
  NS_IMETHOD InternalAndReservedMethod6IVirtualBox(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod6IVirtualBox(); } \
  NS_IMETHOD InternalAndReservedMethod7IVirtualBox(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod7IVirtualBox(); } \
  NS_IMETHOD InternalAndReservedMethod8IVirtualBox(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod8IVirtualBox(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IVirtualBox
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IVIRTUALBOX

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IVirtualBox)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute wstring version; */
NS_IMETHODIMP _MYCLASS_::GetVersion(PRUnichar * *aVersion)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring versionNormalized; */
NS_IMETHODIMP _MYCLASS_::GetVersionNormalized(PRUnichar * *aVersionNormalized)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long revision; */
NS_IMETHODIMP _MYCLASS_::GetRevision(PRUint32 *aRevision)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring packageType; */
NS_IMETHODIMP _MYCLASS_::GetPackageType(PRUnichar * *aPackageType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring APIVersion; */
NS_IMETHODIMP _MYCLASS_::GetAPIVersion(PRUnichar * *aAPIVersion)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long long APIRevision; */
NS_IMETHODIMP _MYCLASS_::GetAPIRevision(PRInt64 *aAPIRevision)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring homeFolder; */
NS_IMETHODIMP _MYCLASS_::GetHomeFolder(PRUnichar * *aHomeFolder)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring settingsFilePath; */
NS_IMETHODIMP _MYCLASS_::GetSettingsFilePath(PRUnichar * *aSettingsFilePath)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IHost host; */
NS_IMETHODIMP _MYCLASS_::GetHost(IHost * *aHost)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute ISystemProperties systemProperties; */
NS_IMETHODIMP _MYCLASS_::GetSystemProperties(ISystemProperties * *aSystemProperties)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getMachines (out unsigned long machinesSize, [array, size_is (machinesSize), retval] out IMachine machines); */
NS_IMETHODIMP _MYCLASS_::GetMachines(PRUint32 *machinesSize, IMachine ***machines)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getMachineGroups (out unsigned long machineGroupsSize, [array, size_is (machineGroupsSize), retval] out wstring machineGroups); */
NS_IMETHODIMP _MYCLASS_::GetMachineGroups(PRUint32 *machineGroupsSize, PRUnichar ***machineGroups)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getHardDisks (out unsigned long hardDisksSize, [array, size_is (hardDisksSize), retval] out IMedium hardDisks); */
NS_IMETHODIMP _MYCLASS_::GetHardDisks(PRUint32 *hardDisksSize, IMedium ***hardDisks)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getDVDImages (out unsigned long DVDImagesSize, [array, size_is (DVDImagesSize), retval] out IMedium DVDImages); */
NS_IMETHODIMP _MYCLASS_::GetDVDImages(PRUint32 *DVDImagesSize, IMedium ***DVDImages)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getFloppyImages (out unsigned long floppyImagesSize, [array, size_is (floppyImagesSize), retval] out IMedium floppyImages); */
NS_IMETHODIMP _MYCLASS_::GetFloppyImages(PRUint32 *floppyImagesSize, IMedium ***floppyImages)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getProgressOperations (out unsigned long progressOperationsSize, [array, size_is (progressOperationsSize), retval] out IProgress progressOperations); */
NS_IMETHODIMP _MYCLASS_::GetProgressOperations(PRUint32 *progressOperationsSize, IProgress ***progressOperations)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getGuestOSTypes (out unsigned long guestOSTypesSize, [array, size_is (guestOSTypesSize), retval] out IGuestOSType guestOSTypes); */
NS_IMETHODIMP _MYCLASS_::GetGuestOSTypes(PRUint32 *guestOSTypesSize, IGuestOSType ***guestOSTypes)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getSharedFolders (out unsigned long sharedFoldersSize, [array, size_is (sharedFoldersSize), retval] out ISharedFolder sharedFolders); */
NS_IMETHODIMP _MYCLASS_::GetSharedFolders(PRUint32 *sharedFoldersSize, ISharedFolder ***sharedFolders)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IPerformanceCollector performanceCollector; */
NS_IMETHODIMP _MYCLASS_::GetPerformanceCollector(IPerformanceCollector * *aPerformanceCollector)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getDHCPServers (out unsigned long DHCPServersSize, [array, size_is (DHCPServersSize), retval] out IDHCPServer DHCPServers); */
NS_IMETHODIMP _MYCLASS_::GetDHCPServers(PRUint32 *DHCPServersSize, IDHCPServer ***DHCPServers)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getNATNetworks (out unsigned long NATNetworksSize, [array, size_is (NATNetworksSize), retval] out INATNetwork NATNetworks); */
NS_IMETHODIMP _MYCLASS_::GetNATNetworks(PRUint32 *NATNetworksSize, INATNetwork ***NATNetworks)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IEventSource eventSource; */
NS_IMETHODIMP _MYCLASS_::GetEventSource(IEventSource * *aEventSource)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IExtPackManager extensionPackManager; */
NS_IMETHODIMP _MYCLASS_::GetExtensionPackManager(IExtPackManager * *aExtensionPackManager)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getInternalNetworks (out unsigned long internalNetworksSize, [array, size_is (internalNetworksSize), retval] out wstring internalNetworks); */
NS_IMETHODIMP _MYCLASS_::GetInternalNetworks(PRUint32 *internalNetworksSize, PRUnichar ***internalNetworks)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getGenericNetworkDrivers (out unsigned long genericNetworkDriversSize, [array, size_is (genericNetworkDriversSize), retval] out wstring genericNetworkDrivers); */
NS_IMETHODIMP _MYCLASS_::GetGenericNetworkDrivers(PRUint32 *genericNetworkDriversSize, PRUnichar ***genericNetworkDrivers)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IVirtualBox; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IVirtualBox(PRUint32 *aInternalAndReservedAttribute1IVirtualBox)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IVirtualBox; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IVirtualBox(PRUint32 *aInternalAndReservedAttribute2IVirtualBox)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute3IVirtualBox; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute3IVirtualBox(PRUint32 *aInternalAndReservedAttribute3IVirtualBox)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute4IVirtualBox; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute4IVirtualBox(PRUint32 *aInternalAndReservedAttribute4IVirtualBox)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute5IVirtualBox; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute5IVirtualBox(PRUint32 *aInternalAndReservedAttribute5IVirtualBox)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute6IVirtualBox; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute6IVirtualBox(PRUint32 *aInternalAndReservedAttribute6IVirtualBox)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute7IVirtualBox; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute7IVirtualBox(PRUint32 *aInternalAndReservedAttribute7IVirtualBox)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute8IVirtualBox; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute8IVirtualBox(PRUint32 *aInternalAndReservedAttribute8IVirtualBox)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute9IVirtualBox; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute9IVirtualBox(PRUint32 *aInternalAndReservedAttribute9IVirtualBox)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute10IVirtualBox; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute10IVirtualBox(PRUint32 *aInternalAndReservedAttribute10IVirtualBox)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute11IVirtualBox; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute11IVirtualBox(PRUint32 *aInternalAndReservedAttribute11IVirtualBox)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute12IVirtualBox; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute12IVirtualBox(PRUint32 *aInternalAndReservedAttribute12IVirtualBox)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void composeMachineFilename (in wstring name, in wstring group, in wstring createFlags, in wstring baseFolder, [retval] out wstring file); */
NS_IMETHODIMP _MYCLASS_::ComposeMachineFilename(const PRUnichar *name, const PRUnichar *group, const PRUnichar *createFlags, const PRUnichar *baseFolder, PRUnichar **file)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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); */
NS_IMETHODIMP _MYCLASS_::CreateMachine(const PRUnichar *settingsFile, const PRUnichar *name, PRUint32 groupsSize, const PRUnichar **groups, const PRUnichar *osTypeId, const PRUnichar *flags, IMachine **machine)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void openMachine (in wstring settingsFile, [retval] out IMachine machine); */
NS_IMETHODIMP _MYCLASS_::OpenMachine(const PRUnichar *settingsFile, IMachine **machine)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void registerMachine (in IMachine machine); */
NS_IMETHODIMP _MYCLASS_::RegisterMachine(IMachine *machine)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void findMachine (in wstring nameOrId, [retval] out IMachine machine); */
NS_IMETHODIMP _MYCLASS_::FindMachine(const PRUnichar *nameOrId, IMachine **machine)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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); */
NS_IMETHODIMP _MYCLASS_::GetMachinesByGroups(PRUint32 groupsSize, const PRUnichar **groups, PRUint32 *machinesSize, IMachine ***machines)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getMachineStates (in unsigned long machinesSize, [array, size_is (machinesSize)] in IMachine machines, out unsigned long statesSize, [array, size_is (statesSize), retval] out PRUint32 states); */
NS_IMETHODIMP _MYCLASS_::GetMachineStates(PRUint32 machinesSize, IMachine **machines, PRUint32 *statesSize, PRUint32 **states)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void createAppliance ([retval] out IAppliance appliance); */
NS_IMETHODIMP _MYCLASS_::CreateAppliance(IAppliance **appliance)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void createMedium (in wstring format, in wstring location, in PRUint32 accessMode, in PRUint32 aDeviceTypeType, [retval] out IMedium medium); */
NS_IMETHODIMP _MYCLASS_::CreateMedium(const PRUnichar *format, const PRUnichar *location, PRUint32 accessMode, PRUint32 aDeviceTypeType, IMedium **medium)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void openMedium (in wstring location, in PRUint32 deviceType, in PRUint32 accessMode, in boolean forceNewUuid, [retval] out IMedium medium); */
NS_IMETHODIMP _MYCLASS_::OpenMedium(const PRUnichar *location, PRUint32 deviceType, PRUint32 accessMode, PRBool forceNewUuid, IMedium **medium)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getGuestOSType (in wstring id, [retval] out IGuestOSType type); */
NS_IMETHODIMP _MYCLASS_::GetGuestOSType(const PRUnichar *id, IGuestOSType **type)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void createSharedFolder (in wstring name, in wstring hostPath, in boolean writable, in boolean automount); */
NS_IMETHODIMP _MYCLASS_::CreateSharedFolder(const PRUnichar *name, const PRUnichar *hostPath, PRBool writable, PRBool automount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeSharedFolder (in wstring name); */
NS_IMETHODIMP _MYCLASS_::RemoveSharedFolder(const PRUnichar *name)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getExtraDataKeys (out unsigned long keysSize, [array, size_is (keysSize), retval] out wstring keys); */
NS_IMETHODIMP _MYCLASS_::GetExtraDataKeys(PRUint32 *keysSize, PRUnichar ***keys)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getExtraData (in wstring key, [retval] out wstring value); */
NS_IMETHODIMP _MYCLASS_::GetExtraData(const PRUnichar *key, PRUnichar **value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setExtraData (in wstring key, in wstring value); */
NS_IMETHODIMP _MYCLASS_::SetExtraData(const PRUnichar *key, const PRUnichar *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setSettingsSecret (in wstring password); */
NS_IMETHODIMP _MYCLASS_::SetSettingsSecret(const PRUnichar *password)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void createDHCPServer (in wstring name, [retval] out IDHCPServer server); */
NS_IMETHODIMP _MYCLASS_::CreateDHCPServer(const PRUnichar *name, IDHCPServer **server)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void findDHCPServerByNetworkName (in wstring name, [retval] out IDHCPServer server); */
NS_IMETHODIMP _MYCLASS_::FindDHCPServerByNetworkName(const PRUnichar *name, IDHCPServer **server)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeDHCPServer (in IDHCPServer server); */
NS_IMETHODIMP _MYCLASS_::RemoveDHCPServer(IDHCPServer *server)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void createNATNetwork (in wstring networkName, [retval] out INATNetwork network); */
NS_IMETHODIMP _MYCLASS_::CreateNATNetwork(const PRUnichar *networkName, INATNetwork **network)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void findNATNetworkByName (in wstring networkName, [retval] out INATNetwork network); */
NS_IMETHODIMP _MYCLASS_::FindNATNetworkByName(const PRUnichar *networkName, INATNetwork **network)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeNATNetwork (in INATNetwork network); */
NS_IMETHODIMP _MYCLASS_::RemoveNATNetwork(INATNetwork *network)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void checkFirmwarePresent (in PRUint32 firmwareType, in wstring version, out wstring url, out wstring file, [retval] out boolean result); */
NS_IMETHODIMP _MYCLASS_::CheckFirmwarePresent(PRUint32 firmwareType, const PRUnichar *version, PRUnichar **url, PRUnichar **file, PRBool *result)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1IVirtualBox (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1IVirtualBox()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod2IVirtualBox (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod2IVirtualBox()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod3IVirtualBox (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod3IVirtualBox()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod4IVirtualBox (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod4IVirtualBox()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod5IVirtualBox (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod5IVirtualBox()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod6IVirtualBox (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod6IVirtualBox()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod7IVirtualBox (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod7IVirtualBox()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod8IVirtualBox (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod8IVirtualBox()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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_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_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) { return smth CreateSharedFolder (aName, aHostPath, aWritable, aAutomount); }
#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_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;

/* starting interface:    IVFSExplorer */
#define IVFSEXPLORER_IID_STR "fb220201-2fd3-47e2-a5dc-2c2431d833cc"

#define IVFSEXPLORER_IID \
  {0xfb220201, 0x2fd3, 0x47e2, \
    { 0xa5, 0xdc, 0x2c, 0x24, 0x31, 0xd8, 0x33, 0xcc }}

class NS_NO_VTABLE IVFSExplorer : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IVFSEXPLORER_IID)

  /* readonly attribute wstring path; */
  NS_IMETHOD GetPath(PRUnichar * *aPath) = 0;

  /* readonly attribute PRUint32 type; */
  NS_IMETHOD GetType(PRUint32 *aType) = 0;

  /* void update ([retval] out IProgress progress); */
  NS_IMETHOD Update(IProgress **progress) = 0;

  /* void cd (in wstring dir, [retval] out IProgress progress); */
  NS_IMETHOD Cd(const PRUnichar *dir, IProgress **progress) = 0;

  /* void cdUp ([retval] out IProgress progress); */
  NS_IMETHOD CdUp(IProgress **progress) = 0;

  /* 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); */
  NS_IMETHOD EntryList(PRUint32 *namesSize, PRUnichar ***names, PRUint32 *typesSize, PRUint32 **types, PRUint32 *sizesSize, PRInt64 **sizes, PRUint32 *modesSize, PRUint32 **modes) = 0;

  /* 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); */
  NS_IMETHOD Exists(PRUint32 namesSize, const PRUnichar **names, PRUint32 *existsSize, PRUnichar ***exists) = 0;

  /* void remove (in unsigned long namesSize, [array, size_is (namesSize)] in wstring names, [retval] out IProgress progress); */
  NS_IMETHOD Remove(PRUint32 namesSize, const PRUnichar **names, IProgress **progress) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IVFSEXPLORER \
  NS_IMETHOD GetPath(PRUnichar * *aPath); \
  NS_IMETHOD GetType(PRUint32 *aType); \
  NS_IMETHOD Update(IProgress **progress); \
  NS_IMETHOD Cd(const PRUnichar *dir, IProgress **progress); \
  NS_IMETHOD CdUp(IProgress **progress); \
  NS_IMETHOD EntryList(PRUint32 *namesSize, PRUnichar ***names, PRUint32 *typesSize, PRUint32 **types, PRUint32 *sizesSize, PRInt64 **sizes, PRUint32 *modesSize, PRUint32 **modes); \
  NS_IMETHOD Exists(PRUint32 namesSize, const PRUnichar **names, PRUint32 *existsSize, PRUnichar ***exists); \
  NS_IMETHOD Remove(PRUint32 namesSize, const PRUnichar **names, IProgress **progress); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IVFSEXPLORER(_to) \
  NS_IMETHOD GetPath(PRUnichar * *aPath) { return _to GetPath(aPath); } \
  NS_IMETHOD GetType(PRUint32 *aType) { return _to GetType(aType); } \
  NS_IMETHOD Update(IProgress **progress) { return _to Update(progress); } \
  NS_IMETHOD Cd(const PRUnichar *dir, IProgress **progress) { return _to Cd(dir, progress); } \
  NS_IMETHOD CdUp(IProgress **progress) { return _to CdUp(progress); } \
  NS_IMETHOD EntryList(PRUint32 *namesSize, PRUnichar ***names, PRUint32 *typesSize, PRUint32 **types, PRUint32 *sizesSize, PRInt64 **sizes, PRUint32 *modesSize, PRUint32 **modes) { return _to EntryList(namesSize, names, typesSize, types, sizesSize, sizes, modesSize, modes); } \
  NS_IMETHOD Exists(PRUint32 namesSize, const PRUnichar **names, PRUint32 *existsSize, PRUnichar ***exists) { return _to Exists(namesSize, names, existsSize, exists); } \
  NS_IMETHOD Remove(PRUint32 namesSize, const PRUnichar **names, IProgress **progress) { return _to Remove(namesSize, names, progress); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IVFSEXPLORER(_to) \
  NS_IMETHOD GetPath(PRUnichar * *aPath) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPath(aPath); } \
  NS_IMETHOD GetType(PRUint32 *aType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetType(aType); } \
  NS_IMETHOD Update(IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->Update(progress); } \
  NS_IMETHOD Cd(const PRUnichar *dir, IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->Cd(dir, progress); } \
  NS_IMETHOD CdUp(IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->CdUp(progress); } \
  NS_IMETHOD EntryList(PRUint32 *namesSize, PRUnichar ***names, PRUint32 *typesSize, PRUint32 **types, PRUint32 *sizesSize, PRInt64 **sizes, PRUint32 *modesSize, PRUint32 **modes) { return !_to ? NS_ERROR_NULL_POINTER : _to->EntryList(namesSize, names, typesSize, types, sizesSize, sizes, modesSize, modes); } \
  NS_IMETHOD Exists(PRUint32 namesSize, const PRUnichar **names, PRUint32 *existsSize, PRUnichar ***exists) { return !_to ? NS_ERROR_NULL_POINTER : _to->Exists(namesSize, names, existsSize, exists); } \
  NS_IMETHOD Remove(PRUint32 namesSize, const PRUnichar **names, IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->Remove(namesSize, names, progress); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IVFSExplorer
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IVFSEXPLORER

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IVFSExplorer)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute wstring path; */
NS_IMETHODIMP _MYCLASS_::GetPath(PRUnichar * *aPath)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 type; */
NS_IMETHODIMP _MYCLASS_::GetType(PRUint32 *aType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void update ([retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::Update(IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void cd (in wstring dir, [retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::Cd(const PRUnichar *dir, IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void cdUp ([retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::CdUp(IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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); */
NS_IMETHODIMP _MYCLASS_::EntryList(PRUint32 *namesSize, PRUnichar ***names, PRUint32 *typesSize, PRUint32 **types, PRUint32 *sizesSize, PRInt64 **sizes, PRUint32 *modesSize, PRUint32 **modes)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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); */
NS_IMETHODIMP _MYCLASS_::Exists(PRUint32 namesSize, const PRUnichar **names, PRUint32 *existsSize, PRUnichar ***exists)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void remove (in unsigned long namesSize, [array, size_is (namesSize)] in wstring names, [retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::Remove(PRUint32 namesSize, const PRUnichar **names, IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    ICertificate */
#define ICERTIFICATE_IID_STR "392f1de4-80e1-4a8a-93a1-67c5f92a838a"

#define ICERTIFICATE_IID \
  {0x392f1de4, 0x80e1, 0x4a8a, \
    { 0x93, 0xa1, 0x67, 0xc5, 0xf9, 0x2a, 0x83, 0x8a }}

class NS_NO_VTABLE ICertificate : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ICERTIFICATE_IID)

  /* readonly attribute PRUint32 versionNumber; */
  NS_IMETHOD GetVersionNumber(PRUint32 *aVersionNumber) = 0;

  /* readonly attribute wstring serialNumber; */
  NS_IMETHOD GetSerialNumber(PRUnichar * *aSerialNumber) = 0;

  /* readonly attribute wstring signatureAlgorithmOID; */
  NS_IMETHOD GetSignatureAlgorithmOID(PRUnichar * *aSignatureAlgorithmOID) = 0;

  /* readonly attribute wstring signatureAlgorithmName; */
  NS_IMETHOD GetSignatureAlgorithmName(PRUnichar * *aSignatureAlgorithmName) = 0;

  /* void getIssuerName (out unsigned long issuerNameSize, [array, size_is (issuerNameSize), retval] out wstring issuerName); */
  NS_IMETHOD GetIssuerName(PRUint32 *issuerNameSize, PRUnichar ***issuerName) = 0;

  /* void getSubjectName (out unsigned long subjectNameSize, [array, size_is (subjectNameSize), retval] out wstring subjectName); */
  NS_IMETHOD GetSubjectName(PRUint32 *subjectNameSize, PRUnichar ***subjectName) = 0;

  /* readonly attribute wstring friendlyName; */
  NS_IMETHOD GetFriendlyName(PRUnichar * *aFriendlyName) = 0;

  /* readonly attribute wstring validityPeriodNotBefore; */
  NS_IMETHOD GetValidityPeriodNotBefore(PRUnichar * *aValidityPeriodNotBefore) = 0;

  /* readonly attribute wstring validityPeriodNotAfter; */
  NS_IMETHOD GetValidityPeriodNotAfter(PRUnichar * *aValidityPeriodNotAfter) = 0;

  /* readonly attribute wstring publicKeyAlgorithmOID; */
  NS_IMETHOD GetPublicKeyAlgorithmOID(PRUnichar * *aPublicKeyAlgorithmOID) = 0;

  /* readonly attribute wstring publicKeyAlgorithm; */
  NS_IMETHOD GetPublicKeyAlgorithm(PRUnichar * *aPublicKeyAlgorithm) = 0;

  /* void getSubjectPublicKey (out unsigned long subjectPublicKeySize, [array, size_is (subjectPublicKeySize), retval] out octet subjectPublicKey); */
  NS_IMETHOD GetSubjectPublicKey(PRUint32 *subjectPublicKeySize, PRUint8 **subjectPublicKey) = 0;

  /* readonly attribute wstring issuerUniqueIdentifier; */
  NS_IMETHOD GetIssuerUniqueIdentifier(PRUnichar * *aIssuerUniqueIdentifier) = 0;

  /* readonly attribute wstring subjectUniqueIdentifier; */
  NS_IMETHOD GetSubjectUniqueIdentifier(PRUnichar * *aSubjectUniqueIdentifier) = 0;

  /* readonly attribute boolean certificateAuthority; */
  NS_IMETHOD GetCertificateAuthority(PRBool *aCertificateAuthority) = 0;

  /* readonly attribute unsigned long keyUsage; */
  NS_IMETHOD GetKeyUsage(PRUint32 *aKeyUsage) = 0;

  /* void getExtendedKeyUsage (out unsigned long extendedKeyUsageSize, [array, size_is (extendedKeyUsageSize), retval] out wstring extendedKeyUsage); */
  NS_IMETHOD GetExtendedKeyUsage(PRUint32 *extendedKeyUsageSize, PRUnichar ***extendedKeyUsage) = 0;

  /* void getRawCertData (out unsigned long rawCertDataSize, [array, size_is (rawCertDataSize), retval] out octet rawCertData); */
  NS_IMETHOD GetRawCertData(PRUint32 *rawCertDataSize, PRUint8 **rawCertData) = 0;

  /* readonly attribute boolean selfSigned; */
  NS_IMETHOD GetSelfSigned(PRBool *aSelfSigned) = 0;

  /* readonly attribute boolean trusted; */
  NS_IMETHOD GetTrusted(PRBool *aTrusted) = 0;

  /* readonly attribute boolean expired; */
  NS_IMETHOD GetExpired(PRBool *aExpired) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1ICertificate; */
  NS_IMETHOD GetInternalAndReservedAttribute1ICertificate(PRUint32 *aInternalAndReservedAttribute1ICertificate) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2ICertificate; */
  NS_IMETHOD GetInternalAndReservedAttribute2ICertificate(PRUint32 *aInternalAndReservedAttribute2ICertificate) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3ICertificate; */
  NS_IMETHOD GetInternalAndReservedAttribute3ICertificate(PRUint32 *aInternalAndReservedAttribute3ICertificate) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4ICertificate; */
  NS_IMETHOD GetInternalAndReservedAttribute4ICertificate(PRUint32 *aInternalAndReservedAttribute4ICertificate) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5ICertificate; */
  NS_IMETHOD GetInternalAndReservedAttribute5ICertificate(PRUint32 *aInternalAndReservedAttribute5ICertificate) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6ICertificate; */
  NS_IMETHOD GetInternalAndReservedAttribute6ICertificate(PRUint32 *aInternalAndReservedAttribute6ICertificate) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7ICertificate; */
  NS_IMETHOD GetInternalAndReservedAttribute7ICertificate(PRUint32 *aInternalAndReservedAttribute7ICertificate) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8ICertificate; */
  NS_IMETHOD GetInternalAndReservedAttribute8ICertificate(PRUint32 *aInternalAndReservedAttribute8ICertificate) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute9ICertificate; */
  NS_IMETHOD GetInternalAndReservedAttribute9ICertificate(PRUint32 *aInternalAndReservedAttribute9ICertificate) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute10ICertificate; */
  NS_IMETHOD GetInternalAndReservedAttribute10ICertificate(PRUint32 *aInternalAndReservedAttribute10ICertificate) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute11ICertificate; */
  NS_IMETHOD GetInternalAndReservedAttribute11ICertificate(PRUint32 *aInternalAndReservedAttribute11ICertificate) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute12ICertificate; */
  NS_IMETHOD GetInternalAndReservedAttribute12ICertificate(PRUint32 *aInternalAndReservedAttribute12ICertificate) = 0;

  /* void isCurrentlyExpired ([retval] out boolean result); */
  NS_IMETHOD IsCurrentlyExpired(PRBool *result) = 0;

  /* void queryInfo (in long what, [retval] out wstring result); */
  NS_IMETHOD QueryInfo(PRInt32 what, PRUnichar **result) = 0;

  /* void InternalAndReservedMethod1ICertificate (); */
  NS_IMETHOD InternalAndReservedMethod1ICertificate(void) = 0;

  /* void InternalAndReservedMethod2ICertificate (); */
  NS_IMETHOD InternalAndReservedMethod2ICertificate(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ICERTIFICATE \
  NS_IMETHOD GetVersionNumber(PRUint32 *aVersionNumber); \
  NS_IMETHOD GetSerialNumber(PRUnichar * *aSerialNumber); \
  NS_IMETHOD GetSignatureAlgorithmOID(PRUnichar * *aSignatureAlgorithmOID); \
  NS_IMETHOD GetSignatureAlgorithmName(PRUnichar * *aSignatureAlgorithmName); \
  NS_IMETHOD GetIssuerName(PRUint32 *issuerNameSize, PRUnichar ***issuerName); \
  NS_IMETHOD GetSubjectName(PRUint32 *subjectNameSize, PRUnichar ***subjectName); \
  NS_IMETHOD GetFriendlyName(PRUnichar * *aFriendlyName); \
  NS_IMETHOD GetValidityPeriodNotBefore(PRUnichar * *aValidityPeriodNotBefore); \
  NS_IMETHOD GetValidityPeriodNotAfter(PRUnichar * *aValidityPeriodNotAfter); \
  NS_IMETHOD GetPublicKeyAlgorithmOID(PRUnichar * *aPublicKeyAlgorithmOID); \
  NS_IMETHOD GetPublicKeyAlgorithm(PRUnichar * *aPublicKeyAlgorithm); \
  NS_IMETHOD GetSubjectPublicKey(PRUint32 *subjectPublicKeySize, PRUint8 **subjectPublicKey); \
  NS_IMETHOD GetIssuerUniqueIdentifier(PRUnichar * *aIssuerUniqueIdentifier); \
  NS_IMETHOD GetSubjectUniqueIdentifier(PRUnichar * *aSubjectUniqueIdentifier); \
  NS_IMETHOD GetCertificateAuthority(PRBool *aCertificateAuthority); \
  NS_IMETHOD GetKeyUsage(PRUint32 *aKeyUsage); \
  NS_IMETHOD GetExtendedKeyUsage(PRUint32 *extendedKeyUsageSize, PRUnichar ***extendedKeyUsage); \
  NS_IMETHOD GetRawCertData(PRUint32 *rawCertDataSize, PRUint8 **rawCertData); \
  NS_IMETHOD GetSelfSigned(PRBool *aSelfSigned); \
  NS_IMETHOD GetTrusted(PRBool *aTrusted); \
  NS_IMETHOD GetExpired(PRBool *aExpired); \
  NS_IMETHOD GetInternalAndReservedAttribute1ICertificate(PRUint32 *aInternalAndReservedAttribute1ICertificate); \
  NS_IMETHOD GetInternalAndReservedAttribute2ICertificate(PRUint32 *aInternalAndReservedAttribute2ICertificate); \
  NS_IMETHOD GetInternalAndReservedAttribute3ICertificate(PRUint32 *aInternalAndReservedAttribute3ICertificate); \
  NS_IMETHOD GetInternalAndReservedAttribute4ICertificate(PRUint32 *aInternalAndReservedAttribute4ICertificate); \
  NS_IMETHOD GetInternalAndReservedAttribute5ICertificate(PRUint32 *aInternalAndReservedAttribute5ICertificate); \
  NS_IMETHOD GetInternalAndReservedAttribute6ICertificate(PRUint32 *aInternalAndReservedAttribute6ICertificate); \
  NS_IMETHOD GetInternalAndReservedAttribute7ICertificate(PRUint32 *aInternalAndReservedAttribute7ICertificate); \
  NS_IMETHOD GetInternalAndReservedAttribute8ICertificate(PRUint32 *aInternalAndReservedAttribute8ICertificate); \
  NS_IMETHOD GetInternalAndReservedAttribute9ICertificate(PRUint32 *aInternalAndReservedAttribute9ICertificate); \
  NS_IMETHOD GetInternalAndReservedAttribute10ICertificate(PRUint32 *aInternalAndReservedAttribute10ICertificate); \
  NS_IMETHOD GetInternalAndReservedAttribute11ICertificate(PRUint32 *aInternalAndReservedAttribute11ICertificate); \
  NS_IMETHOD GetInternalAndReservedAttribute12ICertificate(PRUint32 *aInternalAndReservedAttribute12ICertificate); \
  NS_IMETHOD IsCurrentlyExpired(PRBool *result); \
  NS_IMETHOD QueryInfo(PRInt32 what, PRUnichar **result); \
  NS_IMETHOD InternalAndReservedMethod1ICertificate(void); \
  NS_IMETHOD InternalAndReservedMethod2ICertificate(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ICERTIFICATE(_to) \
  NS_IMETHOD GetVersionNumber(PRUint32 *aVersionNumber) { return _to GetVersionNumber(aVersionNumber); } \
  NS_IMETHOD GetSerialNumber(PRUnichar * *aSerialNumber) { return _to GetSerialNumber(aSerialNumber); } \
  NS_IMETHOD GetSignatureAlgorithmOID(PRUnichar * *aSignatureAlgorithmOID) { return _to GetSignatureAlgorithmOID(aSignatureAlgorithmOID); } \
  NS_IMETHOD GetSignatureAlgorithmName(PRUnichar * *aSignatureAlgorithmName) { return _to GetSignatureAlgorithmName(aSignatureAlgorithmName); } \
  NS_IMETHOD GetIssuerName(PRUint32 *issuerNameSize, PRUnichar ***issuerName) { return _to GetIssuerName(issuerNameSize, issuerName); } \
  NS_IMETHOD GetSubjectName(PRUint32 *subjectNameSize, PRUnichar ***subjectName) { return _to GetSubjectName(subjectNameSize, subjectName); } \
  NS_IMETHOD GetFriendlyName(PRUnichar * *aFriendlyName) { return _to GetFriendlyName(aFriendlyName); } \
  NS_IMETHOD GetValidityPeriodNotBefore(PRUnichar * *aValidityPeriodNotBefore) { return _to GetValidityPeriodNotBefore(aValidityPeriodNotBefore); } \
  NS_IMETHOD GetValidityPeriodNotAfter(PRUnichar * *aValidityPeriodNotAfter) { return _to GetValidityPeriodNotAfter(aValidityPeriodNotAfter); } \
  NS_IMETHOD GetPublicKeyAlgorithmOID(PRUnichar * *aPublicKeyAlgorithmOID) { return _to GetPublicKeyAlgorithmOID(aPublicKeyAlgorithmOID); } \
  NS_IMETHOD GetPublicKeyAlgorithm(PRUnichar * *aPublicKeyAlgorithm) { return _to GetPublicKeyAlgorithm(aPublicKeyAlgorithm); } \
  NS_IMETHOD GetSubjectPublicKey(PRUint32 *subjectPublicKeySize, PRUint8 **subjectPublicKey) { return _to GetSubjectPublicKey(subjectPublicKeySize, subjectPublicKey); } \
  NS_IMETHOD GetIssuerUniqueIdentifier(PRUnichar * *aIssuerUniqueIdentifier) { return _to GetIssuerUniqueIdentifier(aIssuerUniqueIdentifier); } \
  NS_IMETHOD GetSubjectUniqueIdentifier(PRUnichar * *aSubjectUniqueIdentifier) { return _to GetSubjectUniqueIdentifier(aSubjectUniqueIdentifier); } \
  NS_IMETHOD GetCertificateAuthority(PRBool *aCertificateAuthority) { return _to GetCertificateAuthority(aCertificateAuthority); } \
  NS_IMETHOD GetKeyUsage(PRUint32 *aKeyUsage) { return _to GetKeyUsage(aKeyUsage); } \
  NS_IMETHOD GetExtendedKeyUsage(PRUint32 *extendedKeyUsageSize, PRUnichar ***extendedKeyUsage) { return _to GetExtendedKeyUsage(extendedKeyUsageSize, extendedKeyUsage); } \
  NS_IMETHOD GetRawCertData(PRUint32 *rawCertDataSize, PRUint8 **rawCertData) { return _to GetRawCertData(rawCertDataSize, rawCertData); } \
  NS_IMETHOD GetSelfSigned(PRBool *aSelfSigned) { return _to GetSelfSigned(aSelfSigned); } \
  NS_IMETHOD GetTrusted(PRBool *aTrusted) { return _to GetTrusted(aTrusted); } \
  NS_IMETHOD GetExpired(PRBool *aExpired) { return _to GetExpired(aExpired); } \
  NS_IMETHOD GetInternalAndReservedAttribute1ICertificate(PRUint32 *aInternalAndReservedAttribute1ICertificate) { return _to GetInternalAndReservedAttribute1ICertificate(aInternalAndReservedAttribute1ICertificate); } \
  NS_IMETHOD GetInternalAndReservedAttribute2ICertificate(PRUint32 *aInternalAndReservedAttribute2ICertificate) { return _to GetInternalAndReservedAttribute2ICertificate(aInternalAndReservedAttribute2ICertificate); } \
  NS_IMETHOD GetInternalAndReservedAttribute3ICertificate(PRUint32 *aInternalAndReservedAttribute3ICertificate) { return _to GetInternalAndReservedAttribute3ICertificate(aInternalAndReservedAttribute3ICertificate); } \
  NS_IMETHOD GetInternalAndReservedAttribute4ICertificate(PRUint32 *aInternalAndReservedAttribute4ICertificate) { return _to GetInternalAndReservedAttribute4ICertificate(aInternalAndReservedAttribute4ICertificate); } \
  NS_IMETHOD GetInternalAndReservedAttribute5ICertificate(PRUint32 *aInternalAndReservedAttribute5ICertificate) { return _to GetInternalAndReservedAttribute5ICertificate(aInternalAndReservedAttribute5ICertificate); } \
  NS_IMETHOD GetInternalAndReservedAttribute6ICertificate(PRUint32 *aInternalAndReservedAttribute6ICertificate) { return _to GetInternalAndReservedAttribute6ICertificate(aInternalAndReservedAttribute6ICertificate); } \
  NS_IMETHOD GetInternalAndReservedAttribute7ICertificate(PRUint32 *aInternalAndReservedAttribute7ICertificate) { return _to GetInternalAndReservedAttribute7ICertificate(aInternalAndReservedAttribute7ICertificate); } \
  NS_IMETHOD GetInternalAndReservedAttribute8ICertificate(PRUint32 *aInternalAndReservedAttribute8ICertificate) { return _to GetInternalAndReservedAttribute8ICertificate(aInternalAndReservedAttribute8ICertificate); } \
  NS_IMETHOD GetInternalAndReservedAttribute9ICertificate(PRUint32 *aInternalAndReservedAttribute9ICertificate) { return _to GetInternalAndReservedAttribute9ICertificate(aInternalAndReservedAttribute9ICertificate); } \
  NS_IMETHOD GetInternalAndReservedAttribute10ICertificate(PRUint32 *aInternalAndReservedAttribute10ICertificate) { return _to GetInternalAndReservedAttribute10ICertificate(aInternalAndReservedAttribute10ICertificate); } \
  NS_IMETHOD GetInternalAndReservedAttribute11ICertificate(PRUint32 *aInternalAndReservedAttribute11ICertificate) { return _to GetInternalAndReservedAttribute11ICertificate(aInternalAndReservedAttribute11ICertificate); } \
  NS_IMETHOD GetInternalAndReservedAttribute12ICertificate(PRUint32 *aInternalAndReservedAttribute12ICertificate) { return _to GetInternalAndReservedAttribute12ICertificate(aInternalAndReservedAttribute12ICertificate); } \
  NS_IMETHOD IsCurrentlyExpired(PRBool *result) { return _to IsCurrentlyExpired(result); } \
  NS_IMETHOD QueryInfo(PRInt32 what, PRUnichar **result) { return _to QueryInfo(what, result); } \
  NS_IMETHOD InternalAndReservedMethod1ICertificate(void) { return _to InternalAndReservedMethod1ICertificate(); } \
  NS_IMETHOD InternalAndReservedMethod2ICertificate(void) { return _to InternalAndReservedMethod2ICertificate(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ICERTIFICATE(_to) \
  NS_IMETHOD GetVersionNumber(PRUint32 *aVersionNumber) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVersionNumber(aVersionNumber); } \
  NS_IMETHOD GetSerialNumber(PRUnichar * *aSerialNumber) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSerialNumber(aSerialNumber); } \
  NS_IMETHOD GetSignatureAlgorithmOID(PRUnichar * *aSignatureAlgorithmOID) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSignatureAlgorithmOID(aSignatureAlgorithmOID); } \
  NS_IMETHOD GetSignatureAlgorithmName(PRUnichar * *aSignatureAlgorithmName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSignatureAlgorithmName(aSignatureAlgorithmName); } \
  NS_IMETHOD GetIssuerName(PRUint32 *issuerNameSize, PRUnichar ***issuerName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIssuerName(issuerNameSize, issuerName); } \
  NS_IMETHOD GetSubjectName(PRUint32 *subjectNameSize, PRUnichar ***subjectName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSubjectName(subjectNameSize, subjectName); } \
  NS_IMETHOD GetFriendlyName(PRUnichar * *aFriendlyName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFriendlyName(aFriendlyName); } \
  NS_IMETHOD GetValidityPeriodNotBefore(PRUnichar * *aValidityPeriodNotBefore) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetValidityPeriodNotBefore(aValidityPeriodNotBefore); } \
  NS_IMETHOD GetValidityPeriodNotAfter(PRUnichar * *aValidityPeriodNotAfter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetValidityPeriodNotAfter(aValidityPeriodNotAfter); } \
  NS_IMETHOD GetPublicKeyAlgorithmOID(PRUnichar * *aPublicKeyAlgorithmOID) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPublicKeyAlgorithmOID(aPublicKeyAlgorithmOID); } \
  NS_IMETHOD GetPublicKeyAlgorithm(PRUnichar * *aPublicKeyAlgorithm) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPublicKeyAlgorithm(aPublicKeyAlgorithm); } \
  NS_IMETHOD GetSubjectPublicKey(PRUint32 *subjectPublicKeySize, PRUint8 **subjectPublicKey) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSubjectPublicKey(subjectPublicKeySize, subjectPublicKey); } \
  NS_IMETHOD GetIssuerUniqueIdentifier(PRUnichar * *aIssuerUniqueIdentifier) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIssuerUniqueIdentifier(aIssuerUniqueIdentifier); } \
  NS_IMETHOD GetSubjectUniqueIdentifier(PRUnichar * *aSubjectUniqueIdentifier) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSubjectUniqueIdentifier(aSubjectUniqueIdentifier); } \
  NS_IMETHOD GetCertificateAuthority(PRBool *aCertificateAuthority) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCertificateAuthority(aCertificateAuthority); } \
  NS_IMETHOD GetKeyUsage(PRUint32 *aKeyUsage) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetKeyUsage(aKeyUsage); } \
  NS_IMETHOD GetExtendedKeyUsage(PRUint32 *extendedKeyUsageSize, PRUnichar ***extendedKeyUsage) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetExtendedKeyUsage(extendedKeyUsageSize, extendedKeyUsage); } \
  NS_IMETHOD GetRawCertData(PRUint32 *rawCertDataSize, PRUint8 **rawCertData) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRawCertData(rawCertDataSize, rawCertData); } \
  NS_IMETHOD GetSelfSigned(PRBool *aSelfSigned) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSelfSigned(aSelfSigned); } \
  NS_IMETHOD GetTrusted(PRBool *aTrusted) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTrusted(aTrusted); } \
  NS_IMETHOD GetExpired(PRBool *aExpired) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetExpired(aExpired); } \
  NS_IMETHOD GetInternalAndReservedAttribute1ICertificate(PRUint32 *aInternalAndReservedAttribute1ICertificate) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1ICertificate(aInternalAndReservedAttribute1ICertificate); } \
  NS_IMETHOD GetInternalAndReservedAttribute2ICertificate(PRUint32 *aInternalAndReservedAttribute2ICertificate) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2ICertificate(aInternalAndReservedAttribute2ICertificate); } \
  NS_IMETHOD GetInternalAndReservedAttribute3ICertificate(PRUint32 *aInternalAndReservedAttribute3ICertificate) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3ICertificate(aInternalAndReservedAttribute3ICertificate); } \
  NS_IMETHOD GetInternalAndReservedAttribute4ICertificate(PRUint32 *aInternalAndReservedAttribute4ICertificate) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4ICertificate(aInternalAndReservedAttribute4ICertificate); } \
  NS_IMETHOD GetInternalAndReservedAttribute5ICertificate(PRUint32 *aInternalAndReservedAttribute5ICertificate) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5ICertificate(aInternalAndReservedAttribute5ICertificate); } \
  NS_IMETHOD GetInternalAndReservedAttribute6ICertificate(PRUint32 *aInternalAndReservedAttribute6ICertificate) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6ICertificate(aInternalAndReservedAttribute6ICertificate); } \
  NS_IMETHOD GetInternalAndReservedAttribute7ICertificate(PRUint32 *aInternalAndReservedAttribute7ICertificate) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7ICertificate(aInternalAndReservedAttribute7ICertificate); } \
  NS_IMETHOD GetInternalAndReservedAttribute8ICertificate(PRUint32 *aInternalAndReservedAttribute8ICertificate) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8ICertificate(aInternalAndReservedAttribute8ICertificate); } \
  NS_IMETHOD GetInternalAndReservedAttribute9ICertificate(PRUint32 *aInternalAndReservedAttribute9ICertificate) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute9ICertificate(aInternalAndReservedAttribute9ICertificate); } \
  NS_IMETHOD GetInternalAndReservedAttribute10ICertificate(PRUint32 *aInternalAndReservedAttribute10ICertificate) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute10ICertificate(aInternalAndReservedAttribute10ICertificate); } \
  NS_IMETHOD GetInternalAndReservedAttribute11ICertificate(PRUint32 *aInternalAndReservedAttribute11ICertificate) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute11ICertificate(aInternalAndReservedAttribute11ICertificate); } \
  NS_IMETHOD GetInternalAndReservedAttribute12ICertificate(PRUint32 *aInternalAndReservedAttribute12ICertificate) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute12ICertificate(aInternalAndReservedAttribute12ICertificate); } \
  NS_IMETHOD IsCurrentlyExpired(PRBool *result) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsCurrentlyExpired(result); } \
  NS_IMETHOD QueryInfo(PRInt32 what, PRUnichar **result) { return !_to ? NS_ERROR_NULL_POINTER : _to->QueryInfo(what, result); } \
  NS_IMETHOD InternalAndReservedMethod1ICertificate(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1ICertificate(); } \
  NS_IMETHOD InternalAndReservedMethod2ICertificate(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2ICertificate(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public ICertificate
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_ICERTIFICATE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, ICertificate)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute PRUint32 versionNumber; */
NS_IMETHODIMP _MYCLASS_::GetVersionNumber(PRUint32 *aVersionNumber)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring serialNumber; */
NS_IMETHODIMP _MYCLASS_::GetSerialNumber(PRUnichar * *aSerialNumber)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring signatureAlgorithmOID; */
NS_IMETHODIMP _MYCLASS_::GetSignatureAlgorithmOID(PRUnichar * *aSignatureAlgorithmOID)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring signatureAlgorithmName; */
NS_IMETHODIMP _MYCLASS_::GetSignatureAlgorithmName(PRUnichar * *aSignatureAlgorithmName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getIssuerName (out unsigned long issuerNameSize, [array, size_is (issuerNameSize), retval] out wstring issuerName); */
NS_IMETHODIMP _MYCLASS_::GetIssuerName(PRUint32 *issuerNameSize, PRUnichar ***issuerName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getSubjectName (out unsigned long subjectNameSize, [array, size_is (subjectNameSize), retval] out wstring subjectName); */
NS_IMETHODIMP _MYCLASS_::GetSubjectName(PRUint32 *subjectNameSize, PRUnichar ***subjectName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring friendlyName; */
NS_IMETHODIMP _MYCLASS_::GetFriendlyName(PRUnichar * *aFriendlyName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring validityPeriodNotBefore; */
NS_IMETHODIMP _MYCLASS_::GetValidityPeriodNotBefore(PRUnichar * *aValidityPeriodNotBefore)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring validityPeriodNotAfter; */
NS_IMETHODIMP _MYCLASS_::GetValidityPeriodNotAfter(PRUnichar * *aValidityPeriodNotAfter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring publicKeyAlgorithmOID; */
NS_IMETHODIMP _MYCLASS_::GetPublicKeyAlgorithmOID(PRUnichar * *aPublicKeyAlgorithmOID)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring publicKeyAlgorithm; */
NS_IMETHODIMP _MYCLASS_::GetPublicKeyAlgorithm(PRUnichar * *aPublicKeyAlgorithm)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getSubjectPublicKey (out unsigned long subjectPublicKeySize, [array, size_is (subjectPublicKeySize), retval] out octet subjectPublicKey); */
NS_IMETHODIMP _MYCLASS_::GetSubjectPublicKey(PRUint32 *subjectPublicKeySize, PRUint8 **subjectPublicKey)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring issuerUniqueIdentifier; */
NS_IMETHODIMP _MYCLASS_::GetIssuerUniqueIdentifier(PRUnichar * *aIssuerUniqueIdentifier)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring subjectUniqueIdentifier; */
NS_IMETHODIMP _MYCLASS_::GetSubjectUniqueIdentifier(PRUnichar * *aSubjectUniqueIdentifier)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean certificateAuthority; */
NS_IMETHODIMP _MYCLASS_::GetCertificateAuthority(PRBool *aCertificateAuthority)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long keyUsage; */
NS_IMETHODIMP _MYCLASS_::GetKeyUsage(PRUint32 *aKeyUsage)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getExtendedKeyUsage (out unsigned long extendedKeyUsageSize, [array, size_is (extendedKeyUsageSize), retval] out wstring extendedKeyUsage); */
NS_IMETHODIMP _MYCLASS_::GetExtendedKeyUsage(PRUint32 *extendedKeyUsageSize, PRUnichar ***extendedKeyUsage)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getRawCertData (out unsigned long rawCertDataSize, [array, size_is (rawCertDataSize), retval] out octet rawCertData); */
NS_IMETHODIMP _MYCLASS_::GetRawCertData(PRUint32 *rawCertDataSize, PRUint8 **rawCertData)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean selfSigned; */
NS_IMETHODIMP _MYCLASS_::GetSelfSigned(PRBool *aSelfSigned)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean trusted; */
NS_IMETHODIMP _MYCLASS_::GetTrusted(PRBool *aTrusted)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean expired; */
NS_IMETHODIMP _MYCLASS_::GetExpired(PRBool *aExpired)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1ICertificate; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1ICertificate(PRUint32 *aInternalAndReservedAttribute1ICertificate)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2ICertificate; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2ICertificate(PRUint32 *aInternalAndReservedAttribute2ICertificate)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute3ICertificate; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute3ICertificate(PRUint32 *aInternalAndReservedAttribute3ICertificate)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute4ICertificate; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute4ICertificate(PRUint32 *aInternalAndReservedAttribute4ICertificate)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute5ICertificate; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute5ICertificate(PRUint32 *aInternalAndReservedAttribute5ICertificate)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute6ICertificate; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute6ICertificate(PRUint32 *aInternalAndReservedAttribute6ICertificate)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute7ICertificate; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute7ICertificate(PRUint32 *aInternalAndReservedAttribute7ICertificate)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute8ICertificate; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute8ICertificate(PRUint32 *aInternalAndReservedAttribute8ICertificate)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute9ICertificate; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute9ICertificate(PRUint32 *aInternalAndReservedAttribute9ICertificate)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute10ICertificate; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute10ICertificate(PRUint32 *aInternalAndReservedAttribute10ICertificate)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute11ICertificate; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute11ICertificate(PRUint32 *aInternalAndReservedAttribute11ICertificate)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute12ICertificate; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute12ICertificate(PRUint32 *aInternalAndReservedAttribute12ICertificate)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void isCurrentlyExpired ([retval] out boolean result); */
NS_IMETHODIMP _MYCLASS_::IsCurrentlyExpired(PRBool *result)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void queryInfo (in long what, [retval] out wstring result); */
NS_IMETHODIMP _MYCLASS_::QueryInfo(PRInt32 what, PRUnichar **result)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1ICertificate (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1ICertificate()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod2ICertificate (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod2ICertificate()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IAppliance */
#define IAPPLIANCE_IID_STR "8398f026-4add-4474-5bc3-2f9f2140b23e"

#define IAPPLIANCE_IID \
  {0x8398f026, 0x4add, 0x4474, \
    { 0x5b, 0xc3, 0x2f, 0x9f, 0x21, 0x40, 0xb2, 0x3e }}

class NS_NO_VTABLE IAppliance : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IAPPLIANCE_IID)

  /* readonly attribute wstring path; */
  NS_IMETHOD GetPath(PRUnichar * *aPath) = 0;

  /* void getDisks (out unsigned long disksSize, [array, size_is (disksSize), retval] out wstring disks); */
  NS_IMETHOD GetDisks(PRUint32 *disksSize, PRUnichar ***disks) = 0;

  /* void getVirtualSystemDescriptions (out unsigned long virtualSystemDescriptionsSize, [array, size_is (virtualSystemDescriptionsSize), retval] out IVirtualSystemDescription virtualSystemDescriptions); */
  NS_IMETHOD GetVirtualSystemDescriptions(PRUint32 *virtualSystemDescriptionsSize, IVirtualSystemDescription ***virtualSystemDescriptions) = 0;

  /* void getMachines (out unsigned long machinesSize, [array, size_is (machinesSize), retval] out wstring machines); */
  NS_IMETHOD GetMachines(PRUint32 *machinesSize, PRUnichar ***machines) = 0;

  /* readonly attribute ICertificate certificate; */
  NS_IMETHOD GetCertificate(ICertificate * *aCertificate) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IAppliance; */
  NS_IMETHOD GetInternalAndReservedAttribute1IAppliance(PRUint32 *aInternalAndReservedAttribute1IAppliance) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IAppliance; */
  NS_IMETHOD GetInternalAndReservedAttribute2IAppliance(PRUint32 *aInternalAndReservedAttribute2IAppliance) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IAppliance; */
  NS_IMETHOD GetInternalAndReservedAttribute3IAppliance(PRUint32 *aInternalAndReservedAttribute3IAppliance) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IAppliance; */
  NS_IMETHOD GetInternalAndReservedAttribute4IAppliance(PRUint32 *aInternalAndReservedAttribute4IAppliance) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IAppliance; */
  NS_IMETHOD GetInternalAndReservedAttribute5IAppliance(PRUint32 *aInternalAndReservedAttribute5IAppliance) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IAppliance; */
  NS_IMETHOD GetInternalAndReservedAttribute6IAppliance(PRUint32 *aInternalAndReservedAttribute6IAppliance) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IAppliance; */
  NS_IMETHOD GetInternalAndReservedAttribute7IAppliance(PRUint32 *aInternalAndReservedAttribute7IAppliance) = 0;

  /* void read (in wstring file, [retval] out IProgress progress); */
  NS_IMETHOD Read(const PRUnichar *file, IProgress **progress) = 0;

  /* void interpret (); */
  NS_IMETHOD Interpret(void) = 0;

  /* void importMachines (in unsigned long optionsSize, [array, size_is (optionsSize)] in PRUint32 options, [retval] out IProgress progress); */
  NS_IMETHOD ImportMachines(PRUint32 optionsSize, PRUint32 *options, IProgress **progress) = 0;

  /* void createVFSExplorer (in wstring URI, [retval] out IVFSExplorer explorer); */
  NS_IMETHOD CreateVFSExplorer(const PRUnichar *URI, IVFSExplorer **explorer) = 0;

  /* void write (in wstring format, in unsigned long optionsSize, [array, size_is (optionsSize)] in PRUint32 options, in wstring path, [retval] out IProgress progress); */
  NS_IMETHOD Write(const PRUnichar *format, PRUint32 optionsSize, PRUint32 *options, const PRUnichar *path, IProgress **progress) = 0;

  /* void getWarnings (out unsigned long warningsSize, [array, size_is (warningsSize), retval] out wstring warnings); */
  NS_IMETHOD GetWarnings(PRUint32 *warningsSize, PRUnichar ***warnings) = 0;

  /* void getPasswordIds (out unsigned long identifiersSize, [array, size_is (identifiersSize), retval] out wstring identifiers); */
  NS_IMETHOD GetPasswordIds(PRUint32 *identifiersSize, PRUnichar ***identifiers) = 0;

  /* void getMediumIdsForPasswordId (in wstring passwordId, out unsigned long identifiersSize, [array, size_is (identifiersSize), retval] out wstring identifiers); */
  NS_IMETHOD GetMediumIdsForPasswordId(const PRUnichar *passwordId, PRUint32 *identifiersSize, PRUnichar ***identifiers) = 0;

  /* void addPasswords (in unsigned long identifiersSize, [array, size_is (identifiersSize)] in wstring identifiers, in unsigned long passwordsSize, [array, size_is (passwordsSize)] in wstring passwords); */
  NS_IMETHOD AddPasswords(PRUint32 identifiersSize, const PRUnichar **identifiers, PRUint32 passwordsSize, const PRUnichar **passwords) = 0;

  /* void InternalAndReservedMethod1IAppliance (); */
  NS_IMETHOD InternalAndReservedMethod1IAppliance(void) = 0;

  /* void InternalAndReservedMethod2IAppliance (); */
  NS_IMETHOD InternalAndReservedMethod2IAppliance(void) = 0;

  /* void InternalAndReservedMethod3IAppliance (); */
  NS_IMETHOD InternalAndReservedMethod3IAppliance(void) = 0;

  /* void InternalAndReservedMethod4IAppliance (); */
  NS_IMETHOD InternalAndReservedMethod4IAppliance(void) = 0;

  /* void InternalAndReservedMethod5IAppliance (); */
  NS_IMETHOD InternalAndReservedMethod5IAppliance(void) = 0;

  /* void InternalAndReservedMethod6IAppliance (); */
  NS_IMETHOD InternalAndReservedMethod6IAppliance(void) = 0;

  /* void InternalAndReservedMethod7IAppliance (); */
  NS_IMETHOD InternalAndReservedMethod7IAppliance(void) = 0;

  /* void InternalAndReservedMethod8IAppliance (); */
  NS_IMETHOD InternalAndReservedMethod8IAppliance(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IAPPLIANCE \
  NS_IMETHOD GetPath(PRUnichar * *aPath); \
  NS_IMETHOD GetDisks(PRUint32 *disksSize, PRUnichar ***disks); \
  NS_IMETHOD GetVirtualSystemDescriptions(PRUint32 *virtualSystemDescriptionsSize, IVirtualSystemDescription ***virtualSystemDescriptions); \
  NS_IMETHOD GetMachines(PRUint32 *machinesSize, PRUnichar ***machines); \
  NS_IMETHOD GetCertificate(ICertificate * *aCertificate); \
  NS_IMETHOD GetInternalAndReservedAttribute1IAppliance(PRUint32 *aInternalAndReservedAttribute1IAppliance); \
  NS_IMETHOD GetInternalAndReservedAttribute2IAppliance(PRUint32 *aInternalAndReservedAttribute2IAppliance); \
  NS_IMETHOD GetInternalAndReservedAttribute3IAppliance(PRUint32 *aInternalAndReservedAttribute3IAppliance); \
  NS_IMETHOD GetInternalAndReservedAttribute4IAppliance(PRUint32 *aInternalAndReservedAttribute4IAppliance); \
  NS_IMETHOD GetInternalAndReservedAttribute5IAppliance(PRUint32 *aInternalAndReservedAttribute5IAppliance); \
  NS_IMETHOD GetInternalAndReservedAttribute6IAppliance(PRUint32 *aInternalAndReservedAttribute6IAppliance); \
  NS_IMETHOD GetInternalAndReservedAttribute7IAppliance(PRUint32 *aInternalAndReservedAttribute7IAppliance); \
  NS_IMETHOD Read(const PRUnichar *file, IProgress **progress); \
  NS_IMETHOD Interpret(void); \
  NS_IMETHOD ImportMachines(PRUint32 optionsSize, PRUint32 *options, IProgress **progress); \
  NS_IMETHOD CreateVFSExplorer(const PRUnichar *URI, IVFSExplorer **explorer); \
  NS_IMETHOD Write(const PRUnichar *format, PRUint32 optionsSize, PRUint32 *options, const PRUnichar *path, IProgress **progress); \
  NS_IMETHOD GetWarnings(PRUint32 *warningsSize, PRUnichar ***warnings); \
  NS_IMETHOD GetPasswordIds(PRUint32 *identifiersSize, PRUnichar ***identifiers); \
  NS_IMETHOD GetMediumIdsForPasswordId(const PRUnichar *passwordId, PRUint32 *identifiersSize, PRUnichar ***identifiers); \
  NS_IMETHOD AddPasswords(PRUint32 identifiersSize, const PRUnichar **identifiers, PRUint32 passwordsSize, const PRUnichar **passwords); \
  NS_IMETHOD InternalAndReservedMethod1IAppliance(void); \
  NS_IMETHOD InternalAndReservedMethod2IAppliance(void); \
  NS_IMETHOD InternalAndReservedMethod3IAppliance(void); \
  NS_IMETHOD InternalAndReservedMethod4IAppliance(void); \
  NS_IMETHOD InternalAndReservedMethod5IAppliance(void); \
  NS_IMETHOD InternalAndReservedMethod6IAppliance(void); \
  NS_IMETHOD InternalAndReservedMethod7IAppliance(void); \
  NS_IMETHOD InternalAndReservedMethod8IAppliance(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IAPPLIANCE(_to) \
  NS_IMETHOD GetPath(PRUnichar * *aPath) { return _to GetPath(aPath); } \
  NS_IMETHOD GetDisks(PRUint32 *disksSize, PRUnichar ***disks) { return _to GetDisks(disksSize, disks); } \
  NS_IMETHOD GetVirtualSystemDescriptions(PRUint32 *virtualSystemDescriptionsSize, IVirtualSystemDescription ***virtualSystemDescriptions) { return _to GetVirtualSystemDescriptions(virtualSystemDescriptionsSize, virtualSystemDescriptions); } \
  NS_IMETHOD GetMachines(PRUint32 *machinesSize, PRUnichar ***machines) { return _to GetMachines(machinesSize, machines); } \
  NS_IMETHOD GetCertificate(ICertificate * *aCertificate) { return _to GetCertificate(aCertificate); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IAppliance(PRUint32 *aInternalAndReservedAttribute1IAppliance) { return _to GetInternalAndReservedAttribute1IAppliance(aInternalAndReservedAttribute1IAppliance); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IAppliance(PRUint32 *aInternalAndReservedAttribute2IAppliance) { return _to GetInternalAndReservedAttribute2IAppliance(aInternalAndReservedAttribute2IAppliance); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IAppliance(PRUint32 *aInternalAndReservedAttribute3IAppliance) { return _to GetInternalAndReservedAttribute3IAppliance(aInternalAndReservedAttribute3IAppliance); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IAppliance(PRUint32 *aInternalAndReservedAttribute4IAppliance) { return _to GetInternalAndReservedAttribute4IAppliance(aInternalAndReservedAttribute4IAppliance); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IAppliance(PRUint32 *aInternalAndReservedAttribute5IAppliance) { return _to GetInternalAndReservedAttribute5IAppliance(aInternalAndReservedAttribute5IAppliance); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IAppliance(PRUint32 *aInternalAndReservedAttribute6IAppliance) { return _to GetInternalAndReservedAttribute6IAppliance(aInternalAndReservedAttribute6IAppliance); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IAppliance(PRUint32 *aInternalAndReservedAttribute7IAppliance) { return _to GetInternalAndReservedAttribute7IAppliance(aInternalAndReservedAttribute7IAppliance); } \
  NS_IMETHOD Read(const PRUnichar *file, IProgress **progress) { return _to Read(file, progress); } \
  NS_IMETHOD Interpret(void) { return _to Interpret(); } \
  NS_IMETHOD ImportMachines(PRUint32 optionsSize, PRUint32 *options, IProgress **progress) { return _to ImportMachines(optionsSize, options, progress); } \
  NS_IMETHOD CreateVFSExplorer(const PRUnichar *URI, IVFSExplorer **explorer) { return _to CreateVFSExplorer(URI, explorer); } \
  NS_IMETHOD Write(const PRUnichar *format, PRUint32 optionsSize, PRUint32 *options, const PRUnichar *path, IProgress **progress) { return _to Write(format, optionsSize, options, path, progress); } \
  NS_IMETHOD GetWarnings(PRUint32 *warningsSize, PRUnichar ***warnings) { return _to GetWarnings(warningsSize, warnings); } \
  NS_IMETHOD GetPasswordIds(PRUint32 *identifiersSize, PRUnichar ***identifiers) { return _to GetPasswordIds(identifiersSize, identifiers); } \
  NS_IMETHOD GetMediumIdsForPasswordId(const PRUnichar *passwordId, PRUint32 *identifiersSize, PRUnichar ***identifiers) { return _to GetMediumIdsForPasswordId(passwordId, identifiersSize, identifiers); } \
  NS_IMETHOD AddPasswords(PRUint32 identifiersSize, const PRUnichar **identifiers, PRUint32 passwordsSize, const PRUnichar **passwords) { return _to AddPasswords(identifiersSize, identifiers, passwordsSize, passwords); } \
  NS_IMETHOD InternalAndReservedMethod1IAppliance(void) { return _to InternalAndReservedMethod1IAppliance(); } \
  NS_IMETHOD InternalAndReservedMethod2IAppliance(void) { return _to InternalAndReservedMethod2IAppliance(); } \
  NS_IMETHOD InternalAndReservedMethod3IAppliance(void) { return _to InternalAndReservedMethod3IAppliance(); } \
  NS_IMETHOD InternalAndReservedMethod4IAppliance(void) { return _to InternalAndReservedMethod4IAppliance(); } \
  NS_IMETHOD InternalAndReservedMethod5IAppliance(void) { return _to InternalAndReservedMethod5IAppliance(); } \
  NS_IMETHOD InternalAndReservedMethod6IAppliance(void) { return _to InternalAndReservedMethod6IAppliance(); } \
  NS_IMETHOD InternalAndReservedMethod7IAppliance(void) { return _to InternalAndReservedMethod7IAppliance(); } \
  NS_IMETHOD InternalAndReservedMethod8IAppliance(void) { return _to InternalAndReservedMethod8IAppliance(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IAPPLIANCE(_to) \
  NS_IMETHOD GetPath(PRUnichar * *aPath) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPath(aPath); } \
  NS_IMETHOD GetDisks(PRUint32 *disksSize, PRUnichar ***disks) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDisks(disksSize, disks); } \
  NS_IMETHOD GetVirtualSystemDescriptions(PRUint32 *virtualSystemDescriptionsSize, IVirtualSystemDescription ***virtualSystemDescriptions) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVirtualSystemDescriptions(virtualSystemDescriptionsSize, virtualSystemDescriptions); } \
  NS_IMETHOD GetMachines(PRUint32 *machinesSize, PRUnichar ***machines) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMachines(machinesSize, machines); } \
  NS_IMETHOD GetCertificate(ICertificate * *aCertificate) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCertificate(aCertificate); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IAppliance(PRUint32 *aInternalAndReservedAttribute1IAppliance) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IAppliance(aInternalAndReservedAttribute1IAppliance); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IAppliance(PRUint32 *aInternalAndReservedAttribute2IAppliance) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IAppliance(aInternalAndReservedAttribute2IAppliance); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IAppliance(PRUint32 *aInternalAndReservedAttribute3IAppliance) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IAppliance(aInternalAndReservedAttribute3IAppliance); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IAppliance(PRUint32 *aInternalAndReservedAttribute4IAppliance) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IAppliance(aInternalAndReservedAttribute4IAppliance); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IAppliance(PRUint32 *aInternalAndReservedAttribute5IAppliance) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IAppliance(aInternalAndReservedAttribute5IAppliance); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IAppliance(PRUint32 *aInternalAndReservedAttribute6IAppliance) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IAppliance(aInternalAndReservedAttribute6IAppliance); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IAppliance(PRUint32 *aInternalAndReservedAttribute7IAppliance) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IAppliance(aInternalAndReservedAttribute7IAppliance); } \
  NS_IMETHOD Read(const PRUnichar *file, IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->Read(file, progress); } \
  NS_IMETHOD Interpret(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Interpret(); } \
  NS_IMETHOD ImportMachines(PRUint32 optionsSize, PRUint32 *options, IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->ImportMachines(optionsSize, options, progress); } \
  NS_IMETHOD CreateVFSExplorer(const PRUnichar *URI, IVFSExplorer **explorer) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateVFSExplorer(URI, explorer); } \
  NS_IMETHOD Write(const PRUnichar *format, PRUint32 optionsSize, PRUint32 *options, const PRUnichar *path, IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->Write(format, optionsSize, options, path, progress); } \
  NS_IMETHOD GetWarnings(PRUint32 *warningsSize, PRUnichar ***warnings) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetWarnings(warningsSize, warnings); } \
  NS_IMETHOD GetPasswordIds(PRUint32 *identifiersSize, PRUnichar ***identifiers) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPasswordIds(identifiersSize, identifiers); } \
  NS_IMETHOD GetMediumIdsForPasswordId(const PRUnichar *passwordId, PRUint32 *identifiersSize, PRUnichar ***identifiers) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMediumIdsForPasswordId(passwordId, identifiersSize, identifiers); } \
  NS_IMETHOD AddPasswords(PRUint32 identifiersSize, const PRUnichar **identifiers, PRUint32 passwordsSize, const PRUnichar **passwords) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddPasswords(identifiersSize, identifiers, passwordsSize, passwords); } \
  NS_IMETHOD InternalAndReservedMethod1IAppliance(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IAppliance(); } \
  NS_IMETHOD InternalAndReservedMethod2IAppliance(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IAppliance(); } \
  NS_IMETHOD InternalAndReservedMethod3IAppliance(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IAppliance(); } \
  NS_IMETHOD InternalAndReservedMethod4IAppliance(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IAppliance(); } \
  NS_IMETHOD InternalAndReservedMethod5IAppliance(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod5IAppliance(); } \
  NS_IMETHOD InternalAndReservedMethod6IAppliance(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod6IAppliance(); } \
  NS_IMETHOD InternalAndReservedMethod7IAppliance(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod7IAppliance(); } \
  NS_IMETHOD InternalAndReservedMethod8IAppliance(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod8IAppliance(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IAppliance
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IAPPLIANCE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IAppliance)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute wstring path; */
NS_IMETHODIMP _MYCLASS_::GetPath(PRUnichar * *aPath)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getDisks (out unsigned long disksSize, [array, size_is (disksSize), retval] out wstring disks); */
NS_IMETHODIMP _MYCLASS_::GetDisks(PRUint32 *disksSize, PRUnichar ***disks)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getVirtualSystemDescriptions (out unsigned long virtualSystemDescriptionsSize, [array, size_is (virtualSystemDescriptionsSize), retval] out IVirtualSystemDescription virtualSystemDescriptions); */
NS_IMETHODIMP _MYCLASS_::GetVirtualSystemDescriptions(PRUint32 *virtualSystemDescriptionsSize, IVirtualSystemDescription ***virtualSystemDescriptions)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getMachines (out unsigned long machinesSize, [array, size_is (machinesSize), retval] out wstring machines); */
NS_IMETHODIMP _MYCLASS_::GetMachines(PRUint32 *machinesSize, PRUnichar ***machines)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute ICertificate certificate; */
NS_IMETHODIMP _MYCLASS_::GetCertificate(ICertificate * *aCertificate)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IAppliance; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IAppliance(PRUint32 *aInternalAndReservedAttribute1IAppliance)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IAppliance; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IAppliance(PRUint32 *aInternalAndReservedAttribute2IAppliance)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute3IAppliance; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute3IAppliance(PRUint32 *aInternalAndReservedAttribute3IAppliance)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute4IAppliance; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute4IAppliance(PRUint32 *aInternalAndReservedAttribute4IAppliance)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute5IAppliance; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute5IAppliance(PRUint32 *aInternalAndReservedAttribute5IAppliance)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute6IAppliance; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute6IAppliance(PRUint32 *aInternalAndReservedAttribute6IAppliance)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute7IAppliance; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute7IAppliance(PRUint32 *aInternalAndReservedAttribute7IAppliance)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void read (in wstring file, [retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::Read(const PRUnichar *file, IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void interpret (); */
NS_IMETHODIMP _MYCLASS_::Interpret()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void importMachines (in unsigned long optionsSize, [array, size_is (optionsSize)] in PRUint32 options, [retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::ImportMachines(PRUint32 optionsSize, PRUint32 *options, IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void createVFSExplorer (in wstring URI, [retval] out IVFSExplorer explorer); */
NS_IMETHODIMP _MYCLASS_::CreateVFSExplorer(const PRUnichar *URI, IVFSExplorer **explorer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void write (in wstring format, in unsigned long optionsSize, [array, size_is (optionsSize)] in PRUint32 options, in wstring path, [retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::Write(const PRUnichar *format, PRUint32 optionsSize, PRUint32 *options, const PRUnichar *path, IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getWarnings (out unsigned long warningsSize, [array, size_is (warningsSize), retval] out wstring warnings); */
NS_IMETHODIMP _MYCLASS_::GetWarnings(PRUint32 *warningsSize, PRUnichar ***warnings)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getPasswordIds (out unsigned long identifiersSize, [array, size_is (identifiersSize), retval] out wstring identifiers); */
NS_IMETHODIMP _MYCLASS_::GetPasswordIds(PRUint32 *identifiersSize, PRUnichar ***identifiers)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getMediumIdsForPasswordId (in wstring passwordId, out unsigned long identifiersSize, [array, size_is (identifiersSize), retval] out wstring identifiers); */
NS_IMETHODIMP _MYCLASS_::GetMediumIdsForPasswordId(const PRUnichar *passwordId, PRUint32 *identifiersSize, PRUnichar ***identifiers)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addPasswords (in unsigned long identifiersSize, [array, size_is (identifiersSize)] in wstring identifiers, in unsigned long passwordsSize, [array, size_is (passwordsSize)] in wstring passwords); */
NS_IMETHODIMP _MYCLASS_::AddPasswords(PRUint32 identifiersSize, const PRUnichar **identifiers, PRUint32 passwordsSize, const PRUnichar **passwords)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1IAppliance (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1IAppliance()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod2IAppliance (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod2IAppliance()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod3IAppliance (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod3IAppliance()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod4IAppliance (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod4IAppliance()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod5IAppliance (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod5IAppliance()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod6IAppliance (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod6IAppliance()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod7IAppliance (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod7IAppliance()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod8IAppliance (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod8IAppliance()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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_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;

/* starting interface:    IVirtualSystemDescription */
#define IVIRTUALSYSTEMDESCRIPTION_IID_STR "316c99a2-405d-41af-8508-46889144d067"

#define IVIRTUALSYSTEMDESCRIPTION_IID \
  {0x316c99a2, 0x405d, 0x41af, \
    { 0x85, 0x08, 0x46, 0x88, 0x91, 0x44, 0xd0, 0x67 }}

class NS_NO_VTABLE IVirtualSystemDescription : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IVIRTUALSYSTEMDESCRIPTION_IID)

  /* readonly attribute unsigned long count; */
  NS_IMETHOD GetCount(PRUint32 *aCount) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IVirtualSystemDescription; */
  NS_IMETHOD GetInternalAndReservedAttribute1IVirtualSystemDescription(PRUint32 *aInternalAndReservedAttribute1IVirtualSystemDescription) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IVirtualSystemDescription; */
  NS_IMETHOD GetInternalAndReservedAttribute2IVirtualSystemDescription(PRUint32 *aInternalAndReservedAttribute2IVirtualSystemDescription) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IVirtualSystemDescription; */
  NS_IMETHOD GetInternalAndReservedAttribute3IVirtualSystemDescription(PRUint32 *aInternalAndReservedAttribute3IVirtualSystemDescription) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IVirtualSystemDescription; */
  NS_IMETHOD GetInternalAndReservedAttribute4IVirtualSystemDescription(PRUint32 *aInternalAndReservedAttribute4IVirtualSystemDescription) = 0;

  /* void getDescription (out unsigned long typesSize, [array, size_is (typesSize)] out PRUint32 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); */
  NS_IMETHOD GetDescription(PRUint32 *typesSize, PRUint32 **types, PRUint32 *refsSize, PRUnichar ***refs, PRUint32 *OVFValuesSize, PRUnichar ***OVFValues, PRUint32 *VBoxValuesSize, PRUnichar ***VBoxValues, PRUint32 *extraConfigValuesSize, PRUnichar ***extraConfigValues) = 0;

  /* void getDescriptionByType (in PRUint32 type, out unsigned long typesSize, [array, size_is (typesSize)] out PRUint32 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); */
  NS_IMETHOD GetDescriptionByType(PRUint32 type, PRUint32 *typesSize, PRUint32 **types, PRUint32 *refsSize, PRUnichar ***refs, PRUint32 *OVFValuesSize, PRUnichar ***OVFValues, PRUint32 *VBoxValuesSize, PRUnichar ***VBoxValues, PRUint32 *extraConfigValuesSize, PRUnichar ***extraConfigValues) = 0;

  /* void getValuesByType (in PRUint32 type, in PRUint32 which, out unsigned long valuesSize, [array, size_is (valuesSize), retval] out wstring values); */
  NS_IMETHOD GetValuesByType(PRUint32 type, PRUint32 which, PRUint32 *valuesSize, PRUnichar ***values) = 0;

  /* 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); */
  NS_IMETHOD SetFinalValues(PRUint32 enabledSize, PRBool *enabled, PRUint32 VBoxValuesSize, const PRUnichar **VBoxValues, PRUint32 extraConfigValuesSize, const PRUnichar **extraConfigValues) = 0;

  /* void addDescription (in PRUint32 type, in wstring VBoxValue, in wstring extraConfigValue); */
  NS_IMETHOD AddDescription(PRUint32 type, const PRUnichar *VBoxValue, const PRUnichar *extraConfigValue) = 0;

  /* void InternalAndReservedMethod1IVirtualSystemDescription (); */
  NS_IMETHOD InternalAndReservedMethod1IVirtualSystemDescription(void) = 0;

  /* void InternalAndReservedMethod2IVirtualSystemDescription (); */
  NS_IMETHOD InternalAndReservedMethod2IVirtualSystemDescription(void) = 0;

  /* void InternalAndReservedMethod3IVirtualSystemDescription (); */
  NS_IMETHOD InternalAndReservedMethod3IVirtualSystemDescription(void) = 0;

  /* void InternalAndReservedMethod4IVirtualSystemDescription (); */
  NS_IMETHOD InternalAndReservedMethod4IVirtualSystemDescription(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IVIRTUALSYSTEMDESCRIPTION \
  NS_IMETHOD GetCount(PRUint32 *aCount); \
  NS_IMETHOD GetInternalAndReservedAttribute1IVirtualSystemDescription(PRUint32 *aInternalAndReservedAttribute1IVirtualSystemDescription); \
  NS_IMETHOD GetInternalAndReservedAttribute2IVirtualSystemDescription(PRUint32 *aInternalAndReservedAttribute2IVirtualSystemDescription); \
  NS_IMETHOD GetInternalAndReservedAttribute3IVirtualSystemDescription(PRUint32 *aInternalAndReservedAttribute3IVirtualSystemDescription); \
  NS_IMETHOD GetInternalAndReservedAttribute4IVirtualSystemDescription(PRUint32 *aInternalAndReservedAttribute4IVirtualSystemDescription); \
  NS_IMETHOD GetDescription(PRUint32 *typesSize, PRUint32 **types, PRUint32 *refsSize, PRUnichar ***refs, PRUint32 *OVFValuesSize, PRUnichar ***OVFValues, PRUint32 *VBoxValuesSize, PRUnichar ***VBoxValues, PRUint32 *extraConfigValuesSize, PRUnichar ***extraConfigValues); \
  NS_IMETHOD GetDescriptionByType(PRUint32 type, PRUint32 *typesSize, PRUint32 **types, PRUint32 *refsSize, PRUnichar ***refs, PRUint32 *OVFValuesSize, PRUnichar ***OVFValues, PRUint32 *VBoxValuesSize, PRUnichar ***VBoxValues, PRUint32 *extraConfigValuesSize, PRUnichar ***extraConfigValues); \
  NS_IMETHOD GetValuesByType(PRUint32 type, PRUint32 which, PRUint32 *valuesSize, PRUnichar ***values); \
  NS_IMETHOD SetFinalValues(PRUint32 enabledSize, PRBool *enabled, PRUint32 VBoxValuesSize, const PRUnichar **VBoxValues, PRUint32 extraConfigValuesSize, const PRUnichar **extraConfigValues); \
  NS_IMETHOD AddDescription(PRUint32 type, const PRUnichar *VBoxValue, const PRUnichar *extraConfigValue); \
  NS_IMETHOD InternalAndReservedMethod1IVirtualSystemDescription(void); \
  NS_IMETHOD InternalAndReservedMethod2IVirtualSystemDescription(void); \
  NS_IMETHOD InternalAndReservedMethod3IVirtualSystemDescription(void); \
  NS_IMETHOD InternalAndReservedMethod4IVirtualSystemDescription(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IVIRTUALSYSTEMDESCRIPTION(_to) \
  NS_IMETHOD GetCount(PRUint32 *aCount) { return _to GetCount(aCount); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IVirtualSystemDescription(PRUint32 *aInternalAndReservedAttribute1IVirtualSystemDescription) { return _to GetInternalAndReservedAttribute1IVirtualSystemDescription(aInternalAndReservedAttribute1IVirtualSystemDescription); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IVirtualSystemDescription(PRUint32 *aInternalAndReservedAttribute2IVirtualSystemDescription) { return _to GetInternalAndReservedAttribute2IVirtualSystemDescription(aInternalAndReservedAttribute2IVirtualSystemDescription); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IVirtualSystemDescription(PRUint32 *aInternalAndReservedAttribute3IVirtualSystemDescription) { return _to GetInternalAndReservedAttribute3IVirtualSystemDescription(aInternalAndReservedAttribute3IVirtualSystemDescription); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IVirtualSystemDescription(PRUint32 *aInternalAndReservedAttribute4IVirtualSystemDescription) { return _to GetInternalAndReservedAttribute4IVirtualSystemDescription(aInternalAndReservedAttribute4IVirtualSystemDescription); } \
  NS_IMETHOD GetDescription(PRUint32 *typesSize, PRUint32 **types, PRUint32 *refsSize, PRUnichar ***refs, PRUint32 *OVFValuesSize, PRUnichar ***OVFValues, PRUint32 *VBoxValuesSize, PRUnichar ***VBoxValues, PRUint32 *extraConfigValuesSize, PRUnichar ***extraConfigValues) { return _to GetDescription(typesSize, types, refsSize, refs, OVFValuesSize, OVFValues, VBoxValuesSize, VBoxValues, extraConfigValuesSize, extraConfigValues); } \
  NS_IMETHOD GetDescriptionByType(PRUint32 type, PRUint32 *typesSize, PRUint32 **types, PRUint32 *refsSize, PRUnichar ***refs, PRUint32 *OVFValuesSize, PRUnichar ***OVFValues, PRUint32 *VBoxValuesSize, PRUnichar ***VBoxValues, PRUint32 *extraConfigValuesSize, PRUnichar ***extraConfigValues) { return _to GetDescriptionByType(type, typesSize, types, refsSize, refs, OVFValuesSize, OVFValues, VBoxValuesSize, VBoxValues, extraConfigValuesSize, extraConfigValues); } \
  NS_IMETHOD GetValuesByType(PRUint32 type, PRUint32 which, PRUint32 *valuesSize, PRUnichar ***values) { return _to GetValuesByType(type, which, valuesSize, values); } \
  NS_IMETHOD SetFinalValues(PRUint32 enabledSize, PRBool *enabled, PRUint32 VBoxValuesSize, const PRUnichar **VBoxValues, PRUint32 extraConfigValuesSize, const PRUnichar **extraConfigValues) { return _to SetFinalValues(enabledSize, enabled, VBoxValuesSize, VBoxValues, extraConfigValuesSize, extraConfigValues); } \
  NS_IMETHOD AddDescription(PRUint32 type, const PRUnichar *VBoxValue, const PRUnichar *extraConfigValue) { return _to AddDescription(type, VBoxValue, extraConfigValue); } \
  NS_IMETHOD InternalAndReservedMethod1IVirtualSystemDescription(void) { return _to InternalAndReservedMethod1IVirtualSystemDescription(); } \
  NS_IMETHOD InternalAndReservedMethod2IVirtualSystemDescription(void) { return _to InternalAndReservedMethod2IVirtualSystemDescription(); } \
  NS_IMETHOD InternalAndReservedMethod3IVirtualSystemDescription(void) { return _to InternalAndReservedMethod3IVirtualSystemDescription(); } \
  NS_IMETHOD InternalAndReservedMethod4IVirtualSystemDescription(void) { return _to InternalAndReservedMethod4IVirtualSystemDescription(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IVIRTUALSYSTEMDESCRIPTION(_to) \
  NS_IMETHOD GetCount(PRUint32 *aCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCount(aCount); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IVirtualSystemDescription(PRUint32 *aInternalAndReservedAttribute1IVirtualSystemDescription) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IVirtualSystemDescription(aInternalAndReservedAttribute1IVirtualSystemDescription); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IVirtualSystemDescription(PRUint32 *aInternalAndReservedAttribute2IVirtualSystemDescription) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IVirtualSystemDescription(aInternalAndReservedAttribute2IVirtualSystemDescription); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IVirtualSystemDescription(PRUint32 *aInternalAndReservedAttribute3IVirtualSystemDescription) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IVirtualSystemDescription(aInternalAndReservedAttribute3IVirtualSystemDescription); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IVirtualSystemDescription(PRUint32 *aInternalAndReservedAttribute4IVirtualSystemDescription) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IVirtualSystemDescription(aInternalAndReservedAttribute4IVirtualSystemDescription); } \
  NS_IMETHOD GetDescription(PRUint32 *typesSize, PRUint32 **types, PRUint32 *refsSize, PRUnichar ***refs, PRUint32 *OVFValuesSize, PRUnichar ***OVFValues, PRUint32 *VBoxValuesSize, PRUnichar ***VBoxValues, PRUint32 *extraConfigValuesSize, PRUnichar ***extraConfigValues) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDescription(typesSize, types, refsSize, refs, OVFValuesSize, OVFValues, VBoxValuesSize, VBoxValues, extraConfigValuesSize, extraConfigValues); } \
  NS_IMETHOD GetDescriptionByType(PRUint32 type, PRUint32 *typesSize, PRUint32 **types, PRUint32 *refsSize, PRUnichar ***refs, PRUint32 *OVFValuesSize, PRUnichar ***OVFValues, PRUint32 *VBoxValuesSize, PRUnichar ***VBoxValues, PRUint32 *extraConfigValuesSize, PRUnichar ***extraConfigValues) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDescriptionByType(type, typesSize, types, refsSize, refs, OVFValuesSize, OVFValues, VBoxValuesSize, VBoxValues, extraConfigValuesSize, extraConfigValues); } \
  NS_IMETHOD GetValuesByType(PRUint32 type, PRUint32 which, PRUint32 *valuesSize, PRUnichar ***values) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetValuesByType(type, which, valuesSize, values); } \
  NS_IMETHOD SetFinalValues(PRUint32 enabledSize, PRBool *enabled, PRUint32 VBoxValuesSize, const PRUnichar **VBoxValues, PRUint32 extraConfigValuesSize, const PRUnichar **extraConfigValues) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFinalValues(enabledSize, enabled, VBoxValuesSize, VBoxValues, extraConfigValuesSize, extraConfigValues); } \
  NS_IMETHOD AddDescription(PRUint32 type, const PRUnichar *VBoxValue, const PRUnichar *extraConfigValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddDescription(type, VBoxValue, extraConfigValue); } \
  NS_IMETHOD InternalAndReservedMethod1IVirtualSystemDescription(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IVirtualSystemDescription(); } \
  NS_IMETHOD InternalAndReservedMethod2IVirtualSystemDescription(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IVirtualSystemDescription(); } \
  NS_IMETHOD InternalAndReservedMethod3IVirtualSystemDescription(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IVirtualSystemDescription(); } \
  NS_IMETHOD InternalAndReservedMethod4IVirtualSystemDescription(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IVirtualSystemDescription(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IVirtualSystemDescription
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IVIRTUALSYSTEMDESCRIPTION

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IVirtualSystemDescription)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute unsigned long count; */
NS_IMETHODIMP _MYCLASS_::GetCount(PRUint32 *aCount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IVirtualSystemDescription; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IVirtualSystemDescription(PRUint32 *aInternalAndReservedAttribute1IVirtualSystemDescription)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IVirtualSystemDescription; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IVirtualSystemDescription(PRUint32 *aInternalAndReservedAttribute2IVirtualSystemDescription)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute3IVirtualSystemDescription; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute3IVirtualSystemDescription(PRUint32 *aInternalAndReservedAttribute3IVirtualSystemDescription)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute4IVirtualSystemDescription; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute4IVirtualSystemDescription(PRUint32 *aInternalAndReservedAttribute4IVirtualSystemDescription)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getDescription (out unsigned long typesSize, [array, size_is (typesSize)] out PRUint32 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); */
NS_IMETHODIMP _MYCLASS_::GetDescription(PRUint32 *typesSize, PRUint32 **types, PRUint32 *refsSize, PRUnichar ***refs, PRUint32 *OVFValuesSize, PRUnichar ***OVFValues, PRUint32 *VBoxValuesSize, PRUnichar ***VBoxValues, PRUint32 *extraConfigValuesSize, PRUnichar ***extraConfigValues)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getDescriptionByType (in PRUint32 type, out unsigned long typesSize, [array, size_is (typesSize)] out PRUint32 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); */
NS_IMETHODIMP _MYCLASS_::GetDescriptionByType(PRUint32 type, PRUint32 *typesSize, PRUint32 **types, PRUint32 *refsSize, PRUnichar ***refs, PRUint32 *OVFValuesSize, PRUnichar ***OVFValues, PRUint32 *VBoxValuesSize, PRUnichar ***VBoxValues, PRUint32 *extraConfigValuesSize, PRUnichar ***extraConfigValues)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getValuesByType (in PRUint32 type, in PRUint32 which, out unsigned long valuesSize, [array, size_is (valuesSize), retval] out wstring values); */
NS_IMETHODIMP _MYCLASS_::GetValuesByType(PRUint32 type, PRUint32 which, PRUint32 *valuesSize, PRUnichar ***values)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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); */
NS_IMETHODIMP _MYCLASS_::SetFinalValues(PRUint32 enabledSize, PRBool *enabled, PRUint32 VBoxValuesSize, const PRUnichar **VBoxValues, PRUint32 extraConfigValuesSize, const PRUnichar **extraConfigValues)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addDescription (in PRUint32 type, in wstring VBoxValue, in wstring extraConfigValue); */
NS_IMETHODIMP _MYCLASS_::AddDescription(PRUint32 type, const PRUnichar *VBoxValue, const PRUnichar *extraConfigValue)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1IVirtualSystemDescription (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1IVirtualSystemDescription()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod2IVirtualSystemDescription (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod2IVirtualSystemDescription()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod3IVirtualSystemDescription (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod3IVirtualSystemDescription()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod4IVirtualSystemDescription (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod4IVirtualSystemDescription()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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_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;

/* starting interface:    IInternalMachineControl */
#define IINTERNALMACHINECONTROL_IID_STR "cdbc59df-4f4d-4cf2-809c-917601355afc"

#define IINTERNALMACHINECONTROL_IID \
  {0xcdbc59df, 0x4f4d, 0x4cf2, \
    { 0x80, 0x9c, 0x91, 0x76, 0x01, 0x35, 0x5a, 0xfc }}

class NS_NO_VTABLE IInternalMachineControl : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IINTERNALMACHINECONTROL_IID)

  /* void updateState (in PRUint32 state); */
  NS_IMETHOD UpdateState(PRUint32 state) = 0;

  /* void beginPowerUp (in IProgress progress); */
  NS_IMETHOD BeginPowerUp(IProgress *progress) = 0;

  /* void endPowerUp (in long result); */
  NS_IMETHOD EndPowerUp(PRInt32 result) = 0;

  /* void beginPoweringDown (out IProgress progress); */
  NS_IMETHOD BeginPoweringDown(IProgress **progress) = 0;

  /* void endPoweringDown (in long result, in wstring errMsg); */
  NS_IMETHOD EndPoweringDown(PRInt32 result, const PRUnichar *errMsg) = 0;

  /* void runUSBDeviceFilters (in IUSBDevice device, out boolean matched, out unsigned long maskedInterfaces); */
  NS_IMETHOD RunUSBDeviceFilters(IUSBDevice *device, PRBool *matched, PRUint32 *maskedInterfaces) = 0;

  /* void captureUSBDevice (in wstring id, in wstring captureFilename); */
  NS_IMETHOD CaptureUSBDevice(const PRUnichar *id, const PRUnichar *captureFilename) = 0;

  /* void detachUSBDevice (in wstring id, in boolean done); */
  NS_IMETHOD DetachUSBDevice(const PRUnichar *id, PRBool done) = 0;

  /* void autoCaptureUSBDevices (); */
  NS_IMETHOD AutoCaptureUSBDevices(void) = 0;

  /* void detachAllUSBDevices (in boolean done); */
  NS_IMETHOD DetachAllUSBDevices(PRBool done) = 0;

  /* void onSessionEnd (in ISession session, [retval] out IProgress progress); */
  NS_IMETHOD OnSessionEnd(ISession *session, IProgress **progress) = 0;

  /* void finishOnlineMergeMedium (); */
  NS_IMETHOD FinishOnlineMergeMedium(void) = 0;

  /* 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); */
  NS_IMETHOD PullGuestProperties(PRUint32 *namesSize, PRUnichar ***names, PRUint32 *valuesSize, PRUnichar ***values, PRUint32 *timestampsSize, PRInt64 **timestamps, PRUint32 *flagsSize, PRUnichar ***flags) = 0;

  /* void pushGuestProperty (in wstring name, in wstring value, in long long timestamp, in wstring flags); */
  NS_IMETHOD PushGuestProperty(const PRUnichar *name, const PRUnichar *value, PRInt64 timestamp, const PRUnichar *flags) = 0;

  /* void lockMedia (); */
  NS_IMETHOD LockMedia(void) = 0;

  /* void unlockMedia (); */
  NS_IMETHOD UnlockMedia(void) = 0;

  /* void ejectMedium (in IMediumAttachment attachment, [retval] out IMediumAttachment newAttachment); */
  NS_IMETHOD EjectMedium(IMediumAttachment *attachment, IMediumAttachment **newAttachment) = 0;

  /* 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); */
  NS_IMETHOD ReportVmStatistics(PRUint32 validStats, PRUint32 cpuUser, PRUint32 cpuKernel, PRUint32 cpuIdle, PRUint32 memTotal, PRUint32 memFree, PRUint32 memBalloon, PRUint32 memShared, PRUint32 memCache, PRUint32 pagedTotal, PRUint32 memAllocTotal, PRUint32 memFreeTotal, PRUint32 memBalloonTotal, PRUint32 memSharedTotal, PRUint32 vmNetRx, PRUint32 vmNetTx) = 0;

  /* void authenticateExternal (in unsigned long authParamsSize, [array, size_is (authParamsSize)] in wstring authParams, out wstring result); */
  NS_IMETHOD AuthenticateExternal(PRUint32 authParamsSize, const PRUnichar **authParams, PRUnichar **result) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IINTERNALMACHINECONTROL \
  NS_IMETHOD UpdateState(PRUint32 state); \
  NS_IMETHOD BeginPowerUp(IProgress *progress); \
  NS_IMETHOD EndPowerUp(PRInt32 result); \
  NS_IMETHOD BeginPoweringDown(IProgress **progress); \
  NS_IMETHOD EndPoweringDown(PRInt32 result, const PRUnichar *errMsg); \
  NS_IMETHOD RunUSBDeviceFilters(IUSBDevice *device, PRBool *matched, PRUint32 *maskedInterfaces); \
  NS_IMETHOD CaptureUSBDevice(const PRUnichar *id, const PRUnichar *captureFilename); \
  NS_IMETHOD DetachUSBDevice(const PRUnichar *id, PRBool done); \
  NS_IMETHOD AutoCaptureUSBDevices(void); \
  NS_IMETHOD DetachAllUSBDevices(PRBool done); \
  NS_IMETHOD OnSessionEnd(ISession *session, IProgress **progress); \
  NS_IMETHOD FinishOnlineMergeMedium(void); \
  NS_IMETHOD PullGuestProperties(PRUint32 *namesSize, PRUnichar ***names, PRUint32 *valuesSize, PRUnichar ***values, PRUint32 *timestampsSize, PRInt64 **timestamps, PRUint32 *flagsSize, PRUnichar ***flags); \
  NS_IMETHOD PushGuestProperty(const PRUnichar *name, const PRUnichar *value, PRInt64 timestamp, const PRUnichar *flags); \
  NS_IMETHOD LockMedia(void); \
  NS_IMETHOD UnlockMedia(void); \
  NS_IMETHOD EjectMedium(IMediumAttachment *attachment, IMediumAttachment **newAttachment); \
  NS_IMETHOD ReportVmStatistics(PRUint32 validStats, PRUint32 cpuUser, PRUint32 cpuKernel, PRUint32 cpuIdle, PRUint32 memTotal, PRUint32 memFree, PRUint32 memBalloon, PRUint32 memShared, PRUint32 memCache, PRUint32 pagedTotal, PRUint32 memAllocTotal, PRUint32 memFreeTotal, PRUint32 memBalloonTotal, PRUint32 memSharedTotal, PRUint32 vmNetRx, PRUint32 vmNetTx); \
  NS_IMETHOD AuthenticateExternal(PRUint32 authParamsSize, const PRUnichar **authParams, PRUnichar **result); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IINTERNALMACHINECONTROL(_to) \
  NS_IMETHOD UpdateState(PRUint32 state) { return _to UpdateState(state); } \
  NS_IMETHOD BeginPowerUp(IProgress *progress) { return _to BeginPowerUp(progress); } \
  NS_IMETHOD EndPowerUp(PRInt32 result) { return _to EndPowerUp(result); } \
  NS_IMETHOD BeginPoweringDown(IProgress **progress) { return _to BeginPoweringDown(progress); } \
  NS_IMETHOD EndPoweringDown(PRInt32 result, const PRUnichar *errMsg) { return _to EndPoweringDown(result, errMsg); } \
  NS_IMETHOD RunUSBDeviceFilters(IUSBDevice *device, PRBool *matched, PRUint32 *maskedInterfaces) { return _to RunUSBDeviceFilters(device, matched, maskedInterfaces); } \
  NS_IMETHOD CaptureUSBDevice(const PRUnichar *id, const PRUnichar *captureFilename) { return _to CaptureUSBDevice(id, captureFilename); } \
  NS_IMETHOD DetachUSBDevice(const PRUnichar *id, PRBool done) { return _to DetachUSBDevice(id, done); } \
  NS_IMETHOD AutoCaptureUSBDevices(void) { return _to AutoCaptureUSBDevices(); } \
  NS_IMETHOD DetachAllUSBDevices(PRBool done) { return _to DetachAllUSBDevices(done); } \
  NS_IMETHOD OnSessionEnd(ISession *session, IProgress **progress) { return _to OnSessionEnd(session, progress); } \
  NS_IMETHOD FinishOnlineMergeMedium(void) { return _to FinishOnlineMergeMedium(); } \
  NS_IMETHOD PullGuestProperties(PRUint32 *namesSize, PRUnichar ***names, PRUint32 *valuesSize, PRUnichar ***values, PRUint32 *timestampsSize, PRInt64 **timestamps, PRUint32 *flagsSize, PRUnichar ***flags) { return _to PullGuestProperties(namesSize, names, valuesSize, values, timestampsSize, timestamps, flagsSize, flags); } \
  NS_IMETHOD PushGuestProperty(const PRUnichar *name, const PRUnichar *value, PRInt64 timestamp, const PRUnichar *flags) { return _to PushGuestProperty(name, value, timestamp, flags); } \
  NS_IMETHOD LockMedia(void) { return _to LockMedia(); } \
  NS_IMETHOD UnlockMedia(void) { return _to UnlockMedia(); } \
  NS_IMETHOD EjectMedium(IMediumAttachment *attachment, IMediumAttachment **newAttachment) { return _to EjectMedium(attachment, newAttachment); } \
  NS_IMETHOD ReportVmStatistics(PRUint32 validStats, PRUint32 cpuUser, PRUint32 cpuKernel, PRUint32 cpuIdle, PRUint32 memTotal, PRUint32 memFree, PRUint32 memBalloon, PRUint32 memShared, PRUint32 memCache, PRUint32 pagedTotal, PRUint32 memAllocTotal, PRUint32 memFreeTotal, PRUint32 memBalloonTotal, PRUint32 memSharedTotal, PRUint32 vmNetRx, PRUint32 vmNetTx) { return _to ReportVmStatistics(validStats, cpuUser, cpuKernel, cpuIdle, memTotal, memFree, memBalloon, memShared, memCache, pagedTotal, memAllocTotal, memFreeTotal, memBalloonTotal, memSharedTotal, vmNetRx, vmNetTx); } \
  NS_IMETHOD AuthenticateExternal(PRUint32 authParamsSize, const PRUnichar **authParams, PRUnichar **result) { return _to AuthenticateExternal(authParamsSize, authParams, result); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IINTERNALMACHINECONTROL(_to) \
  NS_IMETHOD UpdateState(PRUint32 state) { return !_to ? NS_ERROR_NULL_POINTER : _to->UpdateState(state); } \
  NS_IMETHOD BeginPowerUp(IProgress *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->BeginPowerUp(progress); } \
  NS_IMETHOD EndPowerUp(PRInt32 result) { return !_to ? NS_ERROR_NULL_POINTER : _to->EndPowerUp(result); } \
  NS_IMETHOD BeginPoweringDown(IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->BeginPoweringDown(progress); } \
  NS_IMETHOD EndPoweringDown(PRInt32 result, const PRUnichar *errMsg) { return !_to ? NS_ERROR_NULL_POINTER : _to->EndPoweringDown(result, errMsg); } \
  NS_IMETHOD RunUSBDeviceFilters(IUSBDevice *device, PRBool *matched, PRUint32 *maskedInterfaces) { return !_to ? NS_ERROR_NULL_POINTER : _to->RunUSBDeviceFilters(device, matched, maskedInterfaces); } \
  NS_IMETHOD CaptureUSBDevice(const PRUnichar *id, const PRUnichar *captureFilename) { return !_to ? NS_ERROR_NULL_POINTER : _to->CaptureUSBDevice(id, captureFilename); } \
  NS_IMETHOD DetachUSBDevice(const PRUnichar *id, PRBool done) { return !_to ? NS_ERROR_NULL_POINTER : _to->DetachUSBDevice(id, done); } \
  NS_IMETHOD AutoCaptureUSBDevices(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->AutoCaptureUSBDevices(); } \
  NS_IMETHOD DetachAllUSBDevices(PRBool done) { return !_to ? NS_ERROR_NULL_POINTER : _to->DetachAllUSBDevices(done); } \
  NS_IMETHOD OnSessionEnd(ISession *session, IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnSessionEnd(session, progress); } \
  NS_IMETHOD FinishOnlineMergeMedium(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->FinishOnlineMergeMedium(); } \
  NS_IMETHOD PullGuestProperties(PRUint32 *namesSize, PRUnichar ***names, PRUint32 *valuesSize, PRUnichar ***values, PRUint32 *timestampsSize, PRInt64 **timestamps, PRUint32 *flagsSize, PRUnichar ***flags) { return !_to ? NS_ERROR_NULL_POINTER : _to->PullGuestProperties(namesSize, names, valuesSize, values, timestampsSize, timestamps, flagsSize, flags); } \
  NS_IMETHOD PushGuestProperty(const PRUnichar *name, const PRUnichar *value, PRInt64 timestamp, const PRUnichar *flags) { return !_to ? NS_ERROR_NULL_POINTER : _to->PushGuestProperty(name, value, timestamp, flags); } \
  NS_IMETHOD LockMedia(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->LockMedia(); } \
  NS_IMETHOD UnlockMedia(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->UnlockMedia(); } \
  NS_IMETHOD EjectMedium(IMediumAttachment *attachment, IMediumAttachment **newAttachment) { return !_to ? NS_ERROR_NULL_POINTER : _to->EjectMedium(attachment, newAttachment); } \
  NS_IMETHOD ReportVmStatistics(PRUint32 validStats, PRUint32 cpuUser, PRUint32 cpuKernel, PRUint32 cpuIdle, PRUint32 memTotal, PRUint32 memFree, PRUint32 memBalloon, PRUint32 memShared, PRUint32 memCache, PRUint32 pagedTotal, PRUint32 memAllocTotal, PRUint32 memFreeTotal, PRUint32 memBalloonTotal, PRUint32 memSharedTotal, PRUint32 vmNetRx, PRUint32 vmNetTx) { return !_to ? NS_ERROR_NULL_POINTER : _to->ReportVmStatistics(validStats, cpuUser, cpuKernel, cpuIdle, memTotal, memFree, memBalloon, memShared, memCache, pagedTotal, memAllocTotal, memFreeTotal, memBalloonTotal, memSharedTotal, vmNetRx, vmNetTx); } \
  NS_IMETHOD AuthenticateExternal(PRUint32 authParamsSize, const PRUnichar **authParams, PRUnichar **result) { return !_to ? NS_ERROR_NULL_POINTER : _to->AuthenticateExternal(authParamsSize, authParams, result); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IInternalMachineControl
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IINTERNALMACHINECONTROL

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IInternalMachineControl)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* void updateState (in PRUint32 state); */
NS_IMETHODIMP _MYCLASS_::UpdateState(PRUint32 state)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void beginPowerUp (in IProgress progress); */
NS_IMETHODIMP _MYCLASS_::BeginPowerUp(IProgress *progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void endPowerUp (in long result); */
NS_IMETHODIMP _MYCLASS_::EndPowerUp(PRInt32 result)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void beginPoweringDown (out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::BeginPoweringDown(IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void endPoweringDown (in long result, in wstring errMsg); */
NS_IMETHODIMP _MYCLASS_::EndPoweringDown(PRInt32 result, const PRUnichar *errMsg)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void runUSBDeviceFilters (in IUSBDevice device, out boolean matched, out unsigned long maskedInterfaces); */
NS_IMETHODIMP _MYCLASS_::RunUSBDeviceFilters(IUSBDevice *device, PRBool *matched, PRUint32 *maskedInterfaces)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void captureUSBDevice (in wstring id, in wstring captureFilename); */
NS_IMETHODIMP _MYCLASS_::CaptureUSBDevice(const PRUnichar *id, const PRUnichar *captureFilename)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void detachUSBDevice (in wstring id, in boolean done); */
NS_IMETHODIMP _MYCLASS_::DetachUSBDevice(const PRUnichar *id, PRBool done)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void autoCaptureUSBDevices (); */
NS_IMETHODIMP _MYCLASS_::AutoCaptureUSBDevices()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void detachAllUSBDevices (in boolean done); */
NS_IMETHODIMP _MYCLASS_::DetachAllUSBDevices(PRBool done)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onSessionEnd (in ISession session, [retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::OnSessionEnd(ISession *session, IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void finishOnlineMergeMedium (); */
NS_IMETHODIMP _MYCLASS_::FinishOnlineMergeMedium()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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); */
NS_IMETHODIMP _MYCLASS_::PullGuestProperties(PRUint32 *namesSize, PRUnichar ***names, PRUint32 *valuesSize, PRUnichar ***values, PRUint32 *timestampsSize, PRInt64 **timestamps, PRUint32 *flagsSize, PRUnichar ***flags)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void pushGuestProperty (in wstring name, in wstring value, in long long timestamp, in wstring flags); */
NS_IMETHODIMP _MYCLASS_::PushGuestProperty(const PRUnichar *name, const PRUnichar *value, PRInt64 timestamp, const PRUnichar *flags)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void lockMedia (); */
NS_IMETHODIMP _MYCLASS_::LockMedia()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void unlockMedia (); */
NS_IMETHODIMP _MYCLASS_::UnlockMedia()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void ejectMedium (in IMediumAttachment attachment, [retval] out IMediumAttachment newAttachment); */
NS_IMETHODIMP _MYCLASS_::EjectMedium(IMediumAttachment *attachment, IMediumAttachment **newAttachment)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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); */
NS_IMETHODIMP _MYCLASS_::ReportVmStatistics(PRUint32 validStats, PRUint32 cpuUser, PRUint32 cpuKernel, PRUint32 cpuIdle, PRUint32 memTotal, PRUint32 memFree, PRUint32 memBalloon, PRUint32 memShared, PRUint32 memCache, PRUint32 pagedTotal, PRUint32 memAllocTotal, PRUint32 memFreeTotal, PRUint32 memBalloonTotal, PRUint32 memSharedTotal, PRUint32 vmNetRx, PRUint32 vmNetTx)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void authenticateExternal (in unsigned long authParamsSize, [array, size_is (authParamsSize)] in wstring authParams, out wstring result); */
NS_IMETHODIMP _MYCLASS_::AuthenticateExternal(PRUint32 authParamsSize, const PRUnichar **authParams, PRUnichar **result)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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_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;

/* starting interface:    IBIOSSettings */
#define IBIOSSETTINGS_IID_STR "f13f667d-3624-4ac5-99c1-3d982ebd8d98"

#define IBIOSSETTINGS_IID \
  {0xf13f667d, 0x3624, 0x4ac5, \
    { 0x99, 0xc1, 0x3d, 0x98, 0x2e, 0xbd, 0x8d, 0x98 }}

class NS_NO_VTABLE IBIOSSettings : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IBIOSSETTINGS_IID)

  /* attribute boolean logoFadeIn; */
  NS_IMETHOD GetLogoFadeIn(PRBool *aLogoFadeIn) = 0;
  NS_IMETHOD SetLogoFadeIn(PRBool aLogoFadeIn) = 0;

  /* attribute boolean logoFadeOut; */
  NS_IMETHOD GetLogoFadeOut(PRBool *aLogoFadeOut) = 0;
  NS_IMETHOD SetLogoFadeOut(PRBool aLogoFadeOut) = 0;

  /* attribute unsigned long logoDisplayTime; */
  NS_IMETHOD GetLogoDisplayTime(PRUint32 *aLogoDisplayTime) = 0;
  NS_IMETHOD SetLogoDisplayTime(PRUint32 aLogoDisplayTime) = 0;

  /* attribute wstring logoImagePath; */
  NS_IMETHOD GetLogoImagePath(PRUnichar * *aLogoImagePath) = 0;
  NS_IMETHOD SetLogoImagePath(const PRUnichar * aLogoImagePath) = 0;

  /* attribute PRUint32 bootMenuMode; */
  NS_IMETHOD GetBootMenuMode(PRUint32 *aBootMenuMode) = 0;
  NS_IMETHOD SetBootMenuMode(PRUint32 aBootMenuMode) = 0;

  /* attribute boolean ACPIEnabled; */
  NS_IMETHOD GetACPIEnabled(PRBool *aACPIEnabled) = 0;
  NS_IMETHOD SetACPIEnabled(PRBool aACPIEnabled) = 0;

  /* attribute boolean IOAPICEnabled; */
  NS_IMETHOD GetIOAPICEnabled(PRBool *aIOAPICEnabled) = 0;
  NS_IMETHOD SetIOAPICEnabled(PRBool aIOAPICEnabled) = 0;

  /* attribute PRUint32 APICMode; */
  NS_IMETHOD GetAPICMode(PRUint32 *aAPICMode) = 0;
  NS_IMETHOD SetAPICMode(PRUint32 aAPICMode) = 0;

  /* attribute long long timeOffset; */
  NS_IMETHOD GetTimeOffset(PRInt64 *aTimeOffset) = 0;
  NS_IMETHOD SetTimeOffset(PRInt64 aTimeOffset) = 0;

  /* attribute boolean PXEDebugEnabled; */
  NS_IMETHOD GetPXEDebugEnabled(PRBool *aPXEDebugEnabled) = 0;
  NS_IMETHOD SetPXEDebugEnabled(PRBool aPXEDebugEnabled) = 0;

  /* readonly attribute wstring nonVolatileStorageFile; */
  NS_IMETHOD GetNonVolatileStorageFile(PRUnichar * *aNonVolatileStorageFile) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IBIOSSettings; */
  NS_IMETHOD GetInternalAndReservedAttribute1IBIOSSettings(PRUint32 *aInternalAndReservedAttribute1IBIOSSettings) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IBIOSSettings; */
  NS_IMETHOD GetInternalAndReservedAttribute2IBIOSSettings(PRUint32 *aInternalAndReservedAttribute2IBIOSSettings) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IBIOSSettings; */
  NS_IMETHOD GetInternalAndReservedAttribute3IBIOSSettings(PRUint32 *aInternalAndReservedAttribute3IBIOSSettings) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IBIOSSettings; */
  NS_IMETHOD GetInternalAndReservedAttribute4IBIOSSettings(PRUint32 *aInternalAndReservedAttribute4IBIOSSettings) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IBIOSSettings; */
  NS_IMETHOD GetInternalAndReservedAttribute5IBIOSSettings(PRUint32 *aInternalAndReservedAttribute5IBIOSSettings) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IBIOSSettings; */
  NS_IMETHOD GetInternalAndReservedAttribute6IBIOSSettings(PRUint32 *aInternalAndReservedAttribute6IBIOSSettings) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IBIOSSettings; */
  NS_IMETHOD GetInternalAndReservedAttribute7IBIOSSettings(PRUint32 *aInternalAndReservedAttribute7IBIOSSettings) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IBIOSSettings; */
  NS_IMETHOD GetInternalAndReservedAttribute8IBIOSSettings(PRUint32 *aInternalAndReservedAttribute8IBIOSSettings) = 0;

  /* void InternalAndReservedMethod1IBIOSSettings (); */
  NS_IMETHOD InternalAndReservedMethod1IBIOSSettings(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IBIOSSETTINGS \
  NS_IMETHOD GetLogoFadeIn(PRBool *aLogoFadeIn); \
  NS_IMETHOD SetLogoFadeIn(PRBool aLogoFadeIn); \
  NS_IMETHOD GetLogoFadeOut(PRBool *aLogoFadeOut); \
  NS_IMETHOD SetLogoFadeOut(PRBool aLogoFadeOut); \
  NS_IMETHOD GetLogoDisplayTime(PRUint32 *aLogoDisplayTime); \
  NS_IMETHOD SetLogoDisplayTime(PRUint32 aLogoDisplayTime); \
  NS_IMETHOD GetLogoImagePath(PRUnichar * *aLogoImagePath); \
  NS_IMETHOD SetLogoImagePath(const PRUnichar * aLogoImagePath); \
  NS_IMETHOD GetBootMenuMode(PRUint32 *aBootMenuMode); \
  NS_IMETHOD SetBootMenuMode(PRUint32 aBootMenuMode); \
  NS_IMETHOD GetACPIEnabled(PRBool *aACPIEnabled); \
  NS_IMETHOD SetACPIEnabled(PRBool aACPIEnabled); \
  NS_IMETHOD GetIOAPICEnabled(PRBool *aIOAPICEnabled); \
  NS_IMETHOD SetIOAPICEnabled(PRBool aIOAPICEnabled); \
  NS_IMETHOD GetAPICMode(PRUint32 *aAPICMode); \
  NS_IMETHOD SetAPICMode(PRUint32 aAPICMode); \
  NS_IMETHOD GetTimeOffset(PRInt64 *aTimeOffset); \
  NS_IMETHOD SetTimeOffset(PRInt64 aTimeOffset); \
  NS_IMETHOD GetPXEDebugEnabled(PRBool *aPXEDebugEnabled); \
  NS_IMETHOD SetPXEDebugEnabled(PRBool aPXEDebugEnabled); \
  NS_IMETHOD GetNonVolatileStorageFile(PRUnichar * *aNonVolatileStorageFile); \
  NS_IMETHOD GetInternalAndReservedAttribute1IBIOSSettings(PRUint32 *aInternalAndReservedAttribute1IBIOSSettings); \
  NS_IMETHOD GetInternalAndReservedAttribute2IBIOSSettings(PRUint32 *aInternalAndReservedAttribute2IBIOSSettings); \
  NS_IMETHOD GetInternalAndReservedAttribute3IBIOSSettings(PRUint32 *aInternalAndReservedAttribute3IBIOSSettings); \
  NS_IMETHOD GetInternalAndReservedAttribute4IBIOSSettings(PRUint32 *aInternalAndReservedAttribute4IBIOSSettings); \
  NS_IMETHOD GetInternalAndReservedAttribute5IBIOSSettings(PRUint32 *aInternalAndReservedAttribute5IBIOSSettings); \
  NS_IMETHOD GetInternalAndReservedAttribute6IBIOSSettings(PRUint32 *aInternalAndReservedAttribute6IBIOSSettings); \
  NS_IMETHOD GetInternalAndReservedAttribute7IBIOSSettings(PRUint32 *aInternalAndReservedAttribute7IBIOSSettings); \
  NS_IMETHOD GetInternalAndReservedAttribute8IBIOSSettings(PRUint32 *aInternalAndReservedAttribute8IBIOSSettings); \
  NS_IMETHOD InternalAndReservedMethod1IBIOSSettings(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IBIOSSETTINGS(_to) \
  NS_IMETHOD GetLogoFadeIn(PRBool *aLogoFadeIn) { return _to GetLogoFadeIn(aLogoFadeIn); } \
  NS_IMETHOD SetLogoFadeIn(PRBool aLogoFadeIn) { return _to SetLogoFadeIn(aLogoFadeIn); } \
  NS_IMETHOD GetLogoFadeOut(PRBool *aLogoFadeOut) { return _to GetLogoFadeOut(aLogoFadeOut); } \
  NS_IMETHOD SetLogoFadeOut(PRBool aLogoFadeOut) { return _to SetLogoFadeOut(aLogoFadeOut); } \
  NS_IMETHOD GetLogoDisplayTime(PRUint32 *aLogoDisplayTime) { return _to GetLogoDisplayTime(aLogoDisplayTime); } \
  NS_IMETHOD SetLogoDisplayTime(PRUint32 aLogoDisplayTime) { return _to SetLogoDisplayTime(aLogoDisplayTime); } \
  NS_IMETHOD GetLogoImagePath(PRUnichar * *aLogoImagePath) { return _to GetLogoImagePath(aLogoImagePath); } \
  NS_IMETHOD SetLogoImagePath(const PRUnichar * aLogoImagePath) { return _to SetLogoImagePath(aLogoImagePath); } \
  NS_IMETHOD GetBootMenuMode(PRUint32 *aBootMenuMode) { return _to GetBootMenuMode(aBootMenuMode); } \
  NS_IMETHOD SetBootMenuMode(PRUint32 aBootMenuMode) { return _to SetBootMenuMode(aBootMenuMode); } \
  NS_IMETHOD GetACPIEnabled(PRBool *aACPIEnabled) { return _to GetACPIEnabled(aACPIEnabled); } \
  NS_IMETHOD SetACPIEnabled(PRBool aACPIEnabled) { return _to SetACPIEnabled(aACPIEnabled); } \
  NS_IMETHOD GetIOAPICEnabled(PRBool *aIOAPICEnabled) { return _to GetIOAPICEnabled(aIOAPICEnabled); } \
  NS_IMETHOD SetIOAPICEnabled(PRBool aIOAPICEnabled) { return _to SetIOAPICEnabled(aIOAPICEnabled); } \
  NS_IMETHOD GetAPICMode(PRUint32 *aAPICMode) { return _to GetAPICMode(aAPICMode); } \
  NS_IMETHOD SetAPICMode(PRUint32 aAPICMode) { return _to SetAPICMode(aAPICMode); } \
  NS_IMETHOD GetTimeOffset(PRInt64 *aTimeOffset) { return _to GetTimeOffset(aTimeOffset); } \
  NS_IMETHOD SetTimeOffset(PRInt64 aTimeOffset) { return _to SetTimeOffset(aTimeOffset); } \
  NS_IMETHOD GetPXEDebugEnabled(PRBool *aPXEDebugEnabled) { return _to GetPXEDebugEnabled(aPXEDebugEnabled); } \
  NS_IMETHOD SetPXEDebugEnabled(PRBool aPXEDebugEnabled) { return _to SetPXEDebugEnabled(aPXEDebugEnabled); } \
  NS_IMETHOD GetNonVolatileStorageFile(PRUnichar * *aNonVolatileStorageFile) { return _to GetNonVolatileStorageFile(aNonVolatileStorageFile); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IBIOSSettings(PRUint32 *aInternalAndReservedAttribute1IBIOSSettings) { return _to GetInternalAndReservedAttribute1IBIOSSettings(aInternalAndReservedAttribute1IBIOSSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IBIOSSettings(PRUint32 *aInternalAndReservedAttribute2IBIOSSettings) { return _to GetInternalAndReservedAttribute2IBIOSSettings(aInternalAndReservedAttribute2IBIOSSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IBIOSSettings(PRUint32 *aInternalAndReservedAttribute3IBIOSSettings) { return _to GetInternalAndReservedAttribute3IBIOSSettings(aInternalAndReservedAttribute3IBIOSSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IBIOSSettings(PRUint32 *aInternalAndReservedAttribute4IBIOSSettings) { return _to GetInternalAndReservedAttribute4IBIOSSettings(aInternalAndReservedAttribute4IBIOSSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IBIOSSettings(PRUint32 *aInternalAndReservedAttribute5IBIOSSettings) { return _to GetInternalAndReservedAttribute5IBIOSSettings(aInternalAndReservedAttribute5IBIOSSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IBIOSSettings(PRUint32 *aInternalAndReservedAttribute6IBIOSSettings) { return _to GetInternalAndReservedAttribute6IBIOSSettings(aInternalAndReservedAttribute6IBIOSSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IBIOSSettings(PRUint32 *aInternalAndReservedAttribute7IBIOSSettings) { return _to GetInternalAndReservedAttribute7IBIOSSettings(aInternalAndReservedAttribute7IBIOSSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IBIOSSettings(PRUint32 *aInternalAndReservedAttribute8IBIOSSettings) { return _to GetInternalAndReservedAttribute8IBIOSSettings(aInternalAndReservedAttribute8IBIOSSettings); } \
  NS_IMETHOD InternalAndReservedMethod1IBIOSSettings(void) { return _to InternalAndReservedMethod1IBIOSSettings(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IBIOSSETTINGS(_to) \
  NS_IMETHOD GetLogoFadeIn(PRBool *aLogoFadeIn) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLogoFadeIn(aLogoFadeIn); } \
  NS_IMETHOD SetLogoFadeIn(PRBool aLogoFadeIn) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLogoFadeIn(aLogoFadeIn); } \
  NS_IMETHOD GetLogoFadeOut(PRBool *aLogoFadeOut) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLogoFadeOut(aLogoFadeOut); } \
  NS_IMETHOD SetLogoFadeOut(PRBool aLogoFadeOut) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLogoFadeOut(aLogoFadeOut); } \
  NS_IMETHOD GetLogoDisplayTime(PRUint32 *aLogoDisplayTime) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLogoDisplayTime(aLogoDisplayTime); } \
  NS_IMETHOD SetLogoDisplayTime(PRUint32 aLogoDisplayTime) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLogoDisplayTime(aLogoDisplayTime); } \
  NS_IMETHOD GetLogoImagePath(PRUnichar * *aLogoImagePath) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLogoImagePath(aLogoImagePath); } \
  NS_IMETHOD SetLogoImagePath(const PRUnichar * aLogoImagePath) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLogoImagePath(aLogoImagePath); } \
  NS_IMETHOD GetBootMenuMode(PRUint32 *aBootMenuMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBootMenuMode(aBootMenuMode); } \
  NS_IMETHOD SetBootMenuMode(PRUint32 aBootMenuMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetBootMenuMode(aBootMenuMode); } \
  NS_IMETHOD GetACPIEnabled(PRBool *aACPIEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetACPIEnabled(aACPIEnabled); } \
  NS_IMETHOD SetACPIEnabled(PRBool aACPIEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetACPIEnabled(aACPIEnabled); } \
  NS_IMETHOD GetIOAPICEnabled(PRBool *aIOAPICEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIOAPICEnabled(aIOAPICEnabled); } \
  NS_IMETHOD SetIOAPICEnabled(PRBool aIOAPICEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIOAPICEnabled(aIOAPICEnabled); } \
  NS_IMETHOD GetAPICMode(PRUint32 *aAPICMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAPICMode(aAPICMode); } \
  NS_IMETHOD SetAPICMode(PRUint32 aAPICMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAPICMode(aAPICMode); } \
  NS_IMETHOD GetTimeOffset(PRInt64 *aTimeOffset) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTimeOffset(aTimeOffset); } \
  NS_IMETHOD SetTimeOffset(PRInt64 aTimeOffset) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetTimeOffset(aTimeOffset); } \
  NS_IMETHOD GetPXEDebugEnabled(PRBool *aPXEDebugEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPXEDebugEnabled(aPXEDebugEnabled); } \
  NS_IMETHOD SetPXEDebugEnabled(PRBool aPXEDebugEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPXEDebugEnabled(aPXEDebugEnabled); } \
  NS_IMETHOD GetNonVolatileStorageFile(PRUnichar * *aNonVolatileStorageFile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNonVolatileStorageFile(aNonVolatileStorageFile); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IBIOSSettings(PRUint32 *aInternalAndReservedAttribute1IBIOSSettings) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IBIOSSettings(aInternalAndReservedAttribute1IBIOSSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IBIOSSettings(PRUint32 *aInternalAndReservedAttribute2IBIOSSettings) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IBIOSSettings(aInternalAndReservedAttribute2IBIOSSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IBIOSSettings(PRUint32 *aInternalAndReservedAttribute3IBIOSSettings) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IBIOSSettings(aInternalAndReservedAttribute3IBIOSSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IBIOSSettings(PRUint32 *aInternalAndReservedAttribute4IBIOSSettings) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IBIOSSettings(aInternalAndReservedAttribute4IBIOSSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IBIOSSettings(PRUint32 *aInternalAndReservedAttribute5IBIOSSettings) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IBIOSSettings(aInternalAndReservedAttribute5IBIOSSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IBIOSSettings(PRUint32 *aInternalAndReservedAttribute6IBIOSSettings) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IBIOSSettings(aInternalAndReservedAttribute6IBIOSSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IBIOSSettings(PRUint32 *aInternalAndReservedAttribute7IBIOSSettings) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IBIOSSettings(aInternalAndReservedAttribute7IBIOSSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IBIOSSettings(PRUint32 *aInternalAndReservedAttribute8IBIOSSettings) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IBIOSSettings(aInternalAndReservedAttribute8IBIOSSettings); } \
  NS_IMETHOD InternalAndReservedMethod1IBIOSSettings(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IBIOSSettings(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class IBOSSettings : public IBIOSSettings
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IBIOSSETTINGS

  IBOSSettings();

private:
  ~IBOSSettings();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(IBOSSettings, IBIOSSettings)

IBOSSettings::IBOSSettings()
{
  /* member initializers and constructor code */
}

IBOSSettings::~IBOSSettings()
{
  /* destructor code */
}

/* attribute boolean logoFadeIn; */
NS_IMETHODIMP IBOSSettings::GetLogoFadeIn(PRBool *aLogoFadeIn)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP IBOSSettings::SetLogoFadeIn(PRBool aLogoFadeIn)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean logoFadeOut; */
NS_IMETHODIMP IBOSSettings::GetLogoFadeOut(PRBool *aLogoFadeOut)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP IBOSSettings::SetLogoFadeOut(PRBool aLogoFadeOut)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long logoDisplayTime; */
NS_IMETHODIMP IBOSSettings::GetLogoDisplayTime(PRUint32 *aLogoDisplayTime)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP IBOSSettings::SetLogoDisplayTime(PRUint32 aLogoDisplayTime)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring logoImagePath; */
NS_IMETHODIMP IBOSSettings::GetLogoImagePath(PRUnichar * *aLogoImagePath)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP IBOSSettings::SetLogoImagePath(const PRUnichar * aLogoImagePath)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute PRUint32 bootMenuMode; */
NS_IMETHODIMP IBOSSettings::GetBootMenuMode(PRUint32 *aBootMenuMode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP IBOSSettings::SetBootMenuMode(PRUint32 aBootMenuMode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean ACPIEnabled; */
NS_IMETHODIMP IBOSSettings::GetACPIEnabled(PRBool *aACPIEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP IBOSSettings::SetACPIEnabled(PRBool aACPIEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean IOAPICEnabled; */
NS_IMETHODIMP IBOSSettings::GetIOAPICEnabled(PRBool *aIOAPICEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP IBOSSettings::SetIOAPICEnabled(PRBool aIOAPICEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute PRUint32 APICMode; */
NS_IMETHODIMP IBOSSettings::GetAPICMode(PRUint32 *aAPICMode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP IBOSSettings::SetAPICMode(PRUint32 aAPICMode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute long long timeOffset; */
NS_IMETHODIMP IBOSSettings::GetTimeOffset(PRInt64 *aTimeOffset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP IBOSSettings::SetTimeOffset(PRInt64 aTimeOffset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean PXEDebugEnabled; */
NS_IMETHODIMP IBOSSettings::GetPXEDebugEnabled(PRBool *aPXEDebugEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP IBOSSettings::SetPXEDebugEnabled(PRBool aPXEDebugEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring nonVolatileStorageFile; */
NS_IMETHODIMP IBOSSettings::GetNonVolatileStorageFile(PRUnichar * *aNonVolatileStorageFile)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IBIOSSettings; */
NS_IMETHODIMP IBOSSettings::GetInternalAndReservedAttribute1IBIOSSettings(PRUint32 *aInternalAndReservedAttribute1IBIOSSettings)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IBIOSSettings; */
NS_IMETHODIMP IBOSSettings::GetInternalAndReservedAttribute2IBIOSSettings(PRUint32 *aInternalAndReservedAttribute2IBIOSSettings)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute3IBIOSSettings; */
NS_IMETHODIMP IBOSSettings::GetInternalAndReservedAttribute3IBIOSSettings(PRUint32 *aInternalAndReservedAttribute3IBIOSSettings)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute4IBIOSSettings; */
NS_IMETHODIMP IBOSSettings::GetInternalAndReservedAttribute4IBIOSSettings(PRUint32 *aInternalAndReservedAttribute4IBIOSSettings)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute5IBIOSSettings; */
NS_IMETHODIMP IBOSSettings::GetInternalAndReservedAttribute5IBIOSSettings(PRUint32 *aInternalAndReservedAttribute5IBIOSSettings)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute6IBIOSSettings; */
NS_IMETHODIMP IBOSSettings::GetInternalAndReservedAttribute6IBIOSSettings(PRUint32 *aInternalAndReservedAttribute6IBIOSSettings)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute7IBIOSSettings; */
NS_IMETHODIMP IBOSSettings::GetInternalAndReservedAttribute7IBIOSSettings(PRUint32 *aInternalAndReservedAttribute7IBIOSSettings)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute8IBIOSSettings; */
NS_IMETHODIMP IBOSSettings::GetInternalAndReservedAttribute8IBIOSSettings(PRUint32 *aInternalAndReservedAttribute8IBIOSSettings)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1IBIOSSettings (); */
NS_IMETHODIMP IBOSSettings::InternalAndReservedMethod1IBIOSSettings()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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_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;

/* starting interface:    IPCIAddress */
#define IPCIADDRESS_IID_STR "c984d15f-e191-400b-840e-970f3dad7296"

#define IPCIADDRESS_IID \
  {0xc984d15f, 0xe191, 0x400b, \
    { 0x84, 0x0e, 0x97, 0x0f, 0x3d, 0xad, 0x72, 0x96 }}

class NS_NO_VTABLE IPCIAddress : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IPCIADDRESS_IID)

  /* attribute short bus; */
  NS_IMETHOD GetBus(PRInt16 *aBus) = 0;
  NS_IMETHOD SetBus(PRInt16 aBus) = 0;

  /* attribute short device; */
  NS_IMETHOD GetDevice(PRInt16 *aDevice) = 0;
  NS_IMETHOD SetDevice(PRInt16 aDevice) = 0;

  /* attribute short devFunction; */
  NS_IMETHOD GetDevFunction(PRInt16 *aDevFunction) = 0;
  NS_IMETHOD SetDevFunction(PRInt16 aDevFunction) = 0;

  /* void asLong ([retval] out long result); */
  NS_IMETHOD AsLong(PRInt32 *result) = 0;

  /* void fromLong (in long number); */
  NS_IMETHOD FromLong(PRInt32 number) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IPCIADDRESS \
  NS_IMETHOD GetBus(PRInt16 *aBus); \
  NS_IMETHOD SetBus(PRInt16 aBus); \
  NS_IMETHOD GetDevice(PRInt16 *aDevice); \
  NS_IMETHOD SetDevice(PRInt16 aDevice); \
  NS_IMETHOD GetDevFunction(PRInt16 *aDevFunction); \
  NS_IMETHOD SetDevFunction(PRInt16 aDevFunction); \
  NS_IMETHOD AsLong(PRInt32 *result); \
  NS_IMETHOD FromLong(PRInt32 number); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IPCIADDRESS(_to) \
  NS_IMETHOD GetBus(PRInt16 *aBus) { return _to GetBus(aBus); } \
  NS_IMETHOD SetBus(PRInt16 aBus) { return _to SetBus(aBus); } \
  NS_IMETHOD GetDevice(PRInt16 *aDevice) { return _to GetDevice(aDevice); } \
  NS_IMETHOD SetDevice(PRInt16 aDevice) { return _to SetDevice(aDevice); } \
  NS_IMETHOD GetDevFunction(PRInt16 *aDevFunction) { return _to GetDevFunction(aDevFunction); } \
  NS_IMETHOD SetDevFunction(PRInt16 aDevFunction) { return _to SetDevFunction(aDevFunction); } \
  NS_IMETHOD AsLong(PRInt32 *result) { return _to AsLong(result); } \
  NS_IMETHOD FromLong(PRInt32 number) { return _to FromLong(number); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IPCIADDRESS(_to) \
  NS_IMETHOD GetBus(PRInt16 *aBus) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBus(aBus); } \
  NS_IMETHOD SetBus(PRInt16 aBus) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetBus(aBus); } \
  NS_IMETHOD GetDevice(PRInt16 *aDevice) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDevice(aDevice); } \
  NS_IMETHOD SetDevice(PRInt16 aDevice) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDevice(aDevice); } \
  NS_IMETHOD GetDevFunction(PRInt16 *aDevFunction) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDevFunction(aDevFunction); } \
  NS_IMETHOD SetDevFunction(PRInt16 aDevFunction) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDevFunction(aDevFunction); } \
  NS_IMETHOD AsLong(PRInt32 *result) { return !_to ? NS_ERROR_NULL_POINTER : _to->AsLong(result); } \
  NS_IMETHOD FromLong(PRInt32 number) { return !_to ? NS_ERROR_NULL_POINTER : _to->FromLong(number); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IPCIAddress
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IPCIADDRESS

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IPCIAddress)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* attribute short bus; */
NS_IMETHODIMP _MYCLASS_::GetBus(PRInt16 *aBus)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetBus(PRInt16 aBus)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute short device; */
NS_IMETHODIMP _MYCLASS_::GetDevice(PRInt16 *aDevice)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetDevice(PRInt16 aDevice)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute short devFunction; */
NS_IMETHODIMP _MYCLASS_::GetDevFunction(PRInt16 *aDevFunction)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetDevFunction(PRInt16 aDevFunction)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void asLong ([retval] out long result); */
NS_IMETHODIMP _MYCLASS_::AsLong(PRInt32 *result)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void fromLong (in long number); */
NS_IMETHODIMP _MYCLASS_::FromLong(PRInt32 number)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IPCIDeviceAttachment */
#define IPCIDEVICEATTACHMENT_IID_STR "91f33d6f-e621-4f70-a77e-15f0e3c714d5"

#define IPCIDEVICEATTACHMENT_IID \
  {0x91f33d6f, 0xe621, 0x4f70, \
    { 0xa7, 0x7e, 0x15, 0xf0, 0xe3, 0xc7, 0x14, 0xd5 }}

class NS_NO_VTABLE IPCIDeviceAttachment : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IPCIDEVICEATTACHMENT_IID)

  /* readonly attribute wstring name; */
  NS_IMETHOD GetName(PRUnichar * *aName) = 0;

  /* readonly attribute boolean isPhysicalDevice; */
  NS_IMETHOD GetIsPhysicalDevice(PRBool *aIsPhysicalDevice) = 0;

  /* readonly attribute long hostAddress; */
  NS_IMETHOD GetHostAddress(PRInt32 *aHostAddress) = 0;

  /* readonly attribute long guestAddress; */
  NS_IMETHOD GetGuestAddress(PRInt32 *aGuestAddress) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IPCIDEVICEATTACHMENT \
  NS_IMETHOD GetName(PRUnichar * *aName); \
  NS_IMETHOD GetIsPhysicalDevice(PRBool *aIsPhysicalDevice); \
  NS_IMETHOD GetHostAddress(PRInt32 *aHostAddress); \
  NS_IMETHOD GetGuestAddress(PRInt32 *aGuestAddress); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IPCIDEVICEATTACHMENT(_to) \
  NS_IMETHOD GetName(PRUnichar * *aName) { return _to GetName(aName); } \
  NS_IMETHOD GetIsPhysicalDevice(PRBool *aIsPhysicalDevice) { return _to GetIsPhysicalDevice(aIsPhysicalDevice); } \
  NS_IMETHOD GetHostAddress(PRInt32 *aHostAddress) { return _to GetHostAddress(aHostAddress); } \
  NS_IMETHOD GetGuestAddress(PRInt32 *aGuestAddress) { return _to GetGuestAddress(aGuestAddress); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IPCIDEVICEATTACHMENT(_to) \
  NS_IMETHOD GetName(PRUnichar * *aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
  NS_IMETHOD GetIsPhysicalDevice(PRBool *aIsPhysicalDevice) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsPhysicalDevice(aIsPhysicalDevice); } \
  NS_IMETHOD GetHostAddress(PRInt32 *aHostAddress) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHostAddress(aHostAddress); } \
  NS_IMETHOD GetGuestAddress(PRInt32 *aGuestAddress) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGuestAddress(aGuestAddress); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IPCIDeviceAttachment
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IPCIDEVICEATTACHMENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IPCIDeviceAttachment)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute wstring name; */
NS_IMETHODIMP _MYCLASS_::GetName(PRUnichar * *aName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean isPhysicalDevice; */
NS_IMETHODIMP _MYCLASS_::GetIsPhysicalDevice(PRBool *aIsPhysicalDevice)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long hostAddress; */
NS_IMETHODIMP _MYCLASS_::GetHostAddress(PRInt32 *aHostAddress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long guestAddress; */
NS_IMETHODIMP _MYCLASS_::GetGuestAddress(PRInt32 *aGuestAddress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IMachine */
#define IMACHINE_IID_STR "95565a66-622a-4ad0-4eed-9bb83c91c5be"

#define IMACHINE_IID \
  {0x95565a66, 0x622a, 0x4ad0, \
    { 0x4e, 0xed, 0x9b, 0xb8, 0x3c, 0x91, 0xc5, 0xbe }}

class NS_NO_VTABLE IMachine : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IMACHINE_IID)

  /* readonly attribute IVirtualBox parent; */
  NS_IMETHOD GetParent(IVirtualBox * *aParent) = 0;

  /* void getIcon (out unsigned long iconSize, [array, size_is (iconSize), retval] out octet icon); */
  NS_IMETHOD GetIcon(PRUint32 *iconSize, PRUint8 **icon) = 0;

  /* void setIcon (in unsigned long iconSize, [array, size_is (iconSize)] in octet icon); */
  NS_IMETHOD SetIcon(PRUint32 iconSize, PRUint8 *icon) = 0;

  /* readonly attribute boolean accessible; */
  NS_IMETHOD GetAccessible(PRBool *aAccessible) = 0;

  /* readonly attribute IVirtualBoxErrorInfo accessError; */
  NS_IMETHOD GetAccessError(IVirtualBoxErrorInfo * *aAccessError) = 0;

  /* attribute wstring name; */
  NS_IMETHOD GetName(PRUnichar * *aName) = 0;
  NS_IMETHOD SetName(const PRUnichar * aName) = 0;

  /* attribute wstring description; */
  NS_IMETHOD GetDescription(PRUnichar * *aDescription) = 0;
  NS_IMETHOD SetDescription(const PRUnichar * aDescription) = 0;

  /* readonly attribute wstring id; */
  NS_IMETHOD GetId(PRUnichar * *aId) = 0;

  /* void getGroups (out unsigned long groupsSize, [array, size_is (groupsSize), retval] out wstring groups); */
  NS_IMETHOD GetGroups(PRUint32 *groupsSize, PRUnichar ***groups) = 0;

  /* void setGroups (in unsigned long groupsSize, [array, size_is (groupsSize)] in wstring groups); */
  NS_IMETHOD SetGroups(PRUint32 groupsSize, const PRUnichar **groups) = 0;

  /* attribute wstring OSTypeId; */
  NS_IMETHOD GetOSTypeId(PRUnichar * *aOSTypeId) = 0;
  NS_IMETHOD SetOSTypeId(const PRUnichar * aOSTypeId) = 0;

  /* attribute wstring hardwareVersion; */
  NS_IMETHOD GetHardwareVersion(PRUnichar * *aHardwareVersion) = 0;
  NS_IMETHOD SetHardwareVersion(const PRUnichar * aHardwareVersion) = 0;

  /* attribute wstring hardwareUUID; */
  NS_IMETHOD GetHardwareUUID(PRUnichar * *aHardwareUUID) = 0;
  NS_IMETHOD SetHardwareUUID(const PRUnichar * aHardwareUUID) = 0;

  /* attribute unsigned long CPUCount; */
  NS_IMETHOD GetCPUCount(PRUint32 *aCPUCount) = 0;
  NS_IMETHOD SetCPUCount(PRUint32 aCPUCount) = 0;

  /* attribute boolean CPUHotPlugEnabled; */
  NS_IMETHOD GetCPUHotPlugEnabled(PRBool *aCPUHotPlugEnabled) = 0;
  NS_IMETHOD SetCPUHotPlugEnabled(PRBool aCPUHotPlugEnabled) = 0;

  /* attribute unsigned long CPUExecutionCap; */
  NS_IMETHOD GetCPUExecutionCap(PRUint32 *aCPUExecutionCap) = 0;
  NS_IMETHOD SetCPUExecutionCap(PRUint32 aCPUExecutionCap) = 0;

  /* attribute unsigned long CPUIDPortabilityLevel; */
  NS_IMETHOD GetCPUIDPortabilityLevel(PRUint32 *aCPUIDPortabilityLevel) = 0;
  NS_IMETHOD SetCPUIDPortabilityLevel(PRUint32 aCPUIDPortabilityLevel) = 0;

  /* attribute unsigned long memorySize; */
  NS_IMETHOD GetMemorySize(PRUint32 *aMemorySize) = 0;
  NS_IMETHOD SetMemorySize(PRUint32 aMemorySize) = 0;

  /* attribute unsigned long memoryBalloonSize; */
  NS_IMETHOD GetMemoryBalloonSize(PRUint32 *aMemoryBalloonSize) = 0;
  NS_IMETHOD SetMemoryBalloonSize(PRUint32 aMemoryBalloonSize) = 0;

  /* attribute boolean pageFusionEnabled; */
  NS_IMETHOD GetPageFusionEnabled(PRBool *aPageFusionEnabled) = 0;
  NS_IMETHOD SetPageFusionEnabled(PRBool aPageFusionEnabled) = 0;

  /* attribute PRUint32 graphicsControllerType; */
  NS_IMETHOD GetGraphicsControllerType(PRUint32 *aGraphicsControllerType) = 0;
  NS_IMETHOD SetGraphicsControllerType(PRUint32 aGraphicsControllerType) = 0;

  /* attribute unsigned long VRAMSize; */
  NS_IMETHOD GetVRAMSize(PRUint32 *aVRAMSize) = 0;
  NS_IMETHOD SetVRAMSize(PRUint32 aVRAMSize) = 0;

  /* attribute boolean accelerate3DEnabled; */
  NS_IMETHOD GetAccelerate3DEnabled(PRBool *aAccelerate3DEnabled) = 0;
  NS_IMETHOD SetAccelerate3DEnabled(PRBool aAccelerate3DEnabled) = 0;

  /* attribute boolean accelerate2DVideoEnabled; */
  NS_IMETHOD GetAccelerate2DVideoEnabled(PRBool *aAccelerate2DVideoEnabled) = 0;
  NS_IMETHOD SetAccelerate2DVideoEnabled(PRBool aAccelerate2DVideoEnabled) = 0;

  /* attribute unsigned long monitorCount; */
  NS_IMETHOD GetMonitorCount(PRUint32 *aMonitorCount) = 0;
  NS_IMETHOD SetMonitorCount(PRUint32 aMonitorCount) = 0;

  /* attribute boolean videoCaptureEnabled; */
  NS_IMETHOD GetVideoCaptureEnabled(PRBool *aVideoCaptureEnabled) = 0;
  NS_IMETHOD SetVideoCaptureEnabled(PRBool aVideoCaptureEnabled) = 0;

  /* void getVideoCaptureScreens (out unsigned long videoCaptureScreensSize, [array, size_is (videoCaptureScreensSize), retval] out boolean videoCaptureScreens); */
  NS_IMETHOD GetVideoCaptureScreens(PRUint32 *videoCaptureScreensSize, PRBool **videoCaptureScreens) = 0;

  /* void setVideoCaptureScreens (in unsigned long videoCaptureScreensSize, [array, size_is (videoCaptureScreensSize)] in boolean videoCaptureScreens); */
  NS_IMETHOD SetVideoCaptureScreens(PRUint32 videoCaptureScreensSize, PRBool *videoCaptureScreens) = 0;

  /* attribute wstring videoCaptureFile; */
  NS_IMETHOD GetVideoCaptureFile(PRUnichar * *aVideoCaptureFile) = 0;
  NS_IMETHOD SetVideoCaptureFile(const PRUnichar * aVideoCaptureFile) = 0;

  /* attribute unsigned long videoCaptureWidth; */
  NS_IMETHOD GetVideoCaptureWidth(PRUint32 *aVideoCaptureWidth) = 0;
  NS_IMETHOD SetVideoCaptureWidth(PRUint32 aVideoCaptureWidth) = 0;

  /* attribute unsigned long videoCaptureHeight; */
  NS_IMETHOD GetVideoCaptureHeight(PRUint32 *aVideoCaptureHeight) = 0;
  NS_IMETHOD SetVideoCaptureHeight(PRUint32 aVideoCaptureHeight) = 0;

  /* attribute unsigned long videoCaptureRate; */
  NS_IMETHOD GetVideoCaptureRate(PRUint32 *aVideoCaptureRate) = 0;
  NS_IMETHOD SetVideoCaptureRate(PRUint32 aVideoCaptureRate) = 0;

  /* attribute unsigned long videoCaptureFPS; */
  NS_IMETHOD GetVideoCaptureFPS(PRUint32 *aVideoCaptureFPS) = 0;
  NS_IMETHOD SetVideoCaptureFPS(PRUint32 aVideoCaptureFPS) = 0;

  /* attribute unsigned long videoCaptureMaxTime; */
  NS_IMETHOD GetVideoCaptureMaxTime(PRUint32 *aVideoCaptureMaxTime) = 0;
  NS_IMETHOD SetVideoCaptureMaxTime(PRUint32 aVideoCaptureMaxTime) = 0;

  /* attribute unsigned long videoCaptureMaxFileSize; */
  NS_IMETHOD GetVideoCaptureMaxFileSize(PRUint32 *aVideoCaptureMaxFileSize) = 0;
  NS_IMETHOD SetVideoCaptureMaxFileSize(PRUint32 aVideoCaptureMaxFileSize) = 0;

  /* attribute wstring videoCaptureOptions; */
  NS_IMETHOD GetVideoCaptureOptions(PRUnichar * *aVideoCaptureOptions) = 0;
  NS_IMETHOD SetVideoCaptureOptions(const PRUnichar * aVideoCaptureOptions) = 0;

  /* readonly attribute IBIOSSettings BIOSSettings; */
  NS_IMETHOD GetBIOSSettings(IBIOSSettings * *aBIOSSettings) = 0;

  /* attribute PRUint32 firmwareType; */
  NS_IMETHOD GetFirmwareType(PRUint32 *aFirmwareType) = 0;
  NS_IMETHOD SetFirmwareType(PRUint32 aFirmwareType) = 0;

  /* attribute PRUint32 pointingHIDType; */
  NS_IMETHOD GetPointingHIDType(PRUint32 *aPointingHIDType) = 0;
  NS_IMETHOD SetPointingHIDType(PRUint32 aPointingHIDType) = 0;

  /* attribute PRUint32 keyboardHIDType; */
  NS_IMETHOD GetKeyboardHIDType(PRUint32 *aKeyboardHIDType) = 0;
  NS_IMETHOD SetKeyboardHIDType(PRUint32 aKeyboardHIDType) = 0;

  /* attribute boolean HPETEnabled; */
  NS_IMETHOD GetHPETEnabled(PRBool *aHPETEnabled) = 0;
  NS_IMETHOD SetHPETEnabled(PRBool aHPETEnabled) = 0;

  /* attribute PRUint32 chipsetType; */
  NS_IMETHOD GetChipsetType(PRUint32 *aChipsetType) = 0;
  NS_IMETHOD SetChipsetType(PRUint32 aChipsetType) = 0;

  /* attribute wstring snapshotFolder; */
  NS_IMETHOD GetSnapshotFolder(PRUnichar * *aSnapshotFolder) = 0;
  NS_IMETHOD SetSnapshotFolder(const PRUnichar * aSnapshotFolder) = 0;

  /* readonly attribute IVRDEServer VRDEServer; */
  NS_IMETHOD GetVRDEServer(IVRDEServer * *aVRDEServer) = 0;

  /* attribute boolean emulatedUSBCardReaderEnabled; */
  NS_IMETHOD GetEmulatedUSBCardReaderEnabled(PRBool *aEmulatedUSBCardReaderEnabled) = 0;
  NS_IMETHOD SetEmulatedUSBCardReaderEnabled(PRBool aEmulatedUSBCardReaderEnabled) = 0;

  /* void getMediumAttachments (out unsigned long mediumAttachmentsSize, [array, size_is (mediumAttachmentsSize), retval] out IMediumAttachment mediumAttachments); */
  NS_IMETHOD GetMediumAttachments(PRUint32 *mediumAttachmentsSize, IMediumAttachment ***mediumAttachments) = 0;

  /* void getUSBControllers (out unsigned long USBControllersSize, [array, size_is (USBControllersSize), retval] out IUSBController USBControllers); */
  NS_IMETHOD GetUSBControllers(PRUint32 *USBControllersSize, IUSBController ***USBControllers) = 0;

  /* readonly attribute IUSBDeviceFilters USBDeviceFilters; */
  NS_IMETHOD GetUSBDeviceFilters(IUSBDeviceFilters * *aUSBDeviceFilters) = 0;

  /* readonly attribute IAudioAdapter audioAdapter; */
  NS_IMETHOD GetAudioAdapter(IAudioAdapter * *aAudioAdapter) = 0;

  /* void getStorageControllers (out unsigned long storageControllersSize, [array, size_is (storageControllersSize), retval] out IStorageController storageControllers); */
  NS_IMETHOD GetStorageControllers(PRUint32 *storageControllersSize, IStorageController ***storageControllers) = 0;

  /* readonly attribute wstring settingsFilePath; */
  NS_IMETHOD GetSettingsFilePath(PRUnichar * *aSettingsFilePath) = 0;

  /* readonly attribute boolean settingsModified; */
  NS_IMETHOD GetSettingsModified(PRBool *aSettingsModified) = 0;

  /* readonly attribute PRUint32 sessionState; */
  NS_IMETHOD GetSessionState(PRUint32 *aSessionState) = 0;

  /* readonly attribute wstring sessionName; */
  NS_IMETHOD GetSessionName(PRUnichar * *aSessionName) = 0;

  /* readonly attribute unsigned long sessionPID; */
  NS_IMETHOD GetSessionPID(PRUint32 *aSessionPID) = 0;

  /* readonly attribute PRUint32 state; */
  NS_IMETHOD GetState(PRUint32 *aState) = 0;

  /* readonly attribute long long lastStateChange; */
  NS_IMETHOD GetLastStateChange(PRInt64 *aLastStateChange) = 0;

  /* readonly attribute wstring stateFilePath; */
  NS_IMETHOD GetStateFilePath(PRUnichar * *aStateFilePath) = 0;

  /* readonly attribute wstring logFolder; */
  NS_IMETHOD GetLogFolder(PRUnichar * *aLogFolder) = 0;

  /* readonly attribute ISnapshot currentSnapshot; */
  NS_IMETHOD GetCurrentSnapshot(ISnapshot * *aCurrentSnapshot) = 0;

  /* readonly attribute unsigned long snapshotCount; */
  NS_IMETHOD GetSnapshotCount(PRUint32 *aSnapshotCount) = 0;

  /* readonly attribute boolean currentStateModified; */
  NS_IMETHOD GetCurrentStateModified(PRBool *aCurrentStateModified) = 0;

  /* void getSharedFolders (out unsigned long sharedFoldersSize, [array, size_is (sharedFoldersSize), retval] out ISharedFolder sharedFolders); */
  NS_IMETHOD GetSharedFolders(PRUint32 *sharedFoldersSize, ISharedFolder ***sharedFolders) = 0;

  /* attribute PRUint32 clipboardMode; */
  NS_IMETHOD GetClipboardMode(PRUint32 *aClipboardMode) = 0;
  NS_IMETHOD SetClipboardMode(PRUint32 aClipboardMode) = 0;

  /* attribute PRUint32 dnDMode; */
  NS_IMETHOD GetDnDMode(PRUint32 *aDnDMode) = 0;
  NS_IMETHOD SetDnDMode(PRUint32 aDnDMode) = 0;

  /* attribute boolean teleporterEnabled; */
  NS_IMETHOD GetTeleporterEnabled(PRBool *aTeleporterEnabled) = 0;
  NS_IMETHOD SetTeleporterEnabled(PRBool aTeleporterEnabled) = 0;

  /* attribute unsigned long teleporterPort; */
  NS_IMETHOD GetTeleporterPort(PRUint32 *aTeleporterPort) = 0;
  NS_IMETHOD SetTeleporterPort(PRUint32 aTeleporterPort) = 0;

  /* attribute wstring teleporterAddress; */
  NS_IMETHOD GetTeleporterAddress(PRUnichar * *aTeleporterAddress) = 0;
  NS_IMETHOD SetTeleporterAddress(const PRUnichar * aTeleporterAddress) = 0;

  /* attribute wstring teleporterPassword; */
  NS_IMETHOD GetTeleporterPassword(PRUnichar * *aTeleporterPassword) = 0;
  NS_IMETHOD SetTeleporterPassword(const PRUnichar * aTeleporterPassword) = 0;

  /* attribute PRUint32 paravirtProvider; */
  NS_IMETHOD GetParavirtProvider(PRUint32 *aParavirtProvider) = 0;
  NS_IMETHOD SetParavirtProvider(PRUint32 aParavirtProvider) = 0;

  /* attribute PRUint32 faultToleranceState; */
  NS_IMETHOD GetFaultToleranceState(PRUint32 *aFaultToleranceState) = 0;
  NS_IMETHOD SetFaultToleranceState(PRUint32 aFaultToleranceState) = 0;

  /* attribute unsigned long faultTolerancePort; */
  NS_IMETHOD GetFaultTolerancePort(PRUint32 *aFaultTolerancePort) = 0;
  NS_IMETHOD SetFaultTolerancePort(PRUint32 aFaultTolerancePort) = 0;

  /* attribute wstring faultToleranceAddress; */
  NS_IMETHOD GetFaultToleranceAddress(PRUnichar * *aFaultToleranceAddress) = 0;
  NS_IMETHOD SetFaultToleranceAddress(const PRUnichar * aFaultToleranceAddress) = 0;

  /* attribute wstring faultTolerancePassword; */
  NS_IMETHOD GetFaultTolerancePassword(PRUnichar * *aFaultTolerancePassword) = 0;
  NS_IMETHOD SetFaultTolerancePassword(const PRUnichar * aFaultTolerancePassword) = 0;

  /* attribute unsigned long faultToleranceSyncInterval; */
  NS_IMETHOD GetFaultToleranceSyncInterval(PRUint32 *aFaultToleranceSyncInterval) = 0;
  NS_IMETHOD SetFaultToleranceSyncInterval(PRUint32 aFaultToleranceSyncInterval) = 0;

  /* attribute boolean RTCUseUTC; */
  NS_IMETHOD GetRTCUseUTC(PRBool *aRTCUseUTC) = 0;
  NS_IMETHOD SetRTCUseUTC(PRBool aRTCUseUTC) = 0;

  /* attribute boolean IOCacheEnabled; */
  NS_IMETHOD GetIOCacheEnabled(PRBool *aIOCacheEnabled) = 0;
  NS_IMETHOD SetIOCacheEnabled(PRBool aIOCacheEnabled) = 0;

  /* attribute unsigned long IOCacheSize; */
  NS_IMETHOD GetIOCacheSize(PRUint32 *aIOCacheSize) = 0;
  NS_IMETHOD SetIOCacheSize(PRUint32 aIOCacheSize) = 0;

  /* void getPCIDeviceAssignments (out unsigned long PCIDeviceAssignmentsSize, [array, size_is (PCIDeviceAssignmentsSize), retval] out IPCIDeviceAttachment PCIDeviceAssignments); */
  NS_IMETHOD GetPCIDeviceAssignments(PRUint32 *PCIDeviceAssignmentsSize, IPCIDeviceAttachment ***PCIDeviceAssignments) = 0;

  /* readonly attribute IBandwidthControl bandwidthControl; */
  NS_IMETHOD GetBandwidthControl(IBandwidthControl * *aBandwidthControl) = 0;

  /* attribute boolean tracingEnabled; */
  NS_IMETHOD GetTracingEnabled(PRBool *aTracingEnabled) = 0;
  NS_IMETHOD SetTracingEnabled(PRBool aTracingEnabled) = 0;

  /* attribute wstring tracingConfig; */
  NS_IMETHOD GetTracingConfig(PRUnichar * *aTracingConfig) = 0;
  NS_IMETHOD SetTracingConfig(const PRUnichar * aTracingConfig) = 0;

  /* attribute boolean allowTracingToAccessVM; */
  NS_IMETHOD GetAllowTracingToAccessVM(PRBool *aAllowTracingToAccessVM) = 0;
  NS_IMETHOD SetAllowTracingToAccessVM(PRBool aAllowTracingToAccessVM) = 0;

  /* attribute boolean autostartEnabled; */
  NS_IMETHOD GetAutostartEnabled(PRBool *aAutostartEnabled) = 0;
  NS_IMETHOD SetAutostartEnabled(PRBool aAutostartEnabled) = 0;

  /* attribute unsigned long autostartDelay; */
  NS_IMETHOD GetAutostartDelay(PRUint32 *aAutostartDelay) = 0;
  NS_IMETHOD SetAutostartDelay(PRUint32 aAutostartDelay) = 0;

  /* attribute PRUint32 autostopType; */
  NS_IMETHOD GetAutostopType(PRUint32 *aAutostopType) = 0;
  NS_IMETHOD SetAutostopType(PRUint32 aAutostopType) = 0;

  /* attribute wstring defaultFrontend; */
  NS_IMETHOD GetDefaultFrontend(PRUnichar * *aDefaultFrontend) = 0;
  NS_IMETHOD SetDefaultFrontend(const PRUnichar * aDefaultFrontend) = 0;

  /* readonly attribute boolean USBProxyAvailable; */
  NS_IMETHOD GetUSBProxyAvailable(PRBool *aUSBProxyAvailable) = 0;

  /* attribute wstring VMProcessPriority; */
  NS_IMETHOD GetVMProcessPriority(PRUnichar * *aVMProcessPriority) = 0;
  NS_IMETHOD SetVMProcessPriority(const PRUnichar * aVMProcessPriority) = 0;

  /* attribute wstring paravirtDebug; */
  NS_IMETHOD GetParavirtDebug(PRUnichar * *aParavirtDebug) = 0;
  NS_IMETHOD SetParavirtDebug(const PRUnichar * aParavirtDebug) = 0;

  /* attribute wstring CPUProfile; */
  NS_IMETHOD GetCPUProfile(PRUnichar * *aCPUProfile) = 0;
  NS_IMETHOD SetCPUProfile(const PRUnichar * aCPUProfile) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IMachine; */
  NS_IMETHOD GetInternalAndReservedAttribute1IMachine(PRUint32 *aInternalAndReservedAttribute1IMachine) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IMachine; */
  NS_IMETHOD GetInternalAndReservedAttribute2IMachine(PRUint32 *aInternalAndReservedAttribute2IMachine) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IMachine; */
  NS_IMETHOD GetInternalAndReservedAttribute3IMachine(PRUint32 *aInternalAndReservedAttribute3IMachine) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IMachine; */
  NS_IMETHOD GetInternalAndReservedAttribute4IMachine(PRUint32 *aInternalAndReservedAttribute4IMachine) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IMachine; */
  NS_IMETHOD GetInternalAndReservedAttribute5IMachine(PRUint32 *aInternalAndReservedAttribute5IMachine) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IMachine; */
  NS_IMETHOD GetInternalAndReservedAttribute6IMachine(PRUint32 *aInternalAndReservedAttribute6IMachine) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IMachine; */
  NS_IMETHOD GetInternalAndReservedAttribute7IMachine(PRUint32 *aInternalAndReservedAttribute7IMachine) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IMachine; */
  NS_IMETHOD GetInternalAndReservedAttribute8IMachine(PRUint32 *aInternalAndReservedAttribute8IMachine) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute9IMachine; */
  NS_IMETHOD GetInternalAndReservedAttribute9IMachine(PRUint32 *aInternalAndReservedAttribute9IMachine) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute10IMachine; */
  NS_IMETHOD GetInternalAndReservedAttribute10IMachine(PRUint32 *aInternalAndReservedAttribute10IMachine) = 0;

  /* void lockMachine (in ISession session, in PRUint32 lockType); */
  NS_IMETHOD LockMachine(ISession *session, PRUint32 lockType) = 0;

  /* void launchVMProcess (in ISession session, in wstring name, in wstring environment, [retval] out IProgress progress); */
  NS_IMETHOD LaunchVMProcess(ISession *session, const PRUnichar *name, const PRUnichar *environment, IProgress **progress) = 0;

  /* void setBootOrder (in unsigned long position, in PRUint32 device); */
  NS_IMETHOD SetBootOrder(PRUint32 position, PRUint32 device) = 0;

  /* void getBootOrder (in unsigned long position, [retval] out PRUint32 device); */
  NS_IMETHOD GetBootOrder(PRUint32 position, PRUint32 *device) = 0;

  /* void attachDevice (in wstring name, in long controllerPort, in long device, in PRUint32 type, in IMedium medium); */
  NS_IMETHOD AttachDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRUint32 type, IMedium *medium) = 0;

  /* void attachDeviceWithoutMedium (in wstring name, in long controllerPort, in long device, in PRUint32 type); */
  NS_IMETHOD AttachDeviceWithoutMedium(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRUint32 type) = 0;

  /* void detachDevice (in wstring name, in long controllerPort, in long device); */
  NS_IMETHOD DetachDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device) = 0;

  /* void passthroughDevice (in wstring name, in long controllerPort, in long device, in boolean passthrough); */
  NS_IMETHOD PassthroughDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRBool passthrough) = 0;

  /* void temporaryEjectDevice (in wstring name, in long controllerPort, in long device, in boolean temporaryEject); */
  NS_IMETHOD TemporaryEjectDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRBool temporaryEject) = 0;

  /* void nonRotationalDevice (in wstring name, in long controllerPort, in long device, in boolean nonRotational); */
  NS_IMETHOD NonRotationalDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRBool nonRotational) = 0;

  /* void setAutoDiscardForDevice (in wstring name, in long controllerPort, in long device, in boolean discard); */
  NS_IMETHOD SetAutoDiscardForDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRBool discard) = 0;

  /* void setHotPluggableForDevice (in wstring name, in long controllerPort, in long device, in boolean hotPluggable); */
  NS_IMETHOD SetHotPluggableForDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRBool hotPluggable) = 0;

  /* void setBandwidthGroupForDevice (in wstring name, in long controllerPort, in long device, in IBandwidthGroup bandwidthGroup); */
  NS_IMETHOD SetBandwidthGroupForDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, IBandwidthGroup *bandwidthGroup) = 0;

  /* void setNoBandwidthGroupForDevice (in wstring name, in long controllerPort, in long device); */
  NS_IMETHOD SetNoBandwidthGroupForDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device) = 0;

  /* void unmountMedium (in wstring name, in long controllerPort, in long device, in boolean force); */
  NS_IMETHOD UnmountMedium(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRBool force) = 0;

  /* void mountMedium (in wstring name, in long controllerPort, in long device, in IMedium medium, in boolean force); */
  NS_IMETHOD MountMedium(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, IMedium *medium, PRBool force) = 0;

  /* void getMedium (in wstring name, in long controllerPort, in long device, [retval] out IMedium medium); */
  NS_IMETHOD GetMedium(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, IMedium **medium) = 0;

  /* void getMediumAttachmentsOfController (in wstring name, out unsigned long mediumAttachmentsSize, [array, size_is (mediumAttachmentsSize), retval] out IMediumAttachment mediumAttachments); */
  NS_IMETHOD GetMediumAttachmentsOfController(const PRUnichar *name, PRUint32 *mediumAttachmentsSize, IMediumAttachment ***mediumAttachments) = 0;

  /* void getMediumAttachment (in wstring name, in long controllerPort, in long device, [retval] out IMediumAttachment attachment); */
  NS_IMETHOD GetMediumAttachment(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, IMediumAttachment **attachment) = 0;

  /* void attachHostPCIDevice (in long hostAddress, in long desiredGuestAddress, in boolean tryToUnbind); */
  NS_IMETHOD AttachHostPCIDevice(PRInt32 hostAddress, PRInt32 desiredGuestAddress, PRBool tryToUnbind) = 0;

  /* void detachHostPCIDevice (in long hostAddress); */
  NS_IMETHOD DetachHostPCIDevice(PRInt32 hostAddress) = 0;

  /* void getNetworkAdapter (in unsigned long slot, [retval] out INetworkAdapter adapter); */
  NS_IMETHOD GetNetworkAdapter(PRUint32 slot, INetworkAdapter **adapter) = 0;

  /* void addStorageController (in wstring name, in PRUint32 connectionType, [retval] out IStorageController controller); */
  NS_IMETHOD AddStorageController(const PRUnichar *name, PRUint32 connectionType, IStorageController **controller) = 0;

  /* void getStorageControllerByName (in wstring name, [retval] out IStorageController storageController); */
  NS_IMETHOD GetStorageControllerByName(const PRUnichar *name, IStorageController **storageController) = 0;

  /* void getStorageControllerByInstance (in PRUint32 connectionType, in unsigned long instance, [retval] out IStorageController storageController); */
  NS_IMETHOD GetStorageControllerByInstance(PRUint32 connectionType, PRUint32 instance, IStorageController **storageController) = 0;

  /* void removeStorageController (in wstring name); */
  NS_IMETHOD RemoveStorageController(const PRUnichar *name) = 0;

  /* void setStorageControllerBootable (in wstring name, in boolean bootable); */
  NS_IMETHOD SetStorageControllerBootable(const PRUnichar *name, PRBool bootable) = 0;

  /* void addUSBController (in wstring name, in PRUint32 type, [retval] out IUSBController controller); */
  NS_IMETHOD AddUSBController(const PRUnichar *name, PRUint32 type, IUSBController **controller) = 0;

  /* void removeUSBController (in wstring name); */
  NS_IMETHOD RemoveUSBController(const PRUnichar *name) = 0;

  /* void getUSBControllerByName (in wstring name, [retval] out IUSBController controller); */
  NS_IMETHOD GetUSBControllerByName(const PRUnichar *name, IUSBController **controller) = 0;

  /* void getUSBControllerCountByType (in PRUint32 type, [retval] out unsigned long controllers); */
  NS_IMETHOD GetUSBControllerCountByType(PRUint32 type, PRUint32 *controllers) = 0;

  /* void getSerialPort (in unsigned long slot, [retval] out ISerialPort port); */
  NS_IMETHOD GetSerialPort(PRUint32 slot, ISerialPort **port) = 0;

  /* void getParallelPort (in unsigned long slot, [retval] out IParallelPort port); */
  NS_IMETHOD GetParallelPort(PRUint32 slot, IParallelPort **port) = 0;

  /* void getExtraDataKeys (out unsigned long keysSize, [array, size_is (keysSize), retval] out wstring keys); */
  NS_IMETHOD GetExtraDataKeys(PRUint32 *keysSize, PRUnichar ***keys) = 0;

  /* void getExtraData (in wstring key, [retval] out wstring value); */
  NS_IMETHOD GetExtraData(const PRUnichar *key, PRUnichar **value) = 0;

  /* void setExtraData (in wstring key, in wstring value); */
  NS_IMETHOD SetExtraData(const PRUnichar *key, const PRUnichar *value) = 0;

  /* void getCPUProperty (in PRUint32 property, [retval] out boolean value); */
  NS_IMETHOD GetCPUProperty(PRUint32 property, PRBool *value) = 0;

  /* void setCPUProperty (in PRUint32 property, in boolean value); */
  NS_IMETHOD SetCPUProperty(PRUint32 property, PRBool value) = 0;

  /* void getCPUIDLeaf (in unsigned long id, out unsigned long valEax, out unsigned long valEbx, out unsigned long valEcx, out unsigned long valEdx); */
  NS_IMETHOD GetCPUIDLeaf(PRUint32 id, PRUint32 *valEax, PRUint32 *valEbx, PRUint32 *valEcx, PRUint32 *valEdx) = 0;

  /* void setCPUIDLeaf (in unsigned long id, in unsigned long valEax, in unsigned long valEbx, in unsigned long valEcx, in unsigned long valEdx); */
  NS_IMETHOD SetCPUIDLeaf(PRUint32 id, PRUint32 valEax, PRUint32 valEbx, PRUint32 valEcx, PRUint32 valEdx) = 0;

  /* void removeCPUIDLeaf (in unsigned long id); */
  NS_IMETHOD RemoveCPUIDLeaf(PRUint32 id) = 0;

  /* void removeAllCPUIDLeaves (); */
  NS_IMETHOD RemoveAllCPUIDLeaves(void) = 0;

  /* void getHWVirtExProperty (in PRUint32 property, [retval] out boolean value); */
  NS_IMETHOD GetHWVirtExProperty(PRUint32 property, PRBool *value) = 0;

  /* void setHWVirtExProperty (in PRUint32 property, in boolean value); */
  NS_IMETHOD SetHWVirtExProperty(PRUint32 property, PRBool value) = 0;

  /* void setSettingsFilePath (in wstring settingsFilePath, [retval] out IProgress progress); */
  NS_IMETHOD SetSettingsFilePath(const PRUnichar *settingsFilePath, IProgress **progress) = 0;

  /* void saveSettings (); */
  NS_IMETHOD SaveSettings(void) = 0;

  /* void discardSettings (); */
  NS_IMETHOD DiscardSettings(void) = 0;

  /* void unregister (in PRUint32 cleanupMode, out unsigned long mediaSize, [array, size_is (mediaSize), retval] out IMedium media); */
  NS_IMETHOD Unregister(PRUint32 cleanupMode, PRUint32 *mediaSize, IMedium ***media) = 0;

  /* void deleteConfig (in unsigned long mediaSize, [array, size_is (mediaSize)] in IMedium media, [retval] out IProgress progress); */
  NS_IMETHOD DeleteConfig(PRUint32 mediaSize, IMedium **media, IProgress **progress) = 0;

  /* void exportTo (in IAppliance appliance, in wstring location, [retval] out IVirtualSystemDescription description); */
  NS_IMETHOD ExportTo(IAppliance *appliance, const PRUnichar *location, IVirtualSystemDescription **description) = 0;

  /* void findSnapshot (in wstring nameOrId, [retval] out ISnapshot snapshot); */
  NS_IMETHOD FindSnapshot(const PRUnichar *nameOrId, ISnapshot **snapshot) = 0;

  /* void createSharedFolder (in wstring name, in wstring hostPath, in boolean writable, in boolean automount); */
  NS_IMETHOD CreateSharedFolder(const PRUnichar *name, const PRUnichar *hostPath, PRBool writable, PRBool automount) = 0;

  /* void removeSharedFolder (in wstring name); */
  NS_IMETHOD RemoveSharedFolder(const PRUnichar *name) = 0;

  /* void canShowConsoleWindow ([retval] out boolean canShow); */
  NS_IMETHOD CanShowConsoleWindow(PRBool *canShow) = 0;

  /* void showConsoleWindow ([retval] out long long winId); */
  NS_IMETHOD ShowConsoleWindow(PRInt64 *winId) = 0;

  /* void getGuestProperty (in wstring name, out wstring value, out long long timestamp, out wstring flags); */
  NS_IMETHOD GetGuestProperty(const PRUnichar *name, PRUnichar **value, PRInt64 *timestamp, PRUnichar **flags) = 0;

  /* void getGuestPropertyValue (in wstring property, [retval] out wstring value); */
  NS_IMETHOD GetGuestPropertyValue(const PRUnichar *property, PRUnichar **value) = 0;

  /* void getGuestPropertyTimestamp (in wstring property, [retval] out long long value); */
  NS_IMETHOD GetGuestPropertyTimestamp(const PRUnichar *property, PRInt64 *value) = 0;

  /* void setGuestProperty (in wstring property, in wstring value, in wstring flags); */
  NS_IMETHOD SetGuestProperty(const PRUnichar *property, const PRUnichar *value, const PRUnichar *flags) = 0;

  /* void setGuestPropertyValue (in wstring property, in wstring value); */
  NS_IMETHOD SetGuestPropertyValue(const PRUnichar *property, const PRUnichar *value) = 0;

  /* void deleteGuestProperty (in wstring name); */
  NS_IMETHOD DeleteGuestProperty(const PRUnichar *name) = 0;

  /* 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); */
  NS_IMETHOD EnumerateGuestProperties(const PRUnichar *patterns, PRUint32 *namesSize, PRUnichar ***names, PRUint32 *valuesSize, PRUnichar ***values, PRUint32 *timestampsSize, PRInt64 **timestamps, PRUint32 *flagsSize, PRUnichar ***flags) = 0;

  /* 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); */
  NS_IMETHOD QuerySavedGuestScreenInfo(PRUint32 screenId, PRUint32 *originX, PRUint32 *originY, PRUint32 *width, PRUint32 *height, PRBool *enabled) = 0;

  /* void readSavedThumbnailToArray (in unsigned long screenId, in PRUint32 bitmapFormat, out unsigned long width, out unsigned long height, out unsigned long dataSize, [array, size_is (dataSize), retval] out octet data); */
  NS_IMETHOD ReadSavedThumbnailToArray(PRUint32 screenId, PRUint32 bitmapFormat, PRUint32 *width, PRUint32 *height, PRUint32 *dataSize, PRUint8 **data) = 0;

  /* void querySavedScreenshotInfo (in unsigned long screenId, out unsigned long width, out unsigned long height, out unsigned long bitmapFormatsSize, [array, size_is (bitmapFormatsSize), retval] out PRUint32 bitmapFormats); */
  NS_IMETHOD QuerySavedScreenshotInfo(PRUint32 screenId, PRUint32 *width, PRUint32 *height, PRUint32 *bitmapFormatsSize, PRUint32 **bitmapFormats) = 0;

  /* void readSavedScreenshotToArray (in unsigned long screenId, in PRUint32 bitmapFormat, out unsigned long width, out unsigned long height, out unsigned long dataSize, [array, size_is (dataSize), retval] out octet data); */
  NS_IMETHOD ReadSavedScreenshotToArray(PRUint32 screenId, PRUint32 bitmapFormat, PRUint32 *width, PRUint32 *height, PRUint32 *dataSize, PRUint8 **data) = 0;

  /* void hotPlugCPU (in unsigned long cpu); */
  NS_IMETHOD HotPlugCPU(PRUint32 cpu) = 0;

  /* void hotUnplugCPU (in unsigned long cpu); */
  NS_IMETHOD HotUnplugCPU(PRUint32 cpu) = 0;

  /* void getCPUStatus (in unsigned long cpu, [retval] out boolean attached); */
  NS_IMETHOD GetCPUStatus(PRUint32 cpu, PRBool *attached) = 0;

  /* void getEffectiveParavirtProvider ([retval] out PRUint32 paravirtProvider); */
  NS_IMETHOD GetEffectiveParavirtProvider(PRUint32 *paravirtProvider) = 0;

  /* void queryLogFilename (in unsigned long idx, [retval] out wstring filename); */
  NS_IMETHOD QueryLogFilename(PRUint32 idx, PRUnichar **filename) = 0;

  /* 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); */
  NS_IMETHOD ReadLog(PRUint32 idx, PRInt64 offset, PRInt64 size, PRUint32 *dataSize, PRUint8 **data) = 0;

  /* void cloneTo (in IMachine target, in PRUint32 mode, in unsigned long optionsSize, [array, size_is (optionsSize)] in PRUint32 options, [retval] out IProgress progress); */
  NS_IMETHOD CloneTo(IMachine *target, PRUint32 mode, PRUint32 optionsSize, PRUint32 *options, IProgress **progress) = 0;

  /* void saveState ([retval] out IProgress progress); */
  NS_IMETHOD SaveState(IProgress **progress) = 0;

  /* void adoptSavedState (in wstring savedStateFile); */
  NS_IMETHOD AdoptSavedState(const PRUnichar *savedStateFile) = 0;

  /* void discardSavedState (in boolean fRemoveFile); */
  NS_IMETHOD DiscardSavedState(PRBool fRemoveFile) = 0;

  /* void takeSnapshot (in wstring name, in wstring description, in boolean pause, out wstring id, [retval] out IProgress progress); */
  NS_IMETHOD TakeSnapshot(const PRUnichar *name, const PRUnichar *description, PRBool pause, PRUnichar **id, IProgress **progress) = 0;

  /* void deleteSnapshot (in wstring id, [retval] out IProgress progress); */
  NS_IMETHOD DeleteSnapshot(const PRUnichar *id, IProgress **progress) = 0;

  /* void deleteSnapshotAndAllChildren (in wstring id, [retval] out IProgress progress); */
  NS_IMETHOD DeleteSnapshotAndAllChildren(const PRUnichar *id, IProgress **progress) = 0;

  /* void deleteSnapshotRange (in wstring startId, in wstring endId, [retval] out IProgress progress); */
  NS_IMETHOD DeleteSnapshotRange(const PRUnichar *startId, const PRUnichar *endId, IProgress **progress) = 0;

  /* void restoreSnapshot (in ISnapshot snapshot, [retval] out IProgress progress); */
  NS_IMETHOD RestoreSnapshot(ISnapshot *snapshot, IProgress **progress) = 0;

  /* void applyDefaults (in wstring flags); */
  NS_IMETHOD ApplyDefaults(const PRUnichar *flags) = 0;

  /* void InternalAndReservedMethod1IMachine (); */
  NS_IMETHOD InternalAndReservedMethod1IMachine(void) = 0;

  /* void InternalAndReservedMethod2IMachine (); */
  NS_IMETHOD InternalAndReservedMethod2IMachine(void) = 0;

  /* void InternalAndReservedMethod3IMachine (); */
  NS_IMETHOD InternalAndReservedMethod3IMachine(void) = 0;

  /* void InternalAndReservedMethod4IMachine (); */
  NS_IMETHOD InternalAndReservedMethod4IMachine(void) = 0;

  /* void InternalAndReservedMethod5IMachine (); */
  NS_IMETHOD InternalAndReservedMethod5IMachine(void) = 0;

  /* void InternalAndReservedMethod6IMachine (); */
  NS_IMETHOD InternalAndReservedMethod6IMachine(void) = 0;

  /* void InternalAndReservedMethod7IMachine (); */
  NS_IMETHOD InternalAndReservedMethod7IMachine(void) = 0;

  /* void InternalAndReservedMethod8IMachine (); */
  NS_IMETHOD InternalAndReservedMethod8IMachine(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IMACHINE \
  NS_IMETHOD GetParent(IVirtualBox * *aParent); \
  NS_IMETHOD GetIcon(PRUint32 *iconSize, PRUint8 **icon); \
  NS_IMETHOD SetIcon(PRUint32 iconSize, PRUint8 *icon); \
  NS_IMETHOD GetAccessible(PRBool *aAccessible); \
  NS_IMETHOD GetAccessError(IVirtualBoxErrorInfo * *aAccessError); \
  NS_IMETHOD GetName(PRUnichar * *aName); \
  NS_IMETHOD SetName(const PRUnichar * aName); \
  NS_IMETHOD GetDescription(PRUnichar * *aDescription); \
  NS_IMETHOD SetDescription(const PRUnichar * aDescription); \
  NS_IMETHOD GetId(PRUnichar * *aId); \
  NS_IMETHOD GetGroups(PRUint32 *groupsSize, PRUnichar ***groups); \
  NS_IMETHOD SetGroups(PRUint32 groupsSize, const PRUnichar **groups); \
  NS_IMETHOD GetOSTypeId(PRUnichar * *aOSTypeId); \
  NS_IMETHOD SetOSTypeId(const PRUnichar * aOSTypeId); \
  NS_IMETHOD GetHardwareVersion(PRUnichar * *aHardwareVersion); \
  NS_IMETHOD SetHardwareVersion(const PRUnichar * aHardwareVersion); \
  NS_IMETHOD GetHardwareUUID(PRUnichar * *aHardwareUUID); \
  NS_IMETHOD SetHardwareUUID(const PRUnichar * aHardwareUUID); \
  NS_IMETHOD GetCPUCount(PRUint32 *aCPUCount); \
  NS_IMETHOD SetCPUCount(PRUint32 aCPUCount); \
  NS_IMETHOD GetCPUHotPlugEnabled(PRBool *aCPUHotPlugEnabled); \
  NS_IMETHOD SetCPUHotPlugEnabled(PRBool aCPUHotPlugEnabled); \
  NS_IMETHOD GetCPUExecutionCap(PRUint32 *aCPUExecutionCap); \
  NS_IMETHOD SetCPUExecutionCap(PRUint32 aCPUExecutionCap); \
  NS_IMETHOD GetCPUIDPortabilityLevel(PRUint32 *aCPUIDPortabilityLevel); \
  NS_IMETHOD SetCPUIDPortabilityLevel(PRUint32 aCPUIDPortabilityLevel); \
  NS_IMETHOD GetMemorySize(PRUint32 *aMemorySize); \
  NS_IMETHOD SetMemorySize(PRUint32 aMemorySize); \
  NS_IMETHOD GetMemoryBalloonSize(PRUint32 *aMemoryBalloonSize); \
  NS_IMETHOD SetMemoryBalloonSize(PRUint32 aMemoryBalloonSize); \
  NS_IMETHOD GetPageFusionEnabled(PRBool *aPageFusionEnabled); \
  NS_IMETHOD SetPageFusionEnabled(PRBool aPageFusionEnabled); \
  NS_IMETHOD GetGraphicsControllerType(PRUint32 *aGraphicsControllerType); \
  NS_IMETHOD SetGraphicsControllerType(PRUint32 aGraphicsControllerType); \
  NS_IMETHOD GetVRAMSize(PRUint32 *aVRAMSize); \
  NS_IMETHOD SetVRAMSize(PRUint32 aVRAMSize); \
  NS_IMETHOD GetAccelerate3DEnabled(PRBool *aAccelerate3DEnabled); \
  NS_IMETHOD SetAccelerate3DEnabled(PRBool aAccelerate3DEnabled); \
  NS_IMETHOD GetAccelerate2DVideoEnabled(PRBool *aAccelerate2DVideoEnabled); \
  NS_IMETHOD SetAccelerate2DVideoEnabled(PRBool aAccelerate2DVideoEnabled); \
  NS_IMETHOD GetMonitorCount(PRUint32 *aMonitorCount); \
  NS_IMETHOD SetMonitorCount(PRUint32 aMonitorCount); \
  NS_IMETHOD GetVideoCaptureEnabled(PRBool *aVideoCaptureEnabled); \
  NS_IMETHOD SetVideoCaptureEnabled(PRBool aVideoCaptureEnabled); \
  NS_IMETHOD GetVideoCaptureScreens(PRUint32 *videoCaptureScreensSize, PRBool **videoCaptureScreens); \
  NS_IMETHOD SetVideoCaptureScreens(PRUint32 videoCaptureScreensSize, PRBool *videoCaptureScreens); \
  NS_IMETHOD GetVideoCaptureFile(PRUnichar * *aVideoCaptureFile); \
  NS_IMETHOD SetVideoCaptureFile(const PRUnichar * aVideoCaptureFile); \
  NS_IMETHOD GetVideoCaptureWidth(PRUint32 *aVideoCaptureWidth); \
  NS_IMETHOD SetVideoCaptureWidth(PRUint32 aVideoCaptureWidth); \
  NS_IMETHOD GetVideoCaptureHeight(PRUint32 *aVideoCaptureHeight); \
  NS_IMETHOD SetVideoCaptureHeight(PRUint32 aVideoCaptureHeight); \
  NS_IMETHOD GetVideoCaptureRate(PRUint32 *aVideoCaptureRate); \
  NS_IMETHOD SetVideoCaptureRate(PRUint32 aVideoCaptureRate); \
  NS_IMETHOD GetVideoCaptureFPS(PRUint32 *aVideoCaptureFPS); \
  NS_IMETHOD SetVideoCaptureFPS(PRUint32 aVideoCaptureFPS); \
  NS_IMETHOD GetVideoCaptureMaxTime(PRUint32 *aVideoCaptureMaxTime); \
  NS_IMETHOD SetVideoCaptureMaxTime(PRUint32 aVideoCaptureMaxTime); \
  NS_IMETHOD GetVideoCaptureMaxFileSize(PRUint32 *aVideoCaptureMaxFileSize); \
  NS_IMETHOD SetVideoCaptureMaxFileSize(PRUint32 aVideoCaptureMaxFileSize); \
  NS_IMETHOD GetVideoCaptureOptions(PRUnichar * *aVideoCaptureOptions); \
  NS_IMETHOD SetVideoCaptureOptions(const PRUnichar * aVideoCaptureOptions); \
  NS_IMETHOD GetBIOSSettings(IBIOSSettings * *aBIOSSettings); \
  NS_IMETHOD GetFirmwareType(PRUint32 *aFirmwareType); \
  NS_IMETHOD SetFirmwareType(PRUint32 aFirmwareType); \
  NS_IMETHOD GetPointingHIDType(PRUint32 *aPointingHIDType); \
  NS_IMETHOD SetPointingHIDType(PRUint32 aPointingHIDType); \
  NS_IMETHOD GetKeyboardHIDType(PRUint32 *aKeyboardHIDType); \
  NS_IMETHOD SetKeyboardHIDType(PRUint32 aKeyboardHIDType); \
  NS_IMETHOD GetHPETEnabled(PRBool *aHPETEnabled); \
  NS_IMETHOD SetHPETEnabled(PRBool aHPETEnabled); \
  NS_IMETHOD GetChipsetType(PRUint32 *aChipsetType); \
  NS_IMETHOD SetChipsetType(PRUint32 aChipsetType); \
  NS_IMETHOD GetSnapshotFolder(PRUnichar * *aSnapshotFolder); \
  NS_IMETHOD SetSnapshotFolder(const PRUnichar * aSnapshotFolder); \
  NS_IMETHOD GetVRDEServer(IVRDEServer * *aVRDEServer); \
  NS_IMETHOD GetEmulatedUSBCardReaderEnabled(PRBool *aEmulatedUSBCardReaderEnabled); \
  NS_IMETHOD SetEmulatedUSBCardReaderEnabled(PRBool aEmulatedUSBCardReaderEnabled); \
  NS_IMETHOD GetMediumAttachments(PRUint32 *mediumAttachmentsSize, IMediumAttachment ***mediumAttachments); \
  NS_IMETHOD GetUSBControllers(PRUint32 *USBControllersSize, IUSBController ***USBControllers); \
  NS_IMETHOD GetUSBDeviceFilters(IUSBDeviceFilters * *aUSBDeviceFilters); \
  NS_IMETHOD GetAudioAdapter(IAudioAdapter * *aAudioAdapter); \
  NS_IMETHOD GetStorageControllers(PRUint32 *storageControllersSize, IStorageController ***storageControllers); \
  NS_IMETHOD GetSettingsFilePath(PRUnichar * *aSettingsFilePath); \
  NS_IMETHOD GetSettingsModified(PRBool *aSettingsModified); \
  NS_IMETHOD GetSessionState(PRUint32 *aSessionState); \
  NS_IMETHOD GetSessionName(PRUnichar * *aSessionName); \
  NS_IMETHOD GetSessionPID(PRUint32 *aSessionPID); \
  NS_IMETHOD GetState(PRUint32 *aState); \
  NS_IMETHOD GetLastStateChange(PRInt64 *aLastStateChange); \
  NS_IMETHOD GetStateFilePath(PRUnichar * *aStateFilePath); \
  NS_IMETHOD GetLogFolder(PRUnichar * *aLogFolder); \
  NS_IMETHOD GetCurrentSnapshot(ISnapshot * *aCurrentSnapshot); \
  NS_IMETHOD GetSnapshotCount(PRUint32 *aSnapshotCount); \
  NS_IMETHOD GetCurrentStateModified(PRBool *aCurrentStateModified); \
  NS_IMETHOD GetSharedFolders(PRUint32 *sharedFoldersSize, ISharedFolder ***sharedFolders); \
  NS_IMETHOD GetClipboardMode(PRUint32 *aClipboardMode); \
  NS_IMETHOD SetClipboardMode(PRUint32 aClipboardMode); \
  NS_IMETHOD GetDnDMode(PRUint32 *aDnDMode); \
  NS_IMETHOD SetDnDMode(PRUint32 aDnDMode); \
  NS_IMETHOD GetTeleporterEnabled(PRBool *aTeleporterEnabled); \
  NS_IMETHOD SetTeleporterEnabled(PRBool aTeleporterEnabled); \
  NS_IMETHOD GetTeleporterPort(PRUint32 *aTeleporterPort); \
  NS_IMETHOD SetTeleporterPort(PRUint32 aTeleporterPort); \
  NS_IMETHOD GetTeleporterAddress(PRUnichar * *aTeleporterAddress); \
  NS_IMETHOD SetTeleporterAddress(const PRUnichar * aTeleporterAddress); \
  NS_IMETHOD GetTeleporterPassword(PRUnichar * *aTeleporterPassword); \
  NS_IMETHOD SetTeleporterPassword(const PRUnichar * aTeleporterPassword); \
  NS_IMETHOD GetParavirtProvider(PRUint32 *aParavirtProvider); \
  NS_IMETHOD SetParavirtProvider(PRUint32 aParavirtProvider); \
  NS_IMETHOD GetFaultToleranceState(PRUint32 *aFaultToleranceState); \
  NS_IMETHOD SetFaultToleranceState(PRUint32 aFaultToleranceState); \
  NS_IMETHOD GetFaultTolerancePort(PRUint32 *aFaultTolerancePort); \
  NS_IMETHOD SetFaultTolerancePort(PRUint32 aFaultTolerancePort); \
  NS_IMETHOD GetFaultToleranceAddress(PRUnichar * *aFaultToleranceAddress); \
  NS_IMETHOD SetFaultToleranceAddress(const PRUnichar * aFaultToleranceAddress); \
  NS_IMETHOD GetFaultTolerancePassword(PRUnichar * *aFaultTolerancePassword); \
  NS_IMETHOD SetFaultTolerancePassword(const PRUnichar * aFaultTolerancePassword); \
  NS_IMETHOD GetFaultToleranceSyncInterval(PRUint32 *aFaultToleranceSyncInterval); \
  NS_IMETHOD SetFaultToleranceSyncInterval(PRUint32 aFaultToleranceSyncInterval); \
  NS_IMETHOD GetRTCUseUTC(PRBool *aRTCUseUTC); \
  NS_IMETHOD SetRTCUseUTC(PRBool aRTCUseUTC); \
  NS_IMETHOD GetIOCacheEnabled(PRBool *aIOCacheEnabled); \
  NS_IMETHOD SetIOCacheEnabled(PRBool aIOCacheEnabled); \
  NS_IMETHOD GetIOCacheSize(PRUint32 *aIOCacheSize); \
  NS_IMETHOD SetIOCacheSize(PRUint32 aIOCacheSize); \
  NS_IMETHOD GetPCIDeviceAssignments(PRUint32 *PCIDeviceAssignmentsSize, IPCIDeviceAttachment ***PCIDeviceAssignments); \
  NS_IMETHOD GetBandwidthControl(IBandwidthControl * *aBandwidthControl); \
  NS_IMETHOD GetTracingEnabled(PRBool *aTracingEnabled); \
  NS_IMETHOD SetTracingEnabled(PRBool aTracingEnabled); \
  NS_IMETHOD GetTracingConfig(PRUnichar * *aTracingConfig); \
  NS_IMETHOD SetTracingConfig(const PRUnichar * aTracingConfig); \
  NS_IMETHOD GetAllowTracingToAccessVM(PRBool *aAllowTracingToAccessVM); \
  NS_IMETHOD SetAllowTracingToAccessVM(PRBool aAllowTracingToAccessVM); \
  NS_IMETHOD GetAutostartEnabled(PRBool *aAutostartEnabled); \
  NS_IMETHOD SetAutostartEnabled(PRBool aAutostartEnabled); \
  NS_IMETHOD GetAutostartDelay(PRUint32 *aAutostartDelay); \
  NS_IMETHOD SetAutostartDelay(PRUint32 aAutostartDelay); \
  NS_IMETHOD GetAutostopType(PRUint32 *aAutostopType); \
  NS_IMETHOD SetAutostopType(PRUint32 aAutostopType); \
  NS_IMETHOD GetDefaultFrontend(PRUnichar * *aDefaultFrontend); \
  NS_IMETHOD SetDefaultFrontend(const PRUnichar * aDefaultFrontend); \
  NS_IMETHOD GetUSBProxyAvailable(PRBool *aUSBProxyAvailable); \
  NS_IMETHOD GetVMProcessPriority(PRUnichar * *aVMProcessPriority); \
  NS_IMETHOD SetVMProcessPriority(const PRUnichar * aVMProcessPriority); \
  NS_IMETHOD GetParavirtDebug(PRUnichar * *aParavirtDebug); \
  NS_IMETHOD SetParavirtDebug(const PRUnichar * aParavirtDebug); \
  NS_IMETHOD GetCPUProfile(PRUnichar * *aCPUProfile); \
  NS_IMETHOD SetCPUProfile(const PRUnichar * aCPUProfile); \
  NS_IMETHOD GetInternalAndReservedAttribute1IMachine(PRUint32 *aInternalAndReservedAttribute1IMachine); \
  NS_IMETHOD GetInternalAndReservedAttribute2IMachine(PRUint32 *aInternalAndReservedAttribute2IMachine); \
  NS_IMETHOD GetInternalAndReservedAttribute3IMachine(PRUint32 *aInternalAndReservedAttribute3IMachine); \
  NS_IMETHOD GetInternalAndReservedAttribute4IMachine(PRUint32 *aInternalAndReservedAttribute4IMachine); \
  NS_IMETHOD GetInternalAndReservedAttribute5IMachine(PRUint32 *aInternalAndReservedAttribute5IMachine); \
  NS_IMETHOD GetInternalAndReservedAttribute6IMachine(PRUint32 *aInternalAndReservedAttribute6IMachine); \
  NS_IMETHOD GetInternalAndReservedAttribute7IMachine(PRUint32 *aInternalAndReservedAttribute7IMachine); \
  NS_IMETHOD GetInternalAndReservedAttribute8IMachine(PRUint32 *aInternalAndReservedAttribute8IMachine); \
  NS_IMETHOD GetInternalAndReservedAttribute9IMachine(PRUint32 *aInternalAndReservedAttribute9IMachine); \
  NS_IMETHOD GetInternalAndReservedAttribute10IMachine(PRUint32 *aInternalAndReservedAttribute10IMachine); \
  NS_IMETHOD LockMachine(ISession *session, PRUint32 lockType); \
  NS_IMETHOD LaunchVMProcess(ISession *session, const PRUnichar *name, const PRUnichar *environment, IProgress **progress); \
  NS_IMETHOD SetBootOrder(PRUint32 position, PRUint32 device); \
  NS_IMETHOD GetBootOrder(PRUint32 position, PRUint32 *device); \
  NS_IMETHOD AttachDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRUint32 type, IMedium *medium); \
  NS_IMETHOD AttachDeviceWithoutMedium(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRUint32 type); \
  NS_IMETHOD DetachDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device); \
  NS_IMETHOD PassthroughDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRBool passthrough); \
  NS_IMETHOD TemporaryEjectDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRBool temporaryEject); \
  NS_IMETHOD NonRotationalDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRBool nonRotational); \
  NS_IMETHOD SetAutoDiscardForDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRBool discard); \
  NS_IMETHOD SetHotPluggableForDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRBool hotPluggable); \
  NS_IMETHOD SetBandwidthGroupForDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, IBandwidthGroup *bandwidthGroup); \
  NS_IMETHOD SetNoBandwidthGroupForDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device); \
  NS_IMETHOD UnmountMedium(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRBool force); \
  NS_IMETHOD MountMedium(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, IMedium *medium, PRBool force); \
  NS_IMETHOD GetMedium(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, IMedium **medium); \
  NS_IMETHOD GetMediumAttachmentsOfController(const PRUnichar *name, PRUint32 *mediumAttachmentsSize, IMediumAttachment ***mediumAttachments); \
  NS_IMETHOD GetMediumAttachment(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, IMediumAttachment **attachment); \
  NS_IMETHOD AttachHostPCIDevice(PRInt32 hostAddress, PRInt32 desiredGuestAddress, PRBool tryToUnbind); \
  NS_IMETHOD DetachHostPCIDevice(PRInt32 hostAddress); \
  NS_IMETHOD GetNetworkAdapter(PRUint32 slot, INetworkAdapter **adapter); \
  NS_IMETHOD AddStorageController(const PRUnichar *name, PRUint32 connectionType, IStorageController **controller); \
  NS_IMETHOD GetStorageControllerByName(const PRUnichar *name, IStorageController **storageController); \
  NS_IMETHOD GetStorageControllerByInstance(PRUint32 connectionType, PRUint32 instance, IStorageController **storageController); \
  NS_IMETHOD RemoveStorageController(const PRUnichar *name); \
  NS_IMETHOD SetStorageControllerBootable(const PRUnichar *name, PRBool bootable); \
  NS_IMETHOD AddUSBController(const PRUnichar *name, PRUint32 type, IUSBController **controller); \
  NS_IMETHOD RemoveUSBController(const PRUnichar *name); \
  NS_IMETHOD GetUSBControllerByName(const PRUnichar *name, IUSBController **controller); \
  NS_IMETHOD GetUSBControllerCountByType(PRUint32 type, PRUint32 *controllers); \
  NS_IMETHOD GetSerialPort(PRUint32 slot, ISerialPort **port); \
  NS_IMETHOD GetParallelPort(PRUint32 slot, IParallelPort **port); \
  NS_IMETHOD GetExtraDataKeys(PRUint32 *keysSize, PRUnichar ***keys); \
  NS_IMETHOD GetExtraData(const PRUnichar *key, PRUnichar **value); \
  NS_IMETHOD SetExtraData(const PRUnichar *key, const PRUnichar *value); \
  NS_IMETHOD GetCPUProperty(PRUint32 property, PRBool *value); \
  NS_IMETHOD SetCPUProperty(PRUint32 property, PRBool value); \
  NS_IMETHOD GetCPUIDLeaf(PRUint32 id, PRUint32 *valEax, PRUint32 *valEbx, PRUint32 *valEcx, PRUint32 *valEdx); \
  NS_IMETHOD SetCPUIDLeaf(PRUint32 id, PRUint32 valEax, PRUint32 valEbx, PRUint32 valEcx, PRUint32 valEdx); \
  NS_IMETHOD RemoveCPUIDLeaf(PRUint32 id); \
  NS_IMETHOD RemoveAllCPUIDLeaves(void); \
  NS_IMETHOD GetHWVirtExProperty(PRUint32 property, PRBool *value); \
  NS_IMETHOD SetHWVirtExProperty(PRUint32 property, PRBool value); \
  NS_IMETHOD SetSettingsFilePath(const PRUnichar *settingsFilePath, IProgress **progress); \
  NS_IMETHOD SaveSettings(void); \
  NS_IMETHOD DiscardSettings(void); \
  NS_IMETHOD Unregister(PRUint32 cleanupMode, PRUint32 *mediaSize, IMedium ***media); \
  NS_IMETHOD DeleteConfig(PRUint32 mediaSize, IMedium **media, IProgress **progress); \
  NS_IMETHOD ExportTo(IAppliance *appliance, const PRUnichar *location, IVirtualSystemDescription **description); \
  NS_IMETHOD FindSnapshot(const PRUnichar *nameOrId, ISnapshot **snapshot); \
  NS_IMETHOD CreateSharedFolder(const PRUnichar *name, const PRUnichar *hostPath, PRBool writable, PRBool automount); \
  NS_IMETHOD RemoveSharedFolder(const PRUnichar *name); \
  NS_IMETHOD CanShowConsoleWindow(PRBool *canShow); \
  NS_IMETHOD ShowConsoleWindow(PRInt64 *winId); \
  NS_IMETHOD GetGuestProperty(const PRUnichar *name, PRUnichar **value, PRInt64 *timestamp, PRUnichar **flags); \
  NS_IMETHOD GetGuestPropertyValue(const PRUnichar *property, PRUnichar **value); \
  NS_IMETHOD GetGuestPropertyTimestamp(const PRUnichar *property, PRInt64 *value); \
  NS_IMETHOD SetGuestProperty(const PRUnichar *property, const PRUnichar *value, const PRUnichar *flags); \
  NS_IMETHOD SetGuestPropertyValue(const PRUnichar *property, const PRUnichar *value); \
  NS_IMETHOD DeleteGuestProperty(const PRUnichar *name); \
  NS_IMETHOD EnumerateGuestProperties(const PRUnichar *patterns, PRUint32 *namesSize, PRUnichar ***names, PRUint32 *valuesSize, PRUnichar ***values, PRUint32 *timestampsSize, PRInt64 **timestamps, PRUint32 *flagsSize, PRUnichar ***flags); \
  NS_IMETHOD QuerySavedGuestScreenInfo(PRUint32 screenId, PRUint32 *originX, PRUint32 *originY, PRUint32 *width, PRUint32 *height, PRBool *enabled); \
  NS_IMETHOD ReadSavedThumbnailToArray(PRUint32 screenId, PRUint32 bitmapFormat, PRUint32 *width, PRUint32 *height, PRUint32 *dataSize, PRUint8 **data); \
  NS_IMETHOD QuerySavedScreenshotInfo(PRUint32 screenId, PRUint32 *width, PRUint32 *height, PRUint32 *bitmapFormatsSize, PRUint32 **bitmapFormats); \
  NS_IMETHOD ReadSavedScreenshotToArray(PRUint32 screenId, PRUint32 bitmapFormat, PRUint32 *width, PRUint32 *height, PRUint32 *dataSize, PRUint8 **data); \
  NS_IMETHOD HotPlugCPU(PRUint32 cpu); \
  NS_IMETHOD HotUnplugCPU(PRUint32 cpu); \
  NS_IMETHOD GetCPUStatus(PRUint32 cpu, PRBool *attached); \
  NS_IMETHOD GetEffectiveParavirtProvider(PRUint32 *paravirtProvider); \
  NS_IMETHOD QueryLogFilename(PRUint32 idx, PRUnichar **filename); \
  NS_IMETHOD ReadLog(PRUint32 idx, PRInt64 offset, PRInt64 size, PRUint32 *dataSize, PRUint8 **data); \
  NS_IMETHOD CloneTo(IMachine *target, PRUint32 mode, PRUint32 optionsSize, PRUint32 *options, IProgress **progress); \
  NS_IMETHOD SaveState(IProgress **progress); \
  NS_IMETHOD AdoptSavedState(const PRUnichar *savedStateFile); \
  NS_IMETHOD DiscardSavedState(PRBool fRemoveFile); \
  NS_IMETHOD TakeSnapshot(const PRUnichar *name, const PRUnichar *description, PRBool pause, PRUnichar **id, IProgress **progress); \
  NS_IMETHOD DeleteSnapshot(const PRUnichar *id, IProgress **progress); \
  NS_IMETHOD DeleteSnapshotAndAllChildren(const PRUnichar *id, IProgress **progress); \
  NS_IMETHOD DeleteSnapshotRange(const PRUnichar *startId, const PRUnichar *endId, IProgress **progress); \
  NS_IMETHOD RestoreSnapshot(ISnapshot *snapshot, IProgress **progress); \
  NS_IMETHOD ApplyDefaults(const PRUnichar *flags); \
  NS_IMETHOD InternalAndReservedMethod1IMachine(void); \
  NS_IMETHOD InternalAndReservedMethod2IMachine(void); \
  NS_IMETHOD InternalAndReservedMethod3IMachine(void); \
  NS_IMETHOD InternalAndReservedMethod4IMachine(void); \
  NS_IMETHOD InternalAndReservedMethod5IMachine(void); \
  NS_IMETHOD InternalAndReservedMethod6IMachine(void); \
  NS_IMETHOD InternalAndReservedMethod7IMachine(void); \
  NS_IMETHOD InternalAndReservedMethod8IMachine(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IMACHINE(_to) \
  NS_IMETHOD GetParent(IVirtualBox * *aParent) { return _to GetParent(aParent); } \
  NS_IMETHOD GetIcon(PRUint32 *iconSize, PRUint8 **icon) { return _to GetIcon(iconSize, icon); } \
  NS_IMETHOD SetIcon(PRUint32 iconSize, PRUint8 *icon) { return _to SetIcon(iconSize, icon); } \
  NS_IMETHOD GetAccessible(PRBool *aAccessible) { return _to GetAccessible(aAccessible); } \
  NS_IMETHOD GetAccessError(IVirtualBoxErrorInfo * *aAccessError) { return _to GetAccessError(aAccessError); } \
  NS_IMETHOD GetName(PRUnichar * *aName) { return _to GetName(aName); } \
  NS_IMETHOD SetName(const PRUnichar * aName) { return _to SetName(aName); } \
  NS_IMETHOD GetDescription(PRUnichar * *aDescription) { return _to GetDescription(aDescription); } \
  NS_IMETHOD SetDescription(const PRUnichar * aDescription) { return _to SetDescription(aDescription); } \
  NS_IMETHOD GetId(PRUnichar * *aId) { return _to GetId(aId); } \
  NS_IMETHOD GetGroups(PRUint32 *groupsSize, PRUnichar ***groups) { return _to GetGroups(groupsSize, groups); } \
  NS_IMETHOD SetGroups(PRUint32 groupsSize, const PRUnichar **groups) { return _to SetGroups(groupsSize, groups); } \
  NS_IMETHOD GetOSTypeId(PRUnichar * *aOSTypeId) { return _to GetOSTypeId(aOSTypeId); } \
  NS_IMETHOD SetOSTypeId(const PRUnichar * aOSTypeId) { return _to SetOSTypeId(aOSTypeId); } \
  NS_IMETHOD GetHardwareVersion(PRUnichar * *aHardwareVersion) { return _to GetHardwareVersion(aHardwareVersion); } \
  NS_IMETHOD SetHardwareVersion(const PRUnichar * aHardwareVersion) { return _to SetHardwareVersion(aHardwareVersion); } \
  NS_IMETHOD GetHardwareUUID(PRUnichar * *aHardwareUUID) { return _to GetHardwareUUID(aHardwareUUID); } \
  NS_IMETHOD SetHardwareUUID(const PRUnichar * aHardwareUUID) { return _to SetHardwareUUID(aHardwareUUID); } \
  NS_IMETHOD GetCPUCount(PRUint32 *aCPUCount) { return _to GetCPUCount(aCPUCount); } \
  NS_IMETHOD SetCPUCount(PRUint32 aCPUCount) { return _to SetCPUCount(aCPUCount); } \
  NS_IMETHOD GetCPUHotPlugEnabled(PRBool *aCPUHotPlugEnabled) { return _to GetCPUHotPlugEnabled(aCPUHotPlugEnabled); } \
  NS_IMETHOD SetCPUHotPlugEnabled(PRBool aCPUHotPlugEnabled) { return _to SetCPUHotPlugEnabled(aCPUHotPlugEnabled); } \
  NS_IMETHOD GetCPUExecutionCap(PRUint32 *aCPUExecutionCap) { return _to GetCPUExecutionCap(aCPUExecutionCap); } \
  NS_IMETHOD SetCPUExecutionCap(PRUint32 aCPUExecutionCap) { return _to SetCPUExecutionCap(aCPUExecutionCap); } \
  NS_IMETHOD GetCPUIDPortabilityLevel(PRUint32 *aCPUIDPortabilityLevel) { return _to GetCPUIDPortabilityLevel(aCPUIDPortabilityLevel); } \
  NS_IMETHOD SetCPUIDPortabilityLevel(PRUint32 aCPUIDPortabilityLevel) { return _to SetCPUIDPortabilityLevel(aCPUIDPortabilityLevel); } \
  NS_IMETHOD GetMemorySize(PRUint32 *aMemorySize) { return _to GetMemorySize(aMemorySize); } \
  NS_IMETHOD SetMemorySize(PRUint32 aMemorySize) { return _to SetMemorySize(aMemorySize); } \
  NS_IMETHOD GetMemoryBalloonSize(PRUint32 *aMemoryBalloonSize) { return _to GetMemoryBalloonSize(aMemoryBalloonSize); } \
  NS_IMETHOD SetMemoryBalloonSize(PRUint32 aMemoryBalloonSize) { return _to SetMemoryBalloonSize(aMemoryBalloonSize); } \
  NS_IMETHOD GetPageFusionEnabled(PRBool *aPageFusionEnabled) { return _to GetPageFusionEnabled(aPageFusionEnabled); } \
  NS_IMETHOD SetPageFusionEnabled(PRBool aPageFusionEnabled) { return _to SetPageFusionEnabled(aPageFusionEnabled); } \
  NS_IMETHOD GetGraphicsControllerType(PRUint32 *aGraphicsControllerType) { return _to GetGraphicsControllerType(aGraphicsControllerType); } \
  NS_IMETHOD SetGraphicsControllerType(PRUint32 aGraphicsControllerType) { return _to SetGraphicsControllerType(aGraphicsControllerType); } \
  NS_IMETHOD GetVRAMSize(PRUint32 *aVRAMSize) { return _to GetVRAMSize(aVRAMSize); } \
  NS_IMETHOD SetVRAMSize(PRUint32 aVRAMSize) { return _to SetVRAMSize(aVRAMSize); } \
  NS_IMETHOD GetAccelerate3DEnabled(PRBool *aAccelerate3DEnabled) { return _to GetAccelerate3DEnabled(aAccelerate3DEnabled); } \
  NS_IMETHOD SetAccelerate3DEnabled(PRBool aAccelerate3DEnabled) { return _to SetAccelerate3DEnabled(aAccelerate3DEnabled); } \
  NS_IMETHOD GetAccelerate2DVideoEnabled(PRBool *aAccelerate2DVideoEnabled) { return _to GetAccelerate2DVideoEnabled(aAccelerate2DVideoEnabled); } \
  NS_IMETHOD SetAccelerate2DVideoEnabled(PRBool aAccelerate2DVideoEnabled) { return _to SetAccelerate2DVideoEnabled(aAccelerate2DVideoEnabled); } \
  NS_IMETHOD GetMonitorCount(PRUint32 *aMonitorCount) { return _to GetMonitorCount(aMonitorCount); } \
  NS_IMETHOD SetMonitorCount(PRUint32 aMonitorCount) { return _to SetMonitorCount(aMonitorCount); } \
  NS_IMETHOD GetVideoCaptureEnabled(PRBool *aVideoCaptureEnabled) { return _to GetVideoCaptureEnabled(aVideoCaptureEnabled); } \
  NS_IMETHOD SetVideoCaptureEnabled(PRBool aVideoCaptureEnabled) { return _to SetVideoCaptureEnabled(aVideoCaptureEnabled); } \
  NS_IMETHOD GetVideoCaptureScreens(PRUint32 *videoCaptureScreensSize, PRBool **videoCaptureScreens) { return _to GetVideoCaptureScreens(videoCaptureScreensSize, videoCaptureScreens); } \
  NS_IMETHOD SetVideoCaptureScreens(PRUint32 videoCaptureScreensSize, PRBool *videoCaptureScreens) { return _to SetVideoCaptureScreens(videoCaptureScreensSize, videoCaptureScreens); } \
  NS_IMETHOD GetVideoCaptureFile(PRUnichar * *aVideoCaptureFile) { return _to GetVideoCaptureFile(aVideoCaptureFile); } \
  NS_IMETHOD SetVideoCaptureFile(const PRUnichar * aVideoCaptureFile) { return _to SetVideoCaptureFile(aVideoCaptureFile); } \
  NS_IMETHOD GetVideoCaptureWidth(PRUint32 *aVideoCaptureWidth) { return _to GetVideoCaptureWidth(aVideoCaptureWidth); } \
  NS_IMETHOD SetVideoCaptureWidth(PRUint32 aVideoCaptureWidth) { return _to SetVideoCaptureWidth(aVideoCaptureWidth); } \
  NS_IMETHOD GetVideoCaptureHeight(PRUint32 *aVideoCaptureHeight) { return _to GetVideoCaptureHeight(aVideoCaptureHeight); } \
  NS_IMETHOD SetVideoCaptureHeight(PRUint32 aVideoCaptureHeight) { return _to SetVideoCaptureHeight(aVideoCaptureHeight); } \
  NS_IMETHOD GetVideoCaptureRate(PRUint32 *aVideoCaptureRate) { return _to GetVideoCaptureRate(aVideoCaptureRate); } \
  NS_IMETHOD SetVideoCaptureRate(PRUint32 aVideoCaptureRate) { return _to SetVideoCaptureRate(aVideoCaptureRate); } \
  NS_IMETHOD GetVideoCaptureFPS(PRUint32 *aVideoCaptureFPS) { return _to GetVideoCaptureFPS(aVideoCaptureFPS); } \
  NS_IMETHOD SetVideoCaptureFPS(PRUint32 aVideoCaptureFPS) { return _to SetVideoCaptureFPS(aVideoCaptureFPS); } \
  NS_IMETHOD GetVideoCaptureMaxTime(PRUint32 *aVideoCaptureMaxTime) { return _to GetVideoCaptureMaxTime(aVideoCaptureMaxTime); } \
  NS_IMETHOD SetVideoCaptureMaxTime(PRUint32 aVideoCaptureMaxTime) { return _to SetVideoCaptureMaxTime(aVideoCaptureMaxTime); } \
  NS_IMETHOD GetVideoCaptureMaxFileSize(PRUint32 *aVideoCaptureMaxFileSize) { return _to GetVideoCaptureMaxFileSize(aVideoCaptureMaxFileSize); } \
  NS_IMETHOD SetVideoCaptureMaxFileSize(PRUint32 aVideoCaptureMaxFileSize) { return _to SetVideoCaptureMaxFileSize(aVideoCaptureMaxFileSize); } \
  NS_IMETHOD GetVideoCaptureOptions(PRUnichar * *aVideoCaptureOptions) { return _to GetVideoCaptureOptions(aVideoCaptureOptions); } \
  NS_IMETHOD SetVideoCaptureOptions(const PRUnichar * aVideoCaptureOptions) { return _to SetVideoCaptureOptions(aVideoCaptureOptions); } \
  NS_IMETHOD GetBIOSSettings(IBIOSSettings * *aBIOSSettings) { return _to GetBIOSSettings(aBIOSSettings); } \
  NS_IMETHOD GetFirmwareType(PRUint32 *aFirmwareType) { return _to GetFirmwareType(aFirmwareType); } \
  NS_IMETHOD SetFirmwareType(PRUint32 aFirmwareType) { return _to SetFirmwareType(aFirmwareType); } \
  NS_IMETHOD GetPointingHIDType(PRUint32 *aPointingHIDType) { return _to GetPointingHIDType(aPointingHIDType); } \
  NS_IMETHOD SetPointingHIDType(PRUint32 aPointingHIDType) { return _to SetPointingHIDType(aPointingHIDType); } \
  NS_IMETHOD GetKeyboardHIDType(PRUint32 *aKeyboardHIDType) { return _to GetKeyboardHIDType(aKeyboardHIDType); } \
  NS_IMETHOD SetKeyboardHIDType(PRUint32 aKeyboardHIDType) { return _to SetKeyboardHIDType(aKeyboardHIDType); } \
  NS_IMETHOD GetHPETEnabled(PRBool *aHPETEnabled) { return _to GetHPETEnabled(aHPETEnabled); } \
  NS_IMETHOD SetHPETEnabled(PRBool aHPETEnabled) { return _to SetHPETEnabled(aHPETEnabled); } \
  NS_IMETHOD GetChipsetType(PRUint32 *aChipsetType) { return _to GetChipsetType(aChipsetType); } \
  NS_IMETHOD SetChipsetType(PRUint32 aChipsetType) { return _to SetChipsetType(aChipsetType); } \
  NS_IMETHOD GetSnapshotFolder(PRUnichar * *aSnapshotFolder) { return _to GetSnapshotFolder(aSnapshotFolder); } \
  NS_IMETHOD SetSnapshotFolder(const PRUnichar * aSnapshotFolder) { return _to SetSnapshotFolder(aSnapshotFolder); } \
  NS_IMETHOD GetVRDEServer(IVRDEServer * *aVRDEServer) { return _to GetVRDEServer(aVRDEServer); } \
  NS_IMETHOD GetEmulatedUSBCardReaderEnabled(PRBool *aEmulatedUSBCardReaderEnabled) { return _to GetEmulatedUSBCardReaderEnabled(aEmulatedUSBCardReaderEnabled); } \
  NS_IMETHOD SetEmulatedUSBCardReaderEnabled(PRBool aEmulatedUSBCardReaderEnabled) { return _to SetEmulatedUSBCardReaderEnabled(aEmulatedUSBCardReaderEnabled); } \
  NS_IMETHOD GetMediumAttachments(PRUint32 *mediumAttachmentsSize, IMediumAttachment ***mediumAttachments) { return _to GetMediumAttachments(mediumAttachmentsSize, mediumAttachments); } \
  NS_IMETHOD GetUSBControllers(PRUint32 *USBControllersSize, IUSBController ***USBControllers) { return _to GetUSBControllers(USBControllersSize, USBControllers); } \
  NS_IMETHOD GetUSBDeviceFilters(IUSBDeviceFilters * *aUSBDeviceFilters) { return _to GetUSBDeviceFilters(aUSBDeviceFilters); } \
  NS_IMETHOD GetAudioAdapter(IAudioAdapter * *aAudioAdapter) { return _to GetAudioAdapter(aAudioAdapter); } \
  NS_IMETHOD GetStorageControllers(PRUint32 *storageControllersSize, IStorageController ***storageControllers) { return _to GetStorageControllers(storageControllersSize, storageControllers); } \
  NS_IMETHOD GetSettingsFilePath(PRUnichar * *aSettingsFilePath) { return _to GetSettingsFilePath(aSettingsFilePath); } \
  NS_IMETHOD GetSettingsModified(PRBool *aSettingsModified) { return _to GetSettingsModified(aSettingsModified); } \
  NS_IMETHOD GetSessionState(PRUint32 *aSessionState) { return _to GetSessionState(aSessionState); } \
  NS_IMETHOD GetSessionName(PRUnichar * *aSessionName) { return _to GetSessionName(aSessionName); } \
  NS_IMETHOD GetSessionPID(PRUint32 *aSessionPID) { return _to GetSessionPID(aSessionPID); } \
  NS_IMETHOD GetState(PRUint32 *aState) { return _to GetState(aState); } \
  NS_IMETHOD GetLastStateChange(PRInt64 *aLastStateChange) { return _to GetLastStateChange(aLastStateChange); } \
  NS_IMETHOD GetStateFilePath(PRUnichar * *aStateFilePath) { return _to GetStateFilePath(aStateFilePath); } \
  NS_IMETHOD GetLogFolder(PRUnichar * *aLogFolder) { return _to GetLogFolder(aLogFolder); } \
  NS_IMETHOD GetCurrentSnapshot(ISnapshot * *aCurrentSnapshot) { return _to GetCurrentSnapshot(aCurrentSnapshot); } \
  NS_IMETHOD GetSnapshotCount(PRUint32 *aSnapshotCount) { return _to GetSnapshotCount(aSnapshotCount); } \
  NS_IMETHOD GetCurrentStateModified(PRBool *aCurrentStateModified) { return _to GetCurrentStateModified(aCurrentStateModified); } \
  NS_IMETHOD GetSharedFolders(PRUint32 *sharedFoldersSize, ISharedFolder ***sharedFolders) { return _to GetSharedFolders(sharedFoldersSize, sharedFolders); } \
  NS_IMETHOD GetClipboardMode(PRUint32 *aClipboardMode) { return _to GetClipboardMode(aClipboardMode); } \
  NS_IMETHOD SetClipboardMode(PRUint32 aClipboardMode) { return _to SetClipboardMode(aClipboardMode); } \
  NS_IMETHOD GetDnDMode(PRUint32 *aDnDMode) { return _to GetDnDMode(aDnDMode); } \
  NS_IMETHOD SetDnDMode(PRUint32 aDnDMode) { return _to SetDnDMode(aDnDMode); } \
  NS_IMETHOD GetTeleporterEnabled(PRBool *aTeleporterEnabled) { return _to GetTeleporterEnabled(aTeleporterEnabled); } \
  NS_IMETHOD SetTeleporterEnabled(PRBool aTeleporterEnabled) { return _to SetTeleporterEnabled(aTeleporterEnabled); } \
  NS_IMETHOD GetTeleporterPort(PRUint32 *aTeleporterPort) { return _to GetTeleporterPort(aTeleporterPort); } \
  NS_IMETHOD SetTeleporterPort(PRUint32 aTeleporterPort) { return _to SetTeleporterPort(aTeleporterPort); } \
  NS_IMETHOD GetTeleporterAddress(PRUnichar * *aTeleporterAddress) { return _to GetTeleporterAddress(aTeleporterAddress); } \
  NS_IMETHOD SetTeleporterAddress(const PRUnichar * aTeleporterAddress) { return _to SetTeleporterAddress(aTeleporterAddress); } \
  NS_IMETHOD GetTeleporterPassword(PRUnichar * *aTeleporterPassword) { return _to GetTeleporterPassword(aTeleporterPassword); } \
  NS_IMETHOD SetTeleporterPassword(const PRUnichar * aTeleporterPassword) { return _to SetTeleporterPassword(aTeleporterPassword); } \
  NS_IMETHOD GetParavirtProvider(PRUint32 *aParavirtProvider) { return _to GetParavirtProvider(aParavirtProvider); } \
  NS_IMETHOD SetParavirtProvider(PRUint32 aParavirtProvider) { return _to SetParavirtProvider(aParavirtProvider); } \
  NS_IMETHOD GetFaultToleranceState(PRUint32 *aFaultToleranceState) { return _to GetFaultToleranceState(aFaultToleranceState); } \
  NS_IMETHOD SetFaultToleranceState(PRUint32 aFaultToleranceState) { return _to SetFaultToleranceState(aFaultToleranceState); } \
  NS_IMETHOD GetFaultTolerancePort(PRUint32 *aFaultTolerancePort) { return _to GetFaultTolerancePort(aFaultTolerancePort); } \
  NS_IMETHOD SetFaultTolerancePort(PRUint32 aFaultTolerancePort) { return _to SetFaultTolerancePort(aFaultTolerancePort); } \
  NS_IMETHOD GetFaultToleranceAddress(PRUnichar * *aFaultToleranceAddress) { return _to GetFaultToleranceAddress(aFaultToleranceAddress); } \
  NS_IMETHOD SetFaultToleranceAddress(const PRUnichar * aFaultToleranceAddress) { return _to SetFaultToleranceAddress(aFaultToleranceAddress); } \
  NS_IMETHOD GetFaultTolerancePassword(PRUnichar * *aFaultTolerancePassword) { return _to GetFaultTolerancePassword(aFaultTolerancePassword); } \
  NS_IMETHOD SetFaultTolerancePassword(const PRUnichar * aFaultTolerancePassword) { return _to SetFaultTolerancePassword(aFaultTolerancePassword); } \
  NS_IMETHOD GetFaultToleranceSyncInterval(PRUint32 *aFaultToleranceSyncInterval) { return _to GetFaultToleranceSyncInterval(aFaultToleranceSyncInterval); } \
  NS_IMETHOD SetFaultToleranceSyncInterval(PRUint32 aFaultToleranceSyncInterval) { return _to SetFaultToleranceSyncInterval(aFaultToleranceSyncInterval); } \
  NS_IMETHOD GetRTCUseUTC(PRBool *aRTCUseUTC) { return _to GetRTCUseUTC(aRTCUseUTC); } \
  NS_IMETHOD SetRTCUseUTC(PRBool aRTCUseUTC) { return _to SetRTCUseUTC(aRTCUseUTC); } \
  NS_IMETHOD GetIOCacheEnabled(PRBool *aIOCacheEnabled) { return _to GetIOCacheEnabled(aIOCacheEnabled); } \
  NS_IMETHOD SetIOCacheEnabled(PRBool aIOCacheEnabled) { return _to SetIOCacheEnabled(aIOCacheEnabled); } \
  NS_IMETHOD GetIOCacheSize(PRUint32 *aIOCacheSize) { return _to GetIOCacheSize(aIOCacheSize); } \
  NS_IMETHOD SetIOCacheSize(PRUint32 aIOCacheSize) { return _to SetIOCacheSize(aIOCacheSize); } \
  NS_IMETHOD GetPCIDeviceAssignments(PRUint32 *PCIDeviceAssignmentsSize, IPCIDeviceAttachment ***PCIDeviceAssignments) { return _to GetPCIDeviceAssignments(PCIDeviceAssignmentsSize, PCIDeviceAssignments); } \
  NS_IMETHOD GetBandwidthControl(IBandwidthControl * *aBandwidthControl) { return _to GetBandwidthControl(aBandwidthControl); } \
  NS_IMETHOD GetTracingEnabled(PRBool *aTracingEnabled) { return _to GetTracingEnabled(aTracingEnabled); } \
  NS_IMETHOD SetTracingEnabled(PRBool aTracingEnabled) { return _to SetTracingEnabled(aTracingEnabled); } \
  NS_IMETHOD GetTracingConfig(PRUnichar * *aTracingConfig) { return _to GetTracingConfig(aTracingConfig); } \
  NS_IMETHOD SetTracingConfig(const PRUnichar * aTracingConfig) { return _to SetTracingConfig(aTracingConfig); } \
  NS_IMETHOD GetAllowTracingToAccessVM(PRBool *aAllowTracingToAccessVM) { return _to GetAllowTracingToAccessVM(aAllowTracingToAccessVM); } \
  NS_IMETHOD SetAllowTracingToAccessVM(PRBool aAllowTracingToAccessVM) { return _to SetAllowTracingToAccessVM(aAllowTracingToAccessVM); } \
  NS_IMETHOD GetAutostartEnabled(PRBool *aAutostartEnabled) { return _to GetAutostartEnabled(aAutostartEnabled); } \
  NS_IMETHOD SetAutostartEnabled(PRBool aAutostartEnabled) { return _to SetAutostartEnabled(aAutostartEnabled); } \
  NS_IMETHOD GetAutostartDelay(PRUint32 *aAutostartDelay) { return _to GetAutostartDelay(aAutostartDelay); } \
  NS_IMETHOD SetAutostartDelay(PRUint32 aAutostartDelay) { return _to SetAutostartDelay(aAutostartDelay); } \
  NS_IMETHOD GetAutostopType(PRUint32 *aAutostopType) { return _to GetAutostopType(aAutostopType); } \
  NS_IMETHOD SetAutostopType(PRUint32 aAutostopType) { return _to SetAutostopType(aAutostopType); } \
  NS_IMETHOD GetDefaultFrontend(PRUnichar * *aDefaultFrontend) { return _to GetDefaultFrontend(aDefaultFrontend); } \
  NS_IMETHOD SetDefaultFrontend(const PRUnichar * aDefaultFrontend) { return _to SetDefaultFrontend(aDefaultFrontend); } \
  NS_IMETHOD GetUSBProxyAvailable(PRBool *aUSBProxyAvailable) { return _to GetUSBProxyAvailable(aUSBProxyAvailable); } \
  NS_IMETHOD GetVMProcessPriority(PRUnichar * *aVMProcessPriority) { return _to GetVMProcessPriority(aVMProcessPriority); } \
  NS_IMETHOD SetVMProcessPriority(const PRUnichar * aVMProcessPriority) { return _to SetVMProcessPriority(aVMProcessPriority); } \
  NS_IMETHOD GetParavirtDebug(PRUnichar * *aParavirtDebug) { return _to GetParavirtDebug(aParavirtDebug); } \
  NS_IMETHOD SetParavirtDebug(const PRUnichar * aParavirtDebug) { return _to SetParavirtDebug(aParavirtDebug); } \
  NS_IMETHOD GetCPUProfile(PRUnichar * *aCPUProfile) { return _to GetCPUProfile(aCPUProfile); } \
  NS_IMETHOD SetCPUProfile(const PRUnichar * aCPUProfile) { return _to SetCPUProfile(aCPUProfile); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IMachine(PRUint32 *aInternalAndReservedAttribute1IMachine) { return _to GetInternalAndReservedAttribute1IMachine(aInternalAndReservedAttribute1IMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IMachine(PRUint32 *aInternalAndReservedAttribute2IMachine) { return _to GetInternalAndReservedAttribute2IMachine(aInternalAndReservedAttribute2IMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IMachine(PRUint32 *aInternalAndReservedAttribute3IMachine) { return _to GetInternalAndReservedAttribute3IMachine(aInternalAndReservedAttribute3IMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IMachine(PRUint32 *aInternalAndReservedAttribute4IMachine) { return _to GetInternalAndReservedAttribute4IMachine(aInternalAndReservedAttribute4IMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IMachine(PRUint32 *aInternalAndReservedAttribute5IMachine) { return _to GetInternalAndReservedAttribute5IMachine(aInternalAndReservedAttribute5IMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IMachine(PRUint32 *aInternalAndReservedAttribute6IMachine) { return _to GetInternalAndReservedAttribute6IMachine(aInternalAndReservedAttribute6IMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IMachine(PRUint32 *aInternalAndReservedAttribute7IMachine) { return _to GetInternalAndReservedAttribute7IMachine(aInternalAndReservedAttribute7IMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IMachine(PRUint32 *aInternalAndReservedAttribute8IMachine) { return _to GetInternalAndReservedAttribute8IMachine(aInternalAndReservedAttribute8IMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute9IMachine(PRUint32 *aInternalAndReservedAttribute9IMachine) { return _to GetInternalAndReservedAttribute9IMachine(aInternalAndReservedAttribute9IMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute10IMachine(PRUint32 *aInternalAndReservedAttribute10IMachine) { return _to GetInternalAndReservedAttribute10IMachine(aInternalAndReservedAttribute10IMachine); } \
  NS_IMETHOD LockMachine(ISession *session, PRUint32 lockType) { return _to LockMachine(session, lockType); } \
  NS_IMETHOD LaunchVMProcess(ISession *session, const PRUnichar *name, const PRUnichar *environment, IProgress **progress) { return _to LaunchVMProcess(session, name, environment, progress); } \
  NS_IMETHOD SetBootOrder(PRUint32 position, PRUint32 device) { return _to SetBootOrder(position, device); } \
  NS_IMETHOD GetBootOrder(PRUint32 position, PRUint32 *device) { return _to GetBootOrder(position, device); } \
  NS_IMETHOD AttachDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRUint32 type, IMedium *medium) { return _to AttachDevice(name, controllerPort, device, type, medium); } \
  NS_IMETHOD AttachDeviceWithoutMedium(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRUint32 type) { return _to AttachDeviceWithoutMedium(name, controllerPort, device, type); } \
  NS_IMETHOD DetachDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device) { return _to DetachDevice(name, controllerPort, device); } \
  NS_IMETHOD PassthroughDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRBool passthrough) { return _to PassthroughDevice(name, controllerPort, device, passthrough); } \
  NS_IMETHOD TemporaryEjectDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRBool temporaryEject) { return _to TemporaryEjectDevice(name, controllerPort, device, temporaryEject); } \
  NS_IMETHOD NonRotationalDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRBool nonRotational) { return _to NonRotationalDevice(name, controllerPort, device, nonRotational); } \
  NS_IMETHOD SetAutoDiscardForDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRBool discard) { return _to SetAutoDiscardForDevice(name, controllerPort, device, discard); } \
  NS_IMETHOD SetHotPluggableForDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRBool hotPluggable) { return _to SetHotPluggableForDevice(name, controllerPort, device, hotPluggable); } \
  NS_IMETHOD SetBandwidthGroupForDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, IBandwidthGroup *bandwidthGroup) { return _to SetBandwidthGroupForDevice(name, controllerPort, device, bandwidthGroup); } \
  NS_IMETHOD SetNoBandwidthGroupForDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device) { return _to SetNoBandwidthGroupForDevice(name, controllerPort, device); } \
  NS_IMETHOD UnmountMedium(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRBool force) { return _to UnmountMedium(name, controllerPort, device, force); } \
  NS_IMETHOD MountMedium(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, IMedium *medium, PRBool force) { return _to MountMedium(name, controllerPort, device, medium, force); } \
  NS_IMETHOD GetMedium(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, IMedium **medium) { return _to GetMedium(name, controllerPort, device, medium); } \
  NS_IMETHOD GetMediumAttachmentsOfController(const PRUnichar *name, PRUint32 *mediumAttachmentsSize, IMediumAttachment ***mediumAttachments) { return _to GetMediumAttachmentsOfController(name, mediumAttachmentsSize, mediumAttachments); } \
  NS_IMETHOD GetMediumAttachment(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, IMediumAttachment **attachment) { return _to GetMediumAttachment(name, controllerPort, device, attachment); } \
  NS_IMETHOD AttachHostPCIDevice(PRInt32 hostAddress, PRInt32 desiredGuestAddress, PRBool tryToUnbind) { return _to AttachHostPCIDevice(hostAddress, desiredGuestAddress, tryToUnbind); } \
  NS_IMETHOD DetachHostPCIDevice(PRInt32 hostAddress) { return _to DetachHostPCIDevice(hostAddress); } \
  NS_IMETHOD GetNetworkAdapter(PRUint32 slot, INetworkAdapter **adapter) { return _to GetNetworkAdapter(slot, adapter); } \
  NS_IMETHOD AddStorageController(const PRUnichar *name, PRUint32 connectionType, IStorageController **controller) { return _to AddStorageController(name, connectionType, controller); } \
  NS_IMETHOD GetStorageControllerByName(const PRUnichar *name, IStorageController **storageController) { return _to GetStorageControllerByName(name, storageController); } \
  NS_IMETHOD GetStorageControllerByInstance(PRUint32 connectionType, PRUint32 instance, IStorageController **storageController) { return _to GetStorageControllerByInstance(connectionType, instance, storageController); } \
  NS_IMETHOD RemoveStorageController(const PRUnichar *name) { return _to RemoveStorageController(name); } \
  NS_IMETHOD SetStorageControllerBootable(const PRUnichar *name, PRBool bootable) { return _to SetStorageControllerBootable(name, bootable); } \
  NS_IMETHOD AddUSBController(const PRUnichar *name, PRUint32 type, IUSBController **controller) { return _to AddUSBController(name, type, controller); } \
  NS_IMETHOD RemoveUSBController(const PRUnichar *name) { return _to RemoveUSBController(name); } \
  NS_IMETHOD GetUSBControllerByName(const PRUnichar *name, IUSBController **controller) { return _to GetUSBControllerByName(name, controller); } \
  NS_IMETHOD GetUSBControllerCountByType(PRUint32 type, PRUint32 *controllers) { return _to GetUSBControllerCountByType(type, controllers); } \
  NS_IMETHOD GetSerialPort(PRUint32 slot, ISerialPort **port) { return _to GetSerialPort(slot, port); } \
  NS_IMETHOD GetParallelPort(PRUint32 slot, IParallelPort **port) { return _to GetParallelPort(slot, port); } \
  NS_IMETHOD GetExtraDataKeys(PRUint32 *keysSize, PRUnichar ***keys) { return _to GetExtraDataKeys(keysSize, keys); } \
  NS_IMETHOD GetExtraData(const PRUnichar *key, PRUnichar **value) { return _to GetExtraData(key, value); } \
  NS_IMETHOD SetExtraData(const PRUnichar *key, const PRUnichar *value) { return _to SetExtraData(key, value); } \
  NS_IMETHOD GetCPUProperty(PRUint32 property, PRBool *value) { return _to GetCPUProperty(property, value); } \
  NS_IMETHOD SetCPUProperty(PRUint32 property, PRBool value) { return _to SetCPUProperty(property, value); } \
  NS_IMETHOD GetCPUIDLeaf(PRUint32 id, PRUint32 *valEax, PRUint32 *valEbx, PRUint32 *valEcx, PRUint32 *valEdx) { return _to GetCPUIDLeaf(id, valEax, valEbx, valEcx, valEdx); } \
  NS_IMETHOD SetCPUIDLeaf(PRUint32 id, PRUint32 valEax, PRUint32 valEbx, PRUint32 valEcx, PRUint32 valEdx) { return _to SetCPUIDLeaf(id, valEax, valEbx, valEcx, valEdx); } \
  NS_IMETHOD RemoveCPUIDLeaf(PRUint32 id) { return _to RemoveCPUIDLeaf(id); } \
  NS_IMETHOD RemoveAllCPUIDLeaves(void) { return _to RemoveAllCPUIDLeaves(); } \
  NS_IMETHOD GetHWVirtExProperty(PRUint32 property, PRBool *value) { return _to GetHWVirtExProperty(property, value); } \
  NS_IMETHOD SetHWVirtExProperty(PRUint32 property, PRBool value) { return _to SetHWVirtExProperty(property, value); } \
  NS_IMETHOD SetSettingsFilePath(const PRUnichar *settingsFilePath, IProgress **progress) { return _to SetSettingsFilePath(settingsFilePath, progress); } \
  NS_IMETHOD SaveSettings(void) { return _to SaveSettings(); } \
  NS_IMETHOD DiscardSettings(void) { return _to DiscardSettings(); } \
  NS_IMETHOD Unregister(PRUint32 cleanupMode, PRUint32 *mediaSize, IMedium ***media) { return _to Unregister(cleanupMode, mediaSize, media); } \
  NS_IMETHOD DeleteConfig(PRUint32 mediaSize, IMedium **media, IProgress **progress) { return _to DeleteConfig(mediaSize, media, progress); } \
  NS_IMETHOD ExportTo(IAppliance *appliance, const PRUnichar *location, IVirtualSystemDescription **description) { return _to ExportTo(appliance, location, description); } \
  NS_IMETHOD FindSnapshot(const PRUnichar *nameOrId, ISnapshot **snapshot) { return _to FindSnapshot(nameOrId, snapshot); } \
  NS_IMETHOD CreateSharedFolder(const PRUnichar *name, const PRUnichar *hostPath, PRBool writable, PRBool automount) { return _to CreateSharedFolder(name, hostPath, writable, automount); } \
  NS_IMETHOD RemoveSharedFolder(const PRUnichar *name) { return _to RemoveSharedFolder(name); } \
  NS_IMETHOD CanShowConsoleWindow(PRBool *canShow) { return _to CanShowConsoleWindow(canShow); } \
  NS_IMETHOD ShowConsoleWindow(PRInt64 *winId) { return _to ShowConsoleWindow(winId); } \
  NS_IMETHOD GetGuestProperty(const PRUnichar *name, PRUnichar **value, PRInt64 *timestamp, PRUnichar **flags) { return _to GetGuestProperty(name, value, timestamp, flags); } \
  NS_IMETHOD GetGuestPropertyValue(const PRUnichar *property, PRUnichar **value) { return _to GetGuestPropertyValue(property, value); } \
  NS_IMETHOD GetGuestPropertyTimestamp(const PRUnichar *property, PRInt64 *value) { return _to GetGuestPropertyTimestamp(property, value); } \
  NS_IMETHOD SetGuestProperty(const PRUnichar *property, const PRUnichar *value, const PRUnichar *flags) { return _to SetGuestProperty(property, value, flags); } \
  NS_IMETHOD SetGuestPropertyValue(const PRUnichar *property, const PRUnichar *value) { return _to SetGuestPropertyValue(property, value); } \
  NS_IMETHOD DeleteGuestProperty(const PRUnichar *name) { return _to DeleteGuestProperty(name); } \
  NS_IMETHOD EnumerateGuestProperties(const PRUnichar *patterns, PRUint32 *namesSize, PRUnichar ***names, PRUint32 *valuesSize, PRUnichar ***values, PRUint32 *timestampsSize, PRInt64 **timestamps, PRUint32 *flagsSize, PRUnichar ***flags) { return _to EnumerateGuestProperties(patterns, namesSize, names, valuesSize, values, timestampsSize, timestamps, flagsSize, flags); } \
  NS_IMETHOD QuerySavedGuestScreenInfo(PRUint32 screenId, PRUint32 *originX, PRUint32 *originY, PRUint32 *width, PRUint32 *height, PRBool *enabled) { return _to QuerySavedGuestScreenInfo(screenId, originX, originY, width, height, enabled); } \
  NS_IMETHOD ReadSavedThumbnailToArray(PRUint32 screenId, PRUint32 bitmapFormat, PRUint32 *width, PRUint32 *height, PRUint32 *dataSize, PRUint8 **data) { return _to ReadSavedThumbnailToArray(screenId, bitmapFormat, width, height, dataSize, data); } \
  NS_IMETHOD QuerySavedScreenshotInfo(PRUint32 screenId, PRUint32 *width, PRUint32 *height, PRUint32 *bitmapFormatsSize, PRUint32 **bitmapFormats) { return _to QuerySavedScreenshotInfo(screenId, width, height, bitmapFormatsSize, bitmapFormats); } \
  NS_IMETHOD ReadSavedScreenshotToArray(PRUint32 screenId, PRUint32 bitmapFormat, PRUint32 *width, PRUint32 *height, PRUint32 *dataSize, PRUint8 **data) { return _to ReadSavedScreenshotToArray(screenId, bitmapFormat, width, height, dataSize, data); } \
  NS_IMETHOD HotPlugCPU(PRUint32 cpu) { return _to HotPlugCPU(cpu); } \
  NS_IMETHOD HotUnplugCPU(PRUint32 cpu) { return _to HotUnplugCPU(cpu); } \
  NS_IMETHOD GetCPUStatus(PRUint32 cpu, PRBool *attached) { return _to GetCPUStatus(cpu, attached); } \
  NS_IMETHOD GetEffectiveParavirtProvider(PRUint32 *paravirtProvider) { return _to GetEffectiveParavirtProvider(paravirtProvider); } \
  NS_IMETHOD QueryLogFilename(PRUint32 idx, PRUnichar **filename) { return _to QueryLogFilename(idx, filename); } \
  NS_IMETHOD ReadLog(PRUint32 idx, PRInt64 offset, PRInt64 size, PRUint32 *dataSize, PRUint8 **data) { return _to ReadLog(idx, offset, size, dataSize, data); } \
  NS_IMETHOD CloneTo(IMachine *target, PRUint32 mode, PRUint32 optionsSize, PRUint32 *options, IProgress **progress) { return _to CloneTo(target, mode, optionsSize, options, progress); } \
  NS_IMETHOD SaveState(IProgress **progress) { return _to SaveState(progress); } \
  NS_IMETHOD AdoptSavedState(const PRUnichar *savedStateFile) { return _to AdoptSavedState(savedStateFile); } \
  NS_IMETHOD DiscardSavedState(PRBool fRemoveFile) { return _to DiscardSavedState(fRemoveFile); } \
  NS_IMETHOD TakeSnapshot(const PRUnichar *name, const PRUnichar *description, PRBool pause, PRUnichar **id, IProgress **progress) { return _to TakeSnapshot(name, description, pause, id, progress); } \
  NS_IMETHOD DeleteSnapshot(const PRUnichar *id, IProgress **progress) { return _to DeleteSnapshot(id, progress); } \
  NS_IMETHOD DeleteSnapshotAndAllChildren(const PRUnichar *id, IProgress **progress) { return _to DeleteSnapshotAndAllChildren(id, progress); } \
  NS_IMETHOD DeleteSnapshotRange(const PRUnichar *startId, const PRUnichar *endId, IProgress **progress) { return _to DeleteSnapshotRange(startId, endId, progress); } \
  NS_IMETHOD RestoreSnapshot(ISnapshot *snapshot, IProgress **progress) { return _to RestoreSnapshot(snapshot, progress); } \
  NS_IMETHOD ApplyDefaults(const PRUnichar *flags) { return _to ApplyDefaults(flags); } \
  NS_IMETHOD InternalAndReservedMethod1IMachine(void) { return _to InternalAndReservedMethod1IMachine(); } \
  NS_IMETHOD InternalAndReservedMethod2IMachine(void) { return _to InternalAndReservedMethod2IMachine(); } \
  NS_IMETHOD InternalAndReservedMethod3IMachine(void) { return _to InternalAndReservedMethod3IMachine(); } \
  NS_IMETHOD InternalAndReservedMethod4IMachine(void) { return _to InternalAndReservedMethod4IMachine(); } \
  NS_IMETHOD InternalAndReservedMethod5IMachine(void) { return _to InternalAndReservedMethod5IMachine(); } \
  NS_IMETHOD InternalAndReservedMethod6IMachine(void) { return _to InternalAndReservedMethod6IMachine(); } \
  NS_IMETHOD InternalAndReservedMethod7IMachine(void) { return _to InternalAndReservedMethod7IMachine(); } \
  NS_IMETHOD InternalAndReservedMethod8IMachine(void) { return _to InternalAndReservedMethod8IMachine(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IMACHINE(_to) \
  NS_IMETHOD GetParent(IVirtualBox * *aParent) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetParent(aParent); } \
  NS_IMETHOD GetIcon(PRUint32 *iconSize, PRUint8 **icon) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIcon(iconSize, icon); } \
  NS_IMETHOD SetIcon(PRUint32 iconSize, PRUint8 *icon) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIcon(iconSize, icon); } \
  NS_IMETHOD GetAccessible(PRBool *aAccessible) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAccessible(aAccessible); } \
  NS_IMETHOD GetAccessError(IVirtualBoxErrorInfo * *aAccessError) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAccessError(aAccessError); } \
  NS_IMETHOD GetName(PRUnichar * *aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
  NS_IMETHOD SetName(const PRUnichar * aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetName(aName); } \
  NS_IMETHOD GetDescription(PRUnichar * *aDescription) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDescription(aDescription); } \
  NS_IMETHOD SetDescription(const PRUnichar * aDescription) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDescription(aDescription); } \
  NS_IMETHOD GetId(PRUnichar * *aId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetId(aId); } \
  NS_IMETHOD GetGroups(PRUint32 *groupsSize, PRUnichar ***groups) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGroups(groupsSize, groups); } \
  NS_IMETHOD SetGroups(PRUint32 groupsSize, const PRUnichar **groups) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetGroups(groupsSize, groups); } \
  NS_IMETHOD GetOSTypeId(PRUnichar * *aOSTypeId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOSTypeId(aOSTypeId); } \
  NS_IMETHOD SetOSTypeId(const PRUnichar * aOSTypeId) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetOSTypeId(aOSTypeId); } \
  NS_IMETHOD GetHardwareVersion(PRUnichar * *aHardwareVersion) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHardwareVersion(aHardwareVersion); } \
  NS_IMETHOD SetHardwareVersion(const PRUnichar * aHardwareVersion) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetHardwareVersion(aHardwareVersion); } \
  NS_IMETHOD GetHardwareUUID(PRUnichar * *aHardwareUUID) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHardwareUUID(aHardwareUUID); } \
  NS_IMETHOD SetHardwareUUID(const PRUnichar * aHardwareUUID) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetHardwareUUID(aHardwareUUID); } \
  NS_IMETHOD GetCPUCount(PRUint32 *aCPUCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCPUCount(aCPUCount); } \
  NS_IMETHOD SetCPUCount(PRUint32 aCPUCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCPUCount(aCPUCount); } \
  NS_IMETHOD GetCPUHotPlugEnabled(PRBool *aCPUHotPlugEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCPUHotPlugEnabled(aCPUHotPlugEnabled); } \
  NS_IMETHOD SetCPUHotPlugEnabled(PRBool aCPUHotPlugEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCPUHotPlugEnabled(aCPUHotPlugEnabled); } \
  NS_IMETHOD GetCPUExecutionCap(PRUint32 *aCPUExecutionCap) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCPUExecutionCap(aCPUExecutionCap); } \
  NS_IMETHOD SetCPUExecutionCap(PRUint32 aCPUExecutionCap) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCPUExecutionCap(aCPUExecutionCap); } \
  NS_IMETHOD GetCPUIDPortabilityLevel(PRUint32 *aCPUIDPortabilityLevel) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCPUIDPortabilityLevel(aCPUIDPortabilityLevel); } \
  NS_IMETHOD SetCPUIDPortabilityLevel(PRUint32 aCPUIDPortabilityLevel) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCPUIDPortabilityLevel(aCPUIDPortabilityLevel); } \
  NS_IMETHOD GetMemorySize(PRUint32 *aMemorySize) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMemorySize(aMemorySize); } \
  NS_IMETHOD SetMemorySize(PRUint32 aMemorySize) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMemorySize(aMemorySize); } \
  NS_IMETHOD GetMemoryBalloonSize(PRUint32 *aMemoryBalloonSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMemoryBalloonSize(aMemoryBalloonSize); } \
  NS_IMETHOD SetMemoryBalloonSize(PRUint32 aMemoryBalloonSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMemoryBalloonSize(aMemoryBalloonSize); } \
  NS_IMETHOD GetPageFusionEnabled(PRBool *aPageFusionEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPageFusionEnabled(aPageFusionEnabled); } \
  NS_IMETHOD SetPageFusionEnabled(PRBool aPageFusionEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPageFusionEnabled(aPageFusionEnabled); } \
  NS_IMETHOD GetGraphicsControllerType(PRUint32 *aGraphicsControllerType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGraphicsControllerType(aGraphicsControllerType); } \
  NS_IMETHOD SetGraphicsControllerType(PRUint32 aGraphicsControllerType) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetGraphicsControllerType(aGraphicsControllerType); } \
  NS_IMETHOD GetVRAMSize(PRUint32 *aVRAMSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVRAMSize(aVRAMSize); } \
  NS_IMETHOD SetVRAMSize(PRUint32 aVRAMSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetVRAMSize(aVRAMSize); } \
  NS_IMETHOD GetAccelerate3DEnabled(PRBool *aAccelerate3DEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAccelerate3DEnabled(aAccelerate3DEnabled); } \
  NS_IMETHOD SetAccelerate3DEnabled(PRBool aAccelerate3DEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAccelerate3DEnabled(aAccelerate3DEnabled); } \
  NS_IMETHOD GetAccelerate2DVideoEnabled(PRBool *aAccelerate2DVideoEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAccelerate2DVideoEnabled(aAccelerate2DVideoEnabled); } \
  NS_IMETHOD SetAccelerate2DVideoEnabled(PRBool aAccelerate2DVideoEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAccelerate2DVideoEnabled(aAccelerate2DVideoEnabled); } \
  NS_IMETHOD GetMonitorCount(PRUint32 *aMonitorCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMonitorCount(aMonitorCount); } \
  NS_IMETHOD SetMonitorCount(PRUint32 aMonitorCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMonitorCount(aMonitorCount); } \
  NS_IMETHOD GetVideoCaptureEnabled(PRBool *aVideoCaptureEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVideoCaptureEnabled(aVideoCaptureEnabled); } \
  NS_IMETHOD SetVideoCaptureEnabled(PRBool aVideoCaptureEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetVideoCaptureEnabled(aVideoCaptureEnabled); } \
  NS_IMETHOD GetVideoCaptureScreens(PRUint32 *videoCaptureScreensSize, PRBool **videoCaptureScreens) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVideoCaptureScreens(videoCaptureScreensSize, videoCaptureScreens); } \
  NS_IMETHOD SetVideoCaptureScreens(PRUint32 videoCaptureScreensSize, PRBool *videoCaptureScreens) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetVideoCaptureScreens(videoCaptureScreensSize, videoCaptureScreens); } \
  NS_IMETHOD GetVideoCaptureFile(PRUnichar * *aVideoCaptureFile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVideoCaptureFile(aVideoCaptureFile); } \
  NS_IMETHOD SetVideoCaptureFile(const PRUnichar * aVideoCaptureFile) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetVideoCaptureFile(aVideoCaptureFile); } \
  NS_IMETHOD GetVideoCaptureWidth(PRUint32 *aVideoCaptureWidth) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVideoCaptureWidth(aVideoCaptureWidth); } \
  NS_IMETHOD SetVideoCaptureWidth(PRUint32 aVideoCaptureWidth) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetVideoCaptureWidth(aVideoCaptureWidth); } \
  NS_IMETHOD GetVideoCaptureHeight(PRUint32 *aVideoCaptureHeight) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVideoCaptureHeight(aVideoCaptureHeight); } \
  NS_IMETHOD SetVideoCaptureHeight(PRUint32 aVideoCaptureHeight) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetVideoCaptureHeight(aVideoCaptureHeight); } \
  NS_IMETHOD GetVideoCaptureRate(PRUint32 *aVideoCaptureRate) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVideoCaptureRate(aVideoCaptureRate); } \
  NS_IMETHOD SetVideoCaptureRate(PRUint32 aVideoCaptureRate) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetVideoCaptureRate(aVideoCaptureRate); } \
  NS_IMETHOD GetVideoCaptureFPS(PRUint32 *aVideoCaptureFPS) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVideoCaptureFPS(aVideoCaptureFPS); } \
  NS_IMETHOD SetVideoCaptureFPS(PRUint32 aVideoCaptureFPS) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetVideoCaptureFPS(aVideoCaptureFPS); } \
  NS_IMETHOD GetVideoCaptureMaxTime(PRUint32 *aVideoCaptureMaxTime) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVideoCaptureMaxTime(aVideoCaptureMaxTime); } \
  NS_IMETHOD SetVideoCaptureMaxTime(PRUint32 aVideoCaptureMaxTime) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetVideoCaptureMaxTime(aVideoCaptureMaxTime); } \
  NS_IMETHOD GetVideoCaptureMaxFileSize(PRUint32 *aVideoCaptureMaxFileSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVideoCaptureMaxFileSize(aVideoCaptureMaxFileSize); } \
  NS_IMETHOD SetVideoCaptureMaxFileSize(PRUint32 aVideoCaptureMaxFileSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetVideoCaptureMaxFileSize(aVideoCaptureMaxFileSize); } \
  NS_IMETHOD GetVideoCaptureOptions(PRUnichar * *aVideoCaptureOptions) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVideoCaptureOptions(aVideoCaptureOptions); } \
  NS_IMETHOD SetVideoCaptureOptions(const PRUnichar * aVideoCaptureOptions) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetVideoCaptureOptions(aVideoCaptureOptions); } \
  NS_IMETHOD GetBIOSSettings(IBIOSSettings * *aBIOSSettings) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBIOSSettings(aBIOSSettings); } \
  NS_IMETHOD GetFirmwareType(PRUint32 *aFirmwareType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFirmwareType(aFirmwareType); } \
  NS_IMETHOD SetFirmwareType(PRUint32 aFirmwareType) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFirmwareType(aFirmwareType); } \
  NS_IMETHOD GetPointingHIDType(PRUint32 *aPointingHIDType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPointingHIDType(aPointingHIDType); } \
  NS_IMETHOD SetPointingHIDType(PRUint32 aPointingHIDType) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPointingHIDType(aPointingHIDType); } \
  NS_IMETHOD GetKeyboardHIDType(PRUint32 *aKeyboardHIDType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetKeyboardHIDType(aKeyboardHIDType); } \
  NS_IMETHOD SetKeyboardHIDType(PRUint32 aKeyboardHIDType) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetKeyboardHIDType(aKeyboardHIDType); } \
  NS_IMETHOD GetHPETEnabled(PRBool *aHPETEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHPETEnabled(aHPETEnabled); } \
  NS_IMETHOD SetHPETEnabled(PRBool aHPETEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetHPETEnabled(aHPETEnabled); } \
  NS_IMETHOD GetChipsetType(PRUint32 *aChipsetType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetChipsetType(aChipsetType); } \
  NS_IMETHOD SetChipsetType(PRUint32 aChipsetType) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetChipsetType(aChipsetType); } \
  NS_IMETHOD GetSnapshotFolder(PRUnichar * *aSnapshotFolder) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSnapshotFolder(aSnapshotFolder); } \
  NS_IMETHOD SetSnapshotFolder(const PRUnichar * aSnapshotFolder) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSnapshotFolder(aSnapshotFolder); } \
  NS_IMETHOD GetVRDEServer(IVRDEServer * *aVRDEServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVRDEServer(aVRDEServer); } \
  NS_IMETHOD GetEmulatedUSBCardReaderEnabled(PRBool *aEmulatedUSBCardReaderEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEmulatedUSBCardReaderEnabled(aEmulatedUSBCardReaderEnabled); } \
  NS_IMETHOD SetEmulatedUSBCardReaderEnabled(PRBool aEmulatedUSBCardReaderEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetEmulatedUSBCardReaderEnabled(aEmulatedUSBCardReaderEnabled); } \
  NS_IMETHOD GetMediumAttachments(PRUint32 *mediumAttachmentsSize, IMediumAttachment ***mediumAttachments) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMediumAttachments(mediumAttachmentsSize, mediumAttachments); } \
  NS_IMETHOD GetUSBControllers(PRUint32 *USBControllersSize, IUSBController ***USBControllers) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUSBControllers(USBControllersSize, USBControllers); } \
  NS_IMETHOD GetUSBDeviceFilters(IUSBDeviceFilters * *aUSBDeviceFilters) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUSBDeviceFilters(aUSBDeviceFilters); } \
  NS_IMETHOD GetAudioAdapter(IAudioAdapter * *aAudioAdapter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAudioAdapter(aAudioAdapter); } \
  NS_IMETHOD GetStorageControllers(PRUint32 *storageControllersSize, IStorageController ***storageControllers) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStorageControllers(storageControllersSize, storageControllers); } \
  NS_IMETHOD GetSettingsFilePath(PRUnichar * *aSettingsFilePath) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSettingsFilePath(aSettingsFilePath); } \
  NS_IMETHOD GetSettingsModified(PRBool *aSettingsModified) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSettingsModified(aSettingsModified); } \
  NS_IMETHOD GetSessionState(PRUint32 *aSessionState) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSessionState(aSessionState); } \
  NS_IMETHOD GetSessionName(PRUnichar * *aSessionName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSessionName(aSessionName); } \
  NS_IMETHOD GetSessionPID(PRUint32 *aSessionPID) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSessionPID(aSessionPID); } \
  NS_IMETHOD GetState(PRUint32 *aState) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetState(aState); } \
  NS_IMETHOD GetLastStateChange(PRInt64 *aLastStateChange) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLastStateChange(aLastStateChange); } \
  NS_IMETHOD GetStateFilePath(PRUnichar * *aStateFilePath) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStateFilePath(aStateFilePath); } \
  NS_IMETHOD GetLogFolder(PRUnichar * *aLogFolder) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLogFolder(aLogFolder); } \
  NS_IMETHOD GetCurrentSnapshot(ISnapshot * *aCurrentSnapshot) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCurrentSnapshot(aCurrentSnapshot); } \
  NS_IMETHOD GetSnapshotCount(PRUint32 *aSnapshotCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSnapshotCount(aSnapshotCount); } \
  NS_IMETHOD GetCurrentStateModified(PRBool *aCurrentStateModified) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCurrentStateModified(aCurrentStateModified); } \
  NS_IMETHOD GetSharedFolders(PRUint32 *sharedFoldersSize, ISharedFolder ***sharedFolders) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSharedFolders(sharedFoldersSize, sharedFolders); } \
  NS_IMETHOD GetClipboardMode(PRUint32 *aClipboardMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetClipboardMode(aClipboardMode); } \
  NS_IMETHOD SetClipboardMode(PRUint32 aClipboardMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetClipboardMode(aClipboardMode); } \
  NS_IMETHOD GetDnDMode(PRUint32 *aDnDMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDnDMode(aDnDMode); } \
  NS_IMETHOD SetDnDMode(PRUint32 aDnDMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDnDMode(aDnDMode); } \
  NS_IMETHOD GetTeleporterEnabled(PRBool *aTeleporterEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTeleporterEnabled(aTeleporterEnabled); } \
  NS_IMETHOD SetTeleporterEnabled(PRBool aTeleporterEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetTeleporterEnabled(aTeleporterEnabled); } \
  NS_IMETHOD GetTeleporterPort(PRUint32 *aTeleporterPort) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTeleporterPort(aTeleporterPort); } \
  NS_IMETHOD SetTeleporterPort(PRUint32 aTeleporterPort) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetTeleporterPort(aTeleporterPort); } \
  NS_IMETHOD GetTeleporterAddress(PRUnichar * *aTeleporterAddress) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTeleporterAddress(aTeleporterAddress); } \
  NS_IMETHOD SetTeleporterAddress(const PRUnichar * aTeleporterAddress) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetTeleporterAddress(aTeleporterAddress); } \
  NS_IMETHOD GetTeleporterPassword(PRUnichar * *aTeleporterPassword) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTeleporterPassword(aTeleporterPassword); } \
  NS_IMETHOD SetTeleporterPassword(const PRUnichar * aTeleporterPassword) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetTeleporterPassword(aTeleporterPassword); } \
  NS_IMETHOD GetParavirtProvider(PRUint32 *aParavirtProvider) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetParavirtProvider(aParavirtProvider); } \
  NS_IMETHOD SetParavirtProvider(PRUint32 aParavirtProvider) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetParavirtProvider(aParavirtProvider); } \
  NS_IMETHOD GetFaultToleranceState(PRUint32 *aFaultToleranceState) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFaultToleranceState(aFaultToleranceState); } \
  NS_IMETHOD SetFaultToleranceState(PRUint32 aFaultToleranceState) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFaultToleranceState(aFaultToleranceState); } \
  NS_IMETHOD GetFaultTolerancePort(PRUint32 *aFaultTolerancePort) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFaultTolerancePort(aFaultTolerancePort); } \
  NS_IMETHOD SetFaultTolerancePort(PRUint32 aFaultTolerancePort) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFaultTolerancePort(aFaultTolerancePort); } \
  NS_IMETHOD GetFaultToleranceAddress(PRUnichar * *aFaultToleranceAddress) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFaultToleranceAddress(aFaultToleranceAddress); } \
  NS_IMETHOD SetFaultToleranceAddress(const PRUnichar * aFaultToleranceAddress) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFaultToleranceAddress(aFaultToleranceAddress); } \
  NS_IMETHOD GetFaultTolerancePassword(PRUnichar * *aFaultTolerancePassword) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFaultTolerancePassword(aFaultTolerancePassword); } \
  NS_IMETHOD SetFaultTolerancePassword(const PRUnichar * aFaultTolerancePassword) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFaultTolerancePassword(aFaultTolerancePassword); } \
  NS_IMETHOD GetFaultToleranceSyncInterval(PRUint32 *aFaultToleranceSyncInterval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFaultToleranceSyncInterval(aFaultToleranceSyncInterval); } \
  NS_IMETHOD SetFaultToleranceSyncInterval(PRUint32 aFaultToleranceSyncInterval) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFaultToleranceSyncInterval(aFaultToleranceSyncInterval); } \
  NS_IMETHOD GetRTCUseUTC(PRBool *aRTCUseUTC) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRTCUseUTC(aRTCUseUTC); } \
  NS_IMETHOD SetRTCUseUTC(PRBool aRTCUseUTC) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetRTCUseUTC(aRTCUseUTC); } \
  NS_IMETHOD GetIOCacheEnabled(PRBool *aIOCacheEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIOCacheEnabled(aIOCacheEnabled); } \
  NS_IMETHOD SetIOCacheEnabled(PRBool aIOCacheEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIOCacheEnabled(aIOCacheEnabled); } \
  NS_IMETHOD GetIOCacheSize(PRUint32 *aIOCacheSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIOCacheSize(aIOCacheSize); } \
  NS_IMETHOD SetIOCacheSize(PRUint32 aIOCacheSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIOCacheSize(aIOCacheSize); } \
  NS_IMETHOD GetPCIDeviceAssignments(PRUint32 *PCIDeviceAssignmentsSize, IPCIDeviceAttachment ***PCIDeviceAssignments) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPCIDeviceAssignments(PCIDeviceAssignmentsSize, PCIDeviceAssignments); } \
  NS_IMETHOD GetBandwidthControl(IBandwidthControl * *aBandwidthControl) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBandwidthControl(aBandwidthControl); } \
  NS_IMETHOD GetTracingEnabled(PRBool *aTracingEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTracingEnabled(aTracingEnabled); } \
  NS_IMETHOD SetTracingEnabled(PRBool aTracingEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetTracingEnabled(aTracingEnabled); } \
  NS_IMETHOD GetTracingConfig(PRUnichar * *aTracingConfig) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTracingConfig(aTracingConfig); } \
  NS_IMETHOD SetTracingConfig(const PRUnichar * aTracingConfig) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetTracingConfig(aTracingConfig); } \
  NS_IMETHOD GetAllowTracingToAccessVM(PRBool *aAllowTracingToAccessVM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAllowTracingToAccessVM(aAllowTracingToAccessVM); } \
  NS_IMETHOD SetAllowTracingToAccessVM(PRBool aAllowTracingToAccessVM) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAllowTracingToAccessVM(aAllowTracingToAccessVM); } \
  NS_IMETHOD GetAutostartEnabled(PRBool *aAutostartEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAutostartEnabled(aAutostartEnabled); } \
  NS_IMETHOD SetAutostartEnabled(PRBool aAutostartEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAutostartEnabled(aAutostartEnabled); } \
  NS_IMETHOD GetAutostartDelay(PRUint32 *aAutostartDelay) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAutostartDelay(aAutostartDelay); } \
  NS_IMETHOD SetAutostartDelay(PRUint32 aAutostartDelay) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAutostartDelay(aAutostartDelay); } \
  NS_IMETHOD GetAutostopType(PRUint32 *aAutostopType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAutostopType(aAutostopType); } \
  NS_IMETHOD SetAutostopType(PRUint32 aAutostopType) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAutostopType(aAutostopType); } \
  NS_IMETHOD GetDefaultFrontend(PRUnichar * *aDefaultFrontend) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDefaultFrontend(aDefaultFrontend); } \
  NS_IMETHOD SetDefaultFrontend(const PRUnichar * aDefaultFrontend) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDefaultFrontend(aDefaultFrontend); } \
  NS_IMETHOD GetUSBProxyAvailable(PRBool *aUSBProxyAvailable) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUSBProxyAvailable(aUSBProxyAvailable); } \
  NS_IMETHOD GetVMProcessPriority(PRUnichar * *aVMProcessPriority) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVMProcessPriority(aVMProcessPriority); } \
  NS_IMETHOD SetVMProcessPriority(const PRUnichar * aVMProcessPriority) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetVMProcessPriority(aVMProcessPriority); } \
  NS_IMETHOD GetParavirtDebug(PRUnichar * *aParavirtDebug) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetParavirtDebug(aParavirtDebug); } \
  NS_IMETHOD SetParavirtDebug(const PRUnichar * aParavirtDebug) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetParavirtDebug(aParavirtDebug); } \
  NS_IMETHOD GetCPUProfile(PRUnichar * *aCPUProfile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCPUProfile(aCPUProfile); } \
  NS_IMETHOD SetCPUProfile(const PRUnichar * aCPUProfile) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCPUProfile(aCPUProfile); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IMachine(PRUint32 *aInternalAndReservedAttribute1IMachine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IMachine(aInternalAndReservedAttribute1IMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IMachine(PRUint32 *aInternalAndReservedAttribute2IMachine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IMachine(aInternalAndReservedAttribute2IMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IMachine(PRUint32 *aInternalAndReservedAttribute3IMachine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IMachine(aInternalAndReservedAttribute3IMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IMachine(PRUint32 *aInternalAndReservedAttribute4IMachine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IMachine(aInternalAndReservedAttribute4IMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IMachine(PRUint32 *aInternalAndReservedAttribute5IMachine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IMachine(aInternalAndReservedAttribute5IMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IMachine(PRUint32 *aInternalAndReservedAttribute6IMachine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IMachine(aInternalAndReservedAttribute6IMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IMachine(PRUint32 *aInternalAndReservedAttribute7IMachine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IMachine(aInternalAndReservedAttribute7IMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IMachine(PRUint32 *aInternalAndReservedAttribute8IMachine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IMachine(aInternalAndReservedAttribute8IMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute9IMachine(PRUint32 *aInternalAndReservedAttribute9IMachine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute9IMachine(aInternalAndReservedAttribute9IMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute10IMachine(PRUint32 *aInternalAndReservedAttribute10IMachine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute10IMachine(aInternalAndReservedAttribute10IMachine); } \
  NS_IMETHOD LockMachine(ISession *session, PRUint32 lockType) { return !_to ? NS_ERROR_NULL_POINTER : _to->LockMachine(session, lockType); } \
  NS_IMETHOD LaunchVMProcess(ISession *session, const PRUnichar *name, const PRUnichar *environment, IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->LaunchVMProcess(session, name, environment, progress); } \
  NS_IMETHOD SetBootOrder(PRUint32 position, PRUint32 device) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetBootOrder(position, device); } \
  NS_IMETHOD GetBootOrder(PRUint32 position, PRUint32 *device) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBootOrder(position, device); } \
  NS_IMETHOD AttachDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRUint32 type, IMedium *medium) { return !_to ? NS_ERROR_NULL_POINTER : _to->AttachDevice(name, controllerPort, device, type, medium); } \
  NS_IMETHOD AttachDeviceWithoutMedium(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRUint32 type) { return !_to ? NS_ERROR_NULL_POINTER : _to->AttachDeviceWithoutMedium(name, controllerPort, device, type); } \
  NS_IMETHOD DetachDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device) { return !_to ? NS_ERROR_NULL_POINTER : _to->DetachDevice(name, controllerPort, device); } \
  NS_IMETHOD PassthroughDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRBool passthrough) { return !_to ? NS_ERROR_NULL_POINTER : _to->PassthroughDevice(name, controllerPort, device, passthrough); } \
  NS_IMETHOD TemporaryEjectDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRBool temporaryEject) { return !_to ? NS_ERROR_NULL_POINTER : _to->TemporaryEjectDevice(name, controllerPort, device, temporaryEject); } \
  NS_IMETHOD NonRotationalDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRBool nonRotational) { return !_to ? NS_ERROR_NULL_POINTER : _to->NonRotationalDevice(name, controllerPort, device, nonRotational); } \
  NS_IMETHOD SetAutoDiscardForDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRBool discard) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAutoDiscardForDevice(name, controllerPort, device, discard); } \
  NS_IMETHOD SetHotPluggableForDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRBool hotPluggable) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetHotPluggableForDevice(name, controllerPort, device, hotPluggable); } \
  NS_IMETHOD SetBandwidthGroupForDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, IBandwidthGroup *bandwidthGroup) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetBandwidthGroupForDevice(name, controllerPort, device, bandwidthGroup); } \
  NS_IMETHOD SetNoBandwidthGroupForDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetNoBandwidthGroupForDevice(name, controllerPort, device); } \
  NS_IMETHOD UnmountMedium(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRBool force) { return !_to ? NS_ERROR_NULL_POINTER : _to->UnmountMedium(name, controllerPort, device, force); } \
  NS_IMETHOD MountMedium(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, IMedium *medium, PRBool force) { return !_to ? NS_ERROR_NULL_POINTER : _to->MountMedium(name, controllerPort, device, medium, force); } \
  NS_IMETHOD GetMedium(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, IMedium **medium) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMedium(name, controllerPort, device, medium); } \
  NS_IMETHOD GetMediumAttachmentsOfController(const PRUnichar *name, PRUint32 *mediumAttachmentsSize, IMediumAttachment ***mediumAttachments) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMediumAttachmentsOfController(name, mediumAttachmentsSize, mediumAttachments); } \
  NS_IMETHOD GetMediumAttachment(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, IMediumAttachment **attachment) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMediumAttachment(name, controllerPort, device, attachment); } \
  NS_IMETHOD AttachHostPCIDevice(PRInt32 hostAddress, PRInt32 desiredGuestAddress, PRBool tryToUnbind) { return !_to ? NS_ERROR_NULL_POINTER : _to->AttachHostPCIDevice(hostAddress, desiredGuestAddress, tryToUnbind); } \
  NS_IMETHOD DetachHostPCIDevice(PRInt32 hostAddress) { return !_to ? NS_ERROR_NULL_POINTER : _to->DetachHostPCIDevice(hostAddress); } \
  NS_IMETHOD GetNetworkAdapter(PRUint32 slot, INetworkAdapter **adapter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNetworkAdapter(slot, adapter); } \
  NS_IMETHOD AddStorageController(const PRUnichar *name, PRUint32 connectionType, IStorageController **controller) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddStorageController(name, connectionType, controller); } \
  NS_IMETHOD GetStorageControllerByName(const PRUnichar *name, IStorageController **storageController) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStorageControllerByName(name, storageController); } \
  NS_IMETHOD GetStorageControllerByInstance(PRUint32 connectionType, PRUint32 instance, IStorageController **storageController) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStorageControllerByInstance(connectionType, instance, storageController); } \
  NS_IMETHOD RemoveStorageController(const PRUnichar *name) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveStorageController(name); } \
  NS_IMETHOD SetStorageControllerBootable(const PRUnichar *name, PRBool bootable) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetStorageControllerBootable(name, bootable); } \
  NS_IMETHOD AddUSBController(const PRUnichar *name, PRUint32 type, IUSBController **controller) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddUSBController(name, type, controller); } \
  NS_IMETHOD RemoveUSBController(const PRUnichar *name) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveUSBController(name); } \
  NS_IMETHOD GetUSBControllerByName(const PRUnichar *name, IUSBController **controller) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUSBControllerByName(name, controller); } \
  NS_IMETHOD GetUSBControllerCountByType(PRUint32 type, PRUint32 *controllers) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUSBControllerCountByType(type, controllers); } \
  NS_IMETHOD GetSerialPort(PRUint32 slot, ISerialPort **port) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSerialPort(slot, port); } \
  NS_IMETHOD GetParallelPort(PRUint32 slot, IParallelPort **port) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetParallelPort(slot, port); } \
  NS_IMETHOD GetExtraDataKeys(PRUint32 *keysSize, PRUnichar ***keys) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetExtraDataKeys(keysSize, keys); } \
  NS_IMETHOD GetExtraData(const PRUnichar *key, PRUnichar **value) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetExtraData(key, value); } \
  NS_IMETHOD SetExtraData(const PRUnichar *key, const PRUnichar *value) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetExtraData(key, value); } \
  NS_IMETHOD GetCPUProperty(PRUint32 property, PRBool *value) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCPUProperty(property, value); } \
  NS_IMETHOD SetCPUProperty(PRUint32 property, PRBool value) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCPUProperty(property, value); } \
  NS_IMETHOD GetCPUIDLeaf(PRUint32 id, PRUint32 *valEax, PRUint32 *valEbx, PRUint32 *valEcx, PRUint32 *valEdx) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCPUIDLeaf(id, valEax, valEbx, valEcx, valEdx); } \
  NS_IMETHOD SetCPUIDLeaf(PRUint32 id, PRUint32 valEax, PRUint32 valEbx, PRUint32 valEcx, PRUint32 valEdx) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCPUIDLeaf(id, valEax, valEbx, valEcx, valEdx); } \
  NS_IMETHOD RemoveCPUIDLeaf(PRUint32 id) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveCPUIDLeaf(id); } \
  NS_IMETHOD RemoveAllCPUIDLeaves(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveAllCPUIDLeaves(); } \
  NS_IMETHOD GetHWVirtExProperty(PRUint32 property, PRBool *value) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHWVirtExProperty(property, value); } \
  NS_IMETHOD SetHWVirtExProperty(PRUint32 property, PRBool value) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetHWVirtExProperty(property, value); } \
  NS_IMETHOD SetSettingsFilePath(const PRUnichar *settingsFilePath, IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSettingsFilePath(settingsFilePath, progress); } \
  NS_IMETHOD SaveSettings(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->SaveSettings(); } \
  NS_IMETHOD DiscardSettings(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->DiscardSettings(); } \
  NS_IMETHOD Unregister(PRUint32 cleanupMode, PRUint32 *mediaSize, IMedium ***media) { return !_to ? NS_ERROR_NULL_POINTER : _to->Unregister(cleanupMode, mediaSize, media); } \
  NS_IMETHOD DeleteConfig(PRUint32 mediaSize, IMedium **media, IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->DeleteConfig(mediaSize, media, progress); } \
  NS_IMETHOD ExportTo(IAppliance *appliance, const PRUnichar *location, IVirtualSystemDescription **description) { return !_to ? NS_ERROR_NULL_POINTER : _to->ExportTo(appliance, location, description); } \
  NS_IMETHOD FindSnapshot(const PRUnichar *nameOrId, ISnapshot **snapshot) { return !_to ? NS_ERROR_NULL_POINTER : _to->FindSnapshot(nameOrId, snapshot); } \
  NS_IMETHOD CreateSharedFolder(const PRUnichar *name, const PRUnichar *hostPath, PRBool writable, PRBool automount) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateSharedFolder(name, hostPath, writable, automount); } \
  NS_IMETHOD RemoveSharedFolder(const PRUnichar *name) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveSharedFolder(name); } \
  NS_IMETHOD CanShowConsoleWindow(PRBool *canShow) { return !_to ? NS_ERROR_NULL_POINTER : _to->CanShowConsoleWindow(canShow); } \
  NS_IMETHOD ShowConsoleWindow(PRInt64 *winId) { return !_to ? NS_ERROR_NULL_POINTER : _to->ShowConsoleWindow(winId); } \
  NS_IMETHOD GetGuestProperty(const PRUnichar *name, PRUnichar **value, PRInt64 *timestamp, PRUnichar **flags) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGuestProperty(name, value, timestamp, flags); } \
  NS_IMETHOD GetGuestPropertyValue(const PRUnichar *property, PRUnichar **value) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGuestPropertyValue(property, value); } \
  NS_IMETHOD GetGuestPropertyTimestamp(const PRUnichar *property, PRInt64 *value) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGuestPropertyTimestamp(property, value); } \
  NS_IMETHOD SetGuestProperty(const PRUnichar *property, const PRUnichar *value, const PRUnichar *flags) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetGuestProperty(property, value, flags); } \
  NS_IMETHOD SetGuestPropertyValue(const PRUnichar *property, const PRUnichar *value) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetGuestPropertyValue(property, value); } \
  NS_IMETHOD DeleteGuestProperty(const PRUnichar *name) { return !_to ? NS_ERROR_NULL_POINTER : _to->DeleteGuestProperty(name); } \
  NS_IMETHOD EnumerateGuestProperties(const PRUnichar *patterns, PRUint32 *namesSize, PRUnichar ***names, PRUint32 *valuesSize, PRUnichar ***values, PRUint32 *timestampsSize, PRInt64 **timestamps, PRUint32 *flagsSize, PRUnichar ***flags) { return !_to ? NS_ERROR_NULL_POINTER : _to->EnumerateGuestProperties(patterns, namesSize, names, valuesSize, values, timestampsSize, timestamps, flagsSize, flags); } \
  NS_IMETHOD QuerySavedGuestScreenInfo(PRUint32 screenId, PRUint32 *originX, PRUint32 *originY, PRUint32 *width, PRUint32 *height, PRBool *enabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->QuerySavedGuestScreenInfo(screenId, originX, originY, width, height, enabled); } \
  NS_IMETHOD ReadSavedThumbnailToArray(PRUint32 screenId, PRUint32 bitmapFormat, PRUint32 *width, PRUint32 *height, PRUint32 *dataSize, PRUint8 **data) { return !_to ? NS_ERROR_NULL_POINTER : _to->ReadSavedThumbnailToArray(screenId, bitmapFormat, width, height, dataSize, data); } \
  NS_IMETHOD QuerySavedScreenshotInfo(PRUint32 screenId, PRUint32 *width, PRUint32 *height, PRUint32 *bitmapFormatsSize, PRUint32 **bitmapFormats) { return !_to ? NS_ERROR_NULL_POINTER : _to->QuerySavedScreenshotInfo(screenId, width, height, bitmapFormatsSize, bitmapFormats); } \
  NS_IMETHOD ReadSavedScreenshotToArray(PRUint32 screenId, PRUint32 bitmapFormat, PRUint32 *width, PRUint32 *height, PRUint32 *dataSize, PRUint8 **data) { return !_to ? NS_ERROR_NULL_POINTER : _to->ReadSavedScreenshotToArray(screenId, bitmapFormat, width, height, dataSize, data); } \
  NS_IMETHOD HotPlugCPU(PRUint32 cpu) { return !_to ? NS_ERROR_NULL_POINTER : _to->HotPlugCPU(cpu); } \
  NS_IMETHOD HotUnplugCPU(PRUint32 cpu) { return !_to ? NS_ERROR_NULL_POINTER : _to->HotUnplugCPU(cpu); } \
  NS_IMETHOD GetCPUStatus(PRUint32 cpu, PRBool *attached) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCPUStatus(cpu, attached); } \
  NS_IMETHOD GetEffectiveParavirtProvider(PRUint32 *paravirtProvider) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEffectiveParavirtProvider(paravirtProvider); } \
  NS_IMETHOD QueryLogFilename(PRUint32 idx, PRUnichar **filename) { return !_to ? NS_ERROR_NULL_POINTER : _to->QueryLogFilename(idx, filename); } \
  NS_IMETHOD ReadLog(PRUint32 idx, PRInt64 offset, PRInt64 size, PRUint32 *dataSize, PRUint8 **data) { return !_to ? NS_ERROR_NULL_POINTER : _to->ReadLog(idx, offset, size, dataSize, data); } \
  NS_IMETHOD CloneTo(IMachine *target, PRUint32 mode, PRUint32 optionsSize, PRUint32 *options, IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->CloneTo(target, mode, optionsSize, options, progress); } \
  NS_IMETHOD SaveState(IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->SaveState(progress); } \
  NS_IMETHOD AdoptSavedState(const PRUnichar *savedStateFile) { return !_to ? NS_ERROR_NULL_POINTER : _to->AdoptSavedState(savedStateFile); } \
  NS_IMETHOD DiscardSavedState(PRBool fRemoveFile) { return !_to ? NS_ERROR_NULL_POINTER : _to->DiscardSavedState(fRemoveFile); } \
  NS_IMETHOD TakeSnapshot(const PRUnichar *name, const PRUnichar *description, PRBool pause, PRUnichar **id, IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->TakeSnapshot(name, description, pause, id, progress); } \
  NS_IMETHOD DeleteSnapshot(const PRUnichar *id, IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->DeleteSnapshot(id, progress); } \
  NS_IMETHOD DeleteSnapshotAndAllChildren(const PRUnichar *id, IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->DeleteSnapshotAndAllChildren(id, progress); } \
  NS_IMETHOD DeleteSnapshotRange(const PRUnichar *startId, const PRUnichar *endId, IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->DeleteSnapshotRange(startId, endId, progress); } \
  NS_IMETHOD RestoreSnapshot(ISnapshot *snapshot, IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->RestoreSnapshot(snapshot, progress); } \
  NS_IMETHOD ApplyDefaults(const PRUnichar *flags) { return !_to ? NS_ERROR_NULL_POINTER : _to->ApplyDefaults(flags); } \
  NS_IMETHOD InternalAndReservedMethod1IMachine(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IMachine(); } \
  NS_IMETHOD InternalAndReservedMethod2IMachine(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IMachine(); } \
  NS_IMETHOD InternalAndReservedMethod3IMachine(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IMachine(); } \
  NS_IMETHOD InternalAndReservedMethod4IMachine(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IMachine(); } \
  NS_IMETHOD InternalAndReservedMethod5IMachine(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod5IMachine(); } \
  NS_IMETHOD InternalAndReservedMethod6IMachine(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod6IMachine(); } \
  NS_IMETHOD InternalAndReservedMethod7IMachine(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod7IMachine(); } \
  NS_IMETHOD InternalAndReservedMethod8IMachine(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod8IMachine(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IMachine
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IMACHINE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IMachine)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute IVirtualBox parent; */
NS_IMETHODIMP _MYCLASS_::GetParent(IVirtualBox * *aParent)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getIcon (out unsigned long iconSize, [array, size_is (iconSize), retval] out octet icon); */
NS_IMETHODIMP _MYCLASS_::GetIcon(PRUint32 *iconSize, PRUint8 **icon)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setIcon (in unsigned long iconSize, [array, size_is (iconSize)] in octet icon); */
NS_IMETHODIMP _MYCLASS_::SetIcon(PRUint32 iconSize, PRUint8 *icon)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean accessible; */
NS_IMETHODIMP _MYCLASS_::GetAccessible(PRBool *aAccessible)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IVirtualBoxErrorInfo accessError; */
NS_IMETHODIMP _MYCLASS_::GetAccessError(IVirtualBoxErrorInfo * *aAccessError)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring name; */
NS_IMETHODIMP _MYCLASS_::GetName(PRUnichar * *aName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetName(const PRUnichar * aName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring description; */
NS_IMETHODIMP _MYCLASS_::GetDescription(PRUnichar * *aDescription)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetDescription(const PRUnichar * aDescription)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring id; */
NS_IMETHODIMP _MYCLASS_::GetId(PRUnichar * *aId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getGroups (out unsigned long groupsSize, [array, size_is (groupsSize), retval] out wstring groups); */
NS_IMETHODIMP _MYCLASS_::GetGroups(PRUint32 *groupsSize, PRUnichar ***groups)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setGroups (in unsigned long groupsSize, [array, size_is (groupsSize)] in wstring groups); */
NS_IMETHODIMP _MYCLASS_::SetGroups(PRUint32 groupsSize, const PRUnichar **groups)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring OSTypeId; */
NS_IMETHODIMP _MYCLASS_::GetOSTypeId(PRUnichar * *aOSTypeId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetOSTypeId(const PRUnichar * aOSTypeId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring hardwareVersion; */
NS_IMETHODIMP _MYCLASS_::GetHardwareVersion(PRUnichar * *aHardwareVersion)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetHardwareVersion(const PRUnichar * aHardwareVersion)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring hardwareUUID; */
NS_IMETHODIMP _MYCLASS_::GetHardwareUUID(PRUnichar * *aHardwareUUID)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetHardwareUUID(const PRUnichar * aHardwareUUID)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long CPUCount; */
NS_IMETHODIMP _MYCLASS_::GetCPUCount(PRUint32 *aCPUCount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetCPUCount(PRUint32 aCPUCount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean CPUHotPlugEnabled; */
NS_IMETHODIMP _MYCLASS_::GetCPUHotPlugEnabled(PRBool *aCPUHotPlugEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetCPUHotPlugEnabled(PRBool aCPUHotPlugEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long CPUExecutionCap; */
NS_IMETHODIMP _MYCLASS_::GetCPUExecutionCap(PRUint32 *aCPUExecutionCap)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetCPUExecutionCap(PRUint32 aCPUExecutionCap)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long CPUIDPortabilityLevel; */
NS_IMETHODIMP _MYCLASS_::GetCPUIDPortabilityLevel(PRUint32 *aCPUIDPortabilityLevel)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetCPUIDPortabilityLevel(PRUint32 aCPUIDPortabilityLevel)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long memorySize; */
NS_IMETHODIMP _MYCLASS_::GetMemorySize(PRUint32 *aMemorySize)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetMemorySize(PRUint32 aMemorySize)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long memoryBalloonSize; */
NS_IMETHODIMP _MYCLASS_::GetMemoryBalloonSize(PRUint32 *aMemoryBalloonSize)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetMemoryBalloonSize(PRUint32 aMemoryBalloonSize)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean pageFusionEnabled; */
NS_IMETHODIMP _MYCLASS_::GetPageFusionEnabled(PRBool *aPageFusionEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetPageFusionEnabled(PRBool aPageFusionEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute PRUint32 graphicsControllerType; */
NS_IMETHODIMP _MYCLASS_::GetGraphicsControllerType(PRUint32 *aGraphicsControllerType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetGraphicsControllerType(PRUint32 aGraphicsControllerType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long VRAMSize; */
NS_IMETHODIMP _MYCLASS_::GetVRAMSize(PRUint32 *aVRAMSize)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetVRAMSize(PRUint32 aVRAMSize)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean accelerate3DEnabled; */
NS_IMETHODIMP _MYCLASS_::GetAccelerate3DEnabled(PRBool *aAccelerate3DEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetAccelerate3DEnabled(PRBool aAccelerate3DEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean accelerate2DVideoEnabled; */
NS_IMETHODIMP _MYCLASS_::GetAccelerate2DVideoEnabled(PRBool *aAccelerate2DVideoEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetAccelerate2DVideoEnabled(PRBool aAccelerate2DVideoEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long monitorCount; */
NS_IMETHODIMP _MYCLASS_::GetMonitorCount(PRUint32 *aMonitorCount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetMonitorCount(PRUint32 aMonitorCount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean videoCaptureEnabled; */
NS_IMETHODIMP _MYCLASS_::GetVideoCaptureEnabled(PRBool *aVideoCaptureEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetVideoCaptureEnabled(PRBool aVideoCaptureEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getVideoCaptureScreens (out unsigned long videoCaptureScreensSize, [array, size_is (videoCaptureScreensSize), retval] out boolean videoCaptureScreens); */
NS_IMETHODIMP _MYCLASS_::GetVideoCaptureScreens(PRUint32 *videoCaptureScreensSize, PRBool **videoCaptureScreens)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setVideoCaptureScreens (in unsigned long videoCaptureScreensSize, [array, size_is (videoCaptureScreensSize)] in boolean videoCaptureScreens); */
NS_IMETHODIMP _MYCLASS_::SetVideoCaptureScreens(PRUint32 videoCaptureScreensSize, PRBool *videoCaptureScreens)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring videoCaptureFile; */
NS_IMETHODIMP _MYCLASS_::GetVideoCaptureFile(PRUnichar * *aVideoCaptureFile)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetVideoCaptureFile(const PRUnichar * aVideoCaptureFile)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long videoCaptureWidth; */
NS_IMETHODIMP _MYCLASS_::GetVideoCaptureWidth(PRUint32 *aVideoCaptureWidth)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetVideoCaptureWidth(PRUint32 aVideoCaptureWidth)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long videoCaptureHeight; */
NS_IMETHODIMP _MYCLASS_::GetVideoCaptureHeight(PRUint32 *aVideoCaptureHeight)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetVideoCaptureHeight(PRUint32 aVideoCaptureHeight)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long videoCaptureRate; */
NS_IMETHODIMP _MYCLASS_::GetVideoCaptureRate(PRUint32 *aVideoCaptureRate)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetVideoCaptureRate(PRUint32 aVideoCaptureRate)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long videoCaptureFPS; */
NS_IMETHODIMP _MYCLASS_::GetVideoCaptureFPS(PRUint32 *aVideoCaptureFPS)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetVideoCaptureFPS(PRUint32 aVideoCaptureFPS)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long videoCaptureMaxTime; */
NS_IMETHODIMP _MYCLASS_::GetVideoCaptureMaxTime(PRUint32 *aVideoCaptureMaxTime)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetVideoCaptureMaxTime(PRUint32 aVideoCaptureMaxTime)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long videoCaptureMaxFileSize; */
NS_IMETHODIMP _MYCLASS_::GetVideoCaptureMaxFileSize(PRUint32 *aVideoCaptureMaxFileSize)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetVideoCaptureMaxFileSize(PRUint32 aVideoCaptureMaxFileSize)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring videoCaptureOptions; */
NS_IMETHODIMP _MYCLASS_::GetVideoCaptureOptions(PRUnichar * *aVideoCaptureOptions)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetVideoCaptureOptions(const PRUnichar * aVideoCaptureOptions)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IBIOSSettings BIOSSettings; */
NS_IMETHODIMP _MYCLASS_::GetBIOSSettings(IBIOSSettings * *aBIOSSettings)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute PRUint32 firmwareType; */
NS_IMETHODIMP _MYCLASS_::GetFirmwareType(PRUint32 *aFirmwareType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetFirmwareType(PRUint32 aFirmwareType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute PRUint32 pointingHIDType; */
NS_IMETHODIMP _MYCLASS_::GetPointingHIDType(PRUint32 *aPointingHIDType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetPointingHIDType(PRUint32 aPointingHIDType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute PRUint32 keyboardHIDType; */
NS_IMETHODIMP _MYCLASS_::GetKeyboardHIDType(PRUint32 *aKeyboardHIDType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetKeyboardHIDType(PRUint32 aKeyboardHIDType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean HPETEnabled; */
NS_IMETHODIMP _MYCLASS_::GetHPETEnabled(PRBool *aHPETEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetHPETEnabled(PRBool aHPETEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute PRUint32 chipsetType; */
NS_IMETHODIMP _MYCLASS_::GetChipsetType(PRUint32 *aChipsetType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetChipsetType(PRUint32 aChipsetType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring snapshotFolder; */
NS_IMETHODIMP _MYCLASS_::GetSnapshotFolder(PRUnichar * *aSnapshotFolder)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetSnapshotFolder(const PRUnichar * aSnapshotFolder)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IVRDEServer VRDEServer; */
NS_IMETHODIMP _MYCLASS_::GetVRDEServer(IVRDEServer * *aVRDEServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean emulatedUSBCardReaderEnabled; */
NS_IMETHODIMP _MYCLASS_::GetEmulatedUSBCardReaderEnabled(PRBool *aEmulatedUSBCardReaderEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetEmulatedUSBCardReaderEnabled(PRBool aEmulatedUSBCardReaderEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getMediumAttachments (out unsigned long mediumAttachmentsSize, [array, size_is (mediumAttachmentsSize), retval] out IMediumAttachment mediumAttachments); */
NS_IMETHODIMP _MYCLASS_::GetMediumAttachments(PRUint32 *mediumAttachmentsSize, IMediumAttachment ***mediumAttachments)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getUSBControllers (out unsigned long USBControllersSize, [array, size_is (USBControllersSize), retval] out IUSBController USBControllers); */
NS_IMETHODIMP _MYCLASS_::GetUSBControllers(PRUint32 *USBControllersSize, IUSBController ***USBControllers)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IUSBDeviceFilters USBDeviceFilters; */
NS_IMETHODIMP _MYCLASS_::GetUSBDeviceFilters(IUSBDeviceFilters * *aUSBDeviceFilters)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IAudioAdapter audioAdapter; */
NS_IMETHODIMP _MYCLASS_::GetAudioAdapter(IAudioAdapter * *aAudioAdapter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getStorageControllers (out unsigned long storageControllersSize, [array, size_is (storageControllersSize), retval] out IStorageController storageControllers); */
NS_IMETHODIMP _MYCLASS_::GetStorageControllers(PRUint32 *storageControllersSize, IStorageController ***storageControllers)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring settingsFilePath; */
NS_IMETHODIMP _MYCLASS_::GetSettingsFilePath(PRUnichar * *aSettingsFilePath)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean settingsModified; */
NS_IMETHODIMP _MYCLASS_::GetSettingsModified(PRBool *aSettingsModified)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 sessionState; */
NS_IMETHODIMP _MYCLASS_::GetSessionState(PRUint32 *aSessionState)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring sessionName; */
NS_IMETHODIMP _MYCLASS_::GetSessionName(PRUnichar * *aSessionName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long sessionPID; */
NS_IMETHODIMP _MYCLASS_::GetSessionPID(PRUint32 *aSessionPID)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 state; */
NS_IMETHODIMP _MYCLASS_::GetState(PRUint32 *aState)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long long lastStateChange; */
NS_IMETHODIMP _MYCLASS_::GetLastStateChange(PRInt64 *aLastStateChange)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring stateFilePath; */
NS_IMETHODIMP _MYCLASS_::GetStateFilePath(PRUnichar * *aStateFilePath)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring logFolder; */
NS_IMETHODIMP _MYCLASS_::GetLogFolder(PRUnichar * *aLogFolder)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute ISnapshot currentSnapshot; */
NS_IMETHODIMP _MYCLASS_::GetCurrentSnapshot(ISnapshot * *aCurrentSnapshot)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long snapshotCount; */
NS_IMETHODIMP _MYCLASS_::GetSnapshotCount(PRUint32 *aSnapshotCount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean currentStateModified; */
NS_IMETHODIMP _MYCLASS_::GetCurrentStateModified(PRBool *aCurrentStateModified)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getSharedFolders (out unsigned long sharedFoldersSize, [array, size_is (sharedFoldersSize), retval] out ISharedFolder sharedFolders); */
NS_IMETHODIMP _MYCLASS_::GetSharedFolders(PRUint32 *sharedFoldersSize, ISharedFolder ***sharedFolders)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute PRUint32 clipboardMode; */
NS_IMETHODIMP _MYCLASS_::GetClipboardMode(PRUint32 *aClipboardMode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetClipboardMode(PRUint32 aClipboardMode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute PRUint32 dnDMode; */
NS_IMETHODIMP _MYCLASS_::GetDnDMode(PRUint32 *aDnDMode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetDnDMode(PRUint32 aDnDMode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean teleporterEnabled; */
NS_IMETHODIMP _MYCLASS_::GetTeleporterEnabled(PRBool *aTeleporterEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetTeleporterEnabled(PRBool aTeleporterEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long teleporterPort; */
NS_IMETHODIMP _MYCLASS_::GetTeleporterPort(PRUint32 *aTeleporterPort)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetTeleporterPort(PRUint32 aTeleporterPort)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring teleporterAddress; */
NS_IMETHODIMP _MYCLASS_::GetTeleporterAddress(PRUnichar * *aTeleporterAddress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetTeleporterAddress(const PRUnichar * aTeleporterAddress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring teleporterPassword; */
NS_IMETHODIMP _MYCLASS_::GetTeleporterPassword(PRUnichar * *aTeleporterPassword)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetTeleporterPassword(const PRUnichar * aTeleporterPassword)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute PRUint32 paravirtProvider; */
NS_IMETHODIMP _MYCLASS_::GetParavirtProvider(PRUint32 *aParavirtProvider)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetParavirtProvider(PRUint32 aParavirtProvider)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute PRUint32 faultToleranceState; */
NS_IMETHODIMP _MYCLASS_::GetFaultToleranceState(PRUint32 *aFaultToleranceState)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetFaultToleranceState(PRUint32 aFaultToleranceState)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long faultTolerancePort; */
NS_IMETHODIMP _MYCLASS_::GetFaultTolerancePort(PRUint32 *aFaultTolerancePort)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetFaultTolerancePort(PRUint32 aFaultTolerancePort)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring faultToleranceAddress; */
NS_IMETHODIMP _MYCLASS_::GetFaultToleranceAddress(PRUnichar * *aFaultToleranceAddress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetFaultToleranceAddress(const PRUnichar * aFaultToleranceAddress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring faultTolerancePassword; */
NS_IMETHODIMP _MYCLASS_::GetFaultTolerancePassword(PRUnichar * *aFaultTolerancePassword)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetFaultTolerancePassword(const PRUnichar * aFaultTolerancePassword)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long faultToleranceSyncInterval; */
NS_IMETHODIMP _MYCLASS_::GetFaultToleranceSyncInterval(PRUint32 *aFaultToleranceSyncInterval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetFaultToleranceSyncInterval(PRUint32 aFaultToleranceSyncInterval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean RTCUseUTC; */
NS_IMETHODIMP _MYCLASS_::GetRTCUseUTC(PRBool *aRTCUseUTC)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetRTCUseUTC(PRBool aRTCUseUTC)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean IOCacheEnabled; */
NS_IMETHODIMP _MYCLASS_::GetIOCacheEnabled(PRBool *aIOCacheEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetIOCacheEnabled(PRBool aIOCacheEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long IOCacheSize; */
NS_IMETHODIMP _MYCLASS_::GetIOCacheSize(PRUint32 *aIOCacheSize)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetIOCacheSize(PRUint32 aIOCacheSize)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getPCIDeviceAssignments (out unsigned long PCIDeviceAssignmentsSize, [array, size_is (PCIDeviceAssignmentsSize), retval] out IPCIDeviceAttachment PCIDeviceAssignments); */
NS_IMETHODIMP _MYCLASS_::GetPCIDeviceAssignments(PRUint32 *PCIDeviceAssignmentsSize, IPCIDeviceAttachment ***PCIDeviceAssignments)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IBandwidthControl bandwidthControl; */
NS_IMETHODIMP _MYCLASS_::GetBandwidthControl(IBandwidthControl * *aBandwidthControl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean tracingEnabled; */
NS_IMETHODIMP _MYCLASS_::GetTracingEnabled(PRBool *aTracingEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetTracingEnabled(PRBool aTracingEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring tracingConfig; */
NS_IMETHODIMP _MYCLASS_::GetTracingConfig(PRUnichar * *aTracingConfig)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetTracingConfig(const PRUnichar * aTracingConfig)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean allowTracingToAccessVM; */
NS_IMETHODIMP _MYCLASS_::GetAllowTracingToAccessVM(PRBool *aAllowTracingToAccessVM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetAllowTracingToAccessVM(PRBool aAllowTracingToAccessVM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean autostartEnabled; */
NS_IMETHODIMP _MYCLASS_::GetAutostartEnabled(PRBool *aAutostartEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetAutostartEnabled(PRBool aAutostartEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long autostartDelay; */
NS_IMETHODIMP _MYCLASS_::GetAutostartDelay(PRUint32 *aAutostartDelay)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetAutostartDelay(PRUint32 aAutostartDelay)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute PRUint32 autostopType; */
NS_IMETHODIMP _MYCLASS_::GetAutostopType(PRUint32 *aAutostopType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetAutostopType(PRUint32 aAutostopType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring defaultFrontend; */
NS_IMETHODIMP _MYCLASS_::GetDefaultFrontend(PRUnichar * *aDefaultFrontend)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetDefaultFrontend(const PRUnichar * aDefaultFrontend)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean USBProxyAvailable; */
NS_IMETHODIMP _MYCLASS_::GetUSBProxyAvailable(PRBool *aUSBProxyAvailable)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring VMProcessPriority; */
NS_IMETHODIMP _MYCLASS_::GetVMProcessPriority(PRUnichar * *aVMProcessPriority)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetVMProcessPriority(const PRUnichar * aVMProcessPriority)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring paravirtDebug; */
NS_IMETHODIMP _MYCLASS_::GetParavirtDebug(PRUnichar * *aParavirtDebug)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetParavirtDebug(const PRUnichar * aParavirtDebug)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring CPUProfile; */
NS_IMETHODIMP _MYCLASS_::GetCPUProfile(PRUnichar * *aCPUProfile)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetCPUProfile(const PRUnichar * aCPUProfile)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IMachine; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IMachine(PRUint32 *aInternalAndReservedAttribute1IMachine)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IMachine; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IMachine(PRUint32 *aInternalAndReservedAttribute2IMachine)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute3IMachine; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute3IMachine(PRUint32 *aInternalAndReservedAttribute3IMachine)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute4IMachine; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute4IMachine(PRUint32 *aInternalAndReservedAttribute4IMachine)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute5IMachine; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute5IMachine(PRUint32 *aInternalAndReservedAttribute5IMachine)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute6IMachine; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute6IMachine(PRUint32 *aInternalAndReservedAttribute6IMachine)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute7IMachine; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute7IMachine(PRUint32 *aInternalAndReservedAttribute7IMachine)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute8IMachine; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute8IMachine(PRUint32 *aInternalAndReservedAttribute8IMachine)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute9IMachine; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute9IMachine(PRUint32 *aInternalAndReservedAttribute9IMachine)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute10IMachine; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute10IMachine(PRUint32 *aInternalAndReservedAttribute10IMachine)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void lockMachine (in ISession session, in PRUint32 lockType); */
NS_IMETHODIMP _MYCLASS_::LockMachine(ISession *session, PRUint32 lockType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void launchVMProcess (in ISession session, in wstring name, in wstring environment, [retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::LaunchVMProcess(ISession *session, const PRUnichar *name, const PRUnichar *environment, IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setBootOrder (in unsigned long position, in PRUint32 device); */
NS_IMETHODIMP _MYCLASS_::SetBootOrder(PRUint32 position, PRUint32 device)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getBootOrder (in unsigned long position, [retval] out PRUint32 device); */
NS_IMETHODIMP _MYCLASS_::GetBootOrder(PRUint32 position, PRUint32 *device)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void attachDevice (in wstring name, in long controllerPort, in long device, in PRUint32 type, in IMedium medium); */
NS_IMETHODIMP _MYCLASS_::AttachDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRUint32 type, IMedium *medium)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void attachDeviceWithoutMedium (in wstring name, in long controllerPort, in long device, in PRUint32 type); */
NS_IMETHODIMP _MYCLASS_::AttachDeviceWithoutMedium(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRUint32 type)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void detachDevice (in wstring name, in long controllerPort, in long device); */
NS_IMETHODIMP _MYCLASS_::DetachDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void passthroughDevice (in wstring name, in long controllerPort, in long device, in boolean passthrough); */
NS_IMETHODIMP _MYCLASS_::PassthroughDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRBool passthrough)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void temporaryEjectDevice (in wstring name, in long controllerPort, in long device, in boolean temporaryEject); */
NS_IMETHODIMP _MYCLASS_::TemporaryEjectDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRBool temporaryEject)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void nonRotationalDevice (in wstring name, in long controllerPort, in long device, in boolean nonRotational); */
NS_IMETHODIMP _MYCLASS_::NonRotationalDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRBool nonRotational)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setAutoDiscardForDevice (in wstring name, in long controllerPort, in long device, in boolean discard); */
NS_IMETHODIMP _MYCLASS_::SetAutoDiscardForDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRBool discard)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setHotPluggableForDevice (in wstring name, in long controllerPort, in long device, in boolean hotPluggable); */
NS_IMETHODIMP _MYCLASS_::SetHotPluggableForDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRBool hotPluggable)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setBandwidthGroupForDevice (in wstring name, in long controllerPort, in long device, in IBandwidthGroup bandwidthGroup); */
NS_IMETHODIMP _MYCLASS_::SetBandwidthGroupForDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, IBandwidthGroup *bandwidthGroup)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setNoBandwidthGroupForDevice (in wstring name, in long controllerPort, in long device); */
NS_IMETHODIMP _MYCLASS_::SetNoBandwidthGroupForDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void unmountMedium (in wstring name, in long controllerPort, in long device, in boolean force); */
NS_IMETHODIMP _MYCLASS_::UnmountMedium(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRBool force)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void mountMedium (in wstring name, in long controllerPort, in long device, in IMedium medium, in boolean force); */
NS_IMETHODIMP _MYCLASS_::MountMedium(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, IMedium *medium, PRBool force)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getMedium (in wstring name, in long controllerPort, in long device, [retval] out IMedium medium); */
NS_IMETHODIMP _MYCLASS_::GetMedium(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, IMedium **medium)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getMediumAttachmentsOfController (in wstring name, out unsigned long mediumAttachmentsSize, [array, size_is (mediumAttachmentsSize), retval] out IMediumAttachment mediumAttachments); */
NS_IMETHODIMP _MYCLASS_::GetMediumAttachmentsOfController(const PRUnichar *name, PRUint32 *mediumAttachmentsSize, IMediumAttachment ***mediumAttachments)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getMediumAttachment (in wstring name, in long controllerPort, in long device, [retval] out IMediumAttachment attachment); */
NS_IMETHODIMP _MYCLASS_::GetMediumAttachment(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, IMediumAttachment **attachment)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void attachHostPCIDevice (in long hostAddress, in long desiredGuestAddress, in boolean tryToUnbind); */
NS_IMETHODIMP _MYCLASS_::AttachHostPCIDevice(PRInt32 hostAddress, PRInt32 desiredGuestAddress, PRBool tryToUnbind)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void detachHostPCIDevice (in long hostAddress); */
NS_IMETHODIMP _MYCLASS_::DetachHostPCIDevice(PRInt32 hostAddress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getNetworkAdapter (in unsigned long slot, [retval] out INetworkAdapter adapter); */
NS_IMETHODIMP _MYCLASS_::GetNetworkAdapter(PRUint32 slot, INetworkAdapter **adapter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addStorageController (in wstring name, in PRUint32 connectionType, [retval] out IStorageController controller); */
NS_IMETHODIMP _MYCLASS_::AddStorageController(const PRUnichar *name, PRUint32 connectionType, IStorageController **controller)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getStorageControllerByName (in wstring name, [retval] out IStorageController storageController); */
NS_IMETHODIMP _MYCLASS_::GetStorageControllerByName(const PRUnichar *name, IStorageController **storageController)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getStorageControllerByInstance (in PRUint32 connectionType, in unsigned long instance, [retval] out IStorageController storageController); */
NS_IMETHODIMP _MYCLASS_::GetStorageControllerByInstance(PRUint32 connectionType, PRUint32 instance, IStorageController **storageController)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeStorageController (in wstring name); */
NS_IMETHODIMP _MYCLASS_::RemoveStorageController(const PRUnichar *name)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setStorageControllerBootable (in wstring name, in boolean bootable); */
NS_IMETHODIMP _MYCLASS_::SetStorageControllerBootable(const PRUnichar *name, PRBool bootable)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addUSBController (in wstring name, in PRUint32 type, [retval] out IUSBController controller); */
NS_IMETHODIMP _MYCLASS_::AddUSBController(const PRUnichar *name, PRUint32 type, IUSBController **controller)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeUSBController (in wstring name); */
NS_IMETHODIMP _MYCLASS_::RemoveUSBController(const PRUnichar *name)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getUSBControllerByName (in wstring name, [retval] out IUSBController controller); */
NS_IMETHODIMP _MYCLASS_::GetUSBControllerByName(const PRUnichar *name, IUSBController **controller)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getUSBControllerCountByType (in PRUint32 type, [retval] out unsigned long controllers); */
NS_IMETHODIMP _MYCLASS_::GetUSBControllerCountByType(PRUint32 type, PRUint32 *controllers)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getSerialPort (in unsigned long slot, [retval] out ISerialPort port); */
NS_IMETHODIMP _MYCLASS_::GetSerialPort(PRUint32 slot, ISerialPort **port)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getParallelPort (in unsigned long slot, [retval] out IParallelPort port); */
NS_IMETHODIMP _MYCLASS_::GetParallelPort(PRUint32 slot, IParallelPort **port)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getExtraDataKeys (out unsigned long keysSize, [array, size_is (keysSize), retval] out wstring keys); */
NS_IMETHODIMP _MYCLASS_::GetExtraDataKeys(PRUint32 *keysSize, PRUnichar ***keys)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getExtraData (in wstring key, [retval] out wstring value); */
NS_IMETHODIMP _MYCLASS_::GetExtraData(const PRUnichar *key, PRUnichar **value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setExtraData (in wstring key, in wstring value); */
NS_IMETHODIMP _MYCLASS_::SetExtraData(const PRUnichar *key, const PRUnichar *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getCPUProperty (in PRUint32 property, [retval] out boolean value); */
NS_IMETHODIMP _MYCLASS_::GetCPUProperty(PRUint32 property, PRBool *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setCPUProperty (in PRUint32 property, in boolean value); */
NS_IMETHODIMP _MYCLASS_::SetCPUProperty(PRUint32 property, PRBool value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getCPUIDLeaf (in unsigned long id, out unsigned long valEax, out unsigned long valEbx, out unsigned long valEcx, out unsigned long valEdx); */
NS_IMETHODIMP _MYCLASS_::GetCPUIDLeaf(PRUint32 id, PRUint32 *valEax, PRUint32 *valEbx, PRUint32 *valEcx, PRUint32 *valEdx)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setCPUIDLeaf (in unsigned long id, in unsigned long valEax, in unsigned long valEbx, in unsigned long valEcx, in unsigned long valEdx); */
NS_IMETHODIMP _MYCLASS_::SetCPUIDLeaf(PRUint32 id, PRUint32 valEax, PRUint32 valEbx, PRUint32 valEcx, PRUint32 valEdx)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeCPUIDLeaf (in unsigned long id); */
NS_IMETHODIMP _MYCLASS_::RemoveCPUIDLeaf(PRUint32 id)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeAllCPUIDLeaves (); */
NS_IMETHODIMP _MYCLASS_::RemoveAllCPUIDLeaves()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getHWVirtExProperty (in PRUint32 property, [retval] out boolean value); */
NS_IMETHODIMP _MYCLASS_::GetHWVirtExProperty(PRUint32 property, PRBool *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setHWVirtExProperty (in PRUint32 property, in boolean value); */
NS_IMETHODIMP _MYCLASS_::SetHWVirtExProperty(PRUint32 property, PRBool value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setSettingsFilePath (in wstring settingsFilePath, [retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::SetSettingsFilePath(const PRUnichar *settingsFilePath, IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void saveSettings (); */
NS_IMETHODIMP _MYCLASS_::SaveSettings()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void discardSettings (); */
NS_IMETHODIMP _MYCLASS_::DiscardSettings()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void unregister (in PRUint32 cleanupMode, out unsigned long mediaSize, [array, size_is (mediaSize), retval] out IMedium media); */
NS_IMETHODIMP _MYCLASS_::Unregister(PRUint32 cleanupMode, PRUint32 *mediaSize, IMedium ***media)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void deleteConfig (in unsigned long mediaSize, [array, size_is (mediaSize)] in IMedium media, [retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::DeleteConfig(PRUint32 mediaSize, IMedium **media, IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void exportTo (in IAppliance appliance, in wstring location, [retval] out IVirtualSystemDescription description); */
NS_IMETHODIMP _MYCLASS_::ExportTo(IAppliance *appliance, const PRUnichar *location, IVirtualSystemDescription **description)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void findSnapshot (in wstring nameOrId, [retval] out ISnapshot snapshot); */
NS_IMETHODIMP _MYCLASS_::FindSnapshot(const PRUnichar *nameOrId, ISnapshot **snapshot)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void createSharedFolder (in wstring name, in wstring hostPath, in boolean writable, in boolean automount); */
NS_IMETHODIMP _MYCLASS_::CreateSharedFolder(const PRUnichar *name, const PRUnichar *hostPath, PRBool writable, PRBool automount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeSharedFolder (in wstring name); */
NS_IMETHODIMP _MYCLASS_::RemoveSharedFolder(const PRUnichar *name)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void canShowConsoleWindow ([retval] out boolean canShow); */
NS_IMETHODIMP _MYCLASS_::CanShowConsoleWindow(PRBool *canShow)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void showConsoleWindow ([retval] out long long winId); */
NS_IMETHODIMP _MYCLASS_::ShowConsoleWindow(PRInt64 *winId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getGuestProperty (in wstring name, out wstring value, out long long timestamp, out wstring flags); */
NS_IMETHODIMP _MYCLASS_::GetGuestProperty(const PRUnichar *name, PRUnichar **value, PRInt64 *timestamp, PRUnichar **flags)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getGuestPropertyValue (in wstring property, [retval] out wstring value); */
NS_IMETHODIMP _MYCLASS_::GetGuestPropertyValue(const PRUnichar *property, PRUnichar **value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getGuestPropertyTimestamp (in wstring property, [retval] out long long value); */
NS_IMETHODIMP _MYCLASS_::GetGuestPropertyTimestamp(const PRUnichar *property, PRInt64 *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setGuestProperty (in wstring property, in wstring value, in wstring flags); */
NS_IMETHODIMP _MYCLASS_::SetGuestProperty(const PRUnichar *property, const PRUnichar *value, const PRUnichar *flags)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setGuestPropertyValue (in wstring property, in wstring value); */
NS_IMETHODIMP _MYCLASS_::SetGuestPropertyValue(const PRUnichar *property, const PRUnichar *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void deleteGuestProperty (in wstring name); */
NS_IMETHODIMP _MYCLASS_::DeleteGuestProperty(const PRUnichar *name)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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); */
NS_IMETHODIMP _MYCLASS_::EnumerateGuestProperties(const PRUnichar *patterns, PRUint32 *namesSize, PRUnichar ***names, PRUint32 *valuesSize, PRUnichar ***values, PRUint32 *timestampsSize, PRInt64 **timestamps, PRUint32 *flagsSize, PRUnichar ***flags)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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); */
NS_IMETHODIMP _MYCLASS_::QuerySavedGuestScreenInfo(PRUint32 screenId, PRUint32 *originX, PRUint32 *originY, PRUint32 *width, PRUint32 *height, PRBool *enabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void readSavedThumbnailToArray (in unsigned long screenId, in PRUint32 bitmapFormat, out unsigned long width, out unsigned long height, out unsigned long dataSize, [array, size_is (dataSize), retval] out octet data); */
NS_IMETHODIMP _MYCLASS_::ReadSavedThumbnailToArray(PRUint32 screenId, PRUint32 bitmapFormat, PRUint32 *width, PRUint32 *height, PRUint32 *dataSize, PRUint8 **data)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void querySavedScreenshotInfo (in unsigned long screenId, out unsigned long width, out unsigned long height, out unsigned long bitmapFormatsSize, [array, size_is (bitmapFormatsSize), retval] out PRUint32 bitmapFormats); */
NS_IMETHODIMP _MYCLASS_::QuerySavedScreenshotInfo(PRUint32 screenId, PRUint32 *width, PRUint32 *height, PRUint32 *bitmapFormatsSize, PRUint32 **bitmapFormats)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void readSavedScreenshotToArray (in unsigned long screenId, in PRUint32 bitmapFormat, out unsigned long width, out unsigned long height, out unsigned long dataSize, [array, size_is (dataSize), retval] out octet data); */
NS_IMETHODIMP _MYCLASS_::ReadSavedScreenshotToArray(PRUint32 screenId, PRUint32 bitmapFormat, PRUint32 *width, PRUint32 *height, PRUint32 *dataSize, PRUint8 **data)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void hotPlugCPU (in unsigned long cpu); */
NS_IMETHODIMP _MYCLASS_::HotPlugCPU(PRUint32 cpu)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void hotUnplugCPU (in unsigned long cpu); */
NS_IMETHODIMP _MYCLASS_::HotUnplugCPU(PRUint32 cpu)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getCPUStatus (in unsigned long cpu, [retval] out boolean attached); */
NS_IMETHODIMP _MYCLASS_::GetCPUStatus(PRUint32 cpu, PRBool *attached)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getEffectiveParavirtProvider ([retval] out PRUint32 paravirtProvider); */
NS_IMETHODIMP _MYCLASS_::GetEffectiveParavirtProvider(PRUint32 *paravirtProvider)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void queryLogFilename (in unsigned long idx, [retval] out wstring filename); */
NS_IMETHODIMP _MYCLASS_::QueryLogFilename(PRUint32 idx, PRUnichar **filename)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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); */
NS_IMETHODIMP _MYCLASS_::ReadLog(PRUint32 idx, PRInt64 offset, PRInt64 size, PRUint32 *dataSize, PRUint8 **data)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void cloneTo (in IMachine target, in PRUint32 mode, in unsigned long optionsSize, [array, size_is (optionsSize)] in PRUint32 options, [retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::CloneTo(IMachine *target, PRUint32 mode, PRUint32 optionsSize, PRUint32 *options, IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void saveState ([retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::SaveState(IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void adoptSavedState (in wstring savedStateFile); */
NS_IMETHODIMP _MYCLASS_::AdoptSavedState(const PRUnichar *savedStateFile)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void discardSavedState (in boolean fRemoveFile); */
NS_IMETHODIMP _MYCLASS_::DiscardSavedState(PRBool fRemoveFile)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void takeSnapshot (in wstring name, in wstring description, in boolean pause, out wstring id, [retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::TakeSnapshot(const PRUnichar *name, const PRUnichar *description, PRBool pause, PRUnichar **id, IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void deleteSnapshot (in wstring id, [retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::DeleteSnapshot(const PRUnichar *id, IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void deleteSnapshotAndAllChildren (in wstring id, [retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::DeleteSnapshotAndAllChildren(const PRUnichar *id, IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void deleteSnapshotRange (in wstring startId, in wstring endId, [retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::DeleteSnapshotRange(const PRUnichar *startId, const PRUnichar *endId, IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void restoreSnapshot (in ISnapshot snapshot, [retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::RestoreSnapshot(ISnapshot *snapshot, IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void applyDefaults (in wstring flags); */
NS_IMETHODIMP _MYCLASS_::ApplyDefaults(const PRUnichar *flags)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1IMachine (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1IMachine()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod2IMachine (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod2IMachine()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod3IMachine (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod3IMachine()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod4IMachine (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod4IMachine()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod5IMachine (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod5IMachine()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod6IMachine (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod6IMachine()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod7IMachine (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod7IMachine()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod8IMachine (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod8IMachine()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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_GraphicsControllerType_TO(smth) NS_IMETHOD GetGraphicsControllerType (PRUint32 * aGraphicsControllerType) { return smth GetGraphicsControllerType (aGraphicsControllerType); }
#define COM_FORWARD_IMachine_GETTER_GraphicsControllerType_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_GraphicsControllerType_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_GraphicsControllerType_TO_BASE(base) COM_FORWARD_IMachine_GETTER_GraphicsControllerType_TO (base::)
#define COM_FORWARD_IMachine_SETTER_GraphicsControllerType_TO(smth) NS_IMETHOD SetGraphicsControllerType (PRUint32 aGraphicsControllerType) { return smth SetGraphicsControllerType (aGraphicsControllerType); }
#define COM_FORWARD_IMachine_SETTER_GraphicsControllerType_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_GraphicsControllerType_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_GraphicsControllerType_TO_BASE(base) COM_FORWARD_IMachine_SETTER_GraphicsControllerType_TO (base::)
#define COM_FORWARD_IMachine_GETTER_VRAMSize_TO(smth) NS_IMETHOD GetVRAMSize (PRUint32 * aVRAMSize) { return smth GetVRAMSize (aVRAMSize); }
#define COM_FORWARD_IMachine_GETTER_VRAMSize_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_VRAMSize_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_VRAMSize_TO_BASE(base) COM_FORWARD_IMachine_GETTER_VRAMSize_TO (base::)
#define COM_FORWARD_IMachine_SETTER_VRAMSize_TO(smth) NS_IMETHOD SetVRAMSize (PRUint32 aVRAMSize) { return smth SetVRAMSize (aVRAMSize); }
#define COM_FORWARD_IMachine_SETTER_VRAMSize_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_VRAMSize_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_VRAMSize_TO_BASE(base) COM_FORWARD_IMachine_SETTER_VRAMSize_TO (base::)
#define COM_FORWARD_IMachine_GETTER_Accelerate3DEnabled_TO(smth) NS_IMETHOD GetAccelerate3DEnabled (PRBool * aAccelerate3DEnabled) { return smth GetAccelerate3DEnabled (aAccelerate3DEnabled); }
#define COM_FORWARD_IMachine_GETTER_Accelerate3DEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_Accelerate3DEnabled_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_Accelerate3DEnabled_TO_BASE(base) COM_FORWARD_IMachine_GETTER_Accelerate3DEnabled_TO (base::)
#define COM_FORWARD_IMachine_SETTER_Accelerate3DEnabled_TO(smth) NS_IMETHOD SetAccelerate3DEnabled (PRBool aAccelerate3DEnabled) { return smth SetAccelerate3DEnabled (aAccelerate3DEnabled); }
#define COM_FORWARD_IMachine_SETTER_Accelerate3DEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_Accelerate3DEnabled_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_Accelerate3DEnabled_TO_BASE(base) COM_FORWARD_IMachine_SETTER_Accelerate3DEnabled_TO (base::)
#define COM_FORWARD_IMachine_GETTER_Accelerate2DVideoEnabled_TO(smth) NS_IMETHOD GetAccelerate2DVideoEnabled (PRBool * aAccelerate2DVideoEnabled) { return smth GetAccelerate2DVideoEnabled (aAccelerate2DVideoEnabled); }
#define COM_FORWARD_IMachine_GETTER_Accelerate2DVideoEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_Accelerate2DVideoEnabled_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_Accelerate2DVideoEnabled_TO_BASE(base) COM_FORWARD_IMachine_GETTER_Accelerate2DVideoEnabled_TO (base::)
#define COM_FORWARD_IMachine_SETTER_Accelerate2DVideoEnabled_TO(smth) NS_IMETHOD SetAccelerate2DVideoEnabled (PRBool aAccelerate2DVideoEnabled) { return smth SetAccelerate2DVideoEnabled (aAccelerate2DVideoEnabled); }
#define COM_FORWARD_IMachine_SETTER_Accelerate2DVideoEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_Accelerate2DVideoEnabled_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_Accelerate2DVideoEnabled_TO_BASE(base) COM_FORWARD_IMachine_SETTER_Accelerate2DVideoEnabled_TO (base::)
#define COM_FORWARD_IMachine_GETTER_MonitorCount_TO(smth) NS_IMETHOD GetMonitorCount (PRUint32 * aMonitorCount) { return smth GetMonitorCount (aMonitorCount); }
#define COM_FORWARD_IMachine_GETTER_MonitorCount_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_MonitorCount_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_MonitorCount_TO_BASE(base) COM_FORWARD_IMachine_GETTER_MonitorCount_TO (base::)
#define COM_FORWARD_IMachine_SETTER_MonitorCount_TO(smth) NS_IMETHOD SetMonitorCount (PRUint32 aMonitorCount) { return smth SetMonitorCount (aMonitorCount); }
#define COM_FORWARD_IMachine_SETTER_MonitorCount_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_MonitorCount_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_MonitorCount_TO_BASE(base) COM_FORWARD_IMachine_SETTER_MonitorCount_TO (base::)
#define COM_FORWARD_IMachine_GETTER_VideoCaptureEnabled_TO(smth) NS_IMETHOD GetVideoCaptureEnabled (PRBool * aVideoCaptureEnabled) { return smth GetVideoCaptureEnabled (aVideoCaptureEnabled); }
#define COM_FORWARD_IMachine_GETTER_VideoCaptureEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_VideoCaptureEnabled_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_VideoCaptureEnabled_TO_BASE(base) COM_FORWARD_IMachine_GETTER_VideoCaptureEnabled_TO (base::)
#define COM_FORWARD_IMachine_SETTER_VideoCaptureEnabled_TO(smth) NS_IMETHOD SetVideoCaptureEnabled (PRBool aVideoCaptureEnabled) { return smth SetVideoCaptureEnabled (aVideoCaptureEnabled); }
#define COM_FORWARD_IMachine_SETTER_VideoCaptureEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_VideoCaptureEnabled_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_VideoCaptureEnabled_TO_BASE(base) COM_FORWARD_IMachine_SETTER_VideoCaptureEnabled_TO (base::)
#define COM_FORWARD_IMachine_GETTER_VideoCaptureScreens_TO(smth) NS_IMETHOD GetVideoCaptureScreens (PRUint32 * aVideoCaptureScreensSize, PRBool * * aVideoCaptureScreens) { return smth GetVideoCaptureScreens (aVideoCaptureScreensSize, aVideoCaptureScreens); }
#define COM_FORWARD_IMachine_GETTER_VideoCaptureScreens_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_VideoCaptureScreens_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_VideoCaptureScreens_TO_BASE(base) COM_FORWARD_IMachine_GETTER_VideoCaptureScreens_TO (base::)
#define COM_FORWARD_IMachine_SETTER_VideoCaptureScreens_TO(smth) NS_IMETHOD SetVideoCaptureScreens (PRUint32 aVideoCaptureScreensSize, PRBool * aVideoCaptureScreens) { return smth SetVideoCaptureScreens (aVideoCaptureScreens); }
#define COM_FORWARD_IMachine_SETTER_VideoCaptureScreens_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_VideoCaptureScreens_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_VideoCaptureScreens_TO_BASE(base) COM_FORWARD_IMachine_SETTER_VideoCaptureScreens_TO (base::)
#define COM_FORWARD_IMachine_GETTER_VideoCaptureFile_TO(smth) NS_IMETHOD GetVideoCaptureFile (PRUnichar * * aVideoCaptureFile) { return smth GetVideoCaptureFile (aVideoCaptureFile); }
#define COM_FORWARD_IMachine_GETTER_VideoCaptureFile_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_VideoCaptureFile_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_VideoCaptureFile_TO_BASE(base) COM_FORWARD_IMachine_GETTER_VideoCaptureFile_TO (base::)
#define COM_FORWARD_IMachine_SETTER_VideoCaptureFile_TO(smth) NS_IMETHOD SetVideoCaptureFile (const PRUnichar * aVideoCaptureFile) { return smth SetVideoCaptureFile (aVideoCaptureFile); }
#define COM_FORWARD_IMachine_SETTER_VideoCaptureFile_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_VideoCaptureFile_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_VideoCaptureFile_TO_BASE(base) COM_FORWARD_IMachine_SETTER_VideoCaptureFile_TO (base::)
#define COM_FORWARD_IMachine_GETTER_VideoCaptureWidth_TO(smth) NS_IMETHOD GetVideoCaptureWidth (PRUint32 * aVideoCaptureWidth) { return smth GetVideoCaptureWidth (aVideoCaptureWidth); }
#define COM_FORWARD_IMachine_GETTER_VideoCaptureWidth_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_VideoCaptureWidth_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_VideoCaptureWidth_TO_BASE(base) COM_FORWARD_IMachine_GETTER_VideoCaptureWidth_TO (base::)
#define COM_FORWARD_IMachine_SETTER_VideoCaptureWidth_TO(smth) NS_IMETHOD SetVideoCaptureWidth (PRUint32 aVideoCaptureWidth) { return smth SetVideoCaptureWidth (aVideoCaptureWidth); }
#define COM_FORWARD_IMachine_SETTER_VideoCaptureWidth_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_VideoCaptureWidth_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_VideoCaptureWidth_TO_BASE(base) COM_FORWARD_IMachine_SETTER_VideoCaptureWidth_TO (base::)
#define COM_FORWARD_IMachine_GETTER_VideoCaptureHeight_TO(smth) NS_IMETHOD GetVideoCaptureHeight (PRUint32 * aVideoCaptureHeight) { return smth GetVideoCaptureHeight (aVideoCaptureHeight); }
#define COM_FORWARD_IMachine_GETTER_VideoCaptureHeight_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_VideoCaptureHeight_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_VideoCaptureHeight_TO_BASE(base) COM_FORWARD_IMachine_GETTER_VideoCaptureHeight_TO (base::)
#define COM_FORWARD_IMachine_SETTER_VideoCaptureHeight_TO(smth) NS_IMETHOD SetVideoCaptureHeight (PRUint32 aVideoCaptureHeight) { return smth SetVideoCaptureHeight (aVideoCaptureHeight); }
#define COM_FORWARD_IMachine_SETTER_VideoCaptureHeight_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_VideoCaptureHeight_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_VideoCaptureHeight_TO_BASE(base) COM_FORWARD_IMachine_SETTER_VideoCaptureHeight_TO (base::)
#define COM_FORWARD_IMachine_GETTER_VideoCaptureRate_TO(smth) NS_IMETHOD GetVideoCaptureRate (PRUint32 * aVideoCaptureRate) { return smth GetVideoCaptureRate (aVideoCaptureRate); }
#define COM_FORWARD_IMachine_GETTER_VideoCaptureRate_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_VideoCaptureRate_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_VideoCaptureRate_TO_BASE(base) COM_FORWARD_IMachine_GETTER_VideoCaptureRate_TO (base::)
#define COM_FORWARD_IMachine_SETTER_VideoCaptureRate_TO(smth) NS_IMETHOD SetVideoCaptureRate (PRUint32 aVideoCaptureRate) { return smth SetVideoCaptureRate (aVideoCaptureRate); }
#define COM_FORWARD_IMachine_SETTER_VideoCaptureRate_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_VideoCaptureRate_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_VideoCaptureRate_TO_BASE(base) COM_FORWARD_IMachine_SETTER_VideoCaptureRate_TO (base::)
#define COM_FORWARD_IMachine_GETTER_VideoCaptureFPS_TO(smth) NS_IMETHOD GetVideoCaptureFPS (PRUint32 * aVideoCaptureFPS) { return smth GetVideoCaptureFPS (aVideoCaptureFPS); }
#define COM_FORWARD_IMachine_GETTER_VideoCaptureFPS_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_VideoCaptureFPS_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_VideoCaptureFPS_TO_BASE(base) COM_FORWARD_IMachine_GETTER_VideoCaptureFPS_TO (base::)
#define COM_FORWARD_IMachine_SETTER_VideoCaptureFPS_TO(smth) NS_IMETHOD SetVideoCaptureFPS (PRUint32 aVideoCaptureFPS) { return smth SetVideoCaptureFPS (aVideoCaptureFPS); }
#define COM_FORWARD_IMachine_SETTER_VideoCaptureFPS_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_VideoCaptureFPS_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_VideoCaptureFPS_TO_BASE(base) COM_FORWARD_IMachine_SETTER_VideoCaptureFPS_TO (base::)
#define COM_FORWARD_IMachine_GETTER_VideoCaptureMaxTime_TO(smth) NS_IMETHOD GetVideoCaptureMaxTime (PRUint32 * aVideoCaptureMaxTime) { return smth GetVideoCaptureMaxTime (aVideoCaptureMaxTime); }
#define COM_FORWARD_IMachine_GETTER_VideoCaptureMaxTime_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_VideoCaptureMaxTime_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_VideoCaptureMaxTime_TO_BASE(base) COM_FORWARD_IMachine_GETTER_VideoCaptureMaxTime_TO (base::)
#define COM_FORWARD_IMachine_SETTER_VideoCaptureMaxTime_TO(smth) NS_IMETHOD SetVideoCaptureMaxTime (PRUint32 aVideoCaptureMaxTime) { return smth SetVideoCaptureMaxTime (aVideoCaptureMaxTime); }
#define COM_FORWARD_IMachine_SETTER_VideoCaptureMaxTime_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_VideoCaptureMaxTime_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_VideoCaptureMaxTime_TO_BASE(base) COM_FORWARD_IMachine_SETTER_VideoCaptureMaxTime_TO (base::)
#define COM_FORWARD_IMachine_GETTER_VideoCaptureMaxFileSize_TO(smth) NS_IMETHOD GetVideoCaptureMaxFileSize (PRUint32 * aVideoCaptureMaxFileSize) { return smth GetVideoCaptureMaxFileSize (aVideoCaptureMaxFileSize); }
#define COM_FORWARD_IMachine_GETTER_VideoCaptureMaxFileSize_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_VideoCaptureMaxFileSize_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_VideoCaptureMaxFileSize_TO_BASE(base) COM_FORWARD_IMachine_GETTER_VideoCaptureMaxFileSize_TO (base::)
#define COM_FORWARD_IMachine_SETTER_VideoCaptureMaxFileSize_TO(smth) NS_IMETHOD SetVideoCaptureMaxFileSize (PRUint32 aVideoCaptureMaxFileSize) { return smth SetVideoCaptureMaxFileSize (aVideoCaptureMaxFileSize); }
#define COM_FORWARD_IMachine_SETTER_VideoCaptureMaxFileSize_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_VideoCaptureMaxFileSize_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_VideoCaptureMaxFileSize_TO_BASE(base) COM_FORWARD_IMachine_SETTER_VideoCaptureMaxFileSize_TO (base::)
#define COM_FORWARD_IMachine_GETTER_VideoCaptureOptions_TO(smth) NS_IMETHOD GetVideoCaptureOptions (PRUnichar * * aVideoCaptureOptions) { return smth GetVideoCaptureOptions (aVideoCaptureOptions); }
#define COM_FORWARD_IMachine_GETTER_VideoCaptureOptions_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_VideoCaptureOptions_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_VideoCaptureOptions_TO_BASE(base) COM_FORWARD_IMachine_GETTER_VideoCaptureOptions_TO (base::)
#define COM_FORWARD_IMachine_SETTER_VideoCaptureOptions_TO(smth) NS_IMETHOD SetVideoCaptureOptions (const PRUnichar * aVideoCaptureOptions) { return smth SetVideoCaptureOptions (aVideoCaptureOptions); }
#define COM_FORWARD_IMachine_SETTER_VideoCaptureOptions_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_VideoCaptureOptions_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_VideoCaptureOptions_TO_BASE(base) COM_FORWARD_IMachine_SETTER_VideoCaptureOptions_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_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_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_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_FaultToleranceState_TO(smth) NS_IMETHOD GetFaultToleranceState (PRUint32 * aFaultToleranceState) { return smth GetFaultToleranceState (aFaultToleranceState); }
#define COM_FORWARD_IMachine_GETTER_FaultToleranceState_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_FaultToleranceState_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_FaultToleranceState_TO_BASE(base) COM_FORWARD_IMachine_GETTER_FaultToleranceState_TO (base::)
#define COM_FORWARD_IMachine_SETTER_FaultToleranceState_TO(smth) NS_IMETHOD SetFaultToleranceState (PRUint32 aFaultToleranceState) { return smth SetFaultToleranceState (aFaultToleranceState); }
#define COM_FORWARD_IMachine_SETTER_FaultToleranceState_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_FaultToleranceState_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_FaultToleranceState_TO_BASE(base) COM_FORWARD_IMachine_SETTER_FaultToleranceState_TO (base::)
#define COM_FORWARD_IMachine_GETTER_FaultTolerancePort_TO(smth) NS_IMETHOD GetFaultTolerancePort (PRUint32 * aFaultTolerancePort) { return smth GetFaultTolerancePort (aFaultTolerancePort); }
#define COM_FORWARD_IMachine_GETTER_FaultTolerancePort_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_FaultTolerancePort_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_FaultTolerancePort_TO_BASE(base) COM_FORWARD_IMachine_GETTER_FaultTolerancePort_TO (base::)
#define COM_FORWARD_IMachine_SETTER_FaultTolerancePort_TO(smth) NS_IMETHOD SetFaultTolerancePort (PRUint32 aFaultTolerancePort) { return smth SetFaultTolerancePort (aFaultTolerancePort); }
#define COM_FORWARD_IMachine_SETTER_FaultTolerancePort_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_FaultTolerancePort_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_FaultTolerancePort_TO_BASE(base) COM_FORWARD_IMachine_SETTER_FaultTolerancePort_TO (base::)
#define COM_FORWARD_IMachine_GETTER_FaultToleranceAddress_TO(smth) NS_IMETHOD GetFaultToleranceAddress (PRUnichar * * aFaultToleranceAddress) { return smth GetFaultToleranceAddress (aFaultToleranceAddress); }
#define COM_FORWARD_IMachine_GETTER_FaultToleranceAddress_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_FaultToleranceAddress_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_FaultToleranceAddress_TO_BASE(base) COM_FORWARD_IMachine_GETTER_FaultToleranceAddress_TO (base::)
#define COM_FORWARD_IMachine_SETTER_FaultToleranceAddress_TO(smth) NS_IMETHOD SetFaultToleranceAddress (const PRUnichar * aFaultToleranceAddress) { return smth SetFaultToleranceAddress (aFaultToleranceAddress); }
#define COM_FORWARD_IMachine_SETTER_FaultToleranceAddress_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_FaultToleranceAddress_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_FaultToleranceAddress_TO_BASE(base) COM_FORWARD_IMachine_SETTER_FaultToleranceAddress_TO (base::)
#define COM_FORWARD_IMachine_GETTER_FaultTolerancePassword_TO(smth) NS_IMETHOD GetFaultTolerancePassword (PRUnichar * * aFaultTolerancePassword) { return smth GetFaultTolerancePassword (aFaultTolerancePassword); }
#define COM_FORWARD_IMachine_GETTER_FaultTolerancePassword_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_FaultTolerancePassword_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_FaultTolerancePassword_TO_BASE(base) COM_FORWARD_IMachine_GETTER_FaultTolerancePassword_TO (base::)
#define COM_FORWARD_IMachine_SETTER_FaultTolerancePassword_TO(smth) NS_IMETHOD SetFaultTolerancePassword (const PRUnichar * aFaultTolerancePassword) { return smth SetFaultTolerancePassword (aFaultTolerancePassword); }
#define COM_FORWARD_IMachine_SETTER_FaultTolerancePassword_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_FaultTolerancePassword_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_FaultTolerancePassword_TO_BASE(base) COM_FORWARD_IMachine_SETTER_FaultTolerancePassword_TO (base::)
#define COM_FORWARD_IMachine_GETTER_FaultToleranceSyncInterval_TO(smth) NS_IMETHOD GetFaultToleranceSyncInterval (PRUint32 * aFaultToleranceSyncInterval) { return smth GetFaultToleranceSyncInterval (aFaultToleranceSyncInterval); }
#define COM_FORWARD_IMachine_GETTER_FaultToleranceSyncInterval_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_FaultToleranceSyncInterval_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_FaultToleranceSyncInterval_TO_BASE(base) COM_FORWARD_IMachine_GETTER_FaultToleranceSyncInterval_TO (base::)
#define COM_FORWARD_IMachine_SETTER_FaultToleranceSyncInterval_TO(smth) NS_IMETHOD SetFaultToleranceSyncInterval (PRUint32 aFaultToleranceSyncInterval) { return smth SetFaultToleranceSyncInterval (aFaultToleranceSyncInterval); }
#define COM_FORWARD_IMachine_SETTER_FaultToleranceSyncInterval_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_FaultToleranceSyncInterval_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_FaultToleranceSyncInterval_TO_BASE(base) COM_FORWARD_IMachine_SETTER_FaultToleranceSyncInterval_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 (PRUnichar * * 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 (const PRUnichar * 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, PRUnichar * aEnvironment, IProgress * * aProgress) { return smth LaunchVMProcess (aSession, aName, aEnvironment, 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_GetCPUIDLeaf_TO(smth) NS_IMETHOD GetCPUIDLeaf (PRUint32 aId, PRUint32 * aValEax, PRUint32 * aValEbx, PRUint32 * aValEcx, PRUint32 * aValEdx) { return smth GetCPUIDLeaf (aId, 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 aId, PRUint32 aValEax, PRUint32 aValEbx, PRUint32 aValEcx, PRUint32 aValEdx) { return smth SetCPUIDLeaf (aId, 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 aId) { return smth RemoveCPUIDLeaf (aId); }
#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) { return smth CreateSharedFolder (aName, aHostPath, aWritable, aAutomount); }
#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_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;

/* starting interface:    IEmulatedUSB */
#define IEMULATEDUSB_IID_STR "6e253ee8-477a-2497-6759-88b8292a5af0"

#define IEMULATEDUSB_IID \
  {0x6e253ee8, 0x477a, 0x2497, \
    { 0x67, 0x59, 0x88, 0xb8, 0x29, 0x2a, 0x5a, 0xf0 }}

class NS_NO_VTABLE IEmulatedUSB : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IEMULATEDUSB_IID)

  /* void getWebcams (out unsigned long webcamsSize, [array, size_is (webcamsSize), retval] out wstring webcams); */
  NS_IMETHOD GetWebcams(PRUint32 *webcamsSize, PRUnichar ***webcams) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IEmulatedUSB; */
  NS_IMETHOD GetInternalAndReservedAttribute1IEmulatedUSB(PRUint32 *aInternalAndReservedAttribute1IEmulatedUSB) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IEmulatedUSB; */
  NS_IMETHOD GetInternalAndReservedAttribute2IEmulatedUSB(PRUint32 *aInternalAndReservedAttribute2IEmulatedUSB) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IEmulatedUSB; */
  NS_IMETHOD GetInternalAndReservedAttribute3IEmulatedUSB(PRUint32 *aInternalAndReservedAttribute3IEmulatedUSB) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IEmulatedUSB; */
  NS_IMETHOD GetInternalAndReservedAttribute4IEmulatedUSB(PRUint32 *aInternalAndReservedAttribute4IEmulatedUSB) = 0;

  /* void webcamAttach (in wstring path, in wstring settings); */
  NS_IMETHOD WebcamAttach(const PRUnichar *path, const PRUnichar *settings) = 0;

  /* void webcamDetach (in wstring path); */
  NS_IMETHOD WebcamDetach(const PRUnichar *path) = 0;

  /* void InternalAndReservedMethod1IEmulatedUSB (); */
  NS_IMETHOD InternalAndReservedMethod1IEmulatedUSB(void) = 0;

  /* void InternalAndReservedMethod2IEmulatedUSB (); */
  NS_IMETHOD InternalAndReservedMethod2IEmulatedUSB(void) = 0;

  /* void InternalAndReservedMethod3IEmulatedUSB (); */
  NS_IMETHOD InternalAndReservedMethod3IEmulatedUSB(void) = 0;

  /* void InternalAndReservedMethod4IEmulatedUSB (); */
  NS_IMETHOD InternalAndReservedMethod4IEmulatedUSB(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IEMULATEDUSB \
  NS_IMETHOD GetWebcams(PRUint32 *webcamsSize, PRUnichar ***webcams); \
  NS_IMETHOD GetInternalAndReservedAttribute1IEmulatedUSB(PRUint32 *aInternalAndReservedAttribute1IEmulatedUSB); \
  NS_IMETHOD GetInternalAndReservedAttribute2IEmulatedUSB(PRUint32 *aInternalAndReservedAttribute2IEmulatedUSB); \
  NS_IMETHOD GetInternalAndReservedAttribute3IEmulatedUSB(PRUint32 *aInternalAndReservedAttribute3IEmulatedUSB); \
  NS_IMETHOD GetInternalAndReservedAttribute4IEmulatedUSB(PRUint32 *aInternalAndReservedAttribute4IEmulatedUSB); \
  NS_IMETHOD WebcamAttach(const PRUnichar *path, const PRUnichar *settings); \
  NS_IMETHOD WebcamDetach(const PRUnichar *path); \
  NS_IMETHOD InternalAndReservedMethod1IEmulatedUSB(void); \
  NS_IMETHOD InternalAndReservedMethod2IEmulatedUSB(void); \
  NS_IMETHOD InternalAndReservedMethod3IEmulatedUSB(void); \
  NS_IMETHOD InternalAndReservedMethod4IEmulatedUSB(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IEMULATEDUSB(_to) \
  NS_IMETHOD GetWebcams(PRUint32 *webcamsSize, PRUnichar ***webcams) { return _to GetWebcams(webcamsSize, webcams); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IEmulatedUSB(PRUint32 *aInternalAndReservedAttribute1IEmulatedUSB) { return _to GetInternalAndReservedAttribute1IEmulatedUSB(aInternalAndReservedAttribute1IEmulatedUSB); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IEmulatedUSB(PRUint32 *aInternalAndReservedAttribute2IEmulatedUSB) { return _to GetInternalAndReservedAttribute2IEmulatedUSB(aInternalAndReservedAttribute2IEmulatedUSB); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IEmulatedUSB(PRUint32 *aInternalAndReservedAttribute3IEmulatedUSB) { return _to GetInternalAndReservedAttribute3IEmulatedUSB(aInternalAndReservedAttribute3IEmulatedUSB); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IEmulatedUSB(PRUint32 *aInternalAndReservedAttribute4IEmulatedUSB) { return _to GetInternalAndReservedAttribute4IEmulatedUSB(aInternalAndReservedAttribute4IEmulatedUSB); } \
  NS_IMETHOD WebcamAttach(const PRUnichar *path, const PRUnichar *settings) { return _to WebcamAttach(path, settings); } \
  NS_IMETHOD WebcamDetach(const PRUnichar *path) { return _to WebcamDetach(path); } \
  NS_IMETHOD InternalAndReservedMethod1IEmulatedUSB(void) { return _to InternalAndReservedMethod1IEmulatedUSB(); } \
  NS_IMETHOD InternalAndReservedMethod2IEmulatedUSB(void) { return _to InternalAndReservedMethod2IEmulatedUSB(); } \
  NS_IMETHOD InternalAndReservedMethod3IEmulatedUSB(void) { return _to InternalAndReservedMethod3IEmulatedUSB(); } \
  NS_IMETHOD InternalAndReservedMethod4IEmulatedUSB(void) { return _to InternalAndReservedMethod4IEmulatedUSB(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IEMULATEDUSB(_to) \
  NS_IMETHOD GetWebcams(PRUint32 *webcamsSize, PRUnichar ***webcams) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetWebcams(webcamsSize, webcams); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IEmulatedUSB(PRUint32 *aInternalAndReservedAttribute1IEmulatedUSB) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IEmulatedUSB(aInternalAndReservedAttribute1IEmulatedUSB); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IEmulatedUSB(PRUint32 *aInternalAndReservedAttribute2IEmulatedUSB) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IEmulatedUSB(aInternalAndReservedAttribute2IEmulatedUSB); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IEmulatedUSB(PRUint32 *aInternalAndReservedAttribute3IEmulatedUSB) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IEmulatedUSB(aInternalAndReservedAttribute3IEmulatedUSB); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IEmulatedUSB(PRUint32 *aInternalAndReservedAttribute4IEmulatedUSB) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IEmulatedUSB(aInternalAndReservedAttribute4IEmulatedUSB); } \
  NS_IMETHOD WebcamAttach(const PRUnichar *path, const PRUnichar *settings) { return !_to ? NS_ERROR_NULL_POINTER : _to->WebcamAttach(path, settings); } \
  NS_IMETHOD WebcamDetach(const PRUnichar *path) { return !_to ? NS_ERROR_NULL_POINTER : _to->WebcamDetach(path); } \
  NS_IMETHOD InternalAndReservedMethod1IEmulatedUSB(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IEmulatedUSB(); } \
  NS_IMETHOD InternalAndReservedMethod2IEmulatedUSB(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IEmulatedUSB(); } \
  NS_IMETHOD InternalAndReservedMethod3IEmulatedUSB(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IEmulatedUSB(); } \
  NS_IMETHOD InternalAndReservedMethod4IEmulatedUSB(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IEmulatedUSB(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IEmulatedUSB
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IEMULATEDUSB

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IEmulatedUSB)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* void getWebcams (out unsigned long webcamsSize, [array, size_is (webcamsSize), retval] out wstring webcams); */
NS_IMETHODIMP _MYCLASS_::GetWebcams(PRUint32 *webcamsSize, PRUnichar ***webcams)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IEmulatedUSB; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IEmulatedUSB(PRUint32 *aInternalAndReservedAttribute1IEmulatedUSB)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IEmulatedUSB; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IEmulatedUSB(PRUint32 *aInternalAndReservedAttribute2IEmulatedUSB)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute3IEmulatedUSB; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute3IEmulatedUSB(PRUint32 *aInternalAndReservedAttribute3IEmulatedUSB)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute4IEmulatedUSB; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute4IEmulatedUSB(PRUint32 *aInternalAndReservedAttribute4IEmulatedUSB)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void webcamAttach (in wstring path, in wstring settings); */
NS_IMETHODIMP _MYCLASS_::WebcamAttach(const PRUnichar *path, const PRUnichar *settings)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void webcamDetach (in wstring path); */
NS_IMETHODIMP _MYCLASS_::WebcamDetach(const PRUnichar *path)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1IEmulatedUSB (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1IEmulatedUSB()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod2IEmulatedUSB (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod2IEmulatedUSB()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod3IEmulatedUSB (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod3IEmulatedUSB()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod4IEmulatedUSB (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod4IEmulatedUSB()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IVRDEServerInfo */
#define IVRDESERVERINFO_IID_STR "c39ef4d6-7532-45e8-96da-eb5986ae76e4"

#define IVRDESERVERINFO_IID \
  {0xc39ef4d6, 0x7532, 0x45e8, \
    { 0x96, 0xda, 0xeb, 0x59, 0x86, 0xae, 0x76, 0xe4 }}

class NS_NO_VTABLE IVRDEServerInfo : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IVRDESERVERINFO_IID)

  /* readonly attribute boolean active; */
  NS_IMETHOD GetActive(PRBool *aActive) = 0;

  /* readonly attribute long port; */
  NS_IMETHOD GetPort(PRInt32 *aPort) = 0;

  /* readonly attribute unsigned long numberOfClients; */
  NS_IMETHOD GetNumberOfClients(PRUint32 *aNumberOfClients) = 0;

  /* readonly attribute long long beginTime; */
  NS_IMETHOD GetBeginTime(PRInt64 *aBeginTime) = 0;

  /* readonly attribute long long endTime; */
  NS_IMETHOD GetEndTime(PRInt64 *aEndTime) = 0;

  /* readonly attribute long long bytesSent; */
  NS_IMETHOD GetBytesSent(PRInt64 *aBytesSent) = 0;

  /* readonly attribute long long bytesSentTotal; */
  NS_IMETHOD GetBytesSentTotal(PRInt64 *aBytesSentTotal) = 0;

  /* readonly attribute long long bytesReceived; */
  NS_IMETHOD GetBytesReceived(PRInt64 *aBytesReceived) = 0;

  /* readonly attribute long long bytesReceivedTotal; */
  NS_IMETHOD GetBytesReceivedTotal(PRInt64 *aBytesReceivedTotal) = 0;

  /* readonly attribute wstring user; */
  NS_IMETHOD GetUser(PRUnichar * *aUser) = 0;

  /* readonly attribute wstring domain; */
  NS_IMETHOD GetDomain(PRUnichar * *aDomain) = 0;

  /* readonly attribute wstring clientName; */
  NS_IMETHOD GetClientName(PRUnichar * *aClientName) = 0;

  /* readonly attribute wstring clientIP; */
  NS_IMETHOD GetClientIP(PRUnichar * *aClientIP) = 0;

  /* readonly attribute unsigned long clientVersion; */
  NS_IMETHOD GetClientVersion(PRUint32 *aClientVersion) = 0;

  /* readonly attribute unsigned long encryptionStyle; */
  NS_IMETHOD GetEncryptionStyle(PRUint32 *aEncryptionStyle) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IVRDEServerInfo; */
  NS_IMETHOD GetInternalAndReservedAttribute1IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute1IVRDEServerInfo) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IVRDEServerInfo; */
  NS_IMETHOD GetInternalAndReservedAttribute2IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute2IVRDEServerInfo) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IVRDEServerInfo; */
  NS_IMETHOD GetInternalAndReservedAttribute3IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute3IVRDEServerInfo) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IVRDEServerInfo; */
  NS_IMETHOD GetInternalAndReservedAttribute4IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute4IVRDEServerInfo) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IVRDEServerInfo; */
  NS_IMETHOD GetInternalAndReservedAttribute5IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute5IVRDEServerInfo) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IVRDEServerInfo; */
  NS_IMETHOD GetInternalAndReservedAttribute6IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute6IVRDEServerInfo) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IVRDEServerInfo; */
  NS_IMETHOD GetInternalAndReservedAttribute7IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute7IVRDEServerInfo) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IVRDEServerInfo; */
  NS_IMETHOD GetInternalAndReservedAttribute8IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute8IVRDEServerInfo) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IVRDESERVERINFO \
  NS_IMETHOD GetActive(PRBool *aActive); \
  NS_IMETHOD GetPort(PRInt32 *aPort); \
  NS_IMETHOD GetNumberOfClients(PRUint32 *aNumberOfClients); \
  NS_IMETHOD GetBeginTime(PRInt64 *aBeginTime); \
  NS_IMETHOD GetEndTime(PRInt64 *aEndTime); \
  NS_IMETHOD GetBytesSent(PRInt64 *aBytesSent); \
  NS_IMETHOD GetBytesSentTotal(PRInt64 *aBytesSentTotal); \
  NS_IMETHOD GetBytesReceived(PRInt64 *aBytesReceived); \
  NS_IMETHOD GetBytesReceivedTotal(PRInt64 *aBytesReceivedTotal); \
  NS_IMETHOD GetUser(PRUnichar * *aUser); \
  NS_IMETHOD GetDomain(PRUnichar * *aDomain); \
  NS_IMETHOD GetClientName(PRUnichar * *aClientName); \
  NS_IMETHOD GetClientIP(PRUnichar * *aClientIP); \
  NS_IMETHOD GetClientVersion(PRUint32 *aClientVersion); \
  NS_IMETHOD GetEncryptionStyle(PRUint32 *aEncryptionStyle); \
  NS_IMETHOD GetInternalAndReservedAttribute1IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute1IVRDEServerInfo); \
  NS_IMETHOD GetInternalAndReservedAttribute2IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute2IVRDEServerInfo); \
  NS_IMETHOD GetInternalAndReservedAttribute3IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute3IVRDEServerInfo); \
  NS_IMETHOD GetInternalAndReservedAttribute4IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute4IVRDEServerInfo); \
  NS_IMETHOD GetInternalAndReservedAttribute5IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute5IVRDEServerInfo); \
  NS_IMETHOD GetInternalAndReservedAttribute6IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute6IVRDEServerInfo); \
  NS_IMETHOD GetInternalAndReservedAttribute7IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute7IVRDEServerInfo); \
  NS_IMETHOD GetInternalAndReservedAttribute8IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute8IVRDEServerInfo); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IVRDESERVERINFO(_to) \
  NS_IMETHOD GetActive(PRBool *aActive) { return _to GetActive(aActive); } \
  NS_IMETHOD GetPort(PRInt32 *aPort) { return _to GetPort(aPort); } \
  NS_IMETHOD GetNumberOfClients(PRUint32 *aNumberOfClients) { return _to GetNumberOfClients(aNumberOfClients); } \
  NS_IMETHOD GetBeginTime(PRInt64 *aBeginTime) { return _to GetBeginTime(aBeginTime); } \
  NS_IMETHOD GetEndTime(PRInt64 *aEndTime) { return _to GetEndTime(aEndTime); } \
  NS_IMETHOD GetBytesSent(PRInt64 *aBytesSent) { return _to GetBytesSent(aBytesSent); } \
  NS_IMETHOD GetBytesSentTotal(PRInt64 *aBytesSentTotal) { return _to GetBytesSentTotal(aBytesSentTotal); } \
  NS_IMETHOD GetBytesReceived(PRInt64 *aBytesReceived) { return _to GetBytesReceived(aBytesReceived); } \
  NS_IMETHOD GetBytesReceivedTotal(PRInt64 *aBytesReceivedTotal) { return _to GetBytesReceivedTotal(aBytesReceivedTotal); } \
  NS_IMETHOD GetUser(PRUnichar * *aUser) { return _to GetUser(aUser); } \
  NS_IMETHOD GetDomain(PRUnichar * *aDomain) { return _to GetDomain(aDomain); } \
  NS_IMETHOD GetClientName(PRUnichar * *aClientName) { return _to GetClientName(aClientName); } \
  NS_IMETHOD GetClientIP(PRUnichar * *aClientIP) { return _to GetClientIP(aClientIP); } \
  NS_IMETHOD GetClientVersion(PRUint32 *aClientVersion) { return _to GetClientVersion(aClientVersion); } \
  NS_IMETHOD GetEncryptionStyle(PRUint32 *aEncryptionStyle) { return _to GetEncryptionStyle(aEncryptionStyle); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute1IVRDEServerInfo) { return _to GetInternalAndReservedAttribute1IVRDEServerInfo(aInternalAndReservedAttribute1IVRDEServerInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute2IVRDEServerInfo) { return _to GetInternalAndReservedAttribute2IVRDEServerInfo(aInternalAndReservedAttribute2IVRDEServerInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute3IVRDEServerInfo) { return _to GetInternalAndReservedAttribute3IVRDEServerInfo(aInternalAndReservedAttribute3IVRDEServerInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute4IVRDEServerInfo) { return _to GetInternalAndReservedAttribute4IVRDEServerInfo(aInternalAndReservedAttribute4IVRDEServerInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute5IVRDEServerInfo) { return _to GetInternalAndReservedAttribute5IVRDEServerInfo(aInternalAndReservedAttribute5IVRDEServerInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute6IVRDEServerInfo) { return _to GetInternalAndReservedAttribute6IVRDEServerInfo(aInternalAndReservedAttribute6IVRDEServerInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute7IVRDEServerInfo) { return _to GetInternalAndReservedAttribute7IVRDEServerInfo(aInternalAndReservedAttribute7IVRDEServerInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute8IVRDEServerInfo) { return _to GetInternalAndReservedAttribute8IVRDEServerInfo(aInternalAndReservedAttribute8IVRDEServerInfo); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IVRDESERVERINFO(_to) \
  NS_IMETHOD GetActive(PRBool *aActive) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetActive(aActive); } \
  NS_IMETHOD GetPort(PRInt32 *aPort) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPort(aPort); } \
  NS_IMETHOD GetNumberOfClients(PRUint32 *aNumberOfClients) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNumberOfClients(aNumberOfClients); } \
  NS_IMETHOD GetBeginTime(PRInt64 *aBeginTime) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBeginTime(aBeginTime); } \
  NS_IMETHOD GetEndTime(PRInt64 *aEndTime) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEndTime(aEndTime); } \
  NS_IMETHOD GetBytesSent(PRInt64 *aBytesSent) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBytesSent(aBytesSent); } \
  NS_IMETHOD GetBytesSentTotal(PRInt64 *aBytesSentTotal) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBytesSentTotal(aBytesSentTotal); } \
  NS_IMETHOD GetBytesReceived(PRInt64 *aBytesReceived) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBytesReceived(aBytesReceived); } \
  NS_IMETHOD GetBytesReceivedTotal(PRInt64 *aBytesReceivedTotal) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBytesReceivedTotal(aBytesReceivedTotal); } \
  NS_IMETHOD GetUser(PRUnichar * *aUser) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUser(aUser); } \
  NS_IMETHOD GetDomain(PRUnichar * *aDomain) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDomain(aDomain); } \
  NS_IMETHOD GetClientName(PRUnichar * *aClientName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetClientName(aClientName); } \
  NS_IMETHOD GetClientIP(PRUnichar * *aClientIP) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetClientIP(aClientIP); } \
  NS_IMETHOD GetClientVersion(PRUint32 *aClientVersion) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetClientVersion(aClientVersion); } \
  NS_IMETHOD GetEncryptionStyle(PRUint32 *aEncryptionStyle) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEncryptionStyle(aEncryptionStyle); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute1IVRDEServerInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IVRDEServerInfo(aInternalAndReservedAttribute1IVRDEServerInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute2IVRDEServerInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IVRDEServerInfo(aInternalAndReservedAttribute2IVRDEServerInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute3IVRDEServerInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IVRDEServerInfo(aInternalAndReservedAttribute3IVRDEServerInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute4IVRDEServerInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IVRDEServerInfo(aInternalAndReservedAttribute4IVRDEServerInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute5IVRDEServerInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IVRDEServerInfo(aInternalAndReservedAttribute5IVRDEServerInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute6IVRDEServerInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IVRDEServerInfo(aInternalAndReservedAttribute6IVRDEServerInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute7IVRDEServerInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IVRDEServerInfo(aInternalAndReservedAttribute7IVRDEServerInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute8IVRDEServerInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IVRDEServerInfo(aInternalAndReservedAttribute8IVRDEServerInfo); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IVRDEServerInfo
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IVRDESERVERINFO

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IVRDEServerInfo)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean active; */
NS_IMETHODIMP _MYCLASS_::GetActive(PRBool *aActive)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long port; */
NS_IMETHODIMP _MYCLASS_::GetPort(PRInt32 *aPort)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long numberOfClients; */
NS_IMETHODIMP _MYCLASS_::GetNumberOfClients(PRUint32 *aNumberOfClients)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long long beginTime; */
NS_IMETHODIMP _MYCLASS_::GetBeginTime(PRInt64 *aBeginTime)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long long endTime; */
NS_IMETHODIMP _MYCLASS_::GetEndTime(PRInt64 *aEndTime)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long long bytesSent; */
NS_IMETHODIMP _MYCLASS_::GetBytesSent(PRInt64 *aBytesSent)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long long bytesSentTotal; */
NS_IMETHODIMP _MYCLASS_::GetBytesSentTotal(PRInt64 *aBytesSentTotal)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long long bytesReceived; */
NS_IMETHODIMP _MYCLASS_::GetBytesReceived(PRInt64 *aBytesReceived)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long long bytesReceivedTotal; */
NS_IMETHODIMP _MYCLASS_::GetBytesReceivedTotal(PRInt64 *aBytesReceivedTotal)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring user; */
NS_IMETHODIMP _MYCLASS_::GetUser(PRUnichar * *aUser)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring domain; */
NS_IMETHODIMP _MYCLASS_::GetDomain(PRUnichar * *aDomain)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring clientName; */
NS_IMETHODIMP _MYCLASS_::GetClientName(PRUnichar * *aClientName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring clientIP; */
NS_IMETHODIMP _MYCLASS_::GetClientIP(PRUnichar * *aClientIP)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long clientVersion; */
NS_IMETHODIMP _MYCLASS_::GetClientVersion(PRUint32 *aClientVersion)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long encryptionStyle; */
NS_IMETHODIMP _MYCLASS_::GetEncryptionStyle(PRUint32 *aEncryptionStyle)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IVRDEServerInfo; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute1IVRDEServerInfo)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IVRDEServerInfo; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute2IVRDEServerInfo)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute3IVRDEServerInfo; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute3IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute3IVRDEServerInfo)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute4IVRDEServerInfo; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute4IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute4IVRDEServerInfo)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute5IVRDEServerInfo; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute5IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute5IVRDEServerInfo)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute6IVRDEServerInfo; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute6IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute6IVRDEServerInfo)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute7IVRDEServerInfo; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute7IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute7IVRDEServerInfo)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute8IVRDEServerInfo; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute8IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute8IVRDEServerInfo)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IConsole */
#define ICONSOLE_IID_STR "872da645-4a9b-1727-bee2-5585105b9eed"

#define ICONSOLE_IID \
  {0x872da645, 0x4a9b, 0x1727, \
    { 0xbe, 0xe2, 0x55, 0x85, 0x10, 0x5b, 0x9e, 0xed }}

class NS_NO_VTABLE IConsole : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ICONSOLE_IID)

  /* readonly attribute IMachine machine; */
  NS_IMETHOD GetMachine(IMachine * *aMachine) = 0;

  /* readonly attribute PRUint32 state; */
  NS_IMETHOD GetState(PRUint32 *aState) = 0;

  /* readonly attribute IGuest guest; */
  NS_IMETHOD GetGuest(IGuest * *aGuest) = 0;

  /* readonly attribute IKeyboard keyboard; */
  NS_IMETHOD GetKeyboard(IKeyboard * *aKeyboard) = 0;

  /* readonly attribute IMouse mouse; */
  NS_IMETHOD GetMouse(IMouse * *aMouse) = 0;

  /* readonly attribute IDisplay display; */
  NS_IMETHOD GetDisplay(IDisplay * *aDisplay) = 0;

  /* readonly attribute IMachineDebugger debugger; */
  NS_IMETHOD GetDebugger(IMachineDebugger * *aDebugger) = 0;

  /* void getUSBDevices (out unsigned long USBDevicesSize, [array, size_is (USBDevicesSize), retval] out IUSBDevice USBDevices); */
  NS_IMETHOD GetUSBDevices(PRUint32 *USBDevicesSize, IUSBDevice ***USBDevices) = 0;

  /* void getRemoteUSBDevices (out unsigned long remoteUSBDevicesSize, [array, size_is (remoteUSBDevicesSize), retval] out IHostUSBDevice remoteUSBDevices); */
  NS_IMETHOD GetRemoteUSBDevices(PRUint32 *remoteUSBDevicesSize, IHostUSBDevice ***remoteUSBDevices) = 0;

  /* void getSharedFolders (out unsigned long sharedFoldersSize, [array, size_is (sharedFoldersSize), retval] out ISharedFolder sharedFolders); */
  NS_IMETHOD GetSharedFolders(PRUint32 *sharedFoldersSize, ISharedFolder ***sharedFolders) = 0;

  /* readonly attribute IVRDEServerInfo VRDEServerInfo; */
  NS_IMETHOD GetVRDEServerInfo(IVRDEServerInfo * *aVRDEServerInfo) = 0;

  /* readonly attribute IEventSource eventSource; */
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) = 0;

  /* void getAttachedPCIDevices (out unsigned long attachedPCIDevicesSize, [array, size_is (attachedPCIDevicesSize), retval] out IPCIDeviceAttachment attachedPCIDevices); */
  NS_IMETHOD GetAttachedPCIDevices(PRUint32 *attachedPCIDevicesSize, IPCIDeviceAttachment ***attachedPCIDevices) = 0;

  /* attribute boolean useHostClipboard; */
  NS_IMETHOD GetUseHostClipboard(PRBool *aUseHostClipboard) = 0;
  NS_IMETHOD SetUseHostClipboard(PRBool aUseHostClipboard) = 0;

  /* readonly attribute IEmulatedUSB emulatedUSB; */
  NS_IMETHOD GetEmulatedUSB(IEmulatedUSB * *aEmulatedUSB) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IConsole; */
  NS_IMETHOD GetInternalAndReservedAttribute1IConsole(PRUint32 *aInternalAndReservedAttribute1IConsole) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IConsole; */
  NS_IMETHOD GetInternalAndReservedAttribute2IConsole(PRUint32 *aInternalAndReservedAttribute2IConsole) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IConsole; */
  NS_IMETHOD GetInternalAndReservedAttribute3IConsole(PRUint32 *aInternalAndReservedAttribute3IConsole) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IConsole; */
  NS_IMETHOD GetInternalAndReservedAttribute4IConsole(PRUint32 *aInternalAndReservedAttribute4IConsole) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IConsole; */
  NS_IMETHOD GetInternalAndReservedAttribute5IConsole(PRUint32 *aInternalAndReservedAttribute5IConsole) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IConsole; */
  NS_IMETHOD GetInternalAndReservedAttribute6IConsole(PRUint32 *aInternalAndReservedAttribute6IConsole) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IConsole; */
  NS_IMETHOD GetInternalAndReservedAttribute7IConsole(PRUint32 *aInternalAndReservedAttribute7IConsole) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IConsole; */
  NS_IMETHOD GetInternalAndReservedAttribute8IConsole(PRUint32 *aInternalAndReservedAttribute8IConsole) = 0;

  /* void powerUp ([retval] out IProgress progress); */
  NS_IMETHOD PowerUp(IProgress **progress) = 0;

  /* void powerUpPaused ([retval] out IProgress progress); */
  NS_IMETHOD PowerUpPaused(IProgress **progress) = 0;

  /* void powerDown ([retval] out IProgress progress); */
  NS_IMETHOD PowerDown(IProgress **progress) = 0;

  /* void reset (); */
  NS_IMETHOD Reset(void) = 0;

  /* void pause (); */
  NS_IMETHOD Pause(void) = 0;

  /* void resume (); */
  NS_IMETHOD Resume(void) = 0;

  /* void powerButton (); */
  NS_IMETHOD PowerButton(void) = 0;

  /* void sleepButton (); */
  NS_IMETHOD SleepButton(void) = 0;

  /* void getPowerButtonHandled ([retval] out boolean handled); */
  NS_IMETHOD GetPowerButtonHandled(PRBool *handled) = 0;

  /* void getGuestEnteredACPIMode ([retval] out boolean entered); */
  NS_IMETHOD GetGuestEnteredACPIMode(PRBool *entered) = 0;

  /* void getDeviceActivity (in unsigned long typeSize, [array, size_is (typeSize)] in PRUint32 type, out unsigned long activitySize, [array, size_is (activitySize), retval] out PRUint32 activity); */
  NS_IMETHOD GetDeviceActivity(PRUint32 typeSize, PRUint32 *type, PRUint32 *activitySize, PRUint32 **activity) = 0;

  /* void attachUSBDevice (in wstring id, in wstring captureFilename); */
  NS_IMETHOD AttachUSBDevice(const PRUnichar *id, const PRUnichar *captureFilename) = 0;

  /* void detachUSBDevice (in wstring id, [retval] out IUSBDevice device); */
  NS_IMETHOD DetachUSBDevice(const PRUnichar *id, IUSBDevice **device) = 0;

  /* void findUSBDeviceByAddress (in wstring name, [retval] out IUSBDevice device); */
  NS_IMETHOD FindUSBDeviceByAddress(const PRUnichar *name, IUSBDevice **device) = 0;

  /* void findUSBDeviceById (in wstring id, [retval] out IUSBDevice device); */
  NS_IMETHOD FindUSBDeviceById(const PRUnichar *id, IUSBDevice **device) = 0;

  /* void createSharedFolder (in wstring name, in wstring hostPath, in boolean writable, in boolean automount); */
  NS_IMETHOD CreateSharedFolder(const PRUnichar *name, const PRUnichar *hostPath, PRBool writable, PRBool automount) = 0;

  /* void removeSharedFolder (in wstring name); */
  NS_IMETHOD RemoveSharedFolder(const PRUnichar *name) = 0;

  /* void teleport (in wstring hostname, in unsigned long tcpport, in wstring password, in unsigned long maxDowntime, [retval] out IProgress progress); */
  NS_IMETHOD Teleport(const PRUnichar *hostname, PRUint32 tcpport, const PRUnichar *password, PRUint32 maxDowntime, IProgress **progress) = 0;

  /* void addDiskEncryptionPassword (in wstring id, in wstring password, in boolean clearOnSuspend); */
  NS_IMETHOD AddDiskEncryptionPassword(const PRUnichar *id, const PRUnichar *password, PRBool clearOnSuspend) = 0;

  /* 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); */
  NS_IMETHOD AddDiskEncryptionPasswords(PRUint32 idsSize, const PRUnichar **ids, PRUint32 passwordsSize, const PRUnichar **passwords, PRBool clearOnSuspend) = 0;

  /* void removeDiskEncryptionPassword (in wstring id); */
  NS_IMETHOD RemoveDiskEncryptionPassword(const PRUnichar *id) = 0;

  /* void clearAllDiskEncryptionPasswords (); */
  NS_IMETHOD ClearAllDiskEncryptionPasswords(void) = 0;

  /* void InternalAndReservedMethod1IConsole (); */
  NS_IMETHOD InternalAndReservedMethod1IConsole(void) = 0;

  /* void InternalAndReservedMethod2IConsole (); */
  NS_IMETHOD InternalAndReservedMethod2IConsole(void) = 0;

  /* void InternalAndReservedMethod3IConsole (); */
  NS_IMETHOD InternalAndReservedMethod3IConsole(void) = 0;

  /* void InternalAndReservedMethod4IConsole (); */
  NS_IMETHOD InternalAndReservedMethod4IConsole(void) = 0;

  /* void InternalAndReservedMethod5IConsole (); */
  NS_IMETHOD InternalAndReservedMethod5IConsole(void) = 0;

  /* void InternalAndReservedMethod6IConsole (); */
  NS_IMETHOD InternalAndReservedMethod6IConsole(void) = 0;

  /* void InternalAndReservedMethod7IConsole (); */
  NS_IMETHOD InternalAndReservedMethod7IConsole(void) = 0;

  /* void InternalAndReservedMethod8IConsole (); */
  NS_IMETHOD InternalAndReservedMethod8IConsole(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ICONSOLE \
  NS_IMETHOD GetMachine(IMachine * *aMachine); \
  NS_IMETHOD GetState(PRUint32 *aState); \
  NS_IMETHOD GetGuest(IGuest * *aGuest); \
  NS_IMETHOD GetKeyboard(IKeyboard * *aKeyboard); \
  NS_IMETHOD GetMouse(IMouse * *aMouse); \
  NS_IMETHOD GetDisplay(IDisplay * *aDisplay); \
  NS_IMETHOD GetDebugger(IMachineDebugger * *aDebugger); \
  NS_IMETHOD GetUSBDevices(PRUint32 *USBDevicesSize, IUSBDevice ***USBDevices); \
  NS_IMETHOD GetRemoteUSBDevices(PRUint32 *remoteUSBDevicesSize, IHostUSBDevice ***remoteUSBDevices); \
  NS_IMETHOD GetSharedFolders(PRUint32 *sharedFoldersSize, ISharedFolder ***sharedFolders); \
  NS_IMETHOD GetVRDEServerInfo(IVRDEServerInfo * *aVRDEServerInfo); \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource); \
  NS_IMETHOD GetAttachedPCIDevices(PRUint32 *attachedPCIDevicesSize, IPCIDeviceAttachment ***attachedPCIDevices); \
  NS_IMETHOD GetUseHostClipboard(PRBool *aUseHostClipboard); \
  NS_IMETHOD SetUseHostClipboard(PRBool aUseHostClipboard); \
  NS_IMETHOD GetEmulatedUSB(IEmulatedUSB * *aEmulatedUSB); \
  NS_IMETHOD GetInternalAndReservedAttribute1IConsole(PRUint32 *aInternalAndReservedAttribute1IConsole); \
  NS_IMETHOD GetInternalAndReservedAttribute2IConsole(PRUint32 *aInternalAndReservedAttribute2IConsole); \
  NS_IMETHOD GetInternalAndReservedAttribute3IConsole(PRUint32 *aInternalAndReservedAttribute3IConsole); \
  NS_IMETHOD GetInternalAndReservedAttribute4IConsole(PRUint32 *aInternalAndReservedAttribute4IConsole); \
  NS_IMETHOD GetInternalAndReservedAttribute5IConsole(PRUint32 *aInternalAndReservedAttribute5IConsole); \
  NS_IMETHOD GetInternalAndReservedAttribute6IConsole(PRUint32 *aInternalAndReservedAttribute6IConsole); \
  NS_IMETHOD GetInternalAndReservedAttribute7IConsole(PRUint32 *aInternalAndReservedAttribute7IConsole); \
  NS_IMETHOD GetInternalAndReservedAttribute8IConsole(PRUint32 *aInternalAndReservedAttribute8IConsole); \
  NS_IMETHOD PowerUp(IProgress **progress); \
  NS_IMETHOD PowerUpPaused(IProgress **progress); \
  NS_IMETHOD PowerDown(IProgress **progress); \
  NS_IMETHOD Reset(void); \
  NS_IMETHOD Pause(void); \
  NS_IMETHOD Resume(void); \
  NS_IMETHOD PowerButton(void); \
  NS_IMETHOD SleepButton(void); \
  NS_IMETHOD GetPowerButtonHandled(PRBool *handled); \
  NS_IMETHOD GetGuestEnteredACPIMode(PRBool *entered); \
  NS_IMETHOD GetDeviceActivity(PRUint32 typeSize, PRUint32 *type, PRUint32 *activitySize, PRUint32 **activity); \
  NS_IMETHOD AttachUSBDevice(const PRUnichar *id, const PRUnichar *captureFilename); \
  NS_IMETHOD DetachUSBDevice(const PRUnichar *id, IUSBDevice **device); \
  NS_IMETHOD FindUSBDeviceByAddress(const PRUnichar *name, IUSBDevice **device); \
  NS_IMETHOD FindUSBDeviceById(const PRUnichar *id, IUSBDevice **device); \
  NS_IMETHOD CreateSharedFolder(const PRUnichar *name, const PRUnichar *hostPath, PRBool writable, PRBool automount); \
  NS_IMETHOD RemoveSharedFolder(const PRUnichar *name); \
  NS_IMETHOD Teleport(const PRUnichar *hostname, PRUint32 tcpport, const PRUnichar *password, PRUint32 maxDowntime, IProgress **progress); \
  NS_IMETHOD AddDiskEncryptionPassword(const PRUnichar *id, const PRUnichar *password, PRBool clearOnSuspend); \
  NS_IMETHOD AddDiskEncryptionPasswords(PRUint32 idsSize, const PRUnichar **ids, PRUint32 passwordsSize, const PRUnichar **passwords, PRBool clearOnSuspend); \
  NS_IMETHOD RemoveDiskEncryptionPassword(const PRUnichar *id); \
  NS_IMETHOD ClearAllDiskEncryptionPasswords(void); \
  NS_IMETHOD InternalAndReservedMethod1IConsole(void); \
  NS_IMETHOD InternalAndReservedMethod2IConsole(void); \
  NS_IMETHOD InternalAndReservedMethod3IConsole(void); \
  NS_IMETHOD InternalAndReservedMethod4IConsole(void); \
  NS_IMETHOD InternalAndReservedMethod5IConsole(void); \
  NS_IMETHOD InternalAndReservedMethod6IConsole(void); \
  NS_IMETHOD InternalAndReservedMethod7IConsole(void); \
  NS_IMETHOD InternalAndReservedMethod8IConsole(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ICONSOLE(_to) \
  NS_IMETHOD GetMachine(IMachine * *aMachine) { return _to GetMachine(aMachine); } \
  NS_IMETHOD GetState(PRUint32 *aState) { return _to GetState(aState); } \
  NS_IMETHOD GetGuest(IGuest * *aGuest) { return _to GetGuest(aGuest); } \
  NS_IMETHOD GetKeyboard(IKeyboard * *aKeyboard) { return _to GetKeyboard(aKeyboard); } \
  NS_IMETHOD GetMouse(IMouse * *aMouse) { return _to GetMouse(aMouse); } \
  NS_IMETHOD GetDisplay(IDisplay * *aDisplay) { return _to GetDisplay(aDisplay); } \
  NS_IMETHOD GetDebugger(IMachineDebugger * *aDebugger) { return _to GetDebugger(aDebugger); } \
  NS_IMETHOD GetUSBDevices(PRUint32 *USBDevicesSize, IUSBDevice ***USBDevices) { return _to GetUSBDevices(USBDevicesSize, USBDevices); } \
  NS_IMETHOD GetRemoteUSBDevices(PRUint32 *remoteUSBDevicesSize, IHostUSBDevice ***remoteUSBDevices) { return _to GetRemoteUSBDevices(remoteUSBDevicesSize, remoteUSBDevices); } \
  NS_IMETHOD GetSharedFolders(PRUint32 *sharedFoldersSize, ISharedFolder ***sharedFolders) { return _to GetSharedFolders(sharedFoldersSize, sharedFolders); } \
  NS_IMETHOD GetVRDEServerInfo(IVRDEServerInfo * *aVRDEServerInfo) { return _to GetVRDEServerInfo(aVRDEServerInfo); } \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) { return _to GetEventSource(aEventSource); } \
  NS_IMETHOD GetAttachedPCIDevices(PRUint32 *attachedPCIDevicesSize, IPCIDeviceAttachment ***attachedPCIDevices) { return _to GetAttachedPCIDevices(attachedPCIDevicesSize, attachedPCIDevices); } \
  NS_IMETHOD GetUseHostClipboard(PRBool *aUseHostClipboard) { return _to GetUseHostClipboard(aUseHostClipboard); } \
  NS_IMETHOD SetUseHostClipboard(PRBool aUseHostClipboard) { return _to SetUseHostClipboard(aUseHostClipboard); } \
  NS_IMETHOD GetEmulatedUSB(IEmulatedUSB * *aEmulatedUSB) { return _to GetEmulatedUSB(aEmulatedUSB); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IConsole(PRUint32 *aInternalAndReservedAttribute1IConsole) { return _to GetInternalAndReservedAttribute1IConsole(aInternalAndReservedAttribute1IConsole); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IConsole(PRUint32 *aInternalAndReservedAttribute2IConsole) { return _to GetInternalAndReservedAttribute2IConsole(aInternalAndReservedAttribute2IConsole); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IConsole(PRUint32 *aInternalAndReservedAttribute3IConsole) { return _to GetInternalAndReservedAttribute3IConsole(aInternalAndReservedAttribute3IConsole); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IConsole(PRUint32 *aInternalAndReservedAttribute4IConsole) { return _to GetInternalAndReservedAttribute4IConsole(aInternalAndReservedAttribute4IConsole); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IConsole(PRUint32 *aInternalAndReservedAttribute5IConsole) { return _to GetInternalAndReservedAttribute5IConsole(aInternalAndReservedAttribute5IConsole); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IConsole(PRUint32 *aInternalAndReservedAttribute6IConsole) { return _to GetInternalAndReservedAttribute6IConsole(aInternalAndReservedAttribute6IConsole); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IConsole(PRUint32 *aInternalAndReservedAttribute7IConsole) { return _to GetInternalAndReservedAttribute7IConsole(aInternalAndReservedAttribute7IConsole); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IConsole(PRUint32 *aInternalAndReservedAttribute8IConsole) { return _to GetInternalAndReservedAttribute8IConsole(aInternalAndReservedAttribute8IConsole); } \
  NS_IMETHOD PowerUp(IProgress **progress) { return _to PowerUp(progress); } \
  NS_IMETHOD PowerUpPaused(IProgress **progress) { return _to PowerUpPaused(progress); } \
  NS_IMETHOD PowerDown(IProgress **progress) { return _to PowerDown(progress); } \
  NS_IMETHOD Reset(void) { return _to Reset(); } \
  NS_IMETHOD Pause(void) { return _to Pause(); } \
  NS_IMETHOD Resume(void) { return _to Resume(); } \
  NS_IMETHOD PowerButton(void) { return _to PowerButton(); } \
  NS_IMETHOD SleepButton(void) { return _to SleepButton(); } \
  NS_IMETHOD GetPowerButtonHandled(PRBool *handled) { return _to GetPowerButtonHandled(handled); } \
  NS_IMETHOD GetGuestEnteredACPIMode(PRBool *entered) { return _to GetGuestEnteredACPIMode(entered); } \
  NS_IMETHOD GetDeviceActivity(PRUint32 typeSize, PRUint32 *type, PRUint32 *activitySize, PRUint32 **activity) { return _to GetDeviceActivity(typeSize, type, activitySize, activity); } \
  NS_IMETHOD AttachUSBDevice(const PRUnichar *id, const PRUnichar *captureFilename) { return _to AttachUSBDevice(id, captureFilename); } \
  NS_IMETHOD DetachUSBDevice(const PRUnichar *id, IUSBDevice **device) { return _to DetachUSBDevice(id, device); } \
  NS_IMETHOD FindUSBDeviceByAddress(const PRUnichar *name, IUSBDevice **device) { return _to FindUSBDeviceByAddress(name, device); } \
  NS_IMETHOD FindUSBDeviceById(const PRUnichar *id, IUSBDevice **device) { return _to FindUSBDeviceById(id, device); } \
  NS_IMETHOD CreateSharedFolder(const PRUnichar *name, const PRUnichar *hostPath, PRBool writable, PRBool automount) { return _to CreateSharedFolder(name, hostPath, writable, automount); } \
  NS_IMETHOD RemoveSharedFolder(const PRUnichar *name) { return _to RemoveSharedFolder(name); } \
  NS_IMETHOD Teleport(const PRUnichar *hostname, PRUint32 tcpport, const PRUnichar *password, PRUint32 maxDowntime, IProgress **progress) { return _to Teleport(hostname, tcpport, password, maxDowntime, progress); } \
  NS_IMETHOD AddDiskEncryptionPassword(const PRUnichar *id, const PRUnichar *password, PRBool clearOnSuspend) { return _to AddDiskEncryptionPassword(id, password, clearOnSuspend); } \
  NS_IMETHOD AddDiskEncryptionPasswords(PRUint32 idsSize, const PRUnichar **ids, PRUint32 passwordsSize, const PRUnichar **passwords, PRBool clearOnSuspend) { return _to AddDiskEncryptionPasswords(idsSize, ids, passwordsSize, passwords, clearOnSuspend); } \
  NS_IMETHOD RemoveDiskEncryptionPassword(const PRUnichar *id) { return _to RemoveDiskEncryptionPassword(id); } \
  NS_IMETHOD ClearAllDiskEncryptionPasswords(void) { return _to ClearAllDiskEncryptionPasswords(); } \
  NS_IMETHOD InternalAndReservedMethod1IConsole(void) { return _to InternalAndReservedMethod1IConsole(); } \
  NS_IMETHOD InternalAndReservedMethod2IConsole(void) { return _to InternalAndReservedMethod2IConsole(); } \
  NS_IMETHOD InternalAndReservedMethod3IConsole(void) { return _to InternalAndReservedMethod3IConsole(); } \
  NS_IMETHOD InternalAndReservedMethod4IConsole(void) { return _to InternalAndReservedMethod4IConsole(); } \
  NS_IMETHOD InternalAndReservedMethod5IConsole(void) { return _to InternalAndReservedMethod5IConsole(); } \
  NS_IMETHOD InternalAndReservedMethod6IConsole(void) { return _to InternalAndReservedMethod6IConsole(); } \
  NS_IMETHOD InternalAndReservedMethod7IConsole(void) { return _to InternalAndReservedMethod7IConsole(); } \
  NS_IMETHOD InternalAndReservedMethod8IConsole(void) { return _to InternalAndReservedMethod8IConsole(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ICONSOLE(_to) \
  NS_IMETHOD GetMachine(IMachine * *aMachine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMachine(aMachine); } \
  NS_IMETHOD GetState(PRUint32 *aState) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetState(aState); } \
  NS_IMETHOD GetGuest(IGuest * *aGuest) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGuest(aGuest); } \
  NS_IMETHOD GetKeyboard(IKeyboard * *aKeyboard) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetKeyboard(aKeyboard); } \
  NS_IMETHOD GetMouse(IMouse * *aMouse) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMouse(aMouse); } \
  NS_IMETHOD GetDisplay(IDisplay * *aDisplay) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDisplay(aDisplay); } \
  NS_IMETHOD GetDebugger(IMachineDebugger * *aDebugger) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDebugger(aDebugger); } \
  NS_IMETHOD GetUSBDevices(PRUint32 *USBDevicesSize, IUSBDevice ***USBDevices) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUSBDevices(USBDevicesSize, USBDevices); } \
  NS_IMETHOD GetRemoteUSBDevices(PRUint32 *remoteUSBDevicesSize, IHostUSBDevice ***remoteUSBDevices) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRemoteUSBDevices(remoteUSBDevicesSize, remoteUSBDevices); } \
  NS_IMETHOD GetSharedFolders(PRUint32 *sharedFoldersSize, ISharedFolder ***sharedFolders) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSharedFolders(sharedFoldersSize, sharedFolders); } \
  NS_IMETHOD GetVRDEServerInfo(IVRDEServerInfo * *aVRDEServerInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVRDEServerInfo(aVRDEServerInfo); } \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEventSource(aEventSource); } \
  NS_IMETHOD GetAttachedPCIDevices(PRUint32 *attachedPCIDevicesSize, IPCIDeviceAttachment ***attachedPCIDevices) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAttachedPCIDevices(attachedPCIDevicesSize, attachedPCIDevices); } \
  NS_IMETHOD GetUseHostClipboard(PRBool *aUseHostClipboard) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUseHostClipboard(aUseHostClipboard); } \
  NS_IMETHOD SetUseHostClipboard(PRBool aUseHostClipboard) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUseHostClipboard(aUseHostClipboard); } \
  NS_IMETHOD GetEmulatedUSB(IEmulatedUSB * *aEmulatedUSB) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEmulatedUSB(aEmulatedUSB); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IConsole(PRUint32 *aInternalAndReservedAttribute1IConsole) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IConsole(aInternalAndReservedAttribute1IConsole); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IConsole(PRUint32 *aInternalAndReservedAttribute2IConsole) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IConsole(aInternalAndReservedAttribute2IConsole); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IConsole(PRUint32 *aInternalAndReservedAttribute3IConsole) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IConsole(aInternalAndReservedAttribute3IConsole); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IConsole(PRUint32 *aInternalAndReservedAttribute4IConsole) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IConsole(aInternalAndReservedAttribute4IConsole); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IConsole(PRUint32 *aInternalAndReservedAttribute5IConsole) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IConsole(aInternalAndReservedAttribute5IConsole); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IConsole(PRUint32 *aInternalAndReservedAttribute6IConsole) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IConsole(aInternalAndReservedAttribute6IConsole); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IConsole(PRUint32 *aInternalAndReservedAttribute7IConsole) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IConsole(aInternalAndReservedAttribute7IConsole); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IConsole(PRUint32 *aInternalAndReservedAttribute8IConsole) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IConsole(aInternalAndReservedAttribute8IConsole); } \
  NS_IMETHOD PowerUp(IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->PowerUp(progress); } \
  NS_IMETHOD PowerUpPaused(IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->PowerUpPaused(progress); } \
  NS_IMETHOD PowerDown(IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->PowerDown(progress); } \
  NS_IMETHOD Reset(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Reset(); } \
  NS_IMETHOD Pause(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Pause(); } \
  NS_IMETHOD Resume(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Resume(); } \
  NS_IMETHOD PowerButton(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->PowerButton(); } \
  NS_IMETHOD SleepButton(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->SleepButton(); } \
  NS_IMETHOD GetPowerButtonHandled(PRBool *handled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPowerButtonHandled(handled); } \
  NS_IMETHOD GetGuestEnteredACPIMode(PRBool *entered) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGuestEnteredACPIMode(entered); } \
  NS_IMETHOD GetDeviceActivity(PRUint32 typeSize, PRUint32 *type, PRUint32 *activitySize, PRUint32 **activity) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDeviceActivity(typeSize, type, activitySize, activity); } \
  NS_IMETHOD AttachUSBDevice(const PRUnichar *id, const PRUnichar *captureFilename) { return !_to ? NS_ERROR_NULL_POINTER : _to->AttachUSBDevice(id, captureFilename); } \
  NS_IMETHOD DetachUSBDevice(const PRUnichar *id, IUSBDevice **device) { return !_to ? NS_ERROR_NULL_POINTER : _to->DetachUSBDevice(id, device); } \
  NS_IMETHOD FindUSBDeviceByAddress(const PRUnichar *name, IUSBDevice **device) { return !_to ? NS_ERROR_NULL_POINTER : _to->FindUSBDeviceByAddress(name, device); } \
  NS_IMETHOD FindUSBDeviceById(const PRUnichar *id, IUSBDevice **device) { return !_to ? NS_ERROR_NULL_POINTER : _to->FindUSBDeviceById(id, device); } \
  NS_IMETHOD CreateSharedFolder(const PRUnichar *name, const PRUnichar *hostPath, PRBool writable, PRBool automount) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateSharedFolder(name, hostPath, writable, automount); } \
  NS_IMETHOD RemoveSharedFolder(const PRUnichar *name) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveSharedFolder(name); } \
  NS_IMETHOD Teleport(const PRUnichar *hostname, PRUint32 tcpport, const PRUnichar *password, PRUint32 maxDowntime, IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->Teleport(hostname, tcpport, password, maxDowntime, progress); } \
  NS_IMETHOD AddDiskEncryptionPassword(const PRUnichar *id, const PRUnichar *password, PRBool clearOnSuspend) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddDiskEncryptionPassword(id, password, clearOnSuspend); } \
  NS_IMETHOD AddDiskEncryptionPasswords(PRUint32 idsSize, const PRUnichar **ids, PRUint32 passwordsSize, const PRUnichar **passwords, PRBool clearOnSuspend) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddDiskEncryptionPasswords(idsSize, ids, passwordsSize, passwords, clearOnSuspend); } \
  NS_IMETHOD RemoveDiskEncryptionPassword(const PRUnichar *id) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveDiskEncryptionPassword(id); } \
  NS_IMETHOD ClearAllDiskEncryptionPasswords(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->ClearAllDiskEncryptionPasswords(); } \
  NS_IMETHOD InternalAndReservedMethod1IConsole(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IConsole(); } \
  NS_IMETHOD InternalAndReservedMethod2IConsole(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IConsole(); } \
  NS_IMETHOD InternalAndReservedMethod3IConsole(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IConsole(); } \
  NS_IMETHOD InternalAndReservedMethod4IConsole(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IConsole(); } \
  NS_IMETHOD InternalAndReservedMethod5IConsole(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod5IConsole(); } \
  NS_IMETHOD InternalAndReservedMethod6IConsole(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod6IConsole(); } \
  NS_IMETHOD InternalAndReservedMethod7IConsole(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod7IConsole(); } \
  NS_IMETHOD InternalAndReservedMethod8IConsole(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod8IConsole(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IConsole
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_ICONSOLE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IConsole)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute IMachine machine; */
NS_IMETHODIMP _MYCLASS_::GetMachine(IMachine * *aMachine)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 state; */
NS_IMETHODIMP _MYCLASS_::GetState(PRUint32 *aState)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IGuest guest; */
NS_IMETHODIMP _MYCLASS_::GetGuest(IGuest * *aGuest)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IKeyboard keyboard; */
NS_IMETHODIMP _MYCLASS_::GetKeyboard(IKeyboard * *aKeyboard)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IMouse mouse; */
NS_IMETHODIMP _MYCLASS_::GetMouse(IMouse * *aMouse)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IDisplay display; */
NS_IMETHODIMP _MYCLASS_::GetDisplay(IDisplay * *aDisplay)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IMachineDebugger debugger; */
NS_IMETHODIMP _MYCLASS_::GetDebugger(IMachineDebugger * *aDebugger)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getUSBDevices (out unsigned long USBDevicesSize, [array, size_is (USBDevicesSize), retval] out IUSBDevice USBDevices); */
NS_IMETHODIMP _MYCLASS_::GetUSBDevices(PRUint32 *USBDevicesSize, IUSBDevice ***USBDevices)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getRemoteUSBDevices (out unsigned long remoteUSBDevicesSize, [array, size_is (remoteUSBDevicesSize), retval] out IHostUSBDevice remoteUSBDevices); */
NS_IMETHODIMP _MYCLASS_::GetRemoteUSBDevices(PRUint32 *remoteUSBDevicesSize, IHostUSBDevice ***remoteUSBDevices)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getSharedFolders (out unsigned long sharedFoldersSize, [array, size_is (sharedFoldersSize), retval] out ISharedFolder sharedFolders); */
NS_IMETHODIMP _MYCLASS_::GetSharedFolders(PRUint32 *sharedFoldersSize, ISharedFolder ***sharedFolders)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IVRDEServerInfo VRDEServerInfo; */
NS_IMETHODIMP _MYCLASS_::GetVRDEServerInfo(IVRDEServerInfo * *aVRDEServerInfo)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IEventSource eventSource; */
NS_IMETHODIMP _MYCLASS_::GetEventSource(IEventSource * *aEventSource)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getAttachedPCIDevices (out unsigned long attachedPCIDevicesSize, [array, size_is (attachedPCIDevicesSize), retval] out IPCIDeviceAttachment attachedPCIDevices); */
NS_IMETHODIMP _MYCLASS_::GetAttachedPCIDevices(PRUint32 *attachedPCIDevicesSize, IPCIDeviceAttachment ***attachedPCIDevices)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean useHostClipboard; */
NS_IMETHODIMP _MYCLASS_::GetUseHostClipboard(PRBool *aUseHostClipboard)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetUseHostClipboard(PRBool aUseHostClipboard)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IEmulatedUSB emulatedUSB; */
NS_IMETHODIMP _MYCLASS_::GetEmulatedUSB(IEmulatedUSB * *aEmulatedUSB)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IConsole; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IConsole(PRUint32 *aInternalAndReservedAttribute1IConsole)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IConsole; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IConsole(PRUint32 *aInternalAndReservedAttribute2IConsole)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute3IConsole; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute3IConsole(PRUint32 *aInternalAndReservedAttribute3IConsole)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute4IConsole; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute4IConsole(PRUint32 *aInternalAndReservedAttribute4IConsole)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute5IConsole; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute5IConsole(PRUint32 *aInternalAndReservedAttribute5IConsole)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute6IConsole; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute6IConsole(PRUint32 *aInternalAndReservedAttribute6IConsole)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute7IConsole; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute7IConsole(PRUint32 *aInternalAndReservedAttribute7IConsole)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute8IConsole; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute8IConsole(PRUint32 *aInternalAndReservedAttribute8IConsole)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void powerUp ([retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::PowerUp(IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void powerUpPaused ([retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::PowerUpPaused(IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void powerDown ([retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::PowerDown(IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void reset (); */
NS_IMETHODIMP _MYCLASS_::Reset()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void pause (); */
NS_IMETHODIMP _MYCLASS_::Pause()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void resume (); */
NS_IMETHODIMP _MYCLASS_::Resume()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void powerButton (); */
NS_IMETHODIMP _MYCLASS_::PowerButton()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void sleepButton (); */
NS_IMETHODIMP _MYCLASS_::SleepButton()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getPowerButtonHandled ([retval] out boolean handled); */
NS_IMETHODIMP _MYCLASS_::GetPowerButtonHandled(PRBool *handled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getGuestEnteredACPIMode ([retval] out boolean entered); */
NS_IMETHODIMP _MYCLASS_::GetGuestEnteredACPIMode(PRBool *entered)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getDeviceActivity (in unsigned long typeSize, [array, size_is (typeSize)] in PRUint32 type, out unsigned long activitySize, [array, size_is (activitySize), retval] out PRUint32 activity); */
NS_IMETHODIMP _MYCLASS_::GetDeviceActivity(PRUint32 typeSize, PRUint32 *type, PRUint32 *activitySize, PRUint32 **activity)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void attachUSBDevice (in wstring id, in wstring captureFilename); */
NS_IMETHODIMP _MYCLASS_::AttachUSBDevice(const PRUnichar *id, const PRUnichar *captureFilename)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void detachUSBDevice (in wstring id, [retval] out IUSBDevice device); */
NS_IMETHODIMP _MYCLASS_::DetachUSBDevice(const PRUnichar *id, IUSBDevice **device)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void findUSBDeviceByAddress (in wstring name, [retval] out IUSBDevice device); */
NS_IMETHODIMP _MYCLASS_::FindUSBDeviceByAddress(const PRUnichar *name, IUSBDevice **device)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void findUSBDeviceById (in wstring id, [retval] out IUSBDevice device); */
NS_IMETHODIMP _MYCLASS_::FindUSBDeviceById(const PRUnichar *id, IUSBDevice **device)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void createSharedFolder (in wstring name, in wstring hostPath, in boolean writable, in boolean automount); */
NS_IMETHODIMP _MYCLASS_::CreateSharedFolder(const PRUnichar *name, const PRUnichar *hostPath, PRBool writable, PRBool automount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeSharedFolder (in wstring name); */
NS_IMETHODIMP _MYCLASS_::RemoveSharedFolder(const PRUnichar *name)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void teleport (in wstring hostname, in unsigned long tcpport, in wstring password, in unsigned long maxDowntime, [retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::Teleport(const PRUnichar *hostname, PRUint32 tcpport, const PRUnichar *password, PRUint32 maxDowntime, IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addDiskEncryptionPassword (in wstring id, in wstring password, in boolean clearOnSuspend); */
NS_IMETHODIMP _MYCLASS_::AddDiskEncryptionPassword(const PRUnichar *id, const PRUnichar *password, PRBool clearOnSuspend)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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); */
NS_IMETHODIMP _MYCLASS_::AddDiskEncryptionPasswords(PRUint32 idsSize, const PRUnichar **ids, PRUint32 passwordsSize, const PRUnichar **passwords, PRBool clearOnSuspend)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeDiskEncryptionPassword (in wstring id); */
NS_IMETHODIMP _MYCLASS_::RemoveDiskEncryptionPassword(const PRUnichar *id)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void clearAllDiskEncryptionPasswords (); */
NS_IMETHODIMP _MYCLASS_::ClearAllDiskEncryptionPasswords()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1IConsole (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1IConsole()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod2IConsole (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod2IConsole()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod3IConsole (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod3IConsole()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod4IConsole (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod4IConsole()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod5IConsole (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod5IConsole()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod6IConsole (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod6IConsole()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod7IConsole (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod7IConsole()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod8IConsole (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod8IConsole()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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) { return smth CreateSharedFolder (aName, aHostPath, aWritable, aAutomount); }
#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;

/* starting interface:    IHostNetworkInterface */
#define IHOSTNETWORKINTERFACE_IID_STR "455f8c45-44a0-a470-ba20-27890b96dba9"

#define IHOSTNETWORKINTERFACE_IID \
  {0x455f8c45, 0x44a0, 0xa470, \
    { 0xba, 0x20, 0x27, 0x89, 0x0b, 0x96, 0xdb, 0xa9 }}

class NS_NO_VTABLE IHostNetworkInterface : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IHOSTNETWORKINTERFACE_IID)

  /* readonly attribute wstring name; */
  NS_IMETHOD GetName(PRUnichar * *aName) = 0;

  /* readonly attribute wstring shortName; */
  NS_IMETHOD GetShortName(PRUnichar * *aShortName) = 0;

  /* readonly attribute wstring id; */
  NS_IMETHOD GetId(PRUnichar * *aId) = 0;

  /* readonly attribute wstring networkName; */
  NS_IMETHOD GetNetworkName(PRUnichar * *aNetworkName) = 0;

  /* readonly attribute boolean DHCPEnabled; */
  NS_IMETHOD GetDHCPEnabled(PRBool *aDHCPEnabled) = 0;

  /* readonly attribute wstring IPAddress; */
  NS_IMETHOD GetIPAddress(PRUnichar * *aIPAddress) = 0;

  /* readonly attribute wstring networkMask; */
  NS_IMETHOD GetNetworkMask(PRUnichar * *aNetworkMask) = 0;

  /* readonly attribute boolean IPV6Supported; */
  NS_IMETHOD GetIPV6Supported(PRBool *aIPV6Supported) = 0;

  /* readonly attribute wstring IPV6Address; */
  NS_IMETHOD GetIPV6Address(PRUnichar * *aIPV6Address) = 0;

  /* readonly attribute unsigned long IPV6NetworkMaskPrefixLength; */
  NS_IMETHOD GetIPV6NetworkMaskPrefixLength(PRUint32 *aIPV6NetworkMaskPrefixLength) = 0;

  /* readonly attribute wstring hardwareAddress; */
  NS_IMETHOD GetHardwareAddress(PRUnichar * *aHardwareAddress) = 0;

  /* readonly attribute PRUint32 mediumType; */
  NS_IMETHOD GetMediumType(PRUint32 *aMediumType) = 0;

  /* readonly attribute PRUint32 status; */
  NS_IMETHOD GetStatus(PRUint32 *aStatus) = 0;

  /* readonly attribute PRUint32 interfaceType; */
  NS_IMETHOD GetInterfaceType(PRUint32 *aInterfaceType) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IHostNetworkInterface; */
  NS_IMETHOD GetInternalAndReservedAttribute1IHostNetworkInterface(PRUint32 *aInternalAndReservedAttribute1IHostNetworkInterface) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IHostNetworkInterface; */
  NS_IMETHOD GetInternalAndReservedAttribute2IHostNetworkInterface(PRUint32 *aInternalAndReservedAttribute2IHostNetworkInterface) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IHostNetworkInterface; */
  NS_IMETHOD GetInternalAndReservedAttribute3IHostNetworkInterface(PRUint32 *aInternalAndReservedAttribute3IHostNetworkInterface) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IHostNetworkInterface; */
  NS_IMETHOD GetInternalAndReservedAttribute4IHostNetworkInterface(PRUint32 *aInternalAndReservedAttribute4IHostNetworkInterface) = 0;

  /* void enableStaticIPConfig (in wstring IPAddress, in wstring networkMask); */
  NS_IMETHOD EnableStaticIPConfig(const PRUnichar *IPAddress, const PRUnichar *networkMask) = 0;

  /* void enableStaticIPConfigV6 (in wstring IPV6Address, in unsigned long IPV6NetworkMaskPrefixLength); */
  NS_IMETHOD EnableStaticIPConfigV6(const PRUnichar *IPV6Address, PRUint32 IPV6NetworkMaskPrefixLength) = 0;

  /* void enableDynamicIPConfig (); */
  NS_IMETHOD EnableDynamicIPConfig(void) = 0;

  /* void DHCPRediscover (); */
  NS_IMETHOD DHCPRediscover(void) = 0;

  /* void InternalAndReservedMethod1IHostNetworkInterface (); */
  NS_IMETHOD InternalAndReservedMethod1IHostNetworkInterface(void) = 0;

  /* void InternalAndReservedMethod2IHostNetworkInterface (); */
  NS_IMETHOD InternalAndReservedMethod2IHostNetworkInterface(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IHOSTNETWORKINTERFACE \
  NS_IMETHOD GetName(PRUnichar * *aName); \
  NS_IMETHOD GetShortName(PRUnichar * *aShortName); \
  NS_IMETHOD GetId(PRUnichar * *aId); \
  NS_IMETHOD GetNetworkName(PRUnichar * *aNetworkName); \
  NS_IMETHOD GetDHCPEnabled(PRBool *aDHCPEnabled); \
  NS_IMETHOD GetIPAddress(PRUnichar * *aIPAddress); \
  NS_IMETHOD GetNetworkMask(PRUnichar * *aNetworkMask); \
  NS_IMETHOD GetIPV6Supported(PRBool *aIPV6Supported); \
  NS_IMETHOD GetIPV6Address(PRUnichar * *aIPV6Address); \
  NS_IMETHOD GetIPV6NetworkMaskPrefixLength(PRUint32 *aIPV6NetworkMaskPrefixLength); \
  NS_IMETHOD GetHardwareAddress(PRUnichar * *aHardwareAddress); \
  NS_IMETHOD GetMediumType(PRUint32 *aMediumType); \
  NS_IMETHOD GetStatus(PRUint32 *aStatus); \
  NS_IMETHOD GetInterfaceType(PRUint32 *aInterfaceType); \
  NS_IMETHOD GetInternalAndReservedAttribute1IHostNetworkInterface(PRUint32 *aInternalAndReservedAttribute1IHostNetworkInterface); \
  NS_IMETHOD GetInternalAndReservedAttribute2IHostNetworkInterface(PRUint32 *aInternalAndReservedAttribute2IHostNetworkInterface); \
  NS_IMETHOD GetInternalAndReservedAttribute3IHostNetworkInterface(PRUint32 *aInternalAndReservedAttribute3IHostNetworkInterface); \
  NS_IMETHOD GetInternalAndReservedAttribute4IHostNetworkInterface(PRUint32 *aInternalAndReservedAttribute4IHostNetworkInterface); \
  NS_IMETHOD EnableStaticIPConfig(const PRUnichar *IPAddress, const PRUnichar *networkMask); \
  NS_IMETHOD EnableStaticIPConfigV6(const PRUnichar *IPV6Address, PRUint32 IPV6NetworkMaskPrefixLength); \
  NS_IMETHOD EnableDynamicIPConfig(void); \
  NS_IMETHOD DHCPRediscover(void); \
  NS_IMETHOD InternalAndReservedMethod1IHostNetworkInterface(void); \
  NS_IMETHOD InternalAndReservedMethod2IHostNetworkInterface(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IHOSTNETWORKINTERFACE(_to) \
  NS_IMETHOD GetName(PRUnichar * *aName) { return _to GetName(aName); } \
  NS_IMETHOD GetShortName(PRUnichar * *aShortName) { return _to GetShortName(aShortName); } \
  NS_IMETHOD GetId(PRUnichar * *aId) { return _to GetId(aId); } \
  NS_IMETHOD GetNetworkName(PRUnichar * *aNetworkName) { return _to GetNetworkName(aNetworkName); } \
  NS_IMETHOD GetDHCPEnabled(PRBool *aDHCPEnabled) { return _to GetDHCPEnabled(aDHCPEnabled); } \
  NS_IMETHOD GetIPAddress(PRUnichar * *aIPAddress) { return _to GetIPAddress(aIPAddress); } \
  NS_IMETHOD GetNetworkMask(PRUnichar * *aNetworkMask) { return _to GetNetworkMask(aNetworkMask); } \
  NS_IMETHOD GetIPV6Supported(PRBool *aIPV6Supported) { return _to GetIPV6Supported(aIPV6Supported); } \
  NS_IMETHOD GetIPV6Address(PRUnichar * *aIPV6Address) { return _to GetIPV6Address(aIPV6Address); } \
  NS_IMETHOD GetIPV6NetworkMaskPrefixLength(PRUint32 *aIPV6NetworkMaskPrefixLength) { return _to GetIPV6NetworkMaskPrefixLength(aIPV6NetworkMaskPrefixLength); } \
  NS_IMETHOD GetHardwareAddress(PRUnichar * *aHardwareAddress) { return _to GetHardwareAddress(aHardwareAddress); } \
  NS_IMETHOD GetMediumType(PRUint32 *aMediumType) { return _to GetMediumType(aMediumType); } \
  NS_IMETHOD GetStatus(PRUint32 *aStatus) { return _to GetStatus(aStatus); } \
  NS_IMETHOD GetInterfaceType(PRUint32 *aInterfaceType) { return _to GetInterfaceType(aInterfaceType); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IHostNetworkInterface(PRUint32 *aInternalAndReservedAttribute1IHostNetworkInterface) { return _to GetInternalAndReservedAttribute1IHostNetworkInterface(aInternalAndReservedAttribute1IHostNetworkInterface); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IHostNetworkInterface(PRUint32 *aInternalAndReservedAttribute2IHostNetworkInterface) { return _to GetInternalAndReservedAttribute2IHostNetworkInterface(aInternalAndReservedAttribute2IHostNetworkInterface); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IHostNetworkInterface(PRUint32 *aInternalAndReservedAttribute3IHostNetworkInterface) { return _to GetInternalAndReservedAttribute3IHostNetworkInterface(aInternalAndReservedAttribute3IHostNetworkInterface); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IHostNetworkInterface(PRUint32 *aInternalAndReservedAttribute4IHostNetworkInterface) { return _to GetInternalAndReservedAttribute4IHostNetworkInterface(aInternalAndReservedAttribute4IHostNetworkInterface); } \
  NS_IMETHOD EnableStaticIPConfig(const PRUnichar *IPAddress, const PRUnichar *networkMask) { return _to EnableStaticIPConfig(IPAddress, networkMask); } \
  NS_IMETHOD EnableStaticIPConfigV6(const PRUnichar *IPV6Address, PRUint32 IPV6NetworkMaskPrefixLength) { return _to EnableStaticIPConfigV6(IPV6Address, IPV6NetworkMaskPrefixLength); } \
  NS_IMETHOD EnableDynamicIPConfig(void) { return _to EnableDynamicIPConfig(); } \
  NS_IMETHOD DHCPRediscover(void) { return _to DHCPRediscover(); } \
  NS_IMETHOD InternalAndReservedMethod1IHostNetworkInterface(void) { return _to InternalAndReservedMethod1IHostNetworkInterface(); } \
  NS_IMETHOD InternalAndReservedMethod2IHostNetworkInterface(void) { return _to InternalAndReservedMethod2IHostNetworkInterface(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IHOSTNETWORKINTERFACE(_to) \
  NS_IMETHOD GetName(PRUnichar * *aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
  NS_IMETHOD GetShortName(PRUnichar * *aShortName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetShortName(aShortName); } \
  NS_IMETHOD GetId(PRUnichar * *aId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetId(aId); } \
  NS_IMETHOD GetNetworkName(PRUnichar * *aNetworkName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNetworkName(aNetworkName); } \
  NS_IMETHOD GetDHCPEnabled(PRBool *aDHCPEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDHCPEnabled(aDHCPEnabled); } \
  NS_IMETHOD GetIPAddress(PRUnichar * *aIPAddress) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIPAddress(aIPAddress); } \
  NS_IMETHOD GetNetworkMask(PRUnichar * *aNetworkMask) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNetworkMask(aNetworkMask); } \
  NS_IMETHOD GetIPV6Supported(PRBool *aIPV6Supported) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIPV6Supported(aIPV6Supported); } \
  NS_IMETHOD GetIPV6Address(PRUnichar * *aIPV6Address) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIPV6Address(aIPV6Address); } \
  NS_IMETHOD GetIPV6NetworkMaskPrefixLength(PRUint32 *aIPV6NetworkMaskPrefixLength) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIPV6NetworkMaskPrefixLength(aIPV6NetworkMaskPrefixLength); } \
  NS_IMETHOD GetHardwareAddress(PRUnichar * *aHardwareAddress) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHardwareAddress(aHardwareAddress); } \
  NS_IMETHOD GetMediumType(PRUint32 *aMediumType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMediumType(aMediumType); } \
  NS_IMETHOD GetStatus(PRUint32 *aStatus) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStatus(aStatus); } \
  NS_IMETHOD GetInterfaceType(PRUint32 *aInterfaceType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInterfaceType(aInterfaceType); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IHostNetworkInterface(PRUint32 *aInternalAndReservedAttribute1IHostNetworkInterface) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IHostNetworkInterface(aInternalAndReservedAttribute1IHostNetworkInterface); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IHostNetworkInterface(PRUint32 *aInternalAndReservedAttribute2IHostNetworkInterface) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IHostNetworkInterface(aInternalAndReservedAttribute2IHostNetworkInterface); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IHostNetworkInterface(PRUint32 *aInternalAndReservedAttribute3IHostNetworkInterface) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IHostNetworkInterface(aInternalAndReservedAttribute3IHostNetworkInterface); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IHostNetworkInterface(PRUint32 *aInternalAndReservedAttribute4IHostNetworkInterface) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IHostNetworkInterface(aInternalAndReservedAttribute4IHostNetworkInterface); } \
  NS_IMETHOD EnableStaticIPConfig(const PRUnichar *IPAddress, const PRUnichar *networkMask) { return !_to ? NS_ERROR_NULL_POINTER : _to->EnableStaticIPConfig(IPAddress, networkMask); } \
  NS_IMETHOD EnableStaticIPConfigV6(const PRUnichar *IPV6Address, PRUint32 IPV6NetworkMaskPrefixLength) { return !_to ? NS_ERROR_NULL_POINTER : _to->EnableStaticIPConfigV6(IPV6Address, IPV6NetworkMaskPrefixLength); } \
  NS_IMETHOD EnableDynamicIPConfig(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->EnableDynamicIPConfig(); } \
  NS_IMETHOD DHCPRediscover(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->DHCPRediscover(); } \
  NS_IMETHOD InternalAndReservedMethod1IHostNetworkInterface(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IHostNetworkInterface(); } \
  NS_IMETHOD InternalAndReservedMethod2IHostNetworkInterface(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IHostNetworkInterface(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IHostNetworkInterface
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IHOSTNETWORKINTERFACE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IHostNetworkInterface)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute wstring name; */
NS_IMETHODIMP _MYCLASS_::GetName(PRUnichar * *aName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring shortName; */
NS_IMETHODIMP _MYCLASS_::GetShortName(PRUnichar * *aShortName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring id; */
NS_IMETHODIMP _MYCLASS_::GetId(PRUnichar * *aId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring networkName; */
NS_IMETHODIMP _MYCLASS_::GetNetworkName(PRUnichar * *aNetworkName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean DHCPEnabled; */
NS_IMETHODIMP _MYCLASS_::GetDHCPEnabled(PRBool *aDHCPEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring IPAddress; */
NS_IMETHODIMP _MYCLASS_::GetIPAddress(PRUnichar * *aIPAddress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring networkMask; */
NS_IMETHODIMP _MYCLASS_::GetNetworkMask(PRUnichar * *aNetworkMask)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean IPV6Supported; */
NS_IMETHODIMP _MYCLASS_::GetIPV6Supported(PRBool *aIPV6Supported)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring IPV6Address; */
NS_IMETHODIMP _MYCLASS_::GetIPV6Address(PRUnichar * *aIPV6Address)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long IPV6NetworkMaskPrefixLength; */
NS_IMETHODIMP _MYCLASS_::GetIPV6NetworkMaskPrefixLength(PRUint32 *aIPV6NetworkMaskPrefixLength)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring hardwareAddress; */
NS_IMETHODIMP _MYCLASS_::GetHardwareAddress(PRUnichar * *aHardwareAddress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 mediumType; */
NS_IMETHODIMP _MYCLASS_::GetMediumType(PRUint32 *aMediumType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 status; */
NS_IMETHODIMP _MYCLASS_::GetStatus(PRUint32 *aStatus)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 interfaceType; */
NS_IMETHODIMP _MYCLASS_::GetInterfaceType(PRUint32 *aInterfaceType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IHostNetworkInterface; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IHostNetworkInterface(PRUint32 *aInternalAndReservedAttribute1IHostNetworkInterface)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IHostNetworkInterface; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IHostNetworkInterface(PRUint32 *aInternalAndReservedAttribute2IHostNetworkInterface)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute3IHostNetworkInterface; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute3IHostNetworkInterface(PRUint32 *aInternalAndReservedAttribute3IHostNetworkInterface)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute4IHostNetworkInterface; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute4IHostNetworkInterface(PRUint32 *aInternalAndReservedAttribute4IHostNetworkInterface)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void enableStaticIPConfig (in wstring IPAddress, in wstring networkMask); */
NS_IMETHODIMP _MYCLASS_::EnableStaticIPConfig(const PRUnichar *IPAddress, const PRUnichar *networkMask)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void enableStaticIPConfigV6 (in wstring IPV6Address, in unsigned long IPV6NetworkMaskPrefixLength); */
NS_IMETHODIMP _MYCLASS_::EnableStaticIPConfigV6(const PRUnichar *IPV6Address, PRUint32 IPV6NetworkMaskPrefixLength)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void enableDynamicIPConfig (); */
NS_IMETHODIMP _MYCLASS_::EnableDynamicIPConfig()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void DHCPRediscover (); */
NS_IMETHODIMP _MYCLASS_::DHCPRediscover()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1IHostNetworkInterface (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1IHostNetworkInterface()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod2IHostNetworkInterface (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod2IHostNetworkInterface()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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_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;

/* starting interface:    IHostVideoInputDevice */
#define IHOSTVIDEOINPUTDEVICE_IID_STR "e8c25d4d-ac97-4c16-b3e2-81bd8a57cc27"

#define IHOSTVIDEOINPUTDEVICE_IID \
  {0xe8c25d4d, 0xac97, 0x4c16, \
    { 0xb3, 0xe2, 0x81, 0xbd, 0x8a, 0x57, 0xcc, 0x27 }}

class NS_NO_VTABLE IHostVideoInputDevice : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IHOSTVIDEOINPUTDEVICE_IID)

  /* readonly attribute wstring name; */
  NS_IMETHOD GetName(PRUnichar * *aName) = 0;

  /* readonly attribute wstring path; */
  NS_IMETHOD GetPath(PRUnichar * *aPath) = 0;

  /* readonly attribute wstring alias; */
  NS_IMETHOD GetAlias(PRUnichar * *aAlias) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IHostVideoInputDevice; */
  NS_IMETHOD GetInternalAndReservedAttribute1IHostVideoInputDevice(PRUint32 *aInternalAndReservedAttribute1IHostVideoInputDevice) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IHostVideoInputDevice; */
  NS_IMETHOD GetInternalAndReservedAttribute2IHostVideoInputDevice(PRUint32 *aInternalAndReservedAttribute2IHostVideoInputDevice) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IHostVideoInputDevice; */
  NS_IMETHOD GetInternalAndReservedAttribute3IHostVideoInputDevice(PRUint32 *aInternalAndReservedAttribute3IHostVideoInputDevice) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IHostVideoInputDevice; */
  NS_IMETHOD GetInternalAndReservedAttribute4IHostVideoInputDevice(PRUint32 *aInternalAndReservedAttribute4IHostVideoInputDevice) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IHOSTVIDEOINPUTDEVICE \
  NS_IMETHOD GetName(PRUnichar * *aName); \
  NS_IMETHOD GetPath(PRUnichar * *aPath); \
  NS_IMETHOD GetAlias(PRUnichar * *aAlias); \
  NS_IMETHOD GetInternalAndReservedAttribute1IHostVideoInputDevice(PRUint32 *aInternalAndReservedAttribute1IHostVideoInputDevice); \
  NS_IMETHOD GetInternalAndReservedAttribute2IHostVideoInputDevice(PRUint32 *aInternalAndReservedAttribute2IHostVideoInputDevice); \
  NS_IMETHOD GetInternalAndReservedAttribute3IHostVideoInputDevice(PRUint32 *aInternalAndReservedAttribute3IHostVideoInputDevice); \
  NS_IMETHOD GetInternalAndReservedAttribute4IHostVideoInputDevice(PRUint32 *aInternalAndReservedAttribute4IHostVideoInputDevice); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IHOSTVIDEOINPUTDEVICE(_to) \
  NS_IMETHOD GetName(PRUnichar * *aName) { return _to GetName(aName); } \
  NS_IMETHOD GetPath(PRUnichar * *aPath) { return _to GetPath(aPath); } \
  NS_IMETHOD GetAlias(PRUnichar * *aAlias) { return _to GetAlias(aAlias); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IHostVideoInputDevice(PRUint32 *aInternalAndReservedAttribute1IHostVideoInputDevice) { return _to GetInternalAndReservedAttribute1IHostVideoInputDevice(aInternalAndReservedAttribute1IHostVideoInputDevice); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IHostVideoInputDevice(PRUint32 *aInternalAndReservedAttribute2IHostVideoInputDevice) { return _to GetInternalAndReservedAttribute2IHostVideoInputDevice(aInternalAndReservedAttribute2IHostVideoInputDevice); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IHostVideoInputDevice(PRUint32 *aInternalAndReservedAttribute3IHostVideoInputDevice) { return _to GetInternalAndReservedAttribute3IHostVideoInputDevice(aInternalAndReservedAttribute3IHostVideoInputDevice); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IHostVideoInputDevice(PRUint32 *aInternalAndReservedAttribute4IHostVideoInputDevice) { return _to GetInternalAndReservedAttribute4IHostVideoInputDevice(aInternalAndReservedAttribute4IHostVideoInputDevice); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IHOSTVIDEOINPUTDEVICE(_to) \
  NS_IMETHOD GetName(PRUnichar * *aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
  NS_IMETHOD GetPath(PRUnichar * *aPath) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPath(aPath); } \
  NS_IMETHOD GetAlias(PRUnichar * *aAlias) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAlias(aAlias); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IHostVideoInputDevice(PRUint32 *aInternalAndReservedAttribute1IHostVideoInputDevice) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IHostVideoInputDevice(aInternalAndReservedAttribute1IHostVideoInputDevice); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IHostVideoInputDevice(PRUint32 *aInternalAndReservedAttribute2IHostVideoInputDevice) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IHostVideoInputDevice(aInternalAndReservedAttribute2IHostVideoInputDevice); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IHostVideoInputDevice(PRUint32 *aInternalAndReservedAttribute3IHostVideoInputDevice) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IHostVideoInputDevice(aInternalAndReservedAttribute3IHostVideoInputDevice); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IHostVideoInputDevice(PRUint32 *aInternalAndReservedAttribute4IHostVideoInputDevice) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IHostVideoInputDevice(aInternalAndReservedAttribute4IHostVideoInputDevice); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IHostVideoInputDevice
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IHOSTVIDEOINPUTDEVICE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IHostVideoInputDevice)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute wstring name; */
NS_IMETHODIMP _MYCLASS_::GetName(PRUnichar * *aName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring path; */
NS_IMETHODIMP _MYCLASS_::GetPath(PRUnichar * *aPath)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring alias; */
NS_IMETHODIMP _MYCLASS_::GetAlias(PRUnichar * *aAlias)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IHostVideoInputDevice; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IHostVideoInputDevice(PRUint32 *aInternalAndReservedAttribute1IHostVideoInputDevice)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IHostVideoInputDevice; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IHostVideoInputDevice(PRUint32 *aInternalAndReservedAttribute2IHostVideoInputDevice)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute3IHostVideoInputDevice; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute3IHostVideoInputDevice(PRUint32 *aInternalAndReservedAttribute3IHostVideoInputDevice)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute4IHostVideoInputDevice; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute4IHostVideoInputDevice(PRUint32 *aInternalAndReservedAttribute4IHostVideoInputDevice)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IHost */
#define IHOST_IID_STR "afca788c-4477-787d-60b2-3fa70e56fbbc"

#define IHOST_IID \
  {0xafca788c, 0x4477, 0x787d, \
    { 0x60, 0xb2, 0x3f, 0xa7, 0x0e, 0x56, 0xfb, 0xbc }}

class NS_NO_VTABLE IHost : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IHOST_IID)

  /* void getDVDDrives (out unsigned long DVDDrivesSize, [array, size_is (DVDDrivesSize), retval] out IMedium DVDDrives); */
  NS_IMETHOD GetDVDDrives(PRUint32 *DVDDrivesSize, IMedium ***DVDDrives) = 0;

  /* void getFloppyDrives (out unsigned long floppyDrivesSize, [array, size_is (floppyDrivesSize), retval] out IMedium floppyDrives); */
  NS_IMETHOD GetFloppyDrives(PRUint32 *floppyDrivesSize, IMedium ***floppyDrives) = 0;

  /* void getUSBDevices (out unsigned long USBDevicesSize, [array, size_is (USBDevicesSize), retval] out IHostUSBDevice USBDevices); */
  NS_IMETHOD GetUSBDevices(PRUint32 *USBDevicesSize, IHostUSBDevice ***USBDevices) = 0;

  /* void getUSBDeviceFilters (out unsigned long USBDeviceFiltersSize, [array, size_is (USBDeviceFiltersSize), retval] out IHostUSBDeviceFilter USBDeviceFilters); */
  NS_IMETHOD GetUSBDeviceFilters(PRUint32 *USBDeviceFiltersSize, IHostUSBDeviceFilter ***USBDeviceFilters) = 0;

  /* void getNetworkInterfaces (out unsigned long networkInterfacesSize, [array, size_is (networkInterfacesSize), retval] out IHostNetworkInterface networkInterfaces); */
  NS_IMETHOD GetNetworkInterfaces(PRUint32 *networkInterfacesSize, IHostNetworkInterface ***networkInterfaces) = 0;

  /* void getNameServers (out unsigned long nameServersSize, [array, size_is (nameServersSize), retval] out wstring nameServers); */
  NS_IMETHOD GetNameServers(PRUint32 *nameServersSize, PRUnichar ***nameServers) = 0;

  /* readonly attribute wstring domainName; */
  NS_IMETHOD GetDomainName(PRUnichar * *aDomainName) = 0;

  /* void getSearchStrings (out unsigned long searchStringsSize, [array, size_is (searchStringsSize), retval] out wstring searchStrings); */
  NS_IMETHOD GetSearchStrings(PRUint32 *searchStringsSize, PRUnichar ***searchStrings) = 0;

  /* readonly attribute unsigned long processorCount; */
  NS_IMETHOD GetProcessorCount(PRUint32 *aProcessorCount) = 0;

  /* readonly attribute unsigned long processorOnlineCount; */
  NS_IMETHOD GetProcessorOnlineCount(PRUint32 *aProcessorOnlineCount) = 0;

  /* readonly attribute unsigned long processorCoreCount; */
  NS_IMETHOD GetProcessorCoreCount(PRUint32 *aProcessorCoreCount) = 0;

  /* readonly attribute unsigned long processorOnlineCoreCount; */
  NS_IMETHOD GetProcessorOnlineCoreCount(PRUint32 *aProcessorOnlineCoreCount) = 0;

  /* readonly attribute unsigned long memorySize; */
  NS_IMETHOD GetMemorySize(PRUint32 *aMemorySize) = 0;

  /* readonly attribute unsigned long memoryAvailable; */
  NS_IMETHOD GetMemoryAvailable(PRUint32 *aMemoryAvailable) = 0;

  /* readonly attribute wstring operatingSystem; */
  NS_IMETHOD GetOperatingSystem(PRUnichar * *aOperatingSystem) = 0;

  /* readonly attribute wstring OSVersion; */
  NS_IMETHOD GetOSVersion(PRUnichar * *aOSVersion) = 0;

  /* readonly attribute long long UTCTime; */
  NS_IMETHOD GetUTCTime(PRInt64 *aUTCTime) = 0;

  /* readonly attribute boolean acceleration3DAvailable; */
  NS_IMETHOD GetAcceleration3DAvailable(PRBool *aAcceleration3DAvailable) = 0;

  /* void getVideoInputDevices (out unsigned long videoInputDevicesSize, [array, size_is (videoInputDevicesSize), retval] out IHostVideoInputDevice videoInputDevices); */
  NS_IMETHOD GetVideoInputDevices(PRUint32 *videoInputDevicesSize, IHostVideoInputDevice ***videoInputDevices) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IHost; */
  NS_IMETHOD GetInternalAndReservedAttribute1IHost(PRUint32 *aInternalAndReservedAttribute1IHost) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IHost; */
  NS_IMETHOD GetInternalAndReservedAttribute2IHost(PRUint32 *aInternalAndReservedAttribute2IHost) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IHost; */
  NS_IMETHOD GetInternalAndReservedAttribute3IHost(PRUint32 *aInternalAndReservedAttribute3IHost) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IHost; */
  NS_IMETHOD GetInternalAndReservedAttribute4IHost(PRUint32 *aInternalAndReservedAttribute4IHost) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IHost; */
  NS_IMETHOD GetInternalAndReservedAttribute5IHost(PRUint32 *aInternalAndReservedAttribute5IHost) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IHost; */
  NS_IMETHOD GetInternalAndReservedAttribute6IHost(PRUint32 *aInternalAndReservedAttribute6IHost) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IHost; */
  NS_IMETHOD GetInternalAndReservedAttribute7IHost(PRUint32 *aInternalAndReservedAttribute7IHost) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IHost; */
  NS_IMETHOD GetInternalAndReservedAttribute8IHost(PRUint32 *aInternalAndReservedAttribute8IHost) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute9IHost; */
  NS_IMETHOD GetInternalAndReservedAttribute9IHost(PRUint32 *aInternalAndReservedAttribute9IHost) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute10IHost; */
  NS_IMETHOD GetInternalAndReservedAttribute10IHost(PRUint32 *aInternalAndReservedAttribute10IHost) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute11IHost; */
  NS_IMETHOD GetInternalAndReservedAttribute11IHost(PRUint32 *aInternalAndReservedAttribute11IHost) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute12IHost; */
  NS_IMETHOD GetInternalAndReservedAttribute12IHost(PRUint32 *aInternalAndReservedAttribute12IHost) = 0;

  /* void getProcessorSpeed (in unsigned long cpuId, [retval] out unsigned long speed); */
  NS_IMETHOD GetProcessorSpeed(PRUint32 cpuId, PRUint32 *speed) = 0;

  /* void getProcessorFeature (in PRUint32 feature, [retval] out boolean supported); */
  NS_IMETHOD GetProcessorFeature(PRUint32 feature, PRBool *supported) = 0;

  /* void getProcessorDescription (in unsigned long cpuId, [retval] out wstring description); */
  NS_IMETHOD GetProcessorDescription(PRUint32 cpuId, PRUnichar **description) = 0;

  /* 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); */
  NS_IMETHOD GetProcessorCPUIDLeaf(PRUint32 cpuId, PRUint32 leaf, PRUint32 subLeaf, PRUint32 *valEax, PRUint32 *valEbx, PRUint32 *valEcx, PRUint32 *valEdx) = 0;

  /* void createHostOnlyNetworkInterface (out IHostNetworkInterface hostInterface, [retval] out IProgress progress); */
  NS_IMETHOD CreateHostOnlyNetworkInterface(IHostNetworkInterface **hostInterface, IProgress **progress) = 0;

  /* void removeHostOnlyNetworkInterface (in wstring id, [retval] out IProgress progress); */
  NS_IMETHOD RemoveHostOnlyNetworkInterface(const PRUnichar *id, IProgress **progress) = 0;

  /* void createUSBDeviceFilter (in wstring name, [retval] out IHostUSBDeviceFilter filter); */
  NS_IMETHOD CreateUSBDeviceFilter(const PRUnichar *name, IHostUSBDeviceFilter **filter) = 0;

  /* void insertUSBDeviceFilter (in unsigned long position, in IHostUSBDeviceFilter filter); */
  NS_IMETHOD InsertUSBDeviceFilter(PRUint32 position, IHostUSBDeviceFilter *filter) = 0;

  /* void removeUSBDeviceFilter (in unsigned long position); */
  NS_IMETHOD RemoveUSBDeviceFilter(PRUint32 position) = 0;

  /* void findHostDVDDrive (in wstring name, [retval] out IMedium drive); */
  NS_IMETHOD FindHostDVDDrive(const PRUnichar *name, IMedium **drive) = 0;

  /* void findHostFloppyDrive (in wstring name, [retval] out IMedium drive); */
  NS_IMETHOD FindHostFloppyDrive(const PRUnichar *name, IMedium **drive) = 0;

  /* void findHostNetworkInterfaceByName (in wstring name, [retval] out IHostNetworkInterface networkInterface); */
  NS_IMETHOD FindHostNetworkInterfaceByName(const PRUnichar *name, IHostNetworkInterface **networkInterface) = 0;

  /* void findHostNetworkInterfaceById (in wstring id, [retval] out IHostNetworkInterface networkInterface); */
  NS_IMETHOD FindHostNetworkInterfaceById(const PRUnichar *id, IHostNetworkInterface **networkInterface) = 0;

  /* void findHostNetworkInterfacesOfType (in PRUint32 type, out unsigned long networkInterfacesSize, [array, size_is (networkInterfacesSize), retval] out IHostNetworkInterface networkInterfaces); */
  NS_IMETHOD FindHostNetworkInterfacesOfType(PRUint32 type, PRUint32 *networkInterfacesSize, IHostNetworkInterface ***networkInterfaces) = 0;

  /* void findUSBDeviceById (in wstring id, [retval] out IHostUSBDevice device); */
  NS_IMETHOD FindUSBDeviceById(const PRUnichar *id, IHostUSBDevice **device) = 0;

  /* void findUSBDeviceByAddress (in wstring name, [retval] out IHostUSBDevice device); */
  NS_IMETHOD FindUSBDeviceByAddress(const PRUnichar *name, IHostUSBDevice **device) = 0;

  /* void generateMACAddress ([retval] out wstring address); */
  NS_IMETHOD GenerateMACAddress(PRUnichar **address) = 0;

  /* 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); */
  NS_IMETHOD AddUSBDeviceSource(const PRUnichar *backend, const PRUnichar *id, const PRUnichar *address, PRUint32 propertyNamesSize, const PRUnichar **propertyNames, PRUint32 propertyValuesSize, const PRUnichar **propertyValues) = 0;

  /* void removeUSBDeviceSource (in wstring id); */
  NS_IMETHOD RemoveUSBDeviceSource(const PRUnichar *id) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IHOST \
  NS_IMETHOD GetDVDDrives(PRUint32 *DVDDrivesSize, IMedium ***DVDDrives); \
  NS_IMETHOD GetFloppyDrives(PRUint32 *floppyDrivesSize, IMedium ***floppyDrives); \
  NS_IMETHOD GetUSBDevices(PRUint32 *USBDevicesSize, IHostUSBDevice ***USBDevices); \
  NS_IMETHOD GetUSBDeviceFilters(PRUint32 *USBDeviceFiltersSize, IHostUSBDeviceFilter ***USBDeviceFilters); \
  NS_IMETHOD GetNetworkInterfaces(PRUint32 *networkInterfacesSize, IHostNetworkInterface ***networkInterfaces); \
  NS_IMETHOD GetNameServers(PRUint32 *nameServersSize, PRUnichar ***nameServers); \
  NS_IMETHOD GetDomainName(PRUnichar * *aDomainName); \
  NS_IMETHOD GetSearchStrings(PRUint32 *searchStringsSize, PRUnichar ***searchStrings); \
  NS_IMETHOD GetProcessorCount(PRUint32 *aProcessorCount); \
  NS_IMETHOD GetProcessorOnlineCount(PRUint32 *aProcessorOnlineCount); \
  NS_IMETHOD GetProcessorCoreCount(PRUint32 *aProcessorCoreCount); \
  NS_IMETHOD GetProcessorOnlineCoreCount(PRUint32 *aProcessorOnlineCoreCount); \
  NS_IMETHOD GetMemorySize(PRUint32 *aMemorySize); \
  NS_IMETHOD GetMemoryAvailable(PRUint32 *aMemoryAvailable); \
  NS_IMETHOD GetOperatingSystem(PRUnichar * *aOperatingSystem); \
  NS_IMETHOD GetOSVersion(PRUnichar * *aOSVersion); \
  NS_IMETHOD GetUTCTime(PRInt64 *aUTCTime); \
  NS_IMETHOD GetAcceleration3DAvailable(PRBool *aAcceleration3DAvailable); \
  NS_IMETHOD GetVideoInputDevices(PRUint32 *videoInputDevicesSize, IHostVideoInputDevice ***videoInputDevices); \
  NS_IMETHOD GetInternalAndReservedAttribute1IHost(PRUint32 *aInternalAndReservedAttribute1IHost); \
  NS_IMETHOD GetInternalAndReservedAttribute2IHost(PRUint32 *aInternalAndReservedAttribute2IHost); \
  NS_IMETHOD GetInternalAndReservedAttribute3IHost(PRUint32 *aInternalAndReservedAttribute3IHost); \
  NS_IMETHOD GetInternalAndReservedAttribute4IHost(PRUint32 *aInternalAndReservedAttribute4IHost); \
  NS_IMETHOD GetInternalAndReservedAttribute5IHost(PRUint32 *aInternalAndReservedAttribute5IHost); \
  NS_IMETHOD GetInternalAndReservedAttribute6IHost(PRUint32 *aInternalAndReservedAttribute6IHost); \
  NS_IMETHOD GetInternalAndReservedAttribute7IHost(PRUint32 *aInternalAndReservedAttribute7IHost); \
  NS_IMETHOD GetInternalAndReservedAttribute8IHost(PRUint32 *aInternalAndReservedAttribute8IHost); \
  NS_IMETHOD GetInternalAndReservedAttribute9IHost(PRUint32 *aInternalAndReservedAttribute9IHost); \
  NS_IMETHOD GetInternalAndReservedAttribute10IHost(PRUint32 *aInternalAndReservedAttribute10IHost); \
  NS_IMETHOD GetInternalAndReservedAttribute11IHost(PRUint32 *aInternalAndReservedAttribute11IHost); \
  NS_IMETHOD GetInternalAndReservedAttribute12IHost(PRUint32 *aInternalAndReservedAttribute12IHost); \
  NS_IMETHOD GetProcessorSpeed(PRUint32 cpuId, PRUint32 *speed); \
  NS_IMETHOD GetProcessorFeature(PRUint32 feature, PRBool *supported); \
  NS_IMETHOD GetProcessorDescription(PRUint32 cpuId, PRUnichar **description); \
  NS_IMETHOD GetProcessorCPUIDLeaf(PRUint32 cpuId, PRUint32 leaf, PRUint32 subLeaf, PRUint32 *valEax, PRUint32 *valEbx, PRUint32 *valEcx, PRUint32 *valEdx); \
  NS_IMETHOD CreateHostOnlyNetworkInterface(IHostNetworkInterface **hostInterface, IProgress **progress); \
  NS_IMETHOD RemoveHostOnlyNetworkInterface(const PRUnichar *id, IProgress **progress); \
  NS_IMETHOD CreateUSBDeviceFilter(const PRUnichar *name, IHostUSBDeviceFilter **filter); \
  NS_IMETHOD InsertUSBDeviceFilter(PRUint32 position, IHostUSBDeviceFilter *filter); \
  NS_IMETHOD RemoveUSBDeviceFilter(PRUint32 position); \
  NS_IMETHOD FindHostDVDDrive(const PRUnichar *name, IMedium **drive); \
  NS_IMETHOD FindHostFloppyDrive(const PRUnichar *name, IMedium **drive); \
  NS_IMETHOD FindHostNetworkInterfaceByName(const PRUnichar *name, IHostNetworkInterface **networkInterface); \
  NS_IMETHOD FindHostNetworkInterfaceById(const PRUnichar *id, IHostNetworkInterface **networkInterface); \
  NS_IMETHOD FindHostNetworkInterfacesOfType(PRUint32 type, PRUint32 *networkInterfacesSize, IHostNetworkInterface ***networkInterfaces); \
  NS_IMETHOD FindUSBDeviceById(const PRUnichar *id, IHostUSBDevice **device); \
  NS_IMETHOD FindUSBDeviceByAddress(const PRUnichar *name, IHostUSBDevice **device); \
  NS_IMETHOD GenerateMACAddress(PRUnichar **address); \
  NS_IMETHOD AddUSBDeviceSource(const PRUnichar *backend, const PRUnichar *id, const PRUnichar *address, PRUint32 propertyNamesSize, const PRUnichar **propertyNames, PRUint32 propertyValuesSize, const PRUnichar **propertyValues); \
  NS_IMETHOD RemoveUSBDeviceSource(const PRUnichar *id); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IHOST(_to) \
  NS_IMETHOD GetDVDDrives(PRUint32 *DVDDrivesSize, IMedium ***DVDDrives) { return _to GetDVDDrives(DVDDrivesSize, DVDDrives); } \
  NS_IMETHOD GetFloppyDrives(PRUint32 *floppyDrivesSize, IMedium ***floppyDrives) { return _to GetFloppyDrives(floppyDrivesSize, floppyDrives); } \
  NS_IMETHOD GetUSBDevices(PRUint32 *USBDevicesSize, IHostUSBDevice ***USBDevices) { return _to GetUSBDevices(USBDevicesSize, USBDevices); } \
  NS_IMETHOD GetUSBDeviceFilters(PRUint32 *USBDeviceFiltersSize, IHostUSBDeviceFilter ***USBDeviceFilters) { return _to GetUSBDeviceFilters(USBDeviceFiltersSize, USBDeviceFilters); } \
  NS_IMETHOD GetNetworkInterfaces(PRUint32 *networkInterfacesSize, IHostNetworkInterface ***networkInterfaces) { return _to GetNetworkInterfaces(networkInterfacesSize, networkInterfaces); } \
  NS_IMETHOD GetNameServers(PRUint32 *nameServersSize, PRUnichar ***nameServers) { return _to GetNameServers(nameServersSize, nameServers); } \
  NS_IMETHOD GetDomainName(PRUnichar * *aDomainName) { return _to GetDomainName(aDomainName); } \
  NS_IMETHOD GetSearchStrings(PRUint32 *searchStringsSize, PRUnichar ***searchStrings) { return _to GetSearchStrings(searchStringsSize, searchStrings); } \
  NS_IMETHOD GetProcessorCount(PRUint32 *aProcessorCount) { return _to GetProcessorCount(aProcessorCount); } \
  NS_IMETHOD GetProcessorOnlineCount(PRUint32 *aProcessorOnlineCount) { return _to GetProcessorOnlineCount(aProcessorOnlineCount); } \
  NS_IMETHOD GetProcessorCoreCount(PRUint32 *aProcessorCoreCount) { return _to GetProcessorCoreCount(aProcessorCoreCount); } \
  NS_IMETHOD GetProcessorOnlineCoreCount(PRUint32 *aProcessorOnlineCoreCount) { return _to GetProcessorOnlineCoreCount(aProcessorOnlineCoreCount); } \
  NS_IMETHOD GetMemorySize(PRUint32 *aMemorySize) { return _to GetMemorySize(aMemorySize); } \
  NS_IMETHOD GetMemoryAvailable(PRUint32 *aMemoryAvailable) { return _to GetMemoryAvailable(aMemoryAvailable); } \
  NS_IMETHOD GetOperatingSystem(PRUnichar * *aOperatingSystem) { return _to GetOperatingSystem(aOperatingSystem); } \
  NS_IMETHOD GetOSVersion(PRUnichar * *aOSVersion) { return _to GetOSVersion(aOSVersion); } \
  NS_IMETHOD GetUTCTime(PRInt64 *aUTCTime) { return _to GetUTCTime(aUTCTime); } \
  NS_IMETHOD GetAcceleration3DAvailable(PRBool *aAcceleration3DAvailable) { return _to GetAcceleration3DAvailable(aAcceleration3DAvailable); } \
  NS_IMETHOD GetVideoInputDevices(PRUint32 *videoInputDevicesSize, IHostVideoInputDevice ***videoInputDevices) { return _to GetVideoInputDevices(videoInputDevicesSize, videoInputDevices); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IHost(PRUint32 *aInternalAndReservedAttribute1IHost) { return _to GetInternalAndReservedAttribute1IHost(aInternalAndReservedAttribute1IHost); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IHost(PRUint32 *aInternalAndReservedAttribute2IHost) { return _to GetInternalAndReservedAttribute2IHost(aInternalAndReservedAttribute2IHost); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IHost(PRUint32 *aInternalAndReservedAttribute3IHost) { return _to GetInternalAndReservedAttribute3IHost(aInternalAndReservedAttribute3IHost); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IHost(PRUint32 *aInternalAndReservedAttribute4IHost) { return _to GetInternalAndReservedAttribute4IHost(aInternalAndReservedAttribute4IHost); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IHost(PRUint32 *aInternalAndReservedAttribute5IHost) { return _to GetInternalAndReservedAttribute5IHost(aInternalAndReservedAttribute5IHost); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IHost(PRUint32 *aInternalAndReservedAttribute6IHost) { return _to GetInternalAndReservedAttribute6IHost(aInternalAndReservedAttribute6IHost); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IHost(PRUint32 *aInternalAndReservedAttribute7IHost) { return _to GetInternalAndReservedAttribute7IHost(aInternalAndReservedAttribute7IHost); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IHost(PRUint32 *aInternalAndReservedAttribute8IHost) { return _to GetInternalAndReservedAttribute8IHost(aInternalAndReservedAttribute8IHost); } \
  NS_IMETHOD GetInternalAndReservedAttribute9IHost(PRUint32 *aInternalAndReservedAttribute9IHost) { return _to GetInternalAndReservedAttribute9IHost(aInternalAndReservedAttribute9IHost); } \
  NS_IMETHOD GetInternalAndReservedAttribute10IHost(PRUint32 *aInternalAndReservedAttribute10IHost) { return _to GetInternalAndReservedAttribute10IHost(aInternalAndReservedAttribute10IHost); } \
  NS_IMETHOD GetInternalAndReservedAttribute11IHost(PRUint32 *aInternalAndReservedAttribute11IHost) { return _to GetInternalAndReservedAttribute11IHost(aInternalAndReservedAttribute11IHost); } \
  NS_IMETHOD GetInternalAndReservedAttribute12IHost(PRUint32 *aInternalAndReservedAttribute12IHost) { return _to GetInternalAndReservedAttribute12IHost(aInternalAndReservedAttribute12IHost); } \
  NS_IMETHOD GetProcessorSpeed(PRUint32 cpuId, PRUint32 *speed) { return _to GetProcessorSpeed(cpuId, speed); } \
  NS_IMETHOD GetProcessorFeature(PRUint32 feature, PRBool *supported) { return _to GetProcessorFeature(feature, supported); } \
  NS_IMETHOD GetProcessorDescription(PRUint32 cpuId, PRUnichar **description) { return _to GetProcessorDescription(cpuId, description); } \
  NS_IMETHOD GetProcessorCPUIDLeaf(PRUint32 cpuId, PRUint32 leaf, PRUint32 subLeaf, PRUint32 *valEax, PRUint32 *valEbx, PRUint32 *valEcx, PRUint32 *valEdx) { return _to GetProcessorCPUIDLeaf(cpuId, leaf, subLeaf, valEax, valEbx, valEcx, valEdx); } \
  NS_IMETHOD CreateHostOnlyNetworkInterface(IHostNetworkInterface **hostInterface, IProgress **progress) { return _to CreateHostOnlyNetworkInterface(hostInterface, progress); } \
  NS_IMETHOD RemoveHostOnlyNetworkInterface(const PRUnichar *id, IProgress **progress) { return _to RemoveHostOnlyNetworkInterface(id, progress); } \
  NS_IMETHOD CreateUSBDeviceFilter(const PRUnichar *name, IHostUSBDeviceFilter **filter) { return _to CreateUSBDeviceFilter(name, filter); } \
  NS_IMETHOD InsertUSBDeviceFilter(PRUint32 position, IHostUSBDeviceFilter *filter) { return _to InsertUSBDeviceFilter(position, filter); } \
  NS_IMETHOD RemoveUSBDeviceFilter(PRUint32 position) { return _to RemoveUSBDeviceFilter(position); } \
  NS_IMETHOD FindHostDVDDrive(const PRUnichar *name, IMedium **drive) { return _to FindHostDVDDrive(name, drive); } \
  NS_IMETHOD FindHostFloppyDrive(const PRUnichar *name, IMedium **drive) { return _to FindHostFloppyDrive(name, drive); } \
  NS_IMETHOD FindHostNetworkInterfaceByName(const PRUnichar *name, IHostNetworkInterface **networkInterface) { return _to FindHostNetworkInterfaceByName(name, networkInterface); } \
  NS_IMETHOD FindHostNetworkInterfaceById(const PRUnichar *id, IHostNetworkInterface **networkInterface) { return _to FindHostNetworkInterfaceById(id, networkInterface); } \
  NS_IMETHOD FindHostNetworkInterfacesOfType(PRUint32 type, PRUint32 *networkInterfacesSize, IHostNetworkInterface ***networkInterfaces) { return _to FindHostNetworkInterfacesOfType(type, networkInterfacesSize, networkInterfaces); } \
  NS_IMETHOD FindUSBDeviceById(const PRUnichar *id, IHostUSBDevice **device) { return _to FindUSBDeviceById(id, device); } \
  NS_IMETHOD FindUSBDeviceByAddress(const PRUnichar *name, IHostUSBDevice **device) { return _to FindUSBDeviceByAddress(name, device); } \
  NS_IMETHOD GenerateMACAddress(PRUnichar **address) { return _to GenerateMACAddress(address); } \
  NS_IMETHOD AddUSBDeviceSource(const PRUnichar *backend, const PRUnichar *id, const PRUnichar *address, PRUint32 propertyNamesSize, const PRUnichar **propertyNames, PRUint32 propertyValuesSize, const PRUnichar **propertyValues) { return _to AddUSBDeviceSource(backend, id, address, propertyNamesSize, propertyNames, propertyValuesSize, propertyValues); } \
  NS_IMETHOD RemoveUSBDeviceSource(const PRUnichar *id) { return _to RemoveUSBDeviceSource(id); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IHOST(_to) \
  NS_IMETHOD GetDVDDrives(PRUint32 *DVDDrivesSize, IMedium ***DVDDrives) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDVDDrives(DVDDrivesSize, DVDDrives); } \
  NS_IMETHOD GetFloppyDrives(PRUint32 *floppyDrivesSize, IMedium ***floppyDrives) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFloppyDrives(floppyDrivesSize, floppyDrives); } \
  NS_IMETHOD GetUSBDevices(PRUint32 *USBDevicesSize, IHostUSBDevice ***USBDevices) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUSBDevices(USBDevicesSize, USBDevices); } \
  NS_IMETHOD GetUSBDeviceFilters(PRUint32 *USBDeviceFiltersSize, IHostUSBDeviceFilter ***USBDeviceFilters) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUSBDeviceFilters(USBDeviceFiltersSize, USBDeviceFilters); } \
  NS_IMETHOD GetNetworkInterfaces(PRUint32 *networkInterfacesSize, IHostNetworkInterface ***networkInterfaces) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNetworkInterfaces(networkInterfacesSize, networkInterfaces); } \
  NS_IMETHOD GetNameServers(PRUint32 *nameServersSize, PRUnichar ***nameServers) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNameServers(nameServersSize, nameServers); } \
  NS_IMETHOD GetDomainName(PRUnichar * *aDomainName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDomainName(aDomainName); } \
  NS_IMETHOD GetSearchStrings(PRUint32 *searchStringsSize, PRUnichar ***searchStrings) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSearchStrings(searchStringsSize, searchStrings); } \
  NS_IMETHOD GetProcessorCount(PRUint32 *aProcessorCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProcessorCount(aProcessorCount); } \
  NS_IMETHOD GetProcessorOnlineCount(PRUint32 *aProcessorOnlineCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProcessorOnlineCount(aProcessorOnlineCount); } \
  NS_IMETHOD GetProcessorCoreCount(PRUint32 *aProcessorCoreCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProcessorCoreCount(aProcessorCoreCount); } \
  NS_IMETHOD GetProcessorOnlineCoreCount(PRUint32 *aProcessorOnlineCoreCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProcessorOnlineCoreCount(aProcessorOnlineCoreCount); } \
  NS_IMETHOD GetMemorySize(PRUint32 *aMemorySize) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMemorySize(aMemorySize); } \
  NS_IMETHOD GetMemoryAvailable(PRUint32 *aMemoryAvailable) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMemoryAvailable(aMemoryAvailable); } \
  NS_IMETHOD GetOperatingSystem(PRUnichar * *aOperatingSystem) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOperatingSystem(aOperatingSystem); } \
  NS_IMETHOD GetOSVersion(PRUnichar * *aOSVersion) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOSVersion(aOSVersion); } \
  NS_IMETHOD GetUTCTime(PRInt64 *aUTCTime) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUTCTime(aUTCTime); } \
  NS_IMETHOD GetAcceleration3DAvailable(PRBool *aAcceleration3DAvailable) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAcceleration3DAvailable(aAcceleration3DAvailable); } \
  NS_IMETHOD GetVideoInputDevices(PRUint32 *videoInputDevicesSize, IHostVideoInputDevice ***videoInputDevices) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVideoInputDevices(videoInputDevicesSize, videoInputDevices); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IHost(PRUint32 *aInternalAndReservedAttribute1IHost) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IHost(aInternalAndReservedAttribute1IHost); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IHost(PRUint32 *aInternalAndReservedAttribute2IHost) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IHost(aInternalAndReservedAttribute2IHost); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IHost(PRUint32 *aInternalAndReservedAttribute3IHost) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IHost(aInternalAndReservedAttribute3IHost); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IHost(PRUint32 *aInternalAndReservedAttribute4IHost) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IHost(aInternalAndReservedAttribute4IHost); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IHost(PRUint32 *aInternalAndReservedAttribute5IHost) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IHost(aInternalAndReservedAttribute5IHost); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IHost(PRUint32 *aInternalAndReservedAttribute6IHost) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IHost(aInternalAndReservedAttribute6IHost); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IHost(PRUint32 *aInternalAndReservedAttribute7IHost) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IHost(aInternalAndReservedAttribute7IHost); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IHost(PRUint32 *aInternalAndReservedAttribute8IHost) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IHost(aInternalAndReservedAttribute8IHost); } \
  NS_IMETHOD GetInternalAndReservedAttribute9IHost(PRUint32 *aInternalAndReservedAttribute9IHost) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute9IHost(aInternalAndReservedAttribute9IHost); } \
  NS_IMETHOD GetInternalAndReservedAttribute10IHost(PRUint32 *aInternalAndReservedAttribute10IHost) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute10IHost(aInternalAndReservedAttribute10IHost); } \
  NS_IMETHOD GetInternalAndReservedAttribute11IHost(PRUint32 *aInternalAndReservedAttribute11IHost) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute11IHost(aInternalAndReservedAttribute11IHost); } \
  NS_IMETHOD GetInternalAndReservedAttribute12IHost(PRUint32 *aInternalAndReservedAttribute12IHost) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute12IHost(aInternalAndReservedAttribute12IHost); } \
  NS_IMETHOD GetProcessorSpeed(PRUint32 cpuId, PRUint32 *speed) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProcessorSpeed(cpuId, speed); } \
  NS_IMETHOD GetProcessorFeature(PRUint32 feature, PRBool *supported) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProcessorFeature(feature, supported); } \
  NS_IMETHOD GetProcessorDescription(PRUint32 cpuId, PRUnichar **description) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProcessorDescription(cpuId, description); } \
  NS_IMETHOD GetProcessorCPUIDLeaf(PRUint32 cpuId, PRUint32 leaf, PRUint32 subLeaf, PRUint32 *valEax, PRUint32 *valEbx, PRUint32 *valEcx, PRUint32 *valEdx) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProcessorCPUIDLeaf(cpuId, leaf, subLeaf, valEax, valEbx, valEcx, valEdx); } \
  NS_IMETHOD CreateHostOnlyNetworkInterface(IHostNetworkInterface **hostInterface, IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateHostOnlyNetworkInterface(hostInterface, progress); } \
  NS_IMETHOD RemoveHostOnlyNetworkInterface(const PRUnichar *id, IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveHostOnlyNetworkInterface(id, progress); } \
  NS_IMETHOD CreateUSBDeviceFilter(const PRUnichar *name, IHostUSBDeviceFilter **filter) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateUSBDeviceFilter(name, filter); } \
  NS_IMETHOD InsertUSBDeviceFilter(PRUint32 position, IHostUSBDeviceFilter *filter) { return !_to ? NS_ERROR_NULL_POINTER : _to->InsertUSBDeviceFilter(position, filter); } \
  NS_IMETHOD RemoveUSBDeviceFilter(PRUint32 position) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveUSBDeviceFilter(position); } \
  NS_IMETHOD FindHostDVDDrive(const PRUnichar *name, IMedium **drive) { return !_to ? NS_ERROR_NULL_POINTER : _to->FindHostDVDDrive(name, drive); } \
  NS_IMETHOD FindHostFloppyDrive(const PRUnichar *name, IMedium **drive) { return !_to ? NS_ERROR_NULL_POINTER : _to->FindHostFloppyDrive(name, drive); } \
  NS_IMETHOD FindHostNetworkInterfaceByName(const PRUnichar *name, IHostNetworkInterface **networkInterface) { return !_to ? NS_ERROR_NULL_POINTER : _to->FindHostNetworkInterfaceByName(name, networkInterface); } \
  NS_IMETHOD FindHostNetworkInterfaceById(const PRUnichar *id, IHostNetworkInterface **networkInterface) { return !_to ? NS_ERROR_NULL_POINTER : _to->FindHostNetworkInterfaceById(id, networkInterface); } \
  NS_IMETHOD FindHostNetworkInterfacesOfType(PRUint32 type, PRUint32 *networkInterfacesSize, IHostNetworkInterface ***networkInterfaces) { return !_to ? NS_ERROR_NULL_POINTER : _to->FindHostNetworkInterfacesOfType(type, networkInterfacesSize, networkInterfaces); } \
  NS_IMETHOD FindUSBDeviceById(const PRUnichar *id, IHostUSBDevice **device) { return !_to ? NS_ERROR_NULL_POINTER : _to->FindUSBDeviceById(id, device); } \
  NS_IMETHOD FindUSBDeviceByAddress(const PRUnichar *name, IHostUSBDevice **device) { return !_to ? NS_ERROR_NULL_POINTER : _to->FindUSBDeviceByAddress(name, device); } \
  NS_IMETHOD GenerateMACAddress(PRUnichar **address) { return !_to ? NS_ERROR_NULL_POINTER : _to->GenerateMACAddress(address); } \
  NS_IMETHOD AddUSBDeviceSource(const PRUnichar *backend, const PRUnichar *id, const PRUnichar *address, PRUint32 propertyNamesSize, const PRUnichar **propertyNames, PRUint32 propertyValuesSize, const PRUnichar **propertyValues) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddUSBDeviceSource(backend, id, address, propertyNamesSize, propertyNames, propertyValuesSize, propertyValues); } \
  NS_IMETHOD RemoveUSBDeviceSource(const PRUnichar *id) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveUSBDeviceSource(id); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IHost
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IHOST

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IHost)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* void getDVDDrives (out unsigned long DVDDrivesSize, [array, size_is (DVDDrivesSize), retval] out IMedium DVDDrives); */
NS_IMETHODIMP _MYCLASS_::GetDVDDrives(PRUint32 *DVDDrivesSize, IMedium ***DVDDrives)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getFloppyDrives (out unsigned long floppyDrivesSize, [array, size_is (floppyDrivesSize), retval] out IMedium floppyDrives); */
NS_IMETHODIMP _MYCLASS_::GetFloppyDrives(PRUint32 *floppyDrivesSize, IMedium ***floppyDrives)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getUSBDevices (out unsigned long USBDevicesSize, [array, size_is (USBDevicesSize), retval] out IHostUSBDevice USBDevices); */
NS_IMETHODIMP _MYCLASS_::GetUSBDevices(PRUint32 *USBDevicesSize, IHostUSBDevice ***USBDevices)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getUSBDeviceFilters (out unsigned long USBDeviceFiltersSize, [array, size_is (USBDeviceFiltersSize), retval] out IHostUSBDeviceFilter USBDeviceFilters); */
NS_IMETHODIMP _MYCLASS_::GetUSBDeviceFilters(PRUint32 *USBDeviceFiltersSize, IHostUSBDeviceFilter ***USBDeviceFilters)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getNetworkInterfaces (out unsigned long networkInterfacesSize, [array, size_is (networkInterfacesSize), retval] out IHostNetworkInterface networkInterfaces); */
NS_IMETHODIMP _MYCLASS_::GetNetworkInterfaces(PRUint32 *networkInterfacesSize, IHostNetworkInterface ***networkInterfaces)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getNameServers (out unsigned long nameServersSize, [array, size_is (nameServersSize), retval] out wstring nameServers); */
NS_IMETHODIMP _MYCLASS_::GetNameServers(PRUint32 *nameServersSize, PRUnichar ***nameServers)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring domainName; */
NS_IMETHODIMP _MYCLASS_::GetDomainName(PRUnichar * *aDomainName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getSearchStrings (out unsigned long searchStringsSize, [array, size_is (searchStringsSize), retval] out wstring searchStrings); */
NS_IMETHODIMP _MYCLASS_::GetSearchStrings(PRUint32 *searchStringsSize, PRUnichar ***searchStrings)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long processorCount; */
NS_IMETHODIMP _MYCLASS_::GetProcessorCount(PRUint32 *aProcessorCount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long processorOnlineCount; */
NS_IMETHODIMP _MYCLASS_::GetProcessorOnlineCount(PRUint32 *aProcessorOnlineCount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long processorCoreCount; */
NS_IMETHODIMP _MYCLASS_::GetProcessorCoreCount(PRUint32 *aProcessorCoreCount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long processorOnlineCoreCount; */
NS_IMETHODIMP _MYCLASS_::GetProcessorOnlineCoreCount(PRUint32 *aProcessorOnlineCoreCount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long memorySize; */
NS_IMETHODIMP _MYCLASS_::GetMemorySize(PRUint32 *aMemorySize)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long memoryAvailable; */
NS_IMETHODIMP _MYCLASS_::GetMemoryAvailable(PRUint32 *aMemoryAvailable)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring operatingSystem; */
NS_IMETHODIMP _MYCLASS_::GetOperatingSystem(PRUnichar * *aOperatingSystem)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring OSVersion; */
NS_IMETHODIMP _MYCLASS_::GetOSVersion(PRUnichar * *aOSVersion)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long long UTCTime; */
NS_IMETHODIMP _MYCLASS_::GetUTCTime(PRInt64 *aUTCTime)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean acceleration3DAvailable; */
NS_IMETHODIMP _MYCLASS_::GetAcceleration3DAvailable(PRBool *aAcceleration3DAvailable)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getVideoInputDevices (out unsigned long videoInputDevicesSize, [array, size_is (videoInputDevicesSize), retval] out IHostVideoInputDevice videoInputDevices); */
NS_IMETHODIMP _MYCLASS_::GetVideoInputDevices(PRUint32 *videoInputDevicesSize, IHostVideoInputDevice ***videoInputDevices)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IHost; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IHost(PRUint32 *aInternalAndReservedAttribute1IHost)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IHost; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IHost(PRUint32 *aInternalAndReservedAttribute2IHost)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute3IHost; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute3IHost(PRUint32 *aInternalAndReservedAttribute3IHost)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute4IHost; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute4IHost(PRUint32 *aInternalAndReservedAttribute4IHost)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute5IHost; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute5IHost(PRUint32 *aInternalAndReservedAttribute5IHost)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute6IHost; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute6IHost(PRUint32 *aInternalAndReservedAttribute6IHost)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute7IHost; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute7IHost(PRUint32 *aInternalAndReservedAttribute7IHost)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute8IHost; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute8IHost(PRUint32 *aInternalAndReservedAttribute8IHost)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute9IHost; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute9IHost(PRUint32 *aInternalAndReservedAttribute9IHost)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute10IHost; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute10IHost(PRUint32 *aInternalAndReservedAttribute10IHost)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute11IHost; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute11IHost(PRUint32 *aInternalAndReservedAttribute11IHost)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute12IHost; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute12IHost(PRUint32 *aInternalAndReservedAttribute12IHost)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getProcessorSpeed (in unsigned long cpuId, [retval] out unsigned long speed); */
NS_IMETHODIMP _MYCLASS_::GetProcessorSpeed(PRUint32 cpuId, PRUint32 *speed)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getProcessorFeature (in PRUint32 feature, [retval] out boolean supported); */
NS_IMETHODIMP _MYCLASS_::GetProcessorFeature(PRUint32 feature, PRBool *supported)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getProcessorDescription (in unsigned long cpuId, [retval] out wstring description); */
NS_IMETHODIMP _MYCLASS_::GetProcessorDescription(PRUint32 cpuId, PRUnichar **description)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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); */
NS_IMETHODIMP _MYCLASS_::GetProcessorCPUIDLeaf(PRUint32 cpuId, PRUint32 leaf, PRUint32 subLeaf, PRUint32 *valEax, PRUint32 *valEbx, PRUint32 *valEcx, PRUint32 *valEdx)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void createHostOnlyNetworkInterface (out IHostNetworkInterface hostInterface, [retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::CreateHostOnlyNetworkInterface(IHostNetworkInterface **hostInterface, IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeHostOnlyNetworkInterface (in wstring id, [retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::RemoveHostOnlyNetworkInterface(const PRUnichar *id, IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void createUSBDeviceFilter (in wstring name, [retval] out IHostUSBDeviceFilter filter); */
NS_IMETHODIMP _MYCLASS_::CreateUSBDeviceFilter(const PRUnichar *name, IHostUSBDeviceFilter **filter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void insertUSBDeviceFilter (in unsigned long position, in IHostUSBDeviceFilter filter); */
NS_IMETHODIMP _MYCLASS_::InsertUSBDeviceFilter(PRUint32 position, IHostUSBDeviceFilter *filter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeUSBDeviceFilter (in unsigned long position); */
NS_IMETHODIMP _MYCLASS_::RemoveUSBDeviceFilter(PRUint32 position)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void findHostDVDDrive (in wstring name, [retval] out IMedium drive); */
NS_IMETHODIMP _MYCLASS_::FindHostDVDDrive(const PRUnichar *name, IMedium **drive)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void findHostFloppyDrive (in wstring name, [retval] out IMedium drive); */
NS_IMETHODIMP _MYCLASS_::FindHostFloppyDrive(const PRUnichar *name, IMedium **drive)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void findHostNetworkInterfaceByName (in wstring name, [retval] out IHostNetworkInterface networkInterface); */
NS_IMETHODIMP _MYCLASS_::FindHostNetworkInterfaceByName(const PRUnichar *name, IHostNetworkInterface **networkInterface)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void findHostNetworkInterfaceById (in wstring id, [retval] out IHostNetworkInterface networkInterface); */
NS_IMETHODIMP _MYCLASS_::FindHostNetworkInterfaceById(const PRUnichar *id, IHostNetworkInterface **networkInterface)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void findHostNetworkInterfacesOfType (in PRUint32 type, out unsigned long networkInterfacesSize, [array, size_is (networkInterfacesSize), retval] out IHostNetworkInterface networkInterfaces); */
NS_IMETHODIMP _MYCLASS_::FindHostNetworkInterfacesOfType(PRUint32 type, PRUint32 *networkInterfacesSize, IHostNetworkInterface ***networkInterfaces)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void findUSBDeviceById (in wstring id, [retval] out IHostUSBDevice device); */
NS_IMETHODIMP _MYCLASS_::FindUSBDeviceById(const PRUnichar *id, IHostUSBDevice **device)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void findUSBDeviceByAddress (in wstring name, [retval] out IHostUSBDevice device); */
NS_IMETHODIMP _MYCLASS_::FindUSBDeviceByAddress(const PRUnichar *name, IHostUSBDevice **device)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void generateMACAddress ([retval] out wstring address); */
NS_IMETHODIMP _MYCLASS_::GenerateMACAddress(PRUnichar **address)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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); */
NS_IMETHODIMP _MYCLASS_::AddUSBDeviceSource(const PRUnichar *backend, const PRUnichar *id, const PRUnichar *address, PRUint32 propertyNamesSize, const PRUnichar **propertyNames, PRUint32 propertyValuesSize, const PRUnichar **propertyValues)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeUSBDeviceSource (in wstring id); */
NS_IMETHODIMP _MYCLASS_::RemoveUSBDeviceSource(const PRUnichar *id)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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_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;

/* starting interface:    ISystemProperties */
#define ISYSTEMPROPERTIES_IID_STR "0eb668d2-495e-5a36-8890-29999b5f030c"

#define ISYSTEMPROPERTIES_IID \
  {0x0eb668d2, 0x495e, 0x5a36, \
    { 0x88, 0x90, 0x29, 0x99, 0x9b, 0x5f, 0x03, 0x0c }}

class NS_NO_VTABLE ISystemProperties : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ISYSTEMPROPERTIES_IID)

  /* readonly attribute unsigned long minGuestRAM; */
  NS_IMETHOD GetMinGuestRAM(PRUint32 *aMinGuestRAM) = 0;

  /* readonly attribute unsigned long maxGuestRAM; */
  NS_IMETHOD GetMaxGuestRAM(PRUint32 *aMaxGuestRAM) = 0;

  /* readonly attribute unsigned long minGuestVRAM; */
  NS_IMETHOD GetMinGuestVRAM(PRUint32 *aMinGuestVRAM) = 0;

  /* readonly attribute unsigned long maxGuestVRAM; */
  NS_IMETHOD GetMaxGuestVRAM(PRUint32 *aMaxGuestVRAM) = 0;

  /* readonly attribute unsigned long minGuestCPUCount; */
  NS_IMETHOD GetMinGuestCPUCount(PRUint32 *aMinGuestCPUCount) = 0;

  /* readonly attribute unsigned long maxGuestCPUCount; */
  NS_IMETHOD GetMaxGuestCPUCount(PRUint32 *aMaxGuestCPUCount) = 0;

  /* readonly attribute unsigned long maxGuestMonitors; */
  NS_IMETHOD GetMaxGuestMonitors(PRUint32 *aMaxGuestMonitors) = 0;

  /* readonly attribute long long infoVDSize; */
  NS_IMETHOD GetInfoVDSize(PRInt64 *aInfoVDSize) = 0;

  /* readonly attribute unsigned long serialPortCount; */
  NS_IMETHOD GetSerialPortCount(PRUint32 *aSerialPortCount) = 0;

  /* readonly attribute unsigned long parallelPortCount; */
  NS_IMETHOD GetParallelPortCount(PRUint32 *aParallelPortCount) = 0;

  /* readonly attribute unsigned long maxBootPosition; */
  NS_IMETHOD GetMaxBootPosition(PRUint32 *aMaxBootPosition) = 0;

  /* readonly attribute boolean rawModeSupported; */
  NS_IMETHOD GetRawModeSupported(PRBool *aRawModeSupported) = 0;

  /* attribute boolean exclusiveHwVirt; */
  NS_IMETHOD GetExclusiveHwVirt(PRBool *aExclusiveHwVirt) = 0;
  NS_IMETHOD SetExclusiveHwVirt(PRBool aExclusiveHwVirt) = 0;

  /* attribute wstring defaultMachineFolder; */
  NS_IMETHOD GetDefaultMachineFolder(PRUnichar * *aDefaultMachineFolder) = 0;
  NS_IMETHOD SetDefaultMachineFolder(const PRUnichar * aDefaultMachineFolder) = 0;

  /* attribute wstring loggingLevel; */
  NS_IMETHOD GetLoggingLevel(PRUnichar * *aLoggingLevel) = 0;
  NS_IMETHOD SetLoggingLevel(const PRUnichar * aLoggingLevel) = 0;

  /* void getMediumFormats (out unsigned long mediumFormatsSize, [array, size_is (mediumFormatsSize), retval] out IMediumFormat mediumFormats); */
  NS_IMETHOD GetMediumFormats(PRUint32 *mediumFormatsSize, IMediumFormat ***mediumFormats) = 0;

  /* attribute wstring defaultHardDiskFormat; */
  NS_IMETHOD GetDefaultHardDiskFormat(PRUnichar * *aDefaultHardDiskFormat) = 0;
  NS_IMETHOD SetDefaultHardDiskFormat(const PRUnichar * aDefaultHardDiskFormat) = 0;

  /* attribute long long freeDiskSpaceWarning; */
  NS_IMETHOD GetFreeDiskSpaceWarning(PRInt64 *aFreeDiskSpaceWarning) = 0;
  NS_IMETHOD SetFreeDiskSpaceWarning(PRInt64 aFreeDiskSpaceWarning) = 0;

  /* attribute unsigned long freeDiskSpacePercentWarning; */
  NS_IMETHOD GetFreeDiskSpacePercentWarning(PRUint32 *aFreeDiskSpacePercentWarning) = 0;
  NS_IMETHOD SetFreeDiskSpacePercentWarning(PRUint32 aFreeDiskSpacePercentWarning) = 0;

  /* attribute long long freeDiskSpaceError; */
  NS_IMETHOD GetFreeDiskSpaceError(PRInt64 *aFreeDiskSpaceError) = 0;
  NS_IMETHOD SetFreeDiskSpaceError(PRInt64 aFreeDiskSpaceError) = 0;

  /* attribute unsigned long freeDiskSpacePercentError; */
  NS_IMETHOD GetFreeDiskSpacePercentError(PRUint32 *aFreeDiskSpacePercentError) = 0;
  NS_IMETHOD SetFreeDiskSpacePercentError(PRUint32 aFreeDiskSpacePercentError) = 0;

  /* attribute wstring VRDEAuthLibrary; */
  NS_IMETHOD GetVRDEAuthLibrary(PRUnichar * *aVRDEAuthLibrary) = 0;
  NS_IMETHOD SetVRDEAuthLibrary(const PRUnichar * aVRDEAuthLibrary) = 0;

  /* attribute wstring webServiceAuthLibrary; */
  NS_IMETHOD GetWebServiceAuthLibrary(PRUnichar * *aWebServiceAuthLibrary) = 0;
  NS_IMETHOD SetWebServiceAuthLibrary(const PRUnichar * aWebServiceAuthLibrary) = 0;

  /* attribute wstring defaultVRDEExtPack; */
  NS_IMETHOD GetDefaultVRDEExtPack(PRUnichar * *aDefaultVRDEExtPack) = 0;
  NS_IMETHOD SetDefaultVRDEExtPack(const PRUnichar * aDefaultVRDEExtPack) = 0;

  /* attribute unsigned long logHistoryCount; */
  NS_IMETHOD GetLogHistoryCount(PRUint32 *aLogHistoryCount) = 0;
  NS_IMETHOD SetLogHistoryCount(PRUint32 aLogHistoryCount) = 0;

  /* readonly attribute PRUint32 defaultAudioDriver; */
  NS_IMETHOD GetDefaultAudioDriver(PRUint32 *aDefaultAudioDriver) = 0;

  /* attribute wstring autostartDatabasePath; */
  NS_IMETHOD GetAutostartDatabasePath(PRUnichar * *aAutostartDatabasePath) = 0;
  NS_IMETHOD SetAutostartDatabasePath(const PRUnichar * aAutostartDatabasePath) = 0;

  /* attribute wstring defaultAdditionsISO; */
  NS_IMETHOD GetDefaultAdditionsISO(PRUnichar * *aDefaultAdditionsISO) = 0;
  NS_IMETHOD SetDefaultAdditionsISO(const PRUnichar * aDefaultAdditionsISO) = 0;

  /* attribute wstring defaultFrontend; */
  NS_IMETHOD GetDefaultFrontend(PRUnichar * *aDefaultFrontend) = 0;
  NS_IMETHOD SetDefaultFrontend(const PRUnichar * aDefaultFrontend) = 0;

  /* void getScreenShotFormats (out unsigned long screenShotFormatsSize, [array, size_is (screenShotFormatsSize), retval] out PRUint32 screenShotFormats); */
  NS_IMETHOD GetScreenShotFormats(PRUint32 *screenShotFormatsSize, PRUint32 **screenShotFormats) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1ISystemProperties; */
  NS_IMETHOD GetInternalAndReservedAttribute1ISystemProperties(PRUint32 *aInternalAndReservedAttribute1ISystemProperties) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2ISystemProperties; */
  NS_IMETHOD GetInternalAndReservedAttribute2ISystemProperties(PRUint32 *aInternalAndReservedAttribute2ISystemProperties) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3ISystemProperties; */
  NS_IMETHOD GetInternalAndReservedAttribute3ISystemProperties(PRUint32 *aInternalAndReservedAttribute3ISystemProperties) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4ISystemProperties; */
  NS_IMETHOD GetInternalAndReservedAttribute4ISystemProperties(PRUint32 *aInternalAndReservedAttribute4ISystemProperties) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5ISystemProperties; */
  NS_IMETHOD GetInternalAndReservedAttribute5ISystemProperties(PRUint32 *aInternalAndReservedAttribute5ISystemProperties) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6ISystemProperties; */
  NS_IMETHOD GetInternalAndReservedAttribute6ISystemProperties(PRUint32 *aInternalAndReservedAttribute6ISystemProperties) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7ISystemProperties; */
  NS_IMETHOD GetInternalAndReservedAttribute7ISystemProperties(PRUint32 *aInternalAndReservedAttribute7ISystemProperties) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8ISystemProperties; */
  NS_IMETHOD GetInternalAndReservedAttribute8ISystemProperties(PRUint32 *aInternalAndReservedAttribute8ISystemProperties) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute9ISystemProperties; */
  NS_IMETHOD GetInternalAndReservedAttribute9ISystemProperties(PRUint32 *aInternalAndReservedAttribute9ISystemProperties) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute10ISystemProperties; */
  NS_IMETHOD GetInternalAndReservedAttribute10ISystemProperties(PRUint32 *aInternalAndReservedAttribute10ISystemProperties) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute11ISystemProperties; */
  NS_IMETHOD GetInternalAndReservedAttribute11ISystemProperties(PRUint32 *aInternalAndReservedAttribute11ISystemProperties) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute12ISystemProperties; */
  NS_IMETHOD GetInternalAndReservedAttribute12ISystemProperties(PRUint32 *aInternalAndReservedAttribute12ISystemProperties) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute13ISystemProperties; */
  NS_IMETHOD GetInternalAndReservedAttribute13ISystemProperties(PRUint32 *aInternalAndReservedAttribute13ISystemProperties) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute14ISystemProperties; */
  NS_IMETHOD GetInternalAndReservedAttribute14ISystemProperties(PRUint32 *aInternalAndReservedAttribute14ISystemProperties) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute15ISystemProperties; */
  NS_IMETHOD GetInternalAndReservedAttribute15ISystemProperties(PRUint32 *aInternalAndReservedAttribute15ISystemProperties) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute16ISystemProperties; */
  NS_IMETHOD GetInternalAndReservedAttribute16ISystemProperties(PRUint32 *aInternalAndReservedAttribute16ISystemProperties) = 0;

  /* void getMaxNetworkAdapters (in PRUint32 chipset, [retval] out unsigned long maxNetworkAdapters); */
  NS_IMETHOD GetMaxNetworkAdapters(PRUint32 chipset, PRUint32 *maxNetworkAdapters) = 0;

  /* void getMaxNetworkAdaptersOfType (in PRUint32 chipset, in PRUint32 type, [retval] out unsigned long maxNetworkAdapters); */
  NS_IMETHOD GetMaxNetworkAdaptersOfType(PRUint32 chipset, PRUint32 type, PRUint32 *maxNetworkAdapters) = 0;

  /* void getMaxDevicesPerPortForStorageBus (in PRUint32 bus, [retval] out unsigned long maxDevicesPerPort); */
  NS_IMETHOD GetMaxDevicesPerPortForStorageBus(PRUint32 bus, PRUint32 *maxDevicesPerPort) = 0;

  /* void getMinPortCountForStorageBus (in PRUint32 bus, [retval] out unsigned long minPortCount); */
  NS_IMETHOD GetMinPortCountForStorageBus(PRUint32 bus, PRUint32 *minPortCount) = 0;

  /* void getMaxPortCountForStorageBus (in PRUint32 bus, [retval] out unsigned long maxPortCount); */
  NS_IMETHOD GetMaxPortCountForStorageBus(PRUint32 bus, PRUint32 *maxPortCount) = 0;

  /* void getMaxInstancesOfStorageBus (in PRUint32 chipset, in PRUint32 bus, [retval] out unsigned long maxInstances); */
  NS_IMETHOD GetMaxInstancesOfStorageBus(PRUint32 chipset, PRUint32 bus, PRUint32 *maxInstances) = 0;

  /* void getDeviceTypesForStorageBus (in PRUint32 bus, out unsigned long deviceTypesSize, [array, size_is (deviceTypesSize), retval] out PRUint32 deviceTypes); */
  NS_IMETHOD GetDeviceTypesForStorageBus(PRUint32 bus, PRUint32 *deviceTypesSize, PRUint32 **deviceTypes) = 0;

  /* void getDefaultIoCacheSettingForStorageController (in PRUint32 controllerType, [retval] out boolean enabled); */
  NS_IMETHOD GetDefaultIoCacheSettingForStorageController(PRUint32 controllerType, PRBool *enabled) = 0;

  /* void getStorageControllerHotplugCapable (in PRUint32 controllerType, [retval] out boolean hotplugCapable); */
  NS_IMETHOD GetStorageControllerHotplugCapable(PRUint32 controllerType, PRBool *hotplugCapable) = 0;

  /* void getMaxInstancesOfUSBControllerType (in PRUint32 chipset, in PRUint32 type, [retval] out unsigned long maxInstances); */
  NS_IMETHOD GetMaxInstancesOfUSBControllerType(PRUint32 chipset, PRUint32 type, PRUint32 *maxInstances) = 0;

  /* void InternalAndReservedMethod1ISystemProperties (); */
  NS_IMETHOD InternalAndReservedMethod1ISystemProperties(void) = 0;

  /* void InternalAndReservedMethod2ISystemProperties (); */
  NS_IMETHOD InternalAndReservedMethod2ISystemProperties(void) = 0;

  /* void InternalAndReservedMethod3ISystemProperties (); */
  NS_IMETHOD InternalAndReservedMethod3ISystemProperties(void) = 0;

  /* void InternalAndReservedMethod4ISystemProperties (); */
  NS_IMETHOD InternalAndReservedMethod4ISystemProperties(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ISYSTEMPROPERTIES \
  NS_IMETHOD GetMinGuestRAM(PRUint32 *aMinGuestRAM); \
  NS_IMETHOD GetMaxGuestRAM(PRUint32 *aMaxGuestRAM); \
  NS_IMETHOD GetMinGuestVRAM(PRUint32 *aMinGuestVRAM); \
  NS_IMETHOD GetMaxGuestVRAM(PRUint32 *aMaxGuestVRAM); \
  NS_IMETHOD GetMinGuestCPUCount(PRUint32 *aMinGuestCPUCount); \
  NS_IMETHOD GetMaxGuestCPUCount(PRUint32 *aMaxGuestCPUCount); \
  NS_IMETHOD GetMaxGuestMonitors(PRUint32 *aMaxGuestMonitors); \
  NS_IMETHOD GetInfoVDSize(PRInt64 *aInfoVDSize); \
  NS_IMETHOD GetSerialPortCount(PRUint32 *aSerialPortCount); \
  NS_IMETHOD GetParallelPortCount(PRUint32 *aParallelPortCount); \
  NS_IMETHOD GetMaxBootPosition(PRUint32 *aMaxBootPosition); \
  NS_IMETHOD GetRawModeSupported(PRBool *aRawModeSupported); \
  NS_IMETHOD GetExclusiveHwVirt(PRBool *aExclusiveHwVirt); \
  NS_IMETHOD SetExclusiveHwVirt(PRBool aExclusiveHwVirt); \
  NS_IMETHOD GetDefaultMachineFolder(PRUnichar * *aDefaultMachineFolder); \
  NS_IMETHOD SetDefaultMachineFolder(const PRUnichar * aDefaultMachineFolder); \
  NS_IMETHOD GetLoggingLevel(PRUnichar * *aLoggingLevel); \
  NS_IMETHOD SetLoggingLevel(const PRUnichar * aLoggingLevel); \
  NS_IMETHOD GetMediumFormats(PRUint32 *mediumFormatsSize, IMediumFormat ***mediumFormats); \
  NS_IMETHOD GetDefaultHardDiskFormat(PRUnichar * *aDefaultHardDiskFormat); \
  NS_IMETHOD SetDefaultHardDiskFormat(const PRUnichar * aDefaultHardDiskFormat); \
  NS_IMETHOD GetFreeDiskSpaceWarning(PRInt64 *aFreeDiskSpaceWarning); \
  NS_IMETHOD SetFreeDiskSpaceWarning(PRInt64 aFreeDiskSpaceWarning); \
  NS_IMETHOD GetFreeDiskSpacePercentWarning(PRUint32 *aFreeDiskSpacePercentWarning); \
  NS_IMETHOD SetFreeDiskSpacePercentWarning(PRUint32 aFreeDiskSpacePercentWarning); \
  NS_IMETHOD GetFreeDiskSpaceError(PRInt64 *aFreeDiskSpaceError); \
  NS_IMETHOD SetFreeDiskSpaceError(PRInt64 aFreeDiskSpaceError); \
  NS_IMETHOD GetFreeDiskSpacePercentError(PRUint32 *aFreeDiskSpacePercentError); \
  NS_IMETHOD SetFreeDiskSpacePercentError(PRUint32 aFreeDiskSpacePercentError); \
  NS_IMETHOD GetVRDEAuthLibrary(PRUnichar * *aVRDEAuthLibrary); \
  NS_IMETHOD SetVRDEAuthLibrary(const PRUnichar * aVRDEAuthLibrary); \
  NS_IMETHOD GetWebServiceAuthLibrary(PRUnichar * *aWebServiceAuthLibrary); \
  NS_IMETHOD SetWebServiceAuthLibrary(const PRUnichar * aWebServiceAuthLibrary); \
  NS_IMETHOD GetDefaultVRDEExtPack(PRUnichar * *aDefaultVRDEExtPack); \
  NS_IMETHOD SetDefaultVRDEExtPack(const PRUnichar * aDefaultVRDEExtPack); \
  NS_IMETHOD GetLogHistoryCount(PRUint32 *aLogHistoryCount); \
  NS_IMETHOD SetLogHistoryCount(PRUint32 aLogHistoryCount); \
  NS_IMETHOD GetDefaultAudioDriver(PRUint32 *aDefaultAudioDriver); \
  NS_IMETHOD GetAutostartDatabasePath(PRUnichar * *aAutostartDatabasePath); \
  NS_IMETHOD SetAutostartDatabasePath(const PRUnichar * aAutostartDatabasePath); \
  NS_IMETHOD GetDefaultAdditionsISO(PRUnichar * *aDefaultAdditionsISO); \
  NS_IMETHOD SetDefaultAdditionsISO(const PRUnichar * aDefaultAdditionsISO); \
  NS_IMETHOD GetDefaultFrontend(PRUnichar * *aDefaultFrontend); \
  NS_IMETHOD SetDefaultFrontend(const PRUnichar * aDefaultFrontend); \
  NS_IMETHOD GetScreenShotFormats(PRUint32 *screenShotFormatsSize, PRUint32 **screenShotFormats); \
  NS_IMETHOD GetInternalAndReservedAttribute1ISystemProperties(PRUint32 *aInternalAndReservedAttribute1ISystemProperties); \
  NS_IMETHOD GetInternalAndReservedAttribute2ISystemProperties(PRUint32 *aInternalAndReservedAttribute2ISystemProperties); \
  NS_IMETHOD GetInternalAndReservedAttribute3ISystemProperties(PRUint32 *aInternalAndReservedAttribute3ISystemProperties); \
  NS_IMETHOD GetInternalAndReservedAttribute4ISystemProperties(PRUint32 *aInternalAndReservedAttribute4ISystemProperties); \
  NS_IMETHOD GetInternalAndReservedAttribute5ISystemProperties(PRUint32 *aInternalAndReservedAttribute5ISystemProperties); \
  NS_IMETHOD GetInternalAndReservedAttribute6ISystemProperties(PRUint32 *aInternalAndReservedAttribute6ISystemProperties); \
  NS_IMETHOD GetInternalAndReservedAttribute7ISystemProperties(PRUint32 *aInternalAndReservedAttribute7ISystemProperties); \
  NS_IMETHOD GetInternalAndReservedAttribute8ISystemProperties(PRUint32 *aInternalAndReservedAttribute8ISystemProperties); \
  NS_IMETHOD GetInternalAndReservedAttribute9ISystemProperties(PRUint32 *aInternalAndReservedAttribute9ISystemProperties); \
  NS_IMETHOD GetInternalAndReservedAttribute10ISystemProperties(PRUint32 *aInternalAndReservedAttribute10ISystemProperties); \
  NS_IMETHOD GetInternalAndReservedAttribute11ISystemProperties(PRUint32 *aInternalAndReservedAttribute11ISystemProperties); \
  NS_IMETHOD GetInternalAndReservedAttribute12ISystemProperties(PRUint32 *aInternalAndReservedAttribute12ISystemProperties); \
  NS_IMETHOD GetInternalAndReservedAttribute13ISystemProperties(PRUint32 *aInternalAndReservedAttribute13ISystemProperties); \
  NS_IMETHOD GetInternalAndReservedAttribute14ISystemProperties(PRUint32 *aInternalAndReservedAttribute14ISystemProperties); \
  NS_IMETHOD GetInternalAndReservedAttribute15ISystemProperties(PRUint32 *aInternalAndReservedAttribute15ISystemProperties); \
  NS_IMETHOD GetInternalAndReservedAttribute16ISystemProperties(PRUint32 *aInternalAndReservedAttribute16ISystemProperties); \
  NS_IMETHOD GetMaxNetworkAdapters(PRUint32 chipset, PRUint32 *maxNetworkAdapters); \
  NS_IMETHOD GetMaxNetworkAdaptersOfType(PRUint32 chipset, PRUint32 type, PRUint32 *maxNetworkAdapters); \
  NS_IMETHOD GetMaxDevicesPerPortForStorageBus(PRUint32 bus, PRUint32 *maxDevicesPerPort); \
  NS_IMETHOD GetMinPortCountForStorageBus(PRUint32 bus, PRUint32 *minPortCount); \
  NS_IMETHOD GetMaxPortCountForStorageBus(PRUint32 bus, PRUint32 *maxPortCount); \
  NS_IMETHOD GetMaxInstancesOfStorageBus(PRUint32 chipset, PRUint32 bus, PRUint32 *maxInstances); \
  NS_IMETHOD GetDeviceTypesForStorageBus(PRUint32 bus, PRUint32 *deviceTypesSize, PRUint32 **deviceTypes); \
  NS_IMETHOD GetDefaultIoCacheSettingForStorageController(PRUint32 controllerType, PRBool *enabled); \
  NS_IMETHOD GetStorageControllerHotplugCapable(PRUint32 controllerType, PRBool *hotplugCapable); \
  NS_IMETHOD GetMaxInstancesOfUSBControllerType(PRUint32 chipset, PRUint32 type, PRUint32 *maxInstances); \
  NS_IMETHOD InternalAndReservedMethod1ISystemProperties(void); \
  NS_IMETHOD InternalAndReservedMethod2ISystemProperties(void); \
  NS_IMETHOD InternalAndReservedMethod3ISystemProperties(void); \
  NS_IMETHOD InternalAndReservedMethod4ISystemProperties(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ISYSTEMPROPERTIES(_to) \
  NS_IMETHOD GetMinGuestRAM(PRUint32 *aMinGuestRAM) { return _to GetMinGuestRAM(aMinGuestRAM); } \
  NS_IMETHOD GetMaxGuestRAM(PRUint32 *aMaxGuestRAM) { return _to GetMaxGuestRAM(aMaxGuestRAM); } \
  NS_IMETHOD GetMinGuestVRAM(PRUint32 *aMinGuestVRAM) { return _to GetMinGuestVRAM(aMinGuestVRAM); } \
  NS_IMETHOD GetMaxGuestVRAM(PRUint32 *aMaxGuestVRAM) { return _to GetMaxGuestVRAM(aMaxGuestVRAM); } \
  NS_IMETHOD GetMinGuestCPUCount(PRUint32 *aMinGuestCPUCount) { return _to GetMinGuestCPUCount(aMinGuestCPUCount); } \
  NS_IMETHOD GetMaxGuestCPUCount(PRUint32 *aMaxGuestCPUCount) { return _to GetMaxGuestCPUCount(aMaxGuestCPUCount); } \
  NS_IMETHOD GetMaxGuestMonitors(PRUint32 *aMaxGuestMonitors) { return _to GetMaxGuestMonitors(aMaxGuestMonitors); } \
  NS_IMETHOD GetInfoVDSize(PRInt64 *aInfoVDSize) { return _to GetInfoVDSize(aInfoVDSize); } \
  NS_IMETHOD GetSerialPortCount(PRUint32 *aSerialPortCount) { return _to GetSerialPortCount(aSerialPortCount); } \
  NS_IMETHOD GetParallelPortCount(PRUint32 *aParallelPortCount) { return _to GetParallelPortCount(aParallelPortCount); } \
  NS_IMETHOD GetMaxBootPosition(PRUint32 *aMaxBootPosition) { return _to GetMaxBootPosition(aMaxBootPosition); } \
  NS_IMETHOD GetRawModeSupported(PRBool *aRawModeSupported) { return _to GetRawModeSupported(aRawModeSupported); } \
  NS_IMETHOD GetExclusiveHwVirt(PRBool *aExclusiveHwVirt) { return _to GetExclusiveHwVirt(aExclusiveHwVirt); } \
  NS_IMETHOD SetExclusiveHwVirt(PRBool aExclusiveHwVirt) { return _to SetExclusiveHwVirt(aExclusiveHwVirt); } \
  NS_IMETHOD GetDefaultMachineFolder(PRUnichar * *aDefaultMachineFolder) { return _to GetDefaultMachineFolder(aDefaultMachineFolder); } \
  NS_IMETHOD SetDefaultMachineFolder(const PRUnichar * aDefaultMachineFolder) { return _to SetDefaultMachineFolder(aDefaultMachineFolder); } \
  NS_IMETHOD GetLoggingLevel(PRUnichar * *aLoggingLevel) { return _to GetLoggingLevel(aLoggingLevel); } \
  NS_IMETHOD SetLoggingLevel(const PRUnichar * aLoggingLevel) { return _to SetLoggingLevel(aLoggingLevel); } \
  NS_IMETHOD GetMediumFormats(PRUint32 *mediumFormatsSize, IMediumFormat ***mediumFormats) { return _to GetMediumFormats(mediumFormatsSize, mediumFormats); } \
  NS_IMETHOD GetDefaultHardDiskFormat(PRUnichar * *aDefaultHardDiskFormat) { return _to GetDefaultHardDiskFormat(aDefaultHardDiskFormat); } \
  NS_IMETHOD SetDefaultHardDiskFormat(const PRUnichar * aDefaultHardDiskFormat) { return _to SetDefaultHardDiskFormat(aDefaultHardDiskFormat); } \
  NS_IMETHOD GetFreeDiskSpaceWarning(PRInt64 *aFreeDiskSpaceWarning) { return _to GetFreeDiskSpaceWarning(aFreeDiskSpaceWarning); } \
  NS_IMETHOD SetFreeDiskSpaceWarning(PRInt64 aFreeDiskSpaceWarning) { return _to SetFreeDiskSpaceWarning(aFreeDiskSpaceWarning); } \
  NS_IMETHOD GetFreeDiskSpacePercentWarning(PRUint32 *aFreeDiskSpacePercentWarning) { return _to GetFreeDiskSpacePercentWarning(aFreeDiskSpacePercentWarning); } \
  NS_IMETHOD SetFreeDiskSpacePercentWarning(PRUint32 aFreeDiskSpacePercentWarning) { return _to SetFreeDiskSpacePercentWarning(aFreeDiskSpacePercentWarning); } \
  NS_IMETHOD GetFreeDiskSpaceError(PRInt64 *aFreeDiskSpaceError) { return _to GetFreeDiskSpaceError(aFreeDiskSpaceError); } \
  NS_IMETHOD SetFreeDiskSpaceError(PRInt64 aFreeDiskSpaceError) { return _to SetFreeDiskSpaceError(aFreeDiskSpaceError); } \
  NS_IMETHOD GetFreeDiskSpacePercentError(PRUint32 *aFreeDiskSpacePercentError) { return _to GetFreeDiskSpacePercentError(aFreeDiskSpacePercentError); } \
  NS_IMETHOD SetFreeDiskSpacePercentError(PRUint32 aFreeDiskSpacePercentError) { return _to SetFreeDiskSpacePercentError(aFreeDiskSpacePercentError); } \
  NS_IMETHOD GetVRDEAuthLibrary(PRUnichar * *aVRDEAuthLibrary) { return _to GetVRDEAuthLibrary(aVRDEAuthLibrary); } \
  NS_IMETHOD SetVRDEAuthLibrary(const PRUnichar * aVRDEAuthLibrary) { return _to SetVRDEAuthLibrary(aVRDEAuthLibrary); } \
  NS_IMETHOD GetWebServiceAuthLibrary(PRUnichar * *aWebServiceAuthLibrary) { return _to GetWebServiceAuthLibrary(aWebServiceAuthLibrary); } \
  NS_IMETHOD SetWebServiceAuthLibrary(const PRUnichar * aWebServiceAuthLibrary) { return _to SetWebServiceAuthLibrary(aWebServiceAuthLibrary); } \
  NS_IMETHOD GetDefaultVRDEExtPack(PRUnichar * *aDefaultVRDEExtPack) { return _to GetDefaultVRDEExtPack(aDefaultVRDEExtPack); } \
  NS_IMETHOD SetDefaultVRDEExtPack(const PRUnichar * aDefaultVRDEExtPack) { return _to SetDefaultVRDEExtPack(aDefaultVRDEExtPack); } \
  NS_IMETHOD GetLogHistoryCount(PRUint32 *aLogHistoryCount) { return _to GetLogHistoryCount(aLogHistoryCount); } \
  NS_IMETHOD SetLogHistoryCount(PRUint32 aLogHistoryCount) { return _to SetLogHistoryCount(aLogHistoryCount); } \
  NS_IMETHOD GetDefaultAudioDriver(PRUint32 *aDefaultAudioDriver) { return _to GetDefaultAudioDriver(aDefaultAudioDriver); } \
  NS_IMETHOD GetAutostartDatabasePath(PRUnichar * *aAutostartDatabasePath) { return _to GetAutostartDatabasePath(aAutostartDatabasePath); } \
  NS_IMETHOD SetAutostartDatabasePath(const PRUnichar * aAutostartDatabasePath) { return _to SetAutostartDatabasePath(aAutostartDatabasePath); } \
  NS_IMETHOD GetDefaultAdditionsISO(PRUnichar * *aDefaultAdditionsISO) { return _to GetDefaultAdditionsISO(aDefaultAdditionsISO); } \
  NS_IMETHOD SetDefaultAdditionsISO(const PRUnichar * aDefaultAdditionsISO) { return _to SetDefaultAdditionsISO(aDefaultAdditionsISO); } \
  NS_IMETHOD GetDefaultFrontend(PRUnichar * *aDefaultFrontend) { return _to GetDefaultFrontend(aDefaultFrontend); } \
  NS_IMETHOD SetDefaultFrontend(const PRUnichar * aDefaultFrontend) { return _to SetDefaultFrontend(aDefaultFrontend); } \
  NS_IMETHOD GetScreenShotFormats(PRUint32 *screenShotFormatsSize, PRUint32 **screenShotFormats) { return _to GetScreenShotFormats(screenShotFormatsSize, screenShotFormats); } \
  NS_IMETHOD GetInternalAndReservedAttribute1ISystemProperties(PRUint32 *aInternalAndReservedAttribute1ISystemProperties) { return _to GetInternalAndReservedAttribute1ISystemProperties(aInternalAndReservedAttribute1ISystemProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute2ISystemProperties(PRUint32 *aInternalAndReservedAttribute2ISystemProperties) { return _to GetInternalAndReservedAttribute2ISystemProperties(aInternalAndReservedAttribute2ISystemProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute3ISystemProperties(PRUint32 *aInternalAndReservedAttribute3ISystemProperties) { return _to GetInternalAndReservedAttribute3ISystemProperties(aInternalAndReservedAttribute3ISystemProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute4ISystemProperties(PRUint32 *aInternalAndReservedAttribute4ISystemProperties) { return _to GetInternalAndReservedAttribute4ISystemProperties(aInternalAndReservedAttribute4ISystemProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute5ISystemProperties(PRUint32 *aInternalAndReservedAttribute5ISystemProperties) { return _to GetInternalAndReservedAttribute5ISystemProperties(aInternalAndReservedAttribute5ISystemProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute6ISystemProperties(PRUint32 *aInternalAndReservedAttribute6ISystemProperties) { return _to GetInternalAndReservedAttribute6ISystemProperties(aInternalAndReservedAttribute6ISystemProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute7ISystemProperties(PRUint32 *aInternalAndReservedAttribute7ISystemProperties) { return _to GetInternalAndReservedAttribute7ISystemProperties(aInternalAndReservedAttribute7ISystemProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute8ISystemProperties(PRUint32 *aInternalAndReservedAttribute8ISystemProperties) { return _to GetInternalAndReservedAttribute8ISystemProperties(aInternalAndReservedAttribute8ISystemProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute9ISystemProperties(PRUint32 *aInternalAndReservedAttribute9ISystemProperties) { return _to GetInternalAndReservedAttribute9ISystemProperties(aInternalAndReservedAttribute9ISystemProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute10ISystemProperties(PRUint32 *aInternalAndReservedAttribute10ISystemProperties) { return _to GetInternalAndReservedAttribute10ISystemProperties(aInternalAndReservedAttribute10ISystemProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute11ISystemProperties(PRUint32 *aInternalAndReservedAttribute11ISystemProperties) { return _to GetInternalAndReservedAttribute11ISystemProperties(aInternalAndReservedAttribute11ISystemProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute12ISystemProperties(PRUint32 *aInternalAndReservedAttribute12ISystemProperties) { return _to GetInternalAndReservedAttribute12ISystemProperties(aInternalAndReservedAttribute12ISystemProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute13ISystemProperties(PRUint32 *aInternalAndReservedAttribute13ISystemProperties) { return _to GetInternalAndReservedAttribute13ISystemProperties(aInternalAndReservedAttribute13ISystemProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute14ISystemProperties(PRUint32 *aInternalAndReservedAttribute14ISystemProperties) { return _to GetInternalAndReservedAttribute14ISystemProperties(aInternalAndReservedAttribute14ISystemProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute15ISystemProperties(PRUint32 *aInternalAndReservedAttribute15ISystemProperties) { return _to GetInternalAndReservedAttribute15ISystemProperties(aInternalAndReservedAttribute15ISystemProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute16ISystemProperties(PRUint32 *aInternalAndReservedAttribute16ISystemProperties) { return _to GetInternalAndReservedAttribute16ISystemProperties(aInternalAndReservedAttribute16ISystemProperties); } \
  NS_IMETHOD GetMaxNetworkAdapters(PRUint32 chipset, PRUint32 *maxNetworkAdapters) { return _to GetMaxNetworkAdapters(chipset, maxNetworkAdapters); } \
  NS_IMETHOD GetMaxNetworkAdaptersOfType(PRUint32 chipset, PRUint32 type, PRUint32 *maxNetworkAdapters) { return _to GetMaxNetworkAdaptersOfType(chipset, type, maxNetworkAdapters); } \
  NS_IMETHOD GetMaxDevicesPerPortForStorageBus(PRUint32 bus, PRUint32 *maxDevicesPerPort) { return _to GetMaxDevicesPerPortForStorageBus(bus, maxDevicesPerPort); } \
  NS_IMETHOD GetMinPortCountForStorageBus(PRUint32 bus, PRUint32 *minPortCount) { return _to GetMinPortCountForStorageBus(bus, minPortCount); } \
  NS_IMETHOD GetMaxPortCountForStorageBus(PRUint32 bus, PRUint32 *maxPortCount) { return _to GetMaxPortCountForStorageBus(bus, maxPortCount); } \
  NS_IMETHOD GetMaxInstancesOfStorageBus(PRUint32 chipset, PRUint32 bus, PRUint32 *maxInstances) { return _to GetMaxInstancesOfStorageBus(chipset, bus, maxInstances); } \
  NS_IMETHOD GetDeviceTypesForStorageBus(PRUint32 bus, PRUint32 *deviceTypesSize, PRUint32 **deviceTypes) { return _to GetDeviceTypesForStorageBus(bus, deviceTypesSize, deviceTypes); } \
  NS_IMETHOD GetDefaultIoCacheSettingForStorageController(PRUint32 controllerType, PRBool *enabled) { return _to GetDefaultIoCacheSettingForStorageController(controllerType, enabled); } \
  NS_IMETHOD GetStorageControllerHotplugCapable(PRUint32 controllerType, PRBool *hotplugCapable) { return _to GetStorageControllerHotplugCapable(controllerType, hotplugCapable); } \
  NS_IMETHOD GetMaxInstancesOfUSBControllerType(PRUint32 chipset, PRUint32 type, PRUint32 *maxInstances) { return _to GetMaxInstancesOfUSBControllerType(chipset, type, maxInstances); } \
  NS_IMETHOD InternalAndReservedMethod1ISystemProperties(void) { return _to InternalAndReservedMethod1ISystemProperties(); } \
  NS_IMETHOD InternalAndReservedMethod2ISystemProperties(void) { return _to InternalAndReservedMethod2ISystemProperties(); } \
  NS_IMETHOD InternalAndReservedMethod3ISystemProperties(void) { return _to InternalAndReservedMethod3ISystemProperties(); } \
  NS_IMETHOD InternalAndReservedMethod4ISystemProperties(void) { return _to InternalAndReservedMethod4ISystemProperties(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ISYSTEMPROPERTIES(_to) \
  NS_IMETHOD GetMinGuestRAM(PRUint32 *aMinGuestRAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMinGuestRAM(aMinGuestRAM); } \
  NS_IMETHOD GetMaxGuestRAM(PRUint32 *aMaxGuestRAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMaxGuestRAM(aMaxGuestRAM); } \
  NS_IMETHOD GetMinGuestVRAM(PRUint32 *aMinGuestVRAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMinGuestVRAM(aMinGuestVRAM); } \
  NS_IMETHOD GetMaxGuestVRAM(PRUint32 *aMaxGuestVRAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMaxGuestVRAM(aMaxGuestVRAM); } \
  NS_IMETHOD GetMinGuestCPUCount(PRUint32 *aMinGuestCPUCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMinGuestCPUCount(aMinGuestCPUCount); } \
  NS_IMETHOD GetMaxGuestCPUCount(PRUint32 *aMaxGuestCPUCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMaxGuestCPUCount(aMaxGuestCPUCount); } \
  NS_IMETHOD GetMaxGuestMonitors(PRUint32 *aMaxGuestMonitors) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMaxGuestMonitors(aMaxGuestMonitors); } \
  NS_IMETHOD GetInfoVDSize(PRInt64 *aInfoVDSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInfoVDSize(aInfoVDSize); } \
  NS_IMETHOD GetSerialPortCount(PRUint32 *aSerialPortCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSerialPortCount(aSerialPortCount); } \
  NS_IMETHOD GetParallelPortCount(PRUint32 *aParallelPortCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetParallelPortCount(aParallelPortCount); } \
  NS_IMETHOD GetMaxBootPosition(PRUint32 *aMaxBootPosition) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMaxBootPosition(aMaxBootPosition); } \
  NS_IMETHOD GetRawModeSupported(PRBool *aRawModeSupported) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRawModeSupported(aRawModeSupported); } \
  NS_IMETHOD GetExclusiveHwVirt(PRBool *aExclusiveHwVirt) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetExclusiveHwVirt(aExclusiveHwVirt); } \
  NS_IMETHOD SetExclusiveHwVirt(PRBool aExclusiveHwVirt) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetExclusiveHwVirt(aExclusiveHwVirt); } \
  NS_IMETHOD GetDefaultMachineFolder(PRUnichar * *aDefaultMachineFolder) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDefaultMachineFolder(aDefaultMachineFolder); } \
  NS_IMETHOD SetDefaultMachineFolder(const PRUnichar * aDefaultMachineFolder) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDefaultMachineFolder(aDefaultMachineFolder); } \
  NS_IMETHOD GetLoggingLevel(PRUnichar * *aLoggingLevel) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLoggingLevel(aLoggingLevel); } \
  NS_IMETHOD SetLoggingLevel(const PRUnichar * aLoggingLevel) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLoggingLevel(aLoggingLevel); } \
  NS_IMETHOD GetMediumFormats(PRUint32 *mediumFormatsSize, IMediumFormat ***mediumFormats) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMediumFormats(mediumFormatsSize, mediumFormats); } \
  NS_IMETHOD GetDefaultHardDiskFormat(PRUnichar * *aDefaultHardDiskFormat) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDefaultHardDiskFormat(aDefaultHardDiskFormat); } \
  NS_IMETHOD SetDefaultHardDiskFormat(const PRUnichar * aDefaultHardDiskFormat) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDefaultHardDiskFormat(aDefaultHardDiskFormat); } \
  NS_IMETHOD GetFreeDiskSpaceWarning(PRInt64 *aFreeDiskSpaceWarning) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFreeDiskSpaceWarning(aFreeDiskSpaceWarning); } \
  NS_IMETHOD SetFreeDiskSpaceWarning(PRInt64 aFreeDiskSpaceWarning) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFreeDiskSpaceWarning(aFreeDiskSpaceWarning); } \
  NS_IMETHOD GetFreeDiskSpacePercentWarning(PRUint32 *aFreeDiskSpacePercentWarning) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFreeDiskSpacePercentWarning(aFreeDiskSpacePercentWarning); } \
  NS_IMETHOD SetFreeDiskSpacePercentWarning(PRUint32 aFreeDiskSpacePercentWarning) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFreeDiskSpacePercentWarning(aFreeDiskSpacePercentWarning); } \
  NS_IMETHOD GetFreeDiskSpaceError(PRInt64 *aFreeDiskSpaceError) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFreeDiskSpaceError(aFreeDiskSpaceError); } \
  NS_IMETHOD SetFreeDiskSpaceError(PRInt64 aFreeDiskSpaceError) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFreeDiskSpaceError(aFreeDiskSpaceError); } \
  NS_IMETHOD GetFreeDiskSpacePercentError(PRUint32 *aFreeDiskSpacePercentError) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFreeDiskSpacePercentError(aFreeDiskSpacePercentError); } \
  NS_IMETHOD SetFreeDiskSpacePercentError(PRUint32 aFreeDiskSpacePercentError) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFreeDiskSpacePercentError(aFreeDiskSpacePercentError); } \
  NS_IMETHOD GetVRDEAuthLibrary(PRUnichar * *aVRDEAuthLibrary) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVRDEAuthLibrary(aVRDEAuthLibrary); } \
  NS_IMETHOD SetVRDEAuthLibrary(const PRUnichar * aVRDEAuthLibrary) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetVRDEAuthLibrary(aVRDEAuthLibrary); } \
  NS_IMETHOD GetWebServiceAuthLibrary(PRUnichar * *aWebServiceAuthLibrary) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetWebServiceAuthLibrary(aWebServiceAuthLibrary); } \
  NS_IMETHOD SetWebServiceAuthLibrary(const PRUnichar * aWebServiceAuthLibrary) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetWebServiceAuthLibrary(aWebServiceAuthLibrary); } \
  NS_IMETHOD GetDefaultVRDEExtPack(PRUnichar * *aDefaultVRDEExtPack) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDefaultVRDEExtPack(aDefaultVRDEExtPack); } \
  NS_IMETHOD SetDefaultVRDEExtPack(const PRUnichar * aDefaultVRDEExtPack) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDefaultVRDEExtPack(aDefaultVRDEExtPack); } \
  NS_IMETHOD GetLogHistoryCount(PRUint32 *aLogHistoryCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLogHistoryCount(aLogHistoryCount); } \
  NS_IMETHOD SetLogHistoryCount(PRUint32 aLogHistoryCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLogHistoryCount(aLogHistoryCount); } \
  NS_IMETHOD GetDefaultAudioDriver(PRUint32 *aDefaultAudioDriver) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDefaultAudioDriver(aDefaultAudioDriver); } \
  NS_IMETHOD GetAutostartDatabasePath(PRUnichar * *aAutostartDatabasePath) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAutostartDatabasePath(aAutostartDatabasePath); } \
  NS_IMETHOD SetAutostartDatabasePath(const PRUnichar * aAutostartDatabasePath) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAutostartDatabasePath(aAutostartDatabasePath); } \
  NS_IMETHOD GetDefaultAdditionsISO(PRUnichar * *aDefaultAdditionsISO) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDefaultAdditionsISO(aDefaultAdditionsISO); } \
  NS_IMETHOD SetDefaultAdditionsISO(const PRUnichar * aDefaultAdditionsISO) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDefaultAdditionsISO(aDefaultAdditionsISO); } \
  NS_IMETHOD GetDefaultFrontend(PRUnichar * *aDefaultFrontend) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDefaultFrontend(aDefaultFrontend); } \
  NS_IMETHOD SetDefaultFrontend(const PRUnichar * aDefaultFrontend) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDefaultFrontend(aDefaultFrontend); } \
  NS_IMETHOD GetScreenShotFormats(PRUint32 *screenShotFormatsSize, PRUint32 **screenShotFormats) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetScreenShotFormats(screenShotFormatsSize, screenShotFormats); } \
  NS_IMETHOD GetInternalAndReservedAttribute1ISystemProperties(PRUint32 *aInternalAndReservedAttribute1ISystemProperties) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1ISystemProperties(aInternalAndReservedAttribute1ISystemProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute2ISystemProperties(PRUint32 *aInternalAndReservedAttribute2ISystemProperties) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2ISystemProperties(aInternalAndReservedAttribute2ISystemProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute3ISystemProperties(PRUint32 *aInternalAndReservedAttribute3ISystemProperties) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3ISystemProperties(aInternalAndReservedAttribute3ISystemProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute4ISystemProperties(PRUint32 *aInternalAndReservedAttribute4ISystemProperties) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4ISystemProperties(aInternalAndReservedAttribute4ISystemProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute5ISystemProperties(PRUint32 *aInternalAndReservedAttribute5ISystemProperties) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5ISystemProperties(aInternalAndReservedAttribute5ISystemProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute6ISystemProperties(PRUint32 *aInternalAndReservedAttribute6ISystemProperties) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6ISystemProperties(aInternalAndReservedAttribute6ISystemProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute7ISystemProperties(PRUint32 *aInternalAndReservedAttribute7ISystemProperties) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7ISystemProperties(aInternalAndReservedAttribute7ISystemProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute8ISystemProperties(PRUint32 *aInternalAndReservedAttribute8ISystemProperties) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8ISystemProperties(aInternalAndReservedAttribute8ISystemProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute9ISystemProperties(PRUint32 *aInternalAndReservedAttribute9ISystemProperties) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute9ISystemProperties(aInternalAndReservedAttribute9ISystemProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute10ISystemProperties(PRUint32 *aInternalAndReservedAttribute10ISystemProperties) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute10ISystemProperties(aInternalAndReservedAttribute10ISystemProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute11ISystemProperties(PRUint32 *aInternalAndReservedAttribute11ISystemProperties) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute11ISystemProperties(aInternalAndReservedAttribute11ISystemProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute12ISystemProperties(PRUint32 *aInternalAndReservedAttribute12ISystemProperties) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute12ISystemProperties(aInternalAndReservedAttribute12ISystemProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute13ISystemProperties(PRUint32 *aInternalAndReservedAttribute13ISystemProperties) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute13ISystemProperties(aInternalAndReservedAttribute13ISystemProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute14ISystemProperties(PRUint32 *aInternalAndReservedAttribute14ISystemProperties) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute14ISystemProperties(aInternalAndReservedAttribute14ISystemProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute15ISystemProperties(PRUint32 *aInternalAndReservedAttribute15ISystemProperties) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute15ISystemProperties(aInternalAndReservedAttribute15ISystemProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute16ISystemProperties(PRUint32 *aInternalAndReservedAttribute16ISystemProperties) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute16ISystemProperties(aInternalAndReservedAttribute16ISystemProperties); } \
  NS_IMETHOD GetMaxNetworkAdapters(PRUint32 chipset, PRUint32 *maxNetworkAdapters) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMaxNetworkAdapters(chipset, maxNetworkAdapters); } \
  NS_IMETHOD GetMaxNetworkAdaptersOfType(PRUint32 chipset, PRUint32 type, PRUint32 *maxNetworkAdapters) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMaxNetworkAdaptersOfType(chipset, type, maxNetworkAdapters); } \
  NS_IMETHOD GetMaxDevicesPerPortForStorageBus(PRUint32 bus, PRUint32 *maxDevicesPerPort) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMaxDevicesPerPortForStorageBus(bus, maxDevicesPerPort); } \
  NS_IMETHOD GetMinPortCountForStorageBus(PRUint32 bus, PRUint32 *minPortCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMinPortCountForStorageBus(bus, minPortCount); } \
  NS_IMETHOD GetMaxPortCountForStorageBus(PRUint32 bus, PRUint32 *maxPortCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMaxPortCountForStorageBus(bus, maxPortCount); } \
  NS_IMETHOD GetMaxInstancesOfStorageBus(PRUint32 chipset, PRUint32 bus, PRUint32 *maxInstances) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMaxInstancesOfStorageBus(chipset, bus, maxInstances); } \
  NS_IMETHOD GetDeviceTypesForStorageBus(PRUint32 bus, PRUint32 *deviceTypesSize, PRUint32 **deviceTypes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDeviceTypesForStorageBus(bus, deviceTypesSize, deviceTypes); } \
  NS_IMETHOD GetDefaultIoCacheSettingForStorageController(PRUint32 controllerType, PRBool *enabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDefaultIoCacheSettingForStorageController(controllerType, enabled); } \
  NS_IMETHOD GetStorageControllerHotplugCapable(PRUint32 controllerType, PRBool *hotplugCapable) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStorageControllerHotplugCapable(controllerType, hotplugCapable); } \
  NS_IMETHOD GetMaxInstancesOfUSBControllerType(PRUint32 chipset, PRUint32 type, PRUint32 *maxInstances) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMaxInstancesOfUSBControllerType(chipset, type, maxInstances); } \
  NS_IMETHOD InternalAndReservedMethod1ISystemProperties(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1ISystemProperties(); } \
  NS_IMETHOD InternalAndReservedMethod2ISystemProperties(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2ISystemProperties(); } \
  NS_IMETHOD InternalAndReservedMethod3ISystemProperties(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3ISystemProperties(); } \
  NS_IMETHOD InternalAndReservedMethod4ISystemProperties(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4ISystemProperties(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public ISystemProperties
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_ISYSTEMPROPERTIES

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, ISystemProperties)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute unsigned long minGuestRAM; */
NS_IMETHODIMP _MYCLASS_::GetMinGuestRAM(PRUint32 *aMinGuestRAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long maxGuestRAM; */
NS_IMETHODIMP _MYCLASS_::GetMaxGuestRAM(PRUint32 *aMaxGuestRAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long minGuestVRAM; */
NS_IMETHODIMP _MYCLASS_::GetMinGuestVRAM(PRUint32 *aMinGuestVRAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long maxGuestVRAM; */
NS_IMETHODIMP _MYCLASS_::GetMaxGuestVRAM(PRUint32 *aMaxGuestVRAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long minGuestCPUCount; */
NS_IMETHODIMP _MYCLASS_::GetMinGuestCPUCount(PRUint32 *aMinGuestCPUCount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long maxGuestCPUCount; */
NS_IMETHODIMP _MYCLASS_::GetMaxGuestCPUCount(PRUint32 *aMaxGuestCPUCount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long maxGuestMonitors; */
NS_IMETHODIMP _MYCLASS_::GetMaxGuestMonitors(PRUint32 *aMaxGuestMonitors)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long long infoVDSize; */
NS_IMETHODIMP _MYCLASS_::GetInfoVDSize(PRInt64 *aInfoVDSize)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long serialPortCount; */
NS_IMETHODIMP _MYCLASS_::GetSerialPortCount(PRUint32 *aSerialPortCount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long parallelPortCount; */
NS_IMETHODIMP _MYCLASS_::GetParallelPortCount(PRUint32 *aParallelPortCount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long maxBootPosition; */
NS_IMETHODIMP _MYCLASS_::GetMaxBootPosition(PRUint32 *aMaxBootPosition)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean rawModeSupported; */
NS_IMETHODIMP _MYCLASS_::GetRawModeSupported(PRBool *aRawModeSupported)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean exclusiveHwVirt; */
NS_IMETHODIMP _MYCLASS_::GetExclusiveHwVirt(PRBool *aExclusiveHwVirt)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetExclusiveHwVirt(PRBool aExclusiveHwVirt)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring defaultMachineFolder; */
NS_IMETHODIMP _MYCLASS_::GetDefaultMachineFolder(PRUnichar * *aDefaultMachineFolder)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetDefaultMachineFolder(const PRUnichar * aDefaultMachineFolder)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring loggingLevel; */
NS_IMETHODIMP _MYCLASS_::GetLoggingLevel(PRUnichar * *aLoggingLevel)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetLoggingLevel(const PRUnichar * aLoggingLevel)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getMediumFormats (out unsigned long mediumFormatsSize, [array, size_is (mediumFormatsSize), retval] out IMediumFormat mediumFormats); */
NS_IMETHODIMP _MYCLASS_::GetMediumFormats(PRUint32 *mediumFormatsSize, IMediumFormat ***mediumFormats)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring defaultHardDiskFormat; */
NS_IMETHODIMP _MYCLASS_::GetDefaultHardDiskFormat(PRUnichar * *aDefaultHardDiskFormat)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetDefaultHardDiskFormat(const PRUnichar * aDefaultHardDiskFormat)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute long long freeDiskSpaceWarning; */
NS_IMETHODIMP _MYCLASS_::GetFreeDiskSpaceWarning(PRInt64 *aFreeDiskSpaceWarning)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetFreeDiskSpaceWarning(PRInt64 aFreeDiskSpaceWarning)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long freeDiskSpacePercentWarning; */
NS_IMETHODIMP _MYCLASS_::GetFreeDiskSpacePercentWarning(PRUint32 *aFreeDiskSpacePercentWarning)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetFreeDiskSpacePercentWarning(PRUint32 aFreeDiskSpacePercentWarning)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute long long freeDiskSpaceError; */
NS_IMETHODIMP _MYCLASS_::GetFreeDiskSpaceError(PRInt64 *aFreeDiskSpaceError)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetFreeDiskSpaceError(PRInt64 aFreeDiskSpaceError)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long freeDiskSpacePercentError; */
NS_IMETHODIMP _MYCLASS_::GetFreeDiskSpacePercentError(PRUint32 *aFreeDiskSpacePercentError)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetFreeDiskSpacePercentError(PRUint32 aFreeDiskSpacePercentError)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring VRDEAuthLibrary; */
NS_IMETHODIMP _MYCLASS_::GetVRDEAuthLibrary(PRUnichar * *aVRDEAuthLibrary)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetVRDEAuthLibrary(const PRUnichar * aVRDEAuthLibrary)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring webServiceAuthLibrary; */
NS_IMETHODIMP _MYCLASS_::GetWebServiceAuthLibrary(PRUnichar * *aWebServiceAuthLibrary)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetWebServiceAuthLibrary(const PRUnichar * aWebServiceAuthLibrary)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring defaultVRDEExtPack; */
NS_IMETHODIMP _MYCLASS_::GetDefaultVRDEExtPack(PRUnichar * *aDefaultVRDEExtPack)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetDefaultVRDEExtPack(const PRUnichar * aDefaultVRDEExtPack)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long logHistoryCount; */
NS_IMETHODIMP _MYCLASS_::GetLogHistoryCount(PRUint32 *aLogHistoryCount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetLogHistoryCount(PRUint32 aLogHistoryCount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 defaultAudioDriver; */
NS_IMETHODIMP _MYCLASS_::GetDefaultAudioDriver(PRUint32 *aDefaultAudioDriver)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring autostartDatabasePath; */
NS_IMETHODIMP _MYCLASS_::GetAutostartDatabasePath(PRUnichar * *aAutostartDatabasePath)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetAutostartDatabasePath(const PRUnichar * aAutostartDatabasePath)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring defaultAdditionsISO; */
NS_IMETHODIMP _MYCLASS_::GetDefaultAdditionsISO(PRUnichar * *aDefaultAdditionsISO)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetDefaultAdditionsISO(const PRUnichar * aDefaultAdditionsISO)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring defaultFrontend; */
NS_IMETHODIMP _MYCLASS_::GetDefaultFrontend(PRUnichar * *aDefaultFrontend)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetDefaultFrontend(const PRUnichar * aDefaultFrontend)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getScreenShotFormats (out unsigned long screenShotFormatsSize, [array, size_is (screenShotFormatsSize), retval] out PRUint32 screenShotFormats); */
NS_IMETHODIMP _MYCLASS_::GetScreenShotFormats(PRUint32 *screenShotFormatsSize, PRUint32 **screenShotFormats)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1ISystemProperties; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1ISystemProperties(PRUint32 *aInternalAndReservedAttribute1ISystemProperties)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2ISystemProperties; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2ISystemProperties(PRUint32 *aInternalAndReservedAttribute2ISystemProperties)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute3ISystemProperties; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute3ISystemProperties(PRUint32 *aInternalAndReservedAttribute3ISystemProperties)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute4ISystemProperties; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute4ISystemProperties(PRUint32 *aInternalAndReservedAttribute4ISystemProperties)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute5ISystemProperties; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute5ISystemProperties(PRUint32 *aInternalAndReservedAttribute5ISystemProperties)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute6ISystemProperties; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute6ISystemProperties(PRUint32 *aInternalAndReservedAttribute6ISystemProperties)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute7ISystemProperties; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute7ISystemProperties(PRUint32 *aInternalAndReservedAttribute7ISystemProperties)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute8ISystemProperties; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute8ISystemProperties(PRUint32 *aInternalAndReservedAttribute8ISystemProperties)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute9ISystemProperties; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute9ISystemProperties(PRUint32 *aInternalAndReservedAttribute9ISystemProperties)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute10ISystemProperties; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute10ISystemProperties(PRUint32 *aInternalAndReservedAttribute10ISystemProperties)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute11ISystemProperties; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute11ISystemProperties(PRUint32 *aInternalAndReservedAttribute11ISystemProperties)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute12ISystemProperties; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute12ISystemProperties(PRUint32 *aInternalAndReservedAttribute12ISystemProperties)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute13ISystemProperties; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute13ISystemProperties(PRUint32 *aInternalAndReservedAttribute13ISystemProperties)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute14ISystemProperties; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute14ISystemProperties(PRUint32 *aInternalAndReservedAttribute14ISystemProperties)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute15ISystemProperties; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute15ISystemProperties(PRUint32 *aInternalAndReservedAttribute15ISystemProperties)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute16ISystemProperties; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute16ISystemProperties(PRUint32 *aInternalAndReservedAttribute16ISystemProperties)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getMaxNetworkAdapters (in PRUint32 chipset, [retval] out unsigned long maxNetworkAdapters); */
NS_IMETHODIMP _MYCLASS_::GetMaxNetworkAdapters(PRUint32 chipset, PRUint32 *maxNetworkAdapters)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getMaxNetworkAdaptersOfType (in PRUint32 chipset, in PRUint32 type, [retval] out unsigned long maxNetworkAdapters); */
NS_IMETHODIMP _MYCLASS_::GetMaxNetworkAdaptersOfType(PRUint32 chipset, PRUint32 type, PRUint32 *maxNetworkAdapters)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getMaxDevicesPerPortForStorageBus (in PRUint32 bus, [retval] out unsigned long maxDevicesPerPort); */
NS_IMETHODIMP _MYCLASS_::GetMaxDevicesPerPortForStorageBus(PRUint32 bus, PRUint32 *maxDevicesPerPort)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getMinPortCountForStorageBus (in PRUint32 bus, [retval] out unsigned long minPortCount); */
NS_IMETHODIMP _MYCLASS_::GetMinPortCountForStorageBus(PRUint32 bus, PRUint32 *minPortCount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getMaxPortCountForStorageBus (in PRUint32 bus, [retval] out unsigned long maxPortCount); */
NS_IMETHODIMP _MYCLASS_::GetMaxPortCountForStorageBus(PRUint32 bus, PRUint32 *maxPortCount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getMaxInstancesOfStorageBus (in PRUint32 chipset, in PRUint32 bus, [retval] out unsigned long maxInstances); */
NS_IMETHODIMP _MYCLASS_::GetMaxInstancesOfStorageBus(PRUint32 chipset, PRUint32 bus, PRUint32 *maxInstances)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getDeviceTypesForStorageBus (in PRUint32 bus, out unsigned long deviceTypesSize, [array, size_is (deviceTypesSize), retval] out PRUint32 deviceTypes); */
NS_IMETHODIMP _MYCLASS_::GetDeviceTypesForStorageBus(PRUint32 bus, PRUint32 *deviceTypesSize, PRUint32 **deviceTypes)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getDefaultIoCacheSettingForStorageController (in PRUint32 controllerType, [retval] out boolean enabled); */
NS_IMETHODIMP _MYCLASS_::GetDefaultIoCacheSettingForStorageController(PRUint32 controllerType, PRBool *enabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getStorageControllerHotplugCapable (in PRUint32 controllerType, [retval] out boolean hotplugCapable); */
NS_IMETHODIMP _MYCLASS_::GetStorageControllerHotplugCapable(PRUint32 controllerType, PRBool *hotplugCapable)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getMaxInstancesOfUSBControllerType (in PRUint32 chipset, in PRUint32 type, [retval] out unsigned long maxInstances); */
NS_IMETHODIMP _MYCLASS_::GetMaxInstancesOfUSBControllerType(PRUint32 chipset, PRUint32 type, PRUint32 *maxInstances)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1ISystemProperties (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1ISystemProperties()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod2ISystemProperties (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod2ISystemProperties()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod3ISystemProperties (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod3ISystemProperties()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod4ISystemProperties (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod4ISystemProperties()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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_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_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;

/* starting interface:    IGuestOSType */
#define IGUESTOSTYPE_IID_STR "03cd409d-20f5-43f9-8de1-4a129620990b"

#define IGUESTOSTYPE_IID \
  {0x03cd409d, 0x20f5, 0x43f9, \
    { 0x8d, 0xe1, 0x4a, 0x12, 0x96, 0x20, 0x99, 0x0b }}

class NS_NO_VTABLE IGuestOSType : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTOSTYPE_IID)

  /* readonly attribute wstring familyId; */
  NS_IMETHOD GetFamilyId(PRUnichar * *aFamilyId) = 0;

  /* readonly attribute wstring familyDescription; */
  NS_IMETHOD GetFamilyDescription(PRUnichar * *aFamilyDescription) = 0;

  /* readonly attribute wstring id; */
  NS_IMETHOD GetId(PRUnichar * *aId) = 0;

  /* readonly attribute wstring description; */
  NS_IMETHOD GetDescription(PRUnichar * *aDescription) = 0;

  /* readonly attribute boolean is64Bit; */
  NS_IMETHOD GetIs64Bit(PRBool *aIs64Bit) = 0;

  /* readonly attribute boolean recommendedIOAPIC; */
  NS_IMETHOD GetRecommendedIOAPIC(PRBool *aRecommendedIOAPIC) = 0;

  /* readonly attribute boolean recommendedVirtEx; */
  NS_IMETHOD GetRecommendedVirtEx(PRBool *aRecommendedVirtEx) = 0;

  /* readonly attribute unsigned long recommendedRAM; */
  NS_IMETHOD GetRecommendedRAM(PRUint32 *aRecommendedRAM) = 0;

  /* readonly attribute unsigned long recommendedVRAM; */
  NS_IMETHOD GetRecommendedVRAM(PRUint32 *aRecommendedVRAM) = 0;

  /* readonly attribute boolean recommended2DVideoAcceleration; */
  NS_IMETHOD GetRecommended2DVideoAcceleration(PRBool *aRecommended2DVideoAcceleration) = 0;

  /* readonly attribute boolean recommended3DAcceleration; */
  NS_IMETHOD GetRecommended3DAcceleration(PRBool *aRecommended3DAcceleration) = 0;

  /* readonly attribute long long recommendedHDD; */
  NS_IMETHOD GetRecommendedHDD(PRInt64 *aRecommendedHDD) = 0;

  /* readonly attribute PRUint32 adapterType; */
  NS_IMETHOD GetAdapterType(PRUint32 *aAdapterType) = 0;

  /* readonly attribute boolean recommendedPAE; */
  NS_IMETHOD GetRecommendedPAE(PRBool *aRecommendedPAE) = 0;

  /* readonly attribute PRUint32 recommendedDVDStorageController; */
  NS_IMETHOD GetRecommendedDVDStorageController(PRUint32 *aRecommendedDVDStorageController) = 0;

  /* readonly attribute PRUint32 recommendedDVDStorageBus; */
  NS_IMETHOD GetRecommendedDVDStorageBus(PRUint32 *aRecommendedDVDStorageBus) = 0;

  /* readonly attribute PRUint32 recommendedHDStorageController; */
  NS_IMETHOD GetRecommendedHDStorageController(PRUint32 *aRecommendedHDStorageController) = 0;

  /* readonly attribute PRUint32 recommendedHDStorageBus; */
  NS_IMETHOD GetRecommendedHDStorageBus(PRUint32 *aRecommendedHDStorageBus) = 0;

  /* readonly attribute PRUint32 recommendedFirmware; */
  NS_IMETHOD GetRecommendedFirmware(PRUint32 *aRecommendedFirmware) = 0;

  /* readonly attribute boolean recommendedUSBHID; */
  NS_IMETHOD GetRecommendedUSBHID(PRBool *aRecommendedUSBHID) = 0;

  /* readonly attribute boolean recommendedHPET; */
  NS_IMETHOD GetRecommendedHPET(PRBool *aRecommendedHPET) = 0;

  /* readonly attribute boolean recommendedUSBTablet; */
  NS_IMETHOD GetRecommendedUSBTablet(PRBool *aRecommendedUSBTablet) = 0;

  /* readonly attribute boolean recommendedRTCUseUTC; */
  NS_IMETHOD GetRecommendedRTCUseUTC(PRBool *aRecommendedRTCUseUTC) = 0;

  /* readonly attribute PRUint32 recommendedChipset; */
  NS_IMETHOD GetRecommendedChipset(PRUint32 *aRecommendedChipset) = 0;

  /* readonly attribute PRUint32 recommendedAudioController; */
  NS_IMETHOD GetRecommendedAudioController(PRUint32 *aRecommendedAudioController) = 0;

  /* readonly attribute PRUint32 recommendedAudioCodec; */
  NS_IMETHOD GetRecommendedAudioCodec(PRUint32 *aRecommendedAudioCodec) = 0;

  /* readonly attribute boolean recommendedFloppy; */
  NS_IMETHOD GetRecommendedFloppy(PRBool *aRecommendedFloppy) = 0;

  /* readonly attribute boolean recommendedUSB; */
  NS_IMETHOD GetRecommendedUSB(PRBool *aRecommendedUSB) = 0;

  /* readonly attribute boolean recommendedUSB3; */
  NS_IMETHOD GetRecommendedUSB3(PRBool *aRecommendedUSB3) = 0;

  /* readonly attribute boolean recommendedTFReset; */
  NS_IMETHOD GetRecommendedTFReset(PRBool *aRecommendedTFReset) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IGuestOSType; */
  NS_IMETHOD GetInternalAndReservedAttribute1IGuestOSType(PRUint32 *aInternalAndReservedAttribute1IGuestOSType) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IGuestOSType; */
  NS_IMETHOD GetInternalAndReservedAttribute2IGuestOSType(PRUint32 *aInternalAndReservedAttribute2IGuestOSType) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IGuestOSType; */
  NS_IMETHOD GetInternalAndReservedAttribute3IGuestOSType(PRUint32 *aInternalAndReservedAttribute3IGuestOSType) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IGuestOSType; */
  NS_IMETHOD GetInternalAndReservedAttribute4IGuestOSType(PRUint32 *aInternalAndReservedAttribute4IGuestOSType) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IGuestOSType; */
  NS_IMETHOD GetInternalAndReservedAttribute5IGuestOSType(PRUint32 *aInternalAndReservedAttribute5IGuestOSType) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IGuestOSType; */
  NS_IMETHOD GetInternalAndReservedAttribute6IGuestOSType(PRUint32 *aInternalAndReservedAttribute6IGuestOSType) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IGuestOSType; */
  NS_IMETHOD GetInternalAndReservedAttribute7IGuestOSType(PRUint32 *aInternalAndReservedAttribute7IGuestOSType) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IGuestOSType; */
  NS_IMETHOD GetInternalAndReservedAttribute8IGuestOSType(PRUint32 *aInternalAndReservedAttribute8IGuestOSType) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute9IGuestOSType; */
  NS_IMETHOD GetInternalAndReservedAttribute9IGuestOSType(PRUint32 *aInternalAndReservedAttribute9IGuestOSType) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute10IGuestOSType; */
  NS_IMETHOD GetInternalAndReservedAttribute10IGuestOSType(PRUint32 *aInternalAndReservedAttribute10IGuestOSType) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute11IGuestOSType; */
  NS_IMETHOD GetInternalAndReservedAttribute11IGuestOSType(PRUint32 *aInternalAndReservedAttribute11IGuestOSType) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute12IGuestOSType; */
  NS_IMETHOD GetInternalAndReservedAttribute12IGuestOSType(PRUint32 *aInternalAndReservedAttribute12IGuestOSType) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute13IGuestOSType; */
  NS_IMETHOD GetInternalAndReservedAttribute13IGuestOSType(PRUint32 *aInternalAndReservedAttribute13IGuestOSType) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute14IGuestOSType; */
  NS_IMETHOD GetInternalAndReservedAttribute14IGuestOSType(PRUint32 *aInternalAndReservedAttribute14IGuestOSType) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute15IGuestOSType; */
  NS_IMETHOD GetInternalAndReservedAttribute15IGuestOSType(PRUint32 *aInternalAndReservedAttribute15IGuestOSType) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTOSTYPE \
  NS_IMETHOD GetFamilyId(PRUnichar * *aFamilyId); \
  NS_IMETHOD GetFamilyDescription(PRUnichar * *aFamilyDescription); \
  NS_IMETHOD GetId(PRUnichar * *aId); \
  NS_IMETHOD GetDescription(PRUnichar * *aDescription); \
  NS_IMETHOD GetIs64Bit(PRBool *aIs64Bit); \
  NS_IMETHOD GetRecommendedIOAPIC(PRBool *aRecommendedIOAPIC); \
  NS_IMETHOD GetRecommendedVirtEx(PRBool *aRecommendedVirtEx); \
  NS_IMETHOD GetRecommendedRAM(PRUint32 *aRecommendedRAM); \
  NS_IMETHOD GetRecommendedVRAM(PRUint32 *aRecommendedVRAM); \
  NS_IMETHOD GetRecommended2DVideoAcceleration(PRBool *aRecommended2DVideoAcceleration); \
  NS_IMETHOD GetRecommended3DAcceleration(PRBool *aRecommended3DAcceleration); \
  NS_IMETHOD GetRecommendedHDD(PRInt64 *aRecommendedHDD); \
  NS_IMETHOD GetAdapterType(PRUint32 *aAdapterType); \
  NS_IMETHOD GetRecommendedPAE(PRBool *aRecommendedPAE); \
  NS_IMETHOD GetRecommendedDVDStorageController(PRUint32 *aRecommendedDVDStorageController); \
  NS_IMETHOD GetRecommendedDVDStorageBus(PRUint32 *aRecommendedDVDStorageBus); \
  NS_IMETHOD GetRecommendedHDStorageController(PRUint32 *aRecommendedHDStorageController); \
  NS_IMETHOD GetRecommendedHDStorageBus(PRUint32 *aRecommendedHDStorageBus); \
  NS_IMETHOD GetRecommendedFirmware(PRUint32 *aRecommendedFirmware); \
  NS_IMETHOD GetRecommendedUSBHID(PRBool *aRecommendedUSBHID); \
  NS_IMETHOD GetRecommendedHPET(PRBool *aRecommendedHPET); \
  NS_IMETHOD GetRecommendedUSBTablet(PRBool *aRecommendedUSBTablet); \
  NS_IMETHOD GetRecommendedRTCUseUTC(PRBool *aRecommendedRTCUseUTC); \
  NS_IMETHOD GetRecommendedChipset(PRUint32 *aRecommendedChipset); \
  NS_IMETHOD GetRecommendedAudioController(PRUint32 *aRecommendedAudioController); \
  NS_IMETHOD GetRecommendedAudioCodec(PRUint32 *aRecommendedAudioCodec); \
  NS_IMETHOD GetRecommendedFloppy(PRBool *aRecommendedFloppy); \
  NS_IMETHOD GetRecommendedUSB(PRBool *aRecommendedUSB); \
  NS_IMETHOD GetRecommendedUSB3(PRBool *aRecommendedUSB3); \
  NS_IMETHOD GetRecommendedTFReset(PRBool *aRecommendedTFReset); \
  NS_IMETHOD GetInternalAndReservedAttribute1IGuestOSType(PRUint32 *aInternalAndReservedAttribute1IGuestOSType); \
  NS_IMETHOD GetInternalAndReservedAttribute2IGuestOSType(PRUint32 *aInternalAndReservedAttribute2IGuestOSType); \
  NS_IMETHOD GetInternalAndReservedAttribute3IGuestOSType(PRUint32 *aInternalAndReservedAttribute3IGuestOSType); \
  NS_IMETHOD GetInternalAndReservedAttribute4IGuestOSType(PRUint32 *aInternalAndReservedAttribute4IGuestOSType); \
  NS_IMETHOD GetInternalAndReservedAttribute5IGuestOSType(PRUint32 *aInternalAndReservedAttribute5IGuestOSType); \
  NS_IMETHOD GetInternalAndReservedAttribute6IGuestOSType(PRUint32 *aInternalAndReservedAttribute6IGuestOSType); \
  NS_IMETHOD GetInternalAndReservedAttribute7IGuestOSType(PRUint32 *aInternalAndReservedAttribute7IGuestOSType); \
  NS_IMETHOD GetInternalAndReservedAttribute8IGuestOSType(PRUint32 *aInternalAndReservedAttribute8IGuestOSType); \
  NS_IMETHOD GetInternalAndReservedAttribute9IGuestOSType(PRUint32 *aInternalAndReservedAttribute9IGuestOSType); \
  NS_IMETHOD GetInternalAndReservedAttribute10IGuestOSType(PRUint32 *aInternalAndReservedAttribute10IGuestOSType); \
  NS_IMETHOD GetInternalAndReservedAttribute11IGuestOSType(PRUint32 *aInternalAndReservedAttribute11IGuestOSType); \
  NS_IMETHOD GetInternalAndReservedAttribute12IGuestOSType(PRUint32 *aInternalAndReservedAttribute12IGuestOSType); \
  NS_IMETHOD GetInternalAndReservedAttribute13IGuestOSType(PRUint32 *aInternalAndReservedAttribute13IGuestOSType); \
  NS_IMETHOD GetInternalAndReservedAttribute14IGuestOSType(PRUint32 *aInternalAndReservedAttribute14IGuestOSType); \
  NS_IMETHOD GetInternalAndReservedAttribute15IGuestOSType(PRUint32 *aInternalAndReservedAttribute15IGuestOSType); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTOSTYPE(_to) \
  NS_IMETHOD GetFamilyId(PRUnichar * *aFamilyId) { return _to GetFamilyId(aFamilyId); } \
  NS_IMETHOD GetFamilyDescription(PRUnichar * *aFamilyDescription) { return _to GetFamilyDescription(aFamilyDescription); } \
  NS_IMETHOD GetId(PRUnichar * *aId) { return _to GetId(aId); } \
  NS_IMETHOD GetDescription(PRUnichar * *aDescription) { return _to GetDescription(aDescription); } \
  NS_IMETHOD GetIs64Bit(PRBool *aIs64Bit) { return _to GetIs64Bit(aIs64Bit); } \
  NS_IMETHOD GetRecommendedIOAPIC(PRBool *aRecommendedIOAPIC) { return _to GetRecommendedIOAPIC(aRecommendedIOAPIC); } \
  NS_IMETHOD GetRecommendedVirtEx(PRBool *aRecommendedVirtEx) { return _to GetRecommendedVirtEx(aRecommendedVirtEx); } \
  NS_IMETHOD GetRecommendedRAM(PRUint32 *aRecommendedRAM) { return _to GetRecommendedRAM(aRecommendedRAM); } \
  NS_IMETHOD GetRecommendedVRAM(PRUint32 *aRecommendedVRAM) { return _to GetRecommendedVRAM(aRecommendedVRAM); } \
  NS_IMETHOD GetRecommended2DVideoAcceleration(PRBool *aRecommended2DVideoAcceleration) { return _to GetRecommended2DVideoAcceleration(aRecommended2DVideoAcceleration); } \
  NS_IMETHOD GetRecommended3DAcceleration(PRBool *aRecommended3DAcceleration) { return _to GetRecommended3DAcceleration(aRecommended3DAcceleration); } \
  NS_IMETHOD GetRecommendedHDD(PRInt64 *aRecommendedHDD) { return _to GetRecommendedHDD(aRecommendedHDD); } \
  NS_IMETHOD GetAdapterType(PRUint32 *aAdapterType) { return _to GetAdapterType(aAdapterType); } \
  NS_IMETHOD GetRecommendedPAE(PRBool *aRecommendedPAE) { return _to GetRecommendedPAE(aRecommendedPAE); } \
  NS_IMETHOD GetRecommendedDVDStorageController(PRUint32 *aRecommendedDVDStorageController) { return _to GetRecommendedDVDStorageController(aRecommendedDVDStorageController); } \
  NS_IMETHOD GetRecommendedDVDStorageBus(PRUint32 *aRecommendedDVDStorageBus) { return _to GetRecommendedDVDStorageBus(aRecommendedDVDStorageBus); } \
  NS_IMETHOD GetRecommendedHDStorageController(PRUint32 *aRecommendedHDStorageController) { return _to GetRecommendedHDStorageController(aRecommendedHDStorageController); } \
  NS_IMETHOD GetRecommendedHDStorageBus(PRUint32 *aRecommendedHDStorageBus) { return _to GetRecommendedHDStorageBus(aRecommendedHDStorageBus); } \
  NS_IMETHOD GetRecommendedFirmware(PRUint32 *aRecommendedFirmware) { return _to GetRecommendedFirmware(aRecommendedFirmware); } \
  NS_IMETHOD GetRecommendedUSBHID(PRBool *aRecommendedUSBHID) { return _to GetRecommendedUSBHID(aRecommendedUSBHID); } \
  NS_IMETHOD GetRecommendedHPET(PRBool *aRecommendedHPET) { return _to GetRecommendedHPET(aRecommendedHPET); } \
  NS_IMETHOD GetRecommendedUSBTablet(PRBool *aRecommendedUSBTablet) { return _to GetRecommendedUSBTablet(aRecommendedUSBTablet); } \
  NS_IMETHOD GetRecommendedRTCUseUTC(PRBool *aRecommendedRTCUseUTC) { return _to GetRecommendedRTCUseUTC(aRecommendedRTCUseUTC); } \
  NS_IMETHOD GetRecommendedChipset(PRUint32 *aRecommendedChipset) { return _to GetRecommendedChipset(aRecommendedChipset); } \
  NS_IMETHOD GetRecommendedAudioController(PRUint32 *aRecommendedAudioController) { return _to GetRecommendedAudioController(aRecommendedAudioController); } \
  NS_IMETHOD GetRecommendedAudioCodec(PRUint32 *aRecommendedAudioCodec) { return _to GetRecommendedAudioCodec(aRecommendedAudioCodec); } \
  NS_IMETHOD GetRecommendedFloppy(PRBool *aRecommendedFloppy) { return _to GetRecommendedFloppy(aRecommendedFloppy); } \
  NS_IMETHOD GetRecommendedUSB(PRBool *aRecommendedUSB) { return _to GetRecommendedUSB(aRecommendedUSB); } \
  NS_IMETHOD GetRecommendedUSB3(PRBool *aRecommendedUSB3) { return _to GetRecommendedUSB3(aRecommendedUSB3); } \
  NS_IMETHOD GetRecommendedTFReset(PRBool *aRecommendedTFReset) { return _to GetRecommendedTFReset(aRecommendedTFReset); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IGuestOSType(PRUint32 *aInternalAndReservedAttribute1IGuestOSType) { return _to GetInternalAndReservedAttribute1IGuestOSType(aInternalAndReservedAttribute1IGuestOSType); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IGuestOSType(PRUint32 *aInternalAndReservedAttribute2IGuestOSType) { return _to GetInternalAndReservedAttribute2IGuestOSType(aInternalAndReservedAttribute2IGuestOSType); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IGuestOSType(PRUint32 *aInternalAndReservedAttribute3IGuestOSType) { return _to GetInternalAndReservedAttribute3IGuestOSType(aInternalAndReservedAttribute3IGuestOSType); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IGuestOSType(PRUint32 *aInternalAndReservedAttribute4IGuestOSType) { return _to GetInternalAndReservedAttribute4IGuestOSType(aInternalAndReservedAttribute4IGuestOSType); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IGuestOSType(PRUint32 *aInternalAndReservedAttribute5IGuestOSType) { return _to GetInternalAndReservedAttribute5IGuestOSType(aInternalAndReservedAttribute5IGuestOSType); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IGuestOSType(PRUint32 *aInternalAndReservedAttribute6IGuestOSType) { return _to GetInternalAndReservedAttribute6IGuestOSType(aInternalAndReservedAttribute6IGuestOSType); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IGuestOSType(PRUint32 *aInternalAndReservedAttribute7IGuestOSType) { return _to GetInternalAndReservedAttribute7IGuestOSType(aInternalAndReservedAttribute7IGuestOSType); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IGuestOSType(PRUint32 *aInternalAndReservedAttribute8IGuestOSType) { return _to GetInternalAndReservedAttribute8IGuestOSType(aInternalAndReservedAttribute8IGuestOSType); } \
  NS_IMETHOD GetInternalAndReservedAttribute9IGuestOSType(PRUint32 *aInternalAndReservedAttribute9IGuestOSType) { return _to GetInternalAndReservedAttribute9IGuestOSType(aInternalAndReservedAttribute9IGuestOSType); } \
  NS_IMETHOD GetInternalAndReservedAttribute10IGuestOSType(PRUint32 *aInternalAndReservedAttribute10IGuestOSType) { return _to GetInternalAndReservedAttribute10IGuestOSType(aInternalAndReservedAttribute10IGuestOSType); } \
  NS_IMETHOD GetInternalAndReservedAttribute11IGuestOSType(PRUint32 *aInternalAndReservedAttribute11IGuestOSType) { return _to GetInternalAndReservedAttribute11IGuestOSType(aInternalAndReservedAttribute11IGuestOSType); } \
  NS_IMETHOD GetInternalAndReservedAttribute12IGuestOSType(PRUint32 *aInternalAndReservedAttribute12IGuestOSType) { return _to GetInternalAndReservedAttribute12IGuestOSType(aInternalAndReservedAttribute12IGuestOSType); } \
  NS_IMETHOD GetInternalAndReservedAttribute13IGuestOSType(PRUint32 *aInternalAndReservedAttribute13IGuestOSType) { return _to GetInternalAndReservedAttribute13IGuestOSType(aInternalAndReservedAttribute13IGuestOSType); } \
  NS_IMETHOD GetInternalAndReservedAttribute14IGuestOSType(PRUint32 *aInternalAndReservedAttribute14IGuestOSType) { return _to GetInternalAndReservedAttribute14IGuestOSType(aInternalAndReservedAttribute14IGuestOSType); } \
  NS_IMETHOD GetInternalAndReservedAttribute15IGuestOSType(PRUint32 *aInternalAndReservedAttribute15IGuestOSType) { return _to GetInternalAndReservedAttribute15IGuestOSType(aInternalAndReservedAttribute15IGuestOSType); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGUESTOSTYPE(_to) \
  NS_IMETHOD GetFamilyId(PRUnichar * *aFamilyId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFamilyId(aFamilyId); } \
  NS_IMETHOD GetFamilyDescription(PRUnichar * *aFamilyDescription) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFamilyDescription(aFamilyDescription); } \
  NS_IMETHOD GetId(PRUnichar * *aId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetId(aId); } \
  NS_IMETHOD GetDescription(PRUnichar * *aDescription) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDescription(aDescription); } \
  NS_IMETHOD GetIs64Bit(PRBool *aIs64Bit) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIs64Bit(aIs64Bit); } \
  NS_IMETHOD GetRecommendedIOAPIC(PRBool *aRecommendedIOAPIC) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecommendedIOAPIC(aRecommendedIOAPIC); } \
  NS_IMETHOD GetRecommendedVirtEx(PRBool *aRecommendedVirtEx) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecommendedVirtEx(aRecommendedVirtEx); } \
  NS_IMETHOD GetRecommendedRAM(PRUint32 *aRecommendedRAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecommendedRAM(aRecommendedRAM); } \
  NS_IMETHOD GetRecommendedVRAM(PRUint32 *aRecommendedVRAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecommendedVRAM(aRecommendedVRAM); } \
  NS_IMETHOD GetRecommended2DVideoAcceleration(PRBool *aRecommended2DVideoAcceleration) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecommended2DVideoAcceleration(aRecommended2DVideoAcceleration); } \
  NS_IMETHOD GetRecommended3DAcceleration(PRBool *aRecommended3DAcceleration) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecommended3DAcceleration(aRecommended3DAcceleration); } \
  NS_IMETHOD GetRecommendedHDD(PRInt64 *aRecommendedHDD) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecommendedHDD(aRecommendedHDD); } \
  NS_IMETHOD GetAdapterType(PRUint32 *aAdapterType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAdapterType(aAdapterType); } \
  NS_IMETHOD GetRecommendedPAE(PRBool *aRecommendedPAE) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecommendedPAE(aRecommendedPAE); } \
  NS_IMETHOD GetRecommendedDVDStorageController(PRUint32 *aRecommendedDVDStorageController) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecommendedDVDStorageController(aRecommendedDVDStorageController); } \
  NS_IMETHOD GetRecommendedDVDStorageBus(PRUint32 *aRecommendedDVDStorageBus) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecommendedDVDStorageBus(aRecommendedDVDStorageBus); } \
  NS_IMETHOD GetRecommendedHDStorageController(PRUint32 *aRecommendedHDStorageController) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecommendedHDStorageController(aRecommendedHDStorageController); } \
  NS_IMETHOD GetRecommendedHDStorageBus(PRUint32 *aRecommendedHDStorageBus) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecommendedHDStorageBus(aRecommendedHDStorageBus); } \
  NS_IMETHOD GetRecommendedFirmware(PRUint32 *aRecommendedFirmware) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecommendedFirmware(aRecommendedFirmware); } \
  NS_IMETHOD GetRecommendedUSBHID(PRBool *aRecommendedUSBHID) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecommendedUSBHID(aRecommendedUSBHID); } \
  NS_IMETHOD GetRecommendedHPET(PRBool *aRecommendedHPET) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecommendedHPET(aRecommendedHPET); } \
  NS_IMETHOD GetRecommendedUSBTablet(PRBool *aRecommendedUSBTablet) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecommendedUSBTablet(aRecommendedUSBTablet); } \
  NS_IMETHOD GetRecommendedRTCUseUTC(PRBool *aRecommendedRTCUseUTC) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecommendedRTCUseUTC(aRecommendedRTCUseUTC); } \
  NS_IMETHOD GetRecommendedChipset(PRUint32 *aRecommendedChipset) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecommendedChipset(aRecommendedChipset); } \
  NS_IMETHOD GetRecommendedAudioController(PRUint32 *aRecommendedAudioController) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecommendedAudioController(aRecommendedAudioController); } \
  NS_IMETHOD GetRecommendedAudioCodec(PRUint32 *aRecommendedAudioCodec) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecommendedAudioCodec(aRecommendedAudioCodec); } \
  NS_IMETHOD GetRecommendedFloppy(PRBool *aRecommendedFloppy) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecommendedFloppy(aRecommendedFloppy); } \
  NS_IMETHOD GetRecommendedUSB(PRBool *aRecommendedUSB) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecommendedUSB(aRecommendedUSB); } \
  NS_IMETHOD GetRecommendedUSB3(PRBool *aRecommendedUSB3) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecommendedUSB3(aRecommendedUSB3); } \
  NS_IMETHOD GetRecommendedTFReset(PRBool *aRecommendedTFReset) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecommendedTFReset(aRecommendedTFReset); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IGuestOSType(PRUint32 *aInternalAndReservedAttribute1IGuestOSType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IGuestOSType(aInternalAndReservedAttribute1IGuestOSType); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IGuestOSType(PRUint32 *aInternalAndReservedAttribute2IGuestOSType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IGuestOSType(aInternalAndReservedAttribute2IGuestOSType); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IGuestOSType(PRUint32 *aInternalAndReservedAttribute3IGuestOSType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IGuestOSType(aInternalAndReservedAttribute3IGuestOSType); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IGuestOSType(PRUint32 *aInternalAndReservedAttribute4IGuestOSType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IGuestOSType(aInternalAndReservedAttribute4IGuestOSType); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IGuestOSType(PRUint32 *aInternalAndReservedAttribute5IGuestOSType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IGuestOSType(aInternalAndReservedAttribute5IGuestOSType); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IGuestOSType(PRUint32 *aInternalAndReservedAttribute6IGuestOSType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IGuestOSType(aInternalAndReservedAttribute6IGuestOSType); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IGuestOSType(PRUint32 *aInternalAndReservedAttribute7IGuestOSType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IGuestOSType(aInternalAndReservedAttribute7IGuestOSType); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IGuestOSType(PRUint32 *aInternalAndReservedAttribute8IGuestOSType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IGuestOSType(aInternalAndReservedAttribute8IGuestOSType); } \
  NS_IMETHOD GetInternalAndReservedAttribute9IGuestOSType(PRUint32 *aInternalAndReservedAttribute9IGuestOSType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute9IGuestOSType(aInternalAndReservedAttribute9IGuestOSType); } \
  NS_IMETHOD GetInternalAndReservedAttribute10IGuestOSType(PRUint32 *aInternalAndReservedAttribute10IGuestOSType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute10IGuestOSType(aInternalAndReservedAttribute10IGuestOSType); } \
  NS_IMETHOD GetInternalAndReservedAttribute11IGuestOSType(PRUint32 *aInternalAndReservedAttribute11IGuestOSType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute11IGuestOSType(aInternalAndReservedAttribute11IGuestOSType); } \
  NS_IMETHOD GetInternalAndReservedAttribute12IGuestOSType(PRUint32 *aInternalAndReservedAttribute12IGuestOSType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute12IGuestOSType(aInternalAndReservedAttribute12IGuestOSType); } \
  NS_IMETHOD GetInternalAndReservedAttribute13IGuestOSType(PRUint32 *aInternalAndReservedAttribute13IGuestOSType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute13IGuestOSType(aInternalAndReservedAttribute13IGuestOSType); } \
  NS_IMETHOD GetInternalAndReservedAttribute14IGuestOSType(PRUint32 *aInternalAndReservedAttribute14IGuestOSType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute14IGuestOSType(aInternalAndReservedAttribute14IGuestOSType); } \
  NS_IMETHOD GetInternalAndReservedAttribute15IGuestOSType(PRUint32 *aInternalAndReservedAttribute15IGuestOSType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute15IGuestOSType(aInternalAndReservedAttribute15IGuestOSType); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IGuestOSType
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IGUESTOSTYPE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IGuestOSType)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute wstring familyId; */
NS_IMETHODIMP _MYCLASS_::GetFamilyId(PRUnichar * *aFamilyId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring familyDescription; */
NS_IMETHODIMP _MYCLASS_::GetFamilyDescription(PRUnichar * *aFamilyDescription)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring id; */
NS_IMETHODIMP _MYCLASS_::GetId(PRUnichar * *aId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring description; */
NS_IMETHODIMP _MYCLASS_::GetDescription(PRUnichar * *aDescription)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean is64Bit; */
NS_IMETHODIMP _MYCLASS_::GetIs64Bit(PRBool *aIs64Bit)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean recommendedIOAPIC; */
NS_IMETHODIMP _MYCLASS_::GetRecommendedIOAPIC(PRBool *aRecommendedIOAPIC)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean recommendedVirtEx; */
NS_IMETHODIMP _MYCLASS_::GetRecommendedVirtEx(PRBool *aRecommendedVirtEx)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long recommendedRAM; */
NS_IMETHODIMP _MYCLASS_::GetRecommendedRAM(PRUint32 *aRecommendedRAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long recommendedVRAM; */
NS_IMETHODIMP _MYCLASS_::GetRecommendedVRAM(PRUint32 *aRecommendedVRAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean recommended2DVideoAcceleration; */
NS_IMETHODIMP _MYCLASS_::GetRecommended2DVideoAcceleration(PRBool *aRecommended2DVideoAcceleration)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean recommended3DAcceleration; */
NS_IMETHODIMP _MYCLASS_::GetRecommended3DAcceleration(PRBool *aRecommended3DAcceleration)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long long recommendedHDD; */
NS_IMETHODIMP _MYCLASS_::GetRecommendedHDD(PRInt64 *aRecommendedHDD)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 adapterType; */
NS_IMETHODIMP _MYCLASS_::GetAdapterType(PRUint32 *aAdapterType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean recommendedPAE; */
NS_IMETHODIMP _MYCLASS_::GetRecommendedPAE(PRBool *aRecommendedPAE)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 recommendedDVDStorageController; */
NS_IMETHODIMP _MYCLASS_::GetRecommendedDVDStorageController(PRUint32 *aRecommendedDVDStorageController)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 recommendedDVDStorageBus; */
NS_IMETHODIMP _MYCLASS_::GetRecommendedDVDStorageBus(PRUint32 *aRecommendedDVDStorageBus)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 recommendedHDStorageController; */
NS_IMETHODIMP _MYCLASS_::GetRecommendedHDStorageController(PRUint32 *aRecommendedHDStorageController)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 recommendedHDStorageBus; */
NS_IMETHODIMP _MYCLASS_::GetRecommendedHDStorageBus(PRUint32 *aRecommendedHDStorageBus)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 recommendedFirmware; */
NS_IMETHODIMP _MYCLASS_::GetRecommendedFirmware(PRUint32 *aRecommendedFirmware)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean recommendedUSBHID; */
NS_IMETHODIMP _MYCLASS_::GetRecommendedUSBHID(PRBool *aRecommendedUSBHID)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean recommendedHPET; */
NS_IMETHODIMP _MYCLASS_::GetRecommendedHPET(PRBool *aRecommendedHPET)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean recommendedUSBTablet; */
NS_IMETHODIMP _MYCLASS_::GetRecommendedUSBTablet(PRBool *aRecommendedUSBTablet)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean recommendedRTCUseUTC; */
NS_IMETHODIMP _MYCLASS_::GetRecommendedRTCUseUTC(PRBool *aRecommendedRTCUseUTC)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 recommendedChipset; */
NS_IMETHODIMP _MYCLASS_::GetRecommendedChipset(PRUint32 *aRecommendedChipset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 recommendedAudioController; */
NS_IMETHODIMP _MYCLASS_::GetRecommendedAudioController(PRUint32 *aRecommendedAudioController)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 recommendedAudioCodec; */
NS_IMETHODIMP _MYCLASS_::GetRecommendedAudioCodec(PRUint32 *aRecommendedAudioCodec)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean recommendedFloppy; */
NS_IMETHODIMP _MYCLASS_::GetRecommendedFloppy(PRBool *aRecommendedFloppy)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean recommendedUSB; */
NS_IMETHODIMP _MYCLASS_::GetRecommendedUSB(PRBool *aRecommendedUSB)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean recommendedUSB3; */
NS_IMETHODIMP _MYCLASS_::GetRecommendedUSB3(PRBool *aRecommendedUSB3)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean recommendedTFReset; */
NS_IMETHODIMP _MYCLASS_::GetRecommendedTFReset(PRBool *aRecommendedTFReset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IGuestOSType; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IGuestOSType(PRUint32 *aInternalAndReservedAttribute1IGuestOSType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IGuestOSType; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IGuestOSType(PRUint32 *aInternalAndReservedAttribute2IGuestOSType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute3IGuestOSType; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute3IGuestOSType(PRUint32 *aInternalAndReservedAttribute3IGuestOSType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute4IGuestOSType; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute4IGuestOSType(PRUint32 *aInternalAndReservedAttribute4IGuestOSType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute5IGuestOSType; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute5IGuestOSType(PRUint32 *aInternalAndReservedAttribute5IGuestOSType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute6IGuestOSType; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute6IGuestOSType(PRUint32 *aInternalAndReservedAttribute6IGuestOSType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute7IGuestOSType; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute7IGuestOSType(PRUint32 *aInternalAndReservedAttribute7IGuestOSType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute8IGuestOSType; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute8IGuestOSType(PRUint32 *aInternalAndReservedAttribute8IGuestOSType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute9IGuestOSType; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute9IGuestOSType(PRUint32 *aInternalAndReservedAttribute9IGuestOSType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute10IGuestOSType; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute10IGuestOSType(PRUint32 *aInternalAndReservedAttribute10IGuestOSType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute11IGuestOSType; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute11IGuestOSType(PRUint32 *aInternalAndReservedAttribute11IGuestOSType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute12IGuestOSType; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute12IGuestOSType(PRUint32 *aInternalAndReservedAttribute12IGuestOSType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute13IGuestOSType; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute13IGuestOSType(PRUint32 *aInternalAndReservedAttribute13IGuestOSType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute14IGuestOSType; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute14IGuestOSType(PRUint32 *aInternalAndReservedAttribute14IGuestOSType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute15IGuestOSType; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute15IGuestOSType(PRUint32 *aInternalAndReservedAttribute15IGuestOSType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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_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_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;

/* starting interface:    IAdditionsFacility */
#define IADDITIONSFACILITY_IID_STR "f2f7fae4-4a06-81fc-a916-78b2da1fa0e5"

#define IADDITIONSFACILITY_IID \
  {0xf2f7fae4, 0x4a06, 0x81fc, \
    { 0xa9, 0x16, 0x78, 0xb2, 0xda, 0x1f, 0xa0, 0xe5 }}

class NS_NO_VTABLE IAdditionsFacility : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IADDITIONSFACILITY_IID)

  /* readonly attribute PRUint32 classType; */
  NS_IMETHOD GetClassType(PRUint32 *aClassType) = 0;

  /* readonly attribute long long lastUpdated; */
  NS_IMETHOD GetLastUpdated(PRInt64 *aLastUpdated) = 0;

  /* readonly attribute wstring name; */
  NS_IMETHOD GetName(PRUnichar * *aName) = 0;

  /* readonly attribute PRUint32 status; */
  NS_IMETHOD GetStatus(PRUint32 *aStatus) = 0;

  /* readonly attribute PRUint32 type; */
  NS_IMETHOD GetType(PRUint32 *aType) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IAdditionsFacility; */
  NS_IMETHOD GetInternalAndReservedAttribute1IAdditionsFacility(PRUint32 *aInternalAndReservedAttribute1IAdditionsFacility) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IAdditionsFacility; */
  NS_IMETHOD GetInternalAndReservedAttribute2IAdditionsFacility(PRUint32 *aInternalAndReservedAttribute2IAdditionsFacility) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IADDITIONSFACILITY \
  NS_IMETHOD GetClassType(PRUint32 *aClassType); \
  NS_IMETHOD GetLastUpdated(PRInt64 *aLastUpdated); \
  NS_IMETHOD GetName(PRUnichar * *aName); \
  NS_IMETHOD GetStatus(PRUint32 *aStatus); \
  NS_IMETHOD GetType(PRUint32 *aType); \
  NS_IMETHOD GetInternalAndReservedAttribute1IAdditionsFacility(PRUint32 *aInternalAndReservedAttribute1IAdditionsFacility); \
  NS_IMETHOD GetInternalAndReservedAttribute2IAdditionsFacility(PRUint32 *aInternalAndReservedAttribute2IAdditionsFacility); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IADDITIONSFACILITY(_to) \
  NS_IMETHOD GetClassType(PRUint32 *aClassType) { return _to GetClassType(aClassType); } \
  NS_IMETHOD GetLastUpdated(PRInt64 *aLastUpdated) { return _to GetLastUpdated(aLastUpdated); } \
  NS_IMETHOD GetName(PRUnichar * *aName) { return _to GetName(aName); } \
  NS_IMETHOD GetStatus(PRUint32 *aStatus) { return _to GetStatus(aStatus); } \
  NS_IMETHOD GetType(PRUint32 *aType) { return _to GetType(aType); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IAdditionsFacility(PRUint32 *aInternalAndReservedAttribute1IAdditionsFacility) { return _to GetInternalAndReservedAttribute1IAdditionsFacility(aInternalAndReservedAttribute1IAdditionsFacility); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IAdditionsFacility(PRUint32 *aInternalAndReservedAttribute2IAdditionsFacility) { return _to GetInternalAndReservedAttribute2IAdditionsFacility(aInternalAndReservedAttribute2IAdditionsFacility); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IADDITIONSFACILITY(_to) \
  NS_IMETHOD GetClassType(PRUint32 *aClassType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetClassType(aClassType); } \
  NS_IMETHOD GetLastUpdated(PRInt64 *aLastUpdated) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLastUpdated(aLastUpdated); } \
  NS_IMETHOD GetName(PRUnichar * *aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
  NS_IMETHOD GetStatus(PRUint32 *aStatus) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStatus(aStatus); } \
  NS_IMETHOD GetType(PRUint32 *aType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetType(aType); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IAdditionsFacility(PRUint32 *aInternalAndReservedAttribute1IAdditionsFacility) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IAdditionsFacility(aInternalAndReservedAttribute1IAdditionsFacility); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IAdditionsFacility(PRUint32 *aInternalAndReservedAttribute2IAdditionsFacility) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IAdditionsFacility(aInternalAndReservedAttribute2IAdditionsFacility); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IAdditionsFacility
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IADDITIONSFACILITY

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IAdditionsFacility)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute PRUint32 classType; */
NS_IMETHODIMP _MYCLASS_::GetClassType(PRUint32 *aClassType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long long lastUpdated; */
NS_IMETHODIMP _MYCLASS_::GetLastUpdated(PRInt64 *aLastUpdated)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring name; */
NS_IMETHODIMP _MYCLASS_::GetName(PRUnichar * *aName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 status; */
NS_IMETHODIMP _MYCLASS_::GetStatus(PRUint32 *aStatus)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 type; */
NS_IMETHODIMP _MYCLASS_::GetType(PRUint32 *aType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IAdditionsFacility; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IAdditionsFacility(PRUint32 *aInternalAndReservedAttribute1IAdditionsFacility)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IAdditionsFacility; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IAdditionsFacility(PRUint32 *aInternalAndReservedAttribute2IAdditionsFacility)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IDnDBase */
#define IDNDBASE_IID_STR "4132147b-42f8-cd96-7570-6a8800e3342c"

#define IDNDBASE_IID \
  {0x4132147b, 0x42f8, 0xcd96, \
    { 0x75, 0x70, 0x6a, 0x88, 0x00, 0xe3, 0x34, 0x2c }}

class NS_NO_VTABLE IDnDBase : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IDNDBASE_IID)

  /* void getFormats (out unsigned long formatsSize, [array, size_is (formatsSize), retval] out wstring formats); */
  NS_IMETHOD GetFormats(PRUint32 *formatsSize, PRUnichar ***formats) = 0;

  /* readonly attribute unsigned long protocolVersion; */
  NS_IMETHOD GetProtocolVersion(PRUint32 *aProtocolVersion) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IDnDBase; */
  NS_IMETHOD GetInternalAndReservedAttribute1IDnDBase(PRUint32 *aInternalAndReservedAttribute1IDnDBase) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IDnDBase; */
  NS_IMETHOD GetInternalAndReservedAttribute2IDnDBase(PRUint32 *aInternalAndReservedAttribute2IDnDBase) = 0;

  /* void isFormatSupported (in wstring format, [retval] out boolean supported); */
  NS_IMETHOD IsFormatSupported(const PRUnichar *format, PRBool *supported) = 0;

  /* void addFormats (in unsigned long formatsSize, [array, size_is (formatsSize)] in wstring formats); */
  NS_IMETHOD AddFormats(PRUint32 formatsSize, const PRUnichar **formats) = 0;

  /* void removeFormats (in unsigned long formatsSize, [array, size_is (formatsSize)] in wstring formats); */
  NS_IMETHOD RemoveFormats(PRUint32 formatsSize, const PRUnichar **formats) = 0;

  /* void InternalAndReservedMethod1IDnDBase (); */
  NS_IMETHOD InternalAndReservedMethod1IDnDBase(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IDNDBASE \
  NS_IMETHOD GetFormats(PRUint32 *formatsSize, PRUnichar ***formats); \
  NS_IMETHOD GetProtocolVersion(PRUint32 *aProtocolVersion); \
  NS_IMETHOD GetInternalAndReservedAttribute1IDnDBase(PRUint32 *aInternalAndReservedAttribute1IDnDBase); \
  NS_IMETHOD GetInternalAndReservedAttribute2IDnDBase(PRUint32 *aInternalAndReservedAttribute2IDnDBase); \
  NS_IMETHOD IsFormatSupported(const PRUnichar *format, PRBool *supported); \
  NS_IMETHOD AddFormats(PRUint32 formatsSize, const PRUnichar **formats); \
  NS_IMETHOD RemoveFormats(PRUint32 formatsSize, const PRUnichar **formats); \
  NS_IMETHOD InternalAndReservedMethod1IDnDBase(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IDNDBASE(_to) \
  NS_IMETHOD GetFormats(PRUint32 *formatsSize, PRUnichar ***formats) { return _to GetFormats(formatsSize, formats); } \
  NS_IMETHOD GetProtocolVersion(PRUint32 *aProtocolVersion) { return _to GetProtocolVersion(aProtocolVersion); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IDnDBase(PRUint32 *aInternalAndReservedAttribute1IDnDBase) { return _to GetInternalAndReservedAttribute1IDnDBase(aInternalAndReservedAttribute1IDnDBase); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IDnDBase(PRUint32 *aInternalAndReservedAttribute2IDnDBase) { return _to GetInternalAndReservedAttribute2IDnDBase(aInternalAndReservedAttribute2IDnDBase); } \
  NS_IMETHOD IsFormatSupported(const PRUnichar *format, PRBool *supported) { return _to IsFormatSupported(format, supported); } \
  NS_IMETHOD AddFormats(PRUint32 formatsSize, const PRUnichar **formats) { return _to AddFormats(formatsSize, formats); } \
  NS_IMETHOD RemoveFormats(PRUint32 formatsSize, const PRUnichar **formats) { return _to RemoveFormats(formatsSize, formats); } \
  NS_IMETHOD InternalAndReservedMethod1IDnDBase(void) { return _to InternalAndReservedMethod1IDnDBase(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IDNDBASE(_to) \
  NS_IMETHOD GetFormats(PRUint32 *formatsSize, PRUnichar ***formats) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFormats(formatsSize, formats); } \
  NS_IMETHOD GetProtocolVersion(PRUint32 *aProtocolVersion) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProtocolVersion(aProtocolVersion); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IDnDBase(PRUint32 *aInternalAndReservedAttribute1IDnDBase) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IDnDBase(aInternalAndReservedAttribute1IDnDBase); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IDnDBase(PRUint32 *aInternalAndReservedAttribute2IDnDBase) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IDnDBase(aInternalAndReservedAttribute2IDnDBase); } \
  NS_IMETHOD IsFormatSupported(const PRUnichar *format, PRBool *supported) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsFormatSupported(format, supported); } \
  NS_IMETHOD AddFormats(PRUint32 formatsSize, const PRUnichar **formats) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddFormats(formatsSize, formats); } \
  NS_IMETHOD RemoveFormats(PRUint32 formatsSize, const PRUnichar **formats) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveFormats(formatsSize, formats); } \
  NS_IMETHOD InternalAndReservedMethod1IDnDBase(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IDnDBase(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IDnDBase
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IDNDBASE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IDnDBase)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* void getFormats (out unsigned long formatsSize, [array, size_is (formatsSize), retval] out wstring formats); */
NS_IMETHODIMP _MYCLASS_::GetFormats(PRUint32 *formatsSize, PRUnichar ***formats)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long protocolVersion; */
NS_IMETHODIMP _MYCLASS_::GetProtocolVersion(PRUint32 *aProtocolVersion)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IDnDBase; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IDnDBase(PRUint32 *aInternalAndReservedAttribute1IDnDBase)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IDnDBase; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IDnDBase(PRUint32 *aInternalAndReservedAttribute2IDnDBase)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void isFormatSupported (in wstring format, [retval] out boolean supported); */
NS_IMETHODIMP _MYCLASS_::IsFormatSupported(const PRUnichar *format, PRBool *supported)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addFormats (in unsigned long formatsSize, [array, size_is (formatsSize)] in wstring formats); */
NS_IMETHODIMP _MYCLASS_::AddFormats(PRUint32 formatsSize, const PRUnichar **formats)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeFormats (in unsigned long formatsSize, [array, size_is (formatsSize)] in wstring formats); */
NS_IMETHODIMP _MYCLASS_::RemoveFormats(PRUint32 formatsSize, const PRUnichar **formats)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1IDnDBase (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1IDnDBase()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IDnDSource */
#define IDNDSOURCE_IID_STR "d23a9ca3-42da-c94b-8aec-21968e08355d"

#define IDNDSOURCE_IID \
  {0xd23a9ca3, 0x42da, 0xc94b, \
    { 0x8a, 0xec, 0x21, 0x96, 0x8e, 0x08, 0x35, 0x5d }}

class NS_NO_VTABLE IDnDSource : public IDnDBase {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IDNDSOURCE_IID)

  /* readonly attribute unsigned long InternalAndReservedAttribute1IDnDSource; */
  NS_IMETHOD GetInternalAndReservedAttribute1IDnDSource(PRUint32 *aInternalAndReservedAttribute1IDnDSource) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IDnDSource; */
  NS_IMETHOD GetInternalAndReservedAttribute2IDnDSource(PRUint32 *aInternalAndReservedAttribute2IDnDSource) = 0;

  /* 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 PRUint32 allowedActions, [retval] out PRUint32 defaultAction); */
  NS_IMETHOD DragIsPending(PRUint32 screenId, PRUint32 *formatsSize, PRUnichar ***formats, PRUint32 *allowedActionsSize, PRUint32 **allowedActions, PRUint32 *defaultAction) = 0;

  /* void drop (in wstring format, in PRUint32 action, [retval] out IProgress progress); */
  NS_IMETHOD Drop(const PRUnichar *format, PRUint32 action, IProgress **progress) = 0;

  /* void receiveData (out unsigned long dataSize, [array, size_is (dataSize), retval] out octet data); */
  NS_IMETHOD ReceiveData(PRUint32 *dataSize, PRUint8 **data) = 0;

  /* void InternalAndReservedMethod1IDnDSource (); */
  NS_IMETHOD InternalAndReservedMethod1IDnDSource(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IDNDSOURCE \
  NS_IMETHOD GetInternalAndReservedAttribute1IDnDSource(PRUint32 *aInternalAndReservedAttribute1IDnDSource); \
  NS_IMETHOD GetInternalAndReservedAttribute2IDnDSource(PRUint32 *aInternalAndReservedAttribute2IDnDSource); \
  NS_IMETHOD DragIsPending(PRUint32 screenId, PRUint32 *formatsSize, PRUnichar ***formats, PRUint32 *allowedActionsSize, PRUint32 **allowedActions, PRUint32 *defaultAction); \
  NS_IMETHOD Drop(const PRUnichar *format, PRUint32 action, IProgress **progress); \
  NS_IMETHOD ReceiveData(PRUint32 *dataSize, PRUint8 **data); \
  NS_IMETHOD InternalAndReservedMethod1IDnDSource(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IDNDSOURCE(_to) \
  NS_IMETHOD GetInternalAndReservedAttribute1IDnDSource(PRUint32 *aInternalAndReservedAttribute1IDnDSource) { return _to GetInternalAndReservedAttribute1IDnDSource(aInternalAndReservedAttribute1IDnDSource); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IDnDSource(PRUint32 *aInternalAndReservedAttribute2IDnDSource) { return _to GetInternalAndReservedAttribute2IDnDSource(aInternalAndReservedAttribute2IDnDSource); } \
  NS_IMETHOD DragIsPending(PRUint32 screenId, PRUint32 *formatsSize, PRUnichar ***formats, PRUint32 *allowedActionsSize, PRUint32 **allowedActions, PRUint32 *defaultAction) { return _to DragIsPending(screenId, formatsSize, formats, allowedActionsSize, allowedActions, defaultAction); } \
  NS_IMETHOD Drop(const PRUnichar *format, PRUint32 action, IProgress **progress) { return _to Drop(format, action, progress); } \
  NS_IMETHOD ReceiveData(PRUint32 *dataSize, PRUint8 **data) { return _to ReceiveData(dataSize, data); } \
  NS_IMETHOD InternalAndReservedMethod1IDnDSource(void) { return _to InternalAndReservedMethod1IDnDSource(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IDNDSOURCE(_to) \
  NS_IMETHOD GetInternalAndReservedAttribute1IDnDSource(PRUint32 *aInternalAndReservedAttribute1IDnDSource) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IDnDSource(aInternalAndReservedAttribute1IDnDSource); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IDnDSource(PRUint32 *aInternalAndReservedAttribute2IDnDSource) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IDnDSource(aInternalAndReservedAttribute2IDnDSource); } \
  NS_IMETHOD DragIsPending(PRUint32 screenId, PRUint32 *formatsSize, PRUnichar ***formats, PRUint32 *allowedActionsSize, PRUint32 **allowedActions, PRUint32 *defaultAction) { return !_to ? NS_ERROR_NULL_POINTER : _to->DragIsPending(screenId, formatsSize, formats, allowedActionsSize, allowedActions, defaultAction); } \
  NS_IMETHOD Drop(const PRUnichar *format, PRUint32 action, IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->Drop(format, action, progress); } \
  NS_IMETHOD ReceiveData(PRUint32 *dataSize, PRUint8 **data) { return !_to ? NS_ERROR_NULL_POINTER : _to->ReceiveData(dataSize, data); } \
  NS_IMETHOD InternalAndReservedMethod1IDnDSource(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IDnDSource(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IDnDSource
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IDNDSOURCE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IDnDSource)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IDnDSource; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IDnDSource(PRUint32 *aInternalAndReservedAttribute1IDnDSource)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IDnDSource; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IDnDSource(PRUint32 *aInternalAndReservedAttribute2IDnDSource)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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 PRUint32 allowedActions, [retval] out PRUint32 defaultAction); */
NS_IMETHODIMP _MYCLASS_::DragIsPending(PRUint32 screenId, PRUint32 *formatsSize, PRUnichar ***formats, PRUint32 *allowedActionsSize, PRUint32 **allowedActions, PRUint32 *defaultAction)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void drop (in wstring format, in PRUint32 action, [retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::Drop(const PRUnichar *format, PRUint32 action, IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void receiveData (out unsigned long dataSize, [array, size_is (dataSize), retval] out octet data); */
NS_IMETHODIMP _MYCLASS_::ReceiveData(PRUint32 *dataSize, PRUint8 **data)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1IDnDSource (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1IDnDSource()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IGuestDnDSource */
#define IGUESTDNDSOURCE_IID_STR "dedfb5d9-4c1b-edf7-fdf3-c1be6827dc28"

#define IGUESTDNDSOURCE_IID \
  {0xdedfb5d9, 0x4c1b, 0xedf7, \
    { 0xfd, 0xf3, 0xc1, 0xbe, 0x68, 0x27, 0xdc, 0x28 }}

class NS_NO_VTABLE IGuestDnDSource : public IDnDSource {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTDNDSOURCE_IID)

  /* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTDNDSOURCE \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTDNDSOURCE(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return _to GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGUESTDNDSOURCE(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IGuestDnDSource
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IGUESTDNDSOURCE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IGuestDnDSource)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
NS_IMETHODIMP _MYCLASS_::GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IDnDTarget */
#define IDNDTARGET_IID_STR "ff5befc3-4ba3-7903-2aa4-43988ba11554"

#define IDNDTARGET_IID \
  {0xff5befc3, 0x4ba3, 0x7903, \
    { 0x2a, 0xa4, 0x43, 0x98, 0x8b, 0xa1, 0x15, 0x54 }}

class NS_NO_VTABLE IDnDTarget : public IDnDBase {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IDNDTARGET_IID)

  /* readonly attribute unsigned long InternalAndReservedAttribute1IDnDTarget; */
  NS_IMETHOD GetInternalAndReservedAttribute1IDnDTarget(PRUint32 *aInternalAndReservedAttribute1IDnDTarget) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IDnDTarget; */
  NS_IMETHOD GetInternalAndReservedAttribute2IDnDTarget(PRUint32 *aInternalAndReservedAttribute2IDnDTarget) = 0;

  /* void enter (in unsigned long screenId, in unsigned long y, in unsigned long x, in PRUint32 defaultAction, in unsigned long allowedActionsSize, [array, size_is (allowedActionsSize)] in PRUint32 allowedActions, in unsigned long formatsSize, [array, size_is (formatsSize)] in wstring formats, [retval] out PRUint32 resultAction); */
  NS_IMETHOD Enter(PRUint32 screenId, PRUint32 y, PRUint32 x, PRUint32 defaultAction, PRUint32 allowedActionsSize, PRUint32 *allowedActions, PRUint32 formatsSize, const PRUnichar **formats, PRUint32 *resultAction) = 0;

  /* void move (in unsigned long screenId, in unsigned long x, in unsigned long y, in PRUint32 defaultAction, in unsigned long allowedActionsSize, [array, size_is (allowedActionsSize)] in PRUint32 allowedActions, in unsigned long formatsSize, [array, size_is (formatsSize)] in wstring formats, [retval] out PRUint32 resultAction); */
  NS_IMETHOD Move(PRUint32 screenId, PRUint32 x, PRUint32 y, PRUint32 defaultAction, PRUint32 allowedActionsSize, PRUint32 *allowedActions, PRUint32 formatsSize, const PRUnichar **formats, PRUint32 *resultAction) = 0;

  /* void leave (in unsigned long screenId); */
  NS_IMETHOD Leave(PRUint32 screenId) = 0;

  /* void drop (in unsigned long screenId, in unsigned long x, in unsigned long y, in PRUint32 defaultAction, in unsigned long allowedActionsSize, [array, size_is (allowedActionsSize)] in PRUint32 allowedActions, in unsigned long formatsSize, [array, size_is (formatsSize)] in wstring formats, out wstring format, [retval] out PRUint32 resultAction); */
  NS_IMETHOD Drop(PRUint32 screenId, PRUint32 x, PRUint32 y, PRUint32 defaultAction, PRUint32 allowedActionsSize, PRUint32 *allowedActions, PRUint32 formatsSize, const PRUnichar **formats, PRUnichar **format, PRUint32 *resultAction) = 0;

  /* void sendData (in unsigned long screenId, in wstring format, in unsigned long dataSize, [array, size_is (dataSize)] in octet data, [retval] out IProgress progress); */
  NS_IMETHOD SendData(PRUint32 screenId, const PRUnichar *format, PRUint32 dataSize, PRUint8 *data, IProgress **progress) = 0;

  /* void cancel ([retval] out boolean veto); */
  NS_IMETHOD Cancel(PRBool *veto) = 0;

  /* void InternalAndReservedMethod1IDnDTarget (); */
  NS_IMETHOD InternalAndReservedMethod1IDnDTarget(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IDNDTARGET \
  NS_IMETHOD GetInternalAndReservedAttribute1IDnDTarget(PRUint32 *aInternalAndReservedAttribute1IDnDTarget); \
  NS_IMETHOD GetInternalAndReservedAttribute2IDnDTarget(PRUint32 *aInternalAndReservedAttribute2IDnDTarget); \
  NS_IMETHOD Enter(PRUint32 screenId, PRUint32 y, PRUint32 x, PRUint32 defaultAction, PRUint32 allowedActionsSize, PRUint32 *allowedActions, PRUint32 formatsSize, const PRUnichar **formats, PRUint32 *resultAction); \
  NS_IMETHOD Move(PRUint32 screenId, PRUint32 x, PRUint32 y, PRUint32 defaultAction, PRUint32 allowedActionsSize, PRUint32 *allowedActions, PRUint32 formatsSize, const PRUnichar **formats, PRUint32 *resultAction); \
  NS_IMETHOD Leave(PRUint32 screenId); \
  NS_IMETHOD Drop(PRUint32 screenId, PRUint32 x, PRUint32 y, PRUint32 defaultAction, PRUint32 allowedActionsSize, PRUint32 *allowedActions, PRUint32 formatsSize, const PRUnichar **formats, PRUnichar **format, PRUint32 *resultAction); \
  NS_IMETHOD SendData(PRUint32 screenId, const PRUnichar *format, PRUint32 dataSize, PRUint8 *data, IProgress **progress); \
  NS_IMETHOD Cancel(PRBool *veto); \
  NS_IMETHOD InternalAndReservedMethod1IDnDTarget(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IDNDTARGET(_to) \
  NS_IMETHOD GetInternalAndReservedAttribute1IDnDTarget(PRUint32 *aInternalAndReservedAttribute1IDnDTarget) { return _to GetInternalAndReservedAttribute1IDnDTarget(aInternalAndReservedAttribute1IDnDTarget); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IDnDTarget(PRUint32 *aInternalAndReservedAttribute2IDnDTarget) { return _to GetInternalAndReservedAttribute2IDnDTarget(aInternalAndReservedAttribute2IDnDTarget); } \
  NS_IMETHOD Enter(PRUint32 screenId, PRUint32 y, PRUint32 x, PRUint32 defaultAction, PRUint32 allowedActionsSize, PRUint32 *allowedActions, PRUint32 formatsSize, const PRUnichar **formats, PRUint32 *resultAction) { return _to Enter(screenId, y, x, defaultAction, allowedActionsSize, allowedActions, formatsSize, formats, resultAction); } \
  NS_IMETHOD Move(PRUint32 screenId, PRUint32 x, PRUint32 y, PRUint32 defaultAction, PRUint32 allowedActionsSize, PRUint32 *allowedActions, PRUint32 formatsSize, const PRUnichar **formats, PRUint32 *resultAction) { return _to Move(screenId, x, y, defaultAction, allowedActionsSize, allowedActions, formatsSize, formats, resultAction); } \
  NS_IMETHOD Leave(PRUint32 screenId) { return _to Leave(screenId); } \
  NS_IMETHOD Drop(PRUint32 screenId, PRUint32 x, PRUint32 y, PRUint32 defaultAction, PRUint32 allowedActionsSize, PRUint32 *allowedActions, PRUint32 formatsSize, const PRUnichar **formats, PRUnichar **format, PRUint32 *resultAction) { return _to Drop(screenId, x, y, defaultAction, allowedActionsSize, allowedActions, formatsSize, formats, format, resultAction); } \
  NS_IMETHOD SendData(PRUint32 screenId, const PRUnichar *format, PRUint32 dataSize, PRUint8 *data, IProgress **progress) { return _to SendData(screenId, format, dataSize, data, progress); } \
  NS_IMETHOD Cancel(PRBool *veto) { return _to Cancel(veto); } \
  NS_IMETHOD InternalAndReservedMethod1IDnDTarget(void) { return _to InternalAndReservedMethod1IDnDTarget(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IDNDTARGET(_to) \
  NS_IMETHOD GetInternalAndReservedAttribute1IDnDTarget(PRUint32 *aInternalAndReservedAttribute1IDnDTarget) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IDnDTarget(aInternalAndReservedAttribute1IDnDTarget); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IDnDTarget(PRUint32 *aInternalAndReservedAttribute2IDnDTarget) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IDnDTarget(aInternalAndReservedAttribute2IDnDTarget); } \
  NS_IMETHOD Enter(PRUint32 screenId, PRUint32 y, PRUint32 x, PRUint32 defaultAction, PRUint32 allowedActionsSize, PRUint32 *allowedActions, PRUint32 formatsSize, const PRUnichar **formats, PRUint32 *resultAction) { return !_to ? NS_ERROR_NULL_POINTER : _to->Enter(screenId, y, x, defaultAction, allowedActionsSize, allowedActions, formatsSize, formats, resultAction); } \
  NS_IMETHOD Move(PRUint32 screenId, PRUint32 x, PRUint32 y, PRUint32 defaultAction, PRUint32 allowedActionsSize, PRUint32 *allowedActions, PRUint32 formatsSize, const PRUnichar **formats, PRUint32 *resultAction) { return !_to ? NS_ERROR_NULL_POINTER : _to->Move(screenId, x, y, defaultAction, allowedActionsSize, allowedActions, formatsSize, formats, resultAction); } \
  NS_IMETHOD Leave(PRUint32 screenId) { return !_to ? NS_ERROR_NULL_POINTER : _to->Leave(screenId); } \
  NS_IMETHOD Drop(PRUint32 screenId, PRUint32 x, PRUint32 y, PRUint32 defaultAction, PRUint32 allowedActionsSize, PRUint32 *allowedActions, PRUint32 formatsSize, const PRUnichar **formats, PRUnichar **format, PRUint32 *resultAction) { return !_to ? NS_ERROR_NULL_POINTER : _to->Drop(screenId, x, y, defaultAction, allowedActionsSize, allowedActions, formatsSize, formats, format, resultAction); } \
  NS_IMETHOD SendData(PRUint32 screenId, const PRUnichar *format, PRUint32 dataSize, PRUint8 *data, IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->SendData(screenId, format, dataSize, data, progress); } \
  NS_IMETHOD Cancel(PRBool *veto) { return !_to ? NS_ERROR_NULL_POINTER : _to->Cancel(veto); } \
  NS_IMETHOD InternalAndReservedMethod1IDnDTarget(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IDnDTarget(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IDnDTarget
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IDNDTARGET

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IDnDTarget)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IDnDTarget; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IDnDTarget(PRUint32 *aInternalAndReservedAttribute1IDnDTarget)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IDnDTarget; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IDnDTarget(PRUint32 *aInternalAndReservedAttribute2IDnDTarget)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void enter (in unsigned long screenId, in unsigned long y, in unsigned long x, in PRUint32 defaultAction, in unsigned long allowedActionsSize, [array, size_is (allowedActionsSize)] in PRUint32 allowedActions, in unsigned long formatsSize, [array, size_is (formatsSize)] in wstring formats, [retval] out PRUint32 resultAction); */
NS_IMETHODIMP _MYCLASS_::Enter(PRUint32 screenId, PRUint32 y, PRUint32 x, PRUint32 defaultAction, PRUint32 allowedActionsSize, PRUint32 *allowedActions, PRUint32 formatsSize, const PRUnichar **formats, PRUint32 *resultAction)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void move (in unsigned long screenId, in unsigned long x, in unsigned long y, in PRUint32 defaultAction, in unsigned long allowedActionsSize, [array, size_is (allowedActionsSize)] in PRUint32 allowedActions, in unsigned long formatsSize, [array, size_is (formatsSize)] in wstring formats, [retval] out PRUint32 resultAction); */
NS_IMETHODIMP _MYCLASS_::Move(PRUint32 screenId, PRUint32 x, PRUint32 y, PRUint32 defaultAction, PRUint32 allowedActionsSize, PRUint32 *allowedActions, PRUint32 formatsSize, const PRUnichar **formats, PRUint32 *resultAction)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void leave (in unsigned long screenId); */
NS_IMETHODIMP _MYCLASS_::Leave(PRUint32 screenId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void drop (in unsigned long screenId, in unsigned long x, in unsigned long y, in PRUint32 defaultAction, in unsigned long allowedActionsSize, [array, size_is (allowedActionsSize)] in PRUint32 allowedActions, in unsigned long formatsSize, [array, size_is (formatsSize)] in wstring formats, out wstring format, [retval] out PRUint32 resultAction); */
NS_IMETHODIMP _MYCLASS_::Drop(PRUint32 screenId, PRUint32 x, PRUint32 y, PRUint32 defaultAction, PRUint32 allowedActionsSize, PRUint32 *allowedActions, PRUint32 formatsSize, const PRUnichar **formats, PRUnichar **format, PRUint32 *resultAction)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void sendData (in unsigned long screenId, in wstring format, in unsigned long dataSize, [array, size_is (dataSize)] in octet data, [retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::SendData(PRUint32 screenId, const PRUnichar *format, PRUint32 dataSize, PRUint8 *data, IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void cancel ([retval] out boolean veto); */
NS_IMETHODIMP _MYCLASS_::Cancel(PRBool *veto)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1IDnDTarget (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1IDnDTarget()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IGuestDnDTarget */
#define IGUESTDNDTARGET_IID_STR "50ce4b51-0ff7-46b7-a138-3c6e5ac946b4"

#define IGUESTDNDTARGET_IID \
  {0x50ce4b51, 0x0ff7, 0x46b7, \
    { 0xa1, 0x38, 0x3c, 0x6e, 0x5a, 0xc9, 0x46, 0xb4 }}

class NS_NO_VTABLE IGuestDnDTarget : public IDnDTarget {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTDNDTARGET_IID)

  /* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTDNDTARGET \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTDNDTARGET(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return _to GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGUESTDNDTARGET(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IGuestDnDTarget
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IGUESTDNDTARGET

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IGuestDnDTarget)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
NS_IMETHODIMP _MYCLASS_::GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IGuestSession */
#define IGUESTSESSION_IID_STR "486fd828-4c6b-239b-a846-c4bb69e41038"

#define IGUESTSESSION_IID \
  {0x486fd828, 0x4c6b, 0x239b, \
    { 0xa8, 0x46, 0xc4, 0xbb, 0x69, 0xe4, 0x10, 0x38 }}

class NS_NO_VTABLE IGuestSession : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTSESSION_IID)

  /* readonly attribute wstring user; */
  NS_IMETHOD GetUser(PRUnichar * *aUser) = 0;

  /* readonly attribute wstring domain; */
  NS_IMETHOD GetDomain(PRUnichar * *aDomain) = 0;

  /* readonly attribute wstring name; */
  NS_IMETHOD GetName(PRUnichar * *aName) = 0;

  /* readonly attribute unsigned long id; */
  NS_IMETHOD GetId(PRUint32 *aId) = 0;

  /* attribute unsigned long timeout; */
  NS_IMETHOD GetTimeout(PRUint32 *aTimeout) = 0;
  NS_IMETHOD SetTimeout(PRUint32 aTimeout) = 0;

  /* readonly attribute unsigned long protocolVersion; */
  NS_IMETHOD GetProtocolVersion(PRUint32 *aProtocolVersion) = 0;

  /* readonly attribute PRUint32 status; */
  NS_IMETHOD GetStatus(PRUint32 *aStatus) = 0;

  /* void getEnvironmentChanges (out unsigned long environmentChangesSize, [array, size_is (environmentChangesSize), retval] out wstring environmentChanges); */
  NS_IMETHOD GetEnvironmentChanges(PRUint32 *environmentChangesSize, PRUnichar ***environmentChanges) = 0;

  /* void setEnvironmentChanges (in unsigned long environmentChangesSize, [array, size_is (environmentChangesSize)] in wstring environmentChanges); */
  NS_IMETHOD SetEnvironmentChanges(PRUint32 environmentChangesSize, const PRUnichar **environmentChanges) = 0;

  /* void getEnvironmentBase (out unsigned long environmentBaseSize, [array, size_is (environmentBaseSize), retval] out wstring environmentBase); */
  NS_IMETHOD GetEnvironmentBase(PRUint32 *environmentBaseSize, PRUnichar ***environmentBase) = 0;

  /* void getProcesses (out unsigned long processesSize, [array, size_is (processesSize), retval] out IGuestProcess processes); */
  NS_IMETHOD GetProcesses(PRUint32 *processesSize, IGuestProcess ***processes) = 0;

  /* readonly attribute PRUint32 pathStyle; */
  NS_IMETHOD GetPathStyle(PRUint32 *aPathStyle) = 0;

  /* attribute wstring currentDirectory; */
  NS_IMETHOD GetCurrentDirectory(PRUnichar * *aCurrentDirectory) = 0;
  NS_IMETHOD SetCurrentDirectory(const PRUnichar * aCurrentDirectory) = 0;

  /* void getDirectories (out unsigned long directoriesSize, [array, size_is (directoriesSize), retval] out IGuestDirectory directories); */
  NS_IMETHOD GetDirectories(PRUint32 *directoriesSize, IGuestDirectory ***directories) = 0;

  /* void getFiles (out unsigned long filesSize, [array, size_is (filesSize), retval] out IGuestFile files); */
  NS_IMETHOD GetFiles(PRUint32 *filesSize, IGuestFile ***files) = 0;

  /* readonly attribute IEventSource eventSource; */
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IGuestSession; */
  NS_IMETHOD GetInternalAndReservedAttribute1IGuestSession(PRUint32 *aInternalAndReservedAttribute1IGuestSession) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IGuestSession; */
  NS_IMETHOD GetInternalAndReservedAttribute2IGuestSession(PRUint32 *aInternalAndReservedAttribute2IGuestSession) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IGuestSession; */
  NS_IMETHOD GetInternalAndReservedAttribute3IGuestSession(PRUint32 *aInternalAndReservedAttribute3IGuestSession) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IGuestSession; */
  NS_IMETHOD GetInternalAndReservedAttribute4IGuestSession(PRUint32 *aInternalAndReservedAttribute4IGuestSession) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IGuestSession; */
  NS_IMETHOD GetInternalAndReservedAttribute5IGuestSession(PRUint32 *aInternalAndReservedAttribute5IGuestSession) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IGuestSession; */
  NS_IMETHOD GetInternalAndReservedAttribute6IGuestSession(PRUint32 *aInternalAndReservedAttribute6IGuestSession) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IGuestSession; */
  NS_IMETHOD GetInternalAndReservedAttribute7IGuestSession(PRUint32 *aInternalAndReservedAttribute7IGuestSession) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IGuestSession; */
  NS_IMETHOD GetInternalAndReservedAttribute8IGuestSession(PRUint32 *aInternalAndReservedAttribute8IGuestSession) = 0;

  /* void close (); */
  NS_IMETHOD Close(void) = 0;

  /* void directoryCopy (in wstring source, in wstring destination, in unsigned long flagsSize, [array, size_is (flagsSize)] in PRUint32 flags, [retval] out IProgress progress); */
  NS_IMETHOD DirectoryCopy(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress) = 0;

  /* void directoryCopyFromGuest (in wstring source, in wstring destination, in unsigned long flagsSize, [array, size_is (flagsSize)] in PRUint32 flags, [retval] out IProgress progress); */
  NS_IMETHOD DirectoryCopyFromGuest(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress) = 0;

  /* void directoryCopyToGuest (in wstring source, in wstring destination, in unsigned long flagsSize, [array, size_is (flagsSize)] in PRUint32 flags, [retval] out IProgress progress); */
  NS_IMETHOD DirectoryCopyToGuest(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress) = 0;

  /* void directoryCreate (in wstring path, in unsigned long mode, in unsigned long flagsSize, [array, size_is (flagsSize)] in PRUint32 flags); */
  NS_IMETHOD DirectoryCreate(const PRUnichar *path, PRUint32 mode, PRUint32 flagsSize, PRUint32 *flags) = 0;

  /* void directoryCreateTemp (in wstring templateName, in unsigned long mode, in wstring path, in boolean secure, [retval] out wstring directory); */
  NS_IMETHOD DirectoryCreateTemp(const PRUnichar *templateName, PRUint32 mode, const PRUnichar *path, PRBool secure, PRUnichar **directory) = 0;

  /* void directoryExists (in wstring path, in boolean followSymlinks, [retval] out boolean exists); */
  NS_IMETHOD DirectoryExists(const PRUnichar *path, PRBool followSymlinks, PRBool *exists) = 0;

  /* void directoryOpen (in wstring path, in wstring filter, in unsigned long flagsSize, [array, size_is (flagsSize)] in PRUint32 flags, [retval] out IGuestDirectory directory); */
  NS_IMETHOD DirectoryOpen(const PRUnichar *path, const PRUnichar *filter, PRUint32 flagsSize, PRUint32 *flags, IGuestDirectory **directory) = 0;

  /* void directoryRemove (in wstring path); */
  NS_IMETHOD DirectoryRemove(const PRUnichar *path) = 0;

  /* void directoryRemoveRecursive (in wstring path, in unsigned long flagsSize, [array, size_is (flagsSize)] in PRUint32 flags, [retval] out IProgress progress); */
  NS_IMETHOD DirectoryRemoveRecursive(const PRUnichar *path, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress) = 0;

  /* void environmentScheduleSet (in wstring name, in wstring value); */
  NS_IMETHOD EnvironmentScheduleSet(const PRUnichar *name, const PRUnichar *value) = 0;

  /* void environmentScheduleUnset (in wstring name); */
  NS_IMETHOD EnvironmentScheduleUnset(const PRUnichar *name) = 0;

  /* void environmentGetBaseVariable (in wstring name, [retval] out wstring value); */
  NS_IMETHOD EnvironmentGetBaseVariable(const PRUnichar *name, PRUnichar **value) = 0;

  /* void environmentDoesBaseVariableExist (in wstring name, [retval] out boolean exists); */
  NS_IMETHOD EnvironmentDoesBaseVariableExist(const PRUnichar *name, PRBool *exists) = 0;

  /* void fileCopy (in wstring source, in wstring destination, in unsigned long flagsSize, [array, size_is (flagsSize)] in PRUint32 flags, [retval] out IProgress progress); */
  NS_IMETHOD FileCopy(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress) = 0;

  /* void fileCopyFromGuest (in wstring source, in wstring destination, in unsigned long flagsSize, [array, size_is (flagsSize)] in PRUint32 flags, [retval] out IProgress progress); */
  NS_IMETHOD FileCopyFromGuest(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress) = 0;

  /* void fileCopyToGuest (in wstring source, in wstring destination, in unsigned long flagsSize, [array, size_is (flagsSize)] in PRUint32 flags, [retval] out IProgress progress); */
  NS_IMETHOD FileCopyToGuest(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress) = 0;

  /* void fileCreateTemp (in wstring templateName, in unsigned long mode, in wstring path, in boolean secure, [retval] out IGuestFile file); */
  NS_IMETHOD FileCreateTemp(const PRUnichar *templateName, PRUint32 mode, const PRUnichar *path, PRBool secure, IGuestFile **file) = 0;

  /* void fileExists (in wstring path, in boolean followSymlinks, [retval] out boolean exists); */
  NS_IMETHOD FileExists(const PRUnichar *path, PRBool followSymlinks, PRBool *exists) = 0;

  /* void fileOpen (in wstring path, in PRUint32 accessMode, in PRUint32 openAction, in unsigned long creationMode, [retval] out IGuestFile file); */
  NS_IMETHOD FileOpen(const PRUnichar *path, PRUint32 accessMode, PRUint32 openAction, PRUint32 creationMode, IGuestFile **file) = 0;

  /* void fileOpenEx (in wstring path, in PRUint32 accessMode, in PRUint32 openAction, in PRUint32 sharingMode, in unsigned long creationMode, in unsigned long flagsSize, [array, size_is (flagsSize)] in PRUint32 flags, [retval] out IGuestFile file); */
  NS_IMETHOD FileOpenEx(const PRUnichar *path, PRUint32 accessMode, PRUint32 openAction, PRUint32 sharingMode, PRUint32 creationMode, PRUint32 flagsSize, PRUint32 *flags, IGuestFile **file) = 0;

  /* void fileQuerySize (in wstring path, in boolean followSymlinks, [retval] out long long size); */
  NS_IMETHOD FileQuerySize(const PRUnichar *path, PRBool followSymlinks, PRInt64 *size) = 0;

  /* void fsObjExists (in wstring path, in boolean followSymlinks, [retval] out boolean exists); */
  NS_IMETHOD FsObjExists(const PRUnichar *path, PRBool followSymlinks, PRBool *exists) = 0;

  /* void fsObjQueryInfo (in wstring path, in boolean followSymlinks, [retval] out IGuestFsObjInfo info); */
  NS_IMETHOD FsObjQueryInfo(const PRUnichar *path, PRBool followSymlinks, IGuestFsObjInfo **info) = 0;

  /* void fsObjRemove (in wstring path); */
  NS_IMETHOD FsObjRemove(const PRUnichar *path) = 0;

  /* void fsObjRename (in wstring oldPath, in wstring newPath, in unsigned long flagsSize, [array, size_is (flagsSize)] in PRUint32 flags); */
  NS_IMETHOD FsObjRename(const PRUnichar *oldPath, const PRUnichar *newPath, PRUint32 flagsSize, PRUint32 *flags) = 0;

  /* void fsObjMove (in wstring source, in wstring destination, in unsigned long flagsSize, [array, size_is (flagsSize)] in PRUint32 flags, [retval] out IProgress progress); */
  NS_IMETHOD FsObjMove(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress) = 0;

  /* void fsObjSetACL (in wstring path, in boolean followSymlinks, in wstring acl, in unsigned long mode); */
  NS_IMETHOD FsObjSetACL(const PRUnichar *path, PRBool followSymlinks, const PRUnichar *acl, PRUint32 mode) = 0;

  /* 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 PRUint32 flags, in unsigned long timeoutMS, [retval] out IGuestProcess guestProcess); */
  NS_IMETHOD ProcessCreate(const PRUnichar *executable, PRUint32 argumentsSize, const PRUnichar **arguments, PRUint32 environmentChangesSize, const PRUnichar **environmentChanges, PRUint32 flagsSize, PRUint32 *flags, PRUint32 timeoutMS, IGuestProcess **guestProcess) = 0;

  /* 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 PRUint32 flags, in unsigned long timeoutMS, in PRUint32 priority, in unsigned long affinitySize, [array, size_is (affinitySize)] in long affinity, [retval] out IGuestProcess guestProcess); */
  NS_IMETHOD ProcessCreateEx(const PRUnichar *executable, PRUint32 argumentsSize, const PRUnichar **arguments, PRUint32 environmentChangesSize, const PRUnichar **environmentChanges, PRUint32 flagsSize, PRUint32 *flags, PRUint32 timeoutMS, PRUint32 priority, PRUint32 affinitySize, PRInt32 *affinity, IGuestProcess **guestProcess) = 0;

  /* void processGet (in unsigned long pid, [retval] out IGuestProcess guestProcess); */
  NS_IMETHOD ProcessGet(PRUint32 pid, IGuestProcess **guestProcess) = 0;

  /* void symlinkCreate (in wstring symlink, in wstring target, in PRUint32 type); */
  NS_IMETHOD SymlinkCreate(const PRUnichar *symlink, const PRUnichar *target, PRUint32 type) = 0;

  /* void symlinkExists (in wstring symlink, [retval] out boolean exists); */
  NS_IMETHOD SymlinkExists(const PRUnichar *symlink, PRBool *exists) = 0;

  /* void symlinkRead (in wstring symlink, in unsigned long flagsSize, [array, size_is (flagsSize)] in PRUint32 flags, [retval] out wstring target); */
  NS_IMETHOD SymlinkRead(const PRUnichar *symlink, PRUint32 flagsSize, PRUint32 *flags, PRUnichar **target) = 0;

  /* void waitFor (in unsigned long waitFor, in unsigned long timeoutMS, [retval] out PRUint32 reason); */
  NS_IMETHOD WaitFor(PRUint32 waitFor, PRUint32 timeoutMS, PRUint32 *reason) = 0;

  /* void waitForArray (in unsigned long waitForSize, [array, size_is (waitForSize)] in PRUint32 waitFor, in unsigned long timeoutMS, [retval] out PRUint32 reason); */
  NS_IMETHOD WaitForArray(PRUint32 waitForSize, PRUint32 *waitFor, PRUint32 timeoutMS, PRUint32 *reason) = 0;

  /* void InternalAndReservedMethod1IGuestSession (); */
  NS_IMETHOD InternalAndReservedMethod1IGuestSession(void) = 0;

  /* void InternalAndReservedMethod2IGuestSession (); */
  NS_IMETHOD InternalAndReservedMethod2IGuestSession(void) = 0;

  /* void InternalAndReservedMethod3IGuestSession (); */
  NS_IMETHOD InternalAndReservedMethod3IGuestSession(void) = 0;

  /* void InternalAndReservedMethod4IGuestSession (); */
  NS_IMETHOD InternalAndReservedMethod4IGuestSession(void) = 0;

  /* void InternalAndReservedMethod5IGuestSession (); */
  NS_IMETHOD InternalAndReservedMethod5IGuestSession(void) = 0;

  /* void InternalAndReservedMethod6IGuestSession (); */
  NS_IMETHOD InternalAndReservedMethod6IGuestSession(void) = 0;

  /* void InternalAndReservedMethod7IGuestSession (); */
  NS_IMETHOD InternalAndReservedMethod7IGuestSession(void) = 0;

  /* void InternalAndReservedMethod8IGuestSession (); */
  NS_IMETHOD InternalAndReservedMethod8IGuestSession(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTSESSION \
  NS_IMETHOD GetUser(PRUnichar * *aUser); \
  NS_IMETHOD GetDomain(PRUnichar * *aDomain); \
  NS_IMETHOD GetName(PRUnichar * *aName); \
  NS_IMETHOD GetId(PRUint32 *aId); \
  NS_IMETHOD GetTimeout(PRUint32 *aTimeout); \
  NS_IMETHOD SetTimeout(PRUint32 aTimeout); \
  NS_IMETHOD GetProtocolVersion(PRUint32 *aProtocolVersion); \
  NS_IMETHOD GetStatus(PRUint32 *aStatus); \
  NS_IMETHOD GetEnvironmentChanges(PRUint32 *environmentChangesSize, PRUnichar ***environmentChanges); \
  NS_IMETHOD SetEnvironmentChanges(PRUint32 environmentChangesSize, const PRUnichar **environmentChanges); \
  NS_IMETHOD GetEnvironmentBase(PRUint32 *environmentBaseSize, PRUnichar ***environmentBase); \
  NS_IMETHOD GetProcesses(PRUint32 *processesSize, IGuestProcess ***processes); \
  NS_IMETHOD GetPathStyle(PRUint32 *aPathStyle); \
  NS_IMETHOD GetCurrentDirectory(PRUnichar * *aCurrentDirectory); \
  NS_IMETHOD SetCurrentDirectory(const PRUnichar * aCurrentDirectory); \
  NS_IMETHOD GetDirectories(PRUint32 *directoriesSize, IGuestDirectory ***directories); \
  NS_IMETHOD GetFiles(PRUint32 *filesSize, IGuestFile ***files); \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource); \
  NS_IMETHOD GetInternalAndReservedAttribute1IGuestSession(PRUint32 *aInternalAndReservedAttribute1IGuestSession); \
  NS_IMETHOD GetInternalAndReservedAttribute2IGuestSession(PRUint32 *aInternalAndReservedAttribute2IGuestSession); \
  NS_IMETHOD GetInternalAndReservedAttribute3IGuestSession(PRUint32 *aInternalAndReservedAttribute3IGuestSession); \
  NS_IMETHOD GetInternalAndReservedAttribute4IGuestSession(PRUint32 *aInternalAndReservedAttribute4IGuestSession); \
  NS_IMETHOD GetInternalAndReservedAttribute5IGuestSession(PRUint32 *aInternalAndReservedAttribute5IGuestSession); \
  NS_IMETHOD GetInternalAndReservedAttribute6IGuestSession(PRUint32 *aInternalAndReservedAttribute6IGuestSession); \
  NS_IMETHOD GetInternalAndReservedAttribute7IGuestSession(PRUint32 *aInternalAndReservedAttribute7IGuestSession); \
  NS_IMETHOD GetInternalAndReservedAttribute8IGuestSession(PRUint32 *aInternalAndReservedAttribute8IGuestSession); \
  NS_IMETHOD Close(void); \
  NS_IMETHOD DirectoryCopy(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress); \
  NS_IMETHOD DirectoryCopyFromGuest(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress); \
  NS_IMETHOD DirectoryCopyToGuest(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress); \
  NS_IMETHOD DirectoryCreate(const PRUnichar *path, PRUint32 mode, PRUint32 flagsSize, PRUint32 *flags); \
  NS_IMETHOD DirectoryCreateTemp(const PRUnichar *templateName, PRUint32 mode, const PRUnichar *path, PRBool secure, PRUnichar **directory); \
  NS_IMETHOD DirectoryExists(const PRUnichar *path, PRBool followSymlinks, PRBool *exists); \
  NS_IMETHOD DirectoryOpen(const PRUnichar *path, const PRUnichar *filter, PRUint32 flagsSize, PRUint32 *flags, IGuestDirectory **directory); \
  NS_IMETHOD DirectoryRemove(const PRUnichar *path); \
  NS_IMETHOD DirectoryRemoveRecursive(const PRUnichar *path, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress); \
  NS_IMETHOD EnvironmentScheduleSet(const PRUnichar *name, const PRUnichar *value); \
  NS_IMETHOD EnvironmentScheduleUnset(const PRUnichar *name); \
  NS_IMETHOD EnvironmentGetBaseVariable(const PRUnichar *name, PRUnichar **value); \
  NS_IMETHOD EnvironmentDoesBaseVariableExist(const PRUnichar *name, PRBool *exists); \
  NS_IMETHOD FileCopy(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress); \
  NS_IMETHOD FileCopyFromGuest(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress); \
  NS_IMETHOD FileCopyToGuest(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress); \
  NS_IMETHOD FileCreateTemp(const PRUnichar *templateName, PRUint32 mode, const PRUnichar *path, PRBool secure, IGuestFile **file); \
  NS_IMETHOD FileExists(const PRUnichar *path, PRBool followSymlinks, PRBool *exists); \
  NS_IMETHOD FileOpen(const PRUnichar *path, PRUint32 accessMode, PRUint32 openAction, PRUint32 creationMode, IGuestFile **file); \
  NS_IMETHOD FileOpenEx(const PRUnichar *path, PRUint32 accessMode, PRUint32 openAction, PRUint32 sharingMode, PRUint32 creationMode, PRUint32 flagsSize, PRUint32 *flags, IGuestFile **file); \
  NS_IMETHOD FileQuerySize(const PRUnichar *path, PRBool followSymlinks, PRInt64 *size); \
  NS_IMETHOD FsObjExists(const PRUnichar *path, PRBool followSymlinks, PRBool *exists); \
  NS_IMETHOD FsObjQueryInfo(const PRUnichar *path, PRBool followSymlinks, IGuestFsObjInfo **info); \
  NS_IMETHOD FsObjRemove(const PRUnichar *path); \
  NS_IMETHOD FsObjRename(const PRUnichar *oldPath, const PRUnichar *newPath, PRUint32 flagsSize, PRUint32 *flags); \
  NS_IMETHOD FsObjMove(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress); \
  NS_IMETHOD FsObjSetACL(const PRUnichar *path, PRBool followSymlinks, const PRUnichar *acl, PRUint32 mode); \
  NS_IMETHOD ProcessCreate(const PRUnichar *executable, PRUint32 argumentsSize, const PRUnichar **arguments, PRUint32 environmentChangesSize, const PRUnichar **environmentChanges, PRUint32 flagsSize, PRUint32 *flags, PRUint32 timeoutMS, IGuestProcess **guestProcess); \
  NS_IMETHOD ProcessCreateEx(const PRUnichar *executable, PRUint32 argumentsSize, const PRUnichar **arguments, PRUint32 environmentChangesSize, const PRUnichar **environmentChanges, PRUint32 flagsSize, PRUint32 *flags, PRUint32 timeoutMS, PRUint32 priority, PRUint32 affinitySize, PRInt32 *affinity, IGuestProcess **guestProcess); \
  NS_IMETHOD ProcessGet(PRUint32 pid, IGuestProcess **guestProcess); \
  NS_IMETHOD SymlinkCreate(const PRUnichar *symlink, const PRUnichar *target, PRUint32 type); \
  NS_IMETHOD SymlinkExists(const PRUnichar *symlink, PRBool *exists); \
  NS_IMETHOD SymlinkRead(const PRUnichar *symlink, PRUint32 flagsSize, PRUint32 *flags, PRUnichar **target); \
  NS_IMETHOD WaitFor(PRUint32 waitFor, PRUint32 timeoutMS, PRUint32 *reason); \
  NS_IMETHOD WaitForArray(PRUint32 waitForSize, PRUint32 *waitFor, PRUint32 timeoutMS, PRUint32 *reason); \
  NS_IMETHOD InternalAndReservedMethod1IGuestSession(void); \
  NS_IMETHOD InternalAndReservedMethod2IGuestSession(void); \
  NS_IMETHOD InternalAndReservedMethod3IGuestSession(void); \
  NS_IMETHOD InternalAndReservedMethod4IGuestSession(void); \
  NS_IMETHOD InternalAndReservedMethod5IGuestSession(void); \
  NS_IMETHOD InternalAndReservedMethod6IGuestSession(void); \
  NS_IMETHOD InternalAndReservedMethod7IGuestSession(void); \
  NS_IMETHOD InternalAndReservedMethod8IGuestSession(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTSESSION(_to) \
  NS_IMETHOD GetUser(PRUnichar * *aUser) { return _to GetUser(aUser); } \
  NS_IMETHOD GetDomain(PRUnichar * *aDomain) { return _to GetDomain(aDomain); } \
  NS_IMETHOD GetName(PRUnichar * *aName) { return _to GetName(aName); } \
  NS_IMETHOD GetId(PRUint32 *aId) { return _to GetId(aId); } \
  NS_IMETHOD GetTimeout(PRUint32 *aTimeout) { return _to GetTimeout(aTimeout); } \
  NS_IMETHOD SetTimeout(PRUint32 aTimeout) { return _to SetTimeout(aTimeout); } \
  NS_IMETHOD GetProtocolVersion(PRUint32 *aProtocolVersion) { return _to GetProtocolVersion(aProtocolVersion); } \
  NS_IMETHOD GetStatus(PRUint32 *aStatus) { return _to GetStatus(aStatus); } \
  NS_IMETHOD GetEnvironmentChanges(PRUint32 *environmentChangesSize, PRUnichar ***environmentChanges) { return _to GetEnvironmentChanges(environmentChangesSize, environmentChanges); } \
  NS_IMETHOD SetEnvironmentChanges(PRUint32 environmentChangesSize, const PRUnichar **environmentChanges) { return _to SetEnvironmentChanges(environmentChangesSize, environmentChanges); } \
  NS_IMETHOD GetEnvironmentBase(PRUint32 *environmentBaseSize, PRUnichar ***environmentBase) { return _to GetEnvironmentBase(environmentBaseSize, environmentBase); } \
  NS_IMETHOD GetProcesses(PRUint32 *processesSize, IGuestProcess ***processes) { return _to GetProcesses(processesSize, processes); } \
  NS_IMETHOD GetPathStyle(PRUint32 *aPathStyle) { return _to GetPathStyle(aPathStyle); } \
  NS_IMETHOD GetCurrentDirectory(PRUnichar * *aCurrentDirectory) { return _to GetCurrentDirectory(aCurrentDirectory); } \
  NS_IMETHOD SetCurrentDirectory(const PRUnichar * aCurrentDirectory) { return _to SetCurrentDirectory(aCurrentDirectory); } \
  NS_IMETHOD GetDirectories(PRUint32 *directoriesSize, IGuestDirectory ***directories) { return _to GetDirectories(directoriesSize, directories); } \
  NS_IMETHOD GetFiles(PRUint32 *filesSize, IGuestFile ***files) { return _to GetFiles(filesSize, files); } \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) { return _to GetEventSource(aEventSource); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IGuestSession(PRUint32 *aInternalAndReservedAttribute1IGuestSession) { return _to GetInternalAndReservedAttribute1IGuestSession(aInternalAndReservedAttribute1IGuestSession); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IGuestSession(PRUint32 *aInternalAndReservedAttribute2IGuestSession) { return _to GetInternalAndReservedAttribute2IGuestSession(aInternalAndReservedAttribute2IGuestSession); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IGuestSession(PRUint32 *aInternalAndReservedAttribute3IGuestSession) { return _to GetInternalAndReservedAttribute3IGuestSession(aInternalAndReservedAttribute3IGuestSession); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IGuestSession(PRUint32 *aInternalAndReservedAttribute4IGuestSession) { return _to GetInternalAndReservedAttribute4IGuestSession(aInternalAndReservedAttribute4IGuestSession); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IGuestSession(PRUint32 *aInternalAndReservedAttribute5IGuestSession) { return _to GetInternalAndReservedAttribute5IGuestSession(aInternalAndReservedAttribute5IGuestSession); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IGuestSession(PRUint32 *aInternalAndReservedAttribute6IGuestSession) { return _to GetInternalAndReservedAttribute6IGuestSession(aInternalAndReservedAttribute6IGuestSession); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IGuestSession(PRUint32 *aInternalAndReservedAttribute7IGuestSession) { return _to GetInternalAndReservedAttribute7IGuestSession(aInternalAndReservedAttribute7IGuestSession); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IGuestSession(PRUint32 *aInternalAndReservedAttribute8IGuestSession) { return _to GetInternalAndReservedAttribute8IGuestSession(aInternalAndReservedAttribute8IGuestSession); } \
  NS_IMETHOD Close(void) { return _to Close(); } \
  NS_IMETHOD DirectoryCopy(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress) { return _to DirectoryCopy(source, destination, flagsSize, flags, progress); } \
  NS_IMETHOD DirectoryCopyFromGuest(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress) { return _to DirectoryCopyFromGuest(source, destination, flagsSize, flags, progress); } \
  NS_IMETHOD DirectoryCopyToGuest(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress) { return _to DirectoryCopyToGuest(source, destination, flagsSize, flags, progress); } \
  NS_IMETHOD DirectoryCreate(const PRUnichar *path, PRUint32 mode, PRUint32 flagsSize, PRUint32 *flags) { return _to DirectoryCreate(path, mode, flagsSize, flags); } \
  NS_IMETHOD DirectoryCreateTemp(const PRUnichar *templateName, PRUint32 mode, const PRUnichar *path, PRBool secure, PRUnichar **directory) { return _to DirectoryCreateTemp(templateName, mode, path, secure, directory); } \
  NS_IMETHOD DirectoryExists(const PRUnichar *path, PRBool followSymlinks, PRBool *exists) { return _to DirectoryExists(path, followSymlinks, exists); } \
  NS_IMETHOD DirectoryOpen(const PRUnichar *path, const PRUnichar *filter, PRUint32 flagsSize, PRUint32 *flags, IGuestDirectory **directory) { return _to DirectoryOpen(path, filter, flagsSize, flags, directory); } \
  NS_IMETHOD DirectoryRemove(const PRUnichar *path) { return _to DirectoryRemove(path); } \
  NS_IMETHOD DirectoryRemoveRecursive(const PRUnichar *path, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress) { return _to DirectoryRemoveRecursive(path, flagsSize, flags, progress); } \
  NS_IMETHOD EnvironmentScheduleSet(const PRUnichar *name, const PRUnichar *value) { return _to EnvironmentScheduleSet(name, value); } \
  NS_IMETHOD EnvironmentScheduleUnset(const PRUnichar *name) { return _to EnvironmentScheduleUnset(name); } \
  NS_IMETHOD EnvironmentGetBaseVariable(const PRUnichar *name, PRUnichar **value) { return _to EnvironmentGetBaseVariable(name, value); } \
  NS_IMETHOD EnvironmentDoesBaseVariableExist(const PRUnichar *name, PRBool *exists) { return _to EnvironmentDoesBaseVariableExist(name, exists); } \
  NS_IMETHOD FileCopy(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress) { return _to FileCopy(source, destination, flagsSize, flags, progress); } \
  NS_IMETHOD FileCopyFromGuest(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress) { return _to FileCopyFromGuest(source, destination, flagsSize, flags, progress); } \
  NS_IMETHOD FileCopyToGuest(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress) { return _to FileCopyToGuest(source, destination, flagsSize, flags, progress); } \
  NS_IMETHOD FileCreateTemp(const PRUnichar *templateName, PRUint32 mode, const PRUnichar *path, PRBool secure, IGuestFile **file) { return _to FileCreateTemp(templateName, mode, path, secure, file); } \
  NS_IMETHOD FileExists(const PRUnichar *path, PRBool followSymlinks, PRBool *exists) { return _to FileExists(path, followSymlinks, exists); } \
  NS_IMETHOD FileOpen(const PRUnichar *path, PRUint32 accessMode, PRUint32 openAction, PRUint32 creationMode, IGuestFile **file) { return _to FileOpen(path, accessMode, openAction, creationMode, file); } \
  NS_IMETHOD FileOpenEx(const PRUnichar *path, PRUint32 accessMode, PRUint32 openAction, PRUint32 sharingMode, PRUint32 creationMode, PRUint32 flagsSize, PRUint32 *flags, IGuestFile **file) { return _to FileOpenEx(path, accessMode, openAction, sharingMode, creationMode, flagsSize, flags, file); } \
  NS_IMETHOD FileQuerySize(const PRUnichar *path, PRBool followSymlinks, PRInt64 *size) { return _to FileQuerySize(path, followSymlinks, size); } \
  NS_IMETHOD FsObjExists(const PRUnichar *path, PRBool followSymlinks, PRBool *exists) { return _to FsObjExists(path, followSymlinks, exists); } \
  NS_IMETHOD FsObjQueryInfo(const PRUnichar *path, PRBool followSymlinks, IGuestFsObjInfo **info) { return _to FsObjQueryInfo(path, followSymlinks, info); } \
  NS_IMETHOD FsObjRemove(const PRUnichar *path) { return _to FsObjRemove(path); } \
  NS_IMETHOD FsObjRename(const PRUnichar *oldPath, const PRUnichar *newPath, PRUint32 flagsSize, PRUint32 *flags) { return _to FsObjRename(oldPath, newPath, flagsSize, flags); } \
  NS_IMETHOD FsObjMove(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress) { return _to FsObjMove(source, destination, flagsSize, flags, progress); } \
  NS_IMETHOD FsObjSetACL(const PRUnichar *path, PRBool followSymlinks, const PRUnichar *acl, PRUint32 mode) { return _to FsObjSetACL(path, followSymlinks, acl, mode); } \
  NS_IMETHOD ProcessCreate(const PRUnichar *executable, PRUint32 argumentsSize, const PRUnichar **arguments, PRUint32 environmentChangesSize, const PRUnichar **environmentChanges, PRUint32 flagsSize, PRUint32 *flags, PRUint32 timeoutMS, IGuestProcess **guestProcess) { return _to ProcessCreate(executable, argumentsSize, arguments, environmentChangesSize, environmentChanges, flagsSize, flags, timeoutMS, guestProcess); } \
  NS_IMETHOD ProcessCreateEx(const PRUnichar *executable, PRUint32 argumentsSize, const PRUnichar **arguments, PRUint32 environmentChangesSize, const PRUnichar **environmentChanges, PRUint32 flagsSize, PRUint32 *flags, PRUint32 timeoutMS, PRUint32 priority, PRUint32 affinitySize, PRInt32 *affinity, IGuestProcess **guestProcess) { return _to ProcessCreateEx(executable, argumentsSize, arguments, environmentChangesSize, environmentChanges, flagsSize, flags, timeoutMS, priority, affinitySize, affinity, guestProcess); } \
  NS_IMETHOD ProcessGet(PRUint32 pid, IGuestProcess **guestProcess) { return _to ProcessGet(pid, guestProcess); } \
  NS_IMETHOD SymlinkCreate(const PRUnichar *symlink, const PRUnichar *target, PRUint32 type) { return _to SymlinkCreate(symlink, target, type); } \
  NS_IMETHOD SymlinkExists(const PRUnichar *symlink, PRBool *exists) { return _to SymlinkExists(symlink, exists); } \
  NS_IMETHOD SymlinkRead(const PRUnichar *symlink, PRUint32 flagsSize, PRUint32 *flags, PRUnichar **target) { return _to SymlinkRead(symlink, flagsSize, flags, target); } \
  NS_IMETHOD WaitFor(PRUint32 waitFor, PRUint32 timeoutMS, PRUint32 *reason) { return _to WaitFor(waitFor, timeoutMS, reason); } \
  NS_IMETHOD WaitForArray(PRUint32 waitForSize, PRUint32 *waitFor, PRUint32 timeoutMS, PRUint32 *reason) { return _to WaitForArray(waitForSize, waitFor, timeoutMS, reason); } \
  NS_IMETHOD InternalAndReservedMethod1IGuestSession(void) { return _to InternalAndReservedMethod1IGuestSession(); } \
  NS_IMETHOD InternalAndReservedMethod2IGuestSession(void) { return _to InternalAndReservedMethod2IGuestSession(); } \
  NS_IMETHOD InternalAndReservedMethod3IGuestSession(void) { return _to InternalAndReservedMethod3IGuestSession(); } \
  NS_IMETHOD InternalAndReservedMethod4IGuestSession(void) { return _to InternalAndReservedMethod4IGuestSession(); } \
  NS_IMETHOD InternalAndReservedMethod5IGuestSession(void) { return _to InternalAndReservedMethod5IGuestSession(); } \
  NS_IMETHOD InternalAndReservedMethod6IGuestSession(void) { return _to InternalAndReservedMethod6IGuestSession(); } \
  NS_IMETHOD InternalAndReservedMethod7IGuestSession(void) { return _to InternalAndReservedMethod7IGuestSession(); } \
  NS_IMETHOD InternalAndReservedMethod8IGuestSession(void) { return _to InternalAndReservedMethod8IGuestSession(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGUESTSESSION(_to) \
  NS_IMETHOD GetUser(PRUnichar * *aUser) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUser(aUser); } \
  NS_IMETHOD GetDomain(PRUnichar * *aDomain) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDomain(aDomain); } \
  NS_IMETHOD GetName(PRUnichar * *aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
  NS_IMETHOD GetId(PRUint32 *aId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetId(aId); } \
  NS_IMETHOD GetTimeout(PRUint32 *aTimeout) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTimeout(aTimeout); } \
  NS_IMETHOD SetTimeout(PRUint32 aTimeout) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetTimeout(aTimeout); } \
  NS_IMETHOD GetProtocolVersion(PRUint32 *aProtocolVersion) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProtocolVersion(aProtocolVersion); } \
  NS_IMETHOD GetStatus(PRUint32 *aStatus) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStatus(aStatus); } \
  NS_IMETHOD GetEnvironmentChanges(PRUint32 *environmentChangesSize, PRUnichar ***environmentChanges) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEnvironmentChanges(environmentChangesSize, environmentChanges); } \
  NS_IMETHOD SetEnvironmentChanges(PRUint32 environmentChangesSize, const PRUnichar **environmentChanges) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetEnvironmentChanges(environmentChangesSize, environmentChanges); } \
  NS_IMETHOD GetEnvironmentBase(PRUint32 *environmentBaseSize, PRUnichar ***environmentBase) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEnvironmentBase(environmentBaseSize, environmentBase); } \
  NS_IMETHOD GetProcesses(PRUint32 *processesSize, IGuestProcess ***processes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProcesses(processesSize, processes); } \
  NS_IMETHOD GetPathStyle(PRUint32 *aPathStyle) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPathStyle(aPathStyle); } \
  NS_IMETHOD GetCurrentDirectory(PRUnichar * *aCurrentDirectory) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCurrentDirectory(aCurrentDirectory); } \
  NS_IMETHOD SetCurrentDirectory(const PRUnichar * aCurrentDirectory) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCurrentDirectory(aCurrentDirectory); } \
  NS_IMETHOD GetDirectories(PRUint32 *directoriesSize, IGuestDirectory ***directories) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDirectories(directoriesSize, directories); } \
  NS_IMETHOD GetFiles(PRUint32 *filesSize, IGuestFile ***files) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFiles(filesSize, files); } \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEventSource(aEventSource); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IGuestSession(PRUint32 *aInternalAndReservedAttribute1IGuestSession) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IGuestSession(aInternalAndReservedAttribute1IGuestSession); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IGuestSession(PRUint32 *aInternalAndReservedAttribute2IGuestSession) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IGuestSession(aInternalAndReservedAttribute2IGuestSession); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IGuestSession(PRUint32 *aInternalAndReservedAttribute3IGuestSession) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IGuestSession(aInternalAndReservedAttribute3IGuestSession); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IGuestSession(PRUint32 *aInternalAndReservedAttribute4IGuestSession) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IGuestSession(aInternalAndReservedAttribute4IGuestSession); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IGuestSession(PRUint32 *aInternalAndReservedAttribute5IGuestSession) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IGuestSession(aInternalAndReservedAttribute5IGuestSession); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IGuestSession(PRUint32 *aInternalAndReservedAttribute6IGuestSession) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IGuestSession(aInternalAndReservedAttribute6IGuestSession); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IGuestSession(PRUint32 *aInternalAndReservedAttribute7IGuestSession) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IGuestSession(aInternalAndReservedAttribute7IGuestSession); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IGuestSession(PRUint32 *aInternalAndReservedAttribute8IGuestSession) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IGuestSession(aInternalAndReservedAttribute8IGuestSession); } \
  NS_IMETHOD Close(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Close(); } \
  NS_IMETHOD DirectoryCopy(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->DirectoryCopy(source, destination, flagsSize, flags, progress); } \
  NS_IMETHOD DirectoryCopyFromGuest(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->DirectoryCopyFromGuest(source, destination, flagsSize, flags, progress); } \
  NS_IMETHOD DirectoryCopyToGuest(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->DirectoryCopyToGuest(source, destination, flagsSize, flags, progress); } \
  NS_IMETHOD DirectoryCreate(const PRUnichar *path, PRUint32 mode, PRUint32 flagsSize, PRUint32 *flags) { return !_to ? NS_ERROR_NULL_POINTER : _to->DirectoryCreate(path, mode, flagsSize, flags); } \
  NS_IMETHOD DirectoryCreateTemp(const PRUnichar *templateName, PRUint32 mode, const PRUnichar *path, PRBool secure, PRUnichar **directory) { return !_to ? NS_ERROR_NULL_POINTER : _to->DirectoryCreateTemp(templateName, mode, path, secure, directory); } \
  NS_IMETHOD DirectoryExists(const PRUnichar *path, PRBool followSymlinks, PRBool *exists) { return !_to ? NS_ERROR_NULL_POINTER : _to->DirectoryExists(path, followSymlinks, exists); } \
  NS_IMETHOD DirectoryOpen(const PRUnichar *path, const PRUnichar *filter, PRUint32 flagsSize, PRUint32 *flags, IGuestDirectory **directory) { return !_to ? NS_ERROR_NULL_POINTER : _to->DirectoryOpen(path, filter, flagsSize, flags, directory); } \
  NS_IMETHOD DirectoryRemove(const PRUnichar *path) { return !_to ? NS_ERROR_NULL_POINTER : _to->DirectoryRemove(path); } \
  NS_IMETHOD DirectoryRemoveRecursive(const PRUnichar *path, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->DirectoryRemoveRecursive(path, flagsSize, flags, progress); } \
  NS_IMETHOD EnvironmentScheduleSet(const PRUnichar *name, const PRUnichar *value) { return !_to ? NS_ERROR_NULL_POINTER : _to->EnvironmentScheduleSet(name, value); } \
  NS_IMETHOD EnvironmentScheduleUnset(const PRUnichar *name) { return !_to ? NS_ERROR_NULL_POINTER : _to->EnvironmentScheduleUnset(name); } \
  NS_IMETHOD EnvironmentGetBaseVariable(const PRUnichar *name, PRUnichar **value) { return !_to ? NS_ERROR_NULL_POINTER : _to->EnvironmentGetBaseVariable(name, value); } \
  NS_IMETHOD EnvironmentDoesBaseVariableExist(const PRUnichar *name, PRBool *exists) { return !_to ? NS_ERROR_NULL_POINTER : _to->EnvironmentDoesBaseVariableExist(name, exists); } \
  NS_IMETHOD FileCopy(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->FileCopy(source, destination, flagsSize, flags, progress); } \
  NS_IMETHOD FileCopyFromGuest(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->FileCopyFromGuest(source, destination, flagsSize, flags, progress); } \
  NS_IMETHOD FileCopyToGuest(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->FileCopyToGuest(source, destination, flagsSize, flags, progress); } \
  NS_IMETHOD FileCreateTemp(const PRUnichar *templateName, PRUint32 mode, const PRUnichar *path, PRBool secure, IGuestFile **file) { return !_to ? NS_ERROR_NULL_POINTER : _to->FileCreateTemp(templateName, mode, path, secure, file); } \
  NS_IMETHOD FileExists(const PRUnichar *path, PRBool followSymlinks, PRBool *exists) { return !_to ? NS_ERROR_NULL_POINTER : _to->FileExists(path, followSymlinks, exists); } \
  NS_IMETHOD FileOpen(const PRUnichar *path, PRUint32 accessMode, PRUint32 openAction, PRUint32 creationMode, IGuestFile **file) { return !_to ? NS_ERROR_NULL_POINTER : _to->FileOpen(path, accessMode, openAction, creationMode, file); } \
  NS_IMETHOD FileOpenEx(const PRUnichar *path, PRUint32 accessMode, PRUint32 openAction, PRUint32 sharingMode, PRUint32 creationMode, PRUint32 flagsSize, PRUint32 *flags, IGuestFile **file) { return !_to ? NS_ERROR_NULL_POINTER : _to->FileOpenEx(path, accessMode, openAction, sharingMode, creationMode, flagsSize, flags, file); } \
  NS_IMETHOD FileQuerySize(const PRUnichar *path, PRBool followSymlinks, PRInt64 *size) { return !_to ? NS_ERROR_NULL_POINTER : _to->FileQuerySize(path, followSymlinks, size); } \
  NS_IMETHOD FsObjExists(const PRUnichar *path, PRBool followSymlinks, PRBool *exists) { return !_to ? NS_ERROR_NULL_POINTER : _to->FsObjExists(path, followSymlinks, exists); } \
  NS_IMETHOD FsObjQueryInfo(const PRUnichar *path, PRBool followSymlinks, IGuestFsObjInfo **info) { return !_to ? NS_ERROR_NULL_POINTER : _to->FsObjQueryInfo(path, followSymlinks, info); } \
  NS_IMETHOD FsObjRemove(const PRUnichar *path) { return !_to ? NS_ERROR_NULL_POINTER : _to->FsObjRemove(path); } \
  NS_IMETHOD FsObjRename(const PRUnichar *oldPath, const PRUnichar *newPath, PRUint32 flagsSize, PRUint32 *flags) { return !_to ? NS_ERROR_NULL_POINTER : _to->FsObjRename(oldPath, newPath, flagsSize, flags); } \
  NS_IMETHOD FsObjMove(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->FsObjMove(source, destination, flagsSize, flags, progress); } \
  NS_IMETHOD FsObjSetACL(const PRUnichar *path, PRBool followSymlinks, const PRUnichar *acl, PRUint32 mode) { return !_to ? NS_ERROR_NULL_POINTER : _to->FsObjSetACL(path, followSymlinks, acl, mode); } \
  NS_IMETHOD ProcessCreate(const PRUnichar *executable, PRUint32 argumentsSize, const PRUnichar **arguments, PRUint32 environmentChangesSize, const PRUnichar **environmentChanges, PRUint32 flagsSize, PRUint32 *flags, PRUint32 timeoutMS, IGuestProcess **guestProcess) { return !_to ? NS_ERROR_NULL_POINTER : _to->ProcessCreate(executable, argumentsSize, arguments, environmentChangesSize, environmentChanges, flagsSize, flags, timeoutMS, guestProcess); } \
  NS_IMETHOD ProcessCreateEx(const PRUnichar *executable, PRUint32 argumentsSize, const PRUnichar **arguments, PRUint32 environmentChangesSize, const PRUnichar **environmentChanges, PRUint32 flagsSize, PRUint32 *flags, PRUint32 timeoutMS, PRUint32 priority, PRUint32 affinitySize, PRInt32 *affinity, IGuestProcess **guestProcess) { return !_to ? NS_ERROR_NULL_POINTER : _to->ProcessCreateEx(executable, argumentsSize, arguments, environmentChangesSize, environmentChanges, flagsSize, flags, timeoutMS, priority, affinitySize, affinity, guestProcess); } \
  NS_IMETHOD ProcessGet(PRUint32 pid, IGuestProcess **guestProcess) { return !_to ? NS_ERROR_NULL_POINTER : _to->ProcessGet(pid, guestProcess); } \
  NS_IMETHOD SymlinkCreate(const PRUnichar *symlink, const PRUnichar *target, PRUint32 type) { return !_to ? NS_ERROR_NULL_POINTER : _to->SymlinkCreate(symlink, target, type); } \
  NS_IMETHOD SymlinkExists(const PRUnichar *symlink, PRBool *exists) { return !_to ? NS_ERROR_NULL_POINTER : _to->SymlinkExists(symlink, exists); } \
  NS_IMETHOD SymlinkRead(const PRUnichar *symlink, PRUint32 flagsSize, PRUint32 *flags, PRUnichar **target) { return !_to ? NS_ERROR_NULL_POINTER : _to->SymlinkRead(symlink, flagsSize, flags, target); } \
  NS_IMETHOD WaitFor(PRUint32 waitFor, PRUint32 timeoutMS, PRUint32 *reason) { return !_to ? NS_ERROR_NULL_POINTER : _to->WaitFor(waitFor, timeoutMS, reason); } \
  NS_IMETHOD WaitForArray(PRUint32 waitForSize, PRUint32 *waitFor, PRUint32 timeoutMS, PRUint32 *reason) { return !_to ? NS_ERROR_NULL_POINTER : _to->WaitForArray(waitForSize, waitFor, timeoutMS, reason); } \
  NS_IMETHOD InternalAndReservedMethod1IGuestSession(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IGuestSession(); } \
  NS_IMETHOD InternalAndReservedMethod2IGuestSession(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IGuestSession(); } \
  NS_IMETHOD InternalAndReservedMethod3IGuestSession(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IGuestSession(); } \
  NS_IMETHOD InternalAndReservedMethod4IGuestSession(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IGuestSession(); } \
  NS_IMETHOD InternalAndReservedMethod5IGuestSession(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod5IGuestSession(); } \
  NS_IMETHOD InternalAndReservedMethod6IGuestSession(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod6IGuestSession(); } \
  NS_IMETHOD InternalAndReservedMethod7IGuestSession(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod7IGuestSession(); } \
  NS_IMETHOD InternalAndReservedMethod8IGuestSession(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod8IGuestSession(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IGuestSession
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IGUESTSESSION

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IGuestSession)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute wstring user; */
NS_IMETHODIMP _MYCLASS_::GetUser(PRUnichar * *aUser)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring domain; */
NS_IMETHODIMP _MYCLASS_::GetDomain(PRUnichar * *aDomain)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring name; */
NS_IMETHODIMP _MYCLASS_::GetName(PRUnichar * *aName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long id; */
NS_IMETHODIMP _MYCLASS_::GetId(PRUint32 *aId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long timeout; */
NS_IMETHODIMP _MYCLASS_::GetTimeout(PRUint32 *aTimeout)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetTimeout(PRUint32 aTimeout)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long protocolVersion; */
NS_IMETHODIMP _MYCLASS_::GetProtocolVersion(PRUint32 *aProtocolVersion)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 status; */
NS_IMETHODIMP _MYCLASS_::GetStatus(PRUint32 *aStatus)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getEnvironmentChanges (out unsigned long environmentChangesSize, [array, size_is (environmentChangesSize), retval] out wstring environmentChanges); */
NS_IMETHODIMP _MYCLASS_::GetEnvironmentChanges(PRUint32 *environmentChangesSize, PRUnichar ***environmentChanges)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setEnvironmentChanges (in unsigned long environmentChangesSize, [array, size_is (environmentChangesSize)] in wstring environmentChanges); */
NS_IMETHODIMP _MYCLASS_::SetEnvironmentChanges(PRUint32 environmentChangesSize, const PRUnichar **environmentChanges)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getEnvironmentBase (out unsigned long environmentBaseSize, [array, size_is (environmentBaseSize), retval] out wstring environmentBase); */
NS_IMETHODIMP _MYCLASS_::GetEnvironmentBase(PRUint32 *environmentBaseSize, PRUnichar ***environmentBase)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getProcesses (out unsigned long processesSize, [array, size_is (processesSize), retval] out IGuestProcess processes); */
NS_IMETHODIMP _MYCLASS_::GetProcesses(PRUint32 *processesSize, IGuestProcess ***processes)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 pathStyle; */
NS_IMETHODIMP _MYCLASS_::GetPathStyle(PRUint32 *aPathStyle)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring currentDirectory; */
NS_IMETHODIMP _MYCLASS_::GetCurrentDirectory(PRUnichar * *aCurrentDirectory)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetCurrentDirectory(const PRUnichar * aCurrentDirectory)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getDirectories (out unsigned long directoriesSize, [array, size_is (directoriesSize), retval] out IGuestDirectory directories); */
NS_IMETHODIMP _MYCLASS_::GetDirectories(PRUint32 *directoriesSize, IGuestDirectory ***directories)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getFiles (out unsigned long filesSize, [array, size_is (filesSize), retval] out IGuestFile files); */
NS_IMETHODIMP _MYCLASS_::GetFiles(PRUint32 *filesSize, IGuestFile ***files)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IEventSource eventSource; */
NS_IMETHODIMP _MYCLASS_::GetEventSource(IEventSource * *aEventSource)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IGuestSession; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IGuestSession(PRUint32 *aInternalAndReservedAttribute1IGuestSession)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IGuestSession; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IGuestSession(PRUint32 *aInternalAndReservedAttribute2IGuestSession)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute3IGuestSession; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute3IGuestSession(PRUint32 *aInternalAndReservedAttribute3IGuestSession)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute4IGuestSession; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute4IGuestSession(PRUint32 *aInternalAndReservedAttribute4IGuestSession)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute5IGuestSession; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute5IGuestSession(PRUint32 *aInternalAndReservedAttribute5IGuestSession)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute6IGuestSession; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute6IGuestSession(PRUint32 *aInternalAndReservedAttribute6IGuestSession)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute7IGuestSession; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute7IGuestSession(PRUint32 *aInternalAndReservedAttribute7IGuestSession)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute8IGuestSession; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute8IGuestSession(PRUint32 *aInternalAndReservedAttribute8IGuestSession)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void close (); */
NS_IMETHODIMP _MYCLASS_::Close()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void directoryCopy (in wstring source, in wstring destination, in unsigned long flagsSize, [array, size_is (flagsSize)] in PRUint32 flags, [retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::DirectoryCopy(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void directoryCopyFromGuest (in wstring source, in wstring destination, in unsigned long flagsSize, [array, size_is (flagsSize)] in PRUint32 flags, [retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::DirectoryCopyFromGuest(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void directoryCopyToGuest (in wstring source, in wstring destination, in unsigned long flagsSize, [array, size_is (flagsSize)] in PRUint32 flags, [retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::DirectoryCopyToGuest(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void directoryCreate (in wstring path, in unsigned long mode, in unsigned long flagsSize, [array, size_is (flagsSize)] in PRUint32 flags); */
NS_IMETHODIMP _MYCLASS_::DirectoryCreate(const PRUnichar *path, PRUint32 mode, PRUint32 flagsSize, PRUint32 *flags)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void directoryCreateTemp (in wstring templateName, in unsigned long mode, in wstring path, in boolean secure, [retval] out wstring directory); */
NS_IMETHODIMP _MYCLASS_::DirectoryCreateTemp(const PRUnichar *templateName, PRUint32 mode, const PRUnichar *path, PRBool secure, PRUnichar **directory)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void directoryExists (in wstring path, in boolean followSymlinks, [retval] out boolean exists); */
NS_IMETHODIMP _MYCLASS_::DirectoryExists(const PRUnichar *path, PRBool followSymlinks, PRBool *exists)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void directoryOpen (in wstring path, in wstring filter, in unsigned long flagsSize, [array, size_is (flagsSize)] in PRUint32 flags, [retval] out IGuestDirectory directory); */
NS_IMETHODIMP _MYCLASS_::DirectoryOpen(const PRUnichar *path, const PRUnichar *filter, PRUint32 flagsSize, PRUint32 *flags, IGuestDirectory **directory)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void directoryRemove (in wstring path); */
NS_IMETHODIMP _MYCLASS_::DirectoryRemove(const PRUnichar *path)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void directoryRemoveRecursive (in wstring path, in unsigned long flagsSize, [array, size_is (flagsSize)] in PRUint32 flags, [retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::DirectoryRemoveRecursive(const PRUnichar *path, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void environmentScheduleSet (in wstring name, in wstring value); */
NS_IMETHODIMP _MYCLASS_::EnvironmentScheduleSet(const PRUnichar *name, const PRUnichar *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void environmentScheduleUnset (in wstring name); */
NS_IMETHODIMP _MYCLASS_::EnvironmentScheduleUnset(const PRUnichar *name)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void environmentGetBaseVariable (in wstring name, [retval] out wstring value); */
NS_IMETHODIMP _MYCLASS_::EnvironmentGetBaseVariable(const PRUnichar *name, PRUnichar **value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void environmentDoesBaseVariableExist (in wstring name, [retval] out boolean exists); */
NS_IMETHODIMP _MYCLASS_::EnvironmentDoesBaseVariableExist(const PRUnichar *name, PRBool *exists)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void fileCopy (in wstring source, in wstring destination, in unsigned long flagsSize, [array, size_is (flagsSize)] in PRUint32 flags, [retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::FileCopy(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void fileCopyFromGuest (in wstring source, in wstring destination, in unsigned long flagsSize, [array, size_is (flagsSize)] in PRUint32 flags, [retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::FileCopyFromGuest(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void fileCopyToGuest (in wstring source, in wstring destination, in unsigned long flagsSize, [array, size_is (flagsSize)] in PRUint32 flags, [retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::FileCopyToGuest(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void fileCreateTemp (in wstring templateName, in unsigned long mode, in wstring path, in boolean secure, [retval] out IGuestFile file); */
NS_IMETHODIMP _MYCLASS_::FileCreateTemp(const PRUnichar *templateName, PRUint32 mode, const PRUnichar *path, PRBool secure, IGuestFile **file)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void fileExists (in wstring path, in boolean followSymlinks, [retval] out boolean exists); */
NS_IMETHODIMP _MYCLASS_::FileExists(const PRUnichar *path, PRBool followSymlinks, PRBool *exists)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void fileOpen (in wstring path, in PRUint32 accessMode, in PRUint32 openAction, in unsigned long creationMode, [retval] out IGuestFile file); */
NS_IMETHODIMP _MYCLASS_::FileOpen(const PRUnichar *path, PRUint32 accessMode, PRUint32 openAction, PRUint32 creationMode, IGuestFile **file)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void fileOpenEx (in wstring path, in PRUint32 accessMode, in PRUint32 openAction, in PRUint32 sharingMode, in unsigned long creationMode, in unsigned long flagsSize, [array, size_is (flagsSize)] in PRUint32 flags, [retval] out IGuestFile file); */
NS_IMETHODIMP _MYCLASS_::FileOpenEx(const PRUnichar *path, PRUint32 accessMode, PRUint32 openAction, PRUint32 sharingMode, PRUint32 creationMode, PRUint32 flagsSize, PRUint32 *flags, IGuestFile **file)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void fileQuerySize (in wstring path, in boolean followSymlinks, [retval] out long long size); */
NS_IMETHODIMP _MYCLASS_::FileQuerySize(const PRUnichar *path, PRBool followSymlinks, PRInt64 *size)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void fsObjExists (in wstring path, in boolean followSymlinks, [retval] out boolean exists); */
NS_IMETHODIMP _MYCLASS_::FsObjExists(const PRUnichar *path, PRBool followSymlinks, PRBool *exists)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void fsObjQueryInfo (in wstring path, in boolean followSymlinks, [retval] out IGuestFsObjInfo info); */
NS_IMETHODIMP _MYCLASS_::FsObjQueryInfo(const PRUnichar *path, PRBool followSymlinks, IGuestFsObjInfo **info)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void fsObjRemove (in wstring path); */
NS_IMETHODIMP _MYCLASS_::FsObjRemove(const PRUnichar *path)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void fsObjRename (in wstring oldPath, in wstring newPath, in unsigned long flagsSize, [array, size_is (flagsSize)] in PRUint32 flags); */
NS_IMETHODIMP _MYCLASS_::FsObjRename(const PRUnichar *oldPath, const PRUnichar *newPath, PRUint32 flagsSize, PRUint32 *flags)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void fsObjMove (in wstring source, in wstring destination, in unsigned long flagsSize, [array, size_is (flagsSize)] in PRUint32 flags, [retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::FsObjMove(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void fsObjSetACL (in wstring path, in boolean followSymlinks, in wstring acl, in unsigned long mode); */
NS_IMETHODIMP _MYCLASS_::FsObjSetACL(const PRUnichar *path, PRBool followSymlinks, const PRUnichar *acl, PRUint32 mode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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 PRUint32 flags, in unsigned long timeoutMS, [retval] out IGuestProcess guestProcess); */
NS_IMETHODIMP _MYCLASS_::ProcessCreate(const PRUnichar *executable, PRUint32 argumentsSize, const PRUnichar **arguments, PRUint32 environmentChangesSize, const PRUnichar **environmentChanges, PRUint32 flagsSize, PRUint32 *flags, PRUint32 timeoutMS, IGuestProcess **guestProcess)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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 PRUint32 flags, in unsigned long timeoutMS, in PRUint32 priority, in unsigned long affinitySize, [array, size_is (affinitySize)] in long affinity, [retval] out IGuestProcess guestProcess); */
NS_IMETHODIMP _MYCLASS_::ProcessCreateEx(const PRUnichar *executable, PRUint32 argumentsSize, const PRUnichar **arguments, PRUint32 environmentChangesSize, const PRUnichar **environmentChanges, PRUint32 flagsSize, PRUint32 *flags, PRUint32 timeoutMS, PRUint32 priority, PRUint32 affinitySize, PRInt32 *affinity, IGuestProcess **guestProcess)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void processGet (in unsigned long pid, [retval] out IGuestProcess guestProcess); */
NS_IMETHODIMP _MYCLASS_::ProcessGet(PRUint32 pid, IGuestProcess **guestProcess)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void symlinkCreate (in wstring symlink, in wstring target, in PRUint32 type); */
NS_IMETHODIMP _MYCLASS_::SymlinkCreate(const PRUnichar *symlink, const PRUnichar *target, PRUint32 type)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void symlinkExists (in wstring symlink, [retval] out boolean exists); */
NS_IMETHODIMP _MYCLASS_::SymlinkExists(const PRUnichar *symlink, PRBool *exists)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void symlinkRead (in wstring symlink, in unsigned long flagsSize, [array, size_is (flagsSize)] in PRUint32 flags, [retval] out wstring target); */
NS_IMETHODIMP _MYCLASS_::SymlinkRead(const PRUnichar *symlink, PRUint32 flagsSize, PRUint32 *flags, PRUnichar **target)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void waitFor (in unsigned long waitFor, in unsigned long timeoutMS, [retval] out PRUint32 reason); */
NS_IMETHODIMP _MYCLASS_::WaitFor(PRUint32 waitFor, PRUint32 timeoutMS, PRUint32 *reason)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void waitForArray (in unsigned long waitForSize, [array, size_is (waitForSize)] in PRUint32 waitFor, in unsigned long timeoutMS, [retval] out PRUint32 reason); */
NS_IMETHODIMP _MYCLASS_::WaitForArray(PRUint32 waitForSize, PRUint32 *waitFor, PRUint32 timeoutMS, PRUint32 *reason)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1IGuestSession (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1IGuestSession()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod2IGuestSession (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod2IGuestSession()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod3IGuestSession (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod3IGuestSession()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod4IGuestSession (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod4IGuestSession()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod5IGuestSession (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod5IGuestSession()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod6IGuestSession (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod6IGuestSession()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod7IGuestSession (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod7IGuestSession()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod8IGuestSession (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod8IGuestSession()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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_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_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_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_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;

/* starting interface:    IProcess */
#define IPROCESS_IID_STR "2e20707d-4325-9a83-83cf-3faf5b97457c"

#define IPROCESS_IID \
  {0x2e20707d, 0x4325, 0x9a83, \
    { 0x83, 0xcf, 0x3f, 0xaf, 0x5b, 0x97, 0x45, 0x7c }}

class NS_NO_VTABLE IProcess : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IPROCESS_IID)

  /* void getArguments (out unsigned long argumentsSize, [array, size_is (argumentsSize), retval] out wstring arguments); */
  NS_IMETHOD GetArguments(PRUint32 *argumentsSize, PRUnichar ***arguments) = 0;

  /* void getEnvironment (out unsigned long environmentSize, [array, size_is (environmentSize), retval] out wstring environment); */
  NS_IMETHOD GetEnvironment(PRUint32 *environmentSize, PRUnichar ***environment) = 0;

  /* readonly attribute IEventSource eventSource; */
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) = 0;

  /* readonly attribute wstring executablePath; */
  NS_IMETHOD GetExecutablePath(PRUnichar * *aExecutablePath) = 0;

  /* readonly attribute long exitCode; */
  NS_IMETHOD GetExitCode(PRInt32 *aExitCode) = 0;

  /* readonly attribute wstring name; */
  NS_IMETHOD GetName(PRUnichar * *aName) = 0;

  /* readonly attribute unsigned long PID; */
  NS_IMETHOD GetPID(PRUint32 *aPID) = 0;

  /* readonly attribute PRUint32 status; */
  NS_IMETHOD GetStatus(PRUint32 *aStatus) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IProcess; */
  NS_IMETHOD GetInternalAndReservedAttribute1IProcess(PRUint32 *aInternalAndReservedAttribute1IProcess) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IProcess; */
  NS_IMETHOD GetInternalAndReservedAttribute2IProcess(PRUint32 *aInternalAndReservedAttribute2IProcess) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IProcess; */
  NS_IMETHOD GetInternalAndReservedAttribute3IProcess(PRUint32 *aInternalAndReservedAttribute3IProcess) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IProcess; */
  NS_IMETHOD GetInternalAndReservedAttribute4IProcess(PRUint32 *aInternalAndReservedAttribute4IProcess) = 0;

  /* void waitFor (in unsigned long waitFor, in unsigned long timeoutMS, [retval] out PRUint32 reason); */
  NS_IMETHOD WaitFor(PRUint32 waitFor, PRUint32 timeoutMS, PRUint32 *reason) = 0;

  /* void waitForArray (in unsigned long waitForSize, [array, size_is (waitForSize)] in PRUint32 waitFor, in unsigned long timeoutMS, [retval] out PRUint32 reason); */
  NS_IMETHOD WaitForArray(PRUint32 waitForSize, PRUint32 *waitFor, PRUint32 timeoutMS, PRUint32 *reason) = 0;

  /* 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); */
  NS_IMETHOD Read(PRUint32 handle, PRUint32 toRead, PRUint32 timeoutMS, PRUint32 *dataSize, PRUint8 **data) = 0;

  /* 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); */
  NS_IMETHOD Write(PRUint32 handle, PRUint32 flags, PRUint32 dataSize, PRUint8 *data, PRUint32 timeoutMS, PRUint32 *written) = 0;

  /* void writeArray (in unsigned long handle, in unsigned long flagsSize, [array, size_is (flagsSize)] in PRUint32 flags, in unsigned long dataSize, [array, size_is (dataSize)] in octet data, in unsigned long timeoutMS, [retval] out unsigned long written); */
  NS_IMETHOD WriteArray(PRUint32 handle, PRUint32 flagsSize, PRUint32 *flags, PRUint32 dataSize, PRUint8 *data, PRUint32 timeoutMS, PRUint32 *written) = 0;

  /* void terminate (); */
  NS_IMETHOD Terminate(void) = 0;

  /* void InternalAndReservedMethod1IProcess (); */
  NS_IMETHOD InternalAndReservedMethod1IProcess(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IPROCESS \
  NS_IMETHOD GetArguments(PRUint32 *argumentsSize, PRUnichar ***arguments); \
  NS_IMETHOD GetEnvironment(PRUint32 *environmentSize, PRUnichar ***environment); \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource); \
  NS_IMETHOD GetExecutablePath(PRUnichar * *aExecutablePath); \
  NS_IMETHOD GetExitCode(PRInt32 *aExitCode); \
  NS_IMETHOD GetName(PRUnichar * *aName); \
  NS_IMETHOD GetPID(PRUint32 *aPID); \
  NS_IMETHOD GetStatus(PRUint32 *aStatus); \
  NS_IMETHOD GetInternalAndReservedAttribute1IProcess(PRUint32 *aInternalAndReservedAttribute1IProcess); \
  NS_IMETHOD GetInternalAndReservedAttribute2IProcess(PRUint32 *aInternalAndReservedAttribute2IProcess); \
  NS_IMETHOD GetInternalAndReservedAttribute3IProcess(PRUint32 *aInternalAndReservedAttribute3IProcess); \
  NS_IMETHOD GetInternalAndReservedAttribute4IProcess(PRUint32 *aInternalAndReservedAttribute4IProcess); \
  NS_IMETHOD WaitFor(PRUint32 waitFor, PRUint32 timeoutMS, PRUint32 *reason); \
  NS_IMETHOD WaitForArray(PRUint32 waitForSize, PRUint32 *waitFor, PRUint32 timeoutMS, PRUint32 *reason); \
  NS_IMETHOD Read(PRUint32 handle, PRUint32 toRead, PRUint32 timeoutMS, PRUint32 *dataSize, PRUint8 **data); \
  NS_IMETHOD Write(PRUint32 handle, PRUint32 flags, PRUint32 dataSize, PRUint8 *data, PRUint32 timeoutMS, PRUint32 *written); \
  NS_IMETHOD WriteArray(PRUint32 handle, PRUint32 flagsSize, PRUint32 *flags, PRUint32 dataSize, PRUint8 *data, PRUint32 timeoutMS, PRUint32 *written); \
  NS_IMETHOD Terminate(void); \
  NS_IMETHOD InternalAndReservedMethod1IProcess(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IPROCESS(_to) \
  NS_IMETHOD GetArguments(PRUint32 *argumentsSize, PRUnichar ***arguments) { return _to GetArguments(argumentsSize, arguments); } \
  NS_IMETHOD GetEnvironment(PRUint32 *environmentSize, PRUnichar ***environment) { return _to GetEnvironment(environmentSize, environment); } \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) { return _to GetEventSource(aEventSource); } \
  NS_IMETHOD GetExecutablePath(PRUnichar * *aExecutablePath) { return _to GetExecutablePath(aExecutablePath); } \
  NS_IMETHOD GetExitCode(PRInt32 *aExitCode) { return _to GetExitCode(aExitCode); } \
  NS_IMETHOD GetName(PRUnichar * *aName) { return _to GetName(aName); } \
  NS_IMETHOD GetPID(PRUint32 *aPID) { return _to GetPID(aPID); } \
  NS_IMETHOD GetStatus(PRUint32 *aStatus) { return _to GetStatus(aStatus); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IProcess(PRUint32 *aInternalAndReservedAttribute1IProcess) { return _to GetInternalAndReservedAttribute1IProcess(aInternalAndReservedAttribute1IProcess); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IProcess(PRUint32 *aInternalAndReservedAttribute2IProcess) { return _to GetInternalAndReservedAttribute2IProcess(aInternalAndReservedAttribute2IProcess); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IProcess(PRUint32 *aInternalAndReservedAttribute3IProcess) { return _to GetInternalAndReservedAttribute3IProcess(aInternalAndReservedAttribute3IProcess); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IProcess(PRUint32 *aInternalAndReservedAttribute4IProcess) { return _to GetInternalAndReservedAttribute4IProcess(aInternalAndReservedAttribute4IProcess); } \
  NS_IMETHOD WaitFor(PRUint32 waitFor, PRUint32 timeoutMS, PRUint32 *reason) { return _to WaitFor(waitFor, timeoutMS, reason); } \
  NS_IMETHOD WaitForArray(PRUint32 waitForSize, PRUint32 *waitFor, PRUint32 timeoutMS, PRUint32 *reason) { return _to WaitForArray(waitForSize, waitFor, timeoutMS, reason); } \
  NS_IMETHOD Read(PRUint32 handle, PRUint32 toRead, PRUint32 timeoutMS, PRUint32 *dataSize, PRUint8 **data) { return _to Read(handle, toRead, timeoutMS, dataSize, data); } \
  NS_IMETHOD Write(PRUint32 handle, PRUint32 flags, PRUint32 dataSize, PRUint8 *data, PRUint32 timeoutMS, PRUint32 *written) { return _to Write(handle, flags, dataSize, data, timeoutMS, written); } \
  NS_IMETHOD WriteArray(PRUint32 handle, PRUint32 flagsSize, PRUint32 *flags, PRUint32 dataSize, PRUint8 *data, PRUint32 timeoutMS, PRUint32 *written) { return _to WriteArray(handle, flagsSize, flags, dataSize, data, timeoutMS, written); } \
  NS_IMETHOD Terminate(void) { return _to Terminate(); } \
  NS_IMETHOD InternalAndReservedMethod1IProcess(void) { return _to InternalAndReservedMethod1IProcess(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IPROCESS(_to) \
  NS_IMETHOD GetArguments(PRUint32 *argumentsSize, PRUnichar ***arguments) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetArguments(argumentsSize, arguments); } \
  NS_IMETHOD GetEnvironment(PRUint32 *environmentSize, PRUnichar ***environment) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEnvironment(environmentSize, environment); } \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEventSource(aEventSource); } \
  NS_IMETHOD GetExecutablePath(PRUnichar * *aExecutablePath) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetExecutablePath(aExecutablePath); } \
  NS_IMETHOD GetExitCode(PRInt32 *aExitCode) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetExitCode(aExitCode); } \
  NS_IMETHOD GetName(PRUnichar * *aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
  NS_IMETHOD GetPID(PRUint32 *aPID) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPID(aPID); } \
  NS_IMETHOD GetStatus(PRUint32 *aStatus) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStatus(aStatus); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IProcess(PRUint32 *aInternalAndReservedAttribute1IProcess) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IProcess(aInternalAndReservedAttribute1IProcess); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IProcess(PRUint32 *aInternalAndReservedAttribute2IProcess) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IProcess(aInternalAndReservedAttribute2IProcess); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IProcess(PRUint32 *aInternalAndReservedAttribute3IProcess) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IProcess(aInternalAndReservedAttribute3IProcess); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IProcess(PRUint32 *aInternalAndReservedAttribute4IProcess) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IProcess(aInternalAndReservedAttribute4IProcess); } \
  NS_IMETHOD WaitFor(PRUint32 waitFor, PRUint32 timeoutMS, PRUint32 *reason) { return !_to ? NS_ERROR_NULL_POINTER : _to->WaitFor(waitFor, timeoutMS, reason); } \
  NS_IMETHOD WaitForArray(PRUint32 waitForSize, PRUint32 *waitFor, PRUint32 timeoutMS, PRUint32 *reason) { return !_to ? NS_ERROR_NULL_POINTER : _to->WaitForArray(waitForSize, waitFor, timeoutMS, reason); } \
  NS_IMETHOD Read(PRUint32 handle, PRUint32 toRead, PRUint32 timeoutMS, PRUint32 *dataSize, PRUint8 **data) { return !_to ? NS_ERROR_NULL_POINTER : _to->Read(handle, toRead, timeoutMS, dataSize, data); } \
  NS_IMETHOD Write(PRUint32 handle, PRUint32 flags, PRUint32 dataSize, PRUint8 *data, PRUint32 timeoutMS, PRUint32 *written) { return !_to ? NS_ERROR_NULL_POINTER : _to->Write(handle, flags, dataSize, data, timeoutMS, written); } \
  NS_IMETHOD WriteArray(PRUint32 handle, PRUint32 flagsSize, PRUint32 *flags, PRUint32 dataSize, PRUint8 *data, PRUint32 timeoutMS, PRUint32 *written) { return !_to ? NS_ERROR_NULL_POINTER : _to->WriteArray(handle, flagsSize, flags, dataSize, data, timeoutMS, written); } \
  NS_IMETHOD Terminate(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Terminate(); } \
  NS_IMETHOD InternalAndReservedMethod1IProcess(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IProcess(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IProcess
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IPROCESS

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IProcess)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* void getArguments (out unsigned long argumentsSize, [array, size_is (argumentsSize), retval] out wstring arguments); */
NS_IMETHODIMP _MYCLASS_::GetArguments(PRUint32 *argumentsSize, PRUnichar ***arguments)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getEnvironment (out unsigned long environmentSize, [array, size_is (environmentSize), retval] out wstring environment); */
NS_IMETHODIMP _MYCLASS_::GetEnvironment(PRUint32 *environmentSize, PRUnichar ***environment)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IEventSource eventSource; */
NS_IMETHODIMP _MYCLASS_::GetEventSource(IEventSource * *aEventSource)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring executablePath; */
NS_IMETHODIMP _MYCLASS_::GetExecutablePath(PRUnichar * *aExecutablePath)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long exitCode; */
NS_IMETHODIMP _MYCLASS_::GetExitCode(PRInt32 *aExitCode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring name; */
NS_IMETHODIMP _MYCLASS_::GetName(PRUnichar * *aName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long PID; */
NS_IMETHODIMP _MYCLASS_::GetPID(PRUint32 *aPID)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 status; */
NS_IMETHODIMP _MYCLASS_::GetStatus(PRUint32 *aStatus)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IProcess; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IProcess(PRUint32 *aInternalAndReservedAttribute1IProcess)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IProcess; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IProcess(PRUint32 *aInternalAndReservedAttribute2IProcess)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute3IProcess; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute3IProcess(PRUint32 *aInternalAndReservedAttribute3IProcess)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute4IProcess; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute4IProcess(PRUint32 *aInternalAndReservedAttribute4IProcess)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void waitFor (in unsigned long waitFor, in unsigned long timeoutMS, [retval] out PRUint32 reason); */
NS_IMETHODIMP _MYCLASS_::WaitFor(PRUint32 waitFor, PRUint32 timeoutMS, PRUint32 *reason)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void waitForArray (in unsigned long waitForSize, [array, size_is (waitForSize)] in PRUint32 waitFor, in unsigned long timeoutMS, [retval] out PRUint32 reason); */
NS_IMETHODIMP _MYCLASS_::WaitForArray(PRUint32 waitForSize, PRUint32 *waitFor, PRUint32 timeoutMS, PRUint32 *reason)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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); */
NS_IMETHODIMP _MYCLASS_::Read(PRUint32 handle, PRUint32 toRead, PRUint32 timeoutMS, PRUint32 *dataSize, PRUint8 **data)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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); */
NS_IMETHODIMP _MYCLASS_::Write(PRUint32 handle, PRUint32 flags, PRUint32 dataSize, PRUint8 *data, PRUint32 timeoutMS, PRUint32 *written)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void writeArray (in unsigned long handle, in unsigned long flagsSize, [array, size_is (flagsSize)] in PRUint32 flags, in unsigned long dataSize, [array, size_is (dataSize)] in octet data, in unsigned long timeoutMS, [retval] out unsigned long written); */
NS_IMETHODIMP _MYCLASS_::WriteArray(PRUint32 handle, PRUint32 flagsSize, PRUint32 *flags, PRUint32 dataSize, PRUint8 *data, PRUint32 timeoutMS, PRUint32 *written)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void terminate (); */
NS_IMETHODIMP _MYCLASS_::Terminate()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1IProcess (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1IProcess()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IGuestProcess */
#define IGUESTPROCESS_IID_STR "35cf4b3f-4453-4f3e-c9b8-5686939c80b6"

#define IGUESTPROCESS_IID \
  {0x35cf4b3f, 0x4453, 0x4f3e, \
    { 0xc9, 0xb8, 0x56, 0x86, 0x93, 0x9c, 0x80, 0xb6 }}

class NS_NO_VTABLE IGuestProcess : public IProcess {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTPROCESS_IID)

  /* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTPROCESS \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTPROCESS(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return _to GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGUESTPROCESS(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IGuestProcess
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IGUESTPROCESS

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IGuestProcess)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
NS_IMETHODIMP _MYCLASS_::GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IDirectory */
#define IDIRECTORY_IID_STR "f73650f4-4506-50ca-045a-23a0e32ea508"

#define IDIRECTORY_IID \
  {0xf73650f4, 0x4506, 0x50ca, \
    { 0x04, 0x5a, 0x23, 0xa0, 0xe3, 0x2e, 0xa5, 0x08 }}

class NS_NO_VTABLE IDirectory : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IDIRECTORY_IID)

  /* readonly attribute wstring directoryName; */
  NS_IMETHOD GetDirectoryName(PRUnichar * *aDirectoryName) = 0;

  /* readonly attribute wstring filter; */
  NS_IMETHOD GetFilter(PRUnichar * *aFilter) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IDirectory; */
  NS_IMETHOD GetInternalAndReservedAttribute1IDirectory(PRUint32 *aInternalAndReservedAttribute1IDirectory) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IDirectory; */
  NS_IMETHOD GetInternalAndReservedAttribute2IDirectory(PRUint32 *aInternalAndReservedAttribute2IDirectory) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IDirectory; */
  NS_IMETHOD GetInternalAndReservedAttribute3IDirectory(PRUint32 *aInternalAndReservedAttribute3IDirectory) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IDirectory; */
  NS_IMETHOD GetInternalAndReservedAttribute4IDirectory(PRUint32 *aInternalAndReservedAttribute4IDirectory) = 0;

  /* void close (); */
  NS_IMETHOD Close(void) = 0;

  /* void read ([retval] out IFsObjInfo objInfo); */
  NS_IMETHOD Read(IFsObjInfo **objInfo) = 0;

  /* void InternalAndReservedMethod1IDirectory (); */
  NS_IMETHOD InternalAndReservedMethod1IDirectory(void) = 0;

  /* void InternalAndReservedMethod2IDirectory (); */
  NS_IMETHOD InternalAndReservedMethod2IDirectory(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IDIRECTORY \
  NS_IMETHOD GetDirectoryName(PRUnichar * *aDirectoryName); \
  NS_IMETHOD GetFilter(PRUnichar * *aFilter); \
  NS_IMETHOD GetInternalAndReservedAttribute1IDirectory(PRUint32 *aInternalAndReservedAttribute1IDirectory); \
  NS_IMETHOD GetInternalAndReservedAttribute2IDirectory(PRUint32 *aInternalAndReservedAttribute2IDirectory); \
  NS_IMETHOD GetInternalAndReservedAttribute3IDirectory(PRUint32 *aInternalAndReservedAttribute3IDirectory); \
  NS_IMETHOD GetInternalAndReservedAttribute4IDirectory(PRUint32 *aInternalAndReservedAttribute4IDirectory); \
  NS_IMETHOD Close(void); \
  NS_IMETHOD Read(IFsObjInfo **objInfo); \
  NS_IMETHOD InternalAndReservedMethod1IDirectory(void); \
  NS_IMETHOD InternalAndReservedMethod2IDirectory(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IDIRECTORY(_to) \
  NS_IMETHOD GetDirectoryName(PRUnichar * *aDirectoryName) { return _to GetDirectoryName(aDirectoryName); } \
  NS_IMETHOD GetFilter(PRUnichar * *aFilter) { return _to GetFilter(aFilter); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IDirectory(PRUint32 *aInternalAndReservedAttribute1IDirectory) { return _to GetInternalAndReservedAttribute1IDirectory(aInternalAndReservedAttribute1IDirectory); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IDirectory(PRUint32 *aInternalAndReservedAttribute2IDirectory) { return _to GetInternalAndReservedAttribute2IDirectory(aInternalAndReservedAttribute2IDirectory); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IDirectory(PRUint32 *aInternalAndReservedAttribute3IDirectory) { return _to GetInternalAndReservedAttribute3IDirectory(aInternalAndReservedAttribute3IDirectory); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IDirectory(PRUint32 *aInternalAndReservedAttribute4IDirectory) { return _to GetInternalAndReservedAttribute4IDirectory(aInternalAndReservedAttribute4IDirectory); } \
  NS_IMETHOD Close(void) { return _to Close(); } \
  NS_IMETHOD Read(IFsObjInfo **objInfo) { return _to Read(objInfo); } \
  NS_IMETHOD InternalAndReservedMethod1IDirectory(void) { return _to InternalAndReservedMethod1IDirectory(); } \
  NS_IMETHOD InternalAndReservedMethod2IDirectory(void) { return _to InternalAndReservedMethod2IDirectory(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IDIRECTORY(_to) \
  NS_IMETHOD GetDirectoryName(PRUnichar * *aDirectoryName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDirectoryName(aDirectoryName); } \
  NS_IMETHOD GetFilter(PRUnichar * *aFilter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFilter(aFilter); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IDirectory(PRUint32 *aInternalAndReservedAttribute1IDirectory) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IDirectory(aInternalAndReservedAttribute1IDirectory); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IDirectory(PRUint32 *aInternalAndReservedAttribute2IDirectory) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IDirectory(aInternalAndReservedAttribute2IDirectory); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IDirectory(PRUint32 *aInternalAndReservedAttribute3IDirectory) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IDirectory(aInternalAndReservedAttribute3IDirectory); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IDirectory(PRUint32 *aInternalAndReservedAttribute4IDirectory) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IDirectory(aInternalAndReservedAttribute4IDirectory); } \
  NS_IMETHOD Close(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Close(); } \
  NS_IMETHOD Read(IFsObjInfo **objInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->Read(objInfo); } \
  NS_IMETHOD InternalAndReservedMethod1IDirectory(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IDirectory(); } \
  NS_IMETHOD InternalAndReservedMethod2IDirectory(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IDirectory(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IDirectory
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IDIRECTORY

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IDirectory)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute wstring directoryName; */
NS_IMETHODIMP _MYCLASS_::GetDirectoryName(PRUnichar * *aDirectoryName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring filter; */
NS_IMETHODIMP _MYCLASS_::GetFilter(PRUnichar * *aFilter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IDirectory; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IDirectory(PRUint32 *aInternalAndReservedAttribute1IDirectory)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IDirectory; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IDirectory(PRUint32 *aInternalAndReservedAttribute2IDirectory)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute3IDirectory; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute3IDirectory(PRUint32 *aInternalAndReservedAttribute3IDirectory)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute4IDirectory; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute4IDirectory(PRUint32 *aInternalAndReservedAttribute4IDirectory)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void close (); */
NS_IMETHODIMP _MYCLASS_::Close()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void read ([retval] out IFsObjInfo objInfo); */
NS_IMETHODIMP _MYCLASS_::Read(IFsObjInfo **objInfo)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1IDirectory (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1IDirectory()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod2IDirectory (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod2IDirectory()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IGuestDirectory */
#define IGUESTDIRECTORY_IID_STR "cc830458-4974-a19c-4dc6-cc98c2269626"

#define IGUESTDIRECTORY_IID \
  {0xcc830458, 0x4974, 0xa19c, \
    { 0x4d, 0xc6, 0xcc, 0x98, 0xc2, 0x26, 0x96, 0x26 }}

class NS_NO_VTABLE IGuestDirectory : public IDirectory {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTDIRECTORY_IID)

  /* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTDIRECTORY \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTDIRECTORY(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return _to GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGUESTDIRECTORY(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IGuestDirectory
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IGUESTDIRECTORY

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IGuestDirectory)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
NS_IMETHODIMP _MYCLASS_::GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IFile */
#define IFILE_IID_STR "14c66b23-404c-f24a-3cc1-ee9501d44f2a"

#define IFILE_IID \
  {0x14c66b23, 0x404c, 0xf24a, \
    { 0x3c, 0xc1, 0xee, 0x95, 0x01, 0xd4, 0x4f, 0x2a }}

class NS_NO_VTABLE IFile : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IFILE_IID)

  /* readonly attribute IEventSource eventSource; */
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) = 0;

  /* readonly attribute unsigned long id; */
  NS_IMETHOD GetId(PRUint32 *aId) = 0;

  /* readonly attribute long long initialSize; */
  NS_IMETHOD GetInitialSize(PRInt64 *aInitialSize) = 0;

  /* readonly attribute long long offset; */
  NS_IMETHOD GetOffset(PRInt64 *aOffset) = 0;

  /* readonly attribute PRUint32 status; */
  NS_IMETHOD GetStatus(PRUint32 *aStatus) = 0;

  /* readonly attribute wstring fileName; */
  NS_IMETHOD GetFileName(PRUnichar * *aFileName) = 0;

  /* readonly attribute unsigned long creationMode; */
  NS_IMETHOD GetCreationMode(PRUint32 *aCreationMode) = 0;

  /* readonly attribute PRUint32 openAction; */
  NS_IMETHOD GetOpenAction(PRUint32 *aOpenAction) = 0;

  /* readonly attribute PRUint32 accessMode; */
  NS_IMETHOD GetAccessMode(PRUint32 *aAccessMode) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IFile; */
  NS_IMETHOD GetInternalAndReservedAttribute1IFile(PRUint32 *aInternalAndReservedAttribute1IFile) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IFile; */
  NS_IMETHOD GetInternalAndReservedAttribute2IFile(PRUint32 *aInternalAndReservedAttribute2IFile) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IFile; */
  NS_IMETHOD GetInternalAndReservedAttribute3IFile(PRUint32 *aInternalAndReservedAttribute3IFile) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IFile; */
  NS_IMETHOD GetInternalAndReservedAttribute4IFile(PRUint32 *aInternalAndReservedAttribute4IFile) = 0;

  /* void close (); */
  NS_IMETHOD Close(void) = 0;

  /* void queryInfo ([retval] out IFsObjInfo objInfo); */
  NS_IMETHOD QueryInfo(IFsObjInfo **objInfo) = 0;

  /* void querySize ([retval] out long long size); */
  NS_IMETHOD QuerySize(PRInt64 *size) = 0;

  /* void read (in unsigned long toRead, in unsigned long timeoutMS, out unsigned long dataSize, [array, size_is (dataSize), retval] out octet data); */
  NS_IMETHOD Read(PRUint32 toRead, PRUint32 timeoutMS, PRUint32 *dataSize, PRUint8 **data) = 0;

  /* 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); */
  NS_IMETHOD ReadAt(PRInt64 offset, PRUint32 toRead, PRUint32 timeoutMS, PRUint32 *dataSize, PRUint8 **data) = 0;

  /* void seek (in long long offset, in PRUint32 whence, [retval] out long long newOffset); */
  NS_IMETHOD Seek(PRInt64 offset, PRUint32 whence, PRInt64 *newOffset) = 0;

  /* void setACL (in wstring acl, in unsigned long mode); */
  NS_IMETHOD SetACL(const PRUnichar *acl, PRUint32 mode) = 0;

  /* void setSize (in long long size); */
  NS_IMETHOD SetSize(PRInt64 size) = 0;

  /* void write (in unsigned long dataSize, [array, size_is (dataSize)] in octet data, in unsigned long timeoutMS, [retval] out unsigned long written); */
  NS_IMETHOD Write(PRUint32 dataSize, PRUint8 *data, PRUint32 timeoutMS, PRUint32 *written) = 0;

  /* 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); */
  NS_IMETHOD WriteAt(PRInt64 offset, PRUint32 dataSize, PRUint8 *data, PRUint32 timeoutMS, PRUint32 *written) = 0;

  /* void InternalAndReservedMethod1IFile (); */
  NS_IMETHOD InternalAndReservedMethod1IFile(void) = 0;

  /* void InternalAndReservedMethod2IFile (); */
  NS_IMETHOD InternalAndReservedMethod2IFile(void) = 0;

  /* void InternalAndReservedMethod3IFile (); */
  NS_IMETHOD InternalAndReservedMethod3IFile(void) = 0;

  /* void InternalAndReservedMethod4IFile (); */
  NS_IMETHOD InternalAndReservedMethod4IFile(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IFILE \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource); \
  NS_IMETHOD GetId(PRUint32 *aId); \
  NS_IMETHOD GetInitialSize(PRInt64 *aInitialSize); \
  NS_IMETHOD GetOffset(PRInt64 *aOffset); \
  NS_IMETHOD GetStatus(PRUint32 *aStatus); \
  NS_IMETHOD GetFileName(PRUnichar * *aFileName); \
  NS_IMETHOD GetCreationMode(PRUint32 *aCreationMode); \
  NS_IMETHOD GetOpenAction(PRUint32 *aOpenAction); \
  NS_IMETHOD GetAccessMode(PRUint32 *aAccessMode); \
  NS_IMETHOD GetInternalAndReservedAttribute1IFile(PRUint32 *aInternalAndReservedAttribute1IFile); \
  NS_IMETHOD GetInternalAndReservedAttribute2IFile(PRUint32 *aInternalAndReservedAttribute2IFile); \
  NS_IMETHOD GetInternalAndReservedAttribute3IFile(PRUint32 *aInternalAndReservedAttribute3IFile); \
  NS_IMETHOD GetInternalAndReservedAttribute4IFile(PRUint32 *aInternalAndReservedAttribute4IFile); \
  NS_IMETHOD Close(void); \
  NS_IMETHOD QueryInfo(IFsObjInfo **objInfo); \
  NS_IMETHOD QuerySize(PRInt64 *size); \
  NS_IMETHOD Read(PRUint32 toRead, PRUint32 timeoutMS, PRUint32 *dataSize, PRUint8 **data); \
  NS_IMETHOD ReadAt(PRInt64 offset, PRUint32 toRead, PRUint32 timeoutMS, PRUint32 *dataSize, PRUint8 **data); \
  NS_IMETHOD Seek(PRInt64 offset, PRUint32 whence, PRInt64 *newOffset); \
  NS_IMETHOD SetACL(const PRUnichar *acl, PRUint32 mode); \
  NS_IMETHOD SetSize(PRInt64 size); \
  NS_IMETHOD Write(PRUint32 dataSize, PRUint8 *data, PRUint32 timeoutMS, PRUint32 *written); \
  NS_IMETHOD WriteAt(PRInt64 offset, PRUint32 dataSize, PRUint8 *data, PRUint32 timeoutMS, PRUint32 *written); \
  NS_IMETHOD InternalAndReservedMethod1IFile(void); \
  NS_IMETHOD InternalAndReservedMethod2IFile(void); \
  NS_IMETHOD InternalAndReservedMethod3IFile(void); \
  NS_IMETHOD InternalAndReservedMethod4IFile(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IFILE(_to) \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) { return _to GetEventSource(aEventSource); } \
  NS_IMETHOD GetId(PRUint32 *aId) { return _to GetId(aId); } \
  NS_IMETHOD GetInitialSize(PRInt64 *aInitialSize) { return _to GetInitialSize(aInitialSize); } \
  NS_IMETHOD GetOffset(PRInt64 *aOffset) { return _to GetOffset(aOffset); } \
  NS_IMETHOD GetStatus(PRUint32 *aStatus) { return _to GetStatus(aStatus); } \
  NS_IMETHOD GetFileName(PRUnichar * *aFileName) { return _to GetFileName(aFileName); } \
  NS_IMETHOD GetCreationMode(PRUint32 *aCreationMode) { return _to GetCreationMode(aCreationMode); } \
  NS_IMETHOD GetOpenAction(PRUint32 *aOpenAction) { return _to GetOpenAction(aOpenAction); } \
  NS_IMETHOD GetAccessMode(PRUint32 *aAccessMode) { return _to GetAccessMode(aAccessMode); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IFile(PRUint32 *aInternalAndReservedAttribute1IFile) { return _to GetInternalAndReservedAttribute1IFile(aInternalAndReservedAttribute1IFile); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IFile(PRUint32 *aInternalAndReservedAttribute2IFile) { return _to GetInternalAndReservedAttribute2IFile(aInternalAndReservedAttribute2IFile); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IFile(PRUint32 *aInternalAndReservedAttribute3IFile) { return _to GetInternalAndReservedAttribute3IFile(aInternalAndReservedAttribute3IFile); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IFile(PRUint32 *aInternalAndReservedAttribute4IFile) { return _to GetInternalAndReservedAttribute4IFile(aInternalAndReservedAttribute4IFile); } \
  NS_IMETHOD Close(void) { return _to Close(); } \
  NS_IMETHOD QueryInfo(IFsObjInfo **objInfo) { return _to QueryInfo(objInfo); } \
  NS_IMETHOD QuerySize(PRInt64 *size) { return _to QuerySize(size); } \
  NS_IMETHOD Read(PRUint32 toRead, PRUint32 timeoutMS, PRUint32 *dataSize, PRUint8 **data) { return _to Read(toRead, timeoutMS, dataSize, data); } \
  NS_IMETHOD ReadAt(PRInt64 offset, PRUint32 toRead, PRUint32 timeoutMS, PRUint32 *dataSize, PRUint8 **data) { return _to ReadAt(offset, toRead, timeoutMS, dataSize, data); } \
  NS_IMETHOD Seek(PRInt64 offset, PRUint32 whence, PRInt64 *newOffset) { return _to Seek(offset, whence, newOffset); } \
  NS_IMETHOD SetACL(const PRUnichar *acl, PRUint32 mode) { return _to SetACL(acl, mode); } \
  NS_IMETHOD SetSize(PRInt64 size) { return _to SetSize(size); } \
  NS_IMETHOD Write(PRUint32 dataSize, PRUint8 *data, PRUint32 timeoutMS, PRUint32 *written) { return _to Write(dataSize, data, timeoutMS, written); } \
  NS_IMETHOD WriteAt(PRInt64 offset, PRUint32 dataSize, PRUint8 *data, PRUint32 timeoutMS, PRUint32 *written) { return _to WriteAt(offset, dataSize, data, timeoutMS, written); } \
  NS_IMETHOD InternalAndReservedMethod1IFile(void) { return _to InternalAndReservedMethod1IFile(); } \
  NS_IMETHOD InternalAndReservedMethod2IFile(void) { return _to InternalAndReservedMethod2IFile(); } \
  NS_IMETHOD InternalAndReservedMethod3IFile(void) { return _to InternalAndReservedMethod3IFile(); } \
  NS_IMETHOD InternalAndReservedMethod4IFile(void) { return _to InternalAndReservedMethod4IFile(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IFILE(_to) \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEventSource(aEventSource); } \
  NS_IMETHOD GetId(PRUint32 *aId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetId(aId); } \
  NS_IMETHOD GetInitialSize(PRInt64 *aInitialSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInitialSize(aInitialSize); } \
  NS_IMETHOD GetOffset(PRInt64 *aOffset) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOffset(aOffset); } \
  NS_IMETHOD GetStatus(PRUint32 *aStatus) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStatus(aStatus); } \
  NS_IMETHOD GetFileName(PRUnichar * *aFileName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFileName(aFileName); } \
  NS_IMETHOD GetCreationMode(PRUint32 *aCreationMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCreationMode(aCreationMode); } \
  NS_IMETHOD GetOpenAction(PRUint32 *aOpenAction) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOpenAction(aOpenAction); } \
  NS_IMETHOD GetAccessMode(PRUint32 *aAccessMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAccessMode(aAccessMode); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IFile(PRUint32 *aInternalAndReservedAttribute1IFile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IFile(aInternalAndReservedAttribute1IFile); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IFile(PRUint32 *aInternalAndReservedAttribute2IFile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IFile(aInternalAndReservedAttribute2IFile); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IFile(PRUint32 *aInternalAndReservedAttribute3IFile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IFile(aInternalAndReservedAttribute3IFile); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IFile(PRUint32 *aInternalAndReservedAttribute4IFile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IFile(aInternalAndReservedAttribute4IFile); } \
  NS_IMETHOD Close(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Close(); } \
  NS_IMETHOD QueryInfo(IFsObjInfo **objInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->QueryInfo(objInfo); } \
  NS_IMETHOD QuerySize(PRInt64 *size) { return !_to ? NS_ERROR_NULL_POINTER : _to->QuerySize(size); } \
  NS_IMETHOD Read(PRUint32 toRead, PRUint32 timeoutMS, PRUint32 *dataSize, PRUint8 **data) { return !_to ? NS_ERROR_NULL_POINTER : _to->Read(toRead, timeoutMS, dataSize, data); } \
  NS_IMETHOD ReadAt(PRInt64 offset, PRUint32 toRead, PRUint32 timeoutMS, PRUint32 *dataSize, PRUint8 **data) { return !_to ? NS_ERROR_NULL_POINTER : _to->ReadAt(offset, toRead, timeoutMS, dataSize, data); } \
  NS_IMETHOD Seek(PRInt64 offset, PRUint32 whence, PRInt64 *newOffset) { return !_to ? NS_ERROR_NULL_POINTER : _to->Seek(offset, whence, newOffset); } \
  NS_IMETHOD SetACL(const PRUnichar *acl, PRUint32 mode) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetACL(acl, mode); } \
  NS_IMETHOD SetSize(PRInt64 size) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSize(size); } \
  NS_IMETHOD Write(PRUint32 dataSize, PRUint8 *data, PRUint32 timeoutMS, PRUint32 *written) { return !_to ? NS_ERROR_NULL_POINTER : _to->Write(dataSize, data, timeoutMS, written); } \
  NS_IMETHOD WriteAt(PRInt64 offset, PRUint32 dataSize, PRUint8 *data, PRUint32 timeoutMS, PRUint32 *written) { return !_to ? NS_ERROR_NULL_POINTER : _to->WriteAt(offset, dataSize, data, timeoutMS, written); } \
  NS_IMETHOD InternalAndReservedMethod1IFile(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IFile(); } \
  NS_IMETHOD InternalAndReservedMethod2IFile(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IFile(); } \
  NS_IMETHOD InternalAndReservedMethod3IFile(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IFile(); } \
  NS_IMETHOD InternalAndReservedMethod4IFile(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IFile(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IFile
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IFILE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IFile)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute IEventSource eventSource; */
NS_IMETHODIMP _MYCLASS_::GetEventSource(IEventSource * *aEventSource)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long id; */
NS_IMETHODIMP _MYCLASS_::GetId(PRUint32 *aId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long long initialSize; */
NS_IMETHODIMP _MYCLASS_::GetInitialSize(PRInt64 *aInitialSize)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long long offset; */
NS_IMETHODIMP _MYCLASS_::GetOffset(PRInt64 *aOffset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 status; */
NS_IMETHODIMP _MYCLASS_::GetStatus(PRUint32 *aStatus)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring fileName; */
NS_IMETHODIMP _MYCLASS_::GetFileName(PRUnichar * *aFileName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long creationMode; */
NS_IMETHODIMP _MYCLASS_::GetCreationMode(PRUint32 *aCreationMode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 openAction; */
NS_IMETHODIMP _MYCLASS_::GetOpenAction(PRUint32 *aOpenAction)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 accessMode; */
NS_IMETHODIMP _MYCLASS_::GetAccessMode(PRUint32 *aAccessMode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IFile; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IFile(PRUint32 *aInternalAndReservedAttribute1IFile)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IFile; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IFile(PRUint32 *aInternalAndReservedAttribute2IFile)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute3IFile; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute3IFile(PRUint32 *aInternalAndReservedAttribute3IFile)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute4IFile; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute4IFile(PRUint32 *aInternalAndReservedAttribute4IFile)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void close (); */
NS_IMETHODIMP _MYCLASS_::Close()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void queryInfo ([retval] out IFsObjInfo objInfo); */
NS_IMETHODIMP _MYCLASS_::QueryInfo(IFsObjInfo **objInfo)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void querySize ([retval] out long long size); */
NS_IMETHODIMP _MYCLASS_::QuerySize(PRInt64 *size)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void read (in unsigned long toRead, in unsigned long timeoutMS, out unsigned long dataSize, [array, size_is (dataSize), retval] out octet data); */
NS_IMETHODIMP _MYCLASS_::Read(PRUint32 toRead, PRUint32 timeoutMS, PRUint32 *dataSize, PRUint8 **data)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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); */
NS_IMETHODIMP _MYCLASS_::ReadAt(PRInt64 offset, PRUint32 toRead, PRUint32 timeoutMS, PRUint32 *dataSize, PRUint8 **data)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void seek (in long long offset, in PRUint32 whence, [retval] out long long newOffset); */
NS_IMETHODIMP _MYCLASS_::Seek(PRInt64 offset, PRUint32 whence, PRInt64 *newOffset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setACL (in wstring acl, in unsigned long mode); */
NS_IMETHODIMP _MYCLASS_::SetACL(const PRUnichar *acl, PRUint32 mode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setSize (in long long size); */
NS_IMETHODIMP _MYCLASS_::SetSize(PRInt64 size)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void write (in unsigned long dataSize, [array, size_is (dataSize)] in octet data, in unsigned long timeoutMS, [retval] out unsigned long written); */
NS_IMETHODIMP _MYCLASS_::Write(PRUint32 dataSize, PRUint8 *data, PRUint32 timeoutMS, PRUint32 *written)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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); */
NS_IMETHODIMP _MYCLASS_::WriteAt(PRInt64 offset, PRUint32 dataSize, PRUint8 *data, PRUint32 timeoutMS, PRUint32 *written)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1IFile (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1IFile()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod2IFile (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod2IFile()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod3IFile (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod3IFile()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod4IFile (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod4IFile()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IGuestFile */
#define IGUESTFILE_IID_STR "92f21dc0-44de-1653-b717-2ebf0ca9b664"

#define IGUESTFILE_IID \
  {0x92f21dc0, 0x44de, 0x1653, \
    { 0xb7, 0x17, 0x2e, 0xbf, 0x0c, 0xa9, 0xb6, 0x64 }}

class NS_NO_VTABLE IGuestFile : public IFile {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTFILE_IID)

  /* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTFILE \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTFILE(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return _to GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGUESTFILE(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IGuestFile
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IGUESTFILE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IGuestFile)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
NS_IMETHODIMP _MYCLASS_::GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IFsObjInfo */
#define IFSOBJINFO_IID_STR "d344626e-4b0a-10bc-9c2b-68973052de16"

#define IFSOBJINFO_IID \
  {0xd344626e, 0x4b0a, 0x10bc, \
    { 0x9c, 0x2b, 0x68, 0x97, 0x30, 0x52, 0xde, 0x16 }}

class NS_NO_VTABLE IFsObjInfo : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IFSOBJINFO_IID)

  /* readonly attribute long long accessTime; */
  NS_IMETHOD GetAccessTime(PRInt64 *aAccessTime) = 0;

  /* readonly attribute long long allocatedSize; */
  NS_IMETHOD GetAllocatedSize(PRInt64 *aAllocatedSize) = 0;

  /* readonly attribute long long birthTime; */
  NS_IMETHOD GetBirthTime(PRInt64 *aBirthTime) = 0;

  /* readonly attribute long long changeTime; */
  NS_IMETHOD GetChangeTime(PRInt64 *aChangeTime) = 0;

  /* readonly attribute unsigned long deviceNumber; */
  NS_IMETHOD GetDeviceNumber(PRUint32 *aDeviceNumber) = 0;

  /* readonly attribute wstring fileAttributes; */
  NS_IMETHOD GetFileAttributes(PRUnichar * *aFileAttributes) = 0;

  /* readonly attribute unsigned long generationId; */
  NS_IMETHOD GetGenerationId(PRUint32 *aGenerationId) = 0;

  /* readonly attribute unsigned long GID; */
  NS_IMETHOD GetGID(PRUint32 *aGID) = 0;

  /* readonly attribute wstring groupName; */
  NS_IMETHOD GetGroupName(PRUnichar * *aGroupName) = 0;

  /* readonly attribute unsigned long hardLinks; */
  NS_IMETHOD GetHardLinks(PRUint32 *aHardLinks) = 0;

  /* readonly attribute long long modificationTime; */
  NS_IMETHOD GetModificationTime(PRInt64 *aModificationTime) = 0;

  /* readonly attribute wstring name; */
  NS_IMETHOD GetName(PRUnichar * *aName) = 0;

  /* readonly attribute long long nodeId; */
  NS_IMETHOD GetNodeId(PRInt64 *aNodeId) = 0;

  /* readonly attribute unsigned long nodeIdDevice; */
  NS_IMETHOD GetNodeIdDevice(PRUint32 *aNodeIdDevice) = 0;

  /* readonly attribute long long objectSize; */
  NS_IMETHOD GetObjectSize(PRInt64 *aObjectSize) = 0;

  /* readonly attribute PRUint32 type; */
  NS_IMETHOD GetType(PRUint32 *aType) = 0;

  /* readonly attribute unsigned long UID; */
  NS_IMETHOD GetUID(PRUint32 *aUID) = 0;

  /* readonly attribute unsigned long userFlags; */
  NS_IMETHOD GetUserFlags(PRUint32 *aUserFlags) = 0;

  /* readonly attribute wstring userName; */
  NS_IMETHOD GetUserName(PRUnichar * *aUserName) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IFsObjInfo; */
  NS_IMETHOD GetInternalAndReservedAttribute1IFsObjInfo(PRUint32 *aInternalAndReservedAttribute1IFsObjInfo) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IFsObjInfo; */
  NS_IMETHOD GetInternalAndReservedAttribute2IFsObjInfo(PRUint32 *aInternalAndReservedAttribute2IFsObjInfo) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IFsObjInfo; */
  NS_IMETHOD GetInternalAndReservedAttribute3IFsObjInfo(PRUint32 *aInternalAndReservedAttribute3IFsObjInfo) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IFsObjInfo; */
  NS_IMETHOD GetInternalAndReservedAttribute4IFsObjInfo(PRUint32 *aInternalAndReservedAttribute4IFsObjInfo) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IFSOBJINFO \
  NS_IMETHOD GetAccessTime(PRInt64 *aAccessTime); \
  NS_IMETHOD GetAllocatedSize(PRInt64 *aAllocatedSize); \
  NS_IMETHOD GetBirthTime(PRInt64 *aBirthTime); \
  NS_IMETHOD GetChangeTime(PRInt64 *aChangeTime); \
  NS_IMETHOD GetDeviceNumber(PRUint32 *aDeviceNumber); \
  NS_IMETHOD GetFileAttributes(PRUnichar * *aFileAttributes); \
  NS_IMETHOD GetGenerationId(PRUint32 *aGenerationId); \
  NS_IMETHOD GetGID(PRUint32 *aGID); \
  NS_IMETHOD GetGroupName(PRUnichar * *aGroupName); \
  NS_IMETHOD GetHardLinks(PRUint32 *aHardLinks); \
  NS_IMETHOD GetModificationTime(PRInt64 *aModificationTime); \
  NS_IMETHOD GetName(PRUnichar * *aName); \
  NS_IMETHOD GetNodeId(PRInt64 *aNodeId); \
  NS_IMETHOD GetNodeIdDevice(PRUint32 *aNodeIdDevice); \
  NS_IMETHOD GetObjectSize(PRInt64 *aObjectSize); \
  NS_IMETHOD GetType(PRUint32 *aType); \
  NS_IMETHOD GetUID(PRUint32 *aUID); \
  NS_IMETHOD GetUserFlags(PRUint32 *aUserFlags); \
  NS_IMETHOD GetUserName(PRUnichar * *aUserName); \
  NS_IMETHOD GetInternalAndReservedAttribute1IFsObjInfo(PRUint32 *aInternalAndReservedAttribute1IFsObjInfo); \
  NS_IMETHOD GetInternalAndReservedAttribute2IFsObjInfo(PRUint32 *aInternalAndReservedAttribute2IFsObjInfo); \
  NS_IMETHOD GetInternalAndReservedAttribute3IFsObjInfo(PRUint32 *aInternalAndReservedAttribute3IFsObjInfo); \
  NS_IMETHOD GetInternalAndReservedAttribute4IFsObjInfo(PRUint32 *aInternalAndReservedAttribute4IFsObjInfo); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IFSOBJINFO(_to) \
  NS_IMETHOD GetAccessTime(PRInt64 *aAccessTime) { return _to GetAccessTime(aAccessTime); } \
  NS_IMETHOD GetAllocatedSize(PRInt64 *aAllocatedSize) { return _to GetAllocatedSize(aAllocatedSize); } \
  NS_IMETHOD GetBirthTime(PRInt64 *aBirthTime) { return _to GetBirthTime(aBirthTime); } \
  NS_IMETHOD GetChangeTime(PRInt64 *aChangeTime) { return _to GetChangeTime(aChangeTime); } \
  NS_IMETHOD GetDeviceNumber(PRUint32 *aDeviceNumber) { return _to GetDeviceNumber(aDeviceNumber); } \
  NS_IMETHOD GetFileAttributes(PRUnichar * *aFileAttributes) { return _to GetFileAttributes(aFileAttributes); } \
  NS_IMETHOD GetGenerationId(PRUint32 *aGenerationId) { return _to GetGenerationId(aGenerationId); } \
  NS_IMETHOD GetGID(PRUint32 *aGID) { return _to GetGID(aGID); } \
  NS_IMETHOD GetGroupName(PRUnichar * *aGroupName) { return _to GetGroupName(aGroupName); } \
  NS_IMETHOD GetHardLinks(PRUint32 *aHardLinks) { return _to GetHardLinks(aHardLinks); } \
  NS_IMETHOD GetModificationTime(PRInt64 *aModificationTime) { return _to GetModificationTime(aModificationTime); } \
  NS_IMETHOD GetName(PRUnichar * *aName) { return _to GetName(aName); } \
  NS_IMETHOD GetNodeId(PRInt64 *aNodeId) { return _to GetNodeId(aNodeId); } \
  NS_IMETHOD GetNodeIdDevice(PRUint32 *aNodeIdDevice) { return _to GetNodeIdDevice(aNodeIdDevice); } \
  NS_IMETHOD GetObjectSize(PRInt64 *aObjectSize) { return _to GetObjectSize(aObjectSize); } \
  NS_IMETHOD GetType(PRUint32 *aType) { return _to GetType(aType); } \
  NS_IMETHOD GetUID(PRUint32 *aUID) { return _to GetUID(aUID); } \
  NS_IMETHOD GetUserFlags(PRUint32 *aUserFlags) { return _to GetUserFlags(aUserFlags); } \
  NS_IMETHOD GetUserName(PRUnichar * *aUserName) { return _to GetUserName(aUserName); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IFsObjInfo(PRUint32 *aInternalAndReservedAttribute1IFsObjInfo) { return _to GetInternalAndReservedAttribute1IFsObjInfo(aInternalAndReservedAttribute1IFsObjInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IFsObjInfo(PRUint32 *aInternalAndReservedAttribute2IFsObjInfo) { return _to GetInternalAndReservedAttribute2IFsObjInfo(aInternalAndReservedAttribute2IFsObjInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IFsObjInfo(PRUint32 *aInternalAndReservedAttribute3IFsObjInfo) { return _to GetInternalAndReservedAttribute3IFsObjInfo(aInternalAndReservedAttribute3IFsObjInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IFsObjInfo(PRUint32 *aInternalAndReservedAttribute4IFsObjInfo) { return _to GetInternalAndReservedAttribute4IFsObjInfo(aInternalAndReservedAttribute4IFsObjInfo); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IFSOBJINFO(_to) \
  NS_IMETHOD GetAccessTime(PRInt64 *aAccessTime) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAccessTime(aAccessTime); } \
  NS_IMETHOD GetAllocatedSize(PRInt64 *aAllocatedSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAllocatedSize(aAllocatedSize); } \
  NS_IMETHOD GetBirthTime(PRInt64 *aBirthTime) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBirthTime(aBirthTime); } \
  NS_IMETHOD GetChangeTime(PRInt64 *aChangeTime) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetChangeTime(aChangeTime); } \
  NS_IMETHOD GetDeviceNumber(PRUint32 *aDeviceNumber) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDeviceNumber(aDeviceNumber); } \
  NS_IMETHOD GetFileAttributes(PRUnichar * *aFileAttributes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFileAttributes(aFileAttributes); } \
  NS_IMETHOD GetGenerationId(PRUint32 *aGenerationId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGenerationId(aGenerationId); } \
  NS_IMETHOD GetGID(PRUint32 *aGID) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGID(aGID); } \
  NS_IMETHOD GetGroupName(PRUnichar * *aGroupName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGroupName(aGroupName); } \
  NS_IMETHOD GetHardLinks(PRUint32 *aHardLinks) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHardLinks(aHardLinks); } \
  NS_IMETHOD GetModificationTime(PRInt64 *aModificationTime) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetModificationTime(aModificationTime); } \
  NS_IMETHOD GetName(PRUnichar * *aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
  NS_IMETHOD GetNodeId(PRInt64 *aNodeId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNodeId(aNodeId); } \
  NS_IMETHOD GetNodeIdDevice(PRUint32 *aNodeIdDevice) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNodeIdDevice(aNodeIdDevice); } \
  NS_IMETHOD GetObjectSize(PRInt64 *aObjectSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetObjectSize(aObjectSize); } \
  NS_IMETHOD GetType(PRUint32 *aType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetType(aType); } \
  NS_IMETHOD GetUID(PRUint32 *aUID) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUID(aUID); } \
  NS_IMETHOD GetUserFlags(PRUint32 *aUserFlags) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUserFlags(aUserFlags); } \
  NS_IMETHOD GetUserName(PRUnichar * *aUserName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUserName(aUserName); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IFsObjInfo(PRUint32 *aInternalAndReservedAttribute1IFsObjInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IFsObjInfo(aInternalAndReservedAttribute1IFsObjInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IFsObjInfo(PRUint32 *aInternalAndReservedAttribute2IFsObjInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IFsObjInfo(aInternalAndReservedAttribute2IFsObjInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IFsObjInfo(PRUint32 *aInternalAndReservedAttribute3IFsObjInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IFsObjInfo(aInternalAndReservedAttribute3IFsObjInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IFsObjInfo(PRUint32 *aInternalAndReservedAttribute4IFsObjInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IFsObjInfo(aInternalAndReservedAttribute4IFsObjInfo); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IFsObjInfo
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IFSOBJINFO

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IFsObjInfo)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute long long accessTime; */
NS_IMETHODIMP _MYCLASS_::GetAccessTime(PRInt64 *aAccessTime)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long long allocatedSize; */
NS_IMETHODIMP _MYCLASS_::GetAllocatedSize(PRInt64 *aAllocatedSize)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long long birthTime; */
NS_IMETHODIMP _MYCLASS_::GetBirthTime(PRInt64 *aBirthTime)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long long changeTime; */
NS_IMETHODIMP _MYCLASS_::GetChangeTime(PRInt64 *aChangeTime)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long deviceNumber; */
NS_IMETHODIMP _MYCLASS_::GetDeviceNumber(PRUint32 *aDeviceNumber)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring fileAttributes; */
NS_IMETHODIMP _MYCLASS_::GetFileAttributes(PRUnichar * *aFileAttributes)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long generationId; */
NS_IMETHODIMP _MYCLASS_::GetGenerationId(PRUint32 *aGenerationId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long GID; */
NS_IMETHODIMP _MYCLASS_::GetGID(PRUint32 *aGID)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring groupName; */
NS_IMETHODIMP _MYCLASS_::GetGroupName(PRUnichar * *aGroupName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long hardLinks; */
NS_IMETHODIMP _MYCLASS_::GetHardLinks(PRUint32 *aHardLinks)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long long modificationTime; */
NS_IMETHODIMP _MYCLASS_::GetModificationTime(PRInt64 *aModificationTime)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring name; */
NS_IMETHODIMP _MYCLASS_::GetName(PRUnichar * *aName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long long nodeId; */
NS_IMETHODIMP _MYCLASS_::GetNodeId(PRInt64 *aNodeId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long nodeIdDevice; */
NS_IMETHODIMP _MYCLASS_::GetNodeIdDevice(PRUint32 *aNodeIdDevice)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long long objectSize; */
NS_IMETHODIMP _MYCLASS_::GetObjectSize(PRInt64 *aObjectSize)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 type; */
NS_IMETHODIMP _MYCLASS_::GetType(PRUint32 *aType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long UID; */
NS_IMETHODIMP _MYCLASS_::GetUID(PRUint32 *aUID)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long userFlags; */
NS_IMETHODIMP _MYCLASS_::GetUserFlags(PRUint32 *aUserFlags)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring userName; */
NS_IMETHODIMP _MYCLASS_::GetUserName(PRUnichar * *aUserName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IFsObjInfo; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IFsObjInfo(PRUint32 *aInternalAndReservedAttribute1IFsObjInfo)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IFsObjInfo; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IFsObjInfo(PRUint32 *aInternalAndReservedAttribute2IFsObjInfo)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute3IFsObjInfo; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute3IFsObjInfo(PRUint32 *aInternalAndReservedAttribute3IFsObjInfo)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute4IFsObjInfo; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute4IFsObjInfo(PRUint32 *aInternalAndReservedAttribute4IFsObjInfo)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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_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_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_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_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_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_GID_TO(smth) NS_IMETHOD GetGID (PRUint32 * 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_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_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_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_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_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_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_UID_TO(smth) NS_IMETHOD GetUID (PRUint32 * 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_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_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_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;

/* starting interface:    IGuestFsObjInfo */
#define IGUESTFSOBJINFO_IID_STR "6620db85-44e0-ca69-e9e0-d4907ceccbe5"

#define IGUESTFSOBJINFO_IID \
  {0x6620db85, 0x44e0, 0xca69, \
    { 0xe9, 0xe0, 0xd4, 0x90, 0x7c, 0xec, 0xcb, 0xe5 }}

class NS_NO_VTABLE IGuestFsObjInfo : public IFsObjInfo {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTFSOBJINFO_IID)

  /* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTFSOBJINFO \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTFSOBJINFO(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return _to GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGUESTFSOBJINFO(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IGuestFsObjInfo
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IGUESTFSOBJINFO

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IGuestFsObjInfo)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
NS_IMETHODIMP _MYCLASS_::GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IGuest */
#define IGUEST_IID_STR "13a11514-402e-022e-6180-c3944de3f9c8"

#define IGUEST_IID \
  {0x13a11514, 0x402e, 0x022e, \
    { 0x61, 0x80, 0xc3, 0x94, 0x4d, 0xe3, 0xf9, 0xc8 }}

class NS_NO_VTABLE IGuest : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUEST_IID)

  /* readonly attribute wstring OSTypeId; */
  NS_IMETHOD GetOSTypeId(PRUnichar * *aOSTypeId) = 0;

  /* readonly attribute PRUint32 additionsRunLevel; */
  NS_IMETHOD GetAdditionsRunLevel(PRUint32 *aAdditionsRunLevel) = 0;

  /* readonly attribute wstring additionsVersion; */
  NS_IMETHOD GetAdditionsVersion(PRUnichar * *aAdditionsVersion) = 0;

  /* readonly attribute unsigned long additionsRevision; */
  NS_IMETHOD GetAdditionsRevision(PRUint32 *aAdditionsRevision) = 0;

  /* readonly attribute IGuestDnDSource dnDSource; */
  NS_IMETHOD GetDnDSource(IGuestDnDSource * *aDnDSource) = 0;

  /* readonly attribute IGuestDnDTarget dnDTarget; */
  NS_IMETHOD GetDnDTarget(IGuestDnDTarget * *aDnDTarget) = 0;

  /* readonly attribute IEventSource eventSource; */
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) = 0;

  /* void getFacilities (out unsigned long facilitiesSize, [array, size_is (facilitiesSize), retval] out IAdditionsFacility facilities); */
  NS_IMETHOD GetFacilities(PRUint32 *facilitiesSize, IAdditionsFacility ***facilities) = 0;

  /* void getSessions (out unsigned long sessionsSize, [array, size_is (sessionsSize), retval] out IGuestSession sessions); */
  NS_IMETHOD GetSessions(PRUint32 *sessionsSize, IGuestSession ***sessions) = 0;

  /* attribute unsigned long memoryBalloonSize; */
  NS_IMETHOD GetMemoryBalloonSize(PRUint32 *aMemoryBalloonSize) = 0;
  NS_IMETHOD SetMemoryBalloonSize(PRUint32 aMemoryBalloonSize) = 0;

  /* attribute unsigned long statisticsUpdateInterval; */
  NS_IMETHOD GetStatisticsUpdateInterval(PRUint32 *aStatisticsUpdateInterval) = 0;
  NS_IMETHOD SetStatisticsUpdateInterval(PRUint32 aStatisticsUpdateInterval) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IGuest; */
  NS_IMETHOD GetInternalAndReservedAttribute1IGuest(PRUint32 *aInternalAndReservedAttribute1IGuest) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IGuest; */
  NS_IMETHOD GetInternalAndReservedAttribute2IGuest(PRUint32 *aInternalAndReservedAttribute2IGuest) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IGuest; */
  NS_IMETHOD GetInternalAndReservedAttribute3IGuest(PRUint32 *aInternalAndReservedAttribute3IGuest) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IGuest; */
  NS_IMETHOD GetInternalAndReservedAttribute4IGuest(PRUint32 *aInternalAndReservedAttribute4IGuest) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IGuest; */
  NS_IMETHOD GetInternalAndReservedAttribute5IGuest(PRUint32 *aInternalAndReservedAttribute5IGuest) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IGuest; */
  NS_IMETHOD GetInternalAndReservedAttribute6IGuest(PRUint32 *aInternalAndReservedAttribute6IGuest) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IGuest; */
  NS_IMETHOD GetInternalAndReservedAttribute7IGuest(PRUint32 *aInternalAndReservedAttribute7IGuest) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IGuest; */
  NS_IMETHOD GetInternalAndReservedAttribute8IGuest(PRUint32 *aInternalAndReservedAttribute8IGuest) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute9IGuest; */
  NS_IMETHOD GetInternalAndReservedAttribute9IGuest(PRUint32 *aInternalAndReservedAttribute9IGuest) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute10IGuest; */
  NS_IMETHOD GetInternalAndReservedAttribute10IGuest(PRUint32 *aInternalAndReservedAttribute10IGuest) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute11IGuest; */
  NS_IMETHOD GetInternalAndReservedAttribute11IGuest(PRUint32 *aInternalAndReservedAttribute11IGuest) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute12IGuest; */
  NS_IMETHOD GetInternalAndReservedAttribute12IGuest(PRUint32 *aInternalAndReservedAttribute12IGuest) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute13IGuest; */
  NS_IMETHOD GetInternalAndReservedAttribute13IGuest(PRUint32 *aInternalAndReservedAttribute13IGuest) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute14IGuest; */
  NS_IMETHOD GetInternalAndReservedAttribute14IGuest(PRUint32 *aInternalAndReservedAttribute14IGuest) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute15IGuest; */
  NS_IMETHOD GetInternalAndReservedAttribute15IGuest(PRUint32 *aInternalAndReservedAttribute15IGuest) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute16IGuest; */
  NS_IMETHOD GetInternalAndReservedAttribute16IGuest(PRUint32 *aInternalAndReservedAttribute16IGuest) = 0;

  /* 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); */
  NS_IMETHOD InternalGetStatistics(PRUint32 *cpuUser, PRUint32 *cpuKernel, PRUint32 *cpuIdle, PRUint32 *memTotal, PRUint32 *memFree, PRUint32 *memBalloon, PRUint32 *memShared, PRUint32 *memCache, PRUint32 *pagedTotal, PRUint32 *memAllocTotal, PRUint32 *memFreeTotal, PRUint32 *memBalloonTotal, PRUint32 *memSharedTotal) = 0;

  /* void getFacilityStatus (in PRUint32 facility, out long long timestamp, [retval] out PRUint32 status); */
  NS_IMETHOD GetFacilityStatus(PRUint32 facility, PRInt64 *timestamp, PRUint32 *status) = 0;

  /* void getAdditionsStatus (in PRUint32 level, [retval] out boolean active); */
  NS_IMETHOD GetAdditionsStatus(PRUint32 level, PRBool *active) = 0;

  /* void setCredentials (in wstring userName, in wstring password, in wstring domain, in boolean allowInteractiveLogon); */
  NS_IMETHOD SetCredentials(const PRUnichar *userName, const PRUnichar *password, const PRUnichar *domain, PRBool allowInteractiveLogon) = 0;

  /* void createSession (in wstring user, in wstring password, in wstring domain, in wstring sessionName, [retval] out IGuestSession guestSession); */
  NS_IMETHOD CreateSession(const PRUnichar *user, const PRUnichar *password, const PRUnichar *domain, const PRUnichar *sessionName, IGuestSession **guestSession) = 0;

  /* void findSession (in wstring sessionName, out unsigned long sessionsSize, [array, size_is (sessionsSize), retval] out IGuestSession sessions); */
  NS_IMETHOD FindSession(const PRUnichar *sessionName, PRUint32 *sessionsSize, IGuestSession ***sessions) = 0;

  /* 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 PRUint32 flags, [retval] out IProgress progress); */
  NS_IMETHOD UpdateGuestAdditions(const PRUnichar *source, PRUint32 argumentsSize, const PRUnichar **arguments, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress) = 0;

  /* void InternalAndReservedMethod1IGuest (); */
  NS_IMETHOD InternalAndReservedMethod1IGuest(void) = 0;

  /* void InternalAndReservedMethod2IGuest (); */
  NS_IMETHOD InternalAndReservedMethod2IGuest(void) = 0;

  /* void InternalAndReservedMethod3IGuest (); */
  NS_IMETHOD InternalAndReservedMethod3IGuest(void) = 0;

  /* void InternalAndReservedMethod4IGuest (); */
  NS_IMETHOD InternalAndReservedMethod4IGuest(void) = 0;

  /* void InternalAndReservedMethod5IGuest (); */
  NS_IMETHOD InternalAndReservedMethod5IGuest(void) = 0;

  /* void InternalAndReservedMethod6IGuest (); */
  NS_IMETHOD InternalAndReservedMethod6IGuest(void) = 0;

  /* void InternalAndReservedMethod7IGuest (); */
  NS_IMETHOD InternalAndReservedMethod7IGuest(void) = 0;

  /* void InternalAndReservedMethod8IGuest (); */
  NS_IMETHOD InternalAndReservedMethod8IGuest(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUEST \
  NS_IMETHOD GetOSTypeId(PRUnichar * *aOSTypeId); \
  NS_IMETHOD GetAdditionsRunLevel(PRUint32 *aAdditionsRunLevel); \
  NS_IMETHOD GetAdditionsVersion(PRUnichar * *aAdditionsVersion); \
  NS_IMETHOD GetAdditionsRevision(PRUint32 *aAdditionsRevision); \
  NS_IMETHOD GetDnDSource(IGuestDnDSource * *aDnDSource); \
  NS_IMETHOD GetDnDTarget(IGuestDnDTarget * *aDnDTarget); \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource); \
  NS_IMETHOD GetFacilities(PRUint32 *facilitiesSize, IAdditionsFacility ***facilities); \
  NS_IMETHOD GetSessions(PRUint32 *sessionsSize, IGuestSession ***sessions); \
  NS_IMETHOD GetMemoryBalloonSize(PRUint32 *aMemoryBalloonSize); \
  NS_IMETHOD SetMemoryBalloonSize(PRUint32 aMemoryBalloonSize); \
  NS_IMETHOD GetStatisticsUpdateInterval(PRUint32 *aStatisticsUpdateInterval); \
  NS_IMETHOD SetStatisticsUpdateInterval(PRUint32 aStatisticsUpdateInterval); \
  NS_IMETHOD GetInternalAndReservedAttribute1IGuest(PRUint32 *aInternalAndReservedAttribute1IGuest); \
  NS_IMETHOD GetInternalAndReservedAttribute2IGuest(PRUint32 *aInternalAndReservedAttribute2IGuest); \
  NS_IMETHOD GetInternalAndReservedAttribute3IGuest(PRUint32 *aInternalAndReservedAttribute3IGuest); \
  NS_IMETHOD GetInternalAndReservedAttribute4IGuest(PRUint32 *aInternalAndReservedAttribute4IGuest); \
  NS_IMETHOD GetInternalAndReservedAttribute5IGuest(PRUint32 *aInternalAndReservedAttribute5IGuest); \
  NS_IMETHOD GetInternalAndReservedAttribute6IGuest(PRUint32 *aInternalAndReservedAttribute6IGuest); \
  NS_IMETHOD GetInternalAndReservedAttribute7IGuest(PRUint32 *aInternalAndReservedAttribute7IGuest); \
  NS_IMETHOD GetInternalAndReservedAttribute8IGuest(PRUint32 *aInternalAndReservedAttribute8IGuest); \
  NS_IMETHOD GetInternalAndReservedAttribute9IGuest(PRUint32 *aInternalAndReservedAttribute9IGuest); \
  NS_IMETHOD GetInternalAndReservedAttribute10IGuest(PRUint32 *aInternalAndReservedAttribute10IGuest); \
  NS_IMETHOD GetInternalAndReservedAttribute11IGuest(PRUint32 *aInternalAndReservedAttribute11IGuest); \
  NS_IMETHOD GetInternalAndReservedAttribute12IGuest(PRUint32 *aInternalAndReservedAttribute12IGuest); \
  NS_IMETHOD GetInternalAndReservedAttribute13IGuest(PRUint32 *aInternalAndReservedAttribute13IGuest); \
  NS_IMETHOD GetInternalAndReservedAttribute14IGuest(PRUint32 *aInternalAndReservedAttribute14IGuest); \
  NS_IMETHOD GetInternalAndReservedAttribute15IGuest(PRUint32 *aInternalAndReservedAttribute15IGuest); \
  NS_IMETHOD GetInternalAndReservedAttribute16IGuest(PRUint32 *aInternalAndReservedAttribute16IGuest); \
  NS_IMETHOD InternalGetStatistics(PRUint32 *cpuUser, PRUint32 *cpuKernel, PRUint32 *cpuIdle, PRUint32 *memTotal, PRUint32 *memFree, PRUint32 *memBalloon, PRUint32 *memShared, PRUint32 *memCache, PRUint32 *pagedTotal, PRUint32 *memAllocTotal, PRUint32 *memFreeTotal, PRUint32 *memBalloonTotal, PRUint32 *memSharedTotal); \
  NS_IMETHOD GetFacilityStatus(PRUint32 facility, PRInt64 *timestamp, PRUint32 *status); \
  NS_IMETHOD GetAdditionsStatus(PRUint32 level, PRBool *active); \
  NS_IMETHOD SetCredentials(const PRUnichar *userName, const PRUnichar *password, const PRUnichar *domain, PRBool allowInteractiveLogon); \
  NS_IMETHOD CreateSession(const PRUnichar *user, const PRUnichar *password, const PRUnichar *domain, const PRUnichar *sessionName, IGuestSession **guestSession); \
  NS_IMETHOD FindSession(const PRUnichar *sessionName, PRUint32 *sessionsSize, IGuestSession ***sessions); \
  NS_IMETHOD UpdateGuestAdditions(const PRUnichar *source, PRUint32 argumentsSize, const PRUnichar **arguments, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress); \
  NS_IMETHOD InternalAndReservedMethod1IGuest(void); \
  NS_IMETHOD InternalAndReservedMethod2IGuest(void); \
  NS_IMETHOD InternalAndReservedMethod3IGuest(void); \
  NS_IMETHOD InternalAndReservedMethod4IGuest(void); \
  NS_IMETHOD InternalAndReservedMethod5IGuest(void); \
  NS_IMETHOD InternalAndReservedMethod6IGuest(void); \
  NS_IMETHOD InternalAndReservedMethod7IGuest(void); \
  NS_IMETHOD InternalAndReservedMethod8IGuest(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUEST(_to) \
  NS_IMETHOD GetOSTypeId(PRUnichar * *aOSTypeId) { return _to GetOSTypeId(aOSTypeId); } \
  NS_IMETHOD GetAdditionsRunLevel(PRUint32 *aAdditionsRunLevel) { return _to GetAdditionsRunLevel(aAdditionsRunLevel); } \
  NS_IMETHOD GetAdditionsVersion(PRUnichar * *aAdditionsVersion) { return _to GetAdditionsVersion(aAdditionsVersion); } \
  NS_IMETHOD GetAdditionsRevision(PRUint32 *aAdditionsRevision) { return _to GetAdditionsRevision(aAdditionsRevision); } \
  NS_IMETHOD GetDnDSource(IGuestDnDSource * *aDnDSource) { return _to GetDnDSource(aDnDSource); } \
  NS_IMETHOD GetDnDTarget(IGuestDnDTarget * *aDnDTarget) { return _to GetDnDTarget(aDnDTarget); } \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) { return _to GetEventSource(aEventSource); } \
  NS_IMETHOD GetFacilities(PRUint32 *facilitiesSize, IAdditionsFacility ***facilities) { return _to GetFacilities(facilitiesSize, facilities); } \
  NS_IMETHOD GetSessions(PRUint32 *sessionsSize, IGuestSession ***sessions) { return _to GetSessions(sessionsSize, sessions); } \
  NS_IMETHOD GetMemoryBalloonSize(PRUint32 *aMemoryBalloonSize) { return _to GetMemoryBalloonSize(aMemoryBalloonSize); } \
  NS_IMETHOD SetMemoryBalloonSize(PRUint32 aMemoryBalloonSize) { return _to SetMemoryBalloonSize(aMemoryBalloonSize); } \
  NS_IMETHOD GetStatisticsUpdateInterval(PRUint32 *aStatisticsUpdateInterval) { return _to GetStatisticsUpdateInterval(aStatisticsUpdateInterval); } \
  NS_IMETHOD SetStatisticsUpdateInterval(PRUint32 aStatisticsUpdateInterval) { return _to SetStatisticsUpdateInterval(aStatisticsUpdateInterval); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IGuest(PRUint32 *aInternalAndReservedAttribute1IGuest) { return _to GetInternalAndReservedAttribute1IGuest(aInternalAndReservedAttribute1IGuest); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IGuest(PRUint32 *aInternalAndReservedAttribute2IGuest) { return _to GetInternalAndReservedAttribute2IGuest(aInternalAndReservedAttribute2IGuest); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IGuest(PRUint32 *aInternalAndReservedAttribute3IGuest) { return _to GetInternalAndReservedAttribute3IGuest(aInternalAndReservedAttribute3IGuest); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IGuest(PRUint32 *aInternalAndReservedAttribute4IGuest) { return _to GetInternalAndReservedAttribute4IGuest(aInternalAndReservedAttribute4IGuest); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IGuest(PRUint32 *aInternalAndReservedAttribute5IGuest) { return _to GetInternalAndReservedAttribute5IGuest(aInternalAndReservedAttribute5IGuest); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IGuest(PRUint32 *aInternalAndReservedAttribute6IGuest) { return _to GetInternalAndReservedAttribute6IGuest(aInternalAndReservedAttribute6IGuest); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IGuest(PRUint32 *aInternalAndReservedAttribute7IGuest) { return _to GetInternalAndReservedAttribute7IGuest(aInternalAndReservedAttribute7IGuest); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IGuest(PRUint32 *aInternalAndReservedAttribute8IGuest) { return _to GetInternalAndReservedAttribute8IGuest(aInternalAndReservedAttribute8IGuest); } \
  NS_IMETHOD GetInternalAndReservedAttribute9IGuest(PRUint32 *aInternalAndReservedAttribute9IGuest) { return _to GetInternalAndReservedAttribute9IGuest(aInternalAndReservedAttribute9IGuest); } \
  NS_IMETHOD GetInternalAndReservedAttribute10IGuest(PRUint32 *aInternalAndReservedAttribute10IGuest) { return _to GetInternalAndReservedAttribute10IGuest(aInternalAndReservedAttribute10IGuest); } \
  NS_IMETHOD GetInternalAndReservedAttribute11IGuest(PRUint32 *aInternalAndReservedAttribute11IGuest) { return _to GetInternalAndReservedAttribute11IGuest(aInternalAndReservedAttribute11IGuest); } \
  NS_IMETHOD GetInternalAndReservedAttribute12IGuest(PRUint32 *aInternalAndReservedAttribute12IGuest) { return _to GetInternalAndReservedAttribute12IGuest(aInternalAndReservedAttribute12IGuest); } \
  NS_IMETHOD GetInternalAndReservedAttribute13IGuest(PRUint32 *aInternalAndReservedAttribute13IGuest) { return _to GetInternalAndReservedAttribute13IGuest(aInternalAndReservedAttribute13IGuest); } \
  NS_IMETHOD GetInternalAndReservedAttribute14IGuest(PRUint32 *aInternalAndReservedAttribute14IGuest) { return _to GetInternalAndReservedAttribute14IGuest(aInternalAndReservedAttribute14IGuest); } \
  NS_IMETHOD GetInternalAndReservedAttribute15IGuest(PRUint32 *aInternalAndReservedAttribute15IGuest) { return _to GetInternalAndReservedAttribute15IGuest(aInternalAndReservedAttribute15IGuest); } \
  NS_IMETHOD GetInternalAndReservedAttribute16IGuest(PRUint32 *aInternalAndReservedAttribute16IGuest) { return _to GetInternalAndReservedAttribute16IGuest(aInternalAndReservedAttribute16IGuest); } \
  NS_IMETHOD InternalGetStatistics(PRUint32 *cpuUser, PRUint32 *cpuKernel, PRUint32 *cpuIdle, PRUint32 *memTotal, PRUint32 *memFree, PRUint32 *memBalloon, PRUint32 *memShared, PRUint32 *memCache, PRUint32 *pagedTotal, PRUint32 *memAllocTotal, PRUint32 *memFreeTotal, PRUint32 *memBalloonTotal, PRUint32 *memSharedTotal) { return _to InternalGetStatistics(cpuUser, cpuKernel, cpuIdle, memTotal, memFree, memBalloon, memShared, memCache, pagedTotal, memAllocTotal, memFreeTotal, memBalloonTotal, memSharedTotal); } \
  NS_IMETHOD GetFacilityStatus(PRUint32 facility, PRInt64 *timestamp, PRUint32 *status) { return _to GetFacilityStatus(facility, timestamp, status); } \
  NS_IMETHOD GetAdditionsStatus(PRUint32 level, PRBool *active) { return _to GetAdditionsStatus(level, active); } \
  NS_IMETHOD SetCredentials(const PRUnichar *userName, const PRUnichar *password, const PRUnichar *domain, PRBool allowInteractiveLogon) { return _to SetCredentials(userName, password, domain, allowInteractiveLogon); } \
  NS_IMETHOD CreateSession(const PRUnichar *user, const PRUnichar *password, const PRUnichar *domain, const PRUnichar *sessionName, IGuestSession **guestSession) { return _to CreateSession(user, password, domain, sessionName, guestSession); } \
  NS_IMETHOD FindSession(const PRUnichar *sessionName, PRUint32 *sessionsSize, IGuestSession ***sessions) { return _to FindSession(sessionName, sessionsSize, sessions); } \
  NS_IMETHOD UpdateGuestAdditions(const PRUnichar *source, PRUint32 argumentsSize, const PRUnichar **arguments, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress) { return _to UpdateGuestAdditions(source, argumentsSize, arguments, flagsSize, flags, progress); } \
  NS_IMETHOD InternalAndReservedMethod1IGuest(void) { return _to InternalAndReservedMethod1IGuest(); } \
  NS_IMETHOD InternalAndReservedMethod2IGuest(void) { return _to InternalAndReservedMethod2IGuest(); } \
  NS_IMETHOD InternalAndReservedMethod3IGuest(void) { return _to InternalAndReservedMethod3IGuest(); } \
  NS_IMETHOD InternalAndReservedMethod4IGuest(void) { return _to InternalAndReservedMethod4IGuest(); } \
  NS_IMETHOD InternalAndReservedMethod5IGuest(void) { return _to InternalAndReservedMethod5IGuest(); } \
  NS_IMETHOD InternalAndReservedMethod6IGuest(void) { return _to InternalAndReservedMethod6IGuest(); } \
  NS_IMETHOD InternalAndReservedMethod7IGuest(void) { return _to InternalAndReservedMethod7IGuest(); } \
  NS_IMETHOD InternalAndReservedMethod8IGuest(void) { return _to InternalAndReservedMethod8IGuest(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGUEST(_to) \
  NS_IMETHOD GetOSTypeId(PRUnichar * *aOSTypeId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOSTypeId(aOSTypeId); } \
  NS_IMETHOD GetAdditionsRunLevel(PRUint32 *aAdditionsRunLevel) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAdditionsRunLevel(aAdditionsRunLevel); } \
  NS_IMETHOD GetAdditionsVersion(PRUnichar * *aAdditionsVersion) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAdditionsVersion(aAdditionsVersion); } \
  NS_IMETHOD GetAdditionsRevision(PRUint32 *aAdditionsRevision) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAdditionsRevision(aAdditionsRevision); } \
  NS_IMETHOD GetDnDSource(IGuestDnDSource * *aDnDSource) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDnDSource(aDnDSource); } \
  NS_IMETHOD GetDnDTarget(IGuestDnDTarget * *aDnDTarget) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDnDTarget(aDnDTarget); } \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEventSource(aEventSource); } \
  NS_IMETHOD GetFacilities(PRUint32 *facilitiesSize, IAdditionsFacility ***facilities) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFacilities(facilitiesSize, facilities); } \
  NS_IMETHOD GetSessions(PRUint32 *sessionsSize, IGuestSession ***sessions) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSessions(sessionsSize, sessions); } \
  NS_IMETHOD GetMemoryBalloonSize(PRUint32 *aMemoryBalloonSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMemoryBalloonSize(aMemoryBalloonSize); } \
  NS_IMETHOD SetMemoryBalloonSize(PRUint32 aMemoryBalloonSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMemoryBalloonSize(aMemoryBalloonSize); } \
  NS_IMETHOD GetStatisticsUpdateInterval(PRUint32 *aStatisticsUpdateInterval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStatisticsUpdateInterval(aStatisticsUpdateInterval); } \
  NS_IMETHOD SetStatisticsUpdateInterval(PRUint32 aStatisticsUpdateInterval) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetStatisticsUpdateInterval(aStatisticsUpdateInterval); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IGuest(PRUint32 *aInternalAndReservedAttribute1IGuest) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IGuest(aInternalAndReservedAttribute1IGuest); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IGuest(PRUint32 *aInternalAndReservedAttribute2IGuest) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IGuest(aInternalAndReservedAttribute2IGuest); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IGuest(PRUint32 *aInternalAndReservedAttribute3IGuest) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IGuest(aInternalAndReservedAttribute3IGuest); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IGuest(PRUint32 *aInternalAndReservedAttribute4IGuest) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IGuest(aInternalAndReservedAttribute4IGuest); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IGuest(PRUint32 *aInternalAndReservedAttribute5IGuest) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IGuest(aInternalAndReservedAttribute5IGuest); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IGuest(PRUint32 *aInternalAndReservedAttribute6IGuest) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IGuest(aInternalAndReservedAttribute6IGuest); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IGuest(PRUint32 *aInternalAndReservedAttribute7IGuest) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IGuest(aInternalAndReservedAttribute7IGuest); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IGuest(PRUint32 *aInternalAndReservedAttribute8IGuest) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IGuest(aInternalAndReservedAttribute8IGuest); } \
  NS_IMETHOD GetInternalAndReservedAttribute9IGuest(PRUint32 *aInternalAndReservedAttribute9IGuest) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute9IGuest(aInternalAndReservedAttribute9IGuest); } \
  NS_IMETHOD GetInternalAndReservedAttribute10IGuest(PRUint32 *aInternalAndReservedAttribute10IGuest) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute10IGuest(aInternalAndReservedAttribute10IGuest); } \
  NS_IMETHOD GetInternalAndReservedAttribute11IGuest(PRUint32 *aInternalAndReservedAttribute11IGuest) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute11IGuest(aInternalAndReservedAttribute11IGuest); } \
  NS_IMETHOD GetInternalAndReservedAttribute12IGuest(PRUint32 *aInternalAndReservedAttribute12IGuest) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute12IGuest(aInternalAndReservedAttribute12IGuest); } \
  NS_IMETHOD GetInternalAndReservedAttribute13IGuest(PRUint32 *aInternalAndReservedAttribute13IGuest) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute13IGuest(aInternalAndReservedAttribute13IGuest); } \
  NS_IMETHOD GetInternalAndReservedAttribute14IGuest(PRUint32 *aInternalAndReservedAttribute14IGuest) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute14IGuest(aInternalAndReservedAttribute14IGuest); } \
  NS_IMETHOD GetInternalAndReservedAttribute15IGuest(PRUint32 *aInternalAndReservedAttribute15IGuest) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute15IGuest(aInternalAndReservedAttribute15IGuest); } \
  NS_IMETHOD GetInternalAndReservedAttribute16IGuest(PRUint32 *aInternalAndReservedAttribute16IGuest) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute16IGuest(aInternalAndReservedAttribute16IGuest); } \
  NS_IMETHOD InternalGetStatistics(PRUint32 *cpuUser, PRUint32 *cpuKernel, PRUint32 *cpuIdle, PRUint32 *memTotal, PRUint32 *memFree, PRUint32 *memBalloon, PRUint32 *memShared, PRUint32 *memCache, PRUint32 *pagedTotal, PRUint32 *memAllocTotal, PRUint32 *memFreeTotal, PRUint32 *memBalloonTotal, PRUint32 *memSharedTotal) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalGetStatistics(cpuUser, cpuKernel, cpuIdle, memTotal, memFree, memBalloon, memShared, memCache, pagedTotal, memAllocTotal, memFreeTotal, memBalloonTotal, memSharedTotal); } \
  NS_IMETHOD GetFacilityStatus(PRUint32 facility, PRInt64 *timestamp, PRUint32 *status) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFacilityStatus(facility, timestamp, status); } \
  NS_IMETHOD GetAdditionsStatus(PRUint32 level, PRBool *active) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAdditionsStatus(level, active); } \
  NS_IMETHOD SetCredentials(const PRUnichar *userName, const PRUnichar *password, const PRUnichar *domain, PRBool allowInteractiveLogon) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCredentials(userName, password, domain, allowInteractiveLogon); } \
  NS_IMETHOD CreateSession(const PRUnichar *user, const PRUnichar *password, const PRUnichar *domain, const PRUnichar *sessionName, IGuestSession **guestSession) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateSession(user, password, domain, sessionName, guestSession); } \
  NS_IMETHOD FindSession(const PRUnichar *sessionName, PRUint32 *sessionsSize, IGuestSession ***sessions) { return !_to ? NS_ERROR_NULL_POINTER : _to->FindSession(sessionName, sessionsSize, sessions); } \
  NS_IMETHOD UpdateGuestAdditions(const PRUnichar *source, PRUint32 argumentsSize, const PRUnichar **arguments, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->UpdateGuestAdditions(source, argumentsSize, arguments, flagsSize, flags, progress); } \
  NS_IMETHOD InternalAndReservedMethod1IGuest(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IGuest(); } \
  NS_IMETHOD InternalAndReservedMethod2IGuest(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IGuest(); } \
  NS_IMETHOD InternalAndReservedMethod3IGuest(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IGuest(); } \
  NS_IMETHOD InternalAndReservedMethod4IGuest(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IGuest(); } \
  NS_IMETHOD InternalAndReservedMethod5IGuest(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod5IGuest(); } \
  NS_IMETHOD InternalAndReservedMethod6IGuest(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod6IGuest(); } \
  NS_IMETHOD InternalAndReservedMethod7IGuest(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod7IGuest(); } \
  NS_IMETHOD InternalAndReservedMethod8IGuest(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod8IGuest(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IGuest
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IGUEST

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IGuest)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute wstring OSTypeId; */
NS_IMETHODIMP _MYCLASS_::GetOSTypeId(PRUnichar * *aOSTypeId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 additionsRunLevel; */
NS_IMETHODIMP _MYCLASS_::GetAdditionsRunLevel(PRUint32 *aAdditionsRunLevel)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring additionsVersion; */
NS_IMETHODIMP _MYCLASS_::GetAdditionsVersion(PRUnichar * *aAdditionsVersion)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long additionsRevision; */
NS_IMETHODIMP _MYCLASS_::GetAdditionsRevision(PRUint32 *aAdditionsRevision)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IGuestDnDSource dnDSource; */
NS_IMETHODIMP _MYCLASS_::GetDnDSource(IGuestDnDSource * *aDnDSource)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IGuestDnDTarget dnDTarget; */
NS_IMETHODIMP _MYCLASS_::GetDnDTarget(IGuestDnDTarget * *aDnDTarget)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IEventSource eventSource; */
NS_IMETHODIMP _MYCLASS_::GetEventSource(IEventSource * *aEventSource)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getFacilities (out unsigned long facilitiesSize, [array, size_is (facilitiesSize), retval] out IAdditionsFacility facilities); */
NS_IMETHODIMP _MYCLASS_::GetFacilities(PRUint32 *facilitiesSize, IAdditionsFacility ***facilities)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getSessions (out unsigned long sessionsSize, [array, size_is (sessionsSize), retval] out IGuestSession sessions); */
NS_IMETHODIMP _MYCLASS_::GetSessions(PRUint32 *sessionsSize, IGuestSession ***sessions)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long memoryBalloonSize; */
NS_IMETHODIMP _MYCLASS_::GetMemoryBalloonSize(PRUint32 *aMemoryBalloonSize)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetMemoryBalloonSize(PRUint32 aMemoryBalloonSize)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long statisticsUpdateInterval; */
NS_IMETHODIMP _MYCLASS_::GetStatisticsUpdateInterval(PRUint32 *aStatisticsUpdateInterval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetStatisticsUpdateInterval(PRUint32 aStatisticsUpdateInterval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IGuest; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IGuest(PRUint32 *aInternalAndReservedAttribute1IGuest)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IGuest; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IGuest(PRUint32 *aInternalAndReservedAttribute2IGuest)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute3IGuest; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute3IGuest(PRUint32 *aInternalAndReservedAttribute3IGuest)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute4IGuest; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute4IGuest(PRUint32 *aInternalAndReservedAttribute4IGuest)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute5IGuest; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute5IGuest(PRUint32 *aInternalAndReservedAttribute5IGuest)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute6IGuest; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute6IGuest(PRUint32 *aInternalAndReservedAttribute6IGuest)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute7IGuest; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute7IGuest(PRUint32 *aInternalAndReservedAttribute7IGuest)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute8IGuest; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute8IGuest(PRUint32 *aInternalAndReservedAttribute8IGuest)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute9IGuest; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute9IGuest(PRUint32 *aInternalAndReservedAttribute9IGuest)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute10IGuest; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute10IGuest(PRUint32 *aInternalAndReservedAttribute10IGuest)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute11IGuest; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute11IGuest(PRUint32 *aInternalAndReservedAttribute11IGuest)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute12IGuest; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute12IGuest(PRUint32 *aInternalAndReservedAttribute12IGuest)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute13IGuest; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute13IGuest(PRUint32 *aInternalAndReservedAttribute13IGuest)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute14IGuest; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute14IGuest(PRUint32 *aInternalAndReservedAttribute14IGuest)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute15IGuest; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute15IGuest(PRUint32 *aInternalAndReservedAttribute15IGuest)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute16IGuest; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute16IGuest(PRUint32 *aInternalAndReservedAttribute16IGuest)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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); */
NS_IMETHODIMP _MYCLASS_::InternalGetStatistics(PRUint32 *cpuUser, PRUint32 *cpuKernel, PRUint32 *cpuIdle, PRUint32 *memTotal, PRUint32 *memFree, PRUint32 *memBalloon, PRUint32 *memShared, PRUint32 *memCache, PRUint32 *pagedTotal, PRUint32 *memAllocTotal, PRUint32 *memFreeTotal, PRUint32 *memBalloonTotal, PRUint32 *memSharedTotal)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getFacilityStatus (in PRUint32 facility, out long long timestamp, [retval] out PRUint32 status); */
NS_IMETHODIMP _MYCLASS_::GetFacilityStatus(PRUint32 facility, PRInt64 *timestamp, PRUint32 *status)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getAdditionsStatus (in PRUint32 level, [retval] out boolean active); */
NS_IMETHODIMP _MYCLASS_::GetAdditionsStatus(PRUint32 level, PRBool *active)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setCredentials (in wstring userName, in wstring password, in wstring domain, in boolean allowInteractiveLogon); */
NS_IMETHODIMP _MYCLASS_::SetCredentials(const PRUnichar *userName, const PRUnichar *password, const PRUnichar *domain, PRBool allowInteractiveLogon)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void createSession (in wstring user, in wstring password, in wstring domain, in wstring sessionName, [retval] out IGuestSession guestSession); */
NS_IMETHODIMP _MYCLASS_::CreateSession(const PRUnichar *user, const PRUnichar *password, const PRUnichar *domain, const PRUnichar *sessionName, IGuestSession **guestSession)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void findSession (in wstring sessionName, out unsigned long sessionsSize, [array, size_is (sessionsSize), retval] out IGuestSession sessions); */
NS_IMETHODIMP _MYCLASS_::FindSession(const PRUnichar *sessionName, PRUint32 *sessionsSize, IGuestSession ***sessions)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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 PRUint32 flags, [retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::UpdateGuestAdditions(const PRUnichar *source, PRUint32 argumentsSize, const PRUnichar **arguments, PRUint32 flagsSize, PRUint32 *flags, IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1IGuest (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1IGuest()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod2IGuest (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod2IGuest()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod3IGuest (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod3IGuest()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod4IGuest (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod4IGuest()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod5IGuest (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod5IGuest()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod6IGuest (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod6IGuest()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod7IGuest (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod7IGuest()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod8IGuest (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod8IGuest()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IProgress */
#define IPROGRESS_IID_STR "77faf1c0-489d-b123-274c-5a95e77ab286"

#define IPROGRESS_IID \
  {0x77faf1c0, 0x489d, 0xb123, \
    { 0x27, 0x4c, 0x5a, 0x95, 0xe7, 0x7a, 0xb2, 0x86 }}

class NS_NO_VTABLE IProgress : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IPROGRESS_IID)

  /* readonly attribute wstring id; */
  NS_IMETHOD GetId(PRUnichar * *aId) = 0;

  /* readonly attribute wstring description; */
  NS_IMETHOD GetDescription(PRUnichar * *aDescription) = 0;

  /* readonly attribute nsISupports initiator; */
  NS_IMETHOD GetInitiator(nsISupports * *aInitiator) = 0;

  /* readonly attribute boolean cancelable; */
  NS_IMETHOD GetCancelable(PRBool *aCancelable) = 0;

  /* readonly attribute unsigned long percent; */
  NS_IMETHOD GetPercent(PRUint32 *aPercent) = 0;

  /* readonly attribute long timeRemaining; */
  NS_IMETHOD GetTimeRemaining(PRInt32 *aTimeRemaining) = 0;

  /* readonly attribute boolean completed; */
  NS_IMETHOD GetCompleted(PRBool *aCompleted) = 0;

  /* readonly attribute boolean canceled; */
  NS_IMETHOD GetCanceled(PRBool *aCanceled) = 0;

  /* readonly attribute long resultCode; */
  NS_IMETHOD GetResultCode(PRInt32 *aResultCode) = 0;

  /* readonly attribute IVirtualBoxErrorInfo errorInfo; */
  NS_IMETHOD GetErrorInfo(IVirtualBoxErrorInfo * *aErrorInfo) = 0;

  /* readonly attribute unsigned long operationCount; */
  NS_IMETHOD GetOperationCount(PRUint32 *aOperationCount) = 0;

  /* readonly attribute unsigned long operation; */
  NS_IMETHOD GetOperation(PRUint32 *aOperation) = 0;

  /* readonly attribute wstring operationDescription; */
  NS_IMETHOD GetOperationDescription(PRUnichar * *aOperationDescription) = 0;

  /* readonly attribute unsigned long operationPercent; */
  NS_IMETHOD GetOperationPercent(PRUint32 *aOperationPercent) = 0;

  /* readonly attribute unsigned long operationWeight; */
  NS_IMETHOD GetOperationWeight(PRUint32 *aOperationWeight) = 0;

  /* attribute unsigned long timeout; */
  NS_IMETHOD GetTimeout(PRUint32 *aTimeout) = 0;
  NS_IMETHOD SetTimeout(PRUint32 aTimeout) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IProgress; */
  NS_IMETHOD GetInternalAndReservedAttribute1IProgress(PRUint32 *aInternalAndReservedAttribute1IProgress) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IProgress; */
  NS_IMETHOD GetInternalAndReservedAttribute2IProgress(PRUint32 *aInternalAndReservedAttribute2IProgress) = 0;

  /* void setCurrentOperationProgress (in unsigned long percent); */
  NS_IMETHOD SetCurrentOperationProgress(PRUint32 percent) = 0;

  /* void setNextOperation (in wstring nextOperationDescription, in unsigned long nextOperationsWeight); */
  NS_IMETHOD SetNextOperation(const PRUnichar *nextOperationDescription, PRUint32 nextOperationsWeight) = 0;

  /* void waitForCompletion (in long timeout); */
  NS_IMETHOD WaitForCompletion(PRInt32 timeout) = 0;

  /* void waitForOperationCompletion (in unsigned long operation, in long timeout); */
  NS_IMETHOD WaitForOperationCompletion(PRUint32 operation, PRInt32 timeout) = 0;

  /* void waitForAsyncProgressCompletion (in IProgress pProgressAsync); */
  NS_IMETHOD WaitForAsyncProgressCompletion(IProgress *pProgressAsync) = 0;

  /* void cancel (); */
  NS_IMETHOD Cancel(void) = 0;

  /* void InternalAndReservedMethod1IProgress (); */
  NS_IMETHOD InternalAndReservedMethod1IProgress(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IPROGRESS \
  NS_IMETHOD GetId(PRUnichar * *aId); \
  NS_IMETHOD GetDescription(PRUnichar * *aDescription); \
  NS_IMETHOD GetInitiator(nsISupports * *aInitiator); \
  NS_IMETHOD GetCancelable(PRBool *aCancelable); \
  NS_IMETHOD GetPercent(PRUint32 *aPercent); \
  NS_IMETHOD GetTimeRemaining(PRInt32 *aTimeRemaining); \
  NS_IMETHOD GetCompleted(PRBool *aCompleted); \
  NS_IMETHOD GetCanceled(PRBool *aCanceled); \
  NS_IMETHOD GetResultCode(PRInt32 *aResultCode); \
  NS_IMETHOD GetErrorInfo(IVirtualBoxErrorInfo * *aErrorInfo); \
  NS_IMETHOD GetOperationCount(PRUint32 *aOperationCount); \
  NS_IMETHOD GetOperation(PRUint32 *aOperation); \
  NS_IMETHOD GetOperationDescription(PRUnichar * *aOperationDescription); \
  NS_IMETHOD GetOperationPercent(PRUint32 *aOperationPercent); \
  NS_IMETHOD GetOperationWeight(PRUint32 *aOperationWeight); \
  NS_IMETHOD GetTimeout(PRUint32 *aTimeout); \
  NS_IMETHOD SetTimeout(PRUint32 aTimeout); \
  NS_IMETHOD GetInternalAndReservedAttribute1IProgress(PRUint32 *aInternalAndReservedAttribute1IProgress); \
  NS_IMETHOD GetInternalAndReservedAttribute2IProgress(PRUint32 *aInternalAndReservedAttribute2IProgress); \
  NS_IMETHOD SetCurrentOperationProgress(PRUint32 percent); \
  NS_IMETHOD SetNextOperation(const PRUnichar *nextOperationDescription, PRUint32 nextOperationsWeight); \
  NS_IMETHOD WaitForCompletion(PRInt32 timeout); \
  NS_IMETHOD WaitForOperationCompletion(PRUint32 operation, PRInt32 timeout); \
  NS_IMETHOD WaitForAsyncProgressCompletion(IProgress *pProgressAsync); \
  NS_IMETHOD Cancel(void); \
  NS_IMETHOD InternalAndReservedMethod1IProgress(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IPROGRESS(_to) \
  NS_IMETHOD GetId(PRUnichar * *aId) { return _to GetId(aId); } \
  NS_IMETHOD GetDescription(PRUnichar * *aDescription) { return _to GetDescription(aDescription); } \
  NS_IMETHOD GetInitiator(nsISupports * *aInitiator) { return _to GetInitiator(aInitiator); } \
  NS_IMETHOD GetCancelable(PRBool *aCancelable) { return _to GetCancelable(aCancelable); } \
  NS_IMETHOD GetPercent(PRUint32 *aPercent) { return _to GetPercent(aPercent); } \
  NS_IMETHOD GetTimeRemaining(PRInt32 *aTimeRemaining) { return _to GetTimeRemaining(aTimeRemaining); } \
  NS_IMETHOD GetCompleted(PRBool *aCompleted) { return _to GetCompleted(aCompleted); } \
  NS_IMETHOD GetCanceled(PRBool *aCanceled) { return _to GetCanceled(aCanceled); } \
  NS_IMETHOD GetResultCode(PRInt32 *aResultCode) { return _to GetResultCode(aResultCode); } \
  NS_IMETHOD GetErrorInfo(IVirtualBoxErrorInfo * *aErrorInfo) { return _to GetErrorInfo(aErrorInfo); } \
  NS_IMETHOD GetOperationCount(PRUint32 *aOperationCount) { return _to GetOperationCount(aOperationCount); } \
  NS_IMETHOD GetOperation(PRUint32 *aOperation) { return _to GetOperation(aOperation); } \
  NS_IMETHOD GetOperationDescription(PRUnichar * *aOperationDescription) { return _to GetOperationDescription(aOperationDescription); } \
  NS_IMETHOD GetOperationPercent(PRUint32 *aOperationPercent) { return _to GetOperationPercent(aOperationPercent); } \
  NS_IMETHOD GetOperationWeight(PRUint32 *aOperationWeight) { return _to GetOperationWeight(aOperationWeight); } \
  NS_IMETHOD GetTimeout(PRUint32 *aTimeout) { return _to GetTimeout(aTimeout); } \
  NS_IMETHOD SetTimeout(PRUint32 aTimeout) { return _to SetTimeout(aTimeout); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IProgress(PRUint32 *aInternalAndReservedAttribute1IProgress) { return _to GetInternalAndReservedAttribute1IProgress(aInternalAndReservedAttribute1IProgress); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IProgress(PRUint32 *aInternalAndReservedAttribute2IProgress) { return _to GetInternalAndReservedAttribute2IProgress(aInternalAndReservedAttribute2IProgress); } \
  NS_IMETHOD SetCurrentOperationProgress(PRUint32 percent) { return _to SetCurrentOperationProgress(percent); } \
  NS_IMETHOD SetNextOperation(const PRUnichar *nextOperationDescription, PRUint32 nextOperationsWeight) { return _to SetNextOperation(nextOperationDescription, nextOperationsWeight); } \
  NS_IMETHOD WaitForCompletion(PRInt32 timeout) { return _to WaitForCompletion(timeout); } \
  NS_IMETHOD WaitForOperationCompletion(PRUint32 operation, PRInt32 timeout) { return _to WaitForOperationCompletion(operation, timeout); } \
  NS_IMETHOD WaitForAsyncProgressCompletion(IProgress *pProgressAsync) { return _to WaitForAsyncProgressCompletion(pProgressAsync); } \
  NS_IMETHOD Cancel(void) { return _to Cancel(); } \
  NS_IMETHOD InternalAndReservedMethod1IProgress(void) { return _to InternalAndReservedMethod1IProgress(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IPROGRESS(_to) \
  NS_IMETHOD GetId(PRUnichar * *aId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetId(aId); } \
  NS_IMETHOD GetDescription(PRUnichar * *aDescription) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDescription(aDescription); } \
  NS_IMETHOD GetInitiator(nsISupports * *aInitiator) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInitiator(aInitiator); } \
  NS_IMETHOD GetCancelable(PRBool *aCancelable) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCancelable(aCancelable); } \
  NS_IMETHOD GetPercent(PRUint32 *aPercent) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPercent(aPercent); } \
  NS_IMETHOD GetTimeRemaining(PRInt32 *aTimeRemaining) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTimeRemaining(aTimeRemaining); } \
  NS_IMETHOD GetCompleted(PRBool *aCompleted) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCompleted(aCompleted); } \
  NS_IMETHOD GetCanceled(PRBool *aCanceled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCanceled(aCanceled); } \
  NS_IMETHOD GetResultCode(PRInt32 *aResultCode) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetResultCode(aResultCode); } \
  NS_IMETHOD GetErrorInfo(IVirtualBoxErrorInfo * *aErrorInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetErrorInfo(aErrorInfo); } \
  NS_IMETHOD GetOperationCount(PRUint32 *aOperationCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOperationCount(aOperationCount); } \
  NS_IMETHOD GetOperation(PRUint32 *aOperation) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOperation(aOperation); } \
  NS_IMETHOD GetOperationDescription(PRUnichar * *aOperationDescription) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOperationDescription(aOperationDescription); } \
  NS_IMETHOD GetOperationPercent(PRUint32 *aOperationPercent) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOperationPercent(aOperationPercent); } \
  NS_IMETHOD GetOperationWeight(PRUint32 *aOperationWeight) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOperationWeight(aOperationWeight); } \
  NS_IMETHOD GetTimeout(PRUint32 *aTimeout) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTimeout(aTimeout); } \
  NS_IMETHOD SetTimeout(PRUint32 aTimeout) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetTimeout(aTimeout); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IProgress(PRUint32 *aInternalAndReservedAttribute1IProgress) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IProgress(aInternalAndReservedAttribute1IProgress); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IProgress(PRUint32 *aInternalAndReservedAttribute2IProgress) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IProgress(aInternalAndReservedAttribute2IProgress); } \
  NS_IMETHOD SetCurrentOperationProgress(PRUint32 percent) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCurrentOperationProgress(percent); } \
  NS_IMETHOD SetNextOperation(const PRUnichar *nextOperationDescription, PRUint32 nextOperationsWeight) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetNextOperation(nextOperationDescription, nextOperationsWeight); } \
  NS_IMETHOD WaitForCompletion(PRInt32 timeout) { return !_to ? NS_ERROR_NULL_POINTER : _to->WaitForCompletion(timeout); } \
  NS_IMETHOD WaitForOperationCompletion(PRUint32 operation, PRInt32 timeout) { return !_to ? NS_ERROR_NULL_POINTER : _to->WaitForOperationCompletion(operation, timeout); } \
  NS_IMETHOD WaitForAsyncProgressCompletion(IProgress *pProgressAsync) { return !_to ? NS_ERROR_NULL_POINTER : _to->WaitForAsyncProgressCompletion(pProgressAsync); } \
  NS_IMETHOD Cancel(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Cancel(); } \
  NS_IMETHOD InternalAndReservedMethod1IProgress(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IProgress(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IProgress
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IPROGRESS

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IProgress)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute wstring id; */
NS_IMETHODIMP _MYCLASS_::GetId(PRUnichar * *aId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring description; */
NS_IMETHODIMP _MYCLASS_::GetDescription(PRUnichar * *aDescription)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsISupports initiator; */
NS_IMETHODIMP _MYCLASS_::GetInitiator(nsISupports * *aInitiator)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean cancelable; */
NS_IMETHODIMP _MYCLASS_::GetCancelable(PRBool *aCancelable)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long percent; */
NS_IMETHODIMP _MYCLASS_::GetPercent(PRUint32 *aPercent)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long timeRemaining; */
NS_IMETHODIMP _MYCLASS_::GetTimeRemaining(PRInt32 *aTimeRemaining)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean completed; */
NS_IMETHODIMP _MYCLASS_::GetCompleted(PRBool *aCompleted)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean canceled; */
NS_IMETHODIMP _MYCLASS_::GetCanceled(PRBool *aCanceled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long resultCode; */
NS_IMETHODIMP _MYCLASS_::GetResultCode(PRInt32 *aResultCode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IVirtualBoxErrorInfo errorInfo; */
NS_IMETHODIMP _MYCLASS_::GetErrorInfo(IVirtualBoxErrorInfo * *aErrorInfo)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long operationCount; */
NS_IMETHODIMP _MYCLASS_::GetOperationCount(PRUint32 *aOperationCount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long operation; */
NS_IMETHODIMP _MYCLASS_::GetOperation(PRUint32 *aOperation)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring operationDescription; */
NS_IMETHODIMP _MYCLASS_::GetOperationDescription(PRUnichar * *aOperationDescription)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long operationPercent; */
NS_IMETHODIMP _MYCLASS_::GetOperationPercent(PRUint32 *aOperationPercent)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long operationWeight; */
NS_IMETHODIMP _MYCLASS_::GetOperationWeight(PRUint32 *aOperationWeight)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long timeout; */
NS_IMETHODIMP _MYCLASS_::GetTimeout(PRUint32 *aTimeout)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetTimeout(PRUint32 aTimeout)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IProgress; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IProgress(PRUint32 *aInternalAndReservedAttribute1IProgress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IProgress; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IProgress(PRUint32 *aInternalAndReservedAttribute2IProgress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setCurrentOperationProgress (in unsigned long percent); */
NS_IMETHODIMP _MYCLASS_::SetCurrentOperationProgress(PRUint32 percent)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setNextOperation (in wstring nextOperationDescription, in unsigned long nextOperationsWeight); */
NS_IMETHODIMP _MYCLASS_::SetNextOperation(const PRUnichar *nextOperationDescription, PRUint32 nextOperationsWeight)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void waitForCompletion (in long timeout); */
NS_IMETHODIMP _MYCLASS_::WaitForCompletion(PRInt32 timeout)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void waitForOperationCompletion (in unsigned long operation, in long timeout); */
NS_IMETHODIMP _MYCLASS_::WaitForOperationCompletion(PRUint32 operation, PRInt32 timeout)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void waitForAsyncProgressCompletion (in IProgress pProgressAsync); */
NS_IMETHODIMP _MYCLASS_::WaitForAsyncProgressCompletion(IProgress *pProgressAsync)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void cancel (); */
NS_IMETHODIMP _MYCLASS_::Cancel()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1IProgress (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1IProgress()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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_SetCurrentOperationProgress_TO(smth) NS_IMETHOD SetCurrentOperationProgress (PRUint32 aPercent) { return smth SetCurrentOperationProgress (aPercent); }
#define COM_FORWARD_IProgress_SetCurrentOperationProgress_TO_OBJ(obj) COM_FORWARD_IProgress_SetCurrentOperationProgress_TO ((obj)->)
#define COM_FORWARD_IProgress_SetCurrentOperationProgress_TO_BASE(base) COM_FORWARD_IProgress_SetCurrentOperationProgress_TO (base::)
#define COM_FORWARD_IProgress_SetNextOperation_TO(smth) NS_IMETHOD SetNextOperation (PRUnichar * aNextOperationDescription, PRUint32 aNextOperationsWeight) { return smth SetNextOperation (aNextOperationDescription, aNextOperationsWeight); }
#define COM_FORWARD_IProgress_SetNextOperation_TO_OBJ(obj) COM_FORWARD_IProgress_SetNextOperation_TO ((obj)->)
#define COM_FORWARD_IProgress_SetNextOperation_TO_BASE(base) COM_FORWARD_IProgress_SetNextOperation_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_WaitForAsyncProgressCompletion_TO(smth) NS_IMETHOD WaitForAsyncProgressCompletion (IProgress * aPProgressAsync) { return smth WaitForAsyncProgressCompletion (aPProgressAsync); }
#define COM_FORWARD_IProgress_WaitForAsyncProgressCompletion_TO_OBJ(obj) COM_FORWARD_IProgress_WaitForAsyncProgressCompletion_TO ((obj)->)
#define COM_FORWARD_IProgress_WaitForAsyncProgressCompletion_TO_BASE(base) COM_FORWARD_IProgress_WaitForAsyncProgressCompletion_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;

/* starting interface:    ISnapshot */
#define ISNAPSHOT_IID_STR "5732f030-4194-ec8b-c761-e1a99327e9f0"

#define ISNAPSHOT_IID \
  {0x5732f030, 0x4194, 0xec8b, \
    { 0xc7, 0x61, 0xe1, 0xa9, 0x93, 0x27, 0xe9, 0xf0 }}

class NS_NO_VTABLE ISnapshot : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ISNAPSHOT_IID)

  /* readonly attribute wstring id; */
  NS_IMETHOD GetId(PRUnichar * *aId) = 0;

  /* attribute wstring name; */
  NS_IMETHOD GetName(PRUnichar * *aName) = 0;
  NS_IMETHOD SetName(const PRUnichar * aName) = 0;

  /* attribute wstring description; */
  NS_IMETHOD GetDescription(PRUnichar * *aDescription) = 0;
  NS_IMETHOD SetDescription(const PRUnichar * aDescription) = 0;

  /* readonly attribute long long timeStamp; */
  NS_IMETHOD GetTimeStamp(PRInt64 *aTimeStamp) = 0;

  /* readonly attribute boolean online; */
  NS_IMETHOD GetOnline(PRBool *aOnline) = 0;

  /* readonly attribute IMachine machine; */
  NS_IMETHOD GetMachine(IMachine * *aMachine) = 0;

  /* readonly attribute ISnapshot parent; */
  NS_IMETHOD GetParent(ISnapshot * *aParent) = 0;

  /* void getChildren (out unsigned long childrenSize, [array, size_is (childrenSize), retval] out ISnapshot children); */
  NS_IMETHOD GetChildren(PRUint32 *childrenSize, ISnapshot ***children) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1ISnapshot; */
  NS_IMETHOD GetInternalAndReservedAttribute1ISnapshot(PRUint32 *aInternalAndReservedAttribute1ISnapshot) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2ISnapshot; */
  NS_IMETHOD GetInternalAndReservedAttribute2ISnapshot(PRUint32 *aInternalAndReservedAttribute2ISnapshot) = 0;

  /* void getChildrenCount ([retval] out unsigned long childrenCount); */
  NS_IMETHOD GetChildrenCount(PRUint32 *childrenCount) = 0;

  /* void InternalAndReservedMethod1ISnapshot (); */
  NS_IMETHOD InternalAndReservedMethod1ISnapshot(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ISNAPSHOT \
  NS_IMETHOD GetId(PRUnichar * *aId); \
  NS_IMETHOD GetName(PRUnichar * *aName); \
  NS_IMETHOD SetName(const PRUnichar * aName); \
  NS_IMETHOD GetDescription(PRUnichar * *aDescription); \
  NS_IMETHOD SetDescription(const PRUnichar * aDescription); \
  NS_IMETHOD GetTimeStamp(PRInt64 *aTimeStamp); \
  NS_IMETHOD GetOnline(PRBool *aOnline); \
  NS_IMETHOD GetMachine(IMachine * *aMachine); \
  NS_IMETHOD GetParent(ISnapshot * *aParent); \
  NS_IMETHOD GetChildren(PRUint32 *childrenSize, ISnapshot ***children); \
  NS_IMETHOD GetInternalAndReservedAttribute1ISnapshot(PRUint32 *aInternalAndReservedAttribute1ISnapshot); \
  NS_IMETHOD GetInternalAndReservedAttribute2ISnapshot(PRUint32 *aInternalAndReservedAttribute2ISnapshot); \
  NS_IMETHOD GetChildrenCount(PRUint32 *childrenCount); \
  NS_IMETHOD InternalAndReservedMethod1ISnapshot(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ISNAPSHOT(_to) \
  NS_IMETHOD GetId(PRUnichar * *aId) { return _to GetId(aId); } \
  NS_IMETHOD GetName(PRUnichar * *aName) { return _to GetName(aName); } \
  NS_IMETHOD SetName(const PRUnichar * aName) { return _to SetName(aName); } \
  NS_IMETHOD GetDescription(PRUnichar * *aDescription) { return _to GetDescription(aDescription); } \
  NS_IMETHOD SetDescription(const PRUnichar * aDescription) { return _to SetDescription(aDescription); } \
  NS_IMETHOD GetTimeStamp(PRInt64 *aTimeStamp) { return _to GetTimeStamp(aTimeStamp); } \
  NS_IMETHOD GetOnline(PRBool *aOnline) { return _to GetOnline(aOnline); } \
  NS_IMETHOD GetMachine(IMachine * *aMachine) { return _to GetMachine(aMachine); } \
  NS_IMETHOD GetParent(ISnapshot * *aParent) { return _to GetParent(aParent); } \
  NS_IMETHOD GetChildren(PRUint32 *childrenSize, ISnapshot ***children) { return _to GetChildren(childrenSize, children); } \
  NS_IMETHOD GetInternalAndReservedAttribute1ISnapshot(PRUint32 *aInternalAndReservedAttribute1ISnapshot) { return _to GetInternalAndReservedAttribute1ISnapshot(aInternalAndReservedAttribute1ISnapshot); } \
  NS_IMETHOD GetInternalAndReservedAttribute2ISnapshot(PRUint32 *aInternalAndReservedAttribute2ISnapshot) { return _to GetInternalAndReservedAttribute2ISnapshot(aInternalAndReservedAttribute2ISnapshot); } \
  NS_IMETHOD GetChildrenCount(PRUint32 *childrenCount) { return _to GetChildrenCount(childrenCount); } \
  NS_IMETHOD InternalAndReservedMethod1ISnapshot(void) { return _to InternalAndReservedMethod1ISnapshot(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ISNAPSHOT(_to) \
  NS_IMETHOD GetId(PRUnichar * *aId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetId(aId); } \
  NS_IMETHOD GetName(PRUnichar * *aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
  NS_IMETHOD SetName(const PRUnichar * aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetName(aName); } \
  NS_IMETHOD GetDescription(PRUnichar * *aDescription) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDescription(aDescription); } \
  NS_IMETHOD SetDescription(const PRUnichar * aDescription) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDescription(aDescription); } \
  NS_IMETHOD GetTimeStamp(PRInt64 *aTimeStamp) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTimeStamp(aTimeStamp); } \
  NS_IMETHOD GetOnline(PRBool *aOnline) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOnline(aOnline); } \
  NS_IMETHOD GetMachine(IMachine * *aMachine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMachine(aMachine); } \
  NS_IMETHOD GetParent(ISnapshot * *aParent) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetParent(aParent); } \
  NS_IMETHOD GetChildren(PRUint32 *childrenSize, ISnapshot ***children) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetChildren(childrenSize, children); } \
  NS_IMETHOD GetInternalAndReservedAttribute1ISnapshot(PRUint32 *aInternalAndReservedAttribute1ISnapshot) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1ISnapshot(aInternalAndReservedAttribute1ISnapshot); } \
  NS_IMETHOD GetInternalAndReservedAttribute2ISnapshot(PRUint32 *aInternalAndReservedAttribute2ISnapshot) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2ISnapshot(aInternalAndReservedAttribute2ISnapshot); } \
  NS_IMETHOD GetChildrenCount(PRUint32 *childrenCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetChildrenCount(childrenCount); } \
  NS_IMETHOD InternalAndReservedMethod1ISnapshot(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1ISnapshot(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public ISnapshot
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_ISNAPSHOT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, ISnapshot)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute wstring id; */
NS_IMETHODIMP _MYCLASS_::GetId(PRUnichar * *aId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring name; */
NS_IMETHODIMP _MYCLASS_::GetName(PRUnichar * *aName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetName(const PRUnichar * aName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring description; */
NS_IMETHODIMP _MYCLASS_::GetDescription(PRUnichar * *aDescription)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetDescription(const PRUnichar * aDescription)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long long timeStamp; */
NS_IMETHODIMP _MYCLASS_::GetTimeStamp(PRInt64 *aTimeStamp)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean online; */
NS_IMETHODIMP _MYCLASS_::GetOnline(PRBool *aOnline)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IMachine machine; */
NS_IMETHODIMP _MYCLASS_::GetMachine(IMachine * *aMachine)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute ISnapshot parent; */
NS_IMETHODIMP _MYCLASS_::GetParent(ISnapshot * *aParent)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getChildren (out unsigned long childrenSize, [array, size_is (childrenSize), retval] out ISnapshot children); */
NS_IMETHODIMP _MYCLASS_::GetChildren(PRUint32 *childrenSize, ISnapshot ***children)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1ISnapshot; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1ISnapshot(PRUint32 *aInternalAndReservedAttribute1ISnapshot)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2ISnapshot; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2ISnapshot(PRUint32 *aInternalAndReservedAttribute2ISnapshot)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getChildrenCount ([retval] out unsigned long childrenCount); */
NS_IMETHODIMP _MYCLASS_::GetChildrenCount(PRUint32 *childrenCount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1ISnapshot (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1ISnapshot()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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_GetChildrenCount_TO(smth) NS_IMETHOD GetChildrenCount (PRUint32 * aChildrenCount) { return smth GetChildrenCount (aChildrenCount); }
#define COM_FORWARD_ISnapshot_GetChildrenCount_TO_OBJ(obj) COM_FORWARD_ISnapshot_GetChildrenCount_TO ((obj)->)
#define COM_FORWARD_ISnapshot_GetChildrenCount_TO_BASE(base) COM_FORWARD_ISnapshot_GetChildrenCount_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;

/* starting interface:    IMediumAttachment */
#define IMEDIUMATTACHMENT_IID_STR "3785b3f7-7b5f-4000-8842-ad0cc6ab30b7"

#define IMEDIUMATTACHMENT_IID \
  {0x3785b3f7, 0x7b5f, 0x4000, \
    { 0x88, 0x42, 0xad, 0x0c, 0xc6, 0xab, 0x30, 0xb7 }}

class NS_NO_VTABLE IMediumAttachment : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IMEDIUMATTACHMENT_IID)

  /* readonly attribute IMedium medium; */
  NS_IMETHOD GetMedium(IMedium * *aMedium) = 0;

  /* readonly attribute wstring controller; */
  NS_IMETHOD GetController(PRUnichar * *aController) = 0;

  /* readonly attribute long port; */
  NS_IMETHOD GetPort(PRInt32 *aPort) = 0;

  /* readonly attribute long device; */
  NS_IMETHOD GetDevice(PRInt32 *aDevice) = 0;

  /* readonly attribute PRUint32 type; */
  NS_IMETHOD GetType(PRUint32 *aType) = 0;

  /* readonly attribute boolean passthrough; */
  NS_IMETHOD GetPassthrough(PRBool *aPassthrough) = 0;

  /* readonly attribute boolean temporaryEject; */
  NS_IMETHOD GetTemporaryEject(PRBool *aTemporaryEject) = 0;

  /* readonly attribute boolean isEjected; */
  NS_IMETHOD GetIsEjected(PRBool *aIsEjected) = 0;

  /* readonly attribute boolean nonRotational; */
  NS_IMETHOD GetNonRotational(PRBool *aNonRotational) = 0;

  /* readonly attribute boolean discard; */
  NS_IMETHOD GetDiscard(PRBool *aDiscard) = 0;

  /* readonly attribute boolean hotPluggable; */
  NS_IMETHOD GetHotPluggable(PRBool *aHotPluggable) = 0;

  /* readonly attribute IBandwidthGroup bandwidthGroup; */
  NS_IMETHOD GetBandwidthGroup(IBandwidthGroup * *aBandwidthGroup) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IMediumAttachment; */
  NS_IMETHOD GetInternalAndReservedAttribute1IMediumAttachment(PRUint32 *aInternalAndReservedAttribute1IMediumAttachment) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IMediumAttachment; */
  NS_IMETHOD GetInternalAndReservedAttribute2IMediumAttachment(PRUint32 *aInternalAndReservedAttribute2IMediumAttachment) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IMediumAttachment; */
  NS_IMETHOD GetInternalAndReservedAttribute3IMediumAttachment(PRUint32 *aInternalAndReservedAttribute3IMediumAttachment) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IMediumAttachment; */
  NS_IMETHOD GetInternalAndReservedAttribute4IMediumAttachment(PRUint32 *aInternalAndReservedAttribute4IMediumAttachment) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IMEDIUMATTACHMENT \
  NS_IMETHOD GetMedium(IMedium * *aMedium); \
  NS_IMETHOD GetController(PRUnichar * *aController); \
  NS_IMETHOD GetPort(PRInt32 *aPort); \
  NS_IMETHOD GetDevice(PRInt32 *aDevice); \
  NS_IMETHOD GetType(PRUint32 *aType); \
  NS_IMETHOD GetPassthrough(PRBool *aPassthrough); \
  NS_IMETHOD GetTemporaryEject(PRBool *aTemporaryEject); \
  NS_IMETHOD GetIsEjected(PRBool *aIsEjected); \
  NS_IMETHOD GetNonRotational(PRBool *aNonRotational); \
  NS_IMETHOD GetDiscard(PRBool *aDiscard); \
  NS_IMETHOD GetHotPluggable(PRBool *aHotPluggable); \
  NS_IMETHOD GetBandwidthGroup(IBandwidthGroup * *aBandwidthGroup); \
  NS_IMETHOD GetInternalAndReservedAttribute1IMediumAttachment(PRUint32 *aInternalAndReservedAttribute1IMediumAttachment); \
  NS_IMETHOD GetInternalAndReservedAttribute2IMediumAttachment(PRUint32 *aInternalAndReservedAttribute2IMediumAttachment); \
  NS_IMETHOD GetInternalAndReservedAttribute3IMediumAttachment(PRUint32 *aInternalAndReservedAttribute3IMediumAttachment); \
  NS_IMETHOD GetInternalAndReservedAttribute4IMediumAttachment(PRUint32 *aInternalAndReservedAttribute4IMediumAttachment); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IMEDIUMATTACHMENT(_to) \
  NS_IMETHOD GetMedium(IMedium * *aMedium) { return _to GetMedium(aMedium); } \
  NS_IMETHOD GetController(PRUnichar * *aController) { return _to GetController(aController); } \
  NS_IMETHOD GetPort(PRInt32 *aPort) { return _to GetPort(aPort); } \
  NS_IMETHOD GetDevice(PRInt32 *aDevice) { return _to GetDevice(aDevice); } \
  NS_IMETHOD GetType(PRUint32 *aType) { return _to GetType(aType); } \
  NS_IMETHOD GetPassthrough(PRBool *aPassthrough) { return _to GetPassthrough(aPassthrough); } \
  NS_IMETHOD GetTemporaryEject(PRBool *aTemporaryEject) { return _to GetTemporaryEject(aTemporaryEject); } \
  NS_IMETHOD GetIsEjected(PRBool *aIsEjected) { return _to GetIsEjected(aIsEjected); } \
  NS_IMETHOD GetNonRotational(PRBool *aNonRotational) { return _to GetNonRotational(aNonRotational); } \
  NS_IMETHOD GetDiscard(PRBool *aDiscard) { return _to GetDiscard(aDiscard); } \
  NS_IMETHOD GetHotPluggable(PRBool *aHotPluggable) { return _to GetHotPluggable(aHotPluggable); } \
  NS_IMETHOD GetBandwidthGroup(IBandwidthGroup * *aBandwidthGroup) { return _to GetBandwidthGroup(aBandwidthGroup); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IMediumAttachment(PRUint32 *aInternalAndReservedAttribute1IMediumAttachment) { return _to GetInternalAndReservedAttribute1IMediumAttachment(aInternalAndReservedAttribute1IMediumAttachment); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IMediumAttachment(PRUint32 *aInternalAndReservedAttribute2IMediumAttachment) { return _to GetInternalAndReservedAttribute2IMediumAttachment(aInternalAndReservedAttribute2IMediumAttachment); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IMediumAttachment(PRUint32 *aInternalAndReservedAttribute3IMediumAttachment) { return _to GetInternalAndReservedAttribute3IMediumAttachment(aInternalAndReservedAttribute3IMediumAttachment); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IMediumAttachment(PRUint32 *aInternalAndReservedAttribute4IMediumAttachment) { return _to GetInternalAndReservedAttribute4IMediumAttachment(aInternalAndReservedAttribute4IMediumAttachment); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IMEDIUMATTACHMENT(_to) \
  NS_IMETHOD GetMedium(IMedium * *aMedium) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMedium(aMedium); } \
  NS_IMETHOD GetController(PRUnichar * *aController) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetController(aController); } \
  NS_IMETHOD GetPort(PRInt32 *aPort) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPort(aPort); } \
  NS_IMETHOD GetDevice(PRInt32 *aDevice) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDevice(aDevice); } \
  NS_IMETHOD GetType(PRUint32 *aType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetType(aType); } \
  NS_IMETHOD GetPassthrough(PRBool *aPassthrough) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPassthrough(aPassthrough); } \
  NS_IMETHOD GetTemporaryEject(PRBool *aTemporaryEject) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTemporaryEject(aTemporaryEject); } \
  NS_IMETHOD GetIsEjected(PRBool *aIsEjected) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsEjected(aIsEjected); } \
  NS_IMETHOD GetNonRotational(PRBool *aNonRotational) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNonRotational(aNonRotational); } \
  NS_IMETHOD GetDiscard(PRBool *aDiscard) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDiscard(aDiscard); } \
  NS_IMETHOD GetHotPluggable(PRBool *aHotPluggable) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHotPluggable(aHotPluggable); } \
  NS_IMETHOD GetBandwidthGroup(IBandwidthGroup * *aBandwidthGroup) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBandwidthGroup(aBandwidthGroup); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IMediumAttachment(PRUint32 *aInternalAndReservedAttribute1IMediumAttachment) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IMediumAttachment(aInternalAndReservedAttribute1IMediumAttachment); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IMediumAttachment(PRUint32 *aInternalAndReservedAttribute2IMediumAttachment) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IMediumAttachment(aInternalAndReservedAttribute2IMediumAttachment); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IMediumAttachment(PRUint32 *aInternalAndReservedAttribute3IMediumAttachment) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IMediumAttachment(aInternalAndReservedAttribute3IMediumAttachment); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IMediumAttachment(PRUint32 *aInternalAndReservedAttribute4IMediumAttachment) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IMediumAttachment(aInternalAndReservedAttribute4IMediumAttachment); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IMediumAttachment
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IMEDIUMATTACHMENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IMediumAttachment)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute IMedium medium; */
NS_IMETHODIMP _MYCLASS_::GetMedium(IMedium * *aMedium)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring controller; */
NS_IMETHODIMP _MYCLASS_::GetController(PRUnichar * *aController)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long port; */
NS_IMETHODIMP _MYCLASS_::GetPort(PRInt32 *aPort)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long device; */
NS_IMETHODIMP _MYCLASS_::GetDevice(PRInt32 *aDevice)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 type; */
NS_IMETHODIMP _MYCLASS_::GetType(PRUint32 *aType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean passthrough; */
NS_IMETHODIMP _MYCLASS_::GetPassthrough(PRBool *aPassthrough)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean temporaryEject; */
NS_IMETHODIMP _MYCLASS_::GetTemporaryEject(PRBool *aTemporaryEject)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean isEjected; */
NS_IMETHODIMP _MYCLASS_::GetIsEjected(PRBool *aIsEjected)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean nonRotational; */
NS_IMETHODIMP _MYCLASS_::GetNonRotational(PRBool *aNonRotational)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean discard; */
NS_IMETHODIMP _MYCLASS_::GetDiscard(PRBool *aDiscard)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean hotPluggable; */
NS_IMETHODIMP _MYCLASS_::GetHotPluggable(PRBool *aHotPluggable)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IBandwidthGroup bandwidthGroup; */
NS_IMETHODIMP _MYCLASS_::GetBandwidthGroup(IBandwidthGroup * *aBandwidthGroup)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IMediumAttachment; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IMediumAttachment(PRUint32 *aInternalAndReservedAttribute1IMediumAttachment)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IMediumAttachment; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IMediumAttachment(PRUint32 *aInternalAndReservedAttribute2IMediumAttachment)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute3IMediumAttachment; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute3IMediumAttachment(PRUint32 *aInternalAndReservedAttribute3IMediumAttachment)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute4IMediumAttachment; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute4IMediumAttachment(PRUint32 *aInternalAndReservedAttribute4IMediumAttachment)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IMedium */
#define IMEDIUM_IID_STR "4afe423b-43e0-e9d0-82e8-ceb307940dda"

#define IMEDIUM_IID \
  {0x4afe423b, 0x43e0, 0xe9d0, \
    { 0x82, 0xe8, 0xce, 0xb3, 0x07, 0x94, 0x0d, 0xda }}

class NS_NO_VTABLE IMedium : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IMEDIUM_IID)

  /* readonly attribute wstring id; */
  NS_IMETHOD GetId(PRUnichar * *aId) = 0;

  /* attribute wstring description; */
  NS_IMETHOD GetDescription(PRUnichar * *aDescription) = 0;
  NS_IMETHOD SetDescription(const PRUnichar * aDescription) = 0;

  /* readonly attribute PRUint32 state; */
  NS_IMETHOD GetState(PRUint32 *aState) = 0;

  /* void getVariant (out unsigned long variantSize, [array, size_is (variantSize), retval] out PRUint32 variant); */
  NS_IMETHOD GetVariant(PRUint32 *variantSize, PRUint32 **variant) = 0;

  /* readonly attribute wstring location; */
  NS_IMETHOD GetLocation(PRUnichar * *aLocation) = 0;

  /* readonly attribute wstring name; */
  NS_IMETHOD GetName(PRUnichar * *aName) = 0;

  /* readonly attribute PRUint32 deviceType; */
  NS_IMETHOD GetDeviceType(PRUint32 *aDeviceType) = 0;

  /* readonly attribute boolean hostDrive; */
  NS_IMETHOD GetHostDrive(PRBool *aHostDrive) = 0;

  /* readonly attribute long long size; */
  NS_IMETHOD GetSize(PRInt64 *aSize) = 0;

  /* readonly attribute wstring format; */
  NS_IMETHOD GetFormat(PRUnichar * *aFormat) = 0;

  /* readonly attribute IMediumFormat mediumFormat; */
  NS_IMETHOD GetMediumFormat(IMediumFormat * *aMediumFormat) = 0;

  /* attribute PRUint32 type; */
  NS_IMETHOD GetType(PRUint32 *aType) = 0;
  NS_IMETHOD SetType(PRUint32 aType) = 0;

  /* void getAllowedTypes (out unsigned long allowedTypesSize, [array, size_is (allowedTypesSize), retval] out PRUint32 allowedTypes); */
  NS_IMETHOD GetAllowedTypes(PRUint32 *allowedTypesSize, PRUint32 **allowedTypes) = 0;

  /* readonly attribute IMedium parent; */
  NS_IMETHOD GetParent(IMedium * *aParent) = 0;

  /* void getChildren (out unsigned long childrenSize, [array, size_is (childrenSize), retval] out IMedium children); */
  NS_IMETHOD GetChildren(PRUint32 *childrenSize, IMedium ***children) = 0;

  /* readonly attribute IMedium base; */
  NS_IMETHOD GetBase(IMedium * *aBase) = 0;

  /* readonly attribute boolean readOnly; */
  NS_IMETHOD GetReadOnly(PRBool *aReadOnly) = 0;

  /* readonly attribute long long logicalSize; */
  NS_IMETHOD GetLogicalSize(PRInt64 *aLogicalSize) = 0;

  /* attribute boolean autoReset; */
  NS_IMETHOD GetAutoReset(PRBool *aAutoReset) = 0;
  NS_IMETHOD SetAutoReset(PRBool aAutoReset) = 0;

  /* readonly attribute wstring lastAccessError; */
  NS_IMETHOD GetLastAccessError(PRUnichar * *aLastAccessError) = 0;

  /* void getMachineIds (out unsigned long machineIdsSize, [array, size_is (machineIdsSize), retval] out wstring machineIds); */
  NS_IMETHOD GetMachineIds(PRUint32 *machineIdsSize, PRUnichar ***machineIds) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IMedium; */
  NS_IMETHOD GetInternalAndReservedAttribute1IMedium(PRUint32 *aInternalAndReservedAttribute1IMedium) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IMedium; */
  NS_IMETHOD GetInternalAndReservedAttribute2IMedium(PRUint32 *aInternalAndReservedAttribute2IMedium) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IMedium; */
  NS_IMETHOD GetInternalAndReservedAttribute3IMedium(PRUint32 *aInternalAndReservedAttribute3IMedium) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IMedium; */
  NS_IMETHOD GetInternalAndReservedAttribute4IMedium(PRUint32 *aInternalAndReservedAttribute4IMedium) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IMedium; */
  NS_IMETHOD GetInternalAndReservedAttribute5IMedium(PRUint32 *aInternalAndReservedAttribute5IMedium) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IMedium; */
  NS_IMETHOD GetInternalAndReservedAttribute6IMedium(PRUint32 *aInternalAndReservedAttribute6IMedium) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IMedium; */
  NS_IMETHOD GetInternalAndReservedAttribute7IMedium(PRUint32 *aInternalAndReservedAttribute7IMedium) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IMedium; */
  NS_IMETHOD GetInternalAndReservedAttribute8IMedium(PRUint32 *aInternalAndReservedAttribute8IMedium) = 0;

  /* void setIds (in boolean setImageId, in wstring imageId, in boolean setParentId, in wstring parentId); */
  NS_IMETHOD SetIds(PRBool setImageId, const PRUnichar *imageId, PRBool setParentId, const PRUnichar *parentId) = 0;

  /* void refreshState ([retval] out PRUint32 state); */
  NS_IMETHOD RefreshState(PRUint32 *state) = 0;

  /* void getSnapshotIds (in wstring machineId, out unsigned long snapshotIdsSize, [array, size_is (snapshotIdsSize), retval] out wstring snapshotIds); */
  NS_IMETHOD GetSnapshotIds(const PRUnichar *machineId, PRUint32 *snapshotIdsSize, PRUnichar ***snapshotIds) = 0;

  /* void lockRead ([retval] out IToken token); */
  NS_IMETHOD LockRead(IToken **token) = 0;

  /* void lockWrite ([retval] out IToken token); */
  NS_IMETHOD LockWrite(IToken **token) = 0;

  /* void close (); */
  NS_IMETHOD Close(void) = 0;

  /* void getProperty (in wstring name, [retval] out wstring value); */
  NS_IMETHOD GetProperty(const PRUnichar *name, PRUnichar **value) = 0;

  /* void setProperty (in wstring name, in wstring value); */
  NS_IMETHOD SetProperty(const PRUnichar *name, const PRUnichar *value) = 0;

  /* 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); */
  NS_IMETHOD GetProperties(const PRUnichar *names, PRUint32 *returnNamesSize, PRUnichar ***returnNames, PRUint32 *returnValuesSize, PRUnichar ***returnValues) = 0;

  /* void setProperties (in unsigned long namesSize, [array, size_is (namesSize)] in wstring names, in unsigned long valuesSize, [array, size_is (valuesSize)] in wstring values); */
  NS_IMETHOD SetProperties(PRUint32 namesSize, const PRUnichar **names, PRUint32 valuesSize, const PRUnichar **values) = 0;

  /* void createBaseStorage (in long long logicalSize, in unsigned long variantSize, [array, size_is (variantSize)] in PRUint32 variant, [retval] out IProgress progress); */
  NS_IMETHOD CreateBaseStorage(PRInt64 logicalSize, PRUint32 variantSize, PRUint32 *variant, IProgress **progress) = 0;

  /* void deleteStorage ([retval] out IProgress progress); */
  NS_IMETHOD DeleteStorage(IProgress **progress) = 0;

  /* void createDiffStorage (in IMedium target, in unsigned long variantSize, [array, size_is (variantSize)] in PRUint32 variant, [retval] out IProgress progress); */
  NS_IMETHOD CreateDiffStorage(IMedium *target, PRUint32 variantSize, PRUint32 *variant, IProgress **progress) = 0;

  /* void mergeTo (in IMedium target, [retval] out IProgress progress); */
  NS_IMETHOD MergeTo(IMedium *target, IProgress **progress) = 0;

  /* void cloneTo (in IMedium target, in unsigned long variantSize, [array, size_is (variantSize)] in PRUint32 variant, in IMedium parent, [retval] out IProgress progress); */
  NS_IMETHOD CloneTo(IMedium *target, PRUint32 variantSize, PRUint32 *variant, IMedium *parent, IProgress **progress) = 0;

  /* void cloneToBase (in IMedium target, in unsigned long variantSize, [array, size_is (variantSize)] in PRUint32 variant, [retval] out IProgress progress); */
  NS_IMETHOD CloneToBase(IMedium *target, PRUint32 variantSize, PRUint32 *variant, IProgress **progress) = 0;

  /* void setLocation (in wstring location, [retval] out IProgress progress); */
  NS_IMETHOD SetLocation(const PRUnichar *location, IProgress **progress) = 0;

  /* void compact ([retval] out IProgress progress); */
  NS_IMETHOD Compact(IProgress **progress) = 0;

  /* void resize (in long long logicalSize, [retval] out IProgress progress); */
  NS_IMETHOD Resize(PRInt64 logicalSize, IProgress **progress) = 0;

  /* void reset ([retval] out IProgress progress); */
  NS_IMETHOD Reset(IProgress **progress) = 0;

  /* void changeEncryption (in wstring currentPassword, in wstring cipher, in wstring newPassword, in wstring newPasswordId, [retval] out IProgress progress); */
  NS_IMETHOD ChangeEncryption(const PRUnichar *currentPassword, const PRUnichar *cipher, const PRUnichar *newPassword, const PRUnichar *newPasswordId, IProgress **progress) = 0;

  /* void getEncryptionSettings (out wstring cipher, [retval] out wstring passwordId); */
  NS_IMETHOD GetEncryptionSettings(PRUnichar **cipher, PRUnichar **passwordId) = 0;

  /* void checkEncryptionPassword (in wstring password); */
  NS_IMETHOD CheckEncryptionPassword(const PRUnichar *password) = 0;

  /* void InternalAndReservedMethod1IMedium (); */
  NS_IMETHOD InternalAndReservedMethod1IMedium(void) = 0;

  /* void InternalAndReservedMethod2IMedium (); */
  NS_IMETHOD InternalAndReservedMethod2IMedium(void) = 0;

  /* void InternalAndReservedMethod3IMedium (); */
  NS_IMETHOD InternalAndReservedMethod3IMedium(void) = 0;

  /* void InternalAndReservedMethod4IMedium (); */
  NS_IMETHOD InternalAndReservedMethod4IMedium(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IMEDIUM \
  NS_IMETHOD GetId(PRUnichar * *aId); \
  NS_IMETHOD GetDescription(PRUnichar * *aDescription); \
  NS_IMETHOD SetDescription(const PRUnichar * aDescription); \
  NS_IMETHOD GetState(PRUint32 *aState); \
  NS_IMETHOD GetVariant(PRUint32 *variantSize, PRUint32 **variant); \
  NS_IMETHOD GetLocation(PRUnichar * *aLocation); \
  NS_IMETHOD GetName(PRUnichar * *aName); \
  NS_IMETHOD GetDeviceType(PRUint32 *aDeviceType); \
  NS_IMETHOD GetHostDrive(PRBool *aHostDrive); \
  NS_IMETHOD GetSize(PRInt64 *aSize); \
  NS_IMETHOD GetFormat(PRUnichar * *aFormat); \
  NS_IMETHOD GetMediumFormat(IMediumFormat * *aMediumFormat); \
  NS_IMETHOD GetType(PRUint32 *aType); \
  NS_IMETHOD SetType(PRUint32 aType); \
  NS_IMETHOD GetAllowedTypes(PRUint32 *allowedTypesSize, PRUint32 **allowedTypes); \
  NS_IMETHOD GetParent(IMedium * *aParent); \
  NS_IMETHOD GetChildren(PRUint32 *childrenSize, IMedium ***children); \
  NS_IMETHOD GetBase(IMedium * *aBase); \
  NS_IMETHOD GetReadOnly(PRBool *aReadOnly); \
  NS_IMETHOD GetLogicalSize(PRInt64 *aLogicalSize); \
  NS_IMETHOD GetAutoReset(PRBool *aAutoReset); \
  NS_IMETHOD SetAutoReset(PRBool aAutoReset); \
  NS_IMETHOD GetLastAccessError(PRUnichar * *aLastAccessError); \
  NS_IMETHOD GetMachineIds(PRUint32 *machineIdsSize, PRUnichar ***machineIds); \
  NS_IMETHOD GetInternalAndReservedAttribute1IMedium(PRUint32 *aInternalAndReservedAttribute1IMedium); \
  NS_IMETHOD GetInternalAndReservedAttribute2IMedium(PRUint32 *aInternalAndReservedAttribute2IMedium); \
  NS_IMETHOD GetInternalAndReservedAttribute3IMedium(PRUint32 *aInternalAndReservedAttribute3IMedium); \
  NS_IMETHOD GetInternalAndReservedAttribute4IMedium(PRUint32 *aInternalAndReservedAttribute4IMedium); \
  NS_IMETHOD GetInternalAndReservedAttribute5IMedium(PRUint32 *aInternalAndReservedAttribute5IMedium); \
  NS_IMETHOD GetInternalAndReservedAttribute6IMedium(PRUint32 *aInternalAndReservedAttribute6IMedium); \
  NS_IMETHOD GetInternalAndReservedAttribute7IMedium(PRUint32 *aInternalAndReservedAttribute7IMedium); \
  NS_IMETHOD GetInternalAndReservedAttribute8IMedium(PRUint32 *aInternalAndReservedAttribute8IMedium); \
  NS_IMETHOD SetIds(PRBool setImageId, const PRUnichar *imageId, PRBool setParentId, const PRUnichar *parentId); \
  NS_IMETHOD RefreshState(PRUint32 *state); \
  NS_IMETHOD GetSnapshotIds(const PRUnichar *machineId, PRUint32 *snapshotIdsSize, PRUnichar ***snapshotIds); \
  NS_IMETHOD LockRead(IToken **token); \
  NS_IMETHOD LockWrite(IToken **token); \
  NS_IMETHOD Close(void); \
  NS_IMETHOD GetProperty(const PRUnichar *name, PRUnichar **value); \
  NS_IMETHOD SetProperty(const PRUnichar *name, const PRUnichar *value); \
  NS_IMETHOD GetProperties(const PRUnichar *names, PRUint32 *returnNamesSize, PRUnichar ***returnNames, PRUint32 *returnValuesSize, PRUnichar ***returnValues); \
  NS_IMETHOD SetProperties(PRUint32 namesSize, const PRUnichar **names, PRUint32 valuesSize, const PRUnichar **values); \
  NS_IMETHOD CreateBaseStorage(PRInt64 logicalSize, PRUint32 variantSize, PRUint32 *variant, IProgress **progress); \
  NS_IMETHOD DeleteStorage(IProgress **progress); \
  NS_IMETHOD CreateDiffStorage(IMedium *target, PRUint32 variantSize, PRUint32 *variant, IProgress **progress); \
  NS_IMETHOD MergeTo(IMedium *target, IProgress **progress); \
  NS_IMETHOD CloneTo(IMedium *target, PRUint32 variantSize, PRUint32 *variant, IMedium *parent, IProgress **progress); \
  NS_IMETHOD CloneToBase(IMedium *target, PRUint32 variantSize, PRUint32 *variant, IProgress **progress); \
  NS_IMETHOD SetLocation(const PRUnichar *location, IProgress **progress); \
  NS_IMETHOD Compact(IProgress **progress); \
  NS_IMETHOD Resize(PRInt64 logicalSize, IProgress **progress); \
  NS_IMETHOD Reset(IProgress **progress); \
  NS_IMETHOD ChangeEncryption(const PRUnichar *currentPassword, const PRUnichar *cipher, const PRUnichar *newPassword, const PRUnichar *newPasswordId, IProgress **progress); \
  NS_IMETHOD GetEncryptionSettings(PRUnichar **cipher, PRUnichar **passwordId); \
  NS_IMETHOD CheckEncryptionPassword(const PRUnichar *password); \
  NS_IMETHOD InternalAndReservedMethod1IMedium(void); \
  NS_IMETHOD InternalAndReservedMethod2IMedium(void); \
  NS_IMETHOD InternalAndReservedMethod3IMedium(void); \
  NS_IMETHOD InternalAndReservedMethod4IMedium(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IMEDIUM(_to) \
  NS_IMETHOD GetId(PRUnichar * *aId) { return _to GetId(aId); } \
  NS_IMETHOD GetDescription(PRUnichar * *aDescription) { return _to GetDescription(aDescription); } \
  NS_IMETHOD SetDescription(const PRUnichar * aDescription) { return _to SetDescription(aDescription); } \
  NS_IMETHOD GetState(PRUint32 *aState) { return _to GetState(aState); } \
  NS_IMETHOD GetVariant(PRUint32 *variantSize, PRUint32 **variant) { return _to GetVariant(variantSize, variant); } \
  NS_IMETHOD GetLocation(PRUnichar * *aLocation) { return _to GetLocation(aLocation); } \
  NS_IMETHOD GetName(PRUnichar * *aName) { return _to GetName(aName); } \
  NS_IMETHOD GetDeviceType(PRUint32 *aDeviceType) { return _to GetDeviceType(aDeviceType); } \
  NS_IMETHOD GetHostDrive(PRBool *aHostDrive) { return _to GetHostDrive(aHostDrive); } \
  NS_IMETHOD GetSize(PRInt64 *aSize) { return _to GetSize(aSize); } \
  NS_IMETHOD GetFormat(PRUnichar * *aFormat) { return _to GetFormat(aFormat); } \
  NS_IMETHOD GetMediumFormat(IMediumFormat * *aMediumFormat) { return _to GetMediumFormat(aMediumFormat); } \
  NS_IMETHOD GetType(PRUint32 *aType) { return _to GetType(aType); } \
  NS_IMETHOD SetType(PRUint32 aType) { return _to SetType(aType); } \
  NS_IMETHOD GetAllowedTypes(PRUint32 *allowedTypesSize, PRUint32 **allowedTypes) { return _to GetAllowedTypes(allowedTypesSize, allowedTypes); } \
  NS_IMETHOD GetParent(IMedium * *aParent) { return _to GetParent(aParent); } \
  NS_IMETHOD GetChildren(PRUint32 *childrenSize, IMedium ***children) { return _to GetChildren(childrenSize, children); } \
  NS_IMETHOD GetBase(IMedium * *aBase) { return _to GetBase(aBase); } \
  NS_IMETHOD GetReadOnly(PRBool *aReadOnly) { return _to GetReadOnly(aReadOnly); } \
  NS_IMETHOD GetLogicalSize(PRInt64 *aLogicalSize) { return _to GetLogicalSize(aLogicalSize); } \
  NS_IMETHOD GetAutoReset(PRBool *aAutoReset) { return _to GetAutoReset(aAutoReset); } \
  NS_IMETHOD SetAutoReset(PRBool aAutoReset) { return _to SetAutoReset(aAutoReset); } \
  NS_IMETHOD GetLastAccessError(PRUnichar * *aLastAccessError) { return _to GetLastAccessError(aLastAccessError); } \
  NS_IMETHOD GetMachineIds(PRUint32 *machineIdsSize, PRUnichar ***machineIds) { return _to GetMachineIds(machineIdsSize, machineIds); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IMedium(PRUint32 *aInternalAndReservedAttribute1IMedium) { return _to GetInternalAndReservedAttribute1IMedium(aInternalAndReservedAttribute1IMedium); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IMedium(PRUint32 *aInternalAndReservedAttribute2IMedium) { return _to GetInternalAndReservedAttribute2IMedium(aInternalAndReservedAttribute2IMedium); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IMedium(PRUint32 *aInternalAndReservedAttribute3IMedium) { return _to GetInternalAndReservedAttribute3IMedium(aInternalAndReservedAttribute3IMedium); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IMedium(PRUint32 *aInternalAndReservedAttribute4IMedium) { return _to GetInternalAndReservedAttribute4IMedium(aInternalAndReservedAttribute4IMedium); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IMedium(PRUint32 *aInternalAndReservedAttribute5IMedium) { return _to GetInternalAndReservedAttribute5IMedium(aInternalAndReservedAttribute5IMedium); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IMedium(PRUint32 *aInternalAndReservedAttribute6IMedium) { return _to GetInternalAndReservedAttribute6IMedium(aInternalAndReservedAttribute6IMedium); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IMedium(PRUint32 *aInternalAndReservedAttribute7IMedium) { return _to GetInternalAndReservedAttribute7IMedium(aInternalAndReservedAttribute7IMedium); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IMedium(PRUint32 *aInternalAndReservedAttribute8IMedium) { return _to GetInternalAndReservedAttribute8IMedium(aInternalAndReservedAttribute8IMedium); } \
  NS_IMETHOD SetIds(PRBool setImageId, const PRUnichar *imageId, PRBool setParentId, const PRUnichar *parentId) { return _to SetIds(setImageId, imageId, setParentId, parentId); } \
  NS_IMETHOD RefreshState(PRUint32 *state) { return _to RefreshState(state); } \
  NS_IMETHOD GetSnapshotIds(const PRUnichar *machineId, PRUint32 *snapshotIdsSize, PRUnichar ***snapshotIds) { return _to GetSnapshotIds(machineId, snapshotIdsSize, snapshotIds); } \
  NS_IMETHOD LockRead(IToken **token) { return _to LockRead(token); } \
  NS_IMETHOD LockWrite(IToken **token) { return _to LockWrite(token); } \
  NS_IMETHOD Close(void) { return _to Close(); } \
  NS_IMETHOD GetProperty(const PRUnichar *name, PRUnichar **value) { return _to GetProperty(name, value); } \
  NS_IMETHOD SetProperty(const PRUnichar *name, const PRUnichar *value) { return _to SetProperty(name, value); } \
  NS_IMETHOD GetProperties(const PRUnichar *names, PRUint32 *returnNamesSize, PRUnichar ***returnNames, PRUint32 *returnValuesSize, PRUnichar ***returnValues) { return _to GetProperties(names, returnNamesSize, returnNames, returnValuesSize, returnValues); } \
  NS_IMETHOD SetProperties(PRUint32 namesSize, const PRUnichar **names, PRUint32 valuesSize, const PRUnichar **values) { return _to SetProperties(namesSize, names, valuesSize, values); } \
  NS_IMETHOD CreateBaseStorage(PRInt64 logicalSize, PRUint32 variantSize, PRUint32 *variant, IProgress **progress) { return _to CreateBaseStorage(logicalSize, variantSize, variant, progress); } \
  NS_IMETHOD DeleteStorage(IProgress **progress) { return _to DeleteStorage(progress); } \
  NS_IMETHOD CreateDiffStorage(IMedium *target, PRUint32 variantSize, PRUint32 *variant, IProgress **progress) { return _to CreateDiffStorage(target, variantSize, variant, progress); } \
  NS_IMETHOD MergeTo(IMedium *target, IProgress **progress) { return _to MergeTo(target, progress); } \
  NS_IMETHOD CloneTo(IMedium *target, PRUint32 variantSize, PRUint32 *variant, IMedium *parent, IProgress **progress) { return _to CloneTo(target, variantSize, variant, parent, progress); } \
  NS_IMETHOD CloneToBase(IMedium *target, PRUint32 variantSize, PRUint32 *variant, IProgress **progress) { return _to CloneToBase(target, variantSize, variant, progress); } \
  NS_IMETHOD SetLocation(const PRUnichar *location, IProgress **progress) { return _to SetLocation(location, progress); } \
  NS_IMETHOD Compact(IProgress **progress) { return _to Compact(progress); } \
  NS_IMETHOD Resize(PRInt64 logicalSize, IProgress **progress) { return _to Resize(logicalSize, progress); } \
  NS_IMETHOD Reset(IProgress **progress) { return _to Reset(progress); } \
  NS_IMETHOD ChangeEncryption(const PRUnichar *currentPassword, const PRUnichar *cipher, const PRUnichar *newPassword, const PRUnichar *newPasswordId, IProgress **progress) { return _to ChangeEncryption(currentPassword, cipher, newPassword, newPasswordId, progress); } \
  NS_IMETHOD GetEncryptionSettings(PRUnichar **cipher, PRUnichar **passwordId) { return _to GetEncryptionSettings(cipher, passwordId); } \
  NS_IMETHOD CheckEncryptionPassword(const PRUnichar *password) { return _to CheckEncryptionPassword(password); } \
  NS_IMETHOD InternalAndReservedMethod1IMedium(void) { return _to InternalAndReservedMethod1IMedium(); } \
  NS_IMETHOD InternalAndReservedMethod2IMedium(void) { return _to InternalAndReservedMethod2IMedium(); } \
  NS_IMETHOD InternalAndReservedMethod3IMedium(void) { return _to InternalAndReservedMethod3IMedium(); } \
  NS_IMETHOD InternalAndReservedMethod4IMedium(void) { return _to InternalAndReservedMethod4IMedium(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IMEDIUM(_to) \
  NS_IMETHOD GetId(PRUnichar * *aId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetId(aId); } \
  NS_IMETHOD GetDescription(PRUnichar * *aDescription) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDescription(aDescription); } \
  NS_IMETHOD SetDescription(const PRUnichar * aDescription) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDescription(aDescription); } \
  NS_IMETHOD GetState(PRUint32 *aState) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetState(aState); } \
  NS_IMETHOD GetVariant(PRUint32 *variantSize, PRUint32 **variant) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVariant(variantSize, variant); } \
  NS_IMETHOD GetLocation(PRUnichar * *aLocation) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLocation(aLocation); } \
  NS_IMETHOD GetName(PRUnichar * *aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
  NS_IMETHOD GetDeviceType(PRUint32 *aDeviceType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDeviceType(aDeviceType); } \
  NS_IMETHOD GetHostDrive(PRBool *aHostDrive) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHostDrive(aHostDrive); } \
  NS_IMETHOD GetSize(PRInt64 *aSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSize(aSize); } \
  NS_IMETHOD GetFormat(PRUnichar * *aFormat) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFormat(aFormat); } \
  NS_IMETHOD GetMediumFormat(IMediumFormat * *aMediumFormat) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMediumFormat(aMediumFormat); } \
  NS_IMETHOD GetType(PRUint32 *aType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetType(aType); } \
  NS_IMETHOD SetType(PRUint32 aType) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetType(aType); } \
  NS_IMETHOD GetAllowedTypes(PRUint32 *allowedTypesSize, PRUint32 **allowedTypes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAllowedTypes(allowedTypesSize, allowedTypes); } \
  NS_IMETHOD GetParent(IMedium * *aParent) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetParent(aParent); } \
  NS_IMETHOD GetChildren(PRUint32 *childrenSize, IMedium ***children) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetChildren(childrenSize, children); } \
  NS_IMETHOD GetBase(IMedium * *aBase) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBase(aBase); } \
  NS_IMETHOD GetReadOnly(PRBool *aReadOnly) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetReadOnly(aReadOnly); } \
  NS_IMETHOD GetLogicalSize(PRInt64 *aLogicalSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLogicalSize(aLogicalSize); } \
  NS_IMETHOD GetAutoReset(PRBool *aAutoReset) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAutoReset(aAutoReset); } \
  NS_IMETHOD SetAutoReset(PRBool aAutoReset) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAutoReset(aAutoReset); } \
  NS_IMETHOD GetLastAccessError(PRUnichar * *aLastAccessError) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLastAccessError(aLastAccessError); } \
  NS_IMETHOD GetMachineIds(PRUint32 *machineIdsSize, PRUnichar ***machineIds) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMachineIds(machineIdsSize, machineIds); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IMedium(PRUint32 *aInternalAndReservedAttribute1IMedium) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IMedium(aInternalAndReservedAttribute1IMedium); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IMedium(PRUint32 *aInternalAndReservedAttribute2IMedium) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IMedium(aInternalAndReservedAttribute2IMedium); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IMedium(PRUint32 *aInternalAndReservedAttribute3IMedium) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IMedium(aInternalAndReservedAttribute3IMedium); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IMedium(PRUint32 *aInternalAndReservedAttribute4IMedium) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IMedium(aInternalAndReservedAttribute4IMedium); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IMedium(PRUint32 *aInternalAndReservedAttribute5IMedium) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IMedium(aInternalAndReservedAttribute5IMedium); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IMedium(PRUint32 *aInternalAndReservedAttribute6IMedium) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IMedium(aInternalAndReservedAttribute6IMedium); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IMedium(PRUint32 *aInternalAndReservedAttribute7IMedium) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IMedium(aInternalAndReservedAttribute7IMedium); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IMedium(PRUint32 *aInternalAndReservedAttribute8IMedium) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IMedium(aInternalAndReservedAttribute8IMedium); } \
  NS_IMETHOD SetIds(PRBool setImageId, const PRUnichar *imageId, PRBool setParentId, const PRUnichar *parentId) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIds(setImageId, imageId, setParentId, parentId); } \
  NS_IMETHOD RefreshState(PRUint32 *state) { return !_to ? NS_ERROR_NULL_POINTER : _to->RefreshState(state); } \
  NS_IMETHOD GetSnapshotIds(const PRUnichar *machineId, PRUint32 *snapshotIdsSize, PRUnichar ***snapshotIds) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSnapshotIds(machineId, snapshotIdsSize, snapshotIds); } \
  NS_IMETHOD LockRead(IToken **token) { return !_to ? NS_ERROR_NULL_POINTER : _to->LockRead(token); } \
  NS_IMETHOD LockWrite(IToken **token) { return !_to ? NS_ERROR_NULL_POINTER : _to->LockWrite(token); } \
  NS_IMETHOD Close(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Close(); } \
  NS_IMETHOD GetProperty(const PRUnichar *name, PRUnichar **value) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProperty(name, value); } \
  NS_IMETHOD SetProperty(const PRUnichar *name, const PRUnichar *value) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetProperty(name, value); } \
  NS_IMETHOD GetProperties(const PRUnichar *names, PRUint32 *returnNamesSize, PRUnichar ***returnNames, PRUint32 *returnValuesSize, PRUnichar ***returnValues) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProperties(names, returnNamesSize, returnNames, returnValuesSize, returnValues); } \
  NS_IMETHOD SetProperties(PRUint32 namesSize, const PRUnichar **names, PRUint32 valuesSize, const PRUnichar **values) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetProperties(namesSize, names, valuesSize, values); } \
  NS_IMETHOD CreateBaseStorage(PRInt64 logicalSize, PRUint32 variantSize, PRUint32 *variant, IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateBaseStorage(logicalSize, variantSize, variant, progress); } \
  NS_IMETHOD DeleteStorage(IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->DeleteStorage(progress); } \
  NS_IMETHOD CreateDiffStorage(IMedium *target, PRUint32 variantSize, PRUint32 *variant, IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateDiffStorage(target, variantSize, variant, progress); } \
  NS_IMETHOD MergeTo(IMedium *target, IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->MergeTo(target, progress); } \
  NS_IMETHOD CloneTo(IMedium *target, PRUint32 variantSize, PRUint32 *variant, IMedium *parent, IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->CloneTo(target, variantSize, variant, parent, progress); } \
  NS_IMETHOD CloneToBase(IMedium *target, PRUint32 variantSize, PRUint32 *variant, IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->CloneToBase(target, variantSize, variant, progress); } \
  NS_IMETHOD SetLocation(const PRUnichar *location, IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLocation(location, progress); } \
  NS_IMETHOD Compact(IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->Compact(progress); } \
  NS_IMETHOD Resize(PRInt64 logicalSize, IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->Resize(logicalSize, progress); } \
  NS_IMETHOD Reset(IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->Reset(progress); } \
  NS_IMETHOD ChangeEncryption(const PRUnichar *currentPassword, const PRUnichar *cipher, const PRUnichar *newPassword, const PRUnichar *newPasswordId, IProgress **progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->ChangeEncryption(currentPassword, cipher, newPassword, newPasswordId, progress); } \
  NS_IMETHOD GetEncryptionSettings(PRUnichar **cipher, PRUnichar **passwordId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEncryptionSettings(cipher, passwordId); } \
  NS_IMETHOD CheckEncryptionPassword(const PRUnichar *password) { return !_to ? NS_ERROR_NULL_POINTER : _to->CheckEncryptionPassword(password); } \
  NS_IMETHOD InternalAndReservedMethod1IMedium(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IMedium(); } \
  NS_IMETHOD InternalAndReservedMethod2IMedium(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IMedium(); } \
  NS_IMETHOD InternalAndReservedMethod3IMedium(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IMedium(); } \
  NS_IMETHOD InternalAndReservedMethod4IMedium(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IMedium(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IMedium
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IMEDIUM

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IMedium)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute wstring id; */
NS_IMETHODIMP _MYCLASS_::GetId(PRUnichar * *aId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring description; */
NS_IMETHODIMP _MYCLASS_::GetDescription(PRUnichar * *aDescription)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetDescription(const PRUnichar * aDescription)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 state; */
NS_IMETHODIMP _MYCLASS_::GetState(PRUint32 *aState)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getVariant (out unsigned long variantSize, [array, size_is (variantSize), retval] out PRUint32 variant); */
NS_IMETHODIMP _MYCLASS_::GetVariant(PRUint32 *variantSize, PRUint32 **variant)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring location; */
NS_IMETHODIMP _MYCLASS_::GetLocation(PRUnichar * *aLocation)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring name; */
NS_IMETHODIMP _MYCLASS_::GetName(PRUnichar * *aName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 deviceType; */
NS_IMETHODIMP _MYCLASS_::GetDeviceType(PRUint32 *aDeviceType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean hostDrive; */
NS_IMETHODIMP _MYCLASS_::GetHostDrive(PRBool *aHostDrive)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long long size; */
NS_IMETHODIMP _MYCLASS_::GetSize(PRInt64 *aSize)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring format; */
NS_IMETHODIMP _MYCLASS_::GetFormat(PRUnichar * *aFormat)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IMediumFormat mediumFormat; */
NS_IMETHODIMP _MYCLASS_::GetMediumFormat(IMediumFormat * *aMediumFormat)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute PRUint32 type; */
NS_IMETHODIMP _MYCLASS_::GetType(PRUint32 *aType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetType(PRUint32 aType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getAllowedTypes (out unsigned long allowedTypesSize, [array, size_is (allowedTypesSize), retval] out PRUint32 allowedTypes); */
NS_IMETHODIMP _MYCLASS_::GetAllowedTypes(PRUint32 *allowedTypesSize, PRUint32 **allowedTypes)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IMedium parent; */
NS_IMETHODIMP _MYCLASS_::GetParent(IMedium * *aParent)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getChildren (out unsigned long childrenSize, [array, size_is (childrenSize), retval] out IMedium children); */
NS_IMETHODIMP _MYCLASS_::GetChildren(PRUint32 *childrenSize, IMedium ***children)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IMedium base; */
NS_IMETHODIMP _MYCLASS_::GetBase(IMedium * *aBase)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean readOnly; */
NS_IMETHODIMP _MYCLASS_::GetReadOnly(PRBool *aReadOnly)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long long logicalSize; */
NS_IMETHODIMP _MYCLASS_::GetLogicalSize(PRInt64 *aLogicalSize)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean autoReset; */
NS_IMETHODIMP _MYCLASS_::GetAutoReset(PRBool *aAutoReset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetAutoReset(PRBool aAutoReset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring lastAccessError; */
NS_IMETHODIMP _MYCLASS_::GetLastAccessError(PRUnichar * *aLastAccessError)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getMachineIds (out unsigned long machineIdsSize, [array, size_is (machineIdsSize), retval] out wstring machineIds); */
NS_IMETHODIMP _MYCLASS_::GetMachineIds(PRUint32 *machineIdsSize, PRUnichar ***machineIds)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IMedium; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IMedium(PRUint32 *aInternalAndReservedAttribute1IMedium)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IMedium; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IMedium(PRUint32 *aInternalAndReservedAttribute2IMedium)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute3IMedium; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute3IMedium(PRUint32 *aInternalAndReservedAttribute3IMedium)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute4IMedium; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute4IMedium(PRUint32 *aInternalAndReservedAttribute4IMedium)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute5IMedium; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute5IMedium(PRUint32 *aInternalAndReservedAttribute5IMedium)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute6IMedium; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute6IMedium(PRUint32 *aInternalAndReservedAttribute6IMedium)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute7IMedium; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute7IMedium(PRUint32 *aInternalAndReservedAttribute7IMedium)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute8IMedium; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute8IMedium(PRUint32 *aInternalAndReservedAttribute8IMedium)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setIds (in boolean setImageId, in wstring imageId, in boolean setParentId, in wstring parentId); */
NS_IMETHODIMP _MYCLASS_::SetIds(PRBool setImageId, const PRUnichar *imageId, PRBool setParentId, const PRUnichar *parentId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void refreshState ([retval] out PRUint32 state); */
NS_IMETHODIMP _MYCLASS_::RefreshState(PRUint32 *state)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getSnapshotIds (in wstring machineId, out unsigned long snapshotIdsSize, [array, size_is (snapshotIdsSize), retval] out wstring snapshotIds); */
NS_IMETHODIMP _MYCLASS_::GetSnapshotIds(const PRUnichar *machineId, PRUint32 *snapshotIdsSize, PRUnichar ***snapshotIds)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void lockRead ([retval] out IToken token); */
NS_IMETHODIMP _MYCLASS_::LockRead(IToken **token)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void lockWrite ([retval] out IToken token); */
NS_IMETHODIMP _MYCLASS_::LockWrite(IToken **token)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void close (); */
NS_IMETHODIMP _MYCLASS_::Close()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getProperty (in wstring name, [retval] out wstring value); */
NS_IMETHODIMP _MYCLASS_::GetProperty(const PRUnichar *name, PRUnichar **value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setProperty (in wstring name, in wstring value); */
NS_IMETHODIMP _MYCLASS_::SetProperty(const PRUnichar *name, const PRUnichar *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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); */
NS_IMETHODIMP _MYCLASS_::GetProperties(const PRUnichar *names, PRUint32 *returnNamesSize, PRUnichar ***returnNames, PRUint32 *returnValuesSize, PRUnichar ***returnValues)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setProperties (in unsigned long namesSize, [array, size_is (namesSize)] in wstring names, in unsigned long valuesSize, [array, size_is (valuesSize)] in wstring values); */
NS_IMETHODIMP _MYCLASS_::SetProperties(PRUint32 namesSize, const PRUnichar **names, PRUint32 valuesSize, const PRUnichar **values)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void createBaseStorage (in long long logicalSize, in unsigned long variantSize, [array, size_is (variantSize)] in PRUint32 variant, [retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::CreateBaseStorage(PRInt64 logicalSize, PRUint32 variantSize, PRUint32 *variant, IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void deleteStorage ([retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::DeleteStorage(IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void createDiffStorage (in IMedium target, in unsigned long variantSize, [array, size_is (variantSize)] in PRUint32 variant, [retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::CreateDiffStorage(IMedium *target, PRUint32 variantSize, PRUint32 *variant, IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void mergeTo (in IMedium target, [retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::MergeTo(IMedium *target, IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void cloneTo (in IMedium target, in unsigned long variantSize, [array, size_is (variantSize)] in PRUint32 variant, in IMedium parent, [retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::CloneTo(IMedium *target, PRUint32 variantSize, PRUint32 *variant, IMedium *parent, IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void cloneToBase (in IMedium target, in unsigned long variantSize, [array, size_is (variantSize)] in PRUint32 variant, [retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::CloneToBase(IMedium *target, PRUint32 variantSize, PRUint32 *variant, IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setLocation (in wstring location, [retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::SetLocation(const PRUnichar *location, IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void compact ([retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::Compact(IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void resize (in long long logicalSize, [retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::Resize(PRInt64 logicalSize, IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void reset ([retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::Reset(IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void changeEncryption (in wstring currentPassword, in wstring cipher, in wstring newPassword, in wstring newPasswordId, [retval] out IProgress progress); */
NS_IMETHODIMP _MYCLASS_::ChangeEncryption(const PRUnichar *currentPassword, const PRUnichar *cipher, const PRUnichar *newPassword, const PRUnichar *newPasswordId, IProgress **progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getEncryptionSettings (out wstring cipher, [retval] out wstring passwordId); */
NS_IMETHODIMP _MYCLASS_::GetEncryptionSettings(PRUnichar **cipher, PRUnichar **passwordId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void checkEncryptionPassword (in wstring password); */
NS_IMETHODIMP _MYCLASS_::CheckEncryptionPassword(const PRUnichar *password)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1IMedium (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1IMedium()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod2IMedium (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod2IMedium()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod3IMedium (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod3IMedium()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod4IMedium (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod4IMedium()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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_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_SetLocation_TO(smth) NS_IMETHOD SetLocation (PRUnichar * aLocation, IProgress * * aProgress) { return smth SetLocation (aLocation, aProgress); }
#define COM_FORWARD_IMedium_SetLocation_TO_OBJ(obj) COM_FORWARD_IMedium_SetLocation_TO ((obj)->)
#define COM_FORWARD_IMedium_SetLocation_TO_BASE(base) COM_FORWARD_IMedium_SetLocation_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_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;

/* starting interface:    IMediumFormat */
#define IMEDIUMFORMAT_IID_STR "10f337fb-422e-e57e-661b-0998ac309175"

#define IMEDIUMFORMAT_IID \
  {0x10f337fb, 0x422e, 0xe57e, \
    { 0x66, 0x1b, 0x09, 0x98, 0xac, 0x30, 0x91, 0x75 }}

class NS_NO_VTABLE IMediumFormat : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IMEDIUMFORMAT_IID)

  /* readonly attribute wstring id; */
  NS_IMETHOD GetId(PRUnichar * *aId) = 0;

  /* readonly attribute wstring name; */
  NS_IMETHOD GetName(PRUnichar * *aName) = 0;

  /* void getCapabilities (out unsigned long capabilitiesSize, [array, size_is (capabilitiesSize), retval] out PRUint32 capabilities); */
  NS_IMETHOD GetCapabilities(PRUint32 *capabilitiesSize, PRUint32 **capabilities) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IMediumFormat; */
  NS_IMETHOD GetInternalAndReservedAttribute1IMediumFormat(PRUint32 *aInternalAndReservedAttribute1IMediumFormat) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IMediumFormat; */
  NS_IMETHOD GetInternalAndReservedAttribute2IMediumFormat(PRUint32 *aInternalAndReservedAttribute2IMediumFormat) = 0;

  /* void describeFileExtensions (out unsigned long extensionsSize, [array, size_is (extensionsSize)] out wstring extensions, out unsigned long typesSize, [array, size_is (typesSize)] out PRUint32 types); */
  NS_IMETHOD DescribeFileExtensions(PRUint32 *extensionsSize, PRUnichar ***extensions, PRUint32 *typesSize, PRUint32 **types) = 0;

  /* 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 PRUint32 types, out unsigned long flagsSize, [array, size_is (flagsSize)] out unsigned long flags, out unsigned long defaultsSize, [array, size_is (defaultsSize)] out wstring defaults); */
  NS_IMETHOD DescribeProperties(PRUint32 *namesSize, PRUnichar ***names, PRUint32 *descriptionsSize, PRUnichar ***descriptions, PRUint32 *typesSize, PRUint32 **types, PRUint32 *flagsSize, PRUint32 **flags, PRUint32 *defaultsSize, PRUnichar ***defaults) = 0;

  /* void InternalAndReservedMethod1IMediumFormat (); */
  NS_IMETHOD InternalAndReservedMethod1IMediumFormat(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IMEDIUMFORMAT \
  NS_IMETHOD GetId(PRUnichar * *aId); \
  NS_IMETHOD GetName(PRUnichar * *aName); \
  NS_IMETHOD GetCapabilities(PRUint32 *capabilitiesSize, PRUint32 **capabilities); \
  NS_IMETHOD GetInternalAndReservedAttribute1IMediumFormat(PRUint32 *aInternalAndReservedAttribute1IMediumFormat); \
  NS_IMETHOD GetInternalAndReservedAttribute2IMediumFormat(PRUint32 *aInternalAndReservedAttribute2IMediumFormat); \
  NS_IMETHOD DescribeFileExtensions(PRUint32 *extensionsSize, PRUnichar ***extensions, PRUint32 *typesSize, PRUint32 **types); \
  NS_IMETHOD DescribeProperties(PRUint32 *namesSize, PRUnichar ***names, PRUint32 *descriptionsSize, PRUnichar ***descriptions, PRUint32 *typesSize, PRUint32 **types, PRUint32 *flagsSize, PRUint32 **flags, PRUint32 *defaultsSize, PRUnichar ***defaults); \
  NS_IMETHOD InternalAndReservedMethod1IMediumFormat(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IMEDIUMFORMAT(_to) \
  NS_IMETHOD GetId(PRUnichar * *aId) { return _to GetId(aId); } \
  NS_IMETHOD GetName(PRUnichar * *aName) { return _to GetName(aName); } \
  NS_IMETHOD GetCapabilities(PRUint32 *capabilitiesSize, PRUint32 **capabilities) { return _to GetCapabilities(capabilitiesSize, capabilities); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IMediumFormat(PRUint32 *aInternalAndReservedAttribute1IMediumFormat) { return _to GetInternalAndReservedAttribute1IMediumFormat(aInternalAndReservedAttribute1IMediumFormat); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IMediumFormat(PRUint32 *aInternalAndReservedAttribute2IMediumFormat) { return _to GetInternalAndReservedAttribute2IMediumFormat(aInternalAndReservedAttribute2IMediumFormat); } \
  NS_IMETHOD DescribeFileExtensions(PRUint32 *extensionsSize, PRUnichar ***extensions, PRUint32 *typesSize, PRUint32 **types) { return _to DescribeFileExtensions(extensionsSize, extensions, typesSize, types); } \
  NS_IMETHOD DescribeProperties(PRUint32 *namesSize, PRUnichar ***names, PRUint32 *descriptionsSize, PRUnichar ***descriptions, PRUint32 *typesSize, PRUint32 **types, PRUint32 *flagsSize, PRUint32 **flags, PRUint32 *defaultsSize, PRUnichar ***defaults) { return _to DescribeProperties(namesSize, names, descriptionsSize, descriptions, typesSize, types, flagsSize, flags, defaultsSize, defaults); } \
  NS_IMETHOD InternalAndReservedMethod1IMediumFormat(void) { return _to InternalAndReservedMethod1IMediumFormat(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IMEDIUMFORMAT(_to) \
  NS_IMETHOD GetId(PRUnichar * *aId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetId(aId); } \
  NS_IMETHOD GetName(PRUnichar * *aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
  NS_IMETHOD GetCapabilities(PRUint32 *capabilitiesSize, PRUint32 **capabilities) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCapabilities(capabilitiesSize, capabilities); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IMediumFormat(PRUint32 *aInternalAndReservedAttribute1IMediumFormat) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IMediumFormat(aInternalAndReservedAttribute1IMediumFormat); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IMediumFormat(PRUint32 *aInternalAndReservedAttribute2IMediumFormat) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IMediumFormat(aInternalAndReservedAttribute2IMediumFormat); } \
  NS_IMETHOD DescribeFileExtensions(PRUint32 *extensionsSize, PRUnichar ***extensions, PRUint32 *typesSize, PRUint32 **types) { return !_to ? NS_ERROR_NULL_POINTER : _to->DescribeFileExtensions(extensionsSize, extensions, typesSize, types); } \
  NS_IMETHOD DescribeProperties(PRUint32 *namesSize, PRUnichar ***names, PRUint32 *descriptionsSize, PRUnichar ***descriptions, PRUint32 *typesSize, PRUint32 **types, PRUint32 *flagsSize, PRUint32 **flags, PRUint32 *defaultsSize, PRUnichar ***defaults) { return !_to ? NS_ERROR_NULL_POINTER : _to->DescribeProperties(namesSize, names, descriptionsSize, descriptions, typesSize, types, flagsSize, flags, defaultsSize, defaults); } \
  NS_IMETHOD InternalAndReservedMethod1IMediumFormat(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IMediumFormat(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IMediumFormat
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IMEDIUMFORMAT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IMediumFormat)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute wstring id; */
NS_IMETHODIMP _MYCLASS_::GetId(PRUnichar * *aId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring name; */
NS_IMETHODIMP _MYCLASS_::GetName(PRUnichar * *aName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getCapabilities (out unsigned long capabilitiesSize, [array, size_is (capabilitiesSize), retval] out PRUint32 capabilities); */
NS_IMETHODIMP _MYCLASS_::GetCapabilities(PRUint32 *capabilitiesSize, PRUint32 **capabilities)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IMediumFormat; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IMediumFormat(PRUint32 *aInternalAndReservedAttribute1IMediumFormat)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IMediumFormat; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IMediumFormat(PRUint32 *aInternalAndReservedAttribute2IMediumFormat)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void describeFileExtensions (out unsigned long extensionsSize, [array, size_is (extensionsSize)] out wstring extensions, out unsigned long typesSize, [array, size_is (typesSize)] out PRUint32 types); */
NS_IMETHODIMP _MYCLASS_::DescribeFileExtensions(PRUint32 *extensionsSize, PRUnichar ***extensions, PRUint32 *typesSize, PRUint32 **types)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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 PRUint32 types, out unsigned long flagsSize, [array, size_is (flagsSize)] out unsigned long flags, out unsigned long defaultsSize, [array, size_is (defaultsSize)] out wstring defaults); */
NS_IMETHODIMP _MYCLASS_::DescribeProperties(PRUint32 *namesSize, PRUnichar ***names, PRUint32 *descriptionsSize, PRUnichar ***descriptions, PRUint32 *typesSize, PRUint32 **types, PRUint32 *flagsSize, PRUint32 **flags, PRUint32 *defaultsSize, PRUnichar ***defaults)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1IMediumFormat (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1IMediumFormat()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IToken */
#define ITOKEN_IID_STR "20479eaf-d8ed-44cf-85ac-c83a26c95a4d"

#define ITOKEN_IID \
  {0x20479eaf, 0xd8ed, 0x44cf, \
    { 0x85, 0xac, 0xc8, 0x3a, 0x26, 0xc9, 0x5a, 0x4d }}

class NS_NO_VTABLE IToken : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ITOKEN_IID)

  /* readonly attribute unsigned long InternalAndReservedAttribute1IToken; */
  NS_IMETHOD GetInternalAndReservedAttribute1IToken(PRUint32 *aInternalAndReservedAttribute1IToken) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IToken; */
  NS_IMETHOD GetInternalAndReservedAttribute2IToken(PRUint32 *aInternalAndReservedAttribute2IToken) = 0;

  /* void abandon (); */
  NS_IMETHOD Abandon(void) = 0;

  /* void dummy (); */
  NS_IMETHOD Dummy(void) = 0;

  /* void InternalAndReservedMethod1IToken (); */
  NS_IMETHOD InternalAndReservedMethod1IToken(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ITOKEN \
  NS_IMETHOD GetInternalAndReservedAttribute1IToken(PRUint32 *aInternalAndReservedAttribute1IToken); \
  NS_IMETHOD GetInternalAndReservedAttribute2IToken(PRUint32 *aInternalAndReservedAttribute2IToken); \
  NS_IMETHOD Abandon(void); \
  NS_IMETHOD Dummy(void); \
  NS_IMETHOD InternalAndReservedMethod1IToken(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ITOKEN(_to) \
  NS_IMETHOD GetInternalAndReservedAttribute1IToken(PRUint32 *aInternalAndReservedAttribute1IToken) { return _to GetInternalAndReservedAttribute1IToken(aInternalAndReservedAttribute1IToken); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IToken(PRUint32 *aInternalAndReservedAttribute2IToken) { return _to GetInternalAndReservedAttribute2IToken(aInternalAndReservedAttribute2IToken); } \
  NS_IMETHOD Abandon(void) { return _to Abandon(); } \
  NS_IMETHOD Dummy(void) { return _to Dummy(); } \
  NS_IMETHOD InternalAndReservedMethod1IToken(void) { return _to InternalAndReservedMethod1IToken(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ITOKEN(_to) \
  NS_IMETHOD GetInternalAndReservedAttribute1IToken(PRUint32 *aInternalAndReservedAttribute1IToken) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IToken(aInternalAndReservedAttribute1IToken); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IToken(PRUint32 *aInternalAndReservedAttribute2IToken) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IToken(aInternalAndReservedAttribute2IToken); } \
  NS_IMETHOD Abandon(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Abandon(); } \
  NS_IMETHOD Dummy(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Dummy(); } \
  NS_IMETHOD InternalAndReservedMethod1IToken(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IToken(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IToken
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_ITOKEN

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IToken)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IToken; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IToken(PRUint32 *aInternalAndReservedAttribute1IToken)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IToken; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IToken(PRUint32 *aInternalAndReservedAttribute2IToken)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void abandon (); */
NS_IMETHODIMP _MYCLASS_::Abandon()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void dummy (); */
NS_IMETHODIMP _MYCLASS_::Dummy()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1IToken (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1IToken()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IKeyboard */
#define IKEYBOARD_IID_STR "da91d4c9-4c02-fdb1-c5ac-d89e22e81302"

#define IKEYBOARD_IID \
  {0xda91d4c9, 0x4c02, 0xfdb1, \
    { 0xc5, 0xac, 0xd8, 0x9e, 0x22, 0xe8, 0x13, 0x02 }}

class NS_NO_VTABLE IKeyboard : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IKEYBOARD_IID)

  /* void getKeyboardLEDs (out unsigned long keyboardLEDsSize, [array, size_is (keyboardLEDsSize), retval] out PRUint32 keyboardLEDs); */
  NS_IMETHOD GetKeyboardLEDs(PRUint32 *keyboardLEDsSize, PRUint32 **keyboardLEDs) = 0;

  /* readonly attribute IEventSource eventSource; */
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IKeyboard; */
  NS_IMETHOD GetInternalAndReservedAttribute1IKeyboard(PRUint32 *aInternalAndReservedAttribute1IKeyboard) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IKeyboard; */
  NS_IMETHOD GetInternalAndReservedAttribute2IKeyboard(PRUint32 *aInternalAndReservedAttribute2IKeyboard) = 0;

  /* void putScancode (in long scancode); */
  NS_IMETHOD PutScancode(PRInt32 scancode) = 0;

  /* void putScancodes (in unsigned long scancodesSize, [array, size_is (scancodesSize)] in long scancodes, [retval] out unsigned long codesStored); */
  NS_IMETHOD PutScancodes(PRUint32 scancodesSize, PRInt32 *scancodes, PRUint32 *codesStored) = 0;

  /* void putCAD (); */
  NS_IMETHOD PutCAD(void) = 0;

  /* void releaseKeys (); */
  NS_IMETHOD ReleaseKeys(void) = 0;

  /* void InternalAndReservedMethod1IKeyboard (); */
  NS_IMETHOD InternalAndReservedMethod1IKeyboard(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IKEYBOARD \
  NS_IMETHOD GetKeyboardLEDs(PRUint32 *keyboardLEDsSize, PRUint32 **keyboardLEDs); \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource); \
  NS_IMETHOD GetInternalAndReservedAttribute1IKeyboard(PRUint32 *aInternalAndReservedAttribute1IKeyboard); \
  NS_IMETHOD GetInternalAndReservedAttribute2IKeyboard(PRUint32 *aInternalAndReservedAttribute2IKeyboard); \
  NS_IMETHOD PutScancode(PRInt32 scancode); \
  NS_IMETHOD PutScancodes(PRUint32 scancodesSize, PRInt32 *scancodes, PRUint32 *codesStored); \
  NS_IMETHOD PutCAD(void); \
  NS_IMETHOD ReleaseKeys(void); \
  NS_IMETHOD InternalAndReservedMethod1IKeyboard(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IKEYBOARD(_to) \
  NS_IMETHOD GetKeyboardLEDs(PRUint32 *keyboardLEDsSize, PRUint32 **keyboardLEDs) { return _to GetKeyboardLEDs(keyboardLEDsSize, keyboardLEDs); } \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) { return _to GetEventSource(aEventSource); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IKeyboard(PRUint32 *aInternalAndReservedAttribute1IKeyboard) { return _to GetInternalAndReservedAttribute1IKeyboard(aInternalAndReservedAttribute1IKeyboard); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IKeyboard(PRUint32 *aInternalAndReservedAttribute2IKeyboard) { return _to GetInternalAndReservedAttribute2IKeyboard(aInternalAndReservedAttribute2IKeyboard); } \
  NS_IMETHOD PutScancode(PRInt32 scancode) { return _to PutScancode(scancode); } \
  NS_IMETHOD PutScancodes(PRUint32 scancodesSize, PRInt32 *scancodes, PRUint32 *codesStored) { return _to PutScancodes(scancodesSize, scancodes, codesStored); } \
  NS_IMETHOD PutCAD(void) { return _to PutCAD(); } \
  NS_IMETHOD ReleaseKeys(void) { return _to ReleaseKeys(); } \
  NS_IMETHOD InternalAndReservedMethod1IKeyboard(void) { return _to InternalAndReservedMethod1IKeyboard(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IKEYBOARD(_to) \
  NS_IMETHOD GetKeyboardLEDs(PRUint32 *keyboardLEDsSize, PRUint32 **keyboardLEDs) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetKeyboardLEDs(keyboardLEDsSize, keyboardLEDs); } \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEventSource(aEventSource); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IKeyboard(PRUint32 *aInternalAndReservedAttribute1IKeyboard) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IKeyboard(aInternalAndReservedAttribute1IKeyboard); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IKeyboard(PRUint32 *aInternalAndReservedAttribute2IKeyboard) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IKeyboard(aInternalAndReservedAttribute2IKeyboard); } \
  NS_IMETHOD PutScancode(PRInt32 scancode) { return !_to ? NS_ERROR_NULL_POINTER : _to->PutScancode(scancode); } \
  NS_IMETHOD PutScancodes(PRUint32 scancodesSize, PRInt32 *scancodes, PRUint32 *codesStored) { return !_to ? NS_ERROR_NULL_POINTER : _to->PutScancodes(scancodesSize, scancodes, codesStored); } \
  NS_IMETHOD PutCAD(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->PutCAD(); } \
  NS_IMETHOD ReleaseKeys(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->ReleaseKeys(); } \
  NS_IMETHOD InternalAndReservedMethod1IKeyboard(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IKeyboard(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IKeyboard
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IKEYBOARD

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IKeyboard)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* void getKeyboardLEDs (out unsigned long keyboardLEDsSize, [array, size_is (keyboardLEDsSize), retval] out PRUint32 keyboardLEDs); */
NS_IMETHODIMP _MYCLASS_::GetKeyboardLEDs(PRUint32 *keyboardLEDsSize, PRUint32 **keyboardLEDs)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IEventSource eventSource; */
NS_IMETHODIMP _MYCLASS_::GetEventSource(IEventSource * *aEventSource)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IKeyboard; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IKeyboard(PRUint32 *aInternalAndReservedAttribute1IKeyboard)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IKeyboard; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IKeyboard(PRUint32 *aInternalAndReservedAttribute2IKeyboard)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void putScancode (in long scancode); */
NS_IMETHODIMP _MYCLASS_::PutScancode(PRInt32 scancode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void putScancodes (in unsigned long scancodesSize, [array, size_is (scancodesSize)] in long scancodes, [retval] out unsigned long codesStored); */
NS_IMETHODIMP _MYCLASS_::PutScancodes(PRUint32 scancodesSize, PRInt32 *scancodes, PRUint32 *codesStored)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void putCAD (); */
NS_IMETHODIMP _MYCLASS_::PutCAD()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void releaseKeys (); */
NS_IMETHODIMP _MYCLASS_::ReleaseKeys()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1IKeyboard (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1IKeyboard()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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_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;

/* starting interface:    IMousePointerShape */
#define IMOUSEPOINTERSHAPE_IID_STR "e04e5545-4a0f-f9d2-5bef-f9b25b6557ed"

#define IMOUSEPOINTERSHAPE_IID \
  {0xe04e5545, 0x4a0f, 0xf9d2, \
    { 0x5b, 0xef, 0xf9, 0xb2, 0x5b, 0x65, 0x57, 0xed }}

class NS_NO_VTABLE IMousePointerShape : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IMOUSEPOINTERSHAPE_IID)

  /* readonly attribute boolean visible; */
  NS_IMETHOD GetVisible(PRBool *aVisible) = 0;

  /* readonly attribute boolean alpha; */
  NS_IMETHOD GetAlpha(PRBool *aAlpha) = 0;

  /* readonly attribute unsigned long hotX; */
  NS_IMETHOD GetHotX(PRUint32 *aHotX) = 0;

  /* readonly attribute unsigned long hotY; */
  NS_IMETHOD GetHotY(PRUint32 *aHotY) = 0;

  /* readonly attribute unsigned long width; */
  NS_IMETHOD GetWidth(PRUint32 *aWidth) = 0;

  /* readonly attribute unsigned long height; */
  NS_IMETHOD GetHeight(PRUint32 *aHeight) = 0;

  /* void getShape (out unsigned long shapeSize, [array, size_is (shapeSize), retval] out octet shape); */
  NS_IMETHOD GetShape(PRUint32 *shapeSize, PRUint8 **shape) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IMousePointerShape; */
  NS_IMETHOD GetInternalAndReservedAttribute1IMousePointerShape(PRUint32 *aInternalAndReservedAttribute1IMousePointerShape) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IMousePointerShape; */
  NS_IMETHOD GetInternalAndReservedAttribute2IMousePointerShape(PRUint32 *aInternalAndReservedAttribute2IMousePointerShape) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IMOUSEPOINTERSHAPE \
  NS_IMETHOD GetVisible(PRBool *aVisible); \
  NS_IMETHOD GetAlpha(PRBool *aAlpha); \
  NS_IMETHOD GetHotX(PRUint32 *aHotX); \
  NS_IMETHOD GetHotY(PRUint32 *aHotY); \
  NS_IMETHOD GetWidth(PRUint32 *aWidth); \
  NS_IMETHOD GetHeight(PRUint32 *aHeight); \
  NS_IMETHOD GetShape(PRUint32 *shapeSize, PRUint8 **shape); \
  NS_IMETHOD GetInternalAndReservedAttribute1IMousePointerShape(PRUint32 *aInternalAndReservedAttribute1IMousePointerShape); \
  NS_IMETHOD GetInternalAndReservedAttribute2IMousePointerShape(PRUint32 *aInternalAndReservedAttribute2IMousePointerShape); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IMOUSEPOINTERSHAPE(_to) \
  NS_IMETHOD GetVisible(PRBool *aVisible) { return _to GetVisible(aVisible); } \
  NS_IMETHOD GetAlpha(PRBool *aAlpha) { return _to GetAlpha(aAlpha); } \
  NS_IMETHOD GetHotX(PRUint32 *aHotX) { return _to GetHotX(aHotX); } \
  NS_IMETHOD GetHotY(PRUint32 *aHotY) { return _to GetHotY(aHotY); } \
  NS_IMETHOD GetWidth(PRUint32 *aWidth) { return _to GetWidth(aWidth); } \
  NS_IMETHOD GetHeight(PRUint32 *aHeight) { return _to GetHeight(aHeight); } \
  NS_IMETHOD GetShape(PRUint32 *shapeSize, PRUint8 **shape) { return _to GetShape(shapeSize, shape); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IMousePointerShape(PRUint32 *aInternalAndReservedAttribute1IMousePointerShape) { return _to GetInternalAndReservedAttribute1IMousePointerShape(aInternalAndReservedAttribute1IMousePointerShape); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IMousePointerShape(PRUint32 *aInternalAndReservedAttribute2IMousePointerShape) { return _to GetInternalAndReservedAttribute2IMousePointerShape(aInternalAndReservedAttribute2IMousePointerShape); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IMOUSEPOINTERSHAPE(_to) \
  NS_IMETHOD GetVisible(PRBool *aVisible) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVisible(aVisible); } \
  NS_IMETHOD GetAlpha(PRBool *aAlpha) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAlpha(aAlpha); } \
  NS_IMETHOD GetHotX(PRUint32 *aHotX) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHotX(aHotX); } \
  NS_IMETHOD GetHotY(PRUint32 *aHotY) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHotY(aHotY); } \
  NS_IMETHOD GetWidth(PRUint32 *aWidth) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetWidth(aWidth); } \
  NS_IMETHOD GetHeight(PRUint32 *aHeight) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHeight(aHeight); } \
  NS_IMETHOD GetShape(PRUint32 *shapeSize, PRUint8 **shape) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetShape(shapeSize, shape); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IMousePointerShape(PRUint32 *aInternalAndReservedAttribute1IMousePointerShape) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IMousePointerShape(aInternalAndReservedAttribute1IMousePointerShape); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IMousePointerShape(PRUint32 *aInternalAndReservedAttribute2IMousePointerShape) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IMousePointerShape(aInternalAndReservedAttribute2IMousePointerShape); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IMousePointerShape
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IMOUSEPOINTERSHAPE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IMousePointerShape)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean visible; */
NS_IMETHODIMP _MYCLASS_::GetVisible(PRBool *aVisible)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean alpha; */
NS_IMETHODIMP _MYCLASS_::GetAlpha(PRBool *aAlpha)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long hotX; */
NS_IMETHODIMP _MYCLASS_::GetHotX(PRUint32 *aHotX)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long hotY; */
NS_IMETHODIMP _MYCLASS_::GetHotY(PRUint32 *aHotY)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long width; */
NS_IMETHODIMP _MYCLASS_::GetWidth(PRUint32 *aWidth)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long height; */
NS_IMETHODIMP _MYCLASS_::GetHeight(PRUint32 *aHeight)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getShape (out unsigned long shapeSize, [array, size_is (shapeSize), retval] out octet shape); */
NS_IMETHODIMP _MYCLASS_::GetShape(PRUint32 *shapeSize, PRUint8 **shape)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IMousePointerShape; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IMousePointerShape(PRUint32 *aInternalAndReservedAttribute1IMousePointerShape)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IMousePointerShape; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IMousePointerShape(PRUint32 *aInternalAndReservedAttribute2IMousePointerShape)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IMouse */
#define IMOUSE_IID_STR "ee35adb0-4748-3e12-e7fd-5aad957bba0f"

#define IMOUSE_IID \
  {0xee35adb0, 0x4748, 0x3e12, \
    { 0xe7, 0xfd, 0x5a, 0xad, 0x95, 0x7b, 0xba, 0x0f }}

class NS_NO_VTABLE IMouse : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IMOUSE_IID)

  /* readonly attribute boolean absoluteSupported; */
  NS_IMETHOD GetAbsoluteSupported(PRBool *aAbsoluteSupported) = 0;

  /* readonly attribute boolean relativeSupported; */
  NS_IMETHOD GetRelativeSupported(PRBool *aRelativeSupported) = 0;

  /* readonly attribute boolean multiTouchSupported; */
  NS_IMETHOD GetMultiTouchSupported(PRBool *aMultiTouchSupported) = 0;

  /* readonly attribute boolean needsHostCursor; */
  NS_IMETHOD GetNeedsHostCursor(PRBool *aNeedsHostCursor) = 0;

  /* readonly attribute IMousePointerShape pointerShape; */
  NS_IMETHOD GetPointerShape(IMousePointerShape * *aPointerShape) = 0;

  /* readonly attribute IEventSource eventSource; */
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IMouse; */
  NS_IMETHOD GetInternalAndReservedAttribute1IMouse(PRUint32 *aInternalAndReservedAttribute1IMouse) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IMouse; */
  NS_IMETHOD GetInternalAndReservedAttribute2IMouse(PRUint32 *aInternalAndReservedAttribute2IMouse) = 0;

  /* void putMouseEvent (in long dx, in long dy, in long dz, in long dw, in long buttonState); */
  NS_IMETHOD PutMouseEvent(PRInt32 dx, PRInt32 dy, PRInt32 dz, PRInt32 dw, PRInt32 buttonState) = 0;

  /* void putMouseEventAbsolute (in long x, in long y, in long dz, in long dw, in long buttonState); */
  NS_IMETHOD PutMouseEventAbsolute(PRInt32 x, PRInt32 y, PRInt32 dz, PRInt32 dw, PRInt32 buttonState) = 0;

  /* void putEventMultiTouch (in long count, in unsigned long contactsSize, [array, size_is (contactsSize)] in long long contacts, in unsigned long scanTime); */
  NS_IMETHOD PutEventMultiTouch(PRInt32 count, PRUint32 contactsSize, PRInt64 *contacts, PRUint32 scanTime) = 0;

  /* void putEventMultiTouchString (in long count, in wstring contacts, in unsigned long scanTime); */
  NS_IMETHOD PutEventMultiTouchString(PRInt32 count, const PRUnichar *contacts, PRUint32 scanTime) = 0;

  /* void InternalAndReservedMethod1IMouse (); */
  NS_IMETHOD InternalAndReservedMethod1IMouse(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IMOUSE \
  NS_IMETHOD GetAbsoluteSupported(PRBool *aAbsoluteSupported); \
  NS_IMETHOD GetRelativeSupported(PRBool *aRelativeSupported); \
  NS_IMETHOD GetMultiTouchSupported(PRBool *aMultiTouchSupported); \
  NS_IMETHOD GetNeedsHostCursor(PRBool *aNeedsHostCursor); \
  NS_IMETHOD GetPointerShape(IMousePointerShape * *aPointerShape); \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource); \
  NS_IMETHOD GetInternalAndReservedAttribute1IMouse(PRUint32 *aInternalAndReservedAttribute1IMouse); \
  NS_IMETHOD GetInternalAndReservedAttribute2IMouse(PRUint32 *aInternalAndReservedAttribute2IMouse); \
  NS_IMETHOD PutMouseEvent(PRInt32 dx, PRInt32 dy, PRInt32 dz, PRInt32 dw, PRInt32 buttonState); \
  NS_IMETHOD PutMouseEventAbsolute(PRInt32 x, PRInt32 y, PRInt32 dz, PRInt32 dw, PRInt32 buttonState); \
  NS_IMETHOD PutEventMultiTouch(PRInt32 count, PRUint32 contactsSize, PRInt64 *contacts, PRUint32 scanTime); \
  NS_IMETHOD PutEventMultiTouchString(PRInt32 count, const PRUnichar *contacts, PRUint32 scanTime); \
  NS_IMETHOD InternalAndReservedMethod1IMouse(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IMOUSE(_to) \
  NS_IMETHOD GetAbsoluteSupported(PRBool *aAbsoluteSupported) { return _to GetAbsoluteSupported(aAbsoluteSupported); } \
  NS_IMETHOD GetRelativeSupported(PRBool *aRelativeSupported) { return _to GetRelativeSupported(aRelativeSupported); } \
  NS_IMETHOD GetMultiTouchSupported(PRBool *aMultiTouchSupported) { return _to GetMultiTouchSupported(aMultiTouchSupported); } \
  NS_IMETHOD GetNeedsHostCursor(PRBool *aNeedsHostCursor) { return _to GetNeedsHostCursor(aNeedsHostCursor); } \
  NS_IMETHOD GetPointerShape(IMousePointerShape * *aPointerShape) { return _to GetPointerShape(aPointerShape); } \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) { return _to GetEventSource(aEventSource); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IMouse(PRUint32 *aInternalAndReservedAttribute1IMouse) { return _to GetInternalAndReservedAttribute1IMouse(aInternalAndReservedAttribute1IMouse); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IMouse(PRUint32 *aInternalAndReservedAttribute2IMouse) { return _to GetInternalAndReservedAttribute2IMouse(aInternalAndReservedAttribute2IMouse); } \
  NS_IMETHOD PutMouseEvent(PRInt32 dx, PRInt32 dy, PRInt32 dz, PRInt32 dw, PRInt32 buttonState) { return _to PutMouseEvent(dx, dy, dz, dw, buttonState); } \
  NS_IMETHOD PutMouseEventAbsolute(PRInt32 x, PRInt32 y, PRInt32 dz, PRInt32 dw, PRInt32 buttonState) { return _to PutMouseEventAbsolute(x, y, dz, dw, buttonState); } \
  NS_IMETHOD PutEventMultiTouch(PRInt32 count, PRUint32 contactsSize, PRInt64 *contacts, PRUint32 scanTime) { return _to PutEventMultiTouch(count, contactsSize, contacts, scanTime); } \
  NS_IMETHOD PutEventMultiTouchString(PRInt32 count, const PRUnichar *contacts, PRUint32 scanTime) { return _to PutEventMultiTouchString(count, contacts, scanTime); } \
  NS_IMETHOD InternalAndReservedMethod1IMouse(void) { return _to InternalAndReservedMethod1IMouse(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IMOUSE(_to) \
  NS_IMETHOD GetAbsoluteSupported(PRBool *aAbsoluteSupported) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAbsoluteSupported(aAbsoluteSupported); } \
  NS_IMETHOD GetRelativeSupported(PRBool *aRelativeSupported) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRelativeSupported(aRelativeSupported); } \
  NS_IMETHOD GetMultiTouchSupported(PRBool *aMultiTouchSupported) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMultiTouchSupported(aMultiTouchSupported); } \
  NS_IMETHOD GetNeedsHostCursor(PRBool *aNeedsHostCursor) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNeedsHostCursor(aNeedsHostCursor); } \
  NS_IMETHOD GetPointerShape(IMousePointerShape * *aPointerShape) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPointerShape(aPointerShape); } \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEventSource(aEventSource); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IMouse(PRUint32 *aInternalAndReservedAttribute1IMouse) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IMouse(aInternalAndReservedAttribute1IMouse); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IMouse(PRUint32 *aInternalAndReservedAttribute2IMouse) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IMouse(aInternalAndReservedAttribute2IMouse); } \
  NS_IMETHOD PutMouseEvent(PRInt32 dx, PRInt32 dy, PRInt32 dz, PRInt32 dw, PRInt32 buttonState) { return !_to ? NS_ERROR_NULL_POINTER : _to->PutMouseEvent(dx, dy, dz, dw, buttonState); } \
  NS_IMETHOD PutMouseEventAbsolute(PRInt32 x, PRInt32 y, PRInt32 dz, PRInt32 dw, PRInt32 buttonState) { return !_to ? NS_ERROR_NULL_POINTER : _to->PutMouseEventAbsolute(x, y, dz, dw, buttonState); } \
  NS_IMETHOD PutEventMultiTouch(PRInt32 count, PRUint32 contactsSize, PRInt64 *contacts, PRUint32 scanTime) { return !_to ? NS_ERROR_NULL_POINTER : _to->PutEventMultiTouch(count, contactsSize, contacts, scanTime); } \
  NS_IMETHOD PutEventMultiTouchString(PRInt32 count, const PRUnichar *contacts, PRUint32 scanTime) { return !_to ? NS_ERROR_NULL_POINTER : _to->PutEventMultiTouchString(count, contacts, scanTime); } \
  NS_IMETHOD InternalAndReservedMethod1IMouse(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IMouse(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IMouse
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IMOUSE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IMouse)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean absoluteSupported; */
NS_IMETHODIMP _MYCLASS_::GetAbsoluteSupported(PRBool *aAbsoluteSupported)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean relativeSupported; */
NS_IMETHODIMP _MYCLASS_::GetRelativeSupported(PRBool *aRelativeSupported)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean multiTouchSupported; */
NS_IMETHODIMP _MYCLASS_::GetMultiTouchSupported(PRBool *aMultiTouchSupported)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean needsHostCursor; */
NS_IMETHODIMP _MYCLASS_::GetNeedsHostCursor(PRBool *aNeedsHostCursor)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IMousePointerShape pointerShape; */
NS_IMETHODIMP _MYCLASS_::GetPointerShape(IMousePointerShape * *aPointerShape)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IEventSource eventSource; */
NS_IMETHODIMP _MYCLASS_::GetEventSource(IEventSource * *aEventSource)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IMouse; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IMouse(PRUint32 *aInternalAndReservedAttribute1IMouse)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IMouse; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IMouse(PRUint32 *aInternalAndReservedAttribute2IMouse)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void putMouseEvent (in long dx, in long dy, in long dz, in long dw, in long buttonState); */
NS_IMETHODIMP _MYCLASS_::PutMouseEvent(PRInt32 dx, PRInt32 dy, PRInt32 dz, PRInt32 dw, PRInt32 buttonState)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void putMouseEventAbsolute (in long x, in long y, in long dz, in long dw, in long buttonState); */
NS_IMETHODIMP _MYCLASS_::PutMouseEventAbsolute(PRInt32 x, PRInt32 y, PRInt32 dz, PRInt32 dw, PRInt32 buttonState)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void putEventMultiTouch (in long count, in unsigned long contactsSize, [array, size_is (contactsSize)] in long long contacts, in unsigned long scanTime); */
NS_IMETHODIMP _MYCLASS_::PutEventMultiTouch(PRInt32 count, PRUint32 contactsSize, PRInt64 *contacts, PRUint32 scanTime)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void putEventMultiTouchString (in long count, in wstring contacts, in unsigned long scanTime); */
NS_IMETHODIMP _MYCLASS_::PutEventMultiTouchString(PRInt32 count, const PRUnichar *contacts, PRUint32 scanTime)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1IMouse (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1IMouse()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IDisplaySourceBitmap */
#define IDISPLAYSOURCEBITMAP_IID_STR "0b78daeb-f52f-43b9-99e8-4a3c226cbe2d"

#define IDISPLAYSOURCEBITMAP_IID \
  {0x0b78daeb, 0xf52f, 0x43b9, \
    { 0x99, 0xe8, 0x4a, 0x3c, 0x22, 0x6c, 0xbe, 0x2d }}

class NS_NO_VTABLE IDisplaySourceBitmap : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IDISPLAYSOURCEBITMAP_IID)

  /* readonly attribute unsigned long screenId; */
  NS_IMETHOD GetScreenId(PRUint32 *aScreenId) = 0;

  /* [noscript] void queryBitmapInfo (out octetPtr address, out unsigned long width, out unsigned long height, out unsigned long bitsPerPixel, out unsigned long bytesPerLine, out PRUint32 bitmapFormat); */
  NS_IMETHOD QueryBitmapInfo(PRUint8 * *address, PRUint32 *width, PRUint32 *height, PRUint32 *bitsPerPixel, PRUint32 *bytesPerLine, PRUint32 *bitmapFormat) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IDISPLAYSOURCEBITMAP \
  NS_IMETHOD GetScreenId(PRUint32 *aScreenId); \
  NS_IMETHOD QueryBitmapInfo(PRUint8 * *address, PRUint32 *width, PRUint32 *height, PRUint32 *bitsPerPixel, PRUint32 *bytesPerLine, PRUint32 *bitmapFormat); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IDISPLAYSOURCEBITMAP(_to) \
  NS_IMETHOD GetScreenId(PRUint32 *aScreenId) { return _to GetScreenId(aScreenId); } \
  NS_IMETHOD QueryBitmapInfo(PRUint8 * *address, PRUint32 *width, PRUint32 *height, PRUint32 *bitsPerPixel, PRUint32 *bytesPerLine, PRUint32 *bitmapFormat) { return _to QueryBitmapInfo(address, width, height, bitsPerPixel, bytesPerLine, bitmapFormat); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IDISPLAYSOURCEBITMAP(_to) \
  NS_IMETHOD GetScreenId(PRUint32 *aScreenId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetScreenId(aScreenId); } \
  NS_IMETHOD QueryBitmapInfo(PRUint8 * *address, PRUint32 *width, PRUint32 *height, PRUint32 *bitsPerPixel, PRUint32 *bytesPerLine, PRUint32 *bitmapFormat) { return !_to ? NS_ERROR_NULL_POINTER : _to->QueryBitmapInfo(address, width, height, bitsPerPixel, bytesPerLine, bitmapFormat); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IDisplaySourceBitmap
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IDISPLAYSOURCEBITMAP

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IDisplaySourceBitmap)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute unsigned long screenId; */
NS_IMETHODIMP _MYCLASS_::GetScreenId(PRUint32 *aScreenId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void queryBitmapInfo (out octetPtr address, out unsigned long width, out unsigned long height, out unsigned long bitsPerPixel, out unsigned long bytesPerLine, out PRUint32 bitmapFormat); */
NS_IMETHODIMP _MYCLASS_::QueryBitmapInfo(PRUint8 * *address, PRUint32 *width, PRUint32 *height, PRUint32 *bitsPerPixel, PRUint32 *bytesPerLine, PRUint32 *bitmapFormat)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IFramebuffer */
#define IFRAMEBUFFER_IID_STR "8b82295f-415f-1aa1-17fd-9fbbac8edf44"

#define IFRAMEBUFFER_IID \
  {0x8b82295f, 0x415f, 0x1aa1, \
    { 0x17, 0xfd, 0x9f, 0xbb, 0xac, 0x8e, 0xdf, 0x44 }}

class NS_NO_VTABLE IFramebuffer : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IFRAMEBUFFER_IID)

  /* readonly attribute unsigned long width; */
  NS_IMETHOD GetWidth(PRUint32 *aWidth) = 0;

  /* readonly attribute unsigned long height; */
  NS_IMETHOD GetHeight(PRUint32 *aHeight) = 0;

  /* readonly attribute unsigned long bitsPerPixel; */
  NS_IMETHOD GetBitsPerPixel(PRUint32 *aBitsPerPixel) = 0;

  /* readonly attribute unsigned long bytesPerLine; */
  NS_IMETHOD GetBytesPerLine(PRUint32 *aBytesPerLine) = 0;

  /* readonly attribute PRUint32 pixelFormat; */
  NS_IMETHOD GetPixelFormat(PRUint32 *aPixelFormat) = 0;

  /* readonly attribute unsigned long heightReduction; */
  NS_IMETHOD GetHeightReduction(PRUint32 *aHeightReduction) = 0;

  /* readonly attribute IFramebufferOverlay overlay; */
  NS_IMETHOD GetOverlay(IFramebufferOverlay * *aOverlay) = 0;

  /* readonly attribute long long winId; */
  NS_IMETHOD GetWinId(PRInt64 *aWinId) = 0;

  /* void getCapabilities (out unsigned long capabilitiesSize, [array, size_is (capabilitiesSize), retval] out PRUint32 capabilities); */
  NS_IMETHOD GetCapabilities(PRUint32 *capabilitiesSize, PRUint32 **capabilities) = 0;

  /* void notifyUpdate (in unsigned long x, in unsigned long y, in unsigned long width, in unsigned long height); */
  NS_IMETHOD NotifyUpdate(PRUint32 x, PRUint32 y, PRUint32 width, PRUint32 height) = 0;

  /* 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); */
  NS_IMETHOD NotifyUpdateImage(PRUint32 x, PRUint32 y, PRUint32 width, PRUint32 height, PRUint32 imageSize, PRUint8 *image) = 0;

  /* void notifyChange (in unsigned long screenId, in unsigned long xOrigin, in unsigned long yOrigin, in unsigned long width, in unsigned long height); */
  NS_IMETHOD NotifyChange(PRUint32 screenId, PRUint32 xOrigin, PRUint32 yOrigin, PRUint32 width, PRUint32 height) = 0;

  /* void videoModeSupported (in unsigned long width, in unsigned long height, in unsigned long bpp, [retval] out boolean supported); */
  NS_IMETHOD VideoModeSupported(PRUint32 width, PRUint32 height, PRUint32 bpp, PRBool *supported) = 0;

  /* [noscript] void getVisibleRegion (in octetPtr rectangles, in unsigned long count, [retval] out unsigned long countCopied); */
  NS_IMETHOD GetVisibleRegion(PRUint8 * rectangles, PRUint32 count, PRUint32 *countCopied) = 0;

  /* [noscript] void setVisibleRegion (in octetPtr rectangles, in unsigned long count); */
  NS_IMETHOD SetVisibleRegion(PRUint8 * rectangles, PRUint32 count) = 0;

  /* [noscript] void processVHWACommand (in octetPtr command); */
  NS_IMETHOD ProcessVHWACommand(PRUint8 * command) = 0;

  /* void notify3DEvent (in unsigned long type, in unsigned long dataSize, [array, size_is (dataSize)] in octet data); */
  NS_IMETHOD Notify3DEvent(PRUint32 type, PRUint32 dataSize, PRUint8 *data) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IFRAMEBUFFER \
  NS_IMETHOD GetWidth(PRUint32 *aWidth); \
  NS_IMETHOD GetHeight(PRUint32 *aHeight); \
  NS_IMETHOD GetBitsPerPixel(PRUint32 *aBitsPerPixel); \
  NS_IMETHOD GetBytesPerLine(PRUint32 *aBytesPerLine); \
  NS_IMETHOD GetPixelFormat(PRUint32 *aPixelFormat); \
  NS_IMETHOD GetHeightReduction(PRUint32 *aHeightReduction); \
  NS_IMETHOD GetOverlay(IFramebufferOverlay * *aOverlay); \
  NS_IMETHOD GetWinId(PRInt64 *aWinId); \
  NS_IMETHOD GetCapabilities(PRUint32 *capabilitiesSize, PRUint32 **capabilities); \
  NS_IMETHOD NotifyUpdate(PRUint32 x, PRUint32 y, PRUint32 width, PRUint32 height); \
  NS_IMETHOD NotifyUpdateImage(PRUint32 x, PRUint32 y, PRUint32 width, PRUint32 height, PRUint32 imageSize, PRUint8 *image); \
  NS_IMETHOD NotifyChange(PRUint32 screenId, PRUint32 xOrigin, PRUint32 yOrigin, PRUint32 width, PRUint32 height); \
  NS_IMETHOD VideoModeSupported(PRUint32 width, PRUint32 height, PRUint32 bpp, PRBool *supported); \
  NS_IMETHOD GetVisibleRegion(PRUint8 * rectangles, PRUint32 count, PRUint32 *countCopied); \
  NS_IMETHOD SetVisibleRegion(PRUint8 * rectangles, PRUint32 count); \
  NS_IMETHOD ProcessVHWACommand(PRUint8 * command); \
  NS_IMETHOD Notify3DEvent(PRUint32 type, PRUint32 dataSize, PRUint8 *data); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IFRAMEBUFFER(_to) \
  NS_IMETHOD GetWidth(PRUint32 *aWidth) { return _to GetWidth(aWidth); } \
  NS_IMETHOD GetHeight(PRUint32 *aHeight) { return _to GetHeight(aHeight); } \
  NS_IMETHOD GetBitsPerPixel(PRUint32 *aBitsPerPixel) { return _to GetBitsPerPixel(aBitsPerPixel); } \
  NS_IMETHOD GetBytesPerLine(PRUint32 *aBytesPerLine) { return _to GetBytesPerLine(aBytesPerLine); } \
  NS_IMETHOD GetPixelFormat(PRUint32 *aPixelFormat) { return _to GetPixelFormat(aPixelFormat); } \
  NS_IMETHOD GetHeightReduction(PRUint32 *aHeightReduction) { return _to GetHeightReduction(aHeightReduction); } \
  NS_IMETHOD GetOverlay(IFramebufferOverlay * *aOverlay) { return _to GetOverlay(aOverlay); } \
  NS_IMETHOD GetWinId(PRInt64 *aWinId) { return _to GetWinId(aWinId); } \
  NS_IMETHOD GetCapabilities(PRUint32 *capabilitiesSize, PRUint32 **capabilities) { return _to GetCapabilities(capabilitiesSize, capabilities); } \
  NS_IMETHOD NotifyUpdate(PRUint32 x, PRUint32 y, PRUint32 width, PRUint32 height) { return _to NotifyUpdate(x, y, width, height); } \
  NS_IMETHOD NotifyUpdateImage(PRUint32 x, PRUint32 y, PRUint32 width, PRUint32 height, PRUint32 imageSize, PRUint8 *image) { return _to NotifyUpdateImage(x, y, width, height, imageSize, image); } \
  NS_IMETHOD NotifyChange(PRUint32 screenId, PRUint32 xOrigin, PRUint32 yOrigin, PRUint32 width, PRUint32 height) { return _to NotifyChange(screenId, xOrigin, yOrigin, width, height); } \
  NS_IMETHOD VideoModeSupported(PRUint32 width, PRUint32 height, PRUint32 bpp, PRBool *supported) { return _to VideoModeSupported(width, height, bpp, supported); } \
  NS_IMETHOD GetVisibleRegion(PRUint8 * rectangles, PRUint32 count, PRUint32 *countCopied) { return _to GetVisibleRegion(rectangles, count, countCopied); } \
  NS_IMETHOD SetVisibleRegion(PRUint8 * rectangles, PRUint32 count) { return _to SetVisibleRegion(rectangles, count); } \
  NS_IMETHOD ProcessVHWACommand(PRUint8 * command) { return _to ProcessVHWACommand(command); } \
  NS_IMETHOD Notify3DEvent(PRUint32 type, PRUint32 dataSize, PRUint8 *data) { return _to Notify3DEvent(type, dataSize, data); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IFRAMEBUFFER(_to) \
  NS_IMETHOD GetWidth(PRUint32 *aWidth) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetWidth(aWidth); } \
  NS_IMETHOD GetHeight(PRUint32 *aHeight) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHeight(aHeight); } \
  NS_IMETHOD GetBitsPerPixel(PRUint32 *aBitsPerPixel) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBitsPerPixel(aBitsPerPixel); } \
  NS_IMETHOD GetBytesPerLine(PRUint32 *aBytesPerLine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBytesPerLine(aBytesPerLine); } \
  NS_IMETHOD GetPixelFormat(PRUint32 *aPixelFormat) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPixelFormat(aPixelFormat); } \
  NS_IMETHOD GetHeightReduction(PRUint32 *aHeightReduction) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHeightReduction(aHeightReduction); } \
  NS_IMETHOD GetOverlay(IFramebufferOverlay * *aOverlay) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOverlay(aOverlay); } \
  NS_IMETHOD GetWinId(PRInt64 *aWinId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetWinId(aWinId); } \
  NS_IMETHOD GetCapabilities(PRUint32 *capabilitiesSize, PRUint32 **capabilities) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCapabilities(capabilitiesSize, capabilities); } \
  NS_IMETHOD NotifyUpdate(PRUint32 x, PRUint32 y, PRUint32 width, PRUint32 height) { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyUpdate(x, y, width, height); } \
  NS_IMETHOD NotifyUpdateImage(PRUint32 x, PRUint32 y, PRUint32 width, PRUint32 height, PRUint32 imageSize, PRUint8 *image) { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyUpdateImage(x, y, width, height, imageSize, image); } \
  NS_IMETHOD NotifyChange(PRUint32 screenId, PRUint32 xOrigin, PRUint32 yOrigin, PRUint32 width, PRUint32 height) { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyChange(screenId, xOrigin, yOrigin, width, height); } \
  NS_IMETHOD VideoModeSupported(PRUint32 width, PRUint32 height, PRUint32 bpp, PRBool *supported) { return !_to ? NS_ERROR_NULL_POINTER : _to->VideoModeSupported(width, height, bpp, supported); } \
  NS_IMETHOD GetVisibleRegion(PRUint8 * rectangles, PRUint32 count, PRUint32 *countCopied) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVisibleRegion(rectangles, count, countCopied); } \
  NS_IMETHOD SetVisibleRegion(PRUint8 * rectangles, PRUint32 count) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetVisibleRegion(rectangles, count); } \
  NS_IMETHOD ProcessVHWACommand(PRUint8 * command) { return !_to ? NS_ERROR_NULL_POINTER : _to->ProcessVHWACommand(command); } \
  NS_IMETHOD Notify3DEvent(PRUint32 type, PRUint32 dataSize, PRUint8 *data) { return !_to ? NS_ERROR_NULL_POINTER : _to->Notify3DEvent(type, dataSize, data); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IFramebuffer
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IFRAMEBUFFER

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IFramebuffer)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute unsigned long width; */
NS_IMETHODIMP _MYCLASS_::GetWidth(PRUint32 *aWidth)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long height; */
NS_IMETHODIMP _MYCLASS_::GetHeight(PRUint32 *aHeight)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long bitsPerPixel; */
NS_IMETHODIMP _MYCLASS_::GetBitsPerPixel(PRUint32 *aBitsPerPixel)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long bytesPerLine; */
NS_IMETHODIMP _MYCLASS_::GetBytesPerLine(PRUint32 *aBytesPerLine)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 pixelFormat; */
NS_IMETHODIMP _MYCLASS_::GetPixelFormat(PRUint32 *aPixelFormat)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long heightReduction; */
NS_IMETHODIMP _MYCLASS_::GetHeightReduction(PRUint32 *aHeightReduction)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IFramebufferOverlay overlay; */
NS_IMETHODIMP _MYCLASS_::GetOverlay(IFramebufferOverlay * *aOverlay)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long long winId; */
NS_IMETHODIMP _MYCLASS_::GetWinId(PRInt64 *aWinId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getCapabilities (out unsigned long capabilitiesSize, [array, size_is (capabilitiesSize), retval] out PRUint32 capabilities); */
NS_IMETHODIMP _MYCLASS_::GetCapabilities(PRUint32 *capabilitiesSize, PRUint32 **capabilities)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void notifyUpdate (in unsigned long x, in unsigned long y, in unsigned long width, in unsigned long height); */
NS_IMETHODIMP _MYCLASS_::NotifyUpdate(PRUint32 x, PRUint32 y, PRUint32 width, PRUint32 height)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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); */
NS_IMETHODIMP _MYCLASS_::NotifyUpdateImage(PRUint32 x, PRUint32 y, PRUint32 width, PRUint32 height, PRUint32 imageSize, PRUint8 *image)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void notifyChange (in unsigned long screenId, in unsigned long xOrigin, in unsigned long yOrigin, in unsigned long width, in unsigned long height); */
NS_IMETHODIMP _MYCLASS_::NotifyChange(PRUint32 screenId, PRUint32 xOrigin, PRUint32 yOrigin, PRUint32 width, PRUint32 height)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void videoModeSupported (in unsigned long width, in unsigned long height, in unsigned long bpp, [retval] out boolean supported); */
NS_IMETHODIMP _MYCLASS_::VideoModeSupported(PRUint32 width, PRUint32 height, PRUint32 bpp, PRBool *supported)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void getVisibleRegion (in octetPtr rectangles, in unsigned long count, [retval] out unsigned long countCopied); */
NS_IMETHODIMP _MYCLASS_::GetVisibleRegion(PRUint8 * rectangles, PRUint32 count, PRUint32 *countCopied)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void setVisibleRegion (in octetPtr rectangles, in unsigned long count); */
NS_IMETHODIMP _MYCLASS_::SetVisibleRegion(PRUint8 * rectangles, PRUint32 count)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void processVHWACommand (in octetPtr command); */
NS_IMETHODIMP _MYCLASS_::ProcessVHWACommand(PRUint8 * command)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void notify3DEvent (in unsigned long type, in unsigned long dataSize, [array, size_is (dataSize)] in octet data); */
NS_IMETHODIMP _MYCLASS_::Notify3DEvent(PRUint32 type, PRUint32 dataSize, PRUint8 *data)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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) { return smth ProcessVHWACommand (aCommand); }
#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;

/* starting interface:    IFramebufferOverlay */
#define IFRAMEBUFFEROVERLAY_IID_STR "af398a9a-6b76-4805-8fab-00a9dcf4732b"

#define IFRAMEBUFFEROVERLAY_IID \
  {0xaf398a9a, 0x6b76, 0x4805, \
    { 0x8f, 0xab, 0x00, 0xa9, 0xdc, 0xf4, 0x73, 0x2b }}

class NS_NO_VTABLE IFramebufferOverlay : public IFramebuffer {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IFRAMEBUFFEROVERLAY_IID)

  /* readonly attribute unsigned long x; */
  NS_IMETHOD GetX(PRUint32 *aX) = 0;

  /* readonly attribute unsigned long y; */
  NS_IMETHOD GetY(PRUint32 *aY) = 0;

  /* attribute boolean visible; */
  NS_IMETHOD GetVisible(PRBool *aVisible) = 0;
  NS_IMETHOD SetVisible(PRBool aVisible) = 0;

  /* attribute unsigned long alpha; */
  NS_IMETHOD GetAlpha(PRUint32 *aAlpha) = 0;
  NS_IMETHOD SetAlpha(PRUint32 aAlpha) = 0;

  /* void move (in unsigned long x, in unsigned long y); */
  NS_IMETHOD Move(PRUint32 x, PRUint32 y) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IFRAMEBUFFEROVERLAY \
  NS_IMETHOD GetX(PRUint32 *aX); \
  NS_IMETHOD GetY(PRUint32 *aY); \
  NS_IMETHOD GetVisible(PRBool *aVisible); \
  NS_IMETHOD SetVisible(PRBool aVisible); \
  NS_IMETHOD GetAlpha(PRUint32 *aAlpha); \
  NS_IMETHOD SetAlpha(PRUint32 aAlpha); \
  NS_IMETHOD Move(PRUint32 x, PRUint32 y); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IFRAMEBUFFEROVERLAY(_to) \
  NS_IMETHOD GetX(PRUint32 *aX) { return _to GetX(aX); } \
  NS_IMETHOD GetY(PRUint32 *aY) { return _to GetY(aY); } \
  NS_IMETHOD GetVisible(PRBool *aVisible) { return _to GetVisible(aVisible); } \
  NS_IMETHOD SetVisible(PRBool aVisible) { return _to SetVisible(aVisible); } \
  NS_IMETHOD GetAlpha(PRUint32 *aAlpha) { return _to GetAlpha(aAlpha); } \
  NS_IMETHOD SetAlpha(PRUint32 aAlpha) { return _to SetAlpha(aAlpha); } \
  NS_IMETHOD Move(PRUint32 x, PRUint32 y) { return _to Move(x, y); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IFRAMEBUFFEROVERLAY(_to) \
  NS_IMETHOD GetX(PRUint32 *aX) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetX(aX); } \
  NS_IMETHOD GetY(PRUint32 *aY) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetY(aY); } \
  NS_IMETHOD GetVisible(PRBool *aVisible) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVisible(aVisible); } \
  NS_IMETHOD SetVisible(PRBool aVisible) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetVisible(aVisible); } \
  NS_IMETHOD GetAlpha(PRUint32 *aAlpha) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAlpha(aAlpha); } \
  NS_IMETHOD SetAlpha(PRUint32 aAlpha) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAlpha(aAlpha); } \
  NS_IMETHOD Move(PRUint32 x, PRUint32 y) { return !_to ? NS_ERROR_NULL_POINTER : _to->Move(x, y); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IFramebufferOverlay
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IFRAMEBUFFEROVERLAY

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IFramebufferOverlay)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute unsigned long x; */
NS_IMETHODIMP _MYCLASS_::GetX(PRUint32 *aX)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long y; */
NS_IMETHODIMP _MYCLASS_::GetY(PRUint32 *aY)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean visible; */
NS_IMETHODIMP _MYCLASS_::GetVisible(PRBool *aVisible)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetVisible(PRBool aVisible)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long alpha; */
NS_IMETHODIMP _MYCLASS_::GetAlpha(PRUint32 *aAlpha)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetAlpha(PRUint32 aAlpha)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void move (in unsigned long x, in unsigned long y); */
NS_IMETHODIMP _MYCLASS_::Move(PRUint32 x, PRUint32 y)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IDisplay */
#define IDISPLAY_IID_STR "7303a66d-433b-25a4-f9a8-fcadf87e0c2a"

#define IDISPLAY_IID \
  {0x7303a66d, 0x433b, 0x25a4, \
    { 0xf9, 0xa8, 0xfc, 0xad, 0xf8, 0x7e, 0x0c, 0x2a }}

class NS_NO_VTABLE IDisplay : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IDISPLAY_IID)

  /* readonly attribute unsigned long InternalAndReservedAttribute1IDisplay; */
  NS_IMETHOD GetInternalAndReservedAttribute1IDisplay(PRUint32 *aInternalAndReservedAttribute1IDisplay) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IDisplay; */
  NS_IMETHOD GetInternalAndReservedAttribute2IDisplay(PRUint32 *aInternalAndReservedAttribute2IDisplay) = 0;

  /* 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 PRUint32 guestMonitorStatus); */
  NS_IMETHOD GetScreenResolution(PRUint32 screenId, PRUint32 *width, PRUint32 *height, PRUint32 *bitsPerPixel, PRInt32 *xOrigin, PRInt32 *yOrigin, PRUint32 *guestMonitorStatus) = 0;

  /* void attachFramebuffer (in unsigned long screenId, in IFramebuffer framebuffer, [retval] out wstring id); */
  NS_IMETHOD AttachFramebuffer(PRUint32 screenId, IFramebuffer *framebuffer, PRUnichar **id) = 0;

  /* void detachFramebuffer (in unsigned long screenId, in wstring id); */
  NS_IMETHOD DetachFramebuffer(PRUint32 screenId, const PRUnichar *id) = 0;

  /* void queryFramebuffer (in unsigned long screenId, [retval] out IFramebuffer framebuffer); */
  NS_IMETHOD QueryFramebuffer(PRUint32 screenId, IFramebuffer **framebuffer) = 0;

  /* 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); */
  NS_IMETHOD SetVideoModeHint(PRUint32 display, PRBool enabled, PRBool changeOrigin, PRInt32 originX, PRInt32 originY, PRUint32 width, PRUint32 height, PRUint32 bitsPerPixel) = 0;

  /* void setSeamlessMode (in boolean enabled); */
  NS_IMETHOD SetSeamlessMode(PRBool enabled) = 0;

  /* [noscript] void takeScreenShot (in unsigned long screenId, in octetPtr address, in unsigned long width, in unsigned long height, in PRUint32 bitmapFormat); */
  NS_IMETHOD TakeScreenShot(PRUint32 screenId, PRUint8 * address, PRUint32 width, PRUint32 height, PRUint32 bitmapFormat) = 0;

  /* void takeScreenShotToArray (in unsigned long screenId, in unsigned long width, in unsigned long height, in PRUint32 bitmapFormat, out unsigned long screenDataSize, [array, size_is (screenDataSize), retval] out octet screenData); */
  NS_IMETHOD TakeScreenShotToArray(PRUint32 screenId, PRUint32 width, PRUint32 height, PRUint32 bitmapFormat, PRUint32 *screenDataSize, PRUint8 **screenData) = 0;

  /* [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); */
  NS_IMETHOD DrawToScreen(PRUint32 screenId, PRUint8 * address, PRUint32 x, PRUint32 y, PRUint32 width, PRUint32 height) = 0;

  /* void invalidateAndUpdate (); */
  NS_IMETHOD InvalidateAndUpdate(void) = 0;

  /* void invalidateAndUpdateScreen (in unsigned long screenId); */
  NS_IMETHOD InvalidateAndUpdateScreen(PRUint32 screenId) = 0;

  /* [noscript] void completeVHWACommand (in octetPtr command); */
  NS_IMETHOD CompleteVHWACommand(PRUint8 * command) = 0;

  /* void viewportChanged (in unsigned long screenId, in unsigned long x, in unsigned long y, in unsigned long width, in unsigned long height); */
  NS_IMETHOD ViewportChanged(PRUint32 screenId, PRUint32 x, PRUint32 y, PRUint32 width, PRUint32 height) = 0;

  /* void querySourceBitmap (in unsigned long screenId, out IDisplaySourceBitmap displaySourceBitmap); */
  NS_IMETHOD QuerySourceBitmap(PRUint32 screenId, IDisplaySourceBitmap **displaySourceBitmap) = 0;

  /* void notifyScaleFactorChange (in unsigned long screenId, in unsigned long u32ScaleFactorWMultiplied, in unsigned long u32ScaleFactorHMultiplied); */
  NS_IMETHOD NotifyScaleFactorChange(PRUint32 screenId, PRUint32 u32ScaleFactorWMultiplied, PRUint32 u32ScaleFactorHMultiplied) = 0;

  /* void notifyHiDPIOutputPolicyChange (in boolean fUnscaledHiDPI); */
  NS_IMETHOD NotifyHiDPIOutputPolicyChange(PRBool fUnscaledHiDPI) = 0;

  /* void InternalAndReservedMethod1IDisplay (); */
  NS_IMETHOD InternalAndReservedMethod1IDisplay(void) = 0;

  /* void InternalAndReservedMethod2IDisplay (); */
  NS_IMETHOD InternalAndReservedMethod2IDisplay(void) = 0;

  /* void InternalAndReservedMethod3IDisplay (); */
  NS_IMETHOD InternalAndReservedMethod3IDisplay(void) = 0;

  /* void InternalAndReservedMethod4IDisplay (); */
  NS_IMETHOD InternalAndReservedMethod4IDisplay(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IDISPLAY \
  NS_IMETHOD GetInternalAndReservedAttribute1IDisplay(PRUint32 *aInternalAndReservedAttribute1IDisplay); \
  NS_IMETHOD GetInternalAndReservedAttribute2IDisplay(PRUint32 *aInternalAndReservedAttribute2IDisplay); \
  NS_IMETHOD GetScreenResolution(PRUint32 screenId, PRUint32 *width, PRUint32 *height, PRUint32 *bitsPerPixel, PRInt32 *xOrigin, PRInt32 *yOrigin, PRUint32 *guestMonitorStatus); \
  NS_IMETHOD AttachFramebuffer(PRUint32 screenId, IFramebuffer *framebuffer, PRUnichar **id); \
  NS_IMETHOD DetachFramebuffer(PRUint32 screenId, const PRUnichar *id); \
  NS_IMETHOD QueryFramebuffer(PRUint32 screenId, IFramebuffer **framebuffer); \
  NS_IMETHOD SetVideoModeHint(PRUint32 display, PRBool enabled, PRBool changeOrigin, PRInt32 originX, PRInt32 originY, PRUint32 width, PRUint32 height, PRUint32 bitsPerPixel); \
  NS_IMETHOD SetSeamlessMode(PRBool enabled); \
  NS_IMETHOD TakeScreenShot(PRUint32 screenId, PRUint8 * address, PRUint32 width, PRUint32 height, PRUint32 bitmapFormat); \
  NS_IMETHOD TakeScreenShotToArray(PRUint32 screenId, PRUint32 width, PRUint32 height, PRUint32 bitmapFormat, PRUint32 *screenDataSize, PRUint8 **screenData); \
  NS_IMETHOD DrawToScreen(PRUint32 screenId, PRUint8 * address, PRUint32 x, PRUint32 y, PRUint32 width, PRUint32 height); \
  NS_IMETHOD InvalidateAndUpdate(void); \
  NS_IMETHOD InvalidateAndUpdateScreen(PRUint32 screenId); \
  NS_IMETHOD CompleteVHWACommand(PRUint8 * command); \
  NS_IMETHOD ViewportChanged(PRUint32 screenId, PRUint32 x, PRUint32 y, PRUint32 width, PRUint32 height); \
  NS_IMETHOD QuerySourceBitmap(PRUint32 screenId, IDisplaySourceBitmap **displaySourceBitmap); \
  NS_IMETHOD NotifyScaleFactorChange(PRUint32 screenId, PRUint32 u32ScaleFactorWMultiplied, PRUint32 u32ScaleFactorHMultiplied); \
  NS_IMETHOD NotifyHiDPIOutputPolicyChange(PRBool fUnscaledHiDPI); \
  NS_IMETHOD InternalAndReservedMethod1IDisplay(void); \
  NS_IMETHOD InternalAndReservedMethod2IDisplay(void); \
  NS_IMETHOD InternalAndReservedMethod3IDisplay(void); \
  NS_IMETHOD InternalAndReservedMethod4IDisplay(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IDISPLAY(_to) \
  NS_IMETHOD GetInternalAndReservedAttribute1IDisplay(PRUint32 *aInternalAndReservedAttribute1IDisplay) { return _to GetInternalAndReservedAttribute1IDisplay(aInternalAndReservedAttribute1IDisplay); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IDisplay(PRUint32 *aInternalAndReservedAttribute2IDisplay) { return _to GetInternalAndReservedAttribute2IDisplay(aInternalAndReservedAttribute2IDisplay); } \
  NS_IMETHOD GetScreenResolution(PRUint32 screenId, PRUint32 *width, PRUint32 *height, PRUint32 *bitsPerPixel, PRInt32 *xOrigin, PRInt32 *yOrigin, PRUint32 *guestMonitorStatus) { return _to GetScreenResolution(screenId, width, height, bitsPerPixel, xOrigin, yOrigin, guestMonitorStatus); } \
  NS_IMETHOD AttachFramebuffer(PRUint32 screenId, IFramebuffer *framebuffer, PRUnichar **id) { return _to AttachFramebuffer(screenId, framebuffer, id); } \
  NS_IMETHOD DetachFramebuffer(PRUint32 screenId, const PRUnichar *id) { return _to DetachFramebuffer(screenId, id); } \
  NS_IMETHOD QueryFramebuffer(PRUint32 screenId, IFramebuffer **framebuffer) { return _to QueryFramebuffer(screenId, framebuffer); } \
  NS_IMETHOD SetVideoModeHint(PRUint32 display, PRBool enabled, PRBool changeOrigin, PRInt32 originX, PRInt32 originY, PRUint32 width, PRUint32 height, PRUint32 bitsPerPixel) { return _to SetVideoModeHint(display, enabled, changeOrigin, originX, originY, width, height, bitsPerPixel); } \
  NS_IMETHOD SetSeamlessMode(PRBool enabled) { return _to SetSeamlessMode(enabled); } \
  NS_IMETHOD TakeScreenShot(PRUint32 screenId, PRUint8 * address, PRUint32 width, PRUint32 height, PRUint32 bitmapFormat) { return _to TakeScreenShot(screenId, address, width, height, bitmapFormat); } \
  NS_IMETHOD TakeScreenShotToArray(PRUint32 screenId, PRUint32 width, PRUint32 height, PRUint32 bitmapFormat, PRUint32 *screenDataSize, PRUint8 **screenData) { return _to TakeScreenShotToArray(screenId, width, height, bitmapFormat, screenDataSize, screenData); } \
  NS_IMETHOD DrawToScreen(PRUint32 screenId, PRUint8 * address, PRUint32 x, PRUint32 y, PRUint32 width, PRUint32 height) { return _to DrawToScreen(screenId, address, x, y, width, height); } \
  NS_IMETHOD InvalidateAndUpdate(void) { return _to InvalidateAndUpdate(); } \
  NS_IMETHOD InvalidateAndUpdateScreen(PRUint32 screenId) { return _to InvalidateAndUpdateScreen(screenId); } \
  NS_IMETHOD CompleteVHWACommand(PRUint8 * command) { return _to CompleteVHWACommand(command); } \
  NS_IMETHOD ViewportChanged(PRUint32 screenId, PRUint32 x, PRUint32 y, PRUint32 width, PRUint32 height) { return _to ViewportChanged(screenId, x, y, width, height); } \
  NS_IMETHOD QuerySourceBitmap(PRUint32 screenId, IDisplaySourceBitmap **displaySourceBitmap) { return _to QuerySourceBitmap(screenId, displaySourceBitmap); } \
  NS_IMETHOD NotifyScaleFactorChange(PRUint32 screenId, PRUint32 u32ScaleFactorWMultiplied, PRUint32 u32ScaleFactorHMultiplied) { return _to NotifyScaleFactorChange(screenId, u32ScaleFactorWMultiplied, u32ScaleFactorHMultiplied); } \
  NS_IMETHOD NotifyHiDPIOutputPolicyChange(PRBool fUnscaledHiDPI) { return _to NotifyHiDPIOutputPolicyChange(fUnscaledHiDPI); } \
  NS_IMETHOD InternalAndReservedMethod1IDisplay(void) { return _to InternalAndReservedMethod1IDisplay(); } \
  NS_IMETHOD InternalAndReservedMethod2IDisplay(void) { return _to InternalAndReservedMethod2IDisplay(); } \
  NS_IMETHOD InternalAndReservedMethod3IDisplay(void) { return _to InternalAndReservedMethod3IDisplay(); } \
  NS_IMETHOD InternalAndReservedMethod4IDisplay(void) { return _to InternalAndReservedMethod4IDisplay(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IDISPLAY(_to) \
  NS_IMETHOD GetInternalAndReservedAttribute1IDisplay(PRUint32 *aInternalAndReservedAttribute1IDisplay) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IDisplay(aInternalAndReservedAttribute1IDisplay); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IDisplay(PRUint32 *aInternalAndReservedAttribute2IDisplay) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IDisplay(aInternalAndReservedAttribute2IDisplay); } \
  NS_IMETHOD GetScreenResolution(PRUint32 screenId, PRUint32 *width, PRUint32 *height, PRUint32 *bitsPerPixel, PRInt32 *xOrigin, PRInt32 *yOrigin, PRUint32 *guestMonitorStatus) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetScreenResolution(screenId, width, height, bitsPerPixel, xOrigin, yOrigin, guestMonitorStatus); } \
  NS_IMETHOD AttachFramebuffer(PRUint32 screenId, IFramebuffer *framebuffer, PRUnichar **id) { return !_to ? NS_ERROR_NULL_POINTER : _to->AttachFramebuffer(screenId, framebuffer, id); } \
  NS_IMETHOD DetachFramebuffer(PRUint32 screenId, const PRUnichar *id) { return !_to ? NS_ERROR_NULL_POINTER : _to->DetachFramebuffer(screenId, id); } \
  NS_IMETHOD QueryFramebuffer(PRUint32 screenId, IFramebuffer **framebuffer) { return !_to ? NS_ERROR_NULL_POINTER : _to->QueryFramebuffer(screenId, framebuffer); } \
  NS_IMETHOD SetVideoModeHint(PRUint32 display, PRBool enabled, PRBool changeOrigin, PRInt32 originX, PRInt32 originY, PRUint32 width, PRUint32 height, PRUint32 bitsPerPixel) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetVideoModeHint(display, enabled, changeOrigin, originX, originY, width, height, bitsPerPixel); } \
  NS_IMETHOD SetSeamlessMode(PRBool enabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSeamlessMode(enabled); } \
  NS_IMETHOD TakeScreenShot(PRUint32 screenId, PRUint8 * address, PRUint32 width, PRUint32 height, PRUint32 bitmapFormat) { return !_to ? NS_ERROR_NULL_POINTER : _to->TakeScreenShot(screenId, address, width, height, bitmapFormat); } \
  NS_IMETHOD TakeScreenShotToArray(PRUint32 screenId, PRUint32 width, PRUint32 height, PRUint32 bitmapFormat, PRUint32 *screenDataSize, PRUint8 **screenData) { return !_to ? NS_ERROR_NULL_POINTER : _to->TakeScreenShotToArray(screenId, width, height, bitmapFormat, screenDataSize, screenData); } \
  NS_IMETHOD DrawToScreen(PRUint32 screenId, PRUint8 * address, PRUint32 x, PRUint32 y, PRUint32 width, PRUint32 height) { return !_to ? NS_ERROR_NULL_POINTER : _to->DrawToScreen(screenId, address, x, y, width, height); } \
  NS_IMETHOD InvalidateAndUpdate(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InvalidateAndUpdate(); } \
  NS_IMETHOD InvalidateAndUpdateScreen(PRUint32 screenId) { return !_to ? NS_ERROR_NULL_POINTER : _to->InvalidateAndUpdateScreen(screenId); } \
  NS_IMETHOD CompleteVHWACommand(PRUint8 * command) { return !_to ? NS_ERROR_NULL_POINTER : _to->CompleteVHWACommand(command); } \
  NS_IMETHOD ViewportChanged(PRUint32 screenId, PRUint32 x, PRUint32 y, PRUint32 width, PRUint32 height) { return !_to ? NS_ERROR_NULL_POINTER : _to->ViewportChanged(screenId, x, y, width, height); } \
  NS_IMETHOD QuerySourceBitmap(PRUint32 screenId, IDisplaySourceBitmap **displaySourceBitmap) { return !_to ? NS_ERROR_NULL_POINTER : _to->QuerySourceBitmap(screenId, displaySourceBitmap); } \
  NS_IMETHOD NotifyScaleFactorChange(PRUint32 screenId, PRUint32 u32ScaleFactorWMultiplied, PRUint32 u32ScaleFactorHMultiplied) { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyScaleFactorChange(screenId, u32ScaleFactorWMultiplied, u32ScaleFactorHMultiplied); } \
  NS_IMETHOD NotifyHiDPIOutputPolicyChange(PRBool fUnscaledHiDPI) { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyHiDPIOutputPolicyChange(fUnscaledHiDPI); } \
  NS_IMETHOD InternalAndReservedMethod1IDisplay(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IDisplay(); } \
  NS_IMETHOD InternalAndReservedMethod2IDisplay(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IDisplay(); } \
  NS_IMETHOD InternalAndReservedMethod3IDisplay(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IDisplay(); } \
  NS_IMETHOD InternalAndReservedMethod4IDisplay(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IDisplay(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IDisplay
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IDISPLAY

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IDisplay)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IDisplay; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IDisplay(PRUint32 *aInternalAndReservedAttribute1IDisplay)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IDisplay; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IDisplay(PRUint32 *aInternalAndReservedAttribute2IDisplay)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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 PRUint32 guestMonitorStatus); */
NS_IMETHODIMP _MYCLASS_::GetScreenResolution(PRUint32 screenId, PRUint32 *width, PRUint32 *height, PRUint32 *bitsPerPixel, PRInt32 *xOrigin, PRInt32 *yOrigin, PRUint32 *guestMonitorStatus)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void attachFramebuffer (in unsigned long screenId, in IFramebuffer framebuffer, [retval] out wstring id); */
NS_IMETHODIMP _MYCLASS_::AttachFramebuffer(PRUint32 screenId, IFramebuffer *framebuffer, PRUnichar **id)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void detachFramebuffer (in unsigned long screenId, in wstring id); */
NS_IMETHODIMP _MYCLASS_::DetachFramebuffer(PRUint32 screenId, const PRUnichar *id)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void queryFramebuffer (in unsigned long screenId, [retval] out IFramebuffer framebuffer); */
NS_IMETHODIMP _MYCLASS_::QueryFramebuffer(PRUint32 screenId, IFramebuffer **framebuffer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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); */
NS_IMETHODIMP _MYCLASS_::SetVideoModeHint(PRUint32 display, PRBool enabled, PRBool changeOrigin, PRInt32 originX, PRInt32 originY, PRUint32 width, PRUint32 height, PRUint32 bitsPerPixel)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setSeamlessMode (in boolean enabled); */
NS_IMETHODIMP _MYCLASS_::SetSeamlessMode(PRBool enabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void takeScreenShot (in unsigned long screenId, in octetPtr address, in unsigned long width, in unsigned long height, in PRUint32 bitmapFormat); */
NS_IMETHODIMP _MYCLASS_::TakeScreenShot(PRUint32 screenId, PRUint8 * address, PRUint32 width, PRUint32 height, PRUint32 bitmapFormat)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void takeScreenShotToArray (in unsigned long screenId, in unsigned long width, in unsigned long height, in PRUint32 bitmapFormat, out unsigned long screenDataSize, [array, size_is (screenDataSize), retval] out octet screenData); */
NS_IMETHODIMP _MYCLASS_::TakeScreenShotToArray(PRUint32 screenId, PRUint32 width, PRUint32 height, PRUint32 bitmapFormat, PRUint32 *screenDataSize, PRUint8 **screenData)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [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); */
NS_IMETHODIMP _MYCLASS_::DrawToScreen(PRUint32 screenId, PRUint8 * address, PRUint32 x, PRUint32 y, PRUint32 width, PRUint32 height)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void invalidateAndUpdate (); */
NS_IMETHODIMP _MYCLASS_::InvalidateAndUpdate()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void invalidateAndUpdateScreen (in unsigned long screenId); */
NS_IMETHODIMP _MYCLASS_::InvalidateAndUpdateScreen(PRUint32 screenId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void completeVHWACommand (in octetPtr command); */
NS_IMETHODIMP _MYCLASS_::CompleteVHWACommand(PRUint8 * command)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void viewportChanged (in unsigned long screenId, in unsigned long x, in unsigned long y, in unsigned long width, in unsigned long height); */
NS_IMETHODIMP _MYCLASS_::ViewportChanged(PRUint32 screenId, PRUint32 x, PRUint32 y, PRUint32 width, PRUint32 height)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void querySourceBitmap (in unsigned long screenId, out IDisplaySourceBitmap displaySourceBitmap); */
NS_IMETHODIMP _MYCLASS_::QuerySourceBitmap(PRUint32 screenId, IDisplaySourceBitmap **displaySourceBitmap)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void notifyScaleFactorChange (in unsigned long screenId, in unsigned long u32ScaleFactorWMultiplied, in unsigned long u32ScaleFactorHMultiplied); */
NS_IMETHODIMP _MYCLASS_::NotifyScaleFactorChange(PRUint32 screenId, PRUint32 u32ScaleFactorWMultiplied, PRUint32 u32ScaleFactorHMultiplied)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void notifyHiDPIOutputPolicyChange (in boolean fUnscaledHiDPI); */
NS_IMETHODIMP _MYCLASS_::NotifyHiDPIOutputPolicyChange(PRBool fUnscaledHiDPI)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1IDisplay (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1IDisplay()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod2IDisplay (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod2IDisplay()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod3IDisplay (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod3IDisplay()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod4IDisplay (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod4IDisplay()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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) { return smth SetVideoModeHint (aDisplay, aEnabled, aChangeOrigin, aOriginX, aOriginY, aWidth, aHeight, aBitsPerPixel); }
#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_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_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;

/* starting interface:    INetworkAdapter */
#define INETWORKADAPTER_IID_STR "e925c2aa-4fe4-aaf6-91c5-e9b8ea4151ee"

#define INETWORKADAPTER_IID \
  {0xe925c2aa, 0x4fe4, 0xaaf6, \
    { 0x91, 0xc5, 0xe9, 0xb8, 0xea, 0x41, 0x51, 0xee }}

class NS_NO_VTABLE INetworkAdapter : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(INETWORKADAPTER_IID)

  /* attribute PRUint32 adapterType; */
  NS_IMETHOD GetAdapterType(PRUint32 *aAdapterType) = 0;
  NS_IMETHOD SetAdapterType(PRUint32 aAdapterType) = 0;

  /* readonly attribute unsigned long slot; */
  NS_IMETHOD GetSlot(PRUint32 *aSlot) = 0;

  /* attribute boolean enabled; */
  NS_IMETHOD GetEnabled(PRBool *aEnabled) = 0;
  NS_IMETHOD SetEnabled(PRBool aEnabled) = 0;

  /* attribute wstring MACAddress; */
  NS_IMETHOD GetMACAddress(PRUnichar * *aMACAddress) = 0;
  NS_IMETHOD SetMACAddress(const PRUnichar * aMACAddress) = 0;

  /* attribute PRUint32 attachmentType; */
  NS_IMETHOD GetAttachmentType(PRUint32 *aAttachmentType) = 0;
  NS_IMETHOD SetAttachmentType(PRUint32 aAttachmentType) = 0;

  /* attribute wstring bridgedInterface; */
  NS_IMETHOD GetBridgedInterface(PRUnichar * *aBridgedInterface) = 0;
  NS_IMETHOD SetBridgedInterface(const PRUnichar * aBridgedInterface) = 0;

  /* attribute wstring hostOnlyInterface; */
  NS_IMETHOD GetHostOnlyInterface(PRUnichar * *aHostOnlyInterface) = 0;
  NS_IMETHOD SetHostOnlyInterface(const PRUnichar * aHostOnlyInterface) = 0;

  /* attribute wstring internalNetwork; */
  NS_IMETHOD GetInternalNetwork(PRUnichar * *aInternalNetwork) = 0;
  NS_IMETHOD SetInternalNetwork(const PRUnichar * aInternalNetwork) = 0;

  /* attribute wstring NATNetwork; */
  NS_IMETHOD GetNATNetwork(PRUnichar * *aNATNetwork) = 0;
  NS_IMETHOD SetNATNetwork(const PRUnichar * aNATNetwork) = 0;

  /* attribute wstring genericDriver; */
  NS_IMETHOD GetGenericDriver(PRUnichar * *aGenericDriver) = 0;
  NS_IMETHOD SetGenericDriver(const PRUnichar * aGenericDriver) = 0;

  /* attribute boolean cableConnected; */
  NS_IMETHOD GetCableConnected(PRBool *aCableConnected) = 0;
  NS_IMETHOD SetCableConnected(PRBool aCableConnected) = 0;

  /* attribute unsigned long lineSpeed; */
  NS_IMETHOD GetLineSpeed(PRUint32 *aLineSpeed) = 0;
  NS_IMETHOD SetLineSpeed(PRUint32 aLineSpeed) = 0;

  /* attribute PRUint32 promiscModePolicy; */
  NS_IMETHOD GetPromiscModePolicy(PRUint32 *aPromiscModePolicy) = 0;
  NS_IMETHOD SetPromiscModePolicy(PRUint32 aPromiscModePolicy) = 0;

  /* attribute boolean traceEnabled; */
  NS_IMETHOD GetTraceEnabled(PRBool *aTraceEnabled) = 0;
  NS_IMETHOD SetTraceEnabled(PRBool aTraceEnabled) = 0;

  /* attribute wstring traceFile; */
  NS_IMETHOD GetTraceFile(PRUnichar * *aTraceFile) = 0;
  NS_IMETHOD SetTraceFile(const PRUnichar * aTraceFile) = 0;

  /* readonly attribute INATEngine NATEngine; */
  NS_IMETHOD GetNATEngine(INATEngine * *aNATEngine) = 0;

  /* attribute unsigned long bootPriority; */
  NS_IMETHOD GetBootPriority(PRUint32 *aBootPriority) = 0;
  NS_IMETHOD SetBootPriority(PRUint32 aBootPriority) = 0;

  /* attribute IBandwidthGroup bandwidthGroup; */
  NS_IMETHOD GetBandwidthGroup(IBandwidthGroup * *aBandwidthGroup) = 0;
  NS_IMETHOD SetBandwidthGroup(IBandwidthGroup * aBandwidthGroup) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1INetworkAdapter; */
  NS_IMETHOD GetInternalAndReservedAttribute1INetworkAdapter(PRUint32 *aInternalAndReservedAttribute1INetworkAdapter) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2INetworkAdapter; */
  NS_IMETHOD GetInternalAndReservedAttribute2INetworkAdapter(PRUint32 *aInternalAndReservedAttribute2INetworkAdapter) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3INetworkAdapter; */
  NS_IMETHOD GetInternalAndReservedAttribute3INetworkAdapter(PRUint32 *aInternalAndReservedAttribute3INetworkAdapter) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4INetworkAdapter; */
  NS_IMETHOD GetInternalAndReservedAttribute4INetworkAdapter(PRUint32 *aInternalAndReservedAttribute4INetworkAdapter) = 0;

  /* void getProperty (in wstring key, [retval] out wstring value); */
  NS_IMETHOD GetProperty(const PRUnichar *key, PRUnichar **value) = 0;

  /* void setProperty (in wstring key, in wstring value); */
  NS_IMETHOD SetProperty(const PRUnichar *key, const PRUnichar *value) = 0;

  /* 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); */
  NS_IMETHOD GetProperties(const PRUnichar *names, PRUint32 *returnNamesSize, PRUnichar ***returnNames, PRUint32 *returnValuesSize, PRUnichar ***returnValues) = 0;

  /* void InternalAndReservedMethod1INetworkAdapter (); */
  NS_IMETHOD InternalAndReservedMethod1INetworkAdapter(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_INETWORKADAPTER \
  NS_IMETHOD GetAdapterType(PRUint32 *aAdapterType); \
  NS_IMETHOD SetAdapterType(PRUint32 aAdapterType); \
  NS_IMETHOD GetSlot(PRUint32 *aSlot); \
  NS_IMETHOD GetEnabled(PRBool *aEnabled); \
  NS_IMETHOD SetEnabled(PRBool aEnabled); \
  NS_IMETHOD GetMACAddress(PRUnichar * *aMACAddress); \
  NS_IMETHOD SetMACAddress(const PRUnichar * aMACAddress); \
  NS_IMETHOD GetAttachmentType(PRUint32 *aAttachmentType); \
  NS_IMETHOD SetAttachmentType(PRUint32 aAttachmentType); \
  NS_IMETHOD GetBridgedInterface(PRUnichar * *aBridgedInterface); \
  NS_IMETHOD SetBridgedInterface(const PRUnichar * aBridgedInterface); \
  NS_IMETHOD GetHostOnlyInterface(PRUnichar * *aHostOnlyInterface); \
  NS_IMETHOD SetHostOnlyInterface(const PRUnichar * aHostOnlyInterface); \
  NS_IMETHOD GetInternalNetwork(PRUnichar * *aInternalNetwork); \
  NS_IMETHOD SetInternalNetwork(const PRUnichar * aInternalNetwork); \
  NS_IMETHOD GetNATNetwork(PRUnichar * *aNATNetwork); \
  NS_IMETHOD SetNATNetwork(const PRUnichar * aNATNetwork); \
  NS_IMETHOD GetGenericDriver(PRUnichar * *aGenericDriver); \
  NS_IMETHOD SetGenericDriver(const PRUnichar * aGenericDriver); \
  NS_IMETHOD GetCableConnected(PRBool *aCableConnected); \
  NS_IMETHOD SetCableConnected(PRBool aCableConnected); \
  NS_IMETHOD GetLineSpeed(PRUint32 *aLineSpeed); \
  NS_IMETHOD SetLineSpeed(PRUint32 aLineSpeed); \
  NS_IMETHOD GetPromiscModePolicy(PRUint32 *aPromiscModePolicy); \
  NS_IMETHOD SetPromiscModePolicy(PRUint32 aPromiscModePolicy); \
  NS_IMETHOD GetTraceEnabled(PRBool *aTraceEnabled); \
  NS_IMETHOD SetTraceEnabled(PRBool aTraceEnabled); \
  NS_IMETHOD GetTraceFile(PRUnichar * *aTraceFile); \
  NS_IMETHOD SetTraceFile(const PRUnichar * aTraceFile); \
  NS_IMETHOD GetNATEngine(INATEngine * *aNATEngine); \
  NS_IMETHOD GetBootPriority(PRUint32 *aBootPriority); \
  NS_IMETHOD SetBootPriority(PRUint32 aBootPriority); \
  NS_IMETHOD GetBandwidthGroup(IBandwidthGroup * *aBandwidthGroup); \
  NS_IMETHOD SetBandwidthGroup(IBandwidthGroup * aBandwidthGroup); \
  NS_IMETHOD GetInternalAndReservedAttribute1INetworkAdapter(PRUint32 *aInternalAndReservedAttribute1INetworkAdapter); \
  NS_IMETHOD GetInternalAndReservedAttribute2INetworkAdapter(PRUint32 *aInternalAndReservedAttribute2INetworkAdapter); \
  NS_IMETHOD GetInternalAndReservedAttribute3INetworkAdapter(PRUint32 *aInternalAndReservedAttribute3INetworkAdapter); \
  NS_IMETHOD GetInternalAndReservedAttribute4INetworkAdapter(PRUint32 *aInternalAndReservedAttribute4INetworkAdapter); \
  NS_IMETHOD GetProperty(const PRUnichar *key, PRUnichar **value); \
  NS_IMETHOD SetProperty(const PRUnichar *key, const PRUnichar *value); \
  NS_IMETHOD GetProperties(const PRUnichar *names, PRUint32 *returnNamesSize, PRUnichar ***returnNames, PRUint32 *returnValuesSize, PRUnichar ***returnValues); \
  NS_IMETHOD InternalAndReservedMethod1INetworkAdapter(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_INETWORKADAPTER(_to) \
  NS_IMETHOD GetAdapterType(PRUint32 *aAdapterType) { return _to GetAdapterType(aAdapterType); } \
  NS_IMETHOD SetAdapterType(PRUint32 aAdapterType) { return _to SetAdapterType(aAdapterType); } \
  NS_IMETHOD GetSlot(PRUint32 *aSlot) { return _to GetSlot(aSlot); } \
  NS_IMETHOD GetEnabled(PRBool *aEnabled) { return _to GetEnabled(aEnabled); } \
  NS_IMETHOD SetEnabled(PRBool aEnabled) { return _to SetEnabled(aEnabled); } \
  NS_IMETHOD GetMACAddress(PRUnichar * *aMACAddress) { return _to GetMACAddress(aMACAddress); } \
  NS_IMETHOD SetMACAddress(const PRUnichar * aMACAddress) { return _to SetMACAddress(aMACAddress); } \
  NS_IMETHOD GetAttachmentType(PRUint32 *aAttachmentType) { return _to GetAttachmentType(aAttachmentType); } \
  NS_IMETHOD SetAttachmentType(PRUint32 aAttachmentType) { return _to SetAttachmentType(aAttachmentType); } \
  NS_IMETHOD GetBridgedInterface(PRUnichar * *aBridgedInterface) { return _to GetBridgedInterface(aBridgedInterface); } \
  NS_IMETHOD SetBridgedInterface(const PRUnichar * aBridgedInterface) { return _to SetBridgedInterface(aBridgedInterface); } \
  NS_IMETHOD GetHostOnlyInterface(PRUnichar * *aHostOnlyInterface) { return _to GetHostOnlyInterface(aHostOnlyInterface); } \
  NS_IMETHOD SetHostOnlyInterface(const PRUnichar * aHostOnlyInterface) { return _to SetHostOnlyInterface(aHostOnlyInterface); } \
  NS_IMETHOD GetInternalNetwork(PRUnichar * *aInternalNetwork) { return _to GetInternalNetwork(aInternalNetwork); } \
  NS_IMETHOD SetInternalNetwork(const PRUnichar * aInternalNetwork) { return _to SetInternalNetwork(aInternalNetwork); } \
  NS_IMETHOD GetNATNetwork(PRUnichar * *aNATNetwork) { return _to GetNATNetwork(aNATNetwork); } \
  NS_IMETHOD SetNATNetwork(const PRUnichar * aNATNetwork) { return _to SetNATNetwork(aNATNetwork); } \
  NS_IMETHOD GetGenericDriver(PRUnichar * *aGenericDriver) { return _to GetGenericDriver(aGenericDriver); } \
  NS_IMETHOD SetGenericDriver(const PRUnichar * aGenericDriver) { return _to SetGenericDriver(aGenericDriver); } \
  NS_IMETHOD GetCableConnected(PRBool *aCableConnected) { return _to GetCableConnected(aCableConnected); } \
  NS_IMETHOD SetCableConnected(PRBool aCableConnected) { return _to SetCableConnected(aCableConnected); } \
  NS_IMETHOD GetLineSpeed(PRUint32 *aLineSpeed) { return _to GetLineSpeed(aLineSpeed); } \
  NS_IMETHOD SetLineSpeed(PRUint32 aLineSpeed) { return _to SetLineSpeed(aLineSpeed); } \
  NS_IMETHOD GetPromiscModePolicy(PRUint32 *aPromiscModePolicy) { return _to GetPromiscModePolicy(aPromiscModePolicy); } \
  NS_IMETHOD SetPromiscModePolicy(PRUint32 aPromiscModePolicy) { return _to SetPromiscModePolicy(aPromiscModePolicy); } \
  NS_IMETHOD GetTraceEnabled(PRBool *aTraceEnabled) { return _to GetTraceEnabled(aTraceEnabled); } \
  NS_IMETHOD SetTraceEnabled(PRBool aTraceEnabled) { return _to SetTraceEnabled(aTraceEnabled); } \
  NS_IMETHOD GetTraceFile(PRUnichar * *aTraceFile) { return _to GetTraceFile(aTraceFile); } \
  NS_IMETHOD SetTraceFile(const PRUnichar * aTraceFile) { return _to SetTraceFile(aTraceFile); } \
  NS_IMETHOD GetNATEngine(INATEngine * *aNATEngine) { return _to GetNATEngine(aNATEngine); } \
  NS_IMETHOD GetBootPriority(PRUint32 *aBootPriority) { return _to GetBootPriority(aBootPriority); } \
  NS_IMETHOD SetBootPriority(PRUint32 aBootPriority) { return _to SetBootPriority(aBootPriority); } \
  NS_IMETHOD GetBandwidthGroup(IBandwidthGroup * *aBandwidthGroup) { return _to GetBandwidthGroup(aBandwidthGroup); } \
  NS_IMETHOD SetBandwidthGroup(IBandwidthGroup * aBandwidthGroup) { return _to SetBandwidthGroup(aBandwidthGroup); } \
  NS_IMETHOD GetInternalAndReservedAttribute1INetworkAdapter(PRUint32 *aInternalAndReservedAttribute1INetworkAdapter) { return _to GetInternalAndReservedAttribute1INetworkAdapter(aInternalAndReservedAttribute1INetworkAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute2INetworkAdapter(PRUint32 *aInternalAndReservedAttribute2INetworkAdapter) { return _to GetInternalAndReservedAttribute2INetworkAdapter(aInternalAndReservedAttribute2INetworkAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute3INetworkAdapter(PRUint32 *aInternalAndReservedAttribute3INetworkAdapter) { return _to GetInternalAndReservedAttribute3INetworkAdapter(aInternalAndReservedAttribute3INetworkAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute4INetworkAdapter(PRUint32 *aInternalAndReservedAttribute4INetworkAdapter) { return _to GetInternalAndReservedAttribute4INetworkAdapter(aInternalAndReservedAttribute4INetworkAdapter); } \
  NS_IMETHOD GetProperty(const PRUnichar *key, PRUnichar **value) { return _to GetProperty(key, value); } \
  NS_IMETHOD SetProperty(const PRUnichar *key, const PRUnichar *value) { return _to SetProperty(key, value); } \
  NS_IMETHOD GetProperties(const PRUnichar *names, PRUint32 *returnNamesSize, PRUnichar ***returnNames, PRUint32 *returnValuesSize, PRUnichar ***returnValues) { return _to GetProperties(names, returnNamesSize, returnNames, returnValuesSize, returnValues); } \
  NS_IMETHOD InternalAndReservedMethod1INetworkAdapter(void) { return _to InternalAndReservedMethod1INetworkAdapter(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_INETWORKADAPTER(_to) \
  NS_IMETHOD GetAdapterType(PRUint32 *aAdapterType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAdapterType(aAdapterType); } \
  NS_IMETHOD SetAdapterType(PRUint32 aAdapterType) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAdapterType(aAdapterType); } \
  NS_IMETHOD GetSlot(PRUint32 *aSlot) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSlot(aSlot); } \
  NS_IMETHOD GetEnabled(PRBool *aEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEnabled(aEnabled); } \
  NS_IMETHOD SetEnabled(PRBool aEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetEnabled(aEnabled); } \
  NS_IMETHOD GetMACAddress(PRUnichar * *aMACAddress) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMACAddress(aMACAddress); } \
  NS_IMETHOD SetMACAddress(const PRUnichar * aMACAddress) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMACAddress(aMACAddress); } \
  NS_IMETHOD GetAttachmentType(PRUint32 *aAttachmentType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAttachmentType(aAttachmentType); } \
  NS_IMETHOD SetAttachmentType(PRUint32 aAttachmentType) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAttachmentType(aAttachmentType); } \
  NS_IMETHOD GetBridgedInterface(PRUnichar * *aBridgedInterface) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBridgedInterface(aBridgedInterface); } \
  NS_IMETHOD SetBridgedInterface(const PRUnichar * aBridgedInterface) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetBridgedInterface(aBridgedInterface); } \
  NS_IMETHOD GetHostOnlyInterface(PRUnichar * *aHostOnlyInterface) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHostOnlyInterface(aHostOnlyInterface); } \
  NS_IMETHOD SetHostOnlyInterface(const PRUnichar * aHostOnlyInterface) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetHostOnlyInterface(aHostOnlyInterface); } \
  NS_IMETHOD GetInternalNetwork(PRUnichar * *aInternalNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalNetwork(aInternalNetwork); } \
  NS_IMETHOD SetInternalNetwork(const PRUnichar * aInternalNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetInternalNetwork(aInternalNetwork); } \
  NS_IMETHOD GetNATNetwork(PRUnichar * *aNATNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNATNetwork(aNATNetwork); } \
  NS_IMETHOD SetNATNetwork(const PRUnichar * aNATNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetNATNetwork(aNATNetwork); } \
  NS_IMETHOD GetGenericDriver(PRUnichar * *aGenericDriver) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGenericDriver(aGenericDriver); } \
  NS_IMETHOD SetGenericDriver(const PRUnichar * aGenericDriver) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetGenericDriver(aGenericDriver); } \
  NS_IMETHOD GetCableConnected(PRBool *aCableConnected) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCableConnected(aCableConnected); } \
  NS_IMETHOD SetCableConnected(PRBool aCableConnected) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCableConnected(aCableConnected); } \
  NS_IMETHOD GetLineSpeed(PRUint32 *aLineSpeed) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLineSpeed(aLineSpeed); } \
  NS_IMETHOD SetLineSpeed(PRUint32 aLineSpeed) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLineSpeed(aLineSpeed); } \
  NS_IMETHOD GetPromiscModePolicy(PRUint32 *aPromiscModePolicy) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPromiscModePolicy(aPromiscModePolicy); } \
  NS_IMETHOD SetPromiscModePolicy(PRUint32 aPromiscModePolicy) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPromiscModePolicy(aPromiscModePolicy); } \
  NS_IMETHOD GetTraceEnabled(PRBool *aTraceEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTraceEnabled(aTraceEnabled); } \
  NS_IMETHOD SetTraceEnabled(PRBool aTraceEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetTraceEnabled(aTraceEnabled); } \
  NS_IMETHOD GetTraceFile(PRUnichar * *aTraceFile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTraceFile(aTraceFile); } \
  NS_IMETHOD SetTraceFile(const PRUnichar * aTraceFile) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetTraceFile(aTraceFile); } \
  NS_IMETHOD GetNATEngine(INATEngine * *aNATEngine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNATEngine(aNATEngine); } \
  NS_IMETHOD GetBootPriority(PRUint32 *aBootPriority) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBootPriority(aBootPriority); } \
  NS_IMETHOD SetBootPriority(PRUint32 aBootPriority) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetBootPriority(aBootPriority); } \
  NS_IMETHOD GetBandwidthGroup(IBandwidthGroup * *aBandwidthGroup) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBandwidthGroup(aBandwidthGroup); } \
  NS_IMETHOD SetBandwidthGroup(IBandwidthGroup * aBandwidthGroup) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetBandwidthGroup(aBandwidthGroup); } \
  NS_IMETHOD GetInternalAndReservedAttribute1INetworkAdapter(PRUint32 *aInternalAndReservedAttribute1INetworkAdapter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1INetworkAdapter(aInternalAndReservedAttribute1INetworkAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute2INetworkAdapter(PRUint32 *aInternalAndReservedAttribute2INetworkAdapter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2INetworkAdapter(aInternalAndReservedAttribute2INetworkAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute3INetworkAdapter(PRUint32 *aInternalAndReservedAttribute3INetworkAdapter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3INetworkAdapter(aInternalAndReservedAttribute3INetworkAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute4INetworkAdapter(PRUint32 *aInternalAndReservedAttribute4INetworkAdapter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4INetworkAdapter(aInternalAndReservedAttribute4INetworkAdapter); } \
  NS_IMETHOD GetProperty(const PRUnichar *key, PRUnichar **value) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProperty(key, value); } \
  NS_IMETHOD SetProperty(const PRUnichar *key, const PRUnichar *value) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetProperty(key, value); } \
  NS_IMETHOD GetProperties(const PRUnichar *names, PRUint32 *returnNamesSize, PRUnichar ***returnNames, PRUint32 *returnValuesSize, PRUnichar ***returnValues) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProperties(names, returnNamesSize, returnNames, returnValuesSize, returnValues); } \
  NS_IMETHOD InternalAndReservedMethod1INetworkAdapter(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1INetworkAdapter(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public INetworkAdapter
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_INETWORKADAPTER

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, INetworkAdapter)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* attribute PRUint32 adapterType; */
NS_IMETHODIMP _MYCLASS_::GetAdapterType(PRUint32 *aAdapterType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetAdapterType(PRUint32 aAdapterType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long slot; */
NS_IMETHODIMP _MYCLASS_::GetSlot(PRUint32 *aSlot)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean enabled; */
NS_IMETHODIMP _MYCLASS_::GetEnabled(PRBool *aEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetEnabled(PRBool aEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring MACAddress; */
NS_IMETHODIMP _MYCLASS_::GetMACAddress(PRUnichar * *aMACAddress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetMACAddress(const PRUnichar * aMACAddress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute PRUint32 attachmentType; */
NS_IMETHODIMP _MYCLASS_::GetAttachmentType(PRUint32 *aAttachmentType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetAttachmentType(PRUint32 aAttachmentType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring bridgedInterface; */
NS_IMETHODIMP _MYCLASS_::GetBridgedInterface(PRUnichar * *aBridgedInterface)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetBridgedInterface(const PRUnichar * aBridgedInterface)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring hostOnlyInterface; */
NS_IMETHODIMP _MYCLASS_::GetHostOnlyInterface(PRUnichar * *aHostOnlyInterface)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetHostOnlyInterface(const PRUnichar * aHostOnlyInterface)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring internalNetwork; */
NS_IMETHODIMP _MYCLASS_::GetInternalNetwork(PRUnichar * *aInternalNetwork)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetInternalNetwork(const PRUnichar * aInternalNetwork)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring NATNetwork; */
NS_IMETHODIMP _MYCLASS_::GetNATNetwork(PRUnichar * *aNATNetwork)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetNATNetwork(const PRUnichar * aNATNetwork)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring genericDriver; */
NS_IMETHODIMP _MYCLASS_::GetGenericDriver(PRUnichar * *aGenericDriver)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetGenericDriver(const PRUnichar * aGenericDriver)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean cableConnected; */
NS_IMETHODIMP _MYCLASS_::GetCableConnected(PRBool *aCableConnected)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetCableConnected(PRBool aCableConnected)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long lineSpeed; */
NS_IMETHODIMP _MYCLASS_::GetLineSpeed(PRUint32 *aLineSpeed)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetLineSpeed(PRUint32 aLineSpeed)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute PRUint32 promiscModePolicy; */
NS_IMETHODIMP _MYCLASS_::GetPromiscModePolicy(PRUint32 *aPromiscModePolicy)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetPromiscModePolicy(PRUint32 aPromiscModePolicy)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean traceEnabled; */
NS_IMETHODIMP _MYCLASS_::GetTraceEnabled(PRBool *aTraceEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetTraceEnabled(PRBool aTraceEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring traceFile; */
NS_IMETHODIMP _MYCLASS_::GetTraceFile(PRUnichar * *aTraceFile)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetTraceFile(const PRUnichar * aTraceFile)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute INATEngine NATEngine; */
NS_IMETHODIMP _MYCLASS_::GetNATEngine(INATEngine * *aNATEngine)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long bootPriority; */
NS_IMETHODIMP _MYCLASS_::GetBootPriority(PRUint32 *aBootPriority)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetBootPriority(PRUint32 aBootPriority)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute IBandwidthGroup bandwidthGroup; */
NS_IMETHODIMP _MYCLASS_::GetBandwidthGroup(IBandwidthGroup * *aBandwidthGroup)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetBandwidthGroup(IBandwidthGroup * aBandwidthGroup)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1INetworkAdapter; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1INetworkAdapter(PRUint32 *aInternalAndReservedAttribute1INetworkAdapter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2INetworkAdapter; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2INetworkAdapter(PRUint32 *aInternalAndReservedAttribute2INetworkAdapter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute3INetworkAdapter; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute3INetworkAdapter(PRUint32 *aInternalAndReservedAttribute3INetworkAdapter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute4INetworkAdapter; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute4INetworkAdapter(PRUint32 *aInternalAndReservedAttribute4INetworkAdapter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getProperty (in wstring key, [retval] out wstring value); */
NS_IMETHODIMP _MYCLASS_::GetProperty(const PRUnichar *key, PRUnichar **value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setProperty (in wstring key, in wstring value); */
NS_IMETHODIMP _MYCLASS_::SetProperty(const PRUnichar *key, const PRUnichar *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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); */
NS_IMETHODIMP _MYCLASS_::GetProperties(const PRUnichar *names, PRUint32 *returnNamesSize, PRUnichar ***returnNames, PRUint32 *returnValuesSize, PRUnichar ***returnValues)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1INetworkAdapter (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1INetworkAdapter()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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_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;

/* starting interface:    ISerialPort */
#define ISERIALPORT_IID_STR "cb0a4a29-43a3-9040-0c25-34845db7b042"

#define ISERIALPORT_IID \
  {0xcb0a4a29, 0x43a3, 0x9040, \
    { 0x0c, 0x25, 0x34, 0x84, 0x5d, 0xb7, 0xb0, 0x42 }}

class NS_NO_VTABLE ISerialPort : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ISERIALPORT_IID)

  /* readonly attribute unsigned long slot; */
  NS_IMETHOD GetSlot(PRUint32 *aSlot) = 0;

  /* attribute boolean enabled; */
  NS_IMETHOD GetEnabled(PRBool *aEnabled) = 0;
  NS_IMETHOD SetEnabled(PRBool aEnabled) = 0;

  /* attribute unsigned long IOBase; */
  NS_IMETHOD GetIOBase(PRUint32 *aIOBase) = 0;
  NS_IMETHOD SetIOBase(PRUint32 aIOBase) = 0;

  /* attribute unsigned long IRQ; */
  NS_IMETHOD GetIRQ(PRUint32 *aIRQ) = 0;
  NS_IMETHOD SetIRQ(PRUint32 aIRQ) = 0;

  /* attribute PRUint32 hostMode; */
  NS_IMETHOD GetHostMode(PRUint32 *aHostMode) = 0;
  NS_IMETHOD SetHostMode(PRUint32 aHostMode) = 0;

  /* attribute boolean server; */
  NS_IMETHOD GetServer(PRBool *aServer) = 0;
  NS_IMETHOD SetServer(PRBool aServer) = 0;

  /* attribute wstring path; */
  NS_IMETHOD GetPath(PRUnichar * *aPath) = 0;
  NS_IMETHOD SetPath(const PRUnichar * aPath) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1ISerialPort; */
  NS_IMETHOD GetInternalAndReservedAttribute1ISerialPort(PRUint32 *aInternalAndReservedAttribute1ISerialPort) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2ISerialPort; */
  NS_IMETHOD GetInternalAndReservedAttribute2ISerialPort(PRUint32 *aInternalAndReservedAttribute2ISerialPort) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ISERIALPORT \
  NS_IMETHOD GetSlot(PRUint32 *aSlot); \
  NS_IMETHOD GetEnabled(PRBool *aEnabled); \
  NS_IMETHOD SetEnabled(PRBool aEnabled); \
  NS_IMETHOD GetIOBase(PRUint32 *aIOBase); \
  NS_IMETHOD SetIOBase(PRUint32 aIOBase); \
  NS_IMETHOD GetIRQ(PRUint32 *aIRQ); \
  NS_IMETHOD SetIRQ(PRUint32 aIRQ); \
  NS_IMETHOD GetHostMode(PRUint32 *aHostMode); \
  NS_IMETHOD SetHostMode(PRUint32 aHostMode); \
  NS_IMETHOD GetServer(PRBool *aServer); \
  NS_IMETHOD SetServer(PRBool aServer); \
  NS_IMETHOD GetPath(PRUnichar * *aPath); \
  NS_IMETHOD SetPath(const PRUnichar * aPath); \
  NS_IMETHOD GetInternalAndReservedAttribute1ISerialPort(PRUint32 *aInternalAndReservedAttribute1ISerialPort); \
  NS_IMETHOD GetInternalAndReservedAttribute2ISerialPort(PRUint32 *aInternalAndReservedAttribute2ISerialPort); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ISERIALPORT(_to) \
  NS_IMETHOD GetSlot(PRUint32 *aSlot) { return _to GetSlot(aSlot); } \
  NS_IMETHOD GetEnabled(PRBool *aEnabled) { return _to GetEnabled(aEnabled); } \
  NS_IMETHOD SetEnabled(PRBool aEnabled) { return _to SetEnabled(aEnabled); } \
  NS_IMETHOD GetIOBase(PRUint32 *aIOBase) { return _to GetIOBase(aIOBase); } \
  NS_IMETHOD SetIOBase(PRUint32 aIOBase) { return _to SetIOBase(aIOBase); } \
  NS_IMETHOD GetIRQ(PRUint32 *aIRQ) { return _to GetIRQ(aIRQ); } \
  NS_IMETHOD SetIRQ(PRUint32 aIRQ) { return _to SetIRQ(aIRQ); } \
  NS_IMETHOD GetHostMode(PRUint32 *aHostMode) { return _to GetHostMode(aHostMode); } \
  NS_IMETHOD SetHostMode(PRUint32 aHostMode) { return _to SetHostMode(aHostMode); } \
  NS_IMETHOD GetServer(PRBool *aServer) { return _to GetServer(aServer); } \
  NS_IMETHOD SetServer(PRBool aServer) { return _to SetServer(aServer); } \
  NS_IMETHOD GetPath(PRUnichar * *aPath) { return _to GetPath(aPath); } \
  NS_IMETHOD SetPath(const PRUnichar * aPath) { return _to SetPath(aPath); } \
  NS_IMETHOD GetInternalAndReservedAttribute1ISerialPort(PRUint32 *aInternalAndReservedAttribute1ISerialPort) { return _to GetInternalAndReservedAttribute1ISerialPort(aInternalAndReservedAttribute1ISerialPort); } \
  NS_IMETHOD GetInternalAndReservedAttribute2ISerialPort(PRUint32 *aInternalAndReservedAttribute2ISerialPort) { return _to GetInternalAndReservedAttribute2ISerialPort(aInternalAndReservedAttribute2ISerialPort); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ISERIALPORT(_to) \
  NS_IMETHOD GetSlot(PRUint32 *aSlot) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSlot(aSlot); } \
  NS_IMETHOD GetEnabled(PRBool *aEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEnabled(aEnabled); } \
  NS_IMETHOD SetEnabled(PRBool aEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetEnabled(aEnabled); } \
  NS_IMETHOD GetIOBase(PRUint32 *aIOBase) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIOBase(aIOBase); } \
  NS_IMETHOD SetIOBase(PRUint32 aIOBase) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIOBase(aIOBase); } \
  NS_IMETHOD GetIRQ(PRUint32 *aIRQ) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIRQ(aIRQ); } \
  NS_IMETHOD SetIRQ(PRUint32 aIRQ) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIRQ(aIRQ); } \
  NS_IMETHOD GetHostMode(PRUint32 *aHostMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHostMode(aHostMode); } \
  NS_IMETHOD SetHostMode(PRUint32 aHostMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetHostMode(aHostMode); } \
  NS_IMETHOD GetServer(PRBool *aServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetServer(aServer); } \
  NS_IMETHOD SetServer(PRBool aServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetServer(aServer); } \
  NS_IMETHOD GetPath(PRUnichar * *aPath) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPath(aPath); } \
  NS_IMETHOD SetPath(const PRUnichar * aPath) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPath(aPath); } \
  NS_IMETHOD GetInternalAndReservedAttribute1ISerialPort(PRUint32 *aInternalAndReservedAttribute1ISerialPort) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1ISerialPort(aInternalAndReservedAttribute1ISerialPort); } \
  NS_IMETHOD GetInternalAndReservedAttribute2ISerialPort(PRUint32 *aInternalAndReservedAttribute2ISerialPort) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2ISerialPort(aInternalAndReservedAttribute2ISerialPort); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public ISerialPort
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_ISERIALPORT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, ISerialPort)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute unsigned long slot; */
NS_IMETHODIMP _MYCLASS_::GetSlot(PRUint32 *aSlot)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean enabled; */
NS_IMETHODIMP _MYCLASS_::GetEnabled(PRBool *aEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetEnabled(PRBool aEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long IOBase; */
NS_IMETHODIMP _MYCLASS_::GetIOBase(PRUint32 *aIOBase)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetIOBase(PRUint32 aIOBase)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long IRQ; */
NS_IMETHODIMP _MYCLASS_::GetIRQ(PRUint32 *aIRQ)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetIRQ(PRUint32 aIRQ)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute PRUint32 hostMode; */
NS_IMETHODIMP _MYCLASS_::GetHostMode(PRUint32 *aHostMode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetHostMode(PRUint32 aHostMode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean server; */
NS_IMETHODIMP _MYCLASS_::GetServer(PRBool *aServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetServer(PRBool aServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring path; */
NS_IMETHODIMP _MYCLASS_::GetPath(PRUnichar * *aPath)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetPath(const PRUnichar * aPath)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1ISerialPort; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1ISerialPort(PRUint32 *aInternalAndReservedAttribute1ISerialPort)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2ISerialPort; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2ISerialPort(PRUint32 *aInternalAndReservedAttribute2ISerialPort)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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_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;

/* starting interface:    IParallelPort */
#define IPARALLELPORT_IID_STR "788b87df-7708-444b-9eef-c116ce423d39"

#define IPARALLELPORT_IID \
  {0x788b87df, 0x7708, 0x444b, \
    { 0x9e, 0xef, 0xc1, 0x16, 0xce, 0x42, 0x3d, 0x39 }}

class NS_NO_VTABLE IParallelPort : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IPARALLELPORT_IID)

  /* readonly attribute unsigned long slot; */
  NS_IMETHOD GetSlot(PRUint32 *aSlot) = 0;

  /* attribute boolean enabled; */
  NS_IMETHOD GetEnabled(PRBool *aEnabled) = 0;
  NS_IMETHOD SetEnabled(PRBool aEnabled) = 0;

  /* attribute unsigned long IOBase; */
  NS_IMETHOD GetIOBase(PRUint32 *aIOBase) = 0;
  NS_IMETHOD SetIOBase(PRUint32 aIOBase) = 0;

  /* attribute unsigned long IRQ; */
  NS_IMETHOD GetIRQ(PRUint32 *aIRQ) = 0;
  NS_IMETHOD SetIRQ(PRUint32 aIRQ) = 0;

  /* attribute wstring path; */
  NS_IMETHOD GetPath(PRUnichar * *aPath) = 0;
  NS_IMETHOD SetPath(const PRUnichar * aPath) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IParallelPort; */
  NS_IMETHOD GetInternalAndReservedAttribute1IParallelPort(PRUint32 *aInternalAndReservedAttribute1IParallelPort) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IParallelPort; */
  NS_IMETHOD GetInternalAndReservedAttribute2IParallelPort(PRUint32 *aInternalAndReservedAttribute2IParallelPort) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IParallelPort; */
  NS_IMETHOD GetInternalAndReservedAttribute3IParallelPort(PRUint32 *aInternalAndReservedAttribute3IParallelPort) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IParallelPort; */
  NS_IMETHOD GetInternalAndReservedAttribute4IParallelPort(PRUint32 *aInternalAndReservedAttribute4IParallelPort) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IPARALLELPORT \
  NS_IMETHOD GetSlot(PRUint32 *aSlot); \
  NS_IMETHOD GetEnabled(PRBool *aEnabled); \
  NS_IMETHOD SetEnabled(PRBool aEnabled); \
  NS_IMETHOD GetIOBase(PRUint32 *aIOBase); \
  NS_IMETHOD SetIOBase(PRUint32 aIOBase); \
  NS_IMETHOD GetIRQ(PRUint32 *aIRQ); \
  NS_IMETHOD SetIRQ(PRUint32 aIRQ); \
  NS_IMETHOD GetPath(PRUnichar * *aPath); \
  NS_IMETHOD SetPath(const PRUnichar * aPath); \
  NS_IMETHOD GetInternalAndReservedAttribute1IParallelPort(PRUint32 *aInternalAndReservedAttribute1IParallelPort); \
  NS_IMETHOD GetInternalAndReservedAttribute2IParallelPort(PRUint32 *aInternalAndReservedAttribute2IParallelPort); \
  NS_IMETHOD GetInternalAndReservedAttribute3IParallelPort(PRUint32 *aInternalAndReservedAttribute3IParallelPort); \
  NS_IMETHOD GetInternalAndReservedAttribute4IParallelPort(PRUint32 *aInternalAndReservedAttribute4IParallelPort); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IPARALLELPORT(_to) \
  NS_IMETHOD GetSlot(PRUint32 *aSlot) { return _to GetSlot(aSlot); } \
  NS_IMETHOD GetEnabled(PRBool *aEnabled) { return _to GetEnabled(aEnabled); } \
  NS_IMETHOD SetEnabled(PRBool aEnabled) { return _to SetEnabled(aEnabled); } \
  NS_IMETHOD GetIOBase(PRUint32 *aIOBase) { return _to GetIOBase(aIOBase); } \
  NS_IMETHOD SetIOBase(PRUint32 aIOBase) { return _to SetIOBase(aIOBase); } \
  NS_IMETHOD GetIRQ(PRUint32 *aIRQ) { return _to GetIRQ(aIRQ); } \
  NS_IMETHOD SetIRQ(PRUint32 aIRQ) { return _to SetIRQ(aIRQ); } \
  NS_IMETHOD GetPath(PRUnichar * *aPath) { return _to GetPath(aPath); } \
  NS_IMETHOD SetPath(const PRUnichar * aPath) { return _to SetPath(aPath); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IParallelPort(PRUint32 *aInternalAndReservedAttribute1IParallelPort) { return _to GetInternalAndReservedAttribute1IParallelPort(aInternalAndReservedAttribute1IParallelPort); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IParallelPort(PRUint32 *aInternalAndReservedAttribute2IParallelPort) { return _to GetInternalAndReservedAttribute2IParallelPort(aInternalAndReservedAttribute2IParallelPort); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IParallelPort(PRUint32 *aInternalAndReservedAttribute3IParallelPort) { return _to GetInternalAndReservedAttribute3IParallelPort(aInternalAndReservedAttribute3IParallelPort); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IParallelPort(PRUint32 *aInternalAndReservedAttribute4IParallelPort) { return _to GetInternalAndReservedAttribute4IParallelPort(aInternalAndReservedAttribute4IParallelPort); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IPARALLELPORT(_to) \
  NS_IMETHOD GetSlot(PRUint32 *aSlot) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSlot(aSlot); } \
  NS_IMETHOD GetEnabled(PRBool *aEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEnabled(aEnabled); } \
  NS_IMETHOD SetEnabled(PRBool aEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetEnabled(aEnabled); } \
  NS_IMETHOD GetIOBase(PRUint32 *aIOBase) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIOBase(aIOBase); } \
  NS_IMETHOD SetIOBase(PRUint32 aIOBase) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIOBase(aIOBase); } \
  NS_IMETHOD GetIRQ(PRUint32 *aIRQ) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIRQ(aIRQ); } \
  NS_IMETHOD SetIRQ(PRUint32 aIRQ) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIRQ(aIRQ); } \
  NS_IMETHOD GetPath(PRUnichar * *aPath) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPath(aPath); } \
  NS_IMETHOD SetPath(const PRUnichar * aPath) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPath(aPath); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IParallelPort(PRUint32 *aInternalAndReservedAttribute1IParallelPort) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IParallelPort(aInternalAndReservedAttribute1IParallelPort); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IParallelPort(PRUint32 *aInternalAndReservedAttribute2IParallelPort) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IParallelPort(aInternalAndReservedAttribute2IParallelPort); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IParallelPort(PRUint32 *aInternalAndReservedAttribute3IParallelPort) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IParallelPort(aInternalAndReservedAttribute3IParallelPort); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IParallelPort(PRUint32 *aInternalAndReservedAttribute4IParallelPort) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IParallelPort(aInternalAndReservedAttribute4IParallelPort); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IParallelPort
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IPARALLELPORT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IParallelPort)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute unsigned long slot; */
NS_IMETHODIMP _MYCLASS_::GetSlot(PRUint32 *aSlot)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean enabled; */
NS_IMETHODIMP _MYCLASS_::GetEnabled(PRBool *aEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetEnabled(PRBool aEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long IOBase; */
NS_IMETHODIMP _MYCLASS_::GetIOBase(PRUint32 *aIOBase)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetIOBase(PRUint32 aIOBase)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long IRQ; */
NS_IMETHODIMP _MYCLASS_::GetIRQ(PRUint32 *aIRQ)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetIRQ(PRUint32 aIRQ)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring path; */
NS_IMETHODIMP _MYCLASS_::GetPath(PRUnichar * *aPath)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetPath(const PRUnichar * aPath)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IParallelPort; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IParallelPort(PRUint32 *aInternalAndReservedAttribute1IParallelPort)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IParallelPort; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IParallelPort(PRUint32 *aInternalAndReservedAttribute2IParallelPort)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute3IParallelPort; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute3IParallelPort(PRUint32 *aInternalAndReservedAttribute3IParallelPort)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute4IParallelPort; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute4IParallelPort(PRUint32 *aInternalAndReservedAttribute4IParallelPort)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IMachineDebugger */
#define IMACHINEDEBUGGER_IID_STR "9c0f5269-47ae-ee34-c2fe-53a16e388925"

#define IMACHINEDEBUGGER_IID \
  {0x9c0f5269, 0x47ae, 0xee34, \
    { 0xc2, 0xfe, 0x53, 0xa1, 0x6e, 0x38, 0x89, 0x25 }}

class NS_NO_VTABLE IMachineDebugger : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IMACHINEDEBUGGER_IID)

  /* attribute boolean singleStep; */
  NS_IMETHOD GetSingleStep(PRBool *aSingleStep) = 0;
  NS_IMETHOD SetSingleStep(PRBool aSingleStep) = 0;

  /* attribute boolean recompileUser; */
  NS_IMETHOD GetRecompileUser(PRBool *aRecompileUser) = 0;
  NS_IMETHOD SetRecompileUser(PRBool aRecompileUser) = 0;

  /* attribute boolean recompileSupervisor; */
  NS_IMETHOD GetRecompileSupervisor(PRBool *aRecompileSupervisor) = 0;
  NS_IMETHOD SetRecompileSupervisor(PRBool aRecompileSupervisor) = 0;

  /* attribute boolean executeAllInIEM; */
  NS_IMETHOD GetExecuteAllInIEM(PRBool *aExecuteAllInIEM) = 0;
  NS_IMETHOD SetExecuteAllInIEM(PRBool aExecuteAllInIEM) = 0;

  /* attribute boolean PATMEnabled; */
  NS_IMETHOD GetPATMEnabled(PRBool *aPATMEnabled) = 0;
  NS_IMETHOD SetPATMEnabled(PRBool aPATMEnabled) = 0;

  /* attribute boolean CSAMEnabled; */
  NS_IMETHOD GetCSAMEnabled(PRBool *aCSAMEnabled) = 0;
  NS_IMETHOD SetCSAMEnabled(PRBool aCSAMEnabled) = 0;

  /* attribute boolean logEnabled; */
  NS_IMETHOD GetLogEnabled(PRBool *aLogEnabled) = 0;
  NS_IMETHOD SetLogEnabled(PRBool aLogEnabled) = 0;

  /* readonly attribute wstring logDbgFlags; */
  NS_IMETHOD GetLogDbgFlags(PRUnichar * *aLogDbgFlags) = 0;

  /* readonly attribute wstring logDbgGroups; */
  NS_IMETHOD GetLogDbgGroups(PRUnichar * *aLogDbgGroups) = 0;

  /* readonly attribute wstring logDbgDestinations; */
  NS_IMETHOD GetLogDbgDestinations(PRUnichar * *aLogDbgDestinations) = 0;

  /* readonly attribute wstring logRelFlags; */
  NS_IMETHOD GetLogRelFlags(PRUnichar * *aLogRelFlags) = 0;

  /* readonly attribute wstring logRelGroups; */
  NS_IMETHOD GetLogRelGroups(PRUnichar * *aLogRelGroups) = 0;

  /* readonly attribute wstring logRelDestinations; */
  NS_IMETHOD GetLogRelDestinations(PRUnichar * *aLogRelDestinations) = 0;

  /* readonly attribute boolean HWVirtExEnabled; */
  NS_IMETHOD GetHWVirtExEnabled(PRBool *aHWVirtExEnabled) = 0;

  /* readonly attribute boolean HWVirtExNestedPagingEnabled; */
  NS_IMETHOD GetHWVirtExNestedPagingEnabled(PRBool *aHWVirtExNestedPagingEnabled) = 0;

  /* readonly attribute boolean HWVirtExVPIDEnabled; */
  NS_IMETHOD GetHWVirtExVPIDEnabled(PRBool *aHWVirtExVPIDEnabled) = 0;

  /* readonly attribute boolean HWVirtExUXEnabled; */
  NS_IMETHOD GetHWVirtExUXEnabled(PRBool *aHWVirtExUXEnabled) = 0;

  /* readonly attribute wstring OSName; */
  NS_IMETHOD GetOSName(PRUnichar * *aOSName) = 0;

  /* readonly attribute wstring OSVersion; */
  NS_IMETHOD GetOSVersion(PRUnichar * *aOSVersion) = 0;

  /* readonly attribute boolean PAEEnabled; */
  NS_IMETHOD GetPAEEnabled(PRBool *aPAEEnabled) = 0;

  /* attribute unsigned long virtualTimeRate; */
  NS_IMETHOD GetVirtualTimeRate(PRUint32 *aVirtualTimeRate) = 0;
  NS_IMETHOD SetVirtualTimeRate(PRUint32 aVirtualTimeRate) = 0;

  /* readonly attribute long long VM; */
  NS_IMETHOD GetVM(PRInt64 *aVM) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IMachineDebugger; */
  NS_IMETHOD GetInternalAndReservedAttribute1IMachineDebugger(PRUint32 *aInternalAndReservedAttribute1IMachineDebugger) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IMachineDebugger; */
  NS_IMETHOD GetInternalAndReservedAttribute2IMachineDebugger(PRUint32 *aInternalAndReservedAttribute2IMachineDebugger) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IMachineDebugger; */
  NS_IMETHOD GetInternalAndReservedAttribute3IMachineDebugger(PRUint32 *aInternalAndReservedAttribute3IMachineDebugger) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IMachineDebugger; */
  NS_IMETHOD GetInternalAndReservedAttribute4IMachineDebugger(PRUint32 *aInternalAndReservedAttribute4IMachineDebugger) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IMachineDebugger; */
  NS_IMETHOD GetInternalAndReservedAttribute5IMachineDebugger(PRUint32 *aInternalAndReservedAttribute5IMachineDebugger) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IMachineDebugger; */
  NS_IMETHOD GetInternalAndReservedAttribute6IMachineDebugger(PRUint32 *aInternalAndReservedAttribute6IMachineDebugger) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IMachineDebugger; */
  NS_IMETHOD GetInternalAndReservedAttribute7IMachineDebugger(PRUint32 *aInternalAndReservedAttribute7IMachineDebugger) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IMachineDebugger; */
  NS_IMETHOD GetInternalAndReservedAttribute8IMachineDebugger(PRUint32 *aInternalAndReservedAttribute8IMachineDebugger) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute9IMachineDebugger; */
  NS_IMETHOD GetInternalAndReservedAttribute9IMachineDebugger(PRUint32 *aInternalAndReservedAttribute9IMachineDebugger) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute10IMachineDebugger; */
  NS_IMETHOD GetInternalAndReservedAttribute10IMachineDebugger(PRUint32 *aInternalAndReservedAttribute10IMachineDebugger) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute11IMachineDebugger; */
  NS_IMETHOD GetInternalAndReservedAttribute11IMachineDebugger(PRUint32 *aInternalAndReservedAttribute11IMachineDebugger) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute12IMachineDebugger; */
  NS_IMETHOD GetInternalAndReservedAttribute12IMachineDebugger(PRUint32 *aInternalAndReservedAttribute12IMachineDebugger) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute13IMachineDebugger; */
  NS_IMETHOD GetInternalAndReservedAttribute13IMachineDebugger(PRUint32 *aInternalAndReservedAttribute13IMachineDebugger) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute14IMachineDebugger; */
  NS_IMETHOD GetInternalAndReservedAttribute14IMachineDebugger(PRUint32 *aInternalAndReservedAttribute14IMachineDebugger) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute15IMachineDebugger; */
  NS_IMETHOD GetInternalAndReservedAttribute15IMachineDebugger(PRUint32 *aInternalAndReservedAttribute15IMachineDebugger) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute16IMachineDebugger; */
  NS_IMETHOD GetInternalAndReservedAttribute16IMachineDebugger(PRUint32 *aInternalAndReservedAttribute16IMachineDebugger) = 0;

  /* void dumpGuestCore (in wstring filename, in wstring compression); */
  NS_IMETHOD DumpGuestCore(const PRUnichar *filename, const PRUnichar *compression) = 0;

  /* void dumpHostProcessCore (in wstring filename, in wstring compression); */
  NS_IMETHOD DumpHostProcessCore(const PRUnichar *filename, const PRUnichar *compression) = 0;

  /* void info (in wstring name, in wstring args, [retval] out wstring info); */
  NS_IMETHOD Info(const PRUnichar *name, const PRUnichar *args, PRUnichar **info) = 0;

  /* void injectNMI (); */
  NS_IMETHOD InjectNMI(void) = 0;

  /* void modifyLogGroups (in wstring settings); */
  NS_IMETHOD ModifyLogGroups(const PRUnichar *settings) = 0;

  /* void modifyLogFlags (in wstring settings); */
  NS_IMETHOD ModifyLogFlags(const PRUnichar *settings) = 0;

  /* void modifyLogDestinations (in wstring settings); */
  NS_IMETHOD ModifyLogDestinations(const PRUnichar *settings) = 0;

  /* void readPhysicalMemory (in long long address, in unsigned long size, out unsigned long bytesSize, [array, size_is (bytesSize), retval] out octet bytes); */
  NS_IMETHOD ReadPhysicalMemory(PRInt64 address, PRUint32 size, PRUint32 *bytesSize, PRUint8 **bytes) = 0;

  /* void writePhysicalMemory (in long long address, in unsigned long size, in unsigned long bytesSize, [array, size_is (bytesSize)] in octet bytes); */
  NS_IMETHOD WritePhysicalMemory(PRInt64 address, PRUint32 size, PRUint32 bytesSize, PRUint8 *bytes) = 0;

  /* 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); */
  NS_IMETHOD ReadVirtualMemory(PRUint32 cpuId, PRInt64 address, PRUint32 size, PRUint32 *bytesSize, PRUint8 **bytes) = 0;

  /* 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); */
  NS_IMETHOD WriteVirtualMemory(PRUint32 cpuId, PRInt64 address, PRUint32 size, PRUint32 bytesSize, PRUint8 *bytes) = 0;

  /* void loadPlugIn (in wstring name, [retval] out wstring plugInName); */
  NS_IMETHOD LoadPlugIn(const PRUnichar *name, PRUnichar **plugInName) = 0;

  /* void unloadPlugIn (in wstring name); */
  NS_IMETHOD UnloadPlugIn(const PRUnichar *name) = 0;

  /* void detectOS ([retval] out wstring os); */
  NS_IMETHOD DetectOS(PRUnichar **os) = 0;

  /* void queryOSKernelLog (in unsigned long maxMessages, [retval] out wstring dmesg); */
  NS_IMETHOD QueryOSKernelLog(PRUint32 maxMessages, PRUnichar **dmesg) = 0;

  /* void getRegister (in unsigned long cpuId, in wstring name, [retval] out wstring value); */
  NS_IMETHOD GetRegister(PRUint32 cpuId, const PRUnichar *name, PRUnichar **value) = 0;

  /* 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); */
  NS_IMETHOD GetRegisters(PRUint32 cpuId, PRUint32 *namesSize, PRUnichar ***names, PRUint32 *valuesSize, PRUnichar ***values) = 0;

  /* void setRegister (in unsigned long cpuId, in wstring name, in wstring value); */
  NS_IMETHOD SetRegister(PRUint32 cpuId, const PRUnichar *name, const PRUnichar *value) = 0;

  /* 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); */
  NS_IMETHOD SetRegisters(PRUint32 cpuId, PRUint32 namesSize, const PRUnichar **names, PRUint32 valuesSize, const PRUnichar **values) = 0;

  /* void dumpGuestStack (in unsigned long cpuId, [retval] out wstring stack); */
  NS_IMETHOD DumpGuestStack(PRUint32 cpuId, PRUnichar **stack) = 0;

  /* void resetStats (in wstring pattern); */
  NS_IMETHOD ResetStats(const PRUnichar *pattern) = 0;

  /* void dumpStats (in wstring pattern); */
  NS_IMETHOD DumpStats(const PRUnichar *pattern) = 0;

  /* void getStats (in wstring pattern, in boolean withDescriptions, [retval] out wstring stats); */
  NS_IMETHOD GetStats(const PRUnichar *pattern, PRBool withDescriptions, PRUnichar **stats) = 0;

  /* void InternalAndReservedMethod1IMachineDebugger (); */
  NS_IMETHOD InternalAndReservedMethod1IMachineDebugger(void) = 0;

  /* void InternalAndReservedMethod2IMachineDebugger (); */
  NS_IMETHOD InternalAndReservedMethod2IMachineDebugger(void) = 0;

  /* void InternalAndReservedMethod3IMachineDebugger (); */
  NS_IMETHOD InternalAndReservedMethod3IMachineDebugger(void) = 0;

  /* void InternalAndReservedMethod4IMachineDebugger (); */
  NS_IMETHOD InternalAndReservedMethod4IMachineDebugger(void) = 0;

  /* void InternalAndReservedMethod5IMachineDebugger (); */
  NS_IMETHOD InternalAndReservedMethod5IMachineDebugger(void) = 0;

  /* void InternalAndReservedMethod6IMachineDebugger (); */
  NS_IMETHOD InternalAndReservedMethod6IMachineDebugger(void) = 0;

  /* void InternalAndReservedMethod7IMachineDebugger (); */
  NS_IMETHOD InternalAndReservedMethod7IMachineDebugger(void) = 0;

  /* void InternalAndReservedMethod8IMachineDebugger (); */
  NS_IMETHOD InternalAndReservedMethod8IMachineDebugger(void) = 0;

  /* void InternalAndReservedMethod9IMachineDebugger (); */
  NS_IMETHOD InternalAndReservedMethod9IMachineDebugger(void) = 0;

  /* void InternalAndReservedMethod10IMachineDebugger (); */
  NS_IMETHOD InternalAndReservedMethod10IMachineDebugger(void) = 0;

  /* void InternalAndReservedMethod11IMachineDebugger (); */
  NS_IMETHOD InternalAndReservedMethod11IMachineDebugger(void) = 0;

  /* void InternalAndReservedMethod12IMachineDebugger (); */
  NS_IMETHOD InternalAndReservedMethod12IMachineDebugger(void) = 0;

  /* void InternalAndReservedMethod13IMachineDebugger (); */
  NS_IMETHOD InternalAndReservedMethod13IMachineDebugger(void) = 0;

  /* void InternalAndReservedMethod14IMachineDebugger (); */
  NS_IMETHOD InternalAndReservedMethod14IMachineDebugger(void) = 0;

  /* void InternalAndReservedMethod15IMachineDebugger (); */
  NS_IMETHOD InternalAndReservedMethod15IMachineDebugger(void) = 0;

  /* void InternalAndReservedMethod16IMachineDebugger (); */
  NS_IMETHOD InternalAndReservedMethod16IMachineDebugger(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IMACHINEDEBUGGER \
  NS_IMETHOD GetSingleStep(PRBool *aSingleStep); \
  NS_IMETHOD SetSingleStep(PRBool aSingleStep); \
  NS_IMETHOD GetRecompileUser(PRBool *aRecompileUser); \
  NS_IMETHOD SetRecompileUser(PRBool aRecompileUser); \
  NS_IMETHOD GetRecompileSupervisor(PRBool *aRecompileSupervisor); \
  NS_IMETHOD SetRecompileSupervisor(PRBool aRecompileSupervisor); \
  NS_IMETHOD GetExecuteAllInIEM(PRBool *aExecuteAllInIEM); \
  NS_IMETHOD SetExecuteAllInIEM(PRBool aExecuteAllInIEM); \
  NS_IMETHOD GetPATMEnabled(PRBool *aPATMEnabled); \
  NS_IMETHOD SetPATMEnabled(PRBool aPATMEnabled); \
  NS_IMETHOD GetCSAMEnabled(PRBool *aCSAMEnabled); \
  NS_IMETHOD SetCSAMEnabled(PRBool aCSAMEnabled); \
  NS_IMETHOD GetLogEnabled(PRBool *aLogEnabled); \
  NS_IMETHOD SetLogEnabled(PRBool aLogEnabled); \
  NS_IMETHOD GetLogDbgFlags(PRUnichar * *aLogDbgFlags); \
  NS_IMETHOD GetLogDbgGroups(PRUnichar * *aLogDbgGroups); \
  NS_IMETHOD GetLogDbgDestinations(PRUnichar * *aLogDbgDestinations); \
  NS_IMETHOD GetLogRelFlags(PRUnichar * *aLogRelFlags); \
  NS_IMETHOD GetLogRelGroups(PRUnichar * *aLogRelGroups); \
  NS_IMETHOD GetLogRelDestinations(PRUnichar * *aLogRelDestinations); \
  NS_IMETHOD GetHWVirtExEnabled(PRBool *aHWVirtExEnabled); \
  NS_IMETHOD GetHWVirtExNestedPagingEnabled(PRBool *aHWVirtExNestedPagingEnabled); \
  NS_IMETHOD GetHWVirtExVPIDEnabled(PRBool *aHWVirtExVPIDEnabled); \
  NS_IMETHOD GetHWVirtExUXEnabled(PRBool *aHWVirtExUXEnabled); \
  NS_IMETHOD GetOSName(PRUnichar * *aOSName); \
  NS_IMETHOD GetOSVersion(PRUnichar * *aOSVersion); \
  NS_IMETHOD GetPAEEnabled(PRBool *aPAEEnabled); \
  NS_IMETHOD GetVirtualTimeRate(PRUint32 *aVirtualTimeRate); \
  NS_IMETHOD SetVirtualTimeRate(PRUint32 aVirtualTimeRate); \
  NS_IMETHOD GetVM(PRInt64 *aVM); \
  NS_IMETHOD GetInternalAndReservedAttribute1IMachineDebugger(PRUint32 *aInternalAndReservedAttribute1IMachineDebugger); \
  NS_IMETHOD GetInternalAndReservedAttribute2IMachineDebugger(PRUint32 *aInternalAndReservedAttribute2IMachineDebugger); \
  NS_IMETHOD GetInternalAndReservedAttribute3IMachineDebugger(PRUint32 *aInternalAndReservedAttribute3IMachineDebugger); \
  NS_IMETHOD GetInternalAndReservedAttribute4IMachineDebugger(PRUint32 *aInternalAndReservedAttribute4IMachineDebugger); \
  NS_IMETHOD GetInternalAndReservedAttribute5IMachineDebugger(PRUint32 *aInternalAndReservedAttribute5IMachineDebugger); \
  NS_IMETHOD GetInternalAndReservedAttribute6IMachineDebugger(PRUint32 *aInternalAndReservedAttribute6IMachineDebugger); \
  NS_IMETHOD GetInternalAndReservedAttribute7IMachineDebugger(PRUint32 *aInternalAndReservedAttribute7IMachineDebugger); \
  NS_IMETHOD GetInternalAndReservedAttribute8IMachineDebugger(PRUint32 *aInternalAndReservedAttribute8IMachineDebugger); \
  NS_IMETHOD GetInternalAndReservedAttribute9IMachineDebugger(PRUint32 *aInternalAndReservedAttribute9IMachineDebugger); \
  NS_IMETHOD GetInternalAndReservedAttribute10IMachineDebugger(PRUint32 *aInternalAndReservedAttribute10IMachineDebugger); \
  NS_IMETHOD GetInternalAndReservedAttribute11IMachineDebugger(PRUint32 *aInternalAndReservedAttribute11IMachineDebugger); \
  NS_IMETHOD GetInternalAndReservedAttribute12IMachineDebugger(PRUint32 *aInternalAndReservedAttribute12IMachineDebugger); \
  NS_IMETHOD GetInternalAndReservedAttribute13IMachineDebugger(PRUint32 *aInternalAndReservedAttribute13IMachineDebugger); \
  NS_IMETHOD GetInternalAndReservedAttribute14IMachineDebugger(PRUint32 *aInternalAndReservedAttribute14IMachineDebugger); \
  NS_IMETHOD GetInternalAndReservedAttribute15IMachineDebugger(PRUint32 *aInternalAndReservedAttribute15IMachineDebugger); \
  NS_IMETHOD GetInternalAndReservedAttribute16IMachineDebugger(PRUint32 *aInternalAndReservedAttribute16IMachineDebugger); \
  NS_IMETHOD DumpGuestCore(const PRUnichar *filename, const PRUnichar *compression); \
  NS_IMETHOD DumpHostProcessCore(const PRUnichar *filename, const PRUnichar *compression); \
  NS_IMETHOD Info(const PRUnichar *name, const PRUnichar *args, PRUnichar **info); \
  NS_IMETHOD InjectNMI(void); \
  NS_IMETHOD ModifyLogGroups(const PRUnichar *settings); \
  NS_IMETHOD ModifyLogFlags(const PRUnichar *settings); \
  NS_IMETHOD ModifyLogDestinations(const PRUnichar *settings); \
  NS_IMETHOD ReadPhysicalMemory(PRInt64 address, PRUint32 size, PRUint32 *bytesSize, PRUint8 **bytes); \
  NS_IMETHOD WritePhysicalMemory(PRInt64 address, PRUint32 size, PRUint32 bytesSize, PRUint8 *bytes); \
  NS_IMETHOD ReadVirtualMemory(PRUint32 cpuId, PRInt64 address, PRUint32 size, PRUint32 *bytesSize, PRUint8 **bytes); \
  NS_IMETHOD WriteVirtualMemory(PRUint32 cpuId, PRInt64 address, PRUint32 size, PRUint32 bytesSize, PRUint8 *bytes); \
  NS_IMETHOD LoadPlugIn(const PRUnichar *name, PRUnichar **plugInName); \
  NS_IMETHOD UnloadPlugIn(const PRUnichar *name); \
  NS_IMETHOD DetectOS(PRUnichar **os); \
  NS_IMETHOD QueryOSKernelLog(PRUint32 maxMessages, PRUnichar **dmesg); \
  NS_IMETHOD GetRegister(PRUint32 cpuId, const PRUnichar *name, PRUnichar **value); \
  NS_IMETHOD GetRegisters(PRUint32 cpuId, PRUint32 *namesSize, PRUnichar ***names, PRUint32 *valuesSize, PRUnichar ***values); \
  NS_IMETHOD SetRegister(PRUint32 cpuId, const PRUnichar *name, const PRUnichar *value); \
  NS_IMETHOD SetRegisters(PRUint32 cpuId, PRUint32 namesSize, const PRUnichar **names, PRUint32 valuesSize, const PRUnichar **values); \
  NS_IMETHOD DumpGuestStack(PRUint32 cpuId, PRUnichar **stack); \
  NS_IMETHOD ResetStats(const PRUnichar *pattern); \
  NS_IMETHOD DumpStats(const PRUnichar *pattern); \
  NS_IMETHOD GetStats(const PRUnichar *pattern, PRBool withDescriptions, PRUnichar **stats); \
  NS_IMETHOD InternalAndReservedMethod1IMachineDebugger(void); \
  NS_IMETHOD InternalAndReservedMethod2IMachineDebugger(void); \
  NS_IMETHOD InternalAndReservedMethod3IMachineDebugger(void); \
  NS_IMETHOD InternalAndReservedMethod4IMachineDebugger(void); \
  NS_IMETHOD InternalAndReservedMethod5IMachineDebugger(void); \
  NS_IMETHOD InternalAndReservedMethod6IMachineDebugger(void); \
  NS_IMETHOD InternalAndReservedMethod7IMachineDebugger(void); \
  NS_IMETHOD InternalAndReservedMethod8IMachineDebugger(void); \
  NS_IMETHOD InternalAndReservedMethod9IMachineDebugger(void); \
  NS_IMETHOD InternalAndReservedMethod10IMachineDebugger(void); \
  NS_IMETHOD InternalAndReservedMethod11IMachineDebugger(void); \
  NS_IMETHOD InternalAndReservedMethod12IMachineDebugger(void); \
  NS_IMETHOD InternalAndReservedMethod13IMachineDebugger(void); \
  NS_IMETHOD InternalAndReservedMethod14IMachineDebugger(void); \
  NS_IMETHOD InternalAndReservedMethod15IMachineDebugger(void); \
  NS_IMETHOD InternalAndReservedMethod16IMachineDebugger(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IMACHINEDEBUGGER(_to) \
  NS_IMETHOD GetSingleStep(PRBool *aSingleStep) { return _to GetSingleStep(aSingleStep); } \
  NS_IMETHOD SetSingleStep(PRBool aSingleStep) { return _to SetSingleStep(aSingleStep); } \
  NS_IMETHOD GetRecompileUser(PRBool *aRecompileUser) { return _to GetRecompileUser(aRecompileUser); } \
  NS_IMETHOD SetRecompileUser(PRBool aRecompileUser) { return _to SetRecompileUser(aRecompileUser); } \
  NS_IMETHOD GetRecompileSupervisor(PRBool *aRecompileSupervisor) { return _to GetRecompileSupervisor(aRecompileSupervisor); } \
  NS_IMETHOD SetRecompileSupervisor(PRBool aRecompileSupervisor) { return _to SetRecompileSupervisor(aRecompileSupervisor); } \
  NS_IMETHOD GetExecuteAllInIEM(PRBool *aExecuteAllInIEM) { return _to GetExecuteAllInIEM(aExecuteAllInIEM); } \
  NS_IMETHOD SetExecuteAllInIEM(PRBool aExecuteAllInIEM) { return _to SetExecuteAllInIEM(aExecuteAllInIEM); } \
  NS_IMETHOD GetPATMEnabled(PRBool *aPATMEnabled) { return _to GetPATMEnabled(aPATMEnabled); } \
  NS_IMETHOD SetPATMEnabled(PRBool aPATMEnabled) { return _to SetPATMEnabled(aPATMEnabled); } \
  NS_IMETHOD GetCSAMEnabled(PRBool *aCSAMEnabled) { return _to GetCSAMEnabled(aCSAMEnabled); } \
  NS_IMETHOD SetCSAMEnabled(PRBool aCSAMEnabled) { return _to SetCSAMEnabled(aCSAMEnabled); } \
  NS_IMETHOD GetLogEnabled(PRBool *aLogEnabled) { return _to GetLogEnabled(aLogEnabled); } \
  NS_IMETHOD SetLogEnabled(PRBool aLogEnabled) { return _to SetLogEnabled(aLogEnabled); } \
  NS_IMETHOD GetLogDbgFlags(PRUnichar * *aLogDbgFlags) { return _to GetLogDbgFlags(aLogDbgFlags); } \
  NS_IMETHOD GetLogDbgGroups(PRUnichar * *aLogDbgGroups) { return _to GetLogDbgGroups(aLogDbgGroups); } \
  NS_IMETHOD GetLogDbgDestinations(PRUnichar * *aLogDbgDestinations) { return _to GetLogDbgDestinations(aLogDbgDestinations); } \
  NS_IMETHOD GetLogRelFlags(PRUnichar * *aLogRelFlags) { return _to GetLogRelFlags(aLogRelFlags); } \
  NS_IMETHOD GetLogRelGroups(PRUnichar * *aLogRelGroups) { return _to GetLogRelGroups(aLogRelGroups); } \
  NS_IMETHOD GetLogRelDestinations(PRUnichar * *aLogRelDestinations) { return _to GetLogRelDestinations(aLogRelDestinations); } \
  NS_IMETHOD GetHWVirtExEnabled(PRBool *aHWVirtExEnabled) { return _to GetHWVirtExEnabled(aHWVirtExEnabled); } \
  NS_IMETHOD GetHWVirtExNestedPagingEnabled(PRBool *aHWVirtExNestedPagingEnabled) { return _to GetHWVirtExNestedPagingEnabled(aHWVirtExNestedPagingEnabled); } \
  NS_IMETHOD GetHWVirtExVPIDEnabled(PRBool *aHWVirtExVPIDEnabled) { return _to GetHWVirtExVPIDEnabled(aHWVirtExVPIDEnabled); } \
  NS_IMETHOD GetHWVirtExUXEnabled(PRBool *aHWVirtExUXEnabled) { return _to GetHWVirtExUXEnabled(aHWVirtExUXEnabled); } \
  NS_IMETHOD GetOSName(PRUnichar * *aOSName) { return _to GetOSName(aOSName); } \
  NS_IMETHOD GetOSVersion(PRUnichar * *aOSVersion) { return _to GetOSVersion(aOSVersion); } \
  NS_IMETHOD GetPAEEnabled(PRBool *aPAEEnabled) { return _to GetPAEEnabled(aPAEEnabled); } \
  NS_IMETHOD GetVirtualTimeRate(PRUint32 *aVirtualTimeRate) { return _to GetVirtualTimeRate(aVirtualTimeRate); } \
  NS_IMETHOD SetVirtualTimeRate(PRUint32 aVirtualTimeRate) { return _to SetVirtualTimeRate(aVirtualTimeRate); } \
  NS_IMETHOD GetVM(PRInt64 *aVM) { return _to GetVM(aVM); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IMachineDebugger(PRUint32 *aInternalAndReservedAttribute1IMachineDebugger) { return _to GetInternalAndReservedAttribute1IMachineDebugger(aInternalAndReservedAttribute1IMachineDebugger); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IMachineDebugger(PRUint32 *aInternalAndReservedAttribute2IMachineDebugger) { return _to GetInternalAndReservedAttribute2IMachineDebugger(aInternalAndReservedAttribute2IMachineDebugger); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IMachineDebugger(PRUint32 *aInternalAndReservedAttribute3IMachineDebugger) { return _to GetInternalAndReservedAttribute3IMachineDebugger(aInternalAndReservedAttribute3IMachineDebugger); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IMachineDebugger(PRUint32 *aInternalAndReservedAttribute4IMachineDebugger) { return _to GetInternalAndReservedAttribute4IMachineDebugger(aInternalAndReservedAttribute4IMachineDebugger); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IMachineDebugger(PRUint32 *aInternalAndReservedAttribute5IMachineDebugger) { return _to GetInternalAndReservedAttribute5IMachineDebugger(aInternalAndReservedAttribute5IMachineDebugger); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IMachineDebugger(PRUint32 *aInternalAndReservedAttribute6IMachineDebugger) { return _to GetInternalAndReservedAttribute6IMachineDebugger(aInternalAndReservedAttribute6IMachineDebugger); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IMachineDebugger(PRUint32 *aInternalAndReservedAttribute7IMachineDebugger) { return _to GetInternalAndReservedAttribute7IMachineDebugger(aInternalAndReservedAttribute7IMachineDebugger); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IMachineDebugger(PRUint32 *aInternalAndReservedAttribute8IMachineDebugger) { return _to GetInternalAndReservedAttribute8IMachineDebugger(aInternalAndReservedAttribute8IMachineDebugger); } \
  NS_IMETHOD GetInternalAndReservedAttribute9IMachineDebugger(PRUint32 *aInternalAndReservedAttribute9IMachineDebugger) { return _to GetInternalAndReservedAttribute9IMachineDebugger(aInternalAndReservedAttribute9IMachineDebugger); } \
  NS_IMETHOD GetInternalAndReservedAttribute10IMachineDebugger(PRUint32 *aInternalAndReservedAttribute10IMachineDebugger) { return _to GetInternalAndReservedAttribute10IMachineDebugger(aInternalAndReservedAttribute10IMachineDebugger); } \
  NS_IMETHOD GetInternalAndReservedAttribute11IMachineDebugger(PRUint32 *aInternalAndReservedAttribute11IMachineDebugger) { return _to GetInternalAndReservedAttribute11IMachineDebugger(aInternalAndReservedAttribute11IMachineDebugger); } \
  NS_IMETHOD GetInternalAndReservedAttribute12IMachineDebugger(PRUint32 *aInternalAndReservedAttribute12IMachineDebugger) { return _to GetInternalAndReservedAttribute12IMachineDebugger(aInternalAndReservedAttribute12IMachineDebugger); } \
  NS_IMETHOD GetInternalAndReservedAttribute13IMachineDebugger(PRUint32 *aInternalAndReservedAttribute13IMachineDebugger) { return _to GetInternalAndReservedAttribute13IMachineDebugger(aInternalAndReservedAttribute13IMachineDebugger); } \
  NS_IMETHOD GetInternalAndReservedAttribute14IMachineDebugger(PRUint32 *aInternalAndReservedAttribute14IMachineDebugger) { return _to GetInternalAndReservedAttribute14IMachineDebugger(aInternalAndReservedAttribute14IMachineDebugger); } \
  NS_IMETHOD GetInternalAndReservedAttribute15IMachineDebugger(PRUint32 *aInternalAndReservedAttribute15IMachineDebugger) { return _to GetInternalAndReservedAttribute15IMachineDebugger(aInternalAndReservedAttribute15IMachineDebugger); } \
  NS_IMETHOD GetInternalAndReservedAttribute16IMachineDebugger(PRUint32 *aInternalAndReservedAttribute16IMachineDebugger) { return _to GetInternalAndReservedAttribute16IMachineDebugger(aInternalAndReservedAttribute16IMachineDebugger); } \
  NS_IMETHOD DumpGuestCore(const PRUnichar *filename, const PRUnichar *compression) { return _to DumpGuestCore(filename, compression); } \
  NS_IMETHOD DumpHostProcessCore(const PRUnichar *filename, const PRUnichar *compression) { return _to DumpHostProcessCore(filename, compression); } \
  NS_IMETHOD Info(const PRUnichar *name, const PRUnichar *args, PRUnichar **info) { return _to Info(name, args, info); } \
  NS_IMETHOD InjectNMI(void) { return _to InjectNMI(); } \
  NS_IMETHOD ModifyLogGroups(const PRUnichar *settings) { return _to ModifyLogGroups(settings); } \
  NS_IMETHOD ModifyLogFlags(const PRUnichar *settings) { return _to ModifyLogFlags(settings); } \
  NS_IMETHOD ModifyLogDestinations(const PRUnichar *settings) { return _to ModifyLogDestinations(settings); } \
  NS_IMETHOD ReadPhysicalMemory(PRInt64 address, PRUint32 size, PRUint32 *bytesSize, PRUint8 **bytes) { return _to ReadPhysicalMemory(address, size, bytesSize, bytes); } \
  NS_IMETHOD WritePhysicalMemory(PRInt64 address, PRUint32 size, PRUint32 bytesSize, PRUint8 *bytes) { return _to WritePhysicalMemory(address, size, bytesSize, bytes); } \
  NS_IMETHOD ReadVirtualMemory(PRUint32 cpuId, PRInt64 address, PRUint32 size, PRUint32 *bytesSize, PRUint8 **bytes) { return _to ReadVirtualMemory(cpuId, address, size, bytesSize, bytes); } \
  NS_IMETHOD WriteVirtualMemory(PRUint32 cpuId, PRInt64 address, PRUint32 size, PRUint32 bytesSize, PRUint8 *bytes) { return _to WriteVirtualMemory(cpuId, address, size, bytesSize, bytes); } \
  NS_IMETHOD LoadPlugIn(const PRUnichar *name, PRUnichar **plugInName) { return _to LoadPlugIn(name, plugInName); } \
  NS_IMETHOD UnloadPlugIn(const PRUnichar *name) { return _to UnloadPlugIn(name); } \
  NS_IMETHOD DetectOS(PRUnichar **os) { return _to DetectOS(os); } \
  NS_IMETHOD QueryOSKernelLog(PRUint32 maxMessages, PRUnichar **dmesg) { return _to QueryOSKernelLog(maxMessages, dmesg); } \
  NS_IMETHOD GetRegister(PRUint32 cpuId, const PRUnichar *name, PRUnichar **value) { return _to GetRegister(cpuId, name, value); } \
  NS_IMETHOD GetRegisters(PRUint32 cpuId, PRUint32 *namesSize, PRUnichar ***names, PRUint32 *valuesSize, PRUnichar ***values) { return _to GetRegisters(cpuId, namesSize, names, valuesSize, values); } \
  NS_IMETHOD SetRegister(PRUint32 cpuId, const PRUnichar *name, const PRUnichar *value) { return _to SetRegister(cpuId, name, value); } \
  NS_IMETHOD SetRegisters(PRUint32 cpuId, PRUint32 namesSize, const PRUnichar **names, PRUint32 valuesSize, const PRUnichar **values) { return _to SetRegisters(cpuId, namesSize, names, valuesSize, values); } \
  NS_IMETHOD DumpGuestStack(PRUint32 cpuId, PRUnichar **stack) { return _to DumpGuestStack(cpuId, stack); } \
  NS_IMETHOD ResetStats(const PRUnichar *pattern) { return _to ResetStats(pattern); } \
  NS_IMETHOD DumpStats(const PRUnichar *pattern) { return _to DumpStats(pattern); } \
  NS_IMETHOD GetStats(const PRUnichar *pattern, PRBool withDescriptions, PRUnichar **stats) { return _to GetStats(pattern, withDescriptions, stats); } \
  NS_IMETHOD InternalAndReservedMethod1IMachineDebugger(void) { return _to InternalAndReservedMethod1IMachineDebugger(); } \
  NS_IMETHOD InternalAndReservedMethod2IMachineDebugger(void) { return _to InternalAndReservedMethod2IMachineDebugger(); } \
  NS_IMETHOD InternalAndReservedMethod3IMachineDebugger(void) { return _to InternalAndReservedMethod3IMachineDebugger(); } \
  NS_IMETHOD InternalAndReservedMethod4IMachineDebugger(void) { return _to InternalAndReservedMethod4IMachineDebugger(); } \
  NS_IMETHOD InternalAndReservedMethod5IMachineDebugger(void) { return _to InternalAndReservedMethod5IMachineDebugger(); } \
  NS_IMETHOD InternalAndReservedMethod6IMachineDebugger(void) { return _to InternalAndReservedMethod6IMachineDebugger(); } \
  NS_IMETHOD InternalAndReservedMethod7IMachineDebugger(void) { return _to InternalAndReservedMethod7IMachineDebugger(); } \
  NS_IMETHOD InternalAndReservedMethod8IMachineDebugger(void) { return _to InternalAndReservedMethod8IMachineDebugger(); } \
  NS_IMETHOD InternalAndReservedMethod9IMachineDebugger(void) { return _to InternalAndReservedMethod9IMachineDebugger(); } \
  NS_IMETHOD InternalAndReservedMethod10IMachineDebugger(void) { return _to InternalAndReservedMethod10IMachineDebugger(); } \
  NS_IMETHOD InternalAndReservedMethod11IMachineDebugger(void) { return _to InternalAndReservedMethod11IMachineDebugger(); } \
  NS_IMETHOD InternalAndReservedMethod12IMachineDebugger(void) { return _to InternalAndReservedMethod12IMachineDebugger(); } \
  NS_IMETHOD InternalAndReservedMethod13IMachineDebugger(void) { return _to InternalAndReservedMethod13IMachineDebugger(); } \
  NS_IMETHOD InternalAndReservedMethod14IMachineDebugger(void) { return _to InternalAndReservedMethod14IMachineDebugger(); } \
  NS_IMETHOD InternalAndReservedMethod15IMachineDebugger(void) { return _to InternalAndReservedMethod15IMachineDebugger(); } \
  NS_IMETHOD InternalAndReservedMethod16IMachineDebugger(void) { return _to InternalAndReservedMethod16IMachineDebugger(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IMACHINEDEBUGGER(_to) \
  NS_IMETHOD GetSingleStep(PRBool *aSingleStep) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSingleStep(aSingleStep); } \
  NS_IMETHOD SetSingleStep(PRBool aSingleStep) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSingleStep(aSingleStep); } \
  NS_IMETHOD GetRecompileUser(PRBool *aRecompileUser) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecompileUser(aRecompileUser); } \
  NS_IMETHOD SetRecompileUser(PRBool aRecompileUser) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetRecompileUser(aRecompileUser); } \
  NS_IMETHOD GetRecompileSupervisor(PRBool *aRecompileSupervisor) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecompileSupervisor(aRecompileSupervisor); } \
  NS_IMETHOD SetRecompileSupervisor(PRBool aRecompileSupervisor) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetRecompileSupervisor(aRecompileSupervisor); } \
  NS_IMETHOD GetExecuteAllInIEM(PRBool *aExecuteAllInIEM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetExecuteAllInIEM(aExecuteAllInIEM); } \
  NS_IMETHOD SetExecuteAllInIEM(PRBool aExecuteAllInIEM) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetExecuteAllInIEM(aExecuteAllInIEM); } \
  NS_IMETHOD GetPATMEnabled(PRBool *aPATMEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPATMEnabled(aPATMEnabled); } \
  NS_IMETHOD SetPATMEnabled(PRBool aPATMEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPATMEnabled(aPATMEnabled); } \
  NS_IMETHOD GetCSAMEnabled(PRBool *aCSAMEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCSAMEnabled(aCSAMEnabled); } \
  NS_IMETHOD SetCSAMEnabled(PRBool aCSAMEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCSAMEnabled(aCSAMEnabled); } \
  NS_IMETHOD GetLogEnabled(PRBool *aLogEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLogEnabled(aLogEnabled); } \
  NS_IMETHOD SetLogEnabled(PRBool aLogEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLogEnabled(aLogEnabled); } \
  NS_IMETHOD GetLogDbgFlags(PRUnichar * *aLogDbgFlags) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLogDbgFlags(aLogDbgFlags); } \
  NS_IMETHOD GetLogDbgGroups(PRUnichar * *aLogDbgGroups) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLogDbgGroups(aLogDbgGroups); } \
  NS_IMETHOD GetLogDbgDestinations(PRUnichar * *aLogDbgDestinations) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLogDbgDestinations(aLogDbgDestinations); } \
  NS_IMETHOD GetLogRelFlags(PRUnichar * *aLogRelFlags) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLogRelFlags(aLogRelFlags); } \
  NS_IMETHOD GetLogRelGroups(PRUnichar * *aLogRelGroups) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLogRelGroups(aLogRelGroups); } \
  NS_IMETHOD GetLogRelDestinations(PRUnichar * *aLogRelDestinations) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLogRelDestinations(aLogRelDestinations); } \
  NS_IMETHOD GetHWVirtExEnabled(PRBool *aHWVirtExEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHWVirtExEnabled(aHWVirtExEnabled); } \
  NS_IMETHOD GetHWVirtExNestedPagingEnabled(PRBool *aHWVirtExNestedPagingEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHWVirtExNestedPagingEnabled(aHWVirtExNestedPagingEnabled); } \
  NS_IMETHOD GetHWVirtExVPIDEnabled(PRBool *aHWVirtExVPIDEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHWVirtExVPIDEnabled(aHWVirtExVPIDEnabled); } \
  NS_IMETHOD GetHWVirtExUXEnabled(PRBool *aHWVirtExUXEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHWVirtExUXEnabled(aHWVirtExUXEnabled); } \
  NS_IMETHOD GetOSName(PRUnichar * *aOSName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOSName(aOSName); } \
  NS_IMETHOD GetOSVersion(PRUnichar * *aOSVersion) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOSVersion(aOSVersion); } \
  NS_IMETHOD GetPAEEnabled(PRBool *aPAEEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPAEEnabled(aPAEEnabled); } \
  NS_IMETHOD GetVirtualTimeRate(PRUint32 *aVirtualTimeRate) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVirtualTimeRate(aVirtualTimeRate); } \
  NS_IMETHOD SetVirtualTimeRate(PRUint32 aVirtualTimeRate) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetVirtualTimeRate(aVirtualTimeRate); } \
  NS_IMETHOD GetVM(PRInt64 *aVM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVM(aVM); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IMachineDebugger(PRUint32 *aInternalAndReservedAttribute1IMachineDebugger) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IMachineDebugger(aInternalAndReservedAttribute1IMachineDebugger); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IMachineDebugger(PRUint32 *aInternalAndReservedAttribute2IMachineDebugger) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IMachineDebugger(aInternalAndReservedAttribute2IMachineDebugger); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IMachineDebugger(PRUint32 *aInternalAndReservedAttribute3IMachineDebugger) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IMachineDebugger(aInternalAndReservedAttribute3IMachineDebugger); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IMachineDebugger(PRUint32 *aInternalAndReservedAttribute4IMachineDebugger) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IMachineDebugger(aInternalAndReservedAttribute4IMachineDebugger); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IMachineDebugger(PRUint32 *aInternalAndReservedAttribute5IMachineDebugger) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IMachineDebugger(aInternalAndReservedAttribute5IMachineDebugger); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IMachineDebugger(PRUint32 *aInternalAndReservedAttribute6IMachineDebugger) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IMachineDebugger(aInternalAndReservedAttribute6IMachineDebugger); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IMachineDebugger(PRUint32 *aInternalAndReservedAttribute7IMachineDebugger) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IMachineDebugger(aInternalAndReservedAttribute7IMachineDebugger); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IMachineDebugger(PRUint32 *aInternalAndReservedAttribute8IMachineDebugger) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IMachineDebugger(aInternalAndReservedAttribute8IMachineDebugger); } \
  NS_IMETHOD GetInternalAndReservedAttribute9IMachineDebugger(PRUint32 *aInternalAndReservedAttribute9IMachineDebugger) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute9IMachineDebugger(aInternalAndReservedAttribute9IMachineDebugger); } \
  NS_IMETHOD GetInternalAndReservedAttribute10IMachineDebugger(PRUint32 *aInternalAndReservedAttribute10IMachineDebugger) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute10IMachineDebugger(aInternalAndReservedAttribute10IMachineDebugger); } \
  NS_IMETHOD GetInternalAndReservedAttribute11IMachineDebugger(PRUint32 *aInternalAndReservedAttribute11IMachineDebugger) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute11IMachineDebugger(aInternalAndReservedAttribute11IMachineDebugger); } \
  NS_IMETHOD GetInternalAndReservedAttribute12IMachineDebugger(PRUint32 *aInternalAndReservedAttribute12IMachineDebugger) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute12IMachineDebugger(aInternalAndReservedAttribute12IMachineDebugger); } \
  NS_IMETHOD GetInternalAndReservedAttribute13IMachineDebugger(PRUint32 *aInternalAndReservedAttribute13IMachineDebugger) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute13IMachineDebugger(aInternalAndReservedAttribute13IMachineDebugger); } \
  NS_IMETHOD GetInternalAndReservedAttribute14IMachineDebugger(PRUint32 *aInternalAndReservedAttribute14IMachineDebugger) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute14IMachineDebugger(aInternalAndReservedAttribute14IMachineDebugger); } \
  NS_IMETHOD GetInternalAndReservedAttribute15IMachineDebugger(PRUint32 *aInternalAndReservedAttribute15IMachineDebugger) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute15IMachineDebugger(aInternalAndReservedAttribute15IMachineDebugger); } \
  NS_IMETHOD GetInternalAndReservedAttribute16IMachineDebugger(PRUint32 *aInternalAndReservedAttribute16IMachineDebugger) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute16IMachineDebugger(aInternalAndReservedAttribute16IMachineDebugger); } \
  NS_IMETHOD DumpGuestCore(const PRUnichar *filename, const PRUnichar *compression) { return !_to ? NS_ERROR_NULL_POINTER : _to->DumpGuestCore(filename, compression); } \
  NS_IMETHOD DumpHostProcessCore(const PRUnichar *filename, const PRUnichar *compression) { return !_to ? NS_ERROR_NULL_POINTER : _to->DumpHostProcessCore(filename, compression); } \
  NS_IMETHOD Info(const PRUnichar *name, const PRUnichar *args, PRUnichar **info) { return !_to ? NS_ERROR_NULL_POINTER : _to->Info(name, args, info); } \
  NS_IMETHOD InjectNMI(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InjectNMI(); } \
  NS_IMETHOD ModifyLogGroups(const PRUnichar *settings) { return !_to ? NS_ERROR_NULL_POINTER : _to->ModifyLogGroups(settings); } \
  NS_IMETHOD ModifyLogFlags(const PRUnichar *settings) { return !_to ? NS_ERROR_NULL_POINTER : _to->ModifyLogFlags(settings); } \
  NS_IMETHOD ModifyLogDestinations(const PRUnichar *settings) { return !_to ? NS_ERROR_NULL_POINTER : _to->ModifyLogDestinations(settings); } \
  NS_IMETHOD ReadPhysicalMemory(PRInt64 address, PRUint32 size, PRUint32 *bytesSize, PRUint8 **bytes) { return !_to ? NS_ERROR_NULL_POINTER : _to->ReadPhysicalMemory(address, size, bytesSize, bytes); } \
  NS_IMETHOD WritePhysicalMemory(PRInt64 address, PRUint32 size, PRUint32 bytesSize, PRUint8 *bytes) { return !_to ? NS_ERROR_NULL_POINTER : _to->WritePhysicalMemory(address, size, bytesSize, bytes); } \
  NS_IMETHOD ReadVirtualMemory(PRUint32 cpuId, PRInt64 address, PRUint32 size, PRUint32 *bytesSize, PRUint8 **bytes) { return !_to ? NS_ERROR_NULL_POINTER : _to->ReadVirtualMemory(cpuId, address, size, bytesSize, bytes); } \
  NS_IMETHOD WriteVirtualMemory(PRUint32 cpuId, PRInt64 address, PRUint32 size, PRUint32 bytesSize, PRUint8 *bytes) { return !_to ? NS_ERROR_NULL_POINTER : _to->WriteVirtualMemory(cpuId, address, size, bytesSize, bytes); } \
  NS_IMETHOD LoadPlugIn(const PRUnichar *name, PRUnichar **plugInName) { return !_to ? NS_ERROR_NULL_POINTER : _to->LoadPlugIn(name, plugInName); } \
  NS_IMETHOD UnloadPlugIn(const PRUnichar *name) { return !_to ? NS_ERROR_NULL_POINTER : _to->UnloadPlugIn(name); } \
  NS_IMETHOD DetectOS(PRUnichar **os) { return !_to ? NS_ERROR_NULL_POINTER : _to->DetectOS(os); } \
  NS_IMETHOD QueryOSKernelLog(PRUint32 maxMessages, PRUnichar **dmesg) { return !_to ? NS_ERROR_NULL_POINTER : _to->QueryOSKernelLog(maxMessages, dmesg); } \
  NS_IMETHOD GetRegister(PRUint32 cpuId, const PRUnichar *name, PRUnichar **value) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRegister(cpuId, name, value); } \
  NS_IMETHOD GetRegisters(PRUint32 cpuId, PRUint32 *namesSize, PRUnichar ***names, PRUint32 *valuesSize, PRUnichar ***values) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRegisters(cpuId, namesSize, names, valuesSize, values); } \
  NS_IMETHOD SetRegister(PRUint32 cpuId, const PRUnichar *name, const PRUnichar *value) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetRegister(cpuId, name, value); } \
  NS_IMETHOD SetRegisters(PRUint32 cpuId, PRUint32 namesSize, const PRUnichar **names, PRUint32 valuesSize, const PRUnichar **values) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetRegisters(cpuId, namesSize, names, valuesSize, values); } \
  NS_IMETHOD DumpGuestStack(PRUint32 cpuId, PRUnichar **stack) { return !_to ? NS_ERROR_NULL_POINTER : _to->DumpGuestStack(cpuId, stack); } \
  NS_IMETHOD ResetStats(const PRUnichar *pattern) { return !_to ? NS_ERROR_NULL_POINTER : _to->ResetStats(pattern); } \
  NS_IMETHOD DumpStats(const PRUnichar *pattern) { return !_to ? NS_ERROR_NULL_POINTER : _to->DumpStats(pattern); } \
  NS_IMETHOD GetStats(const PRUnichar *pattern, PRBool withDescriptions, PRUnichar **stats) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStats(pattern, withDescriptions, stats); } \
  NS_IMETHOD InternalAndReservedMethod1IMachineDebugger(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IMachineDebugger(); } \
  NS_IMETHOD InternalAndReservedMethod2IMachineDebugger(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IMachineDebugger(); } \
  NS_IMETHOD InternalAndReservedMethod3IMachineDebugger(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IMachineDebugger(); } \
  NS_IMETHOD InternalAndReservedMethod4IMachineDebugger(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IMachineDebugger(); } \
  NS_IMETHOD InternalAndReservedMethod5IMachineDebugger(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod5IMachineDebugger(); } \
  NS_IMETHOD InternalAndReservedMethod6IMachineDebugger(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod6IMachineDebugger(); } \
  NS_IMETHOD InternalAndReservedMethod7IMachineDebugger(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod7IMachineDebugger(); } \
  NS_IMETHOD InternalAndReservedMethod8IMachineDebugger(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod8IMachineDebugger(); } \
  NS_IMETHOD InternalAndReservedMethod9IMachineDebugger(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod9IMachineDebugger(); } \
  NS_IMETHOD InternalAndReservedMethod10IMachineDebugger(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod10IMachineDebugger(); } \
  NS_IMETHOD InternalAndReservedMethod11IMachineDebugger(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod11IMachineDebugger(); } \
  NS_IMETHOD InternalAndReservedMethod12IMachineDebugger(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod12IMachineDebugger(); } \
  NS_IMETHOD InternalAndReservedMethod13IMachineDebugger(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod13IMachineDebugger(); } \
  NS_IMETHOD InternalAndReservedMethod14IMachineDebugger(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod14IMachineDebugger(); } \
  NS_IMETHOD InternalAndReservedMethod15IMachineDebugger(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod15IMachineDebugger(); } \
  NS_IMETHOD InternalAndReservedMethod16IMachineDebugger(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod16IMachineDebugger(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IMachineDebugger
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IMACHINEDEBUGGER

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IMachineDebugger)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* attribute boolean singleStep; */
NS_IMETHODIMP _MYCLASS_::GetSingleStep(PRBool *aSingleStep)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetSingleStep(PRBool aSingleStep)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean recompileUser; */
NS_IMETHODIMP _MYCLASS_::GetRecompileUser(PRBool *aRecompileUser)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetRecompileUser(PRBool aRecompileUser)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean recompileSupervisor; */
NS_IMETHODIMP _MYCLASS_::GetRecompileSupervisor(PRBool *aRecompileSupervisor)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetRecompileSupervisor(PRBool aRecompileSupervisor)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean executeAllInIEM; */
NS_IMETHODIMP _MYCLASS_::GetExecuteAllInIEM(PRBool *aExecuteAllInIEM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetExecuteAllInIEM(PRBool aExecuteAllInIEM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean PATMEnabled; */
NS_IMETHODIMP _MYCLASS_::GetPATMEnabled(PRBool *aPATMEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetPATMEnabled(PRBool aPATMEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean CSAMEnabled; */
NS_IMETHODIMP _MYCLASS_::GetCSAMEnabled(PRBool *aCSAMEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetCSAMEnabled(PRBool aCSAMEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean logEnabled; */
NS_IMETHODIMP _MYCLASS_::GetLogEnabled(PRBool *aLogEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetLogEnabled(PRBool aLogEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring logDbgFlags; */
NS_IMETHODIMP _MYCLASS_::GetLogDbgFlags(PRUnichar * *aLogDbgFlags)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring logDbgGroups; */
NS_IMETHODIMP _MYCLASS_::GetLogDbgGroups(PRUnichar * *aLogDbgGroups)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring logDbgDestinations; */
NS_IMETHODIMP _MYCLASS_::GetLogDbgDestinations(PRUnichar * *aLogDbgDestinations)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring logRelFlags; */
NS_IMETHODIMP _MYCLASS_::GetLogRelFlags(PRUnichar * *aLogRelFlags)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring logRelGroups; */
NS_IMETHODIMP _MYCLASS_::GetLogRelGroups(PRUnichar * *aLogRelGroups)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring logRelDestinations; */
NS_IMETHODIMP _MYCLASS_::GetLogRelDestinations(PRUnichar * *aLogRelDestinations)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean HWVirtExEnabled; */
NS_IMETHODIMP _MYCLASS_::GetHWVirtExEnabled(PRBool *aHWVirtExEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean HWVirtExNestedPagingEnabled; */
NS_IMETHODIMP _MYCLASS_::GetHWVirtExNestedPagingEnabled(PRBool *aHWVirtExNestedPagingEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean HWVirtExVPIDEnabled; */
NS_IMETHODIMP _MYCLASS_::GetHWVirtExVPIDEnabled(PRBool *aHWVirtExVPIDEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean HWVirtExUXEnabled; */
NS_IMETHODIMP _MYCLASS_::GetHWVirtExUXEnabled(PRBool *aHWVirtExUXEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring OSName; */
NS_IMETHODIMP _MYCLASS_::GetOSName(PRUnichar * *aOSName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring OSVersion; */
NS_IMETHODIMP _MYCLASS_::GetOSVersion(PRUnichar * *aOSVersion)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean PAEEnabled; */
NS_IMETHODIMP _MYCLASS_::GetPAEEnabled(PRBool *aPAEEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long virtualTimeRate; */
NS_IMETHODIMP _MYCLASS_::GetVirtualTimeRate(PRUint32 *aVirtualTimeRate)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetVirtualTimeRate(PRUint32 aVirtualTimeRate)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long long VM; */
NS_IMETHODIMP _MYCLASS_::GetVM(PRInt64 *aVM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IMachineDebugger; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IMachineDebugger(PRUint32 *aInternalAndReservedAttribute1IMachineDebugger)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IMachineDebugger; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IMachineDebugger(PRUint32 *aInternalAndReservedAttribute2IMachineDebugger)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute3IMachineDebugger; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute3IMachineDebugger(PRUint32 *aInternalAndReservedAttribute3IMachineDebugger)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute4IMachineDebugger; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute4IMachineDebugger(PRUint32 *aInternalAndReservedAttribute4IMachineDebugger)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute5IMachineDebugger; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute5IMachineDebugger(PRUint32 *aInternalAndReservedAttribute5IMachineDebugger)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute6IMachineDebugger; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute6IMachineDebugger(PRUint32 *aInternalAndReservedAttribute6IMachineDebugger)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute7IMachineDebugger; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute7IMachineDebugger(PRUint32 *aInternalAndReservedAttribute7IMachineDebugger)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute8IMachineDebugger; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute8IMachineDebugger(PRUint32 *aInternalAndReservedAttribute8IMachineDebugger)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute9IMachineDebugger; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute9IMachineDebugger(PRUint32 *aInternalAndReservedAttribute9IMachineDebugger)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute10IMachineDebugger; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute10IMachineDebugger(PRUint32 *aInternalAndReservedAttribute10IMachineDebugger)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute11IMachineDebugger; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute11IMachineDebugger(PRUint32 *aInternalAndReservedAttribute11IMachineDebugger)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute12IMachineDebugger; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute12IMachineDebugger(PRUint32 *aInternalAndReservedAttribute12IMachineDebugger)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute13IMachineDebugger; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute13IMachineDebugger(PRUint32 *aInternalAndReservedAttribute13IMachineDebugger)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute14IMachineDebugger; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute14IMachineDebugger(PRUint32 *aInternalAndReservedAttribute14IMachineDebugger)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute15IMachineDebugger; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute15IMachineDebugger(PRUint32 *aInternalAndReservedAttribute15IMachineDebugger)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute16IMachineDebugger; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute16IMachineDebugger(PRUint32 *aInternalAndReservedAttribute16IMachineDebugger)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void dumpGuestCore (in wstring filename, in wstring compression); */
NS_IMETHODIMP _MYCLASS_::DumpGuestCore(const PRUnichar *filename, const PRUnichar *compression)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void dumpHostProcessCore (in wstring filename, in wstring compression); */
NS_IMETHODIMP _MYCLASS_::DumpHostProcessCore(const PRUnichar *filename, const PRUnichar *compression)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void info (in wstring name, in wstring args, [retval] out wstring info); */
NS_IMETHODIMP _MYCLASS_::Info(const PRUnichar *name, const PRUnichar *args, PRUnichar **info)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void injectNMI (); */
NS_IMETHODIMP _MYCLASS_::InjectNMI()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void modifyLogGroups (in wstring settings); */
NS_IMETHODIMP _MYCLASS_::ModifyLogGroups(const PRUnichar *settings)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void modifyLogFlags (in wstring settings); */
NS_IMETHODIMP _MYCLASS_::ModifyLogFlags(const PRUnichar *settings)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void modifyLogDestinations (in wstring settings); */
NS_IMETHODIMP _MYCLASS_::ModifyLogDestinations(const PRUnichar *settings)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void readPhysicalMemory (in long long address, in unsigned long size, out unsigned long bytesSize, [array, size_is (bytesSize), retval] out octet bytes); */
NS_IMETHODIMP _MYCLASS_::ReadPhysicalMemory(PRInt64 address, PRUint32 size, PRUint32 *bytesSize, PRUint8 **bytes)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void writePhysicalMemory (in long long address, in unsigned long size, in unsigned long bytesSize, [array, size_is (bytesSize)] in octet bytes); */
NS_IMETHODIMP _MYCLASS_::WritePhysicalMemory(PRInt64 address, PRUint32 size, PRUint32 bytesSize, PRUint8 *bytes)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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); */
NS_IMETHODIMP _MYCLASS_::ReadVirtualMemory(PRUint32 cpuId, PRInt64 address, PRUint32 size, PRUint32 *bytesSize, PRUint8 **bytes)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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); */
NS_IMETHODIMP _MYCLASS_::WriteVirtualMemory(PRUint32 cpuId, PRInt64 address, PRUint32 size, PRUint32 bytesSize, PRUint8 *bytes)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void loadPlugIn (in wstring name, [retval] out wstring plugInName); */
NS_IMETHODIMP _MYCLASS_::LoadPlugIn(const PRUnichar *name, PRUnichar **plugInName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void unloadPlugIn (in wstring name); */
NS_IMETHODIMP _MYCLASS_::UnloadPlugIn(const PRUnichar *name)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void detectOS ([retval] out wstring os); */
NS_IMETHODIMP _MYCLASS_::DetectOS(PRUnichar **os)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void queryOSKernelLog (in unsigned long maxMessages, [retval] out wstring dmesg); */
NS_IMETHODIMP _MYCLASS_::QueryOSKernelLog(PRUint32 maxMessages, PRUnichar **dmesg)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getRegister (in unsigned long cpuId, in wstring name, [retval] out wstring value); */
NS_IMETHODIMP _MYCLASS_::GetRegister(PRUint32 cpuId, const PRUnichar *name, PRUnichar **value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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); */
NS_IMETHODIMP _MYCLASS_::GetRegisters(PRUint32 cpuId, PRUint32 *namesSize, PRUnichar ***names, PRUint32 *valuesSize, PRUnichar ***values)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setRegister (in unsigned long cpuId, in wstring name, in wstring value); */
NS_IMETHODIMP _MYCLASS_::SetRegister(PRUint32 cpuId, const PRUnichar *name, const PRUnichar *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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); */
NS_IMETHODIMP _MYCLASS_::SetRegisters(PRUint32 cpuId, PRUint32 namesSize, const PRUnichar **names, PRUint32 valuesSize, const PRUnichar **values)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void dumpGuestStack (in unsigned long cpuId, [retval] out wstring stack); */
NS_IMETHODIMP _MYCLASS_::DumpGuestStack(PRUint32 cpuId, PRUnichar **stack)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void resetStats (in wstring pattern); */
NS_IMETHODIMP _MYCLASS_::ResetStats(const PRUnichar *pattern)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void dumpStats (in wstring pattern); */
NS_IMETHODIMP _MYCLASS_::DumpStats(const PRUnichar *pattern)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getStats (in wstring pattern, in boolean withDescriptions, [retval] out wstring stats); */
NS_IMETHODIMP _MYCLASS_::GetStats(const PRUnichar *pattern, PRBool withDescriptions, PRUnichar **stats)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1IMachineDebugger (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1IMachineDebugger()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod2IMachineDebugger (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod2IMachineDebugger()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod3IMachineDebugger (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod3IMachineDebugger()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod4IMachineDebugger (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod4IMachineDebugger()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod5IMachineDebugger (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod5IMachineDebugger()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod6IMachineDebugger (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod6IMachineDebugger()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod7IMachineDebugger (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod7IMachineDebugger()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod8IMachineDebugger (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod8IMachineDebugger()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod9IMachineDebugger (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod9IMachineDebugger()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod10IMachineDebugger (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod10IMachineDebugger()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod11IMachineDebugger (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod11IMachineDebugger()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod12IMachineDebugger (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod12IMachineDebugger()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod13IMachineDebugger (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod13IMachineDebugger()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod14IMachineDebugger (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod14IMachineDebugger()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod15IMachineDebugger (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod15IMachineDebugger()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod16IMachineDebugger (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod16IMachineDebugger()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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_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_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_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;

/* starting interface:    IUSBDeviceFilters */
#define IUSBDEVICEFILTERS_IID_STR "9709db9b-3346-49d6-8f1c-41b0c4784ff2"

#define IUSBDEVICEFILTERS_IID \
  {0x9709db9b, 0x3346, 0x49d6, \
    { 0x8f, 0x1c, 0x41, 0xb0, 0xc4, 0x78, 0x4f, 0xf2 }}

class NS_NO_VTABLE IUSBDeviceFilters : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IUSBDEVICEFILTERS_IID)

  /* void getDeviceFilters (out unsigned long deviceFiltersSize, [array, size_is (deviceFiltersSize), retval] out IUSBDeviceFilter deviceFilters); */
  NS_IMETHOD GetDeviceFilters(PRUint32 *deviceFiltersSize, IUSBDeviceFilter ***deviceFilters) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IUSBDeviceFilters; */
  NS_IMETHOD GetInternalAndReservedAttribute1IUSBDeviceFilters(PRUint32 *aInternalAndReservedAttribute1IUSBDeviceFilters) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IUSBDeviceFilters; */
  NS_IMETHOD GetInternalAndReservedAttribute2IUSBDeviceFilters(PRUint32 *aInternalAndReservedAttribute2IUSBDeviceFilters) = 0;

  /* void createDeviceFilter (in wstring name, [retval] out IUSBDeviceFilter filter); */
  NS_IMETHOD CreateDeviceFilter(const PRUnichar *name, IUSBDeviceFilter **filter) = 0;

  /* void insertDeviceFilter (in unsigned long position, in IUSBDeviceFilter filter); */
  NS_IMETHOD InsertDeviceFilter(PRUint32 position, IUSBDeviceFilter *filter) = 0;

  /* void removeDeviceFilter (in unsigned long position, [retval] out IUSBDeviceFilter filter); */
  NS_IMETHOD RemoveDeviceFilter(PRUint32 position, IUSBDeviceFilter **filter) = 0;

  /* void InternalAndReservedMethod1IUSBDeviceFilters (); */
  NS_IMETHOD InternalAndReservedMethod1IUSBDeviceFilters(void) = 0;

  /* void InternalAndReservedMethod2IUSBDeviceFilters (); */
  NS_IMETHOD InternalAndReservedMethod2IUSBDeviceFilters(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IUSBDEVICEFILTERS \
  NS_IMETHOD GetDeviceFilters(PRUint32 *deviceFiltersSize, IUSBDeviceFilter ***deviceFilters); \
  NS_IMETHOD GetInternalAndReservedAttribute1IUSBDeviceFilters(PRUint32 *aInternalAndReservedAttribute1IUSBDeviceFilters); \
  NS_IMETHOD GetInternalAndReservedAttribute2IUSBDeviceFilters(PRUint32 *aInternalAndReservedAttribute2IUSBDeviceFilters); \
  NS_IMETHOD CreateDeviceFilter(const PRUnichar *name, IUSBDeviceFilter **filter); \
  NS_IMETHOD InsertDeviceFilter(PRUint32 position, IUSBDeviceFilter *filter); \
  NS_IMETHOD RemoveDeviceFilter(PRUint32 position, IUSBDeviceFilter **filter); \
  NS_IMETHOD InternalAndReservedMethod1IUSBDeviceFilters(void); \
  NS_IMETHOD InternalAndReservedMethod2IUSBDeviceFilters(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IUSBDEVICEFILTERS(_to) \
  NS_IMETHOD GetDeviceFilters(PRUint32 *deviceFiltersSize, IUSBDeviceFilter ***deviceFilters) { return _to GetDeviceFilters(deviceFiltersSize, deviceFilters); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IUSBDeviceFilters(PRUint32 *aInternalAndReservedAttribute1IUSBDeviceFilters) { return _to GetInternalAndReservedAttribute1IUSBDeviceFilters(aInternalAndReservedAttribute1IUSBDeviceFilters); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IUSBDeviceFilters(PRUint32 *aInternalAndReservedAttribute2IUSBDeviceFilters) { return _to GetInternalAndReservedAttribute2IUSBDeviceFilters(aInternalAndReservedAttribute2IUSBDeviceFilters); } \
  NS_IMETHOD CreateDeviceFilter(const PRUnichar *name, IUSBDeviceFilter **filter) { return _to CreateDeviceFilter(name, filter); } \
  NS_IMETHOD InsertDeviceFilter(PRUint32 position, IUSBDeviceFilter *filter) { return _to InsertDeviceFilter(position, filter); } \
  NS_IMETHOD RemoveDeviceFilter(PRUint32 position, IUSBDeviceFilter **filter) { return _to RemoveDeviceFilter(position, filter); } \
  NS_IMETHOD InternalAndReservedMethod1IUSBDeviceFilters(void) { return _to InternalAndReservedMethod1IUSBDeviceFilters(); } \
  NS_IMETHOD InternalAndReservedMethod2IUSBDeviceFilters(void) { return _to InternalAndReservedMethod2IUSBDeviceFilters(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IUSBDEVICEFILTERS(_to) \
  NS_IMETHOD GetDeviceFilters(PRUint32 *deviceFiltersSize, IUSBDeviceFilter ***deviceFilters) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDeviceFilters(deviceFiltersSize, deviceFilters); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IUSBDeviceFilters(PRUint32 *aInternalAndReservedAttribute1IUSBDeviceFilters) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IUSBDeviceFilters(aInternalAndReservedAttribute1IUSBDeviceFilters); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IUSBDeviceFilters(PRUint32 *aInternalAndReservedAttribute2IUSBDeviceFilters) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IUSBDeviceFilters(aInternalAndReservedAttribute2IUSBDeviceFilters); } \
  NS_IMETHOD CreateDeviceFilter(const PRUnichar *name, IUSBDeviceFilter **filter) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateDeviceFilter(name, filter); } \
  NS_IMETHOD InsertDeviceFilter(PRUint32 position, IUSBDeviceFilter *filter) { return !_to ? NS_ERROR_NULL_POINTER : _to->InsertDeviceFilter(position, filter); } \
  NS_IMETHOD RemoveDeviceFilter(PRUint32 position, IUSBDeviceFilter **filter) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveDeviceFilter(position, filter); } \
  NS_IMETHOD InternalAndReservedMethod1IUSBDeviceFilters(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IUSBDeviceFilters(); } \
  NS_IMETHOD InternalAndReservedMethod2IUSBDeviceFilters(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IUSBDeviceFilters(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IUSBDeviceFilters
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IUSBDEVICEFILTERS

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IUSBDeviceFilters)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* void getDeviceFilters (out unsigned long deviceFiltersSize, [array, size_is (deviceFiltersSize), retval] out IUSBDeviceFilter deviceFilters); */
NS_IMETHODIMP _MYCLASS_::GetDeviceFilters(PRUint32 *deviceFiltersSize, IUSBDeviceFilter ***deviceFilters)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IUSBDeviceFilters; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IUSBDeviceFilters(PRUint32 *aInternalAndReservedAttribute1IUSBDeviceFilters)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IUSBDeviceFilters; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IUSBDeviceFilters(PRUint32 *aInternalAndReservedAttribute2IUSBDeviceFilters)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void createDeviceFilter (in wstring name, [retval] out IUSBDeviceFilter filter); */
NS_IMETHODIMP _MYCLASS_::CreateDeviceFilter(const PRUnichar *name, IUSBDeviceFilter **filter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void insertDeviceFilter (in unsigned long position, in IUSBDeviceFilter filter); */
NS_IMETHODIMP _MYCLASS_::InsertDeviceFilter(PRUint32 position, IUSBDeviceFilter *filter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeDeviceFilter (in unsigned long position, [retval] out IUSBDeviceFilter filter); */
NS_IMETHODIMP _MYCLASS_::RemoveDeviceFilter(PRUint32 position, IUSBDeviceFilter **filter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1IUSBDeviceFilters (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1IUSBDeviceFilters()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod2IUSBDeviceFilters (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod2IUSBDeviceFilters()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IUSBController */
#define IUSBCONTROLLER_IID_STR "0c293c51-4810-e174-4f78-199376c63bbe"

#define IUSBCONTROLLER_IID \
  {0x0c293c51, 0x4810, 0xe174, \
    { 0x4f, 0x78, 0x19, 0x93, 0x76, 0xc6, 0x3b, 0xbe }}

class NS_NO_VTABLE IUSBController : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IUSBCONTROLLER_IID)

  /* attribute wstring name; */
  NS_IMETHOD GetName(PRUnichar * *aName) = 0;
  NS_IMETHOD SetName(const PRUnichar * aName) = 0;

  /* attribute PRUint32 type; */
  NS_IMETHOD GetType(PRUint32 *aType) = 0;
  NS_IMETHOD SetType(PRUint32 aType) = 0;

  /* readonly attribute unsigned short USBStandard; */
  NS_IMETHOD GetUSBStandard(PRUint16 *aUSBStandard) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IUSBController; */
  NS_IMETHOD GetInternalAndReservedAttribute1IUSBController(PRUint32 *aInternalAndReservedAttribute1IUSBController) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IUSBController; */
  NS_IMETHOD GetInternalAndReservedAttribute2IUSBController(PRUint32 *aInternalAndReservedAttribute2IUSBController) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IUSBCONTROLLER \
  NS_IMETHOD GetName(PRUnichar * *aName); \
  NS_IMETHOD SetName(const PRUnichar * aName); \
  NS_IMETHOD GetType(PRUint32 *aType); \
  NS_IMETHOD SetType(PRUint32 aType); \
  NS_IMETHOD GetUSBStandard(PRUint16 *aUSBStandard); \
  NS_IMETHOD GetInternalAndReservedAttribute1IUSBController(PRUint32 *aInternalAndReservedAttribute1IUSBController); \
  NS_IMETHOD GetInternalAndReservedAttribute2IUSBController(PRUint32 *aInternalAndReservedAttribute2IUSBController); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IUSBCONTROLLER(_to) \
  NS_IMETHOD GetName(PRUnichar * *aName) { return _to GetName(aName); } \
  NS_IMETHOD SetName(const PRUnichar * aName) { return _to SetName(aName); } \
  NS_IMETHOD GetType(PRUint32 *aType) { return _to GetType(aType); } \
  NS_IMETHOD SetType(PRUint32 aType) { return _to SetType(aType); } \
  NS_IMETHOD GetUSBStandard(PRUint16 *aUSBStandard) { return _to GetUSBStandard(aUSBStandard); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IUSBController(PRUint32 *aInternalAndReservedAttribute1IUSBController) { return _to GetInternalAndReservedAttribute1IUSBController(aInternalAndReservedAttribute1IUSBController); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IUSBController(PRUint32 *aInternalAndReservedAttribute2IUSBController) { return _to GetInternalAndReservedAttribute2IUSBController(aInternalAndReservedAttribute2IUSBController); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IUSBCONTROLLER(_to) \
  NS_IMETHOD GetName(PRUnichar * *aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
  NS_IMETHOD SetName(const PRUnichar * aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetName(aName); } \
  NS_IMETHOD GetType(PRUint32 *aType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetType(aType); } \
  NS_IMETHOD SetType(PRUint32 aType) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetType(aType); } \
  NS_IMETHOD GetUSBStandard(PRUint16 *aUSBStandard) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUSBStandard(aUSBStandard); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IUSBController(PRUint32 *aInternalAndReservedAttribute1IUSBController) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IUSBController(aInternalAndReservedAttribute1IUSBController); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IUSBController(PRUint32 *aInternalAndReservedAttribute2IUSBController) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IUSBController(aInternalAndReservedAttribute2IUSBController); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IUSBController
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IUSBCONTROLLER

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IUSBController)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* attribute wstring name; */
NS_IMETHODIMP _MYCLASS_::GetName(PRUnichar * *aName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetName(const PRUnichar * aName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute PRUint32 type; */
NS_IMETHODIMP _MYCLASS_::GetType(PRUint32 *aType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetType(PRUint32 aType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned short USBStandard; */
NS_IMETHODIMP _MYCLASS_::GetUSBStandard(PRUint16 *aUSBStandard)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IUSBController; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IUSBController(PRUint32 *aInternalAndReservedAttribute1IUSBController)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IUSBController; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IUSBController(PRUint32 *aInternalAndReservedAttribute2IUSBController)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IUSBDevice */
#define IUSBDEVICE_IID_STR "5915d179-83c7-4f2b-a323-9a97f46f4e29"

#define IUSBDEVICE_IID \
  {0x5915d179, 0x83c7, 0x4f2b, \
    { 0xa3, 0x23, 0x9a, 0x97, 0xf4, 0x6f, 0x4e, 0x29 }}

class NS_NO_VTABLE IUSBDevice : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IUSBDEVICE_IID)

  /* readonly attribute wstring id; */
  NS_IMETHOD GetId(PRUnichar * *aId) = 0;

  /* readonly attribute unsigned short vendorId; */
  NS_IMETHOD GetVendorId(PRUint16 *aVendorId) = 0;

  /* readonly attribute unsigned short productId; */
  NS_IMETHOD GetProductId(PRUint16 *aProductId) = 0;

  /* readonly attribute unsigned short revision; */
  NS_IMETHOD GetRevision(PRUint16 *aRevision) = 0;

  /* readonly attribute wstring manufacturer; */
  NS_IMETHOD GetManufacturer(PRUnichar * *aManufacturer) = 0;

  /* readonly attribute wstring product; */
  NS_IMETHOD GetProduct(PRUnichar * *aProduct) = 0;

  /* readonly attribute wstring serialNumber; */
  NS_IMETHOD GetSerialNumber(PRUnichar * *aSerialNumber) = 0;

  /* readonly attribute wstring address; */
  NS_IMETHOD GetAddress(PRUnichar * *aAddress) = 0;

  /* readonly attribute unsigned short port; */
  NS_IMETHOD GetPort(PRUint16 *aPort) = 0;

  /* readonly attribute unsigned short version; */
  NS_IMETHOD GetVersion(PRUint16 *aVersion) = 0;

  /* readonly attribute unsigned short portVersion; */
  NS_IMETHOD GetPortVersion(PRUint16 *aPortVersion) = 0;

  /* readonly attribute PRUint32 speed; */
  NS_IMETHOD GetSpeed(PRUint32 *aSpeed) = 0;

  /* readonly attribute boolean remote; */
  NS_IMETHOD GetRemote(PRBool *aRemote) = 0;

  /* void getDeviceInfo (out unsigned long deviceInfoSize, [array, size_is (deviceInfoSize), retval] out wstring deviceInfo); */
  NS_IMETHOD GetDeviceInfo(PRUint32 *deviceInfoSize, PRUnichar ***deviceInfo) = 0;

  /* readonly attribute wstring backend; */
  NS_IMETHOD GetBackend(PRUnichar * *aBackend) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IUSBDevice; */
  NS_IMETHOD GetInternalAndReservedAttribute1IUSBDevice(PRUint32 *aInternalAndReservedAttribute1IUSBDevice) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IUSBDevice; */
  NS_IMETHOD GetInternalAndReservedAttribute2IUSBDevice(PRUint32 *aInternalAndReservedAttribute2IUSBDevice) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IUSBDEVICE \
  NS_IMETHOD GetId(PRUnichar * *aId); \
  NS_IMETHOD GetVendorId(PRUint16 *aVendorId); \
  NS_IMETHOD GetProductId(PRUint16 *aProductId); \
  NS_IMETHOD GetRevision(PRUint16 *aRevision); \
  NS_IMETHOD GetManufacturer(PRUnichar * *aManufacturer); \
  NS_IMETHOD GetProduct(PRUnichar * *aProduct); \
  NS_IMETHOD GetSerialNumber(PRUnichar * *aSerialNumber); \
  NS_IMETHOD GetAddress(PRUnichar * *aAddress); \
  NS_IMETHOD GetPort(PRUint16 *aPort); \
  NS_IMETHOD GetVersion(PRUint16 *aVersion); \
  NS_IMETHOD GetPortVersion(PRUint16 *aPortVersion); \
  NS_IMETHOD GetSpeed(PRUint32 *aSpeed); \
  NS_IMETHOD GetRemote(PRBool *aRemote); \
  NS_IMETHOD GetDeviceInfo(PRUint32 *deviceInfoSize, PRUnichar ***deviceInfo); \
  NS_IMETHOD GetBackend(PRUnichar * *aBackend); \
  NS_IMETHOD GetInternalAndReservedAttribute1IUSBDevice(PRUint32 *aInternalAndReservedAttribute1IUSBDevice); \
  NS_IMETHOD GetInternalAndReservedAttribute2IUSBDevice(PRUint32 *aInternalAndReservedAttribute2IUSBDevice); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IUSBDEVICE(_to) \
  NS_IMETHOD GetId(PRUnichar * *aId) { return _to GetId(aId); } \
  NS_IMETHOD GetVendorId(PRUint16 *aVendorId) { return _to GetVendorId(aVendorId); } \
  NS_IMETHOD GetProductId(PRUint16 *aProductId) { return _to GetProductId(aProductId); } \
  NS_IMETHOD GetRevision(PRUint16 *aRevision) { return _to GetRevision(aRevision); } \
  NS_IMETHOD GetManufacturer(PRUnichar * *aManufacturer) { return _to GetManufacturer(aManufacturer); } \
  NS_IMETHOD GetProduct(PRUnichar * *aProduct) { return _to GetProduct(aProduct); } \
  NS_IMETHOD GetSerialNumber(PRUnichar * *aSerialNumber) { return _to GetSerialNumber(aSerialNumber); } \
  NS_IMETHOD GetAddress(PRUnichar * *aAddress) { return _to GetAddress(aAddress); } \
  NS_IMETHOD GetPort(PRUint16 *aPort) { return _to GetPort(aPort); } \
  NS_IMETHOD GetVersion(PRUint16 *aVersion) { return _to GetVersion(aVersion); } \
  NS_IMETHOD GetPortVersion(PRUint16 *aPortVersion) { return _to GetPortVersion(aPortVersion); } \
  NS_IMETHOD GetSpeed(PRUint32 *aSpeed) { return _to GetSpeed(aSpeed); } \
  NS_IMETHOD GetRemote(PRBool *aRemote) { return _to GetRemote(aRemote); } \
  NS_IMETHOD GetDeviceInfo(PRUint32 *deviceInfoSize, PRUnichar ***deviceInfo) { return _to GetDeviceInfo(deviceInfoSize, deviceInfo); } \
  NS_IMETHOD GetBackend(PRUnichar * *aBackend) { return _to GetBackend(aBackend); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IUSBDevice(PRUint32 *aInternalAndReservedAttribute1IUSBDevice) { return _to GetInternalAndReservedAttribute1IUSBDevice(aInternalAndReservedAttribute1IUSBDevice); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IUSBDevice(PRUint32 *aInternalAndReservedAttribute2IUSBDevice) { return _to GetInternalAndReservedAttribute2IUSBDevice(aInternalAndReservedAttribute2IUSBDevice); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IUSBDEVICE(_to) \
  NS_IMETHOD GetId(PRUnichar * *aId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetId(aId); } \
  NS_IMETHOD GetVendorId(PRUint16 *aVendorId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVendorId(aVendorId); } \
  NS_IMETHOD GetProductId(PRUint16 *aProductId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProductId(aProductId); } \
  NS_IMETHOD GetRevision(PRUint16 *aRevision) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRevision(aRevision); } \
  NS_IMETHOD GetManufacturer(PRUnichar * *aManufacturer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetManufacturer(aManufacturer); } \
  NS_IMETHOD GetProduct(PRUnichar * *aProduct) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProduct(aProduct); } \
  NS_IMETHOD GetSerialNumber(PRUnichar * *aSerialNumber) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSerialNumber(aSerialNumber); } \
  NS_IMETHOD GetAddress(PRUnichar * *aAddress) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAddress(aAddress); } \
  NS_IMETHOD GetPort(PRUint16 *aPort) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPort(aPort); } \
  NS_IMETHOD GetVersion(PRUint16 *aVersion) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVersion(aVersion); } \
  NS_IMETHOD GetPortVersion(PRUint16 *aPortVersion) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPortVersion(aPortVersion); } \
  NS_IMETHOD GetSpeed(PRUint32 *aSpeed) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSpeed(aSpeed); } \
  NS_IMETHOD GetRemote(PRBool *aRemote) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRemote(aRemote); } \
  NS_IMETHOD GetDeviceInfo(PRUint32 *deviceInfoSize, PRUnichar ***deviceInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDeviceInfo(deviceInfoSize, deviceInfo); } \
  NS_IMETHOD GetBackend(PRUnichar * *aBackend) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBackend(aBackend); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IUSBDevice(PRUint32 *aInternalAndReservedAttribute1IUSBDevice) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IUSBDevice(aInternalAndReservedAttribute1IUSBDevice); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IUSBDevice(PRUint32 *aInternalAndReservedAttribute2IUSBDevice) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IUSBDevice(aInternalAndReservedAttribute2IUSBDevice); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IUSBDevice
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IUSBDEVICE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IUSBDevice)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute wstring id; */
NS_IMETHODIMP _MYCLASS_::GetId(PRUnichar * *aId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned short vendorId; */
NS_IMETHODIMP _MYCLASS_::GetVendorId(PRUint16 *aVendorId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned short productId; */
NS_IMETHODIMP _MYCLASS_::GetProductId(PRUint16 *aProductId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned short revision; */
NS_IMETHODIMP _MYCLASS_::GetRevision(PRUint16 *aRevision)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring manufacturer; */
NS_IMETHODIMP _MYCLASS_::GetManufacturer(PRUnichar * *aManufacturer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring product; */
NS_IMETHODIMP _MYCLASS_::GetProduct(PRUnichar * *aProduct)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring serialNumber; */
NS_IMETHODIMP _MYCLASS_::GetSerialNumber(PRUnichar * *aSerialNumber)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring address; */
NS_IMETHODIMP _MYCLASS_::GetAddress(PRUnichar * *aAddress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned short port; */
NS_IMETHODIMP _MYCLASS_::GetPort(PRUint16 *aPort)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned short version; */
NS_IMETHODIMP _MYCLASS_::GetVersion(PRUint16 *aVersion)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned short portVersion; */
NS_IMETHODIMP _MYCLASS_::GetPortVersion(PRUint16 *aPortVersion)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 speed; */
NS_IMETHODIMP _MYCLASS_::GetSpeed(PRUint32 *aSpeed)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean remote; */
NS_IMETHODIMP _MYCLASS_::GetRemote(PRBool *aRemote)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getDeviceInfo (out unsigned long deviceInfoSize, [array, size_is (deviceInfoSize), retval] out wstring deviceInfo); */
NS_IMETHODIMP _MYCLASS_::GetDeviceInfo(PRUint32 *deviceInfoSize, PRUnichar ***deviceInfo)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring backend; */
NS_IMETHODIMP _MYCLASS_::GetBackend(PRUnichar * *aBackend)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IUSBDevice; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IUSBDevice(PRUint32 *aInternalAndReservedAttribute1IUSBDevice)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IUSBDevice; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IUSBDevice(PRUint32 *aInternalAndReservedAttribute2IUSBDevice)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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_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_PortVersion_TO(smth) NS_IMETHOD GetPortVersion (PRUint16 * aPortVersion) { return smth GetPortVersion (aPortVersion); }
#define COM_FORWARD_IUSBDevice_GETTER_PortVersion_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_PortVersion_TO ((obj)->)
#define COM_FORWARD_IUSBDevice_GETTER_PortVersion_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_PortVersion_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;

/* starting interface:    IUSBDeviceFilter */
#define IUSBDEVICEFILTER_IID_STR "45587218-4289-ef4e-8e6a-e5b07816b631"

#define IUSBDEVICEFILTER_IID \
  {0x45587218, 0x4289, 0xef4e, \
    { 0x8e, 0x6a, 0xe5, 0xb0, 0x78, 0x16, 0xb6, 0x31 }}

class NS_NO_VTABLE IUSBDeviceFilter : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IUSBDEVICEFILTER_IID)

  /* attribute wstring name; */
  NS_IMETHOD GetName(PRUnichar * *aName) = 0;
  NS_IMETHOD SetName(const PRUnichar * aName) = 0;

  /* attribute boolean active; */
  NS_IMETHOD GetActive(PRBool *aActive) = 0;
  NS_IMETHOD SetActive(PRBool aActive) = 0;

  /* attribute wstring vendorId; */
  NS_IMETHOD GetVendorId(PRUnichar * *aVendorId) = 0;
  NS_IMETHOD SetVendorId(const PRUnichar * aVendorId) = 0;

  /* attribute wstring productId; */
  NS_IMETHOD GetProductId(PRUnichar * *aProductId) = 0;
  NS_IMETHOD SetProductId(const PRUnichar * aProductId) = 0;

  /* attribute wstring revision; */
  NS_IMETHOD GetRevision(PRUnichar * *aRevision) = 0;
  NS_IMETHOD SetRevision(const PRUnichar * aRevision) = 0;

  /* attribute wstring manufacturer; */
  NS_IMETHOD GetManufacturer(PRUnichar * *aManufacturer) = 0;
  NS_IMETHOD SetManufacturer(const PRUnichar * aManufacturer) = 0;

  /* attribute wstring product; */
  NS_IMETHOD GetProduct(PRUnichar * *aProduct) = 0;
  NS_IMETHOD SetProduct(const PRUnichar * aProduct) = 0;

  /* attribute wstring serialNumber; */
  NS_IMETHOD GetSerialNumber(PRUnichar * *aSerialNumber) = 0;
  NS_IMETHOD SetSerialNumber(const PRUnichar * aSerialNumber) = 0;

  /* attribute wstring port; */
  NS_IMETHOD GetPort(PRUnichar * *aPort) = 0;
  NS_IMETHOD SetPort(const PRUnichar * aPort) = 0;

  /* attribute wstring remote; */
  NS_IMETHOD GetRemote(PRUnichar * *aRemote) = 0;
  NS_IMETHOD SetRemote(const PRUnichar * aRemote) = 0;

  /* attribute unsigned long maskedInterfaces; */
  NS_IMETHOD GetMaskedInterfaces(PRUint32 *aMaskedInterfaces) = 0;
  NS_IMETHOD SetMaskedInterfaces(PRUint32 aMaskedInterfaces) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IUSBDeviceFilter; */
  NS_IMETHOD GetInternalAndReservedAttribute1IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute1IUSBDeviceFilter) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IUSBDeviceFilter; */
  NS_IMETHOD GetInternalAndReservedAttribute2IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute2IUSBDeviceFilter) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IUSBDeviceFilter; */
  NS_IMETHOD GetInternalAndReservedAttribute3IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute3IUSBDeviceFilter) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IUSBDeviceFilter; */
  NS_IMETHOD GetInternalAndReservedAttribute4IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute4IUSBDeviceFilter) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IUSBDeviceFilter; */
  NS_IMETHOD GetInternalAndReservedAttribute5IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute5IUSBDeviceFilter) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IUSBDeviceFilter; */
  NS_IMETHOD GetInternalAndReservedAttribute6IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute6IUSBDeviceFilter) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IUSBDeviceFilter; */
  NS_IMETHOD GetInternalAndReservedAttribute7IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute7IUSBDeviceFilter) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IUSBDeviceFilter; */
  NS_IMETHOD GetInternalAndReservedAttribute8IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute8IUSBDeviceFilter) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IUSBDEVICEFILTER \
  NS_IMETHOD GetName(PRUnichar * *aName); \
  NS_IMETHOD SetName(const PRUnichar * aName); \
  NS_IMETHOD GetActive(PRBool *aActive); \
  NS_IMETHOD SetActive(PRBool aActive); \
  NS_IMETHOD GetVendorId(PRUnichar * *aVendorId); \
  NS_IMETHOD SetVendorId(const PRUnichar * aVendorId); \
  NS_IMETHOD GetProductId(PRUnichar * *aProductId); \
  NS_IMETHOD SetProductId(const PRUnichar * aProductId); \
  NS_IMETHOD GetRevision(PRUnichar * *aRevision); \
  NS_IMETHOD SetRevision(const PRUnichar * aRevision); \
  NS_IMETHOD GetManufacturer(PRUnichar * *aManufacturer); \
  NS_IMETHOD SetManufacturer(const PRUnichar * aManufacturer); \
  NS_IMETHOD GetProduct(PRUnichar * *aProduct); \
  NS_IMETHOD SetProduct(const PRUnichar * aProduct); \
  NS_IMETHOD GetSerialNumber(PRUnichar * *aSerialNumber); \
  NS_IMETHOD SetSerialNumber(const PRUnichar * aSerialNumber); \
  NS_IMETHOD GetPort(PRUnichar * *aPort); \
  NS_IMETHOD SetPort(const PRUnichar * aPort); \
  NS_IMETHOD GetRemote(PRUnichar * *aRemote); \
  NS_IMETHOD SetRemote(const PRUnichar * aRemote); \
  NS_IMETHOD GetMaskedInterfaces(PRUint32 *aMaskedInterfaces); \
  NS_IMETHOD SetMaskedInterfaces(PRUint32 aMaskedInterfaces); \
  NS_IMETHOD GetInternalAndReservedAttribute1IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute1IUSBDeviceFilter); \
  NS_IMETHOD GetInternalAndReservedAttribute2IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute2IUSBDeviceFilter); \
  NS_IMETHOD GetInternalAndReservedAttribute3IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute3IUSBDeviceFilter); \
  NS_IMETHOD GetInternalAndReservedAttribute4IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute4IUSBDeviceFilter); \
  NS_IMETHOD GetInternalAndReservedAttribute5IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute5IUSBDeviceFilter); \
  NS_IMETHOD GetInternalAndReservedAttribute6IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute6IUSBDeviceFilter); \
  NS_IMETHOD GetInternalAndReservedAttribute7IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute7IUSBDeviceFilter); \
  NS_IMETHOD GetInternalAndReservedAttribute8IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute8IUSBDeviceFilter); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IUSBDEVICEFILTER(_to) \
  NS_IMETHOD GetName(PRUnichar * *aName) { return _to GetName(aName); } \
  NS_IMETHOD SetName(const PRUnichar * aName) { return _to SetName(aName); } \
  NS_IMETHOD GetActive(PRBool *aActive) { return _to GetActive(aActive); } \
  NS_IMETHOD SetActive(PRBool aActive) { return _to SetActive(aActive); } \
  NS_IMETHOD GetVendorId(PRUnichar * *aVendorId) { return _to GetVendorId(aVendorId); } \
  NS_IMETHOD SetVendorId(const PRUnichar * aVendorId) { return _to SetVendorId(aVendorId); } \
  NS_IMETHOD GetProductId(PRUnichar * *aProductId) { return _to GetProductId(aProductId); } \
  NS_IMETHOD SetProductId(const PRUnichar * aProductId) { return _to SetProductId(aProductId); } \
  NS_IMETHOD GetRevision(PRUnichar * *aRevision) { return _to GetRevision(aRevision); } \
  NS_IMETHOD SetRevision(const PRUnichar * aRevision) { return _to SetRevision(aRevision); } \
  NS_IMETHOD GetManufacturer(PRUnichar * *aManufacturer) { return _to GetManufacturer(aManufacturer); } \
  NS_IMETHOD SetManufacturer(const PRUnichar * aManufacturer) { return _to SetManufacturer(aManufacturer); } \
  NS_IMETHOD GetProduct(PRUnichar * *aProduct) { return _to GetProduct(aProduct); } \
  NS_IMETHOD SetProduct(const PRUnichar * aProduct) { return _to SetProduct(aProduct); } \
  NS_IMETHOD GetSerialNumber(PRUnichar * *aSerialNumber) { return _to GetSerialNumber(aSerialNumber); } \
  NS_IMETHOD SetSerialNumber(const PRUnichar * aSerialNumber) { return _to SetSerialNumber(aSerialNumber); } \
  NS_IMETHOD GetPort(PRUnichar * *aPort) { return _to GetPort(aPort); } \
  NS_IMETHOD SetPort(const PRUnichar * aPort) { return _to SetPort(aPort); } \
  NS_IMETHOD GetRemote(PRUnichar * *aRemote) { return _to GetRemote(aRemote); } \
  NS_IMETHOD SetRemote(const PRUnichar * aRemote) { return _to SetRemote(aRemote); } \
  NS_IMETHOD GetMaskedInterfaces(PRUint32 *aMaskedInterfaces) { return _to GetMaskedInterfaces(aMaskedInterfaces); } \
  NS_IMETHOD SetMaskedInterfaces(PRUint32 aMaskedInterfaces) { return _to SetMaskedInterfaces(aMaskedInterfaces); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute1IUSBDeviceFilter) { return _to GetInternalAndReservedAttribute1IUSBDeviceFilter(aInternalAndReservedAttribute1IUSBDeviceFilter); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute2IUSBDeviceFilter) { return _to GetInternalAndReservedAttribute2IUSBDeviceFilter(aInternalAndReservedAttribute2IUSBDeviceFilter); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute3IUSBDeviceFilter) { return _to GetInternalAndReservedAttribute3IUSBDeviceFilter(aInternalAndReservedAttribute3IUSBDeviceFilter); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute4IUSBDeviceFilter) { return _to GetInternalAndReservedAttribute4IUSBDeviceFilter(aInternalAndReservedAttribute4IUSBDeviceFilter); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute5IUSBDeviceFilter) { return _to GetInternalAndReservedAttribute5IUSBDeviceFilter(aInternalAndReservedAttribute5IUSBDeviceFilter); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute6IUSBDeviceFilter) { return _to GetInternalAndReservedAttribute6IUSBDeviceFilter(aInternalAndReservedAttribute6IUSBDeviceFilter); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute7IUSBDeviceFilter) { return _to GetInternalAndReservedAttribute7IUSBDeviceFilter(aInternalAndReservedAttribute7IUSBDeviceFilter); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute8IUSBDeviceFilter) { return _to GetInternalAndReservedAttribute8IUSBDeviceFilter(aInternalAndReservedAttribute8IUSBDeviceFilter); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IUSBDEVICEFILTER(_to) \
  NS_IMETHOD GetName(PRUnichar * *aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
  NS_IMETHOD SetName(const PRUnichar * aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetName(aName); } \
  NS_IMETHOD GetActive(PRBool *aActive) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetActive(aActive); } \
  NS_IMETHOD SetActive(PRBool aActive) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetActive(aActive); } \
  NS_IMETHOD GetVendorId(PRUnichar * *aVendorId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVendorId(aVendorId); } \
  NS_IMETHOD SetVendorId(const PRUnichar * aVendorId) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetVendorId(aVendorId); } \
  NS_IMETHOD GetProductId(PRUnichar * *aProductId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProductId(aProductId); } \
  NS_IMETHOD SetProductId(const PRUnichar * aProductId) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetProductId(aProductId); } \
  NS_IMETHOD GetRevision(PRUnichar * *aRevision) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRevision(aRevision); } \
  NS_IMETHOD SetRevision(const PRUnichar * aRevision) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetRevision(aRevision); } \
  NS_IMETHOD GetManufacturer(PRUnichar * *aManufacturer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetManufacturer(aManufacturer); } \
  NS_IMETHOD SetManufacturer(const PRUnichar * aManufacturer) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetManufacturer(aManufacturer); } \
  NS_IMETHOD GetProduct(PRUnichar * *aProduct) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProduct(aProduct); } \
  NS_IMETHOD SetProduct(const PRUnichar * aProduct) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetProduct(aProduct); } \
  NS_IMETHOD GetSerialNumber(PRUnichar * *aSerialNumber) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSerialNumber(aSerialNumber); } \
  NS_IMETHOD SetSerialNumber(const PRUnichar * aSerialNumber) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSerialNumber(aSerialNumber); } \
  NS_IMETHOD GetPort(PRUnichar * *aPort) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPort(aPort); } \
  NS_IMETHOD SetPort(const PRUnichar * aPort) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPort(aPort); } \
  NS_IMETHOD GetRemote(PRUnichar * *aRemote) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRemote(aRemote); } \
  NS_IMETHOD SetRemote(const PRUnichar * aRemote) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetRemote(aRemote); } \
  NS_IMETHOD GetMaskedInterfaces(PRUint32 *aMaskedInterfaces) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMaskedInterfaces(aMaskedInterfaces); } \
  NS_IMETHOD SetMaskedInterfaces(PRUint32 aMaskedInterfaces) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMaskedInterfaces(aMaskedInterfaces); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute1IUSBDeviceFilter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IUSBDeviceFilter(aInternalAndReservedAttribute1IUSBDeviceFilter); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute2IUSBDeviceFilter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IUSBDeviceFilter(aInternalAndReservedAttribute2IUSBDeviceFilter); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute3IUSBDeviceFilter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IUSBDeviceFilter(aInternalAndReservedAttribute3IUSBDeviceFilter); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute4IUSBDeviceFilter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IUSBDeviceFilter(aInternalAndReservedAttribute4IUSBDeviceFilter); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute5IUSBDeviceFilter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IUSBDeviceFilter(aInternalAndReservedAttribute5IUSBDeviceFilter); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute6IUSBDeviceFilter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IUSBDeviceFilter(aInternalAndReservedAttribute6IUSBDeviceFilter); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute7IUSBDeviceFilter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IUSBDeviceFilter(aInternalAndReservedAttribute7IUSBDeviceFilter); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute8IUSBDeviceFilter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IUSBDeviceFilter(aInternalAndReservedAttribute8IUSBDeviceFilter); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IUSBDeviceFilter
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IUSBDEVICEFILTER

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IUSBDeviceFilter)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* attribute wstring name; */
NS_IMETHODIMP _MYCLASS_::GetName(PRUnichar * *aName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetName(const PRUnichar * aName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean active; */
NS_IMETHODIMP _MYCLASS_::GetActive(PRBool *aActive)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetActive(PRBool aActive)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring vendorId; */
NS_IMETHODIMP _MYCLASS_::GetVendorId(PRUnichar * *aVendorId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetVendorId(const PRUnichar * aVendorId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring productId; */
NS_IMETHODIMP _MYCLASS_::GetProductId(PRUnichar * *aProductId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetProductId(const PRUnichar * aProductId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring revision; */
NS_IMETHODIMP _MYCLASS_::GetRevision(PRUnichar * *aRevision)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetRevision(const PRUnichar * aRevision)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring manufacturer; */
NS_IMETHODIMP _MYCLASS_::GetManufacturer(PRUnichar * *aManufacturer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetManufacturer(const PRUnichar * aManufacturer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring product; */
NS_IMETHODIMP _MYCLASS_::GetProduct(PRUnichar * *aProduct)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetProduct(const PRUnichar * aProduct)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring serialNumber; */
NS_IMETHODIMP _MYCLASS_::GetSerialNumber(PRUnichar * *aSerialNumber)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetSerialNumber(const PRUnichar * aSerialNumber)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring port; */
NS_IMETHODIMP _MYCLASS_::GetPort(PRUnichar * *aPort)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetPort(const PRUnichar * aPort)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring remote; */
NS_IMETHODIMP _MYCLASS_::GetRemote(PRUnichar * *aRemote)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetRemote(const PRUnichar * aRemote)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long maskedInterfaces; */
NS_IMETHODIMP _MYCLASS_::GetMaskedInterfaces(PRUint32 *aMaskedInterfaces)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetMaskedInterfaces(PRUint32 aMaskedInterfaces)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IUSBDeviceFilter; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute1IUSBDeviceFilter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IUSBDeviceFilter; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute2IUSBDeviceFilter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute3IUSBDeviceFilter; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute3IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute3IUSBDeviceFilter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute4IUSBDeviceFilter; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute4IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute4IUSBDeviceFilter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute5IUSBDeviceFilter; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute5IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute5IUSBDeviceFilter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute6IUSBDeviceFilter; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute6IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute6IUSBDeviceFilter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute7IUSBDeviceFilter; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute7IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute7IUSBDeviceFilter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute8IUSBDeviceFilter; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute8IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute8IUSBDeviceFilter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IHostUSBDevice */
#define IHOSTUSBDEVICE_IID_STR "c19073dd-cc7b-431b-98b2-951fda8eab89"

#define IHOSTUSBDEVICE_IID \
  {0xc19073dd, 0xcc7b, 0x431b, \
    { 0x98, 0xb2, 0x95, 0x1f, 0xda, 0x8e, 0xab, 0x89 }}

class NS_NO_VTABLE IHostUSBDevice : public IUSBDevice {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IHOSTUSBDEVICE_IID)

  /* readonly attribute PRUint32 state; */
  NS_IMETHOD GetState(PRUint32 *aState) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IHostUSBDevice; */
  NS_IMETHOD GetInternalAndReservedAttribute1IHostUSBDevice(PRUint32 *aInternalAndReservedAttribute1IHostUSBDevice) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IHostUSBDevice; */
  NS_IMETHOD GetInternalAndReservedAttribute2IHostUSBDevice(PRUint32 *aInternalAndReservedAttribute2IHostUSBDevice) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IHostUSBDevice; */
  NS_IMETHOD GetInternalAndReservedAttribute3IHostUSBDevice(PRUint32 *aInternalAndReservedAttribute3IHostUSBDevice) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IHostUSBDevice; */
  NS_IMETHOD GetInternalAndReservedAttribute4IHostUSBDevice(PRUint32 *aInternalAndReservedAttribute4IHostUSBDevice) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IHOSTUSBDEVICE \
  NS_IMETHOD GetState(PRUint32 *aState); \
  NS_IMETHOD GetInternalAndReservedAttribute1IHostUSBDevice(PRUint32 *aInternalAndReservedAttribute1IHostUSBDevice); \
  NS_IMETHOD GetInternalAndReservedAttribute2IHostUSBDevice(PRUint32 *aInternalAndReservedAttribute2IHostUSBDevice); \
  NS_IMETHOD GetInternalAndReservedAttribute3IHostUSBDevice(PRUint32 *aInternalAndReservedAttribute3IHostUSBDevice); \
  NS_IMETHOD GetInternalAndReservedAttribute4IHostUSBDevice(PRUint32 *aInternalAndReservedAttribute4IHostUSBDevice); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IHOSTUSBDEVICE(_to) \
  NS_IMETHOD GetState(PRUint32 *aState) { return _to GetState(aState); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IHostUSBDevice(PRUint32 *aInternalAndReservedAttribute1IHostUSBDevice) { return _to GetInternalAndReservedAttribute1IHostUSBDevice(aInternalAndReservedAttribute1IHostUSBDevice); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IHostUSBDevice(PRUint32 *aInternalAndReservedAttribute2IHostUSBDevice) { return _to GetInternalAndReservedAttribute2IHostUSBDevice(aInternalAndReservedAttribute2IHostUSBDevice); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IHostUSBDevice(PRUint32 *aInternalAndReservedAttribute3IHostUSBDevice) { return _to GetInternalAndReservedAttribute3IHostUSBDevice(aInternalAndReservedAttribute3IHostUSBDevice); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IHostUSBDevice(PRUint32 *aInternalAndReservedAttribute4IHostUSBDevice) { return _to GetInternalAndReservedAttribute4IHostUSBDevice(aInternalAndReservedAttribute4IHostUSBDevice); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IHOSTUSBDEVICE(_to) \
  NS_IMETHOD GetState(PRUint32 *aState) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetState(aState); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IHostUSBDevice(PRUint32 *aInternalAndReservedAttribute1IHostUSBDevice) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IHostUSBDevice(aInternalAndReservedAttribute1IHostUSBDevice); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IHostUSBDevice(PRUint32 *aInternalAndReservedAttribute2IHostUSBDevice) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IHostUSBDevice(aInternalAndReservedAttribute2IHostUSBDevice); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IHostUSBDevice(PRUint32 *aInternalAndReservedAttribute3IHostUSBDevice) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IHostUSBDevice(aInternalAndReservedAttribute3IHostUSBDevice); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IHostUSBDevice(PRUint32 *aInternalAndReservedAttribute4IHostUSBDevice) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IHostUSBDevice(aInternalAndReservedAttribute4IHostUSBDevice); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IHostUSBDevice
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IHOSTUSBDEVICE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IHostUSBDevice)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute PRUint32 state; */
NS_IMETHODIMP _MYCLASS_::GetState(PRUint32 *aState)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IHostUSBDevice; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IHostUSBDevice(PRUint32 *aInternalAndReservedAttribute1IHostUSBDevice)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IHostUSBDevice; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IHostUSBDevice(PRUint32 *aInternalAndReservedAttribute2IHostUSBDevice)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute3IHostUSBDevice; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute3IHostUSBDevice(PRUint32 *aInternalAndReservedAttribute3IHostUSBDevice)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute4IHostUSBDevice; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute4IHostUSBDevice(PRUint32 *aInternalAndReservedAttribute4IHostUSBDevice)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IHostUSBDeviceFilter */
#define IHOSTUSBDEVICEFILTER_IID_STR "01adb2d6-aedf-461c-be2c-99e91bdad8a1"

#define IHOSTUSBDEVICEFILTER_IID \
  {0x01adb2d6, 0xaedf, 0x461c, \
    { 0xbe, 0x2c, 0x99, 0xe9, 0x1b, 0xda, 0xd8, 0xa1 }}

class NS_NO_VTABLE IHostUSBDeviceFilter : public IUSBDeviceFilter {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IHOSTUSBDEVICEFILTER_IID)

  /* attribute PRUint32 action; */
  NS_IMETHOD GetAction(PRUint32 *aAction) = 0;
  NS_IMETHOD SetAction(PRUint32 aAction) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IHostUSBDeviceFilter; */
  NS_IMETHOD GetInternalAndReservedAttribute1IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute1IHostUSBDeviceFilter) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IHostUSBDeviceFilter; */
  NS_IMETHOD GetInternalAndReservedAttribute2IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute2IHostUSBDeviceFilter) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IHostUSBDeviceFilter; */
  NS_IMETHOD GetInternalAndReservedAttribute3IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute3IHostUSBDeviceFilter) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IHostUSBDeviceFilter; */
  NS_IMETHOD GetInternalAndReservedAttribute4IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute4IHostUSBDeviceFilter) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IHostUSBDeviceFilter; */
  NS_IMETHOD GetInternalAndReservedAttribute5IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute5IHostUSBDeviceFilter) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IHostUSBDeviceFilter; */
  NS_IMETHOD GetInternalAndReservedAttribute6IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute6IHostUSBDeviceFilter) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IHostUSBDeviceFilter; */
  NS_IMETHOD GetInternalAndReservedAttribute7IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute7IHostUSBDeviceFilter) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IHostUSBDeviceFilter; */
  NS_IMETHOD GetInternalAndReservedAttribute8IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute8IHostUSBDeviceFilter) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IHOSTUSBDEVICEFILTER \
  NS_IMETHOD GetAction(PRUint32 *aAction); \
  NS_IMETHOD SetAction(PRUint32 aAction); \
  NS_IMETHOD GetInternalAndReservedAttribute1IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute1IHostUSBDeviceFilter); \
  NS_IMETHOD GetInternalAndReservedAttribute2IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute2IHostUSBDeviceFilter); \
  NS_IMETHOD GetInternalAndReservedAttribute3IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute3IHostUSBDeviceFilter); \
  NS_IMETHOD GetInternalAndReservedAttribute4IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute4IHostUSBDeviceFilter); \
  NS_IMETHOD GetInternalAndReservedAttribute5IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute5IHostUSBDeviceFilter); \
  NS_IMETHOD GetInternalAndReservedAttribute6IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute6IHostUSBDeviceFilter); \
  NS_IMETHOD GetInternalAndReservedAttribute7IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute7IHostUSBDeviceFilter); \
  NS_IMETHOD GetInternalAndReservedAttribute8IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute8IHostUSBDeviceFilter); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IHOSTUSBDEVICEFILTER(_to) \
  NS_IMETHOD GetAction(PRUint32 *aAction) { return _to GetAction(aAction); } \
  NS_IMETHOD SetAction(PRUint32 aAction) { return _to SetAction(aAction); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute1IHostUSBDeviceFilter) { return _to GetInternalAndReservedAttribute1IHostUSBDeviceFilter(aInternalAndReservedAttribute1IHostUSBDeviceFilter); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute2IHostUSBDeviceFilter) { return _to GetInternalAndReservedAttribute2IHostUSBDeviceFilter(aInternalAndReservedAttribute2IHostUSBDeviceFilter); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute3IHostUSBDeviceFilter) { return _to GetInternalAndReservedAttribute3IHostUSBDeviceFilter(aInternalAndReservedAttribute3IHostUSBDeviceFilter); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute4IHostUSBDeviceFilter) { return _to GetInternalAndReservedAttribute4IHostUSBDeviceFilter(aInternalAndReservedAttribute4IHostUSBDeviceFilter); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute5IHostUSBDeviceFilter) { return _to GetInternalAndReservedAttribute5IHostUSBDeviceFilter(aInternalAndReservedAttribute5IHostUSBDeviceFilter); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute6IHostUSBDeviceFilter) { return _to GetInternalAndReservedAttribute6IHostUSBDeviceFilter(aInternalAndReservedAttribute6IHostUSBDeviceFilter); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute7IHostUSBDeviceFilter) { return _to GetInternalAndReservedAttribute7IHostUSBDeviceFilter(aInternalAndReservedAttribute7IHostUSBDeviceFilter); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute8IHostUSBDeviceFilter) { return _to GetInternalAndReservedAttribute8IHostUSBDeviceFilter(aInternalAndReservedAttribute8IHostUSBDeviceFilter); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IHOSTUSBDEVICEFILTER(_to) \
  NS_IMETHOD GetAction(PRUint32 *aAction) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAction(aAction); } \
  NS_IMETHOD SetAction(PRUint32 aAction) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAction(aAction); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute1IHostUSBDeviceFilter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IHostUSBDeviceFilter(aInternalAndReservedAttribute1IHostUSBDeviceFilter); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute2IHostUSBDeviceFilter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IHostUSBDeviceFilter(aInternalAndReservedAttribute2IHostUSBDeviceFilter); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute3IHostUSBDeviceFilter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IHostUSBDeviceFilter(aInternalAndReservedAttribute3IHostUSBDeviceFilter); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute4IHostUSBDeviceFilter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IHostUSBDeviceFilter(aInternalAndReservedAttribute4IHostUSBDeviceFilter); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute5IHostUSBDeviceFilter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IHostUSBDeviceFilter(aInternalAndReservedAttribute5IHostUSBDeviceFilter); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute6IHostUSBDeviceFilter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IHostUSBDeviceFilter(aInternalAndReservedAttribute6IHostUSBDeviceFilter); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute7IHostUSBDeviceFilter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IHostUSBDeviceFilter(aInternalAndReservedAttribute7IHostUSBDeviceFilter); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute8IHostUSBDeviceFilter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IHostUSBDeviceFilter(aInternalAndReservedAttribute8IHostUSBDeviceFilter); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IHostUSBDeviceFilter
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IHOSTUSBDEVICEFILTER

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IHostUSBDeviceFilter)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* attribute PRUint32 action; */
NS_IMETHODIMP _MYCLASS_::GetAction(PRUint32 *aAction)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetAction(PRUint32 aAction)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IHostUSBDeviceFilter; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute1IHostUSBDeviceFilter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IHostUSBDeviceFilter; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute2IHostUSBDeviceFilter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute3IHostUSBDeviceFilter; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute3IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute3IHostUSBDeviceFilter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute4IHostUSBDeviceFilter; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute4IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute4IHostUSBDeviceFilter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute5IHostUSBDeviceFilter; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute5IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute5IHostUSBDeviceFilter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute6IHostUSBDeviceFilter; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute6IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute6IHostUSBDeviceFilter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute7IHostUSBDeviceFilter; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute7IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute7IHostUSBDeviceFilter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute8IHostUSBDeviceFilter; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute8IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute8IHostUSBDeviceFilter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IUSBProxyBackend */
#define IUSBPROXYBACKEND_IID_STR "dfe56449-6989-4002-80cf-3607f377d40c"

#define IUSBPROXYBACKEND_IID \
  {0xdfe56449, 0x6989, 0x4002, \
    { 0x80, 0xcf, 0x36, 0x07, 0xf3, 0x77, 0xd4, 0x0c }}

class NS_NO_VTABLE IUSBProxyBackend : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IUSBPROXYBACKEND_IID)

  /* readonly attribute wstring name; */
  NS_IMETHOD GetName(PRUnichar * *aName) = 0;

  /* readonly attribute wstring type; */
  NS_IMETHOD GetType(PRUnichar * *aType) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IUSBProxyBackend; */
  NS_IMETHOD GetInternalAndReservedAttribute1IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute1IUSBProxyBackend) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IUSBProxyBackend; */
  NS_IMETHOD GetInternalAndReservedAttribute2IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute2IUSBProxyBackend) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IUSBProxyBackend; */
  NS_IMETHOD GetInternalAndReservedAttribute3IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute3IUSBProxyBackend) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IUSBProxyBackend; */
  NS_IMETHOD GetInternalAndReservedAttribute4IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute4IUSBProxyBackend) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IUSBProxyBackend; */
  NS_IMETHOD GetInternalAndReservedAttribute5IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute5IUSBProxyBackend) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IUSBProxyBackend; */
  NS_IMETHOD GetInternalAndReservedAttribute6IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute6IUSBProxyBackend) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IUSBProxyBackend; */
  NS_IMETHOD GetInternalAndReservedAttribute7IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute7IUSBProxyBackend) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IUSBProxyBackend; */
  NS_IMETHOD GetInternalAndReservedAttribute8IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute8IUSBProxyBackend) = 0;

  /* void InternalAndReservedMethod1IUSBProxyBackend (); */
  NS_IMETHOD InternalAndReservedMethod1IUSBProxyBackend(void) = 0;

  /* void InternalAndReservedMethod2IUSBProxyBackend (); */
  NS_IMETHOD InternalAndReservedMethod2IUSBProxyBackend(void) = 0;

  /* void InternalAndReservedMethod3IUSBProxyBackend (); */
  NS_IMETHOD InternalAndReservedMethod3IUSBProxyBackend(void) = 0;

  /* void InternalAndReservedMethod4IUSBProxyBackend (); */
  NS_IMETHOD InternalAndReservedMethod4IUSBProxyBackend(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IUSBPROXYBACKEND \
  NS_IMETHOD GetName(PRUnichar * *aName); \
  NS_IMETHOD GetType(PRUnichar * *aType); \
  NS_IMETHOD GetInternalAndReservedAttribute1IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute1IUSBProxyBackend); \
  NS_IMETHOD GetInternalAndReservedAttribute2IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute2IUSBProxyBackend); \
  NS_IMETHOD GetInternalAndReservedAttribute3IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute3IUSBProxyBackend); \
  NS_IMETHOD GetInternalAndReservedAttribute4IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute4IUSBProxyBackend); \
  NS_IMETHOD GetInternalAndReservedAttribute5IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute5IUSBProxyBackend); \
  NS_IMETHOD GetInternalAndReservedAttribute6IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute6IUSBProxyBackend); \
  NS_IMETHOD GetInternalAndReservedAttribute7IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute7IUSBProxyBackend); \
  NS_IMETHOD GetInternalAndReservedAttribute8IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute8IUSBProxyBackend); \
  NS_IMETHOD InternalAndReservedMethod1IUSBProxyBackend(void); \
  NS_IMETHOD InternalAndReservedMethod2IUSBProxyBackend(void); \
  NS_IMETHOD InternalAndReservedMethod3IUSBProxyBackend(void); \
  NS_IMETHOD InternalAndReservedMethod4IUSBProxyBackend(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IUSBPROXYBACKEND(_to) \
  NS_IMETHOD GetName(PRUnichar * *aName) { return _to GetName(aName); } \
  NS_IMETHOD GetType(PRUnichar * *aType) { return _to GetType(aType); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute1IUSBProxyBackend) { return _to GetInternalAndReservedAttribute1IUSBProxyBackend(aInternalAndReservedAttribute1IUSBProxyBackend); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute2IUSBProxyBackend) { return _to GetInternalAndReservedAttribute2IUSBProxyBackend(aInternalAndReservedAttribute2IUSBProxyBackend); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute3IUSBProxyBackend) { return _to GetInternalAndReservedAttribute3IUSBProxyBackend(aInternalAndReservedAttribute3IUSBProxyBackend); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute4IUSBProxyBackend) { return _to GetInternalAndReservedAttribute4IUSBProxyBackend(aInternalAndReservedAttribute4IUSBProxyBackend); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute5IUSBProxyBackend) { return _to GetInternalAndReservedAttribute5IUSBProxyBackend(aInternalAndReservedAttribute5IUSBProxyBackend); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute6IUSBProxyBackend) { return _to GetInternalAndReservedAttribute6IUSBProxyBackend(aInternalAndReservedAttribute6IUSBProxyBackend); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute7IUSBProxyBackend) { return _to GetInternalAndReservedAttribute7IUSBProxyBackend(aInternalAndReservedAttribute7IUSBProxyBackend); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute8IUSBProxyBackend) { return _to GetInternalAndReservedAttribute8IUSBProxyBackend(aInternalAndReservedAttribute8IUSBProxyBackend); } \
  NS_IMETHOD InternalAndReservedMethod1IUSBProxyBackend(void) { return _to InternalAndReservedMethod1IUSBProxyBackend(); } \
  NS_IMETHOD InternalAndReservedMethod2IUSBProxyBackend(void) { return _to InternalAndReservedMethod2IUSBProxyBackend(); } \
  NS_IMETHOD InternalAndReservedMethod3IUSBProxyBackend(void) { return _to InternalAndReservedMethod3IUSBProxyBackend(); } \
  NS_IMETHOD InternalAndReservedMethod4IUSBProxyBackend(void) { return _to InternalAndReservedMethod4IUSBProxyBackend(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IUSBPROXYBACKEND(_to) \
  NS_IMETHOD GetName(PRUnichar * *aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
  NS_IMETHOD GetType(PRUnichar * *aType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetType(aType); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute1IUSBProxyBackend) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IUSBProxyBackend(aInternalAndReservedAttribute1IUSBProxyBackend); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute2IUSBProxyBackend) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IUSBProxyBackend(aInternalAndReservedAttribute2IUSBProxyBackend); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute3IUSBProxyBackend) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IUSBProxyBackend(aInternalAndReservedAttribute3IUSBProxyBackend); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute4IUSBProxyBackend) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IUSBProxyBackend(aInternalAndReservedAttribute4IUSBProxyBackend); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute5IUSBProxyBackend) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IUSBProxyBackend(aInternalAndReservedAttribute5IUSBProxyBackend); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute6IUSBProxyBackend) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IUSBProxyBackend(aInternalAndReservedAttribute6IUSBProxyBackend); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute7IUSBProxyBackend) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IUSBProxyBackend(aInternalAndReservedAttribute7IUSBProxyBackend); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute8IUSBProxyBackend) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IUSBProxyBackend(aInternalAndReservedAttribute8IUSBProxyBackend); } \
  NS_IMETHOD InternalAndReservedMethod1IUSBProxyBackend(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IUSBProxyBackend(); } \
  NS_IMETHOD InternalAndReservedMethod2IUSBProxyBackend(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IUSBProxyBackend(); } \
  NS_IMETHOD InternalAndReservedMethod3IUSBProxyBackend(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IUSBProxyBackend(); } \
  NS_IMETHOD InternalAndReservedMethod4IUSBProxyBackend(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IUSBProxyBackend(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IUSBProxyBackend
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IUSBPROXYBACKEND

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IUSBProxyBackend)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute wstring name; */
NS_IMETHODIMP _MYCLASS_::GetName(PRUnichar * *aName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring type; */
NS_IMETHODIMP _MYCLASS_::GetType(PRUnichar * *aType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IUSBProxyBackend; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute1IUSBProxyBackend)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IUSBProxyBackend; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute2IUSBProxyBackend)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute3IUSBProxyBackend; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute3IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute3IUSBProxyBackend)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute4IUSBProxyBackend; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute4IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute4IUSBProxyBackend)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute5IUSBProxyBackend; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute5IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute5IUSBProxyBackend)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute6IUSBProxyBackend; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute6IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute6IUSBProxyBackend)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute7IUSBProxyBackend; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute7IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute7IUSBProxyBackend)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute8IUSBProxyBackend; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute8IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute8IUSBProxyBackend)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1IUSBProxyBackend (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1IUSBProxyBackend()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod2IUSBProxyBackend (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod2IUSBProxyBackend()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod3IUSBProxyBackend (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod3IUSBProxyBackend()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod4IUSBProxyBackend (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod4IUSBProxyBackend()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IAudioAdapter */
#define IAUDIOADAPTER_IID_STR "aeccc0a8-e0a0-427f-b946-c42063f54d81"

#define IAUDIOADAPTER_IID \
  {0xaeccc0a8, 0xe0a0, 0x427f, \
    { 0xb9, 0x46, 0xc4, 0x20, 0x63, 0xf5, 0x4d, 0x81 }}

class NS_NO_VTABLE IAudioAdapter : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IAUDIOADAPTER_IID)

  /* attribute boolean enabled; */
  NS_IMETHOD GetEnabled(PRBool *aEnabled) = 0;
  NS_IMETHOD SetEnabled(PRBool aEnabled) = 0;

  /* attribute boolean enabledIn; */
  NS_IMETHOD GetEnabledIn(PRBool *aEnabledIn) = 0;
  NS_IMETHOD SetEnabledIn(PRBool aEnabledIn) = 0;

  /* attribute boolean enabledOut; */
  NS_IMETHOD GetEnabledOut(PRBool *aEnabledOut) = 0;
  NS_IMETHOD SetEnabledOut(PRBool aEnabledOut) = 0;

  /* attribute PRUint32 audioController; */
  NS_IMETHOD GetAudioController(PRUint32 *aAudioController) = 0;
  NS_IMETHOD SetAudioController(PRUint32 aAudioController) = 0;

  /* attribute PRUint32 audioCodec; */
  NS_IMETHOD GetAudioCodec(PRUint32 *aAudioCodec) = 0;
  NS_IMETHOD SetAudioCodec(PRUint32 aAudioCodec) = 0;

  /* attribute PRUint32 audioDriver; */
  NS_IMETHOD GetAudioDriver(PRUint32 *aAudioDriver) = 0;
  NS_IMETHOD SetAudioDriver(PRUint32 aAudioDriver) = 0;

  /* void getPropertiesList (out unsigned long propertiesListSize, [array, size_is (propertiesListSize), retval] out wstring propertiesList); */
  NS_IMETHOD GetPropertiesList(PRUint32 *propertiesListSize, PRUnichar ***propertiesList) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IAudioAdapter; */
  NS_IMETHOD GetInternalAndReservedAttribute1IAudioAdapter(PRUint32 *aInternalAndReservedAttribute1IAudioAdapter) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IAudioAdapter; */
  NS_IMETHOD GetInternalAndReservedAttribute2IAudioAdapter(PRUint32 *aInternalAndReservedAttribute2IAudioAdapter) = 0;

  /* void setProperty (in wstring key, in wstring value); */
  NS_IMETHOD SetProperty(const PRUnichar *key, const PRUnichar *value) = 0;

  /* void getProperty (in wstring key, [retval] out wstring value); */
  NS_IMETHOD GetProperty(const PRUnichar *key, PRUnichar **value) = 0;

  /* void InternalAndReservedMethod1IAudioAdapter (); */
  NS_IMETHOD InternalAndReservedMethod1IAudioAdapter(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IAUDIOADAPTER \
  NS_IMETHOD GetEnabled(PRBool *aEnabled); \
  NS_IMETHOD SetEnabled(PRBool aEnabled); \
  NS_IMETHOD GetEnabledIn(PRBool *aEnabledIn); \
  NS_IMETHOD SetEnabledIn(PRBool aEnabledIn); \
  NS_IMETHOD GetEnabledOut(PRBool *aEnabledOut); \
  NS_IMETHOD SetEnabledOut(PRBool aEnabledOut); \
  NS_IMETHOD GetAudioController(PRUint32 *aAudioController); \
  NS_IMETHOD SetAudioController(PRUint32 aAudioController); \
  NS_IMETHOD GetAudioCodec(PRUint32 *aAudioCodec); \
  NS_IMETHOD SetAudioCodec(PRUint32 aAudioCodec); \
  NS_IMETHOD GetAudioDriver(PRUint32 *aAudioDriver); \
  NS_IMETHOD SetAudioDriver(PRUint32 aAudioDriver); \
  NS_IMETHOD GetPropertiesList(PRUint32 *propertiesListSize, PRUnichar ***propertiesList); \
  NS_IMETHOD GetInternalAndReservedAttribute1IAudioAdapter(PRUint32 *aInternalAndReservedAttribute1IAudioAdapter); \
  NS_IMETHOD GetInternalAndReservedAttribute2IAudioAdapter(PRUint32 *aInternalAndReservedAttribute2IAudioAdapter); \
  NS_IMETHOD SetProperty(const PRUnichar *key, const PRUnichar *value); \
  NS_IMETHOD GetProperty(const PRUnichar *key, PRUnichar **value); \
  NS_IMETHOD InternalAndReservedMethod1IAudioAdapter(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IAUDIOADAPTER(_to) \
  NS_IMETHOD GetEnabled(PRBool *aEnabled) { return _to GetEnabled(aEnabled); } \
  NS_IMETHOD SetEnabled(PRBool aEnabled) { return _to SetEnabled(aEnabled); } \
  NS_IMETHOD GetEnabledIn(PRBool *aEnabledIn) { return _to GetEnabledIn(aEnabledIn); } \
  NS_IMETHOD SetEnabledIn(PRBool aEnabledIn) { return _to SetEnabledIn(aEnabledIn); } \
  NS_IMETHOD GetEnabledOut(PRBool *aEnabledOut) { return _to GetEnabledOut(aEnabledOut); } \
  NS_IMETHOD SetEnabledOut(PRBool aEnabledOut) { return _to SetEnabledOut(aEnabledOut); } \
  NS_IMETHOD GetAudioController(PRUint32 *aAudioController) { return _to GetAudioController(aAudioController); } \
  NS_IMETHOD SetAudioController(PRUint32 aAudioController) { return _to SetAudioController(aAudioController); } \
  NS_IMETHOD GetAudioCodec(PRUint32 *aAudioCodec) { return _to GetAudioCodec(aAudioCodec); } \
  NS_IMETHOD SetAudioCodec(PRUint32 aAudioCodec) { return _to SetAudioCodec(aAudioCodec); } \
  NS_IMETHOD GetAudioDriver(PRUint32 *aAudioDriver) { return _to GetAudioDriver(aAudioDriver); } \
  NS_IMETHOD SetAudioDriver(PRUint32 aAudioDriver) { return _to SetAudioDriver(aAudioDriver); } \
  NS_IMETHOD GetPropertiesList(PRUint32 *propertiesListSize, PRUnichar ***propertiesList) { return _to GetPropertiesList(propertiesListSize, propertiesList); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IAudioAdapter(PRUint32 *aInternalAndReservedAttribute1IAudioAdapter) { return _to GetInternalAndReservedAttribute1IAudioAdapter(aInternalAndReservedAttribute1IAudioAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IAudioAdapter(PRUint32 *aInternalAndReservedAttribute2IAudioAdapter) { return _to GetInternalAndReservedAttribute2IAudioAdapter(aInternalAndReservedAttribute2IAudioAdapter); } \
  NS_IMETHOD SetProperty(const PRUnichar *key, const PRUnichar *value) { return _to SetProperty(key, value); } \
  NS_IMETHOD GetProperty(const PRUnichar *key, PRUnichar **value) { return _to GetProperty(key, value); } \
  NS_IMETHOD InternalAndReservedMethod1IAudioAdapter(void) { return _to InternalAndReservedMethod1IAudioAdapter(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IAUDIOADAPTER(_to) \
  NS_IMETHOD GetEnabled(PRBool *aEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEnabled(aEnabled); } \
  NS_IMETHOD SetEnabled(PRBool aEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetEnabled(aEnabled); } \
  NS_IMETHOD GetEnabledIn(PRBool *aEnabledIn) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEnabledIn(aEnabledIn); } \
  NS_IMETHOD SetEnabledIn(PRBool aEnabledIn) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetEnabledIn(aEnabledIn); } \
  NS_IMETHOD GetEnabledOut(PRBool *aEnabledOut) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEnabledOut(aEnabledOut); } \
  NS_IMETHOD SetEnabledOut(PRBool aEnabledOut) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetEnabledOut(aEnabledOut); } \
  NS_IMETHOD GetAudioController(PRUint32 *aAudioController) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAudioController(aAudioController); } \
  NS_IMETHOD SetAudioController(PRUint32 aAudioController) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAudioController(aAudioController); } \
  NS_IMETHOD GetAudioCodec(PRUint32 *aAudioCodec) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAudioCodec(aAudioCodec); } \
  NS_IMETHOD SetAudioCodec(PRUint32 aAudioCodec) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAudioCodec(aAudioCodec); } \
  NS_IMETHOD GetAudioDriver(PRUint32 *aAudioDriver) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAudioDriver(aAudioDriver); } \
  NS_IMETHOD SetAudioDriver(PRUint32 aAudioDriver) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAudioDriver(aAudioDriver); } \
  NS_IMETHOD GetPropertiesList(PRUint32 *propertiesListSize, PRUnichar ***propertiesList) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPropertiesList(propertiesListSize, propertiesList); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IAudioAdapter(PRUint32 *aInternalAndReservedAttribute1IAudioAdapter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IAudioAdapter(aInternalAndReservedAttribute1IAudioAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IAudioAdapter(PRUint32 *aInternalAndReservedAttribute2IAudioAdapter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IAudioAdapter(aInternalAndReservedAttribute2IAudioAdapter); } \
  NS_IMETHOD SetProperty(const PRUnichar *key, const PRUnichar *value) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetProperty(key, value); } \
  NS_IMETHOD GetProperty(const PRUnichar *key, PRUnichar **value) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProperty(key, value); } \
  NS_IMETHOD InternalAndReservedMethod1IAudioAdapter(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IAudioAdapter(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IAudioAdapter
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IAUDIOADAPTER

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IAudioAdapter)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* attribute boolean enabled; */
NS_IMETHODIMP _MYCLASS_::GetEnabled(PRBool *aEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetEnabled(PRBool aEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean enabledIn; */
NS_IMETHODIMP _MYCLASS_::GetEnabledIn(PRBool *aEnabledIn)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetEnabledIn(PRBool aEnabledIn)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean enabledOut; */
NS_IMETHODIMP _MYCLASS_::GetEnabledOut(PRBool *aEnabledOut)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetEnabledOut(PRBool aEnabledOut)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute PRUint32 audioController; */
NS_IMETHODIMP _MYCLASS_::GetAudioController(PRUint32 *aAudioController)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetAudioController(PRUint32 aAudioController)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute PRUint32 audioCodec; */
NS_IMETHODIMP _MYCLASS_::GetAudioCodec(PRUint32 *aAudioCodec)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetAudioCodec(PRUint32 aAudioCodec)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute PRUint32 audioDriver; */
NS_IMETHODIMP _MYCLASS_::GetAudioDriver(PRUint32 *aAudioDriver)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetAudioDriver(PRUint32 aAudioDriver)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getPropertiesList (out unsigned long propertiesListSize, [array, size_is (propertiesListSize), retval] out wstring propertiesList); */
NS_IMETHODIMP _MYCLASS_::GetPropertiesList(PRUint32 *propertiesListSize, PRUnichar ***propertiesList)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IAudioAdapter; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IAudioAdapter(PRUint32 *aInternalAndReservedAttribute1IAudioAdapter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IAudioAdapter; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IAudioAdapter(PRUint32 *aInternalAndReservedAttribute2IAudioAdapter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setProperty (in wstring key, in wstring value); */
NS_IMETHODIMP _MYCLASS_::SetProperty(const PRUnichar *key, const PRUnichar *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getProperty (in wstring key, [retval] out wstring value); */
NS_IMETHODIMP _MYCLASS_::GetProperty(const PRUnichar *key, PRUnichar **value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1IAudioAdapter (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1IAudioAdapter()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IVRDEServer */
#define IVRDESERVER_IID_STR "6e758489-453a-6f98-9cb9-2da2cb8eabb5"

#define IVRDESERVER_IID \
  {0x6e758489, 0x453a, 0x6f98, \
    { 0x9c, 0xb9, 0x2d, 0xa2, 0xcb, 0x8e, 0xab, 0xb5 }}

class NS_NO_VTABLE IVRDEServer : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IVRDESERVER_IID)

  /* attribute boolean enabled; */
  NS_IMETHOD GetEnabled(PRBool *aEnabled) = 0;
  NS_IMETHOD SetEnabled(PRBool aEnabled) = 0;

  /* attribute PRUint32 authType; */
  NS_IMETHOD GetAuthType(PRUint32 *aAuthType) = 0;
  NS_IMETHOD SetAuthType(PRUint32 aAuthType) = 0;

  /* attribute unsigned long authTimeout; */
  NS_IMETHOD GetAuthTimeout(PRUint32 *aAuthTimeout) = 0;
  NS_IMETHOD SetAuthTimeout(PRUint32 aAuthTimeout) = 0;

  /* attribute boolean allowMultiConnection; */
  NS_IMETHOD GetAllowMultiConnection(PRBool *aAllowMultiConnection) = 0;
  NS_IMETHOD SetAllowMultiConnection(PRBool aAllowMultiConnection) = 0;

  /* attribute boolean reuseSingleConnection; */
  NS_IMETHOD GetReuseSingleConnection(PRBool *aReuseSingleConnection) = 0;
  NS_IMETHOD SetReuseSingleConnection(PRBool aReuseSingleConnection) = 0;

  /* attribute wstring VRDEExtPack; */
  NS_IMETHOD GetVRDEExtPack(PRUnichar * *aVRDEExtPack) = 0;
  NS_IMETHOD SetVRDEExtPack(const PRUnichar * aVRDEExtPack) = 0;

  /* attribute wstring authLibrary; */
  NS_IMETHOD GetAuthLibrary(PRUnichar * *aAuthLibrary) = 0;
  NS_IMETHOD SetAuthLibrary(const PRUnichar * aAuthLibrary) = 0;

  /* void getVRDEProperties (out unsigned long VRDEPropertiesSize, [array, size_is (VRDEPropertiesSize), retval] out wstring VRDEProperties); */
  NS_IMETHOD GetVRDEProperties(PRUint32 *VRDEPropertiesSize, PRUnichar ***VRDEProperties) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IVRDEServer; */
  NS_IMETHOD GetInternalAndReservedAttribute1IVRDEServer(PRUint32 *aInternalAndReservedAttribute1IVRDEServer) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IVRDEServer; */
  NS_IMETHOD GetInternalAndReservedAttribute2IVRDEServer(PRUint32 *aInternalAndReservedAttribute2IVRDEServer) = 0;

  /* void setVRDEProperty (in wstring key, in wstring value); */
  NS_IMETHOD SetVRDEProperty(const PRUnichar *key, const PRUnichar *value) = 0;

  /* void getVRDEProperty (in wstring key, [retval] out wstring value); */
  NS_IMETHOD GetVRDEProperty(const PRUnichar *key, PRUnichar **value) = 0;

  /* void InternalAndReservedMethod1IVRDEServer (); */
  NS_IMETHOD InternalAndReservedMethod1IVRDEServer(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IVRDESERVER \
  NS_IMETHOD GetEnabled(PRBool *aEnabled); \
  NS_IMETHOD SetEnabled(PRBool aEnabled); \
  NS_IMETHOD GetAuthType(PRUint32 *aAuthType); \
  NS_IMETHOD SetAuthType(PRUint32 aAuthType); \
  NS_IMETHOD GetAuthTimeout(PRUint32 *aAuthTimeout); \
  NS_IMETHOD SetAuthTimeout(PRUint32 aAuthTimeout); \
  NS_IMETHOD GetAllowMultiConnection(PRBool *aAllowMultiConnection); \
  NS_IMETHOD SetAllowMultiConnection(PRBool aAllowMultiConnection); \
  NS_IMETHOD GetReuseSingleConnection(PRBool *aReuseSingleConnection); \
  NS_IMETHOD SetReuseSingleConnection(PRBool aReuseSingleConnection); \
  NS_IMETHOD GetVRDEExtPack(PRUnichar * *aVRDEExtPack); \
  NS_IMETHOD SetVRDEExtPack(const PRUnichar * aVRDEExtPack); \
  NS_IMETHOD GetAuthLibrary(PRUnichar * *aAuthLibrary); \
  NS_IMETHOD SetAuthLibrary(const PRUnichar * aAuthLibrary); \
  NS_IMETHOD GetVRDEProperties(PRUint32 *VRDEPropertiesSize, PRUnichar ***VRDEProperties); \
  NS_IMETHOD GetInternalAndReservedAttribute1IVRDEServer(PRUint32 *aInternalAndReservedAttribute1IVRDEServer); \
  NS_IMETHOD GetInternalAndReservedAttribute2IVRDEServer(PRUint32 *aInternalAndReservedAttribute2IVRDEServer); \
  NS_IMETHOD SetVRDEProperty(const PRUnichar *key, const PRUnichar *value); \
  NS_IMETHOD GetVRDEProperty(const PRUnichar *key, PRUnichar **value); \
  NS_IMETHOD InternalAndReservedMethod1IVRDEServer(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IVRDESERVER(_to) \
  NS_IMETHOD GetEnabled(PRBool *aEnabled) { return _to GetEnabled(aEnabled); } \
  NS_IMETHOD SetEnabled(PRBool aEnabled) { return _to SetEnabled(aEnabled); } \
  NS_IMETHOD GetAuthType(PRUint32 *aAuthType) { return _to GetAuthType(aAuthType); } \
  NS_IMETHOD SetAuthType(PRUint32 aAuthType) { return _to SetAuthType(aAuthType); } \
  NS_IMETHOD GetAuthTimeout(PRUint32 *aAuthTimeout) { return _to GetAuthTimeout(aAuthTimeout); } \
  NS_IMETHOD SetAuthTimeout(PRUint32 aAuthTimeout) { return _to SetAuthTimeout(aAuthTimeout); } \
  NS_IMETHOD GetAllowMultiConnection(PRBool *aAllowMultiConnection) { return _to GetAllowMultiConnection(aAllowMultiConnection); } \
  NS_IMETHOD SetAllowMultiConnection(PRBool aAllowMultiConnection) { return _to SetAllowMultiConnection(aAllowMultiConnection); } \
  NS_IMETHOD GetReuseSingleConnection(PRBool *aReuseSingleConnection) { return _to GetReuseSingleConnection(aReuseSingleConnection); } \
  NS_IMETHOD SetReuseSingleConnection(PRBool aReuseSingleConnection) { return _to SetReuseSingleConnection(aReuseSingleConnection); } \
  NS_IMETHOD GetVRDEExtPack(PRUnichar * *aVRDEExtPack) { return _to GetVRDEExtPack(aVRDEExtPack); } \
  NS_IMETHOD SetVRDEExtPack(const PRUnichar * aVRDEExtPack) { return _to SetVRDEExtPack(aVRDEExtPack); } \
  NS_IMETHOD GetAuthLibrary(PRUnichar * *aAuthLibrary) { return _to GetAuthLibrary(aAuthLibrary); } \
  NS_IMETHOD SetAuthLibrary(const PRUnichar * aAuthLibrary) { return _to SetAuthLibrary(aAuthLibrary); } \
  NS_IMETHOD GetVRDEProperties(PRUint32 *VRDEPropertiesSize, PRUnichar ***VRDEProperties) { return _to GetVRDEProperties(VRDEPropertiesSize, VRDEProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IVRDEServer(PRUint32 *aInternalAndReservedAttribute1IVRDEServer) { return _to GetInternalAndReservedAttribute1IVRDEServer(aInternalAndReservedAttribute1IVRDEServer); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IVRDEServer(PRUint32 *aInternalAndReservedAttribute2IVRDEServer) { return _to GetInternalAndReservedAttribute2IVRDEServer(aInternalAndReservedAttribute2IVRDEServer); } \
  NS_IMETHOD SetVRDEProperty(const PRUnichar *key, const PRUnichar *value) { return _to SetVRDEProperty(key, value); } \
  NS_IMETHOD GetVRDEProperty(const PRUnichar *key, PRUnichar **value) { return _to GetVRDEProperty(key, value); } \
  NS_IMETHOD InternalAndReservedMethod1IVRDEServer(void) { return _to InternalAndReservedMethod1IVRDEServer(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IVRDESERVER(_to) \
  NS_IMETHOD GetEnabled(PRBool *aEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEnabled(aEnabled); } \
  NS_IMETHOD SetEnabled(PRBool aEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetEnabled(aEnabled); } \
  NS_IMETHOD GetAuthType(PRUint32 *aAuthType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAuthType(aAuthType); } \
  NS_IMETHOD SetAuthType(PRUint32 aAuthType) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAuthType(aAuthType); } \
  NS_IMETHOD GetAuthTimeout(PRUint32 *aAuthTimeout) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAuthTimeout(aAuthTimeout); } \
  NS_IMETHOD SetAuthTimeout(PRUint32 aAuthTimeout) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAuthTimeout(aAuthTimeout); } \
  NS_IMETHOD GetAllowMultiConnection(PRBool *aAllowMultiConnection) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAllowMultiConnection(aAllowMultiConnection); } \
  NS_IMETHOD SetAllowMultiConnection(PRBool aAllowMultiConnection) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAllowMultiConnection(aAllowMultiConnection); } \
  NS_IMETHOD GetReuseSingleConnection(PRBool *aReuseSingleConnection) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetReuseSingleConnection(aReuseSingleConnection); } \
  NS_IMETHOD SetReuseSingleConnection(PRBool aReuseSingleConnection) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetReuseSingleConnection(aReuseSingleConnection); } \
  NS_IMETHOD GetVRDEExtPack(PRUnichar * *aVRDEExtPack) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVRDEExtPack(aVRDEExtPack); } \
  NS_IMETHOD SetVRDEExtPack(const PRUnichar * aVRDEExtPack) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetVRDEExtPack(aVRDEExtPack); } \
  NS_IMETHOD GetAuthLibrary(PRUnichar * *aAuthLibrary) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAuthLibrary(aAuthLibrary); } \
  NS_IMETHOD SetAuthLibrary(const PRUnichar * aAuthLibrary) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAuthLibrary(aAuthLibrary); } \
  NS_IMETHOD GetVRDEProperties(PRUint32 *VRDEPropertiesSize, PRUnichar ***VRDEProperties) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVRDEProperties(VRDEPropertiesSize, VRDEProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IVRDEServer(PRUint32 *aInternalAndReservedAttribute1IVRDEServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IVRDEServer(aInternalAndReservedAttribute1IVRDEServer); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IVRDEServer(PRUint32 *aInternalAndReservedAttribute2IVRDEServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IVRDEServer(aInternalAndReservedAttribute2IVRDEServer); } \
  NS_IMETHOD SetVRDEProperty(const PRUnichar *key, const PRUnichar *value) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetVRDEProperty(key, value); } \
  NS_IMETHOD GetVRDEProperty(const PRUnichar *key, PRUnichar **value) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVRDEProperty(key, value); } \
  NS_IMETHOD InternalAndReservedMethod1IVRDEServer(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IVRDEServer(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IVRDEServer
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IVRDESERVER

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IVRDEServer)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* attribute boolean enabled; */
NS_IMETHODIMP _MYCLASS_::GetEnabled(PRBool *aEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetEnabled(PRBool aEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute PRUint32 authType; */
NS_IMETHODIMP _MYCLASS_::GetAuthType(PRUint32 *aAuthType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetAuthType(PRUint32 aAuthType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long authTimeout; */
NS_IMETHODIMP _MYCLASS_::GetAuthTimeout(PRUint32 *aAuthTimeout)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetAuthTimeout(PRUint32 aAuthTimeout)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean allowMultiConnection; */
NS_IMETHODIMP _MYCLASS_::GetAllowMultiConnection(PRBool *aAllowMultiConnection)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetAllowMultiConnection(PRBool aAllowMultiConnection)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean reuseSingleConnection; */
NS_IMETHODIMP _MYCLASS_::GetReuseSingleConnection(PRBool *aReuseSingleConnection)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetReuseSingleConnection(PRBool aReuseSingleConnection)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring VRDEExtPack; */
NS_IMETHODIMP _MYCLASS_::GetVRDEExtPack(PRUnichar * *aVRDEExtPack)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetVRDEExtPack(const PRUnichar * aVRDEExtPack)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring authLibrary; */
NS_IMETHODIMP _MYCLASS_::GetAuthLibrary(PRUnichar * *aAuthLibrary)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetAuthLibrary(const PRUnichar * aAuthLibrary)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getVRDEProperties (out unsigned long VRDEPropertiesSize, [array, size_is (VRDEPropertiesSize), retval] out wstring VRDEProperties); */
NS_IMETHODIMP _MYCLASS_::GetVRDEProperties(PRUint32 *VRDEPropertiesSize, PRUnichar ***VRDEProperties)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IVRDEServer; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IVRDEServer(PRUint32 *aInternalAndReservedAttribute1IVRDEServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IVRDEServer; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IVRDEServer(PRUint32 *aInternalAndReservedAttribute2IVRDEServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setVRDEProperty (in wstring key, in wstring value); */
NS_IMETHODIMP _MYCLASS_::SetVRDEProperty(const PRUnichar *key, const PRUnichar *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getVRDEProperty (in wstring key, [retval] out wstring value); */
NS_IMETHODIMP _MYCLASS_::GetVRDEProperty(const PRUnichar *key, PRUnichar **value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1IVRDEServer (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1IVRDEServer()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    ISharedFolder */
#define ISHAREDFOLDER_IID_STR "15aabe95-e594-4e18-9222-b5e83a23f1da"

#define ISHAREDFOLDER_IID \
  {0x15aabe95, 0xe594, 0x4e18, \
    { 0x92, 0x22, 0xb5, 0xe8, 0x3a, 0x23, 0xf1, 0xda }}

class NS_NO_VTABLE ISharedFolder : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ISHAREDFOLDER_IID)

  /* readonly attribute wstring name; */
  NS_IMETHOD GetName(PRUnichar * *aName) = 0;

  /* readonly attribute wstring hostPath; */
  NS_IMETHOD GetHostPath(PRUnichar * *aHostPath) = 0;

  /* readonly attribute boolean accessible; */
  NS_IMETHOD GetAccessible(PRBool *aAccessible) = 0;

  /* readonly attribute boolean writable; */
  NS_IMETHOD GetWritable(PRBool *aWritable) = 0;

  /* readonly attribute boolean autoMount; */
  NS_IMETHOD GetAutoMount(PRBool *aAutoMount) = 0;

  /* readonly attribute wstring lastAccessError; */
  NS_IMETHOD GetLastAccessError(PRUnichar * *aLastAccessError) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1ISharedFolder; */
  NS_IMETHOD GetInternalAndReservedAttribute1ISharedFolder(PRUint32 *aInternalAndReservedAttribute1ISharedFolder) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2ISharedFolder; */
  NS_IMETHOD GetInternalAndReservedAttribute2ISharedFolder(PRUint32 *aInternalAndReservedAttribute2ISharedFolder) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3ISharedFolder; */
  NS_IMETHOD GetInternalAndReservedAttribute3ISharedFolder(PRUint32 *aInternalAndReservedAttribute3ISharedFolder) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4ISharedFolder; */
  NS_IMETHOD GetInternalAndReservedAttribute4ISharedFolder(PRUint32 *aInternalAndReservedAttribute4ISharedFolder) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ISHAREDFOLDER \
  NS_IMETHOD GetName(PRUnichar * *aName); \
  NS_IMETHOD GetHostPath(PRUnichar * *aHostPath); \
  NS_IMETHOD GetAccessible(PRBool *aAccessible); \
  NS_IMETHOD GetWritable(PRBool *aWritable); \
  NS_IMETHOD GetAutoMount(PRBool *aAutoMount); \
  NS_IMETHOD GetLastAccessError(PRUnichar * *aLastAccessError); \
  NS_IMETHOD GetInternalAndReservedAttribute1ISharedFolder(PRUint32 *aInternalAndReservedAttribute1ISharedFolder); \
  NS_IMETHOD GetInternalAndReservedAttribute2ISharedFolder(PRUint32 *aInternalAndReservedAttribute2ISharedFolder); \
  NS_IMETHOD GetInternalAndReservedAttribute3ISharedFolder(PRUint32 *aInternalAndReservedAttribute3ISharedFolder); \
  NS_IMETHOD GetInternalAndReservedAttribute4ISharedFolder(PRUint32 *aInternalAndReservedAttribute4ISharedFolder); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ISHAREDFOLDER(_to) \
  NS_IMETHOD GetName(PRUnichar * *aName) { return _to GetName(aName); } \
  NS_IMETHOD GetHostPath(PRUnichar * *aHostPath) { return _to GetHostPath(aHostPath); } \
  NS_IMETHOD GetAccessible(PRBool *aAccessible) { return _to GetAccessible(aAccessible); } \
  NS_IMETHOD GetWritable(PRBool *aWritable) { return _to GetWritable(aWritable); } \
  NS_IMETHOD GetAutoMount(PRBool *aAutoMount) { return _to GetAutoMount(aAutoMount); } \
  NS_IMETHOD GetLastAccessError(PRUnichar * *aLastAccessError) { return _to GetLastAccessError(aLastAccessError); } \
  NS_IMETHOD GetInternalAndReservedAttribute1ISharedFolder(PRUint32 *aInternalAndReservedAttribute1ISharedFolder) { return _to GetInternalAndReservedAttribute1ISharedFolder(aInternalAndReservedAttribute1ISharedFolder); } \
  NS_IMETHOD GetInternalAndReservedAttribute2ISharedFolder(PRUint32 *aInternalAndReservedAttribute2ISharedFolder) { return _to GetInternalAndReservedAttribute2ISharedFolder(aInternalAndReservedAttribute2ISharedFolder); } \
  NS_IMETHOD GetInternalAndReservedAttribute3ISharedFolder(PRUint32 *aInternalAndReservedAttribute3ISharedFolder) { return _to GetInternalAndReservedAttribute3ISharedFolder(aInternalAndReservedAttribute3ISharedFolder); } \
  NS_IMETHOD GetInternalAndReservedAttribute4ISharedFolder(PRUint32 *aInternalAndReservedAttribute4ISharedFolder) { return _to GetInternalAndReservedAttribute4ISharedFolder(aInternalAndReservedAttribute4ISharedFolder); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ISHAREDFOLDER(_to) \
  NS_IMETHOD GetName(PRUnichar * *aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
  NS_IMETHOD GetHostPath(PRUnichar * *aHostPath) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHostPath(aHostPath); } \
  NS_IMETHOD GetAccessible(PRBool *aAccessible) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAccessible(aAccessible); } \
  NS_IMETHOD GetWritable(PRBool *aWritable) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetWritable(aWritable); } \
  NS_IMETHOD GetAutoMount(PRBool *aAutoMount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAutoMount(aAutoMount); } \
  NS_IMETHOD GetLastAccessError(PRUnichar * *aLastAccessError) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLastAccessError(aLastAccessError); } \
  NS_IMETHOD GetInternalAndReservedAttribute1ISharedFolder(PRUint32 *aInternalAndReservedAttribute1ISharedFolder) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1ISharedFolder(aInternalAndReservedAttribute1ISharedFolder); } \
  NS_IMETHOD GetInternalAndReservedAttribute2ISharedFolder(PRUint32 *aInternalAndReservedAttribute2ISharedFolder) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2ISharedFolder(aInternalAndReservedAttribute2ISharedFolder); } \
  NS_IMETHOD GetInternalAndReservedAttribute3ISharedFolder(PRUint32 *aInternalAndReservedAttribute3ISharedFolder) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3ISharedFolder(aInternalAndReservedAttribute3ISharedFolder); } \
  NS_IMETHOD GetInternalAndReservedAttribute4ISharedFolder(PRUint32 *aInternalAndReservedAttribute4ISharedFolder) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4ISharedFolder(aInternalAndReservedAttribute4ISharedFolder); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public ISharedFolder
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_ISHAREDFOLDER

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, ISharedFolder)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute wstring name; */
NS_IMETHODIMP _MYCLASS_::GetName(PRUnichar * *aName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring hostPath; */
NS_IMETHODIMP _MYCLASS_::GetHostPath(PRUnichar * *aHostPath)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean accessible; */
NS_IMETHODIMP _MYCLASS_::GetAccessible(PRBool *aAccessible)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean writable; */
NS_IMETHODIMP _MYCLASS_::GetWritable(PRBool *aWritable)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean autoMount; */
NS_IMETHODIMP _MYCLASS_::GetAutoMount(PRBool *aAutoMount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring lastAccessError; */
NS_IMETHODIMP _MYCLASS_::GetLastAccessError(PRUnichar * *aLastAccessError)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1ISharedFolder; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1ISharedFolder(PRUint32 *aInternalAndReservedAttribute1ISharedFolder)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2ISharedFolder; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2ISharedFolder(PRUint32 *aInternalAndReservedAttribute2ISharedFolder)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute3ISharedFolder; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute3ISharedFolder(PRUint32 *aInternalAndReservedAttribute3ISharedFolder)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute4ISharedFolder; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute4ISharedFolder(PRUint32 *aInternalAndReservedAttribute4ISharedFolder)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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_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_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;

/* starting interface:    IInternalSessionControl */
#define IINTERNALSESSIONCONTROL_IID_STR "747e397e-69c8-45a0-88d9-f7f070960718"

#define IINTERNALSESSIONCONTROL_IID \
  {0x747e397e, 0x69c8, 0x45a0, \
    { 0x88, 0xd9, 0xf7, 0xf0, 0x70, 0x96, 0x07, 0x18 }}

class NS_NO_VTABLE IInternalSessionControl : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IINTERNALSESSIONCONTROL_IID)

  /* readonly attribute unsigned long PID; */
  NS_IMETHOD GetPID(PRUint32 *aPID) = 0;

  /* readonly attribute IConsole remoteConsole; */
  NS_IMETHOD GetRemoteConsole(IConsole * *aRemoteConsole) = 0;

  /* readonly attribute PRUint32 nominalState; */
  NS_IMETHOD GetNominalState(PRUint32 *aNominalState) = 0;

  /* void assignRemoteMachine (in IMachine machine, in IConsole console); */
  NS_IMETHOD AssignRemoteMachine(IMachine *machine, IConsole *console) = 0;

  /* void updateMachineState (in PRUint32 machineState); */
  NS_IMETHOD UpdateMachineState(PRUint32 machineState) = 0;

  /* void uninitialize (); */
  NS_IMETHOD Uninitialize(void) = 0;

  /* void onNetworkAdapterChange (in INetworkAdapter networkAdapter, in boolean changeAdapter); */
  NS_IMETHOD OnNetworkAdapterChange(INetworkAdapter *networkAdapter, PRBool changeAdapter) = 0;

  /* void onSerialPortChange (in ISerialPort serialPort); */
  NS_IMETHOD OnSerialPortChange(ISerialPort *serialPort) = 0;

  /* void onParallelPortChange (in IParallelPort parallelPort); */
  NS_IMETHOD OnParallelPortChange(IParallelPort *parallelPort) = 0;

  /* void onStorageControllerChange (); */
  NS_IMETHOD OnStorageControllerChange(void) = 0;

  /* void onMediumChange (in IMediumAttachment mediumAttachment, in boolean force); */
  NS_IMETHOD OnMediumChange(IMediumAttachment *mediumAttachment, PRBool force) = 0;

  /* void onStorageDeviceChange (in IMediumAttachment mediumAttachment, in boolean remove, in boolean silent); */
  NS_IMETHOD OnStorageDeviceChange(IMediumAttachment *mediumAttachment, PRBool remove, PRBool silent) = 0;

  /* void onClipboardModeChange (in PRUint32 clipboardMode); */
  NS_IMETHOD OnClipboardModeChange(PRUint32 clipboardMode) = 0;

  /* void onDnDModeChange (in PRUint32 dndMode); */
  NS_IMETHOD OnDnDModeChange(PRUint32 dndMode) = 0;

  /* void onCPUChange (in unsigned long cpu, in boolean add); */
  NS_IMETHOD OnCPUChange(PRUint32 cpu, PRBool add) = 0;

  /* void onCPUExecutionCapChange (in unsigned long executionCap); */
  NS_IMETHOD OnCPUExecutionCapChange(PRUint32 executionCap) = 0;

  /* void onVRDEServerChange (in boolean restart); */
  NS_IMETHOD OnVRDEServerChange(PRBool restart) = 0;

  /* void onVideoCaptureChange (); */
  NS_IMETHOD OnVideoCaptureChange(void) = 0;

  /* void onUSBControllerChange (); */
  NS_IMETHOD OnUSBControllerChange(void) = 0;

  /* void onSharedFolderChange (in boolean global); */
  NS_IMETHOD OnSharedFolderChange(PRBool global) = 0;

  /* void onUSBDeviceAttach (in IUSBDevice device, in IVirtualBoxErrorInfo error, in unsigned long maskedInterfaces, in wstring captureFilename); */
  NS_IMETHOD OnUSBDeviceAttach(IUSBDevice *device, IVirtualBoxErrorInfo *error, PRUint32 maskedInterfaces, const PRUnichar *captureFilename) = 0;

  /* void onUSBDeviceDetach (in wstring id, in IVirtualBoxErrorInfo error); */
  NS_IMETHOD OnUSBDeviceDetach(const PRUnichar *id, IVirtualBoxErrorInfo *error) = 0;

  /* void onShowWindow (in boolean check, out boolean canShow, out long long winId); */
  NS_IMETHOD OnShowWindow(PRBool check, PRBool *canShow, PRInt64 *winId) = 0;

  /* void onBandwidthGroupChange (in IBandwidthGroup bandwidthGroup); */
  NS_IMETHOD OnBandwidthGroupChange(IBandwidthGroup *bandwidthGroup) = 0;

  /* 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); */
  NS_IMETHOD AccessGuestProperty(const PRUnichar *name, const PRUnichar *value, const PRUnichar *flags, PRUint32 accessMode, PRUnichar **retValue, PRInt64 *retTimestamp, PRUnichar **retFlags) = 0;

  /* 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); */
  NS_IMETHOD EnumerateGuestProperties(const PRUnichar *patterns, PRUint32 *keysSize, PRUnichar ***keys, PRUint32 *valuesSize, PRUnichar ***values, PRUint32 *timestampsSize, PRInt64 **timestamps, PRUint32 *flagsSize, PRUnichar ***flags) = 0;

  /* void onlineMergeMedium (in IMediumAttachment mediumAttachment, in unsigned long sourceIdx, in unsigned long targetIdx, in IProgress progress); */
  NS_IMETHOD OnlineMergeMedium(IMediumAttachment *mediumAttachment, PRUint32 sourceIdx, PRUint32 targetIdx, IProgress *progress) = 0;

  /* void reconfigureMediumAttachments (in unsigned long attachmentsSize, [array, size_is (attachmentsSize)] in IMediumAttachment attachments); */
  NS_IMETHOD ReconfigureMediumAttachments(PRUint32 attachmentsSize, IMediumAttachment **attachments) = 0;

  /* void enableVMMStatistics (in boolean enable); */
  NS_IMETHOD EnableVMMStatistics(PRBool enable) = 0;

  /* void pauseWithReason (in PRUint32 reason); */
  NS_IMETHOD PauseWithReason(PRUint32 reason) = 0;

  /* void resumeWithReason (in PRUint32 reason); */
  NS_IMETHOD ResumeWithReason(PRUint32 reason) = 0;

  /* void saveStateWithReason (in PRUint32 reason, in IProgress progress, in wstring stateFilePath, in boolean pauseVM, [retval] out boolean leftPaused); */
  NS_IMETHOD SaveStateWithReason(PRUint32 reason, IProgress *progress, const PRUnichar *stateFilePath, PRBool pauseVM, PRBool *leftPaused) = 0;

  /* void cancelSaveStateWithReason (); */
  NS_IMETHOD CancelSaveStateWithReason(void) = 0;

  /* void assignMachine (in IMachine machine, in PRUint32 lockType, in IToken token); */
  NS_IMETHOD AssignMachine(IMachine *machine, PRUint32 lockType, IToken *token) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IINTERNALSESSIONCONTROL \
  NS_IMETHOD GetPID(PRUint32 *aPID); \
  NS_IMETHOD GetRemoteConsole(IConsole * *aRemoteConsole); \
  NS_IMETHOD GetNominalState(PRUint32 *aNominalState); \
  NS_IMETHOD AssignRemoteMachine(IMachine *machine, IConsole *console); \
  NS_IMETHOD UpdateMachineState(PRUint32 machineState); \
  NS_IMETHOD Uninitialize(void); \
  NS_IMETHOD OnNetworkAdapterChange(INetworkAdapter *networkAdapter, PRBool changeAdapter); \
  NS_IMETHOD OnSerialPortChange(ISerialPort *serialPort); \
  NS_IMETHOD OnParallelPortChange(IParallelPort *parallelPort); \
  NS_IMETHOD OnStorageControllerChange(void); \
  NS_IMETHOD OnMediumChange(IMediumAttachment *mediumAttachment, PRBool force); \
  NS_IMETHOD OnStorageDeviceChange(IMediumAttachment *mediumAttachment, PRBool remove, PRBool silent); \
  NS_IMETHOD OnClipboardModeChange(PRUint32 clipboardMode); \
  NS_IMETHOD OnDnDModeChange(PRUint32 dndMode); \
  NS_IMETHOD OnCPUChange(PRUint32 cpu, PRBool add); \
  NS_IMETHOD OnCPUExecutionCapChange(PRUint32 executionCap); \
  NS_IMETHOD OnVRDEServerChange(PRBool restart); \
  NS_IMETHOD OnVideoCaptureChange(void); \
  NS_IMETHOD OnUSBControllerChange(void); \
  NS_IMETHOD OnSharedFolderChange(PRBool global); \
  NS_IMETHOD OnUSBDeviceAttach(IUSBDevice *device, IVirtualBoxErrorInfo *error, PRUint32 maskedInterfaces, const PRUnichar *captureFilename); \
  NS_IMETHOD OnUSBDeviceDetach(const PRUnichar *id, IVirtualBoxErrorInfo *error); \
  NS_IMETHOD OnShowWindow(PRBool check, PRBool *canShow, PRInt64 *winId); \
  NS_IMETHOD OnBandwidthGroupChange(IBandwidthGroup *bandwidthGroup); \
  NS_IMETHOD AccessGuestProperty(const PRUnichar *name, const PRUnichar *value, const PRUnichar *flags, PRUint32 accessMode, PRUnichar **retValue, PRInt64 *retTimestamp, PRUnichar **retFlags); \
  NS_IMETHOD EnumerateGuestProperties(const PRUnichar *patterns, PRUint32 *keysSize, PRUnichar ***keys, PRUint32 *valuesSize, PRUnichar ***values, PRUint32 *timestampsSize, PRInt64 **timestamps, PRUint32 *flagsSize, PRUnichar ***flags); \
  NS_IMETHOD OnlineMergeMedium(IMediumAttachment *mediumAttachment, PRUint32 sourceIdx, PRUint32 targetIdx, IProgress *progress); \
  NS_IMETHOD ReconfigureMediumAttachments(PRUint32 attachmentsSize, IMediumAttachment **attachments); \
  NS_IMETHOD EnableVMMStatistics(PRBool enable); \
  NS_IMETHOD PauseWithReason(PRUint32 reason); \
  NS_IMETHOD ResumeWithReason(PRUint32 reason); \
  NS_IMETHOD SaveStateWithReason(PRUint32 reason, IProgress *progress, const PRUnichar *stateFilePath, PRBool pauseVM, PRBool *leftPaused); \
  NS_IMETHOD CancelSaveStateWithReason(void); \
  NS_IMETHOD AssignMachine(IMachine *machine, PRUint32 lockType, IToken *token); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IINTERNALSESSIONCONTROL(_to) \
  NS_IMETHOD GetPID(PRUint32 *aPID) { return _to GetPID(aPID); } \
  NS_IMETHOD GetRemoteConsole(IConsole * *aRemoteConsole) { return _to GetRemoteConsole(aRemoteConsole); } \
  NS_IMETHOD GetNominalState(PRUint32 *aNominalState) { return _to GetNominalState(aNominalState); } \
  NS_IMETHOD AssignRemoteMachine(IMachine *machine, IConsole *console) { return _to AssignRemoteMachine(machine, console); } \
  NS_IMETHOD UpdateMachineState(PRUint32 machineState) { return _to UpdateMachineState(machineState); } \
  NS_IMETHOD Uninitialize(void) { return _to Uninitialize(); } \
  NS_IMETHOD OnNetworkAdapterChange(INetworkAdapter *networkAdapter, PRBool changeAdapter) { return _to OnNetworkAdapterChange(networkAdapter, changeAdapter); } \
  NS_IMETHOD OnSerialPortChange(ISerialPort *serialPort) { return _to OnSerialPortChange(serialPort); } \
  NS_IMETHOD OnParallelPortChange(IParallelPort *parallelPort) { return _to OnParallelPortChange(parallelPort); } \
  NS_IMETHOD OnStorageControllerChange(void) { return _to OnStorageControllerChange(); } \
  NS_IMETHOD OnMediumChange(IMediumAttachment *mediumAttachment, PRBool force) { return _to OnMediumChange(mediumAttachment, force); } \
  NS_IMETHOD OnStorageDeviceChange(IMediumAttachment *mediumAttachment, PRBool remove, PRBool silent) { return _to OnStorageDeviceChange(mediumAttachment, remove, silent); } \
  NS_IMETHOD OnClipboardModeChange(PRUint32 clipboardMode) { return _to OnClipboardModeChange(clipboardMode); } \
  NS_IMETHOD OnDnDModeChange(PRUint32 dndMode) { return _to OnDnDModeChange(dndMode); } \
  NS_IMETHOD OnCPUChange(PRUint32 cpu, PRBool add) { return _to OnCPUChange(cpu, add); } \
  NS_IMETHOD OnCPUExecutionCapChange(PRUint32 executionCap) { return _to OnCPUExecutionCapChange(executionCap); } \
  NS_IMETHOD OnVRDEServerChange(PRBool restart) { return _to OnVRDEServerChange(restart); } \
  NS_IMETHOD OnVideoCaptureChange(void) { return _to OnVideoCaptureChange(); } \
  NS_IMETHOD OnUSBControllerChange(void) { return _to OnUSBControllerChange(); } \
  NS_IMETHOD OnSharedFolderChange(PRBool global) { return _to OnSharedFolderChange(global); } \
  NS_IMETHOD OnUSBDeviceAttach(IUSBDevice *device, IVirtualBoxErrorInfo *error, PRUint32 maskedInterfaces, const PRUnichar *captureFilename) { return _to OnUSBDeviceAttach(device, error, maskedInterfaces, captureFilename); } \
  NS_IMETHOD OnUSBDeviceDetach(const PRUnichar *id, IVirtualBoxErrorInfo *error) { return _to OnUSBDeviceDetach(id, error); } \
  NS_IMETHOD OnShowWindow(PRBool check, PRBool *canShow, PRInt64 *winId) { return _to OnShowWindow(check, canShow, winId); } \
  NS_IMETHOD OnBandwidthGroupChange(IBandwidthGroup *bandwidthGroup) { return _to OnBandwidthGroupChange(bandwidthGroup); } \
  NS_IMETHOD AccessGuestProperty(const PRUnichar *name, const PRUnichar *value, const PRUnichar *flags, PRUint32 accessMode, PRUnichar **retValue, PRInt64 *retTimestamp, PRUnichar **retFlags) { return _to AccessGuestProperty(name, value, flags, accessMode, retValue, retTimestamp, retFlags); } \
  NS_IMETHOD EnumerateGuestProperties(const PRUnichar *patterns, PRUint32 *keysSize, PRUnichar ***keys, PRUint32 *valuesSize, PRUnichar ***values, PRUint32 *timestampsSize, PRInt64 **timestamps, PRUint32 *flagsSize, PRUnichar ***flags) { return _to EnumerateGuestProperties(patterns, keysSize, keys, valuesSize, values, timestampsSize, timestamps, flagsSize, flags); } \
  NS_IMETHOD OnlineMergeMedium(IMediumAttachment *mediumAttachment, PRUint32 sourceIdx, PRUint32 targetIdx, IProgress *progress) { return _to OnlineMergeMedium(mediumAttachment, sourceIdx, targetIdx, progress); } \
  NS_IMETHOD ReconfigureMediumAttachments(PRUint32 attachmentsSize, IMediumAttachment **attachments) { return _to ReconfigureMediumAttachments(attachmentsSize, attachments); } \
  NS_IMETHOD EnableVMMStatistics(PRBool enable) { return _to EnableVMMStatistics(enable); } \
  NS_IMETHOD PauseWithReason(PRUint32 reason) { return _to PauseWithReason(reason); } \
  NS_IMETHOD ResumeWithReason(PRUint32 reason) { return _to ResumeWithReason(reason); } \
  NS_IMETHOD SaveStateWithReason(PRUint32 reason, IProgress *progress, const PRUnichar *stateFilePath, PRBool pauseVM, PRBool *leftPaused) { return _to SaveStateWithReason(reason, progress, stateFilePath, pauseVM, leftPaused); } \
  NS_IMETHOD CancelSaveStateWithReason(void) { return _to CancelSaveStateWithReason(); } \
  NS_IMETHOD AssignMachine(IMachine *machine, PRUint32 lockType, IToken *token) { return _to AssignMachine(machine, lockType, token); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IINTERNALSESSIONCONTROL(_to) \
  NS_IMETHOD GetPID(PRUint32 *aPID) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPID(aPID); } \
  NS_IMETHOD GetRemoteConsole(IConsole * *aRemoteConsole) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRemoteConsole(aRemoteConsole); } \
  NS_IMETHOD GetNominalState(PRUint32 *aNominalState) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNominalState(aNominalState); } \
  NS_IMETHOD AssignRemoteMachine(IMachine *machine, IConsole *console) { return !_to ? NS_ERROR_NULL_POINTER : _to->AssignRemoteMachine(machine, console); } \
  NS_IMETHOD UpdateMachineState(PRUint32 machineState) { return !_to ? NS_ERROR_NULL_POINTER : _to->UpdateMachineState(machineState); } \
  NS_IMETHOD Uninitialize(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Uninitialize(); } \
  NS_IMETHOD OnNetworkAdapterChange(INetworkAdapter *networkAdapter, PRBool changeAdapter) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnNetworkAdapterChange(networkAdapter, changeAdapter); } \
  NS_IMETHOD OnSerialPortChange(ISerialPort *serialPort) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnSerialPortChange(serialPort); } \
  NS_IMETHOD OnParallelPortChange(IParallelPort *parallelPort) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnParallelPortChange(parallelPort); } \
  NS_IMETHOD OnStorageControllerChange(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnStorageControllerChange(); } \
  NS_IMETHOD OnMediumChange(IMediumAttachment *mediumAttachment, PRBool force) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnMediumChange(mediumAttachment, force); } \
  NS_IMETHOD OnStorageDeviceChange(IMediumAttachment *mediumAttachment, PRBool remove, PRBool silent) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnStorageDeviceChange(mediumAttachment, remove, silent); } \
  NS_IMETHOD OnClipboardModeChange(PRUint32 clipboardMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnClipboardModeChange(clipboardMode); } \
  NS_IMETHOD OnDnDModeChange(PRUint32 dndMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnDnDModeChange(dndMode); } \
  NS_IMETHOD OnCPUChange(PRUint32 cpu, PRBool add) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnCPUChange(cpu, add); } \
  NS_IMETHOD OnCPUExecutionCapChange(PRUint32 executionCap) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnCPUExecutionCapChange(executionCap); } \
  NS_IMETHOD OnVRDEServerChange(PRBool restart) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnVRDEServerChange(restart); } \
  NS_IMETHOD OnVideoCaptureChange(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnVideoCaptureChange(); } \
  NS_IMETHOD OnUSBControllerChange(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnUSBControllerChange(); } \
  NS_IMETHOD OnSharedFolderChange(PRBool global) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnSharedFolderChange(global); } \
  NS_IMETHOD OnUSBDeviceAttach(IUSBDevice *device, IVirtualBoxErrorInfo *error, PRUint32 maskedInterfaces, const PRUnichar *captureFilename) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnUSBDeviceAttach(device, error, maskedInterfaces, captureFilename); } \
  NS_IMETHOD OnUSBDeviceDetach(const PRUnichar *id, IVirtualBoxErrorInfo *error) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnUSBDeviceDetach(id, error); } \
  NS_IMETHOD OnShowWindow(PRBool check, PRBool *canShow, PRInt64 *winId) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnShowWindow(check, canShow, winId); } \
  NS_IMETHOD OnBandwidthGroupChange(IBandwidthGroup *bandwidthGroup) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnBandwidthGroupChange(bandwidthGroup); } \
  NS_IMETHOD AccessGuestProperty(const PRUnichar *name, const PRUnichar *value, const PRUnichar *flags, PRUint32 accessMode, PRUnichar **retValue, PRInt64 *retTimestamp, PRUnichar **retFlags) { return !_to ? NS_ERROR_NULL_POINTER : _to->AccessGuestProperty(name, value, flags, accessMode, retValue, retTimestamp, retFlags); } \
  NS_IMETHOD EnumerateGuestProperties(const PRUnichar *patterns, PRUint32 *keysSize, PRUnichar ***keys, PRUint32 *valuesSize, PRUnichar ***values, PRUint32 *timestampsSize, PRInt64 **timestamps, PRUint32 *flagsSize, PRUnichar ***flags) { return !_to ? NS_ERROR_NULL_POINTER : _to->EnumerateGuestProperties(patterns, keysSize, keys, valuesSize, values, timestampsSize, timestamps, flagsSize, flags); } \
  NS_IMETHOD OnlineMergeMedium(IMediumAttachment *mediumAttachment, PRUint32 sourceIdx, PRUint32 targetIdx, IProgress *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnlineMergeMedium(mediumAttachment, sourceIdx, targetIdx, progress); } \
  NS_IMETHOD ReconfigureMediumAttachments(PRUint32 attachmentsSize, IMediumAttachment **attachments) { return !_to ? NS_ERROR_NULL_POINTER : _to->ReconfigureMediumAttachments(attachmentsSize, attachments); } \
  NS_IMETHOD EnableVMMStatistics(PRBool enable) { return !_to ? NS_ERROR_NULL_POINTER : _to->EnableVMMStatistics(enable); } \
  NS_IMETHOD PauseWithReason(PRUint32 reason) { return !_to ? NS_ERROR_NULL_POINTER : _to->PauseWithReason(reason); } \
  NS_IMETHOD ResumeWithReason(PRUint32 reason) { return !_to ? NS_ERROR_NULL_POINTER : _to->ResumeWithReason(reason); } \
  NS_IMETHOD SaveStateWithReason(PRUint32 reason, IProgress *progress, const PRUnichar *stateFilePath, PRBool pauseVM, PRBool *leftPaused) { return !_to ? NS_ERROR_NULL_POINTER : _to->SaveStateWithReason(reason, progress, stateFilePath, pauseVM, leftPaused); } \
  NS_IMETHOD CancelSaveStateWithReason(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->CancelSaveStateWithReason(); } \
  NS_IMETHOD AssignMachine(IMachine *machine, PRUint32 lockType, IToken *token) { return !_to ? NS_ERROR_NULL_POINTER : _to->AssignMachine(machine, lockType, token); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IInternalSessionControl
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IINTERNALSESSIONCONTROL

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IInternalSessionControl)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute unsigned long PID; */
NS_IMETHODIMP _MYCLASS_::GetPID(PRUint32 *aPID)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IConsole remoteConsole; */
NS_IMETHODIMP _MYCLASS_::GetRemoteConsole(IConsole * *aRemoteConsole)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 nominalState; */
NS_IMETHODIMP _MYCLASS_::GetNominalState(PRUint32 *aNominalState)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void assignRemoteMachine (in IMachine machine, in IConsole console); */
NS_IMETHODIMP _MYCLASS_::AssignRemoteMachine(IMachine *machine, IConsole *console)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void updateMachineState (in PRUint32 machineState); */
NS_IMETHODIMP _MYCLASS_::UpdateMachineState(PRUint32 machineState)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void uninitialize (); */
NS_IMETHODIMP _MYCLASS_::Uninitialize()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onNetworkAdapterChange (in INetworkAdapter networkAdapter, in boolean changeAdapter); */
NS_IMETHODIMP _MYCLASS_::OnNetworkAdapterChange(INetworkAdapter *networkAdapter, PRBool changeAdapter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onSerialPortChange (in ISerialPort serialPort); */
NS_IMETHODIMP _MYCLASS_::OnSerialPortChange(ISerialPort *serialPort)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onParallelPortChange (in IParallelPort parallelPort); */
NS_IMETHODIMP _MYCLASS_::OnParallelPortChange(IParallelPort *parallelPort)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onStorageControllerChange (); */
NS_IMETHODIMP _MYCLASS_::OnStorageControllerChange()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onMediumChange (in IMediumAttachment mediumAttachment, in boolean force); */
NS_IMETHODIMP _MYCLASS_::OnMediumChange(IMediumAttachment *mediumAttachment, PRBool force)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onStorageDeviceChange (in IMediumAttachment mediumAttachment, in boolean remove, in boolean silent); */
NS_IMETHODIMP _MYCLASS_::OnStorageDeviceChange(IMediumAttachment *mediumAttachment, PRBool remove, PRBool silent)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onClipboardModeChange (in PRUint32 clipboardMode); */
NS_IMETHODIMP _MYCLASS_::OnClipboardModeChange(PRUint32 clipboardMode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onDnDModeChange (in PRUint32 dndMode); */
NS_IMETHODIMP _MYCLASS_::OnDnDModeChange(PRUint32 dndMode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onCPUChange (in unsigned long cpu, in boolean add); */
NS_IMETHODIMP _MYCLASS_::OnCPUChange(PRUint32 cpu, PRBool add)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onCPUExecutionCapChange (in unsigned long executionCap); */
NS_IMETHODIMP _MYCLASS_::OnCPUExecutionCapChange(PRUint32 executionCap)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onVRDEServerChange (in boolean restart); */
NS_IMETHODIMP _MYCLASS_::OnVRDEServerChange(PRBool restart)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onVideoCaptureChange (); */
NS_IMETHODIMP _MYCLASS_::OnVideoCaptureChange()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onUSBControllerChange (); */
NS_IMETHODIMP _MYCLASS_::OnUSBControllerChange()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onSharedFolderChange (in boolean global); */
NS_IMETHODIMP _MYCLASS_::OnSharedFolderChange(PRBool global)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onUSBDeviceAttach (in IUSBDevice device, in IVirtualBoxErrorInfo error, in unsigned long maskedInterfaces, in wstring captureFilename); */
NS_IMETHODIMP _MYCLASS_::OnUSBDeviceAttach(IUSBDevice *device, IVirtualBoxErrorInfo *error, PRUint32 maskedInterfaces, const PRUnichar *captureFilename)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onUSBDeviceDetach (in wstring id, in IVirtualBoxErrorInfo error); */
NS_IMETHODIMP _MYCLASS_::OnUSBDeviceDetach(const PRUnichar *id, IVirtualBoxErrorInfo *error)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onShowWindow (in boolean check, out boolean canShow, out long long winId); */
NS_IMETHODIMP _MYCLASS_::OnShowWindow(PRBool check, PRBool *canShow, PRInt64 *winId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onBandwidthGroupChange (in IBandwidthGroup bandwidthGroup); */
NS_IMETHODIMP _MYCLASS_::OnBandwidthGroupChange(IBandwidthGroup *bandwidthGroup)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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); */
NS_IMETHODIMP _MYCLASS_::AccessGuestProperty(const PRUnichar *name, const PRUnichar *value, const PRUnichar *flags, PRUint32 accessMode, PRUnichar **retValue, PRInt64 *retTimestamp, PRUnichar **retFlags)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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); */
NS_IMETHODIMP _MYCLASS_::EnumerateGuestProperties(const PRUnichar *patterns, PRUint32 *keysSize, PRUnichar ***keys, PRUint32 *valuesSize, PRUnichar ***values, PRUint32 *timestampsSize, PRInt64 **timestamps, PRUint32 *flagsSize, PRUnichar ***flags)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onlineMergeMedium (in IMediumAttachment mediumAttachment, in unsigned long sourceIdx, in unsigned long targetIdx, in IProgress progress); */
NS_IMETHODIMP _MYCLASS_::OnlineMergeMedium(IMediumAttachment *mediumAttachment, PRUint32 sourceIdx, PRUint32 targetIdx, IProgress *progress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void reconfigureMediumAttachments (in unsigned long attachmentsSize, [array, size_is (attachmentsSize)] in IMediumAttachment attachments); */
NS_IMETHODIMP _MYCLASS_::ReconfigureMediumAttachments(PRUint32 attachmentsSize, IMediumAttachment **attachments)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void enableVMMStatistics (in boolean enable); */
NS_IMETHODIMP _MYCLASS_::EnableVMMStatistics(PRBool enable)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void pauseWithReason (in PRUint32 reason); */
NS_IMETHODIMP _MYCLASS_::PauseWithReason(PRUint32 reason)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void resumeWithReason (in PRUint32 reason); */
NS_IMETHODIMP _MYCLASS_::ResumeWithReason(PRUint32 reason)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void saveStateWithReason (in PRUint32 reason, in IProgress progress, in wstring stateFilePath, in boolean pauseVM, [retval] out boolean leftPaused); */
NS_IMETHODIMP _MYCLASS_::SaveStateWithReason(PRUint32 reason, IProgress *progress, const PRUnichar *stateFilePath, PRBool pauseVM, PRBool *leftPaused)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void cancelSaveStateWithReason (); */
NS_IMETHODIMP _MYCLASS_::CancelSaveStateWithReason()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void assignMachine (in IMachine machine, in PRUint32 lockType, in IToken token); */
NS_IMETHODIMP _MYCLASS_::AssignMachine(IMachine *machine, PRUint32 lockType, IToken *token)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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_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() { return smth OnStorageControllerChange(); }
#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_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_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_OnVideoCaptureChange_TO(smth) NS_IMETHOD OnVideoCaptureChange() { return smth OnVideoCaptureChange(); }
#define COM_FORWARD_IInternalSessionControl_OnVideoCaptureChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnVideoCaptureChange_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnVideoCaptureChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnVideoCaptureChange_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, PRUnichar * aStateFilePath, PRBool aPauseVM, PRBool * aLeftPaused) { return smth SaveStateWithReason (aReason, aProgress, 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;

/* starting interface:    ISession */
#define ISESSION_IID_STR "7844aa05-b02e-4cdd-a04f-ade4a762e6b7"

#define ISESSION_IID \
  {0x7844aa05, 0xb02e, 0x4cdd, \
    { 0xa0, 0x4f, 0xad, 0xe4, 0xa7, 0x62, 0xe6, 0xb7 }}

class NS_NO_VTABLE ISession : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ISESSION_IID)

  /* readonly attribute PRUint32 state; */
  NS_IMETHOD GetState(PRUint32 *aState) = 0;

  /* readonly attribute PRUint32 type; */
  NS_IMETHOD GetType(PRUint32 *aType) = 0;

  /* attribute wstring name; */
  NS_IMETHOD GetName(PRUnichar * *aName) = 0;
  NS_IMETHOD SetName(const PRUnichar * aName) = 0;

  /* readonly attribute IMachine machine; */
  NS_IMETHOD GetMachine(IMachine * *aMachine) = 0;

  /* readonly attribute IConsole console; */
  NS_IMETHOD GetConsole(IConsole * *aConsole) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1ISession; */
  NS_IMETHOD GetInternalAndReservedAttribute1ISession(PRUint32 *aInternalAndReservedAttribute1ISession) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2ISession; */
  NS_IMETHOD GetInternalAndReservedAttribute2ISession(PRUint32 *aInternalAndReservedAttribute2ISession) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3ISession; */
  NS_IMETHOD GetInternalAndReservedAttribute3ISession(PRUint32 *aInternalAndReservedAttribute3ISession) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4ISession; */
  NS_IMETHOD GetInternalAndReservedAttribute4ISession(PRUint32 *aInternalAndReservedAttribute4ISession) = 0;

  /* void unlockMachine (); */
  NS_IMETHOD UnlockMachine(void) = 0;

  /* void InternalAndReservedMethod1ISession (); */
  NS_IMETHOD InternalAndReservedMethod1ISession(void) = 0;

  /* void InternalAndReservedMethod2ISession (); */
  NS_IMETHOD InternalAndReservedMethod2ISession(void) = 0;

  /* void InternalAndReservedMethod3ISession (); */
  NS_IMETHOD InternalAndReservedMethod3ISession(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ISESSION \
  NS_IMETHOD GetState(PRUint32 *aState); \
  NS_IMETHOD GetType(PRUint32 *aType); \
  NS_IMETHOD GetName(PRUnichar * *aName); \
  NS_IMETHOD SetName(const PRUnichar * aName); \
  NS_IMETHOD GetMachine(IMachine * *aMachine); \
  NS_IMETHOD GetConsole(IConsole * *aConsole); \
  NS_IMETHOD GetInternalAndReservedAttribute1ISession(PRUint32 *aInternalAndReservedAttribute1ISession); \
  NS_IMETHOD GetInternalAndReservedAttribute2ISession(PRUint32 *aInternalAndReservedAttribute2ISession); \
  NS_IMETHOD GetInternalAndReservedAttribute3ISession(PRUint32 *aInternalAndReservedAttribute3ISession); \
  NS_IMETHOD GetInternalAndReservedAttribute4ISession(PRUint32 *aInternalAndReservedAttribute4ISession); \
  NS_IMETHOD UnlockMachine(void); \
  NS_IMETHOD InternalAndReservedMethod1ISession(void); \
  NS_IMETHOD InternalAndReservedMethod2ISession(void); \
  NS_IMETHOD InternalAndReservedMethod3ISession(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ISESSION(_to) \
  NS_IMETHOD GetState(PRUint32 *aState) { return _to GetState(aState); } \
  NS_IMETHOD GetType(PRUint32 *aType) { return _to GetType(aType); } \
  NS_IMETHOD GetName(PRUnichar * *aName) { return _to GetName(aName); } \
  NS_IMETHOD SetName(const PRUnichar * aName) { return _to SetName(aName); } \
  NS_IMETHOD GetMachine(IMachine * *aMachine) { return _to GetMachine(aMachine); } \
  NS_IMETHOD GetConsole(IConsole * *aConsole) { return _to GetConsole(aConsole); } \
  NS_IMETHOD GetInternalAndReservedAttribute1ISession(PRUint32 *aInternalAndReservedAttribute1ISession) { return _to GetInternalAndReservedAttribute1ISession(aInternalAndReservedAttribute1ISession); } \
  NS_IMETHOD GetInternalAndReservedAttribute2ISession(PRUint32 *aInternalAndReservedAttribute2ISession) { return _to GetInternalAndReservedAttribute2ISession(aInternalAndReservedAttribute2ISession); } \
  NS_IMETHOD GetInternalAndReservedAttribute3ISession(PRUint32 *aInternalAndReservedAttribute3ISession) { return _to GetInternalAndReservedAttribute3ISession(aInternalAndReservedAttribute3ISession); } \
  NS_IMETHOD GetInternalAndReservedAttribute4ISession(PRUint32 *aInternalAndReservedAttribute4ISession) { return _to GetInternalAndReservedAttribute4ISession(aInternalAndReservedAttribute4ISession); } \
  NS_IMETHOD UnlockMachine(void) { return _to UnlockMachine(); } \
  NS_IMETHOD InternalAndReservedMethod1ISession(void) { return _to InternalAndReservedMethod1ISession(); } \
  NS_IMETHOD InternalAndReservedMethod2ISession(void) { return _to InternalAndReservedMethod2ISession(); } \
  NS_IMETHOD InternalAndReservedMethod3ISession(void) { return _to InternalAndReservedMethod3ISession(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ISESSION(_to) \
  NS_IMETHOD GetState(PRUint32 *aState) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetState(aState); } \
  NS_IMETHOD GetType(PRUint32 *aType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetType(aType); } \
  NS_IMETHOD GetName(PRUnichar * *aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
  NS_IMETHOD SetName(const PRUnichar * aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetName(aName); } \
  NS_IMETHOD GetMachine(IMachine * *aMachine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMachine(aMachine); } \
  NS_IMETHOD GetConsole(IConsole * *aConsole) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetConsole(aConsole); } \
  NS_IMETHOD GetInternalAndReservedAttribute1ISession(PRUint32 *aInternalAndReservedAttribute1ISession) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1ISession(aInternalAndReservedAttribute1ISession); } \
  NS_IMETHOD GetInternalAndReservedAttribute2ISession(PRUint32 *aInternalAndReservedAttribute2ISession) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2ISession(aInternalAndReservedAttribute2ISession); } \
  NS_IMETHOD GetInternalAndReservedAttribute3ISession(PRUint32 *aInternalAndReservedAttribute3ISession) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3ISession(aInternalAndReservedAttribute3ISession); } \
  NS_IMETHOD GetInternalAndReservedAttribute4ISession(PRUint32 *aInternalAndReservedAttribute4ISession) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4ISession(aInternalAndReservedAttribute4ISession); } \
  NS_IMETHOD UnlockMachine(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->UnlockMachine(); } \
  NS_IMETHOD InternalAndReservedMethod1ISession(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1ISession(); } \
  NS_IMETHOD InternalAndReservedMethod2ISession(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2ISession(); } \
  NS_IMETHOD InternalAndReservedMethod3ISession(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3ISession(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public ISession
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_ISESSION

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, ISession)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute PRUint32 state; */
NS_IMETHODIMP _MYCLASS_::GetState(PRUint32 *aState)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 type; */
NS_IMETHODIMP _MYCLASS_::GetType(PRUint32 *aType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring name; */
NS_IMETHODIMP _MYCLASS_::GetName(PRUnichar * *aName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetName(const PRUnichar * aName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IMachine machine; */
NS_IMETHODIMP _MYCLASS_::GetMachine(IMachine * *aMachine)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IConsole console; */
NS_IMETHODIMP _MYCLASS_::GetConsole(IConsole * *aConsole)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1ISession; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1ISession(PRUint32 *aInternalAndReservedAttribute1ISession)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2ISession; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2ISession(PRUint32 *aInternalAndReservedAttribute2ISession)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute3ISession; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute3ISession(PRUint32 *aInternalAndReservedAttribute3ISession)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute4ISession; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute4ISession(PRUint32 *aInternalAndReservedAttribute4ISession)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void unlockMachine (); */
NS_IMETHODIMP _MYCLASS_::UnlockMachine()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1ISession (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1ISession()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod2ISession (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod2ISession()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod3ISession (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod3ISession()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IStorageController */
#define ISTORAGECONTROLLER_IID_STR "49b19d41-4a75-7bd5-c124-259acba3c41d"

#define ISTORAGECONTROLLER_IID \
  {0x49b19d41, 0x4a75, 0x7bd5, \
    { 0xc1, 0x24, 0x25, 0x9a, 0xcb, 0xa3, 0xc4, 0x1d }}

class NS_NO_VTABLE IStorageController : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ISTORAGECONTROLLER_IID)

  /* attribute wstring name; */
  NS_IMETHOD GetName(PRUnichar * *aName) = 0;
  NS_IMETHOD SetName(const PRUnichar * aName) = 0;

  /* readonly attribute unsigned long maxDevicesPerPortCount; */
  NS_IMETHOD GetMaxDevicesPerPortCount(PRUint32 *aMaxDevicesPerPortCount) = 0;

  /* readonly attribute unsigned long minPortCount; */
  NS_IMETHOD GetMinPortCount(PRUint32 *aMinPortCount) = 0;

  /* readonly attribute unsigned long maxPortCount; */
  NS_IMETHOD GetMaxPortCount(PRUint32 *aMaxPortCount) = 0;

  /* attribute unsigned long instance; */
  NS_IMETHOD GetInstance(PRUint32 *aInstance) = 0;
  NS_IMETHOD SetInstance(PRUint32 aInstance) = 0;

  /* attribute unsigned long portCount; */
  NS_IMETHOD GetPortCount(PRUint32 *aPortCount) = 0;
  NS_IMETHOD SetPortCount(PRUint32 aPortCount) = 0;

  /* readonly attribute PRUint32 bus; */
  NS_IMETHOD GetBus(PRUint32 *aBus) = 0;

  /* attribute PRUint32 controllerType; */
  NS_IMETHOD GetControllerType(PRUint32 *aControllerType) = 0;
  NS_IMETHOD SetControllerType(PRUint32 aControllerType) = 0;

  /* attribute boolean useHostIOCache; */
  NS_IMETHOD GetUseHostIOCache(PRBool *aUseHostIOCache) = 0;
  NS_IMETHOD SetUseHostIOCache(PRBool aUseHostIOCache) = 0;

  /* readonly attribute boolean bootable; */
  NS_IMETHOD GetBootable(PRBool *aBootable) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IStorageController; */
  NS_IMETHOD GetInternalAndReservedAttribute1IStorageController(PRUint32 *aInternalAndReservedAttribute1IStorageController) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IStorageController; */
  NS_IMETHOD GetInternalAndReservedAttribute2IStorageController(PRUint32 *aInternalAndReservedAttribute2IStorageController) = 0;

  /* void InternalAndReservedMethod1IStorageController (); */
  NS_IMETHOD InternalAndReservedMethod1IStorageController(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ISTORAGECONTROLLER \
  NS_IMETHOD GetName(PRUnichar * *aName); \
  NS_IMETHOD SetName(const PRUnichar * aName); \
  NS_IMETHOD GetMaxDevicesPerPortCount(PRUint32 *aMaxDevicesPerPortCount); \
  NS_IMETHOD GetMinPortCount(PRUint32 *aMinPortCount); \
  NS_IMETHOD GetMaxPortCount(PRUint32 *aMaxPortCount); \
  NS_IMETHOD GetInstance(PRUint32 *aInstance); \
  NS_IMETHOD SetInstance(PRUint32 aInstance); \
  NS_IMETHOD GetPortCount(PRUint32 *aPortCount); \
  NS_IMETHOD SetPortCount(PRUint32 aPortCount); \
  NS_IMETHOD GetBus(PRUint32 *aBus); \
  NS_IMETHOD GetControllerType(PRUint32 *aControllerType); \
  NS_IMETHOD SetControllerType(PRUint32 aControllerType); \
  NS_IMETHOD GetUseHostIOCache(PRBool *aUseHostIOCache); \
  NS_IMETHOD SetUseHostIOCache(PRBool aUseHostIOCache); \
  NS_IMETHOD GetBootable(PRBool *aBootable); \
  NS_IMETHOD GetInternalAndReservedAttribute1IStorageController(PRUint32 *aInternalAndReservedAttribute1IStorageController); \
  NS_IMETHOD GetInternalAndReservedAttribute2IStorageController(PRUint32 *aInternalAndReservedAttribute2IStorageController); \
  NS_IMETHOD InternalAndReservedMethod1IStorageController(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ISTORAGECONTROLLER(_to) \
  NS_IMETHOD GetName(PRUnichar * *aName) { return _to GetName(aName); } \
  NS_IMETHOD SetName(const PRUnichar * aName) { return _to SetName(aName); } \
  NS_IMETHOD GetMaxDevicesPerPortCount(PRUint32 *aMaxDevicesPerPortCount) { return _to GetMaxDevicesPerPortCount(aMaxDevicesPerPortCount); } \
  NS_IMETHOD GetMinPortCount(PRUint32 *aMinPortCount) { return _to GetMinPortCount(aMinPortCount); } \
  NS_IMETHOD GetMaxPortCount(PRUint32 *aMaxPortCount) { return _to GetMaxPortCount(aMaxPortCount); } \
  NS_IMETHOD GetInstance(PRUint32 *aInstance) { return _to GetInstance(aInstance); } \
  NS_IMETHOD SetInstance(PRUint32 aInstance) { return _to SetInstance(aInstance); } \
  NS_IMETHOD GetPortCount(PRUint32 *aPortCount) { return _to GetPortCount(aPortCount); } \
  NS_IMETHOD SetPortCount(PRUint32 aPortCount) { return _to SetPortCount(aPortCount); } \
  NS_IMETHOD GetBus(PRUint32 *aBus) { return _to GetBus(aBus); } \
  NS_IMETHOD GetControllerType(PRUint32 *aControllerType) { return _to GetControllerType(aControllerType); } \
  NS_IMETHOD SetControllerType(PRUint32 aControllerType) { return _to SetControllerType(aControllerType); } \
  NS_IMETHOD GetUseHostIOCache(PRBool *aUseHostIOCache) { return _to GetUseHostIOCache(aUseHostIOCache); } \
  NS_IMETHOD SetUseHostIOCache(PRBool aUseHostIOCache) { return _to SetUseHostIOCache(aUseHostIOCache); } \
  NS_IMETHOD GetBootable(PRBool *aBootable) { return _to GetBootable(aBootable); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IStorageController(PRUint32 *aInternalAndReservedAttribute1IStorageController) { return _to GetInternalAndReservedAttribute1IStorageController(aInternalAndReservedAttribute1IStorageController); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IStorageController(PRUint32 *aInternalAndReservedAttribute2IStorageController) { return _to GetInternalAndReservedAttribute2IStorageController(aInternalAndReservedAttribute2IStorageController); } \
  NS_IMETHOD InternalAndReservedMethod1IStorageController(void) { return _to InternalAndReservedMethod1IStorageController(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ISTORAGECONTROLLER(_to) \
  NS_IMETHOD GetName(PRUnichar * *aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
  NS_IMETHOD SetName(const PRUnichar * aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetName(aName); } \
  NS_IMETHOD GetMaxDevicesPerPortCount(PRUint32 *aMaxDevicesPerPortCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMaxDevicesPerPortCount(aMaxDevicesPerPortCount); } \
  NS_IMETHOD GetMinPortCount(PRUint32 *aMinPortCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMinPortCount(aMinPortCount); } \
  NS_IMETHOD GetMaxPortCount(PRUint32 *aMaxPortCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMaxPortCount(aMaxPortCount); } \
  NS_IMETHOD GetInstance(PRUint32 *aInstance) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInstance(aInstance); } \
  NS_IMETHOD SetInstance(PRUint32 aInstance) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetInstance(aInstance); } \
  NS_IMETHOD GetPortCount(PRUint32 *aPortCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPortCount(aPortCount); } \
  NS_IMETHOD SetPortCount(PRUint32 aPortCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPortCount(aPortCount); } \
  NS_IMETHOD GetBus(PRUint32 *aBus) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBus(aBus); } \
  NS_IMETHOD GetControllerType(PRUint32 *aControllerType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetControllerType(aControllerType); } \
  NS_IMETHOD SetControllerType(PRUint32 aControllerType) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetControllerType(aControllerType); } \
  NS_IMETHOD GetUseHostIOCache(PRBool *aUseHostIOCache) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUseHostIOCache(aUseHostIOCache); } \
  NS_IMETHOD SetUseHostIOCache(PRBool aUseHostIOCache) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUseHostIOCache(aUseHostIOCache); } \
  NS_IMETHOD GetBootable(PRBool *aBootable) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBootable(aBootable); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IStorageController(PRUint32 *aInternalAndReservedAttribute1IStorageController) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IStorageController(aInternalAndReservedAttribute1IStorageController); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IStorageController(PRUint32 *aInternalAndReservedAttribute2IStorageController) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IStorageController(aInternalAndReservedAttribute2IStorageController); } \
  NS_IMETHOD InternalAndReservedMethod1IStorageController(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IStorageController(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IStorageController
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_ISTORAGECONTROLLER

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IStorageController)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* attribute wstring name; */
NS_IMETHODIMP _MYCLASS_::GetName(PRUnichar * *aName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetName(const PRUnichar * aName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long maxDevicesPerPortCount; */
NS_IMETHODIMP _MYCLASS_::GetMaxDevicesPerPortCount(PRUint32 *aMaxDevicesPerPortCount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long minPortCount; */
NS_IMETHODIMP _MYCLASS_::GetMinPortCount(PRUint32 *aMinPortCount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long maxPortCount; */
NS_IMETHODIMP _MYCLASS_::GetMaxPortCount(PRUint32 *aMaxPortCount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long instance; */
NS_IMETHODIMP _MYCLASS_::GetInstance(PRUint32 *aInstance)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetInstance(PRUint32 aInstance)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long portCount; */
NS_IMETHODIMP _MYCLASS_::GetPortCount(PRUint32 *aPortCount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetPortCount(PRUint32 aPortCount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 bus; */
NS_IMETHODIMP _MYCLASS_::GetBus(PRUint32 *aBus)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute PRUint32 controllerType; */
NS_IMETHODIMP _MYCLASS_::GetControllerType(PRUint32 *aControllerType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetControllerType(PRUint32 aControllerType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean useHostIOCache; */
NS_IMETHODIMP _MYCLASS_::GetUseHostIOCache(PRBool *aUseHostIOCache)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetUseHostIOCache(PRBool aUseHostIOCache)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean bootable; */
NS_IMETHODIMP _MYCLASS_::GetBootable(PRBool *aBootable)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IStorageController; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IStorageController(PRUint32 *aInternalAndReservedAttribute1IStorageController)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IStorageController; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IStorageController(PRUint32 *aInternalAndReservedAttribute2IStorageController)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1IStorageController (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1IStorageController()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IPerformanceMetric */
#define IPERFORMANCEMETRIC_IID_STR "81314d14-fd1c-411a-95c5-e9bb1414e632"

#define IPERFORMANCEMETRIC_IID \
  {0x81314d14, 0xfd1c, 0x411a, \
    { 0x95, 0xc5, 0xe9, 0xbb, 0x14, 0x14, 0xe6, 0x32 }}

class NS_NO_VTABLE IPerformanceMetric : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IPERFORMANCEMETRIC_IID)

  /* readonly attribute wstring metricName; */
  NS_IMETHOD GetMetricName(PRUnichar * *aMetricName) = 0;

  /* readonly attribute nsISupports object; */
  NS_IMETHOD GetObject(nsISupports * *aObject) = 0;

  /* readonly attribute wstring description; */
  NS_IMETHOD GetDescription(PRUnichar * *aDescription) = 0;

  /* readonly attribute unsigned long period; */
  NS_IMETHOD GetPeriod(PRUint32 *aPeriod) = 0;

  /* readonly attribute unsigned long count; */
  NS_IMETHOD GetCount(PRUint32 *aCount) = 0;

  /* readonly attribute wstring unit; */
  NS_IMETHOD GetUnit(PRUnichar * *aUnit) = 0;

  /* readonly attribute long minimumValue; */
  NS_IMETHOD GetMinimumValue(PRInt32 *aMinimumValue) = 0;

  /* readonly attribute long maximumValue; */
  NS_IMETHOD GetMaximumValue(PRInt32 *aMaximumValue) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IPerformanceMetric; */
  NS_IMETHOD GetInternalAndReservedAttribute1IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute1IPerformanceMetric) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IPerformanceMetric; */
  NS_IMETHOD GetInternalAndReservedAttribute2IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute2IPerformanceMetric) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IPerformanceMetric; */
  NS_IMETHOD GetInternalAndReservedAttribute3IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute3IPerformanceMetric) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IPerformanceMetric; */
  NS_IMETHOD GetInternalAndReservedAttribute4IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute4IPerformanceMetric) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IPerformanceMetric; */
  NS_IMETHOD GetInternalAndReservedAttribute5IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute5IPerformanceMetric) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IPerformanceMetric; */
  NS_IMETHOD GetInternalAndReservedAttribute6IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute6IPerformanceMetric) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IPerformanceMetric; */
  NS_IMETHOD GetInternalAndReservedAttribute7IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute7IPerformanceMetric) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IPerformanceMetric; */
  NS_IMETHOD GetInternalAndReservedAttribute8IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute8IPerformanceMetric) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IPERFORMANCEMETRIC \
  NS_IMETHOD GetMetricName(PRUnichar * *aMetricName); \
  NS_IMETHOD GetObject(nsISupports * *aObject); \
  NS_IMETHOD GetDescription(PRUnichar * *aDescription); \
  NS_IMETHOD GetPeriod(PRUint32 *aPeriod); \
  NS_IMETHOD GetCount(PRUint32 *aCount); \
  NS_IMETHOD GetUnit(PRUnichar * *aUnit); \
  NS_IMETHOD GetMinimumValue(PRInt32 *aMinimumValue); \
  NS_IMETHOD GetMaximumValue(PRInt32 *aMaximumValue); \
  NS_IMETHOD GetInternalAndReservedAttribute1IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute1IPerformanceMetric); \
  NS_IMETHOD GetInternalAndReservedAttribute2IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute2IPerformanceMetric); \
  NS_IMETHOD GetInternalAndReservedAttribute3IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute3IPerformanceMetric); \
  NS_IMETHOD GetInternalAndReservedAttribute4IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute4IPerformanceMetric); \
  NS_IMETHOD GetInternalAndReservedAttribute5IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute5IPerformanceMetric); \
  NS_IMETHOD GetInternalAndReservedAttribute6IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute6IPerformanceMetric); \
  NS_IMETHOD GetInternalAndReservedAttribute7IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute7IPerformanceMetric); \
  NS_IMETHOD GetInternalAndReservedAttribute8IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute8IPerformanceMetric); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IPERFORMANCEMETRIC(_to) \
  NS_IMETHOD GetMetricName(PRUnichar * *aMetricName) { return _to GetMetricName(aMetricName); } \
  NS_IMETHOD GetObject(nsISupports * *aObject) { return _to GetObject(aObject); } \
  NS_IMETHOD GetDescription(PRUnichar * *aDescription) { return _to GetDescription(aDescription); } \
  NS_IMETHOD GetPeriod(PRUint32 *aPeriod) { return _to GetPeriod(aPeriod); } \
  NS_IMETHOD GetCount(PRUint32 *aCount) { return _to GetCount(aCount); } \
  NS_IMETHOD GetUnit(PRUnichar * *aUnit) { return _to GetUnit(aUnit); } \
  NS_IMETHOD GetMinimumValue(PRInt32 *aMinimumValue) { return _to GetMinimumValue(aMinimumValue); } \
  NS_IMETHOD GetMaximumValue(PRInt32 *aMaximumValue) { return _to GetMaximumValue(aMaximumValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute1IPerformanceMetric) { return _to GetInternalAndReservedAttribute1IPerformanceMetric(aInternalAndReservedAttribute1IPerformanceMetric); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute2IPerformanceMetric) { return _to GetInternalAndReservedAttribute2IPerformanceMetric(aInternalAndReservedAttribute2IPerformanceMetric); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute3IPerformanceMetric) { return _to GetInternalAndReservedAttribute3IPerformanceMetric(aInternalAndReservedAttribute3IPerformanceMetric); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute4IPerformanceMetric) { return _to GetInternalAndReservedAttribute4IPerformanceMetric(aInternalAndReservedAttribute4IPerformanceMetric); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute5IPerformanceMetric) { return _to GetInternalAndReservedAttribute5IPerformanceMetric(aInternalAndReservedAttribute5IPerformanceMetric); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute6IPerformanceMetric) { return _to GetInternalAndReservedAttribute6IPerformanceMetric(aInternalAndReservedAttribute6IPerformanceMetric); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute7IPerformanceMetric) { return _to GetInternalAndReservedAttribute7IPerformanceMetric(aInternalAndReservedAttribute7IPerformanceMetric); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute8IPerformanceMetric) { return _to GetInternalAndReservedAttribute8IPerformanceMetric(aInternalAndReservedAttribute8IPerformanceMetric); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IPERFORMANCEMETRIC(_to) \
  NS_IMETHOD GetMetricName(PRUnichar * *aMetricName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMetricName(aMetricName); } \
  NS_IMETHOD GetObject(nsISupports * *aObject) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetObject(aObject); } \
  NS_IMETHOD GetDescription(PRUnichar * *aDescription) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDescription(aDescription); } \
  NS_IMETHOD GetPeriod(PRUint32 *aPeriod) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPeriod(aPeriod); } \
  NS_IMETHOD GetCount(PRUint32 *aCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCount(aCount); } \
  NS_IMETHOD GetUnit(PRUnichar * *aUnit) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUnit(aUnit); } \
  NS_IMETHOD GetMinimumValue(PRInt32 *aMinimumValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMinimumValue(aMinimumValue); } \
  NS_IMETHOD GetMaximumValue(PRInt32 *aMaximumValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMaximumValue(aMaximumValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute1IPerformanceMetric) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IPerformanceMetric(aInternalAndReservedAttribute1IPerformanceMetric); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute2IPerformanceMetric) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IPerformanceMetric(aInternalAndReservedAttribute2IPerformanceMetric); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute3IPerformanceMetric) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IPerformanceMetric(aInternalAndReservedAttribute3IPerformanceMetric); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute4IPerformanceMetric) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IPerformanceMetric(aInternalAndReservedAttribute4IPerformanceMetric); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute5IPerformanceMetric) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IPerformanceMetric(aInternalAndReservedAttribute5IPerformanceMetric); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute6IPerformanceMetric) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IPerformanceMetric(aInternalAndReservedAttribute6IPerformanceMetric); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute7IPerformanceMetric) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IPerformanceMetric(aInternalAndReservedAttribute7IPerformanceMetric); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute8IPerformanceMetric) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IPerformanceMetric(aInternalAndReservedAttribute8IPerformanceMetric); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IPerformanceMetric
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IPERFORMANCEMETRIC

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IPerformanceMetric)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute wstring metricName; */
NS_IMETHODIMP _MYCLASS_::GetMetricName(PRUnichar * *aMetricName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsISupports object; */
NS_IMETHODIMP _MYCLASS_::GetObject(nsISupports * *aObject)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring description; */
NS_IMETHODIMP _MYCLASS_::GetDescription(PRUnichar * *aDescription)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long period; */
NS_IMETHODIMP _MYCLASS_::GetPeriod(PRUint32 *aPeriod)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long count; */
NS_IMETHODIMP _MYCLASS_::GetCount(PRUint32 *aCount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring unit; */
NS_IMETHODIMP _MYCLASS_::GetUnit(PRUnichar * *aUnit)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long minimumValue; */
NS_IMETHODIMP _MYCLASS_::GetMinimumValue(PRInt32 *aMinimumValue)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long maximumValue; */
NS_IMETHODIMP _MYCLASS_::GetMaximumValue(PRInt32 *aMaximumValue)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IPerformanceMetric; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute1IPerformanceMetric)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IPerformanceMetric; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute2IPerformanceMetric)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute3IPerformanceMetric; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute3IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute3IPerformanceMetric)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute4IPerformanceMetric; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute4IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute4IPerformanceMetric)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute5IPerformanceMetric; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute5IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute5IPerformanceMetric)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute6IPerformanceMetric; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute6IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute6IPerformanceMetric)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute7IPerformanceMetric; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute7IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute7IPerformanceMetric)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute8IPerformanceMetric; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute8IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute8IPerformanceMetric)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IPerformanceCollector */
#define IPERFORMANCECOLLECTOR_IID_STR "b14290ad-cd54-400c-b858-797bcb82570e"

#define IPERFORMANCECOLLECTOR_IID \
  {0xb14290ad, 0xcd54, 0x400c, \
    { 0xb8, 0x58, 0x79, 0x7b, 0xcb, 0x82, 0x57, 0x0e }}

class NS_NO_VTABLE IPerformanceCollector : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IPERFORMANCECOLLECTOR_IID)

  /* void getMetricNames (out unsigned long metricNamesSize, [array, size_is (metricNamesSize), retval] out wstring metricNames); */
  NS_IMETHOD GetMetricNames(PRUint32 *metricNamesSize, PRUnichar ***metricNames) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IPerformanceCollector; */
  NS_IMETHOD GetInternalAndReservedAttribute1IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute1IPerformanceCollector) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IPerformanceCollector; */
  NS_IMETHOD GetInternalAndReservedAttribute2IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute2IPerformanceCollector) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IPerformanceCollector; */
  NS_IMETHOD GetInternalAndReservedAttribute3IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute3IPerformanceCollector) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IPerformanceCollector; */
  NS_IMETHOD GetInternalAndReservedAttribute4IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute4IPerformanceCollector) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IPerformanceCollector; */
  NS_IMETHOD GetInternalAndReservedAttribute5IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute5IPerformanceCollector) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IPerformanceCollector; */
  NS_IMETHOD GetInternalAndReservedAttribute6IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute6IPerformanceCollector) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IPerformanceCollector; */
  NS_IMETHOD GetInternalAndReservedAttribute7IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute7IPerformanceCollector) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IPerformanceCollector; */
  NS_IMETHOD GetInternalAndReservedAttribute8IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute8IPerformanceCollector) = 0;

  /* 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); */
  NS_IMETHOD GetMetrics(PRUint32 metricNamesSize, const PRUnichar **metricNames, PRUint32 objectsSize, nsISupports **objects, PRUint32 *metricsSize, IPerformanceMetric ***metrics) = 0;

  /* 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); */
  NS_IMETHOD SetupMetrics(PRUint32 metricNamesSize, const PRUnichar **metricNames, PRUint32 objectsSize, nsISupports **objects, PRUint32 period, PRUint32 count, PRUint32 *affectedMetricsSize, IPerformanceMetric ***affectedMetrics) = 0;

  /* 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); */
  NS_IMETHOD EnableMetrics(PRUint32 metricNamesSize, const PRUnichar **metricNames, PRUint32 objectsSize, nsISupports **objects, PRUint32 *affectedMetricsSize, IPerformanceMetric ***affectedMetrics) = 0;

  /* 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); */
  NS_IMETHOD DisableMetrics(PRUint32 metricNamesSize, const PRUnichar **metricNames, PRUint32 objectsSize, nsISupports **objects, PRUint32 *affectedMetricsSize, IPerformanceMetric ***affectedMetrics) = 0;

  /* 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); */
  NS_IMETHOD QueryMetricsData(PRUint32 metricNamesSize, const PRUnichar **metricNames, PRUint32 objectsSize, nsISupports **objects, PRUint32 *returnMetricNamesSize, PRUnichar ***returnMetricNames, PRUint32 *returnObjectsSize, nsISupports ***returnObjects, PRUint32 *returnUnitsSize, PRUnichar ***returnUnits, PRUint32 *returnScalesSize, PRUint32 **returnScales, PRUint32 *returnSequenceNumbersSize, PRUint32 **returnSequenceNumbers, PRUint32 *returnDataIndicesSize, PRUint32 **returnDataIndices, PRUint32 *returnDataLengthsSize, PRUint32 **returnDataLengths, PRUint32 *returnDataSize, PRInt32 **returnData) = 0;

  /* void InternalAndReservedMethod1IPerformanceCollector (); */
  NS_IMETHOD InternalAndReservedMethod1IPerformanceCollector(void) = 0;

  /* void InternalAndReservedMethod2IPerformanceCollector (); */
  NS_IMETHOD InternalAndReservedMethod2IPerformanceCollector(void) = 0;

  /* void InternalAndReservedMethod3IPerformanceCollector (); */
  NS_IMETHOD InternalAndReservedMethod3IPerformanceCollector(void) = 0;

  /* void InternalAndReservedMethod4IPerformanceCollector (); */
  NS_IMETHOD InternalAndReservedMethod4IPerformanceCollector(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IPERFORMANCECOLLECTOR \
  NS_IMETHOD GetMetricNames(PRUint32 *metricNamesSize, PRUnichar ***metricNames); \
  NS_IMETHOD GetInternalAndReservedAttribute1IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute1IPerformanceCollector); \
  NS_IMETHOD GetInternalAndReservedAttribute2IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute2IPerformanceCollector); \
  NS_IMETHOD GetInternalAndReservedAttribute3IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute3IPerformanceCollector); \
  NS_IMETHOD GetInternalAndReservedAttribute4IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute4IPerformanceCollector); \
  NS_IMETHOD GetInternalAndReservedAttribute5IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute5IPerformanceCollector); \
  NS_IMETHOD GetInternalAndReservedAttribute6IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute6IPerformanceCollector); \
  NS_IMETHOD GetInternalAndReservedAttribute7IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute7IPerformanceCollector); \
  NS_IMETHOD GetInternalAndReservedAttribute8IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute8IPerformanceCollector); \
  NS_IMETHOD GetMetrics(PRUint32 metricNamesSize, const PRUnichar **metricNames, PRUint32 objectsSize, nsISupports **objects, PRUint32 *metricsSize, IPerformanceMetric ***metrics); \
  NS_IMETHOD SetupMetrics(PRUint32 metricNamesSize, const PRUnichar **metricNames, PRUint32 objectsSize, nsISupports **objects, PRUint32 period, PRUint32 count, PRUint32 *affectedMetricsSize, IPerformanceMetric ***affectedMetrics); \
  NS_IMETHOD EnableMetrics(PRUint32 metricNamesSize, const PRUnichar **metricNames, PRUint32 objectsSize, nsISupports **objects, PRUint32 *affectedMetricsSize, IPerformanceMetric ***affectedMetrics); \
  NS_IMETHOD DisableMetrics(PRUint32 metricNamesSize, const PRUnichar **metricNames, PRUint32 objectsSize, nsISupports **objects, PRUint32 *affectedMetricsSize, IPerformanceMetric ***affectedMetrics); \
  NS_IMETHOD QueryMetricsData(PRUint32 metricNamesSize, const PRUnichar **metricNames, PRUint32 objectsSize, nsISupports **objects, PRUint32 *returnMetricNamesSize, PRUnichar ***returnMetricNames, PRUint32 *returnObjectsSize, nsISupports ***returnObjects, PRUint32 *returnUnitsSize, PRUnichar ***returnUnits, PRUint32 *returnScalesSize, PRUint32 **returnScales, PRUint32 *returnSequenceNumbersSize, PRUint32 **returnSequenceNumbers, PRUint32 *returnDataIndicesSize, PRUint32 **returnDataIndices, PRUint32 *returnDataLengthsSize, PRUint32 **returnDataLengths, PRUint32 *returnDataSize, PRInt32 **returnData); \
  NS_IMETHOD InternalAndReservedMethod1IPerformanceCollector(void); \
  NS_IMETHOD InternalAndReservedMethod2IPerformanceCollector(void); \
  NS_IMETHOD InternalAndReservedMethod3IPerformanceCollector(void); \
  NS_IMETHOD InternalAndReservedMethod4IPerformanceCollector(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IPERFORMANCECOLLECTOR(_to) \
  NS_IMETHOD GetMetricNames(PRUint32 *metricNamesSize, PRUnichar ***metricNames) { return _to GetMetricNames(metricNamesSize, metricNames); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute1IPerformanceCollector) { return _to GetInternalAndReservedAttribute1IPerformanceCollector(aInternalAndReservedAttribute1IPerformanceCollector); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute2IPerformanceCollector) { return _to GetInternalAndReservedAttribute2IPerformanceCollector(aInternalAndReservedAttribute2IPerformanceCollector); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute3IPerformanceCollector) { return _to GetInternalAndReservedAttribute3IPerformanceCollector(aInternalAndReservedAttribute3IPerformanceCollector); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute4IPerformanceCollector) { return _to GetInternalAndReservedAttribute4IPerformanceCollector(aInternalAndReservedAttribute4IPerformanceCollector); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute5IPerformanceCollector) { return _to GetInternalAndReservedAttribute5IPerformanceCollector(aInternalAndReservedAttribute5IPerformanceCollector); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute6IPerformanceCollector) { return _to GetInternalAndReservedAttribute6IPerformanceCollector(aInternalAndReservedAttribute6IPerformanceCollector); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute7IPerformanceCollector) { return _to GetInternalAndReservedAttribute7IPerformanceCollector(aInternalAndReservedAttribute7IPerformanceCollector); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute8IPerformanceCollector) { return _to GetInternalAndReservedAttribute8IPerformanceCollector(aInternalAndReservedAttribute8IPerformanceCollector); } \
  NS_IMETHOD GetMetrics(PRUint32 metricNamesSize, const PRUnichar **metricNames, PRUint32 objectsSize, nsISupports **objects, PRUint32 *metricsSize, IPerformanceMetric ***metrics) { return _to GetMetrics(metricNamesSize, metricNames, objectsSize, objects, metricsSize, metrics); } \
  NS_IMETHOD SetupMetrics(PRUint32 metricNamesSize, const PRUnichar **metricNames, PRUint32 objectsSize, nsISupports **objects, PRUint32 period, PRUint32 count, PRUint32 *affectedMetricsSize, IPerformanceMetric ***affectedMetrics) { return _to SetupMetrics(metricNamesSize, metricNames, objectsSize, objects, period, count, affectedMetricsSize, affectedMetrics); } \
  NS_IMETHOD EnableMetrics(PRUint32 metricNamesSize, const PRUnichar **metricNames, PRUint32 objectsSize, nsISupports **objects, PRUint32 *affectedMetricsSize, IPerformanceMetric ***affectedMetrics) { return _to EnableMetrics(metricNamesSize, metricNames, objectsSize, objects, affectedMetricsSize, affectedMetrics); } \
  NS_IMETHOD DisableMetrics(PRUint32 metricNamesSize, const PRUnichar **metricNames, PRUint32 objectsSize, nsISupports **objects, PRUint32 *affectedMetricsSize, IPerformanceMetric ***affectedMetrics) { return _to DisableMetrics(metricNamesSize, metricNames, objectsSize, objects, affectedMetricsSize, affectedMetrics); } \
  NS_IMETHOD QueryMetricsData(PRUint32 metricNamesSize, const PRUnichar **metricNames, PRUint32 objectsSize, nsISupports **objects, PRUint32 *returnMetricNamesSize, PRUnichar ***returnMetricNames, PRUint32 *returnObjectsSize, nsISupports ***returnObjects, PRUint32 *returnUnitsSize, PRUnichar ***returnUnits, PRUint32 *returnScalesSize, PRUint32 **returnScales, PRUint32 *returnSequenceNumbersSize, PRUint32 **returnSequenceNumbers, PRUint32 *returnDataIndicesSize, PRUint32 **returnDataIndices, PRUint32 *returnDataLengthsSize, PRUint32 **returnDataLengths, PRUint32 *returnDataSize, PRInt32 **returnData) { return _to QueryMetricsData(metricNamesSize, metricNames, objectsSize, objects, returnMetricNamesSize, returnMetricNames, returnObjectsSize, returnObjects, returnUnitsSize, returnUnits, returnScalesSize, returnScales, returnSequenceNumbersSize, returnSequenceNumbers, returnDataIndicesSize, returnDataIndices, returnDataLengthsSize, returnDataLengths, returnDataSize, returnData); } \
  NS_IMETHOD InternalAndReservedMethod1IPerformanceCollector(void) { return _to InternalAndReservedMethod1IPerformanceCollector(); } \
  NS_IMETHOD InternalAndReservedMethod2IPerformanceCollector(void) { return _to InternalAndReservedMethod2IPerformanceCollector(); } \
  NS_IMETHOD InternalAndReservedMethod3IPerformanceCollector(void) { return _to InternalAndReservedMethod3IPerformanceCollector(); } \
  NS_IMETHOD InternalAndReservedMethod4IPerformanceCollector(void) { return _to InternalAndReservedMethod4IPerformanceCollector(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IPERFORMANCECOLLECTOR(_to) \
  NS_IMETHOD GetMetricNames(PRUint32 *metricNamesSize, PRUnichar ***metricNames) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMetricNames(metricNamesSize, metricNames); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute1IPerformanceCollector) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IPerformanceCollector(aInternalAndReservedAttribute1IPerformanceCollector); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute2IPerformanceCollector) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IPerformanceCollector(aInternalAndReservedAttribute2IPerformanceCollector); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute3IPerformanceCollector) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IPerformanceCollector(aInternalAndReservedAttribute3IPerformanceCollector); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute4IPerformanceCollector) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IPerformanceCollector(aInternalAndReservedAttribute4IPerformanceCollector); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute5IPerformanceCollector) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IPerformanceCollector(aInternalAndReservedAttribute5IPerformanceCollector); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute6IPerformanceCollector) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IPerformanceCollector(aInternalAndReservedAttribute6IPerformanceCollector); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute7IPerformanceCollector) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IPerformanceCollector(aInternalAndReservedAttribute7IPerformanceCollector); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute8IPerformanceCollector) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IPerformanceCollector(aInternalAndReservedAttribute8IPerformanceCollector); } \
  NS_IMETHOD GetMetrics(PRUint32 metricNamesSize, const PRUnichar **metricNames, PRUint32 objectsSize, nsISupports **objects, PRUint32 *metricsSize, IPerformanceMetric ***metrics) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMetrics(metricNamesSize, metricNames, objectsSize, objects, metricsSize, metrics); } \
  NS_IMETHOD SetupMetrics(PRUint32 metricNamesSize, const PRUnichar **metricNames, PRUint32 objectsSize, nsISupports **objects, PRUint32 period, PRUint32 count, PRUint32 *affectedMetricsSize, IPerformanceMetric ***affectedMetrics) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetupMetrics(metricNamesSize, metricNames, objectsSize, objects, period, count, affectedMetricsSize, affectedMetrics); } \
  NS_IMETHOD EnableMetrics(PRUint32 metricNamesSize, const PRUnichar **metricNames, PRUint32 objectsSize, nsISupports **objects, PRUint32 *affectedMetricsSize, IPerformanceMetric ***affectedMetrics) { return !_to ? NS_ERROR_NULL_POINTER : _to->EnableMetrics(metricNamesSize, metricNames, objectsSize, objects, affectedMetricsSize, affectedMetrics); } \
  NS_IMETHOD DisableMetrics(PRUint32 metricNamesSize, const PRUnichar **metricNames, PRUint32 objectsSize, nsISupports **objects, PRUint32 *affectedMetricsSize, IPerformanceMetric ***affectedMetrics) { return !_to ? NS_ERROR_NULL_POINTER : _to->DisableMetrics(metricNamesSize, metricNames, objectsSize, objects, affectedMetricsSize, affectedMetrics); } \
  NS_IMETHOD QueryMetricsData(PRUint32 metricNamesSize, const PRUnichar **metricNames, PRUint32 objectsSize, nsISupports **objects, PRUint32 *returnMetricNamesSize, PRUnichar ***returnMetricNames, PRUint32 *returnObjectsSize, nsISupports ***returnObjects, PRUint32 *returnUnitsSize, PRUnichar ***returnUnits, PRUint32 *returnScalesSize, PRUint32 **returnScales, PRUint32 *returnSequenceNumbersSize, PRUint32 **returnSequenceNumbers, PRUint32 *returnDataIndicesSize, PRUint32 **returnDataIndices, PRUint32 *returnDataLengthsSize, PRUint32 **returnDataLengths, PRUint32 *returnDataSize, PRInt32 **returnData) { return !_to ? NS_ERROR_NULL_POINTER : _to->QueryMetricsData(metricNamesSize, metricNames, objectsSize, objects, returnMetricNamesSize, returnMetricNames, returnObjectsSize, returnObjects, returnUnitsSize, returnUnits, returnScalesSize, returnScales, returnSequenceNumbersSize, returnSequenceNumbers, returnDataIndicesSize, returnDataIndices, returnDataLengthsSize, returnDataLengths, returnDataSize, returnData); } \
  NS_IMETHOD InternalAndReservedMethod1IPerformanceCollector(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IPerformanceCollector(); } \
  NS_IMETHOD InternalAndReservedMethod2IPerformanceCollector(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IPerformanceCollector(); } \
  NS_IMETHOD InternalAndReservedMethod3IPerformanceCollector(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IPerformanceCollector(); } \
  NS_IMETHOD InternalAndReservedMethod4IPerformanceCollector(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IPerformanceCollector(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IPerformanceCollector
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IPERFORMANCECOLLECTOR

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IPerformanceCollector)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* void getMetricNames (out unsigned long metricNamesSize, [array, size_is (metricNamesSize), retval] out wstring metricNames); */
NS_IMETHODIMP _MYCLASS_::GetMetricNames(PRUint32 *metricNamesSize, PRUnichar ***metricNames)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IPerformanceCollector; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute1IPerformanceCollector)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IPerformanceCollector; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute2IPerformanceCollector)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute3IPerformanceCollector; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute3IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute3IPerformanceCollector)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute4IPerformanceCollector; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute4IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute4IPerformanceCollector)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute5IPerformanceCollector; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute5IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute5IPerformanceCollector)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute6IPerformanceCollector; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute6IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute6IPerformanceCollector)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute7IPerformanceCollector; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute7IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute7IPerformanceCollector)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute8IPerformanceCollector; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute8IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute8IPerformanceCollector)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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); */
NS_IMETHODIMP _MYCLASS_::GetMetrics(PRUint32 metricNamesSize, const PRUnichar **metricNames, PRUint32 objectsSize, nsISupports **objects, PRUint32 *metricsSize, IPerformanceMetric ***metrics)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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); */
NS_IMETHODIMP _MYCLASS_::SetupMetrics(PRUint32 metricNamesSize, const PRUnichar **metricNames, PRUint32 objectsSize, nsISupports **objects, PRUint32 period, PRUint32 count, PRUint32 *affectedMetricsSize, IPerformanceMetric ***affectedMetrics)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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); */
NS_IMETHODIMP _MYCLASS_::EnableMetrics(PRUint32 metricNamesSize, const PRUnichar **metricNames, PRUint32 objectsSize, nsISupports **objects, PRUint32 *affectedMetricsSize, IPerformanceMetric ***affectedMetrics)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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); */
NS_IMETHODIMP _MYCLASS_::DisableMetrics(PRUint32 metricNamesSize, const PRUnichar **metricNames, PRUint32 objectsSize, nsISupports **objects, PRUint32 *affectedMetricsSize, IPerformanceMetric ***affectedMetrics)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* 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); */
NS_IMETHODIMP _MYCLASS_::QueryMetricsData(PRUint32 metricNamesSize, const PRUnichar **metricNames, PRUint32 objectsSize, nsISupports **objects, PRUint32 *returnMetricNamesSize, PRUnichar ***returnMetricNames, PRUint32 *returnObjectsSize, nsISupports ***returnObjects, PRUint32 *returnUnitsSize, PRUnichar ***returnUnits, PRUint32 *returnScalesSize, PRUint32 **returnScales, PRUint32 *returnSequenceNumbersSize, PRUint32 **returnSequenceNumbers, PRUint32 *returnDataIndicesSize, PRUint32 **returnDataIndices, PRUint32 *returnDataLengthsSize, PRUint32 **returnDataLengths, PRUint32 *returnDataSize, PRInt32 **returnData)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1IPerformanceCollector (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1IPerformanceCollector()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod2IPerformanceCollector (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod2IPerformanceCollector()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod3IPerformanceCollector (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod3IPerformanceCollector()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod4IPerformanceCollector (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod4IPerformanceCollector()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    INATEngine */
#define INATENGINE_IID_STR "c1cdb6bf-44cb-e334-66fa-469a17fd09df"

#define INATENGINE_IID \
  {0xc1cdb6bf, 0x44cb, 0xe334, \
    { 0x66, 0xfa, 0x46, 0x9a, 0x17, 0xfd, 0x09, 0xdf }}

class NS_NO_VTABLE INATEngine : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(INATENGINE_IID)

  /* attribute wstring network; */
  NS_IMETHOD GetNetwork(PRUnichar * *aNetwork) = 0;
  NS_IMETHOD SetNetwork(const PRUnichar * aNetwork) = 0;

  /* attribute wstring hostIP; */
  NS_IMETHOD GetHostIP(PRUnichar * *aHostIP) = 0;
  NS_IMETHOD SetHostIP(const PRUnichar * aHostIP) = 0;

  /* attribute wstring TFTPPrefix; */
  NS_IMETHOD GetTFTPPrefix(PRUnichar * *aTFTPPrefix) = 0;
  NS_IMETHOD SetTFTPPrefix(const PRUnichar * aTFTPPrefix) = 0;

  /* attribute wstring TFTPBootFile; */
  NS_IMETHOD GetTFTPBootFile(PRUnichar * *aTFTPBootFile) = 0;
  NS_IMETHOD SetTFTPBootFile(const PRUnichar * aTFTPBootFile) = 0;

  /* attribute wstring TFTPNextServer; */
  NS_IMETHOD GetTFTPNextServer(PRUnichar * *aTFTPNextServer) = 0;
  NS_IMETHOD SetTFTPNextServer(const PRUnichar * aTFTPNextServer) = 0;

  /* attribute unsigned long aliasMode; */
  NS_IMETHOD GetAliasMode(PRUint32 *aAliasMode) = 0;
  NS_IMETHOD SetAliasMode(PRUint32 aAliasMode) = 0;

  /* attribute boolean DNSPassDomain; */
  NS_IMETHOD GetDNSPassDomain(PRBool *aDNSPassDomain) = 0;
  NS_IMETHOD SetDNSPassDomain(PRBool aDNSPassDomain) = 0;

  /* attribute boolean DNSProxy; */
  NS_IMETHOD GetDNSProxy(PRBool *aDNSProxy) = 0;
  NS_IMETHOD SetDNSProxy(PRBool aDNSProxy) = 0;

  /* attribute boolean DNSUseHostResolver; */
  NS_IMETHOD GetDNSUseHostResolver(PRBool *aDNSUseHostResolver) = 0;
  NS_IMETHOD SetDNSUseHostResolver(PRBool aDNSUseHostResolver) = 0;

  /* void getRedirects (out unsigned long redirectsSize, [array, size_is (redirectsSize), retval] out wstring redirects); */
  NS_IMETHOD GetRedirects(PRUint32 *redirectsSize, PRUnichar ***redirects) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1INATEngine; */
  NS_IMETHOD GetInternalAndReservedAttribute1INATEngine(PRUint32 *aInternalAndReservedAttribute1INATEngine) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2INATEngine; */
  NS_IMETHOD GetInternalAndReservedAttribute2INATEngine(PRUint32 *aInternalAndReservedAttribute2INATEngine) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3INATEngine; */
  NS_IMETHOD GetInternalAndReservedAttribute3INATEngine(PRUint32 *aInternalAndReservedAttribute3INATEngine) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4INATEngine; */
  NS_IMETHOD GetInternalAndReservedAttribute4INATEngine(PRUint32 *aInternalAndReservedAttribute4INATEngine) = 0;

  /* void setNetworkSettings (in unsigned long mtu, in unsigned long sockSnd, in unsigned long sockRcv, in unsigned long TcpWndSnd, in unsigned long TcpWndRcv); */
  NS_IMETHOD SetNetworkSettings(PRUint32 mtu, PRUint32 sockSnd, PRUint32 sockRcv, PRUint32 TcpWndSnd, PRUint32 TcpWndRcv) = 0;

  /* void getNetworkSettings (out unsigned long mtu, out unsigned long sockSnd, out unsigned long sockRcv, out unsigned long TcpWndSnd, out unsigned long TcpWndRcv); */
  NS_IMETHOD GetNetworkSettings(PRUint32 *mtu, PRUint32 *sockSnd, PRUint32 *sockRcv, PRUint32 *TcpWndSnd, PRUint32 *TcpWndRcv) = 0;

  /* void addRedirect (in wstring name, in PRUint32 proto, in wstring hostIP, in unsigned short hostPort, in wstring guestIP, in unsigned short guestPort); */
  NS_IMETHOD AddRedirect(const PRUnichar *name, PRUint32 proto, const PRUnichar *hostIP, PRUint16 hostPort, const PRUnichar *guestIP, PRUint16 guestPort) = 0;

  /* void removeRedirect (in wstring name); */
  NS_IMETHOD RemoveRedirect(const PRUnichar *name) = 0;

  /* void InternalAndReservedMethod1INATEngine (); */
  NS_IMETHOD InternalAndReservedMethod1INATEngine(void) = 0;

  /* void InternalAndReservedMethod2INATEngine (); */
  NS_IMETHOD InternalAndReservedMethod2INATEngine(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_INATENGINE \
  NS_IMETHOD GetNetwork(PRUnichar * *aNetwork); \
  NS_IMETHOD SetNetwork(const PRUnichar * aNetwork); \
  NS_IMETHOD GetHostIP(PRUnichar * *aHostIP); \
  NS_IMETHOD SetHostIP(const PRUnichar * aHostIP); \
  NS_IMETHOD GetTFTPPrefix(PRUnichar * *aTFTPPrefix); \
  NS_IMETHOD SetTFTPPrefix(const PRUnichar * aTFTPPrefix); \
  NS_IMETHOD GetTFTPBootFile(PRUnichar * *aTFTPBootFile); \
  NS_IMETHOD SetTFTPBootFile(const PRUnichar * aTFTPBootFile); \
  NS_IMETHOD GetTFTPNextServer(PRUnichar * *aTFTPNextServer); \
  NS_IMETHOD SetTFTPNextServer(const PRUnichar * aTFTPNextServer); \
  NS_IMETHOD GetAliasMode(PRUint32 *aAliasMode); \
  NS_IMETHOD SetAliasMode(PRUint32 aAliasMode); \
  NS_IMETHOD GetDNSPassDomain(PRBool *aDNSPassDomain); \
  NS_IMETHOD SetDNSPassDomain(PRBool aDNSPassDomain); \
  NS_IMETHOD GetDNSProxy(PRBool *aDNSProxy); \
  NS_IMETHOD SetDNSProxy(PRBool aDNSProxy); \
  NS_IMETHOD GetDNSUseHostResolver(PRBool *aDNSUseHostResolver); \
  NS_IMETHOD SetDNSUseHostResolver(PRBool aDNSUseHostResolver); \
  NS_IMETHOD GetRedirects(PRUint32 *redirectsSize, PRUnichar ***redirects); \
  NS_IMETHOD GetInternalAndReservedAttribute1INATEngine(PRUint32 *aInternalAndReservedAttribute1INATEngine); \
  NS_IMETHOD GetInternalAndReservedAttribute2INATEngine(PRUint32 *aInternalAndReservedAttribute2INATEngine); \
  NS_IMETHOD GetInternalAndReservedAttribute3INATEngine(PRUint32 *aInternalAndReservedAttribute3INATEngine); \
  NS_IMETHOD GetInternalAndReservedAttribute4INATEngine(PRUint32 *aInternalAndReservedAttribute4INATEngine); \
  NS_IMETHOD SetNetworkSettings(PRUint32 mtu, PRUint32 sockSnd, PRUint32 sockRcv, PRUint32 TcpWndSnd, PRUint32 TcpWndRcv); \
  NS_IMETHOD GetNetworkSettings(PRUint32 *mtu, PRUint32 *sockSnd, PRUint32 *sockRcv, PRUint32 *TcpWndSnd, PRUint32 *TcpWndRcv); \
  NS_IMETHOD AddRedirect(const PRUnichar *name, PRUint32 proto, const PRUnichar *hostIP, PRUint16 hostPort, const PRUnichar *guestIP, PRUint16 guestPort); \
  NS_IMETHOD RemoveRedirect(const PRUnichar *name); \
  NS_IMETHOD InternalAndReservedMethod1INATEngine(void); \
  NS_IMETHOD InternalAndReservedMethod2INATEngine(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_INATENGINE(_to) \
  NS_IMETHOD GetNetwork(PRUnichar * *aNetwork) { return _to GetNetwork(aNetwork); } \
  NS_IMETHOD SetNetwork(const PRUnichar * aNetwork) { return _to SetNetwork(aNetwork); } \
  NS_IMETHOD GetHostIP(PRUnichar * *aHostIP) { return _to GetHostIP(aHostIP); } \
  NS_IMETHOD SetHostIP(const PRUnichar * aHostIP) { return _to SetHostIP(aHostIP); } \
  NS_IMETHOD GetTFTPPrefix(PRUnichar * *aTFTPPrefix) { return _to GetTFTPPrefix(aTFTPPrefix); } \
  NS_IMETHOD SetTFTPPrefix(const PRUnichar * aTFTPPrefix) { return _to SetTFTPPrefix(aTFTPPrefix); } \
  NS_IMETHOD GetTFTPBootFile(PRUnichar * *aTFTPBootFile) { return _to GetTFTPBootFile(aTFTPBootFile); } \
  NS_IMETHOD SetTFTPBootFile(const PRUnichar * aTFTPBootFile) { return _to SetTFTPBootFile(aTFTPBootFile); } \
  NS_IMETHOD GetTFTPNextServer(PRUnichar * *aTFTPNextServer) { return _to GetTFTPNextServer(aTFTPNextServer); } \
  NS_IMETHOD SetTFTPNextServer(const PRUnichar * aTFTPNextServer) { return _to SetTFTPNextServer(aTFTPNextServer); } \
  NS_IMETHOD GetAliasMode(PRUint32 *aAliasMode) { return _to GetAliasMode(aAliasMode); } \
  NS_IMETHOD SetAliasMode(PRUint32 aAliasMode) { return _to SetAliasMode(aAliasMode); } \
  NS_IMETHOD GetDNSPassDomain(PRBool *aDNSPassDomain) { return _to GetDNSPassDomain(aDNSPassDomain); } \
  NS_IMETHOD SetDNSPassDomain(PRBool aDNSPassDomain) { return _to SetDNSPassDomain(aDNSPassDomain); } \
  NS_IMETHOD GetDNSProxy(PRBool *aDNSProxy) { return _to GetDNSProxy(aDNSProxy); } \
  NS_IMETHOD SetDNSProxy(PRBool aDNSProxy) { return _to SetDNSProxy(aDNSProxy); } \
  NS_IMETHOD GetDNSUseHostResolver(PRBool *aDNSUseHostResolver) { return _to GetDNSUseHostResolver(aDNSUseHostResolver); } \
  NS_IMETHOD SetDNSUseHostResolver(PRBool aDNSUseHostResolver) { return _to SetDNSUseHostResolver(aDNSUseHostResolver); } \
  NS_IMETHOD GetRedirects(PRUint32 *redirectsSize, PRUnichar ***redirects) { return _to GetRedirects(redirectsSize, redirects); } \
  NS_IMETHOD GetInternalAndReservedAttribute1INATEngine(PRUint32 *aInternalAndReservedAttribute1INATEngine) { return _to GetInternalAndReservedAttribute1INATEngine(aInternalAndReservedAttribute1INATEngine); } \
  NS_IMETHOD GetInternalAndReservedAttribute2INATEngine(PRUint32 *aInternalAndReservedAttribute2INATEngine) { return _to GetInternalAndReservedAttribute2INATEngine(aInternalAndReservedAttribute2INATEngine); } \
  NS_IMETHOD GetInternalAndReservedAttribute3INATEngine(PRUint32 *aInternalAndReservedAttribute3INATEngine) { return _to GetInternalAndReservedAttribute3INATEngine(aInternalAndReservedAttribute3INATEngine); } \
  NS_IMETHOD GetInternalAndReservedAttribute4INATEngine(PRUint32 *aInternalAndReservedAttribute4INATEngine) { return _to GetInternalAndReservedAttribute4INATEngine(aInternalAndReservedAttribute4INATEngine); } \
  NS_IMETHOD SetNetworkSettings(PRUint32 mtu, PRUint32 sockSnd, PRUint32 sockRcv, PRUint32 TcpWndSnd, PRUint32 TcpWndRcv) { return _to SetNetworkSettings(mtu, sockSnd, sockRcv, TcpWndSnd, TcpWndRcv); } \
  NS_IMETHOD GetNetworkSettings(PRUint32 *mtu, PRUint32 *sockSnd, PRUint32 *sockRcv, PRUint32 *TcpWndSnd, PRUint32 *TcpWndRcv) { return _to GetNetworkSettings(mtu, sockSnd, sockRcv, TcpWndSnd, TcpWndRcv); } \
  NS_IMETHOD AddRedirect(const PRUnichar *name, PRUint32 proto, const PRUnichar *hostIP, PRUint16 hostPort, const PRUnichar *guestIP, PRUint16 guestPort) { return _to AddRedirect(name, proto, hostIP, hostPort, guestIP, guestPort); } \
  NS_IMETHOD RemoveRedirect(const PRUnichar *name) { return _to RemoveRedirect(name); } \
  NS_IMETHOD InternalAndReservedMethod1INATEngine(void) { return _to InternalAndReservedMethod1INATEngine(); } \
  NS_IMETHOD InternalAndReservedMethod2INATEngine(void) { return _to InternalAndReservedMethod2INATEngine(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_INATENGINE(_to) \
  NS_IMETHOD GetNetwork(PRUnichar * *aNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNetwork(aNetwork); } \
  NS_IMETHOD SetNetwork(const PRUnichar * aNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetNetwork(aNetwork); } \
  NS_IMETHOD GetHostIP(PRUnichar * *aHostIP) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHostIP(aHostIP); } \
  NS_IMETHOD SetHostIP(const PRUnichar * aHostIP) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetHostIP(aHostIP); } \
  NS_IMETHOD GetTFTPPrefix(PRUnichar * *aTFTPPrefix) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTFTPPrefix(aTFTPPrefix); } \
  NS_IMETHOD SetTFTPPrefix(const PRUnichar * aTFTPPrefix) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetTFTPPrefix(aTFTPPrefix); } \
  NS_IMETHOD GetTFTPBootFile(PRUnichar * *aTFTPBootFile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTFTPBootFile(aTFTPBootFile); } \
  NS_IMETHOD SetTFTPBootFile(const PRUnichar * aTFTPBootFile) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetTFTPBootFile(aTFTPBootFile); } \
  NS_IMETHOD GetTFTPNextServer(PRUnichar * *aTFTPNextServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTFTPNextServer(aTFTPNextServer); } \
  NS_IMETHOD SetTFTPNextServer(const PRUnichar * aTFTPNextServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetTFTPNextServer(aTFTPNextServer); } \
  NS_IMETHOD GetAliasMode(PRUint32 *aAliasMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAliasMode(aAliasMode); } \
  NS_IMETHOD SetAliasMode(PRUint32 aAliasMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAliasMode(aAliasMode); } \
  NS_IMETHOD GetDNSPassDomain(PRBool *aDNSPassDomain) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDNSPassDomain(aDNSPassDomain); } \
  NS_IMETHOD SetDNSPassDomain(PRBool aDNSPassDomain) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDNSPassDomain(aDNSPassDomain); } \
  NS_IMETHOD GetDNSProxy(PRBool *aDNSProxy) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDNSProxy(aDNSProxy); } \
  NS_IMETHOD SetDNSProxy(PRBool aDNSProxy) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDNSProxy(aDNSProxy); } \
  NS_IMETHOD GetDNSUseHostResolver(PRBool *aDNSUseHostResolver) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDNSUseHostResolver(aDNSUseHostResolver); } \
  NS_IMETHOD SetDNSUseHostResolver(PRBool aDNSUseHostResolver) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDNSUseHostResolver(aDNSUseHostResolver); } \
  NS_IMETHOD GetRedirects(PRUint32 *redirectsSize, PRUnichar ***redirects) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRedirects(redirectsSize, redirects); } \
  NS_IMETHOD GetInternalAndReservedAttribute1INATEngine(PRUint32 *aInternalAndReservedAttribute1INATEngine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1INATEngine(aInternalAndReservedAttribute1INATEngine); } \
  NS_IMETHOD GetInternalAndReservedAttribute2INATEngine(PRUint32 *aInternalAndReservedAttribute2INATEngine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2INATEngine(aInternalAndReservedAttribute2INATEngine); } \
  NS_IMETHOD GetInternalAndReservedAttribute3INATEngine(PRUint32 *aInternalAndReservedAttribute3INATEngine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3INATEngine(aInternalAndReservedAttribute3INATEngine); } \
  NS_IMETHOD GetInternalAndReservedAttribute4INATEngine(PRUint32 *aInternalAndReservedAttribute4INATEngine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4INATEngine(aInternalAndReservedAttribute4INATEngine); } \
  NS_IMETHOD SetNetworkSettings(PRUint32 mtu, PRUint32 sockSnd, PRUint32 sockRcv, PRUint32 TcpWndSnd, PRUint32 TcpWndRcv) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetNetworkSettings(mtu, sockSnd, sockRcv, TcpWndSnd, TcpWndRcv); } \
  NS_IMETHOD GetNetworkSettings(PRUint32 *mtu, PRUint32 *sockSnd, PRUint32 *sockRcv, PRUint32 *TcpWndSnd, PRUint32 *TcpWndRcv) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNetworkSettings(mtu, sockSnd, sockRcv, TcpWndSnd, TcpWndRcv); } \
  NS_IMETHOD AddRedirect(const PRUnichar *name, PRUint32 proto, const PRUnichar *hostIP, PRUint16 hostPort, const PRUnichar *guestIP, PRUint16 guestPort) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddRedirect(name, proto, hostIP, hostPort, guestIP, guestPort); } \
  NS_IMETHOD RemoveRedirect(const PRUnichar *name) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveRedirect(name); } \
  NS_IMETHOD InternalAndReservedMethod1INATEngine(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1INATEngine(); } \
  NS_IMETHOD InternalAndReservedMethod2INATEngine(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2INATEngine(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public INATEngine
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_INATENGINE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, INATEngine)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* attribute wstring network; */
NS_IMETHODIMP _MYCLASS_::GetNetwork(PRUnichar * *aNetwork)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetNetwork(const PRUnichar * aNetwork)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring hostIP; */
NS_IMETHODIMP _MYCLASS_::GetHostIP(PRUnichar * *aHostIP)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetHostIP(const PRUnichar * aHostIP)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring TFTPPrefix; */
NS_IMETHODIMP _MYCLASS_::GetTFTPPrefix(PRUnichar * *aTFTPPrefix)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetTFTPPrefix(const PRUnichar * aTFTPPrefix)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring TFTPBootFile; */
NS_IMETHODIMP _MYCLASS_::GetTFTPBootFile(PRUnichar * *aTFTPBootFile)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetTFTPBootFile(const PRUnichar * aTFTPBootFile)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute wstring TFTPNextServer; */
NS_IMETHODIMP _MYCLASS_::GetTFTPNextServer(PRUnichar * *aTFTPNextServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetTFTPNextServer(const PRUnichar * aTFTPNextServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long aliasMode; */
NS_IMETHODIMP _MYCLASS_::GetAliasMode(PRUint32 *aAliasMode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetAliasMode(PRUint32 aAliasMode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean DNSPassDomain; */
NS_IMETHODIMP _MYCLASS_::GetDNSPassDomain(PRBool *aDNSPassDomain)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetDNSPassDomain(PRBool aDNSPassDomain)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean DNSProxy; */
NS_IMETHODIMP _MYCLASS_::GetDNSProxy(PRBool *aDNSProxy)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetDNSProxy(PRBool aDNSProxy)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean DNSUseHostResolver; */
NS_IMETHODIMP _MYCLASS_::GetDNSUseHostResolver(PRBool *aDNSUseHostResolver)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetDNSUseHostResolver(PRBool aDNSUseHostResolver)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getRedirects (out unsigned long redirectsSize, [array, size_is (redirectsSize), retval] out wstring redirects); */
NS_IMETHODIMP _MYCLASS_::GetRedirects(PRUint32 *redirectsSize, PRUnichar ***redirects)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1INATEngine; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1INATEngine(PRUint32 *aInternalAndReservedAttribute1INATEngine)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2INATEngine; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2INATEngine(PRUint32 *aInternalAndReservedAttribute2INATEngine)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute3INATEngine; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute3INATEngine(PRUint32 *aInternalAndReservedAttribute3INATEngine)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute4INATEngine; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute4INATEngine(PRUint32 *aInternalAndReservedAttribute4INATEngine)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setNetworkSettings (in unsigned long mtu, in unsigned long sockSnd, in unsigned long sockRcv, in unsigned long TcpWndSnd, in unsigned long TcpWndRcv); */
NS_IMETHODIMP _MYCLASS_::SetNetworkSettings(PRUint32 mtu, PRUint32 sockSnd, PRUint32 sockRcv, PRUint32 TcpWndSnd, PRUint32 TcpWndRcv)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getNetworkSettings (out unsigned long mtu, out unsigned long sockSnd, out unsigned long sockRcv, out unsigned long TcpWndSnd, out unsigned long TcpWndRcv); */
NS_IMETHODIMP _MYCLASS_::GetNetworkSettings(PRUint32 *mtu, PRUint32 *sockSnd, PRUint32 *sockRcv, PRUint32 *TcpWndSnd, PRUint32 *TcpWndRcv)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addRedirect (in wstring name, in PRUint32 proto, in wstring hostIP, in unsigned short hostPort, in wstring guestIP, in unsigned short guestPort); */
NS_IMETHODIMP _MYCLASS_::AddRedirect(const PRUnichar *name, PRUint32 proto, const PRUnichar *hostIP, PRUint16 hostPort, const PRUnichar *guestIP, PRUint16 guestPort)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeRedirect (in wstring name); */
NS_IMETHODIMP _MYCLASS_::RemoveRedirect(const PRUnichar *name)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1INATEngine (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1INATEngine()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod2INATEngine (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod2INATEngine()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IExtPackPlugIn */
#define IEXTPACKPLUGIN_IID_STR "c8e667b2-4234-1f9c-6508-afa9cea4efa1"

#define IEXTPACKPLUGIN_IID \
  {0xc8e667b2, 0x4234, 0x1f9c, \
    { 0x65, 0x08, 0xaf, 0xa9, 0xce, 0xa4, 0xef, 0xa1 }}

class NS_NO_VTABLE IExtPackPlugIn : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IEXTPACKPLUGIN_IID)

  /* readonly attribute wstring name; */
  NS_IMETHOD GetName(PRUnichar * *aName) = 0;

  /* readonly attribute wstring description; */
  NS_IMETHOD GetDescription(PRUnichar * *aDescription) = 0;

  /* readonly attribute wstring frontend; */
  NS_IMETHOD GetFrontend(PRUnichar * *aFrontend) = 0;

  /* readonly attribute wstring modulePath; */
  NS_IMETHOD GetModulePath(PRUnichar * *aModulePath) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IExtPackPlugIn; */
  NS_IMETHOD GetInternalAndReservedAttribute1IExtPackPlugIn(PRUint32 *aInternalAndReservedAttribute1IExtPackPlugIn) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IExtPackPlugIn; */
  NS_IMETHOD GetInternalAndReservedAttribute2IExtPackPlugIn(PRUint32 *aInternalAndReservedAttribute2IExtPackPlugIn) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IEXTPACKPLUGIN \
  NS_IMETHOD GetName(PRUnichar * *aName); \
  NS_IMETHOD GetDescription(PRUnichar * *aDescription); \
  NS_IMETHOD GetFrontend(PRUnichar * *aFrontend); \
  NS_IMETHOD GetModulePath(PRUnichar * *aModulePath); \
  NS_IMETHOD GetInternalAndReservedAttribute1IExtPackPlugIn(PRUint32 *aInternalAndReservedAttribute1IExtPackPlugIn); \
  NS_IMETHOD GetInternalAndReservedAttribute2IExtPackPlugIn(PRUint32 *aInternalAndReservedAttribute2IExtPackPlugIn); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IEXTPACKPLUGIN(_to) \
  NS_IMETHOD GetName(PRUnichar * *aName) { return _to GetName(aName); } \
  NS_IMETHOD GetDescription(PRUnichar * *aDescription) { return _to GetDescription(aDescription); } \
  NS_IMETHOD GetFrontend(PRUnichar * *aFrontend) { return _to GetFrontend(aFrontend); } \
  NS_IMETHOD GetModulePath(PRUnichar * *aModulePath) { return _to GetModulePath(aModulePath); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IExtPackPlugIn(PRUint32 *aInternalAndReservedAttribute1IExtPackPlugIn) { return _to GetInternalAndReservedAttribute1IExtPackPlugIn(aInternalAndReservedAttribute1IExtPackPlugIn); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IExtPackPlugIn(PRUint32 *aInternalAndReservedAttribute2IExtPackPlugIn) { return _to GetInternalAndReservedAttribute2IExtPackPlugIn(aInternalAndReservedAttribute2IExtPackPlugIn); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IEXTPACKPLUGIN(_to) \
  NS_IMETHOD GetName(PRUnichar * *aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
  NS_IMETHOD GetDescription(PRUnichar * *aDescription) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDescription(aDescription); } \
  NS_IMETHOD GetFrontend(PRUnichar * *aFrontend) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFrontend(aFrontend); } \
  NS_IMETHOD GetModulePath(PRUnichar * *aModulePath) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetModulePath(aModulePath); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IExtPackPlugIn(PRUint32 *aInternalAndReservedAttribute1IExtPackPlugIn) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IExtPackPlugIn(aInternalAndReservedAttribute1IExtPackPlugIn); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IExtPackPlugIn(PRUint32 *aInternalAndReservedAttribute2IExtPackPlugIn) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IExtPackPlugIn(aInternalAndReservedAttribute2IExtPackPlugIn); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IExtPackPlugIn
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IEXTPACKPLUGIN

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IExtPackPlugIn)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute wstring name; */
NS_IMETHODIMP _MYCLASS_::GetName(PRUnichar * *aName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring description; */
NS_IMETHODIMP _MYCLASS_::GetDescription(PRUnichar * *aDescription)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring frontend; */
NS_IMETHODIMP _MYCLASS_::GetFrontend(PRUnichar * *aFrontend)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring modulePath; */
NS_IMETHODIMP _MYCLASS_::GetModulePath(PRUnichar * *aModulePath)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IExtPackPlugIn; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IExtPackPlugIn(PRUint32 *aInternalAndReservedAttribute1IExtPackPlugIn)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IExtPackPlugIn; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IExtPackPlugIn(PRUint32 *aInternalAndReservedAttribute2IExtPackPlugIn)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IExtPackBase */
#define IEXTPACKBASE_IID_STR "4bd17415-4438-8657-e78e-80a40713a23c"

#define IEXTPACKBASE_IID \
  {0x4bd17415, 0x4438, 0x8657, \
    { 0xe7, 0x8e, 0x80, 0xa4, 0x07, 0x13, 0xa2, 0x3c }}

class NS_NO_VTABLE IExtPackBase : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IEXTPACKBASE_IID)

  /* readonly attribute wstring name; */
  NS_IMETHOD GetName(PRUnichar * *aName) = 0;

  /* readonly attribute wstring description; */
  NS_IMETHOD GetDescription(PRUnichar * *aDescription) = 0;

  /* readonly attribute wstring version; */
  NS_IMETHOD GetVersion(PRUnichar * *aVersion) = 0;

  /* readonly attribute unsigned long revision; */
  NS_IMETHOD GetRevision(PRUint32 *aRevision) = 0;

  /* readonly attribute wstring edition; */
  NS_IMETHOD GetEdition(PRUnichar * *aEdition) = 0;

  /* readonly attribute wstring VRDEModule; */
  NS_IMETHOD GetVRDEModule(PRUnichar * *aVRDEModule) = 0;

  /* void getPlugIns (out unsigned long plugInsSize, [array, size_is (plugInsSize), retval] out IExtPackPlugIn plugIns); */
  NS_IMETHOD GetPlugIns(PRUint32 *plugInsSize, IExtPackPlugIn ***plugIns) = 0;

  /* readonly attribute boolean usable; */
  NS_IMETHOD GetUsable(PRBool *aUsable) = 0;

  /* readonly attribute wstring whyUnusable; */
  NS_IMETHOD GetWhyUnusable(PRUnichar * *aWhyUnusable) = 0;

  /* readonly attribute boolean showLicense; */
  NS_IMETHOD GetShowLicense(PRBool *aShowLicense) = 0;

  /* readonly attribute wstring license; */
  NS_IMETHOD GetLicense(PRUnichar * *aLicense) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IExtPackBase; */
  NS_IMETHOD GetInternalAndReservedAttribute1IExtPackBase(PRUint32 *aInternalAndReservedAttribute1IExtPackBase) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IExtPackBase; */
  NS_IMETHOD GetInternalAndReservedAttribute2IExtPackBase(PRUint32 *aInternalAndReservedAttribute2IExtPackBase) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IExtPackBase; */
  NS_IMETHOD GetInternalAndReservedAttribute3IExtPackBase(PRUint32 *aInternalAndReservedAttribute3IExtPackBase) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IExtPackBase; */
  NS_IMETHOD GetInternalAndReservedAttribute4IExtPackBase(PRUint32 *aInternalAndReservedAttribute4IExtPackBase) = 0;

  /* void queryLicense (in wstring preferredLocale, in wstring preferredLanguage, in wstring format, [retval] out wstring licenseText); */
  NS_IMETHOD QueryLicense(const PRUnichar *preferredLocale, const PRUnichar *preferredLanguage, const PRUnichar *format, PRUnichar **licenseText) = 0;

  /* void InternalAndReservedMethod1IExtPackBase (); */
  NS_IMETHOD InternalAndReservedMethod1IExtPackBase(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IEXTPACKBASE \
  NS_IMETHOD GetName(PRUnichar * *aName); \
  NS_IMETHOD GetDescription(PRUnichar * *aDescription); \
  NS_IMETHOD GetVersion(PRUnichar * *aVersion); \
  NS_IMETHOD GetRevision(PRUint32 *aRevision); \
  NS_IMETHOD GetEdition(PRUnichar * *aEdition); \
  NS_IMETHOD GetVRDEModule(PRUnichar * *aVRDEModule); \
  NS_IMETHOD GetPlugIns(PRUint32 *plugInsSize, IExtPackPlugIn ***plugIns); \
  NS_IMETHOD GetUsable(PRBool *aUsable); \
  NS_IMETHOD GetWhyUnusable(PRUnichar * *aWhyUnusable); \
  NS_IMETHOD GetShowLicense(PRBool *aShowLicense); \
  NS_IMETHOD GetLicense(PRUnichar * *aLicense); \
  NS_IMETHOD GetInternalAndReservedAttribute1IExtPackBase(PRUint32 *aInternalAndReservedAttribute1IExtPackBase); \
  NS_IMETHOD GetInternalAndReservedAttribute2IExtPackBase(PRUint32 *aInternalAndReservedAttribute2IExtPackBase); \
  NS_IMETHOD GetInternalAndReservedAttribute3IExtPackBase(PRUint32 *aInternalAndReservedAttribute3IExtPackBase); \
  NS_IMETHOD GetInternalAndReservedAttribute4IExtPackBase(PRUint32 *aInternalAndReservedAttribute4IExtPackBase); \
  NS_IMETHOD QueryLicense(const PRUnichar *preferredLocale, const PRUnichar *preferredLanguage, const PRUnichar *format, PRUnichar **licenseText); \
  NS_IMETHOD InternalAndReservedMethod1IExtPackBase(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IEXTPACKBASE(_to) \
  NS_IMETHOD GetName(PRUnichar * *aName) { return _to GetName(aName); } \
  NS_IMETHOD GetDescription(PRUnichar * *aDescription) { return _to GetDescription(aDescription); } \
  NS_IMETHOD GetVersion(PRUnichar * *aVersion) { return _to GetVersion(aVersion); } \
  NS_IMETHOD GetRevision(PRUint32 *aRevision) { return _to GetRevision(aRevision); } \
  NS_IMETHOD GetEdition(PRUnichar * *aEdition) { return _to GetEdition(aEdition); } \
  NS_IMETHOD GetVRDEModule(PRUnichar * *aVRDEModule) { return _to GetVRDEModule(aVRDEModule); } \
  NS_IMETHOD GetPlugIns(PRUint32 *plugInsSize, IExtPackPlugIn ***plugIns) { return _to GetPlugIns(plugInsSize, plugIns); } \
  NS_IMETHOD GetUsable(PRBool *aUsable) { return _to GetUsable(aUsable); } \
  NS_IMETHOD GetWhyUnusable(PRUnichar * *aWhyUnusable) { return _to GetWhyUnusable(aWhyUnusable); } \
  NS_IMETHOD GetShowLicense(PRBool *aShowLicense) { return _to GetShowLicense(aShowLicense); } \
  NS_IMETHOD GetLicense(PRUnichar * *aLicense) { return _to GetLicense(aLicense); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IExtPackBase(PRUint32 *aInternalAndReservedAttribute1IExtPackBase) { return _to GetInternalAndReservedAttribute1IExtPackBase(aInternalAndReservedAttribute1IExtPackBase); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IExtPackBase(PRUint32 *aInternalAndReservedAttribute2IExtPackBase) { return _to GetInternalAndReservedAttribute2IExtPackBase(aInternalAndReservedAttribute2IExtPackBase); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IExtPackBase(PRUint32 *aInternalAndReservedAttribute3IExtPackBase) { return _to GetInternalAndReservedAttribute3IExtPackBase(aInternalAndReservedAttribute3IExtPackBase); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IExtPackBase(PRUint32 *aInternalAndReservedAttribute4IExtPackBase) { return _to GetInternalAndReservedAttribute4IExtPackBase(aInternalAndReservedAttribute4IExtPackBase); } \
  NS_IMETHOD QueryLicense(const PRUnichar *preferredLocale, const PRUnichar *preferredLanguage, const PRUnichar *format, PRUnichar **licenseText) { return _to QueryLicense(preferredLocale, preferredLanguage, format, licenseText); } \
  NS_IMETHOD InternalAndReservedMethod1IExtPackBase(void) { return _to InternalAndReservedMethod1IExtPackBase(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IEXTPACKBASE(_to) \
  NS_IMETHOD GetName(PRUnichar * *aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
  NS_IMETHOD GetDescription(PRUnichar * *aDescription) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDescription(aDescription); } \
  NS_IMETHOD GetVersion(PRUnichar * *aVersion) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVersion(aVersion); } \
  NS_IMETHOD GetRevision(PRUint32 *aRevision) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRevision(aRevision); } \
  NS_IMETHOD GetEdition(PRUnichar * *aEdition) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEdition(aEdition); } \
  NS_IMETHOD GetVRDEModule(PRUnichar * *aVRDEModule) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVRDEModule(aVRDEModule); } \
  NS_IMETHOD GetPlugIns(PRUint32 *plugInsSize, IExtPackPlugIn ***plugIns) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPlugIns(plugInsSize, plugIns); } \
  NS_IMETHOD GetUsable(PRBool *aUsable) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUsable(aUsable); } \
  NS_IMETHOD GetWhyUnusable(PRUnichar * *aWhyUnusable) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetWhyUnusable(aWhyUnusable); } \
  NS_IMETHOD GetShowLicense(PRBool *aShowLicense) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetShowLicense(aShowLicense); } \
  NS_IMETHOD GetLicense(PRUnichar * *aLicense) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLicense(aLicense); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IExtPackBase(PRUint32 *aInternalAndReservedAttribute1IExtPackBase) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IExtPackBase(aInternalAndReservedAttribute1IExtPackBase); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IExtPackBase(PRUint32 *aInternalAndReservedAttribute2IExtPackBase) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IExtPackBase(aInternalAndReservedAttribute2IExtPackBase); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IExtPackBase(PRUint32 *aInternalAndReservedAttribute3IExtPackBase) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IExtPackBase(aInternalAndReservedAttribute3IExtPackBase); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IExtPackBase(PRUint32 *aInternalAndReservedAttribute4IExtPackBase) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IExtPackBase(aInternalAndReservedAttribute4IExtPackBase); } \
  NS_IMETHOD QueryLicense(const PRUnichar *preferredLocale, const PRUnichar *preferredLanguage, const PRUnichar *format, PRUnichar **licenseText) { return !_to ? NS_ERROR_NULL_POINTER : _to->QueryLicense(preferredLocale, preferredLanguage, format, licenseText); } \
  NS_IMETHOD InternalAndReservedMethod1IExtPackBase(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IExtPackBase(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IExtPackBase
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IEXTPACKBASE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IExtPackBase)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute wstring name; */
NS_IMETHODIMP _MYCLASS_::GetName(PRUnichar * *aName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring description; */
NS_IMETHODIMP _MYCLASS_::GetDescription(PRUnichar * *aDescription)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring version; */
NS_IMETHODIMP _MYCLASS_::GetVersion(PRUnichar * *aVersion)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long revision; */
NS_IMETHODIMP _MYCLASS_::GetRevision(PRUint32 *aRevision)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring edition; */
NS_IMETHODIMP _MYCLASS_::GetEdition(PRUnichar * *aEdition)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring VRDEModule; */
NS_IMETHODIMP _MYCLASS_::GetVRDEModule(PRUnichar * *aVRDEModule)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getPlugIns (out unsigned long plugInsSize, [array, size_is (plugInsSize), retval] out IExtPackPlugIn plugIns); */
NS_IMETHODIMP _MYCLASS_::GetPlugIns(PRUint32 *plugInsSize, IExtPackPlugIn ***plugIns)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean usable; */
NS_IMETHODIMP _MYCLASS_::GetUsable(PRBool *aUsable)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring whyUnusable; */
NS_IMETHODIMP _MYCLASS_::GetWhyUnusable(PRUnichar * *aWhyUnusable)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean showLicense; */
NS_IMETHODIMP _MYCLASS_::GetShowLicense(PRBool *aShowLicense)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring license; */
NS_IMETHODIMP _MYCLASS_::GetLicense(PRUnichar * *aLicense)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IExtPackBase; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IExtPackBase(PRUint32 *aInternalAndReservedAttribute1IExtPackBase)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IExtPackBase; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IExtPackBase(PRUint32 *aInternalAndReservedAttribute2IExtPackBase)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute3IExtPackBase; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute3IExtPackBase(PRUint32 *aInternalAndReservedAttribute3IExtPackBase)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute4IExtPackBase; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute4IExtPackBase(PRUint32 *aInternalAndReservedAttribute4IExtPackBase)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void queryLicense (in wstring preferredLocale, in wstring preferredLanguage, in wstring format, [retval] out wstring licenseText); */
NS_IMETHODIMP _MYCLASS_::QueryLicense(const PRUnichar *preferredLocale, const PRUnichar *preferredLanguage, const PRUnichar *format, PRUnichar **licenseText)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1IExtPackBase (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1IExtPackBase()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IExtPack */
#define IEXTPACK_IID_STR "431685da-3618-4ebc-b038-833ba829b4b2"

#define IEXTPACK_IID \
  {0x431685da, 0x3618, 0x4ebc, \
    { 0xb0, 0x38, 0x83, 0x3b, 0xa8, 0x29, 0xb4, 0xb2 }}

class NS_NO_VTABLE IExtPack : public IExtPackBase {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IEXTPACK_IID)

  /* void queryObject (in wstring objUuid, [retval] out nsISupports returnInterface); */
  NS_IMETHOD QueryObject(const PRUnichar *objUuid, nsISupports **returnInterface) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IEXTPACK \
  NS_IMETHOD QueryObject(const PRUnichar *objUuid, nsISupports **returnInterface); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IEXTPACK(_to) \
  NS_IMETHOD QueryObject(const PRUnichar *objUuid, nsISupports **returnInterface) { return _to QueryObject(objUuid, returnInterface); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IEXTPACK(_to) \
  NS_IMETHOD QueryObject(const PRUnichar *objUuid, nsISupports **returnInterface) { return !_to ? NS_ERROR_NULL_POINTER : _to->QueryObject(objUuid, returnInterface); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IExtPack
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IEXTPACK

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IExtPack)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* void queryObject (in wstring objUuid, [retval] out nsISupports returnInterface); */
NS_IMETHODIMP _MYCLASS_::QueryObject(const PRUnichar *objUuid, nsISupports **returnInterface)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IExtPackFile */
#define IEXTPACKFILE_IID_STR "4c7f4bf6-4671-2f75-0fbb-a99f6218cdfc"

#define IEXTPACKFILE_IID \
  {0x4c7f4bf6, 0x4671, 0x2f75, \
    { 0x0f, 0xbb, 0xa9, 0x9f, 0x62, 0x18, 0xcd, 0xfc }}

class NS_NO_VTABLE IExtPackFile : public IExtPackBase {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IEXTPACKFILE_IID)

  /* readonly attribute wstring filePath; */
  NS_IMETHOD GetFilePath(PRUnichar * *aFilePath) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IExtPackFile; */
  NS_IMETHOD GetInternalAndReservedAttribute1IExtPackFile(PRUint32 *aInternalAndReservedAttribute1IExtPackFile) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IExtPackFile; */
  NS_IMETHOD GetInternalAndReservedAttribute2IExtPackFile(PRUint32 *aInternalAndReservedAttribute2IExtPackFile) = 0;

  /* void install (in boolean replace, in wstring displayInfo, [retval] out IProgress progess); */
  NS_IMETHOD Install(PRBool replace, const PRUnichar *displayInfo, IProgress **progess) = 0;

  /* void InternalAndReservedMethod1IExtPackFile (); */
  NS_IMETHOD InternalAndReservedMethod1IExtPackFile(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IEXTPACKFILE \
  NS_IMETHOD GetFilePath(PRUnichar * *aFilePath); \
  NS_IMETHOD GetInternalAndReservedAttribute1IExtPackFile(PRUint32 *aInternalAndReservedAttribute1IExtPackFile); \
  NS_IMETHOD GetInternalAndReservedAttribute2IExtPackFile(PRUint32 *aInternalAndReservedAttribute2IExtPackFile); \
  NS_IMETHOD Install(PRBool replace, const PRUnichar *displayInfo, IProgress **progess); \
  NS_IMETHOD InternalAndReservedMethod1IExtPackFile(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IEXTPACKFILE(_to) \
  NS_IMETHOD GetFilePath(PRUnichar * *aFilePath) { return _to GetFilePath(aFilePath); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IExtPackFile(PRUint32 *aInternalAndReservedAttribute1IExtPackFile) { return _to GetInternalAndReservedAttribute1IExtPackFile(aInternalAndReservedAttribute1IExtPackFile); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IExtPackFile(PRUint32 *aInternalAndReservedAttribute2IExtPackFile) { return _to GetInternalAndReservedAttribute2IExtPackFile(aInternalAndReservedAttribute2IExtPackFile); } \
  NS_IMETHOD Install(PRBool replace, const PRUnichar *displayInfo, IProgress **progess) { return _to Install(replace, displayInfo, progess); } \
  NS_IMETHOD InternalAndReservedMethod1IExtPackFile(void) { return _to InternalAndReservedMethod1IExtPackFile(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IEXTPACKFILE(_to) \
  NS_IMETHOD GetFilePath(PRUnichar * *aFilePath) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFilePath(aFilePath); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IExtPackFile(PRUint32 *aInternalAndReservedAttribute1IExtPackFile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IExtPackFile(aInternalAndReservedAttribute1IExtPackFile); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IExtPackFile(PRUint32 *aInternalAndReservedAttribute2IExtPackFile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IExtPackFile(aInternalAndReservedAttribute2IExtPackFile); } \
  NS_IMETHOD Install(PRBool replace, const PRUnichar *displayInfo, IProgress **progess) { return !_to ? NS_ERROR_NULL_POINTER : _to->Install(replace, displayInfo, progess); } \
  NS_IMETHOD InternalAndReservedMethod1IExtPackFile(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IExtPackFile(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IExtPackFile
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IEXTPACKFILE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IExtPackFile)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute wstring filePath; */
NS_IMETHODIMP _MYCLASS_::GetFilePath(PRUnichar * *aFilePath)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IExtPackFile; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IExtPackFile(PRUint32 *aInternalAndReservedAttribute1IExtPackFile)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IExtPackFile; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IExtPackFile(PRUint32 *aInternalAndReservedAttribute2IExtPackFile)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void install (in boolean replace, in wstring displayInfo, [retval] out IProgress progess); */
NS_IMETHODIMP _MYCLASS_::Install(PRBool replace, const PRUnichar *displayInfo, IProgress **progess)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1IExtPackFile (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1IExtPackFile()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IExtPackManager */
#define IEXTPACKMANAGER_IID_STR "edba9d10-45d8-b440-1712-46ac0c9bc4c5"

#define IEXTPACKMANAGER_IID \
  {0xedba9d10, 0x45d8, 0xb440, \
    { 0x17, 0x12, 0x46, 0xac, 0x0c, 0x9b, 0xc4, 0xc5 }}

class NS_NO_VTABLE IExtPackManager : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IEXTPACKMANAGER_IID)

  /* void getInstalledExtPacks (out unsigned long installedExtPacksSize, [array, size_is (installedExtPacksSize), retval] out IExtPack installedExtPacks); */
  NS_IMETHOD GetInstalledExtPacks(PRUint32 *installedExtPacksSize, IExtPack ***installedExtPacks) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IExtPackManager; */
  NS_IMETHOD GetInternalAndReservedAttribute1IExtPackManager(PRUint32 *aInternalAndReservedAttribute1IExtPackManager) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IExtPackManager; */
  NS_IMETHOD GetInternalAndReservedAttribute2IExtPackManager(PRUint32 *aInternalAndReservedAttribute2IExtPackManager) = 0;

  /* void find (in wstring name, [retval] out IExtPack returnData); */
  NS_IMETHOD Find(const PRUnichar *name, IExtPack **returnData) = 0;

  /* void openExtPackFile (in wstring path, [retval] out IExtPackFile file); */
  NS_IMETHOD OpenExtPackFile(const PRUnichar *path, IExtPackFile **file) = 0;

  /* void uninstall (in wstring name, in boolean forcedRemoval, in wstring displayInfo, [retval] out IProgress progess); */
  NS_IMETHOD Uninstall(const PRUnichar *name, PRBool forcedRemoval, const PRUnichar *displayInfo, IProgress **progess) = 0;

  /* void cleanup (); */
  NS_IMETHOD Cleanup(void) = 0;

  /* void queryAllPlugInsForFrontend (in wstring frontendName, out unsigned long plugInModulesSize, [array, size_is (plugInModulesSize), retval] out wstring plugInModules); */
  NS_IMETHOD QueryAllPlugInsForFrontend(const PRUnichar *frontendName, PRUint32 *plugInModulesSize, PRUnichar ***plugInModules) = 0;

  /* void isExtPackUsable (in wstring name, [retval] out boolean usable); */
  NS_IMETHOD IsExtPackUsable(const PRUnichar *name, PRBool *usable) = 0;

  /* void InternalAndReservedMethod1IExtPackManager (); */
  NS_IMETHOD InternalAndReservedMethod1IExtPackManager(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IEXTPACKMANAGER \
  NS_IMETHOD GetInstalledExtPacks(PRUint32 *installedExtPacksSize, IExtPack ***installedExtPacks); \
  NS_IMETHOD GetInternalAndReservedAttribute1IExtPackManager(PRUint32 *aInternalAndReservedAttribute1IExtPackManager); \
  NS_IMETHOD GetInternalAndReservedAttribute2IExtPackManager(PRUint32 *aInternalAndReservedAttribute2IExtPackManager); \
  NS_IMETHOD Find(const PRUnichar *name, IExtPack **returnData); \
  NS_IMETHOD OpenExtPackFile(const PRUnichar *path, IExtPackFile **file); \
  NS_IMETHOD Uninstall(const PRUnichar *name, PRBool forcedRemoval, const PRUnichar *displayInfo, IProgress **progess); \
  NS_IMETHOD Cleanup(void); \
  NS_IMETHOD QueryAllPlugInsForFrontend(const PRUnichar *frontendName, PRUint32 *plugInModulesSize, PRUnichar ***plugInModules); \
  NS_IMETHOD IsExtPackUsable(const PRUnichar *name, PRBool *usable); \
  NS_IMETHOD InternalAndReservedMethod1IExtPackManager(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IEXTPACKMANAGER(_to) \
  NS_IMETHOD GetInstalledExtPacks(PRUint32 *installedExtPacksSize, IExtPack ***installedExtPacks) { return _to GetInstalledExtPacks(installedExtPacksSize, installedExtPacks); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IExtPackManager(PRUint32 *aInternalAndReservedAttribute1IExtPackManager) { return _to GetInternalAndReservedAttribute1IExtPackManager(aInternalAndReservedAttribute1IExtPackManager); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IExtPackManager(PRUint32 *aInternalAndReservedAttribute2IExtPackManager) { return _to GetInternalAndReservedAttribute2IExtPackManager(aInternalAndReservedAttribute2IExtPackManager); } \
  NS_IMETHOD Find(const PRUnichar *name, IExtPack **returnData) { return _to Find(name, returnData); } \
  NS_IMETHOD OpenExtPackFile(const PRUnichar *path, IExtPackFile **file) { return _to OpenExtPackFile(path, file); } \
  NS_IMETHOD Uninstall(const PRUnichar *name, PRBool forcedRemoval, const PRUnichar *displayInfo, IProgress **progess) { return _to Uninstall(name, forcedRemoval, displayInfo, progess); } \
  NS_IMETHOD Cleanup(void) { return _to Cleanup(); } \
  NS_IMETHOD QueryAllPlugInsForFrontend(const PRUnichar *frontendName, PRUint32 *plugInModulesSize, PRUnichar ***plugInModules) { return _to QueryAllPlugInsForFrontend(frontendName, plugInModulesSize, plugInModules); } \
  NS_IMETHOD IsExtPackUsable(const PRUnichar *name, PRBool *usable) { return _to IsExtPackUsable(name, usable); } \
  NS_IMETHOD InternalAndReservedMethod1IExtPackManager(void) { return _to InternalAndReservedMethod1IExtPackManager(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IEXTPACKMANAGER(_to) \
  NS_IMETHOD GetInstalledExtPacks(PRUint32 *installedExtPacksSize, IExtPack ***installedExtPacks) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInstalledExtPacks(installedExtPacksSize, installedExtPacks); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IExtPackManager(PRUint32 *aInternalAndReservedAttribute1IExtPackManager) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IExtPackManager(aInternalAndReservedAttribute1IExtPackManager); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IExtPackManager(PRUint32 *aInternalAndReservedAttribute2IExtPackManager) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IExtPackManager(aInternalAndReservedAttribute2IExtPackManager); } \
  NS_IMETHOD Find(const PRUnichar *name, IExtPack **returnData) { return !_to ? NS_ERROR_NULL_POINTER : _to->Find(name, returnData); } \
  NS_IMETHOD OpenExtPackFile(const PRUnichar *path, IExtPackFile **file) { return !_to ? NS_ERROR_NULL_POINTER : _to->OpenExtPackFile(path, file); } \
  NS_IMETHOD Uninstall(const PRUnichar *name, PRBool forcedRemoval, const PRUnichar *displayInfo, IProgress **progess) { return !_to ? NS_ERROR_NULL_POINTER : _to->Uninstall(name, forcedRemoval, displayInfo, progess); } \
  NS_IMETHOD Cleanup(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Cleanup(); } \
  NS_IMETHOD QueryAllPlugInsForFrontend(const PRUnichar *frontendName, PRUint32 *plugInModulesSize, PRUnichar ***plugInModules) { return !_to ? NS_ERROR_NULL_POINTER : _to->QueryAllPlugInsForFrontend(frontendName, plugInModulesSize, plugInModules); } \
  NS_IMETHOD IsExtPackUsable(const PRUnichar *name, PRBool *usable) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsExtPackUsable(name, usable); } \
  NS_IMETHOD InternalAndReservedMethod1IExtPackManager(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IExtPackManager(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IExtPackManager
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IEXTPACKMANAGER

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IExtPackManager)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* void getInstalledExtPacks (out unsigned long installedExtPacksSize, [array, size_is (installedExtPacksSize), retval] out IExtPack installedExtPacks); */
NS_IMETHODIMP _MYCLASS_::GetInstalledExtPacks(PRUint32 *installedExtPacksSize, IExtPack ***installedExtPacks)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IExtPackManager; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IExtPackManager(PRUint32 *aInternalAndReservedAttribute1IExtPackManager)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IExtPackManager; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IExtPackManager(PRUint32 *aInternalAndReservedAttribute2IExtPackManager)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void find (in wstring name, [retval] out IExtPack returnData); */
NS_IMETHODIMP _MYCLASS_::Find(const PRUnichar *name, IExtPack **returnData)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void openExtPackFile (in wstring path, [retval] out IExtPackFile file); */
NS_IMETHODIMP _MYCLASS_::OpenExtPackFile(const PRUnichar *path, IExtPackFile **file)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void uninstall (in wstring name, in boolean forcedRemoval, in wstring displayInfo, [retval] out IProgress progess); */
NS_IMETHODIMP _MYCLASS_::Uninstall(const PRUnichar *name, PRBool forcedRemoval, const PRUnichar *displayInfo, IProgress **progess)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void cleanup (); */
NS_IMETHODIMP _MYCLASS_::Cleanup()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void queryAllPlugInsForFrontend (in wstring frontendName, out unsigned long plugInModulesSize, [array, size_is (plugInModulesSize), retval] out wstring plugInModules); */
NS_IMETHODIMP _MYCLASS_::QueryAllPlugInsForFrontend(const PRUnichar *frontendName, PRUint32 *plugInModulesSize, PRUnichar ***plugInModules)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void isExtPackUsable (in wstring name, [retval] out boolean usable); */
NS_IMETHODIMP _MYCLASS_::IsExtPackUsable(const PRUnichar *name, PRBool *usable)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1IExtPackManager (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1IExtPackManager()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IBandwidthGroup */
#define IBANDWIDTHGROUP_IID_STR "31587f93-2d12-4d7c-ba6d-ce51d0d5b265"

#define IBANDWIDTHGROUP_IID \
  {0x31587f93, 0x2d12, 0x4d7c, \
    { 0xba, 0x6d, 0xce, 0x51, 0xd0, 0xd5, 0xb2, 0x65 }}

class NS_NO_VTABLE IBandwidthGroup : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IBANDWIDTHGROUP_IID)

  /* readonly attribute wstring name; */
  NS_IMETHOD GetName(PRUnichar * *aName) = 0;

  /* readonly attribute PRUint32 type; */
  NS_IMETHOD GetType(PRUint32 *aType) = 0;

  /* readonly attribute unsigned long reference; */
  NS_IMETHOD GetReference(PRUint32 *aReference) = 0;

  /* attribute long long maxBytesPerSec; */
  NS_IMETHOD GetMaxBytesPerSec(PRInt64 *aMaxBytesPerSec) = 0;
  NS_IMETHOD SetMaxBytesPerSec(PRInt64 aMaxBytesPerSec) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IBandwidthGroup; */
  NS_IMETHOD GetInternalAndReservedAttribute1IBandwidthGroup(PRUint32 *aInternalAndReservedAttribute1IBandwidthGroup) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IBandwidthGroup; */
  NS_IMETHOD GetInternalAndReservedAttribute2IBandwidthGroup(PRUint32 *aInternalAndReservedAttribute2IBandwidthGroup) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IBandwidthGroup; */
  NS_IMETHOD GetInternalAndReservedAttribute3IBandwidthGroup(PRUint32 *aInternalAndReservedAttribute3IBandwidthGroup) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IBandwidthGroup; */
  NS_IMETHOD GetInternalAndReservedAttribute4IBandwidthGroup(PRUint32 *aInternalAndReservedAttribute4IBandwidthGroup) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IBANDWIDTHGROUP \
  NS_IMETHOD GetName(PRUnichar * *aName); \
  NS_IMETHOD GetType(PRUint32 *aType); \
  NS_IMETHOD GetReference(PRUint32 *aReference); \
  NS_IMETHOD GetMaxBytesPerSec(PRInt64 *aMaxBytesPerSec); \
  NS_IMETHOD SetMaxBytesPerSec(PRInt64 aMaxBytesPerSec); \
  NS_IMETHOD GetInternalAndReservedAttribute1IBandwidthGroup(PRUint32 *aInternalAndReservedAttribute1IBandwidthGroup); \
  NS_IMETHOD GetInternalAndReservedAttribute2IBandwidthGroup(PRUint32 *aInternalAndReservedAttribute2IBandwidthGroup); \
  NS_IMETHOD GetInternalAndReservedAttribute3IBandwidthGroup(PRUint32 *aInternalAndReservedAttribute3IBandwidthGroup); \
  NS_IMETHOD GetInternalAndReservedAttribute4IBandwidthGroup(PRUint32 *aInternalAndReservedAttribute4IBandwidthGroup); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IBANDWIDTHGROUP(_to) \
  NS_IMETHOD GetName(PRUnichar * *aName) { return _to GetName(aName); } \
  NS_IMETHOD GetType(PRUint32 *aType) { return _to GetType(aType); } \
  NS_IMETHOD GetReference(PRUint32 *aReference) { return _to GetReference(aReference); } \
  NS_IMETHOD GetMaxBytesPerSec(PRInt64 *aMaxBytesPerSec) { return _to GetMaxBytesPerSec(aMaxBytesPerSec); } \
  NS_IMETHOD SetMaxBytesPerSec(PRInt64 aMaxBytesPerSec) { return _to SetMaxBytesPerSec(aMaxBytesPerSec); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IBandwidthGroup(PRUint32 *aInternalAndReservedAttribute1IBandwidthGroup) { return _to GetInternalAndReservedAttribute1IBandwidthGroup(aInternalAndReservedAttribute1IBandwidthGroup); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IBandwidthGroup(PRUint32 *aInternalAndReservedAttribute2IBandwidthGroup) { return _to GetInternalAndReservedAttribute2IBandwidthGroup(aInternalAndReservedAttribute2IBandwidthGroup); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IBandwidthGroup(PRUint32 *aInternalAndReservedAttribute3IBandwidthGroup) { return _to GetInternalAndReservedAttribute3IBandwidthGroup(aInternalAndReservedAttribute3IBandwidthGroup); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IBandwidthGroup(PRUint32 *aInternalAndReservedAttribute4IBandwidthGroup) { return _to GetInternalAndReservedAttribute4IBandwidthGroup(aInternalAndReservedAttribute4IBandwidthGroup); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IBANDWIDTHGROUP(_to) \
  NS_IMETHOD GetName(PRUnichar * *aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
  NS_IMETHOD GetType(PRUint32 *aType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetType(aType); } \
  NS_IMETHOD GetReference(PRUint32 *aReference) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetReference(aReference); } \
  NS_IMETHOD GetMaxBytesPerSec(PRInt64 *aMaxBytesPerSec) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMaxBytesPerSec(aMaxBytesPerSec); } \
  NS_IMETHOD SetMaxBytesPerSec(PRInt64 aMaxBytesPerSec) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMaxBytesPerSec(aMaxBytesPerSec); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IBandwidthGroup(PRUint32 *aInternalAndReservedAttribute1IBandwidthGroup) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IBandwidthGroup(aInternalAndReservedAttribute1IBandwidthGroup); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IBandwidthGroup(PRUint32 *aInternalAndReservedAttribute2IBandwidthGroup) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IBandwidthGroup(aInternalAndReservedAttribute2IBandwidthGroup); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IBandwidthGroup(PRUint32 *aInternalAndReservedAttribute3IBandwidthGroup) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IBandwidthGroup(aInternalAndReservedAttribute3IBandwidthGroup); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IBandwidthGroup(PRUint32 *aInternalAndReservedAttribute4IBandwidthGroup) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IBandwidthGroup(aInternalAndReservedAttribute4IBandwidthGroup); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IBandwidthGroup
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IBANDWIDTHGROUP

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IBandwidthGroup)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute wstring name; */
NS_IMETHODIMP _MYCLASS_::GetName(PRUnichar * *aName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 type; */
NS_IMETHODIMP _MYCLASS_::GetType(PRUint32 *aType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long reference; */
NS_IMETHODIMP _MYCLASS_::GetReference(PRUint32 *aReference)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute long long maxBytesPerSec; */
NS_IMETHODIMP _MYCLASS_::GetMaxBytesPerSec(PRInt64 *aMaxBytesPerSec)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetMaxBytesPerSec(PRInt64 aMaxBytesPerSec)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IBandwidthGroup; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IBandwidthGroup(PRUint32 *aInternalAndReservedAttribute1IBandwidthGroup)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IBandwidthGroup; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IBandwidthGroup(PRUint32 *aInternalAndReservedAttribute2IBandwidthGroup)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute3IBandwidthGroup; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute3IBandwidthGroup(PRUint32 *aInternalAndReservedAttribute3IBandwidthGroup)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute4IBandwidthGroup; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute4IBandwidthGroup(PRUint32 *aInternalAndReservedAttribute4IBandwidthGroup)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IBandwidthControl */
#define IBANDWIDTHCONTROL_IID_STR "48c7f4c0-c9d6-4742-957c-a6fd52e8c4ae"

#define IBANDWIDTHCONTROL_IID \
  {0x48c7f4c0, 0xc9d6, 0x4742, \
    { 0x95, 0x7c, 0xa6, 0xfd, 0x52, 0xe8, 0xc4, 0xae }}

class NS_NO_VTABLE IBandwidthControl : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IBANDWIDTHCONTROL_IID)

  /* readonly attribute unsigned long numGroups; */
  NS_IMETHOD GetNumGroups(PRUint32 *aNumGroups) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IBandwidthControl; */
  NS_IMETHOD GetInternalAndReservedAttribute1IBandwidthControl(PRUint32 *aInternalAndReservedAttribute1IBandwidthControl) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IBandwidthControl; */
  NS_IMETHOD GetInternalAndReservedAttribute2IBandwidthControl(PRUint32 *aInternalAndReservedAttribute2IBandwidthControl) = 0;

  /* void createBandwidthGroup (in wstring name, in PRUint32 type, in long long maxBytesPerSec); */
  NS_IMETHOD CreateBandwidthGroup(const PRUnichar *name, PRUint32 type, PRInt64 maxBytesPerSec) = 0;

  /* void deleteBandwidthGroup (in wstring name); */
  NS_IMETHOD DeleteBandwidthGroup(const PRUnichar *name) = 0;

  /* void getBandwidthGroup (in wstring name, [retval] out IBandwidthGroup bandwidthGroup); */
  NS_IMETHOD GetBandwidthGroup(const PRUnichar *name, IBandwidthGroup **bandwidthGroup) = 0;

  /* void getAllBandwidthGroups (out unsigned long bandwidthGroupsSize, [array, size_is (bandwidthGroupsSize), retval] out IBandwidthGroup bandwidthGroups); */
  NS_IMETHOD GetAllBandwidthGroups(PRUint32 *bandwidthGroupsSize, IBandwidthGroup ***bandwidthGroups) = 0;

  /* void InternalAndReservedMethod1IBandwidthControl (); */
  NS_IMETHOD InternalAndReservedMethod1IBandwidthControl(void) = 0;

  /* void InternalAndReservedMethod2IBandwidthControl (); */
  NS_IMETHOD InternalAndReservedMethod2IBandwidthControl(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IBANDWIDTHCONTROL \
  NS_IMETHOD GetNumGroups(PRUint32 *aNumGroups); \
  NS_IMETHOD GetInternalAndReservedAttribute1IBandwidthControl(PRUint32 *aInternalAndReservedAttribute1IBandwidthControl); \
  NS_IMETHOD GetInternalAndReservedAttribute2IBandwidthControl(PRUint32 *aInternalAndReservedAttribute2IBandwidthControl); \
  NS_IMETHOD CreateBandwidthGroup(const PRUnichar *name, PRUint32 type, PRInt64 maxBytesPerSec); \
  NS_IMETHOD DeleteBandwidthGroup(const PRUnichar *name); \
  NS_IMETHOD GetBandwidthGroup(const PRUnichar *name, IBandwidthGroup **bandwidthGroup); \
  NS_IMETHOD GetAllBandwidthGroups(PRUint32 *bandwidthGroupsSize, IBandwidthGroup ***bandwidthGroups); \
  NS_IMETHOD InternalAndReservedMethod1IBandwidthControl(void); \
  NS_IMETHOD InternalAndReservedMethod2IBandwidthControl(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IBANDWIDTHCONTROL(_to) \
  NS_IMETHOD GetNumGroups(PRUint32 *aNumGroups) { return _to GetNumGroups(aNumGroups); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IBandwidthControl(PRUint32 *aInternalAndReservedAttribute1IBandwidthControl) { return _to GetInternalAndReservedAttribute1IBandwidthControl(aInternalAndReservedAttribute1IBandwidthControl); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IBandwidthControl(PRUint32 *aInternalAndReservedAttribute2IBandwidthControl) { return _to GetInternalAndReservedAttribute2IBandwidthControl(aInternalAndReservedAttribute2IBandwidthControl); } \
  NS_IMETHOD CreateBandwidthGroup(const PRUnichar *name, PRUint32 type, PRInt64 maxBytesPerSec) { return _to CreateBandwidthGroup(name, type, maxBytesPerSec); } \
  NS_IMETHOD DeleteBandwidthGroup(const PRUnichar *name) { return _to DeleteBandwidthGroup(name); } \
  NS_IMETHOD GetBandwidthGroup(const PRUnichar *name, IBandwidthGroup **bandwidthGroup) { return _to GetBandwidthGroup(name, bandwidthGroup); } \
  NS_IMETHOD GetAllBandwidthGroups(PRUint32 *bandwidthGroupsSize, IBandwidthGroup ***bandwidthGroups) { return _to GetAllBandwidthGroups(bandwidthGroupsSize, bandwidthGroups); } \
  NS_IMETHOD InternalAndReservedMethod1IBandwidthControl(void) { return _to InternalAndReservedMethod1IBandwidthControl(); } \
  NS_IMETHOD InternalAndReservedMethod2IBandwidthControl(void) { return _to InternalAndReservedMethod2IBandwidthControl(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IBANDWIDTHCONTROL(_to) \
  NS_IMETHOD GetNumGroups(PRUint32 *aNumGroups) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNumGroups(aNumGroups); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IBandwidthControl(PRUint32 *aInternalAndReservedAttribute1IBandwidthControl) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IBandwidthControl(aInternalAndReservedAttribute1IBandwidthControl); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IBandwidthControl(PRUint32 *aInternalAndReservedAttribute2IBandwidthControl) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IBandwidthControl(aInternalAndReservedAttribute2IBandwidthControl); } \
  NS_IMETHOD CreateBandwidthGroup(const PRUnichar *name, PRUint32 type, PRInt64 maxBytesPerSec) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateBandwidthGroup(name, type, maxBytesPerSec); } \
  NS_IMETHOD DeleteBandwidthGroup(const PRUnichar *name) { return !_to ? NS_ERROR_NULL_POINTER : _to->DeleteBandwidthGroup(name); } \
  NS_IMETHOD GetBandwidthGroup(const PRUnichar *name, IBandwidthGroup **bandwidthGroup) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBandwidthGroup(name, bandwidthGroup); } \
  NS_IMETHOD GetAllBandwidthGroups(PRUint32 *bandwidthGroupsSize, IBandwidthGroup ***bandwidthGroups) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAllBandwidthGroups(bandwidthGroupsSize, bandwidthGroups); } \
  NS_IMETHOD InternalAndReservedMethod1IBandwidthControl(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IBandwidthControl(); } \
  NS_IMETHOD InternalAndReservedMethod2IBandwidthControl(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IBandwidthControl(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IBandwidthControl
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IBANDWIDTHCONTROL

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IBandwidthControl)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute unsigned long numGroups; */
NS_IMETHODIMP _MYCLASS_::GetNumGroups(PRUint32 *aNumGroups)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IBandwidthControl; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IBandwidthControl(PRUint32 *aInternalAndReservedAttribute1IBandwidthControl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IBandwidthControl; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IBandwidthControl(PRUint32 *aInternalAndReservedAttribute2IBandwidthControl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void createBandwidthGroup (in wstring name, in PRUint32 type, in long long maxBytesPerSec); */
NS_IMETHODIMP _MYCLASS_::CreateBandwidthGroup(const PRUnichar *name, PRUint32 type, PRInt64 maxBytesPerSec)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void deleteBandwidthGroup (in wstring name); */
NS_IMETHODIMP _MYCLASS_::DeleteBandwidthGroup(const PRUnichar *name)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getBandwidthGroup (in wstring name, [retval] out IBandwidthGroup bandwidthGroup); */
NS_IMETHODIMP _MYCLASS_::GetBandwidthGroup(const PRUnichar *name, IBandwidthGroup **bandwidthGroup)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getAllBandwidthGroups (out unsigned long bandwidthGroupsSize, [array, size_is (bandwidthGroupsSize), retval] out IBandwidthGroup bandwidthGroups); */
NS_IMETHODIMP _MYCLASS_::GetAllBandwidthGroups(PRUint32 *bandwidthGroupsSize, IBandwidthGroup ***bandwidthGroups)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1IBandwidthControl (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1IBandwidthControl()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod2IBandwidthControl (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod2IBandwidthControl()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IVirtualBoxClient */
#define IVIRTUALBOXCLIENT_IID_STR "d2937a8e-cb8d-4382-90ba-b7da78a74573"

#define IVIRTUALBOXCLIENT_IID \
  {0xd2937a8e, 0xcb8d, 0x4382, \
    { 0x90, 0xba, 0xb7, 0xda, 0x78, 0xa7, 0x45, 0x73 }}

class NS_NO_VTABLE IVirtualBoxClient : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IVIRTUALBOXCLIENT_IID)

  /* readonly attribute IVirtualBox virtualBox; */
  NS_IMETHOD GetVirtualBox(IVirtualBox * *aVirtualBox) = 0;

  /* readonly attribute ISession session; */
  NS_IMETHOD GetSession(ISession * *aSession) = 0;

  /* readonly attribute IEventSource eventSource; */
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IVirtualBoxClient; */
  NS_IMETHOD GetInternalAndReservedAttribute1IVirtualBoxClient(PRUint32 *aInternalAndReservedAttribute1IVirtualBoxClient) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IVirtualBoxClient; */
  NS_IMETHOD GetInternalAndReservedAttribute2IVirtualBoxClient(PRUint32 *aInternalAndReservedAttribute2IVirtualBoxClient) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IVirtualBoxClient; */
  NS_IMETHOD GetInternalAndReservedAttribute3IVirtualBoxClient(PRUint32 *aInternalAndReservedAttribute3IVirtualBoxClient) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IVirtualBoxClient; */
  NS_IMETHOD GetInternalAndReservedAttribute4IVirtualBoxClient(PRUint32 *aInternalAndReservedAttribute4IVirtualBoxClient) = 0;

  /* void checkMachineError (in IMachine machine); */
  NS_IMETHOD CheckMachineError(IMachine *machine) = 0;

  /* void InternalAndReservedMethod1IVirtualBoxClient (); */
  NS_IMETHOD InternalAndReservedMethod1IVirtualBoxClient(void) = 0;

  /* void InternalAndReservedMethod2IVirtualBoxClient (); */
  NS_IMETHOD InternalAndReservedMethod2IVirtualBoxClient(void) = 0;

  /* void InternalAndReservedMethod3IVirtualBoxClient (); */
  NS_IMETHOD InternalAndReservedMethod3IVirtualBoxClient(void) = 0;

  /* void InternalAndReservedMethod4IVirtualBoxClient (); */
  NS_IMETHOD InternalAndReservedMethod4IVirtualBoxClient(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IVIRTUALBOXCLIENT \
  NS_IMETHOD GetVirtualBox(IVirtualBox * *aVirtualBox); \
  NS_IMETHOD GetSession(ISession * *aSession); \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource); \
  NS_IMETHOD GetInternalAndReservedAttribute1IVirtualBoxClient(PRUint32 *aInternalAndReservedAttribute1IVirtualBoxClient); \
  NS_IMETHOD GetInternalAndReservedAttribute2IVirtualBoxClient(PRUint32 *aInternalAndReservedAttribute2IVirtualBoxClient); \
  NS_IMETHOD GetInternalAndReservedAttribute3IVirtualBoxClient(PRUint32 *aInternalAndReservedAttribute3IVirtualBoxClient); \
  NS_IMETHOD GetInternalAndReservedAttribute4IVirtualBoxClient(PRUint32 *aInternalAndReservedAttribute4IVirtualBoxClient); \
  NS_IMETHOD CheckMachineError(IMachine *machine); \
  NS_IMETHOD InternalAndReservedMethod1IVirtualBoxClient(void); \
  NS_IMETHOD InternalAndReservedMethod2IVirtualBoxClient(void); \
  NS_IMETHOD InternalAndReservedMethod3IVirtualBoxClient(void); \
  NS_IMETHOD InternalAndReservedMethod4IVirtualBoxClient(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IVIRTUALBOXCLIENT(_to) \
  NS_IMETHOD GetVirtualBox(IVirtualBox * *aVirtualBox) { return _to GetVirtualBox(aVirtualBox); } \
  NS_IMETHOD GetSession(ISession * *aSession) { return _to GetSession(aSession); } \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) { return _to GetEventSource(aEventSource); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IVirtualBoxClient(PRUint32 *aInternalAndReservedAttribute1IVirtualBoxClient) { return _to GetInternalAndReservedAttribute1IVirtualBoxClient(aInternalAndReservedAttribute1IVirtualBoxClient); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IVirtualBoxClient(PRUint32 *aInternalAndReservedAttribute2IVirtualBoxClient) { return _to GetInternalAndReservedAttribute2IVirtualBoxClient(aInternalAndReservedAttribute2IVirtualBoxClient); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IVirtualBoxClient(PRUint32 *aInternalAndReservedAttribute3IVirtualBoxClient) { return _to GetInternalAndReservedAttribute3IVirtualBoxClient(aInternalAndReservedAttribute3IVirtualBoxClient); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IVirtualBoxClient(PRUint32 *aInternalAndReservedAttribute4IVirtualBoxClient) { return _to GetInternalAndReservedAttribute4IVirtualBoxClient(aInternalAndReservedAttribute4IVirtualBoxClient); } \
  NS_IMETHOD CheckMachineError(IMachine *machine) { return _to CheckMachineError(machine); } \
  NS_IMETHOD InternalAndReservedMethod1IVirtualBoxClient(void) { return _to InternalAndReservedMethod1IVirtualBoxClient(); } \
  NS_IMETHOD InternalAndReservedMethod2IVirtualBoxClient(void) { return _to InternalAndReservedMethod2IVirtualBoxClient(); } \
  NS_IMETHOD InternalAndReservedMethod3IVirtualBoxClient(void) { return _to InternalAndReservedMethod3IVirtualBoxClient(); } \
  NS_IMETHOD InternalAndReservedMethod4IVirtualBoxClient(void) { return _to InternalAndReservedMethod4IVirtualBoxClient(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IVIRTUALBOXCLIENT(_to) \
  NS_IMETHOD GetVirtualBox(IVirtualBox * *aVirtualBox) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVirtualBox(aVirtualBox); } \
  NS_IMETHOD GetSession(ISession * *aSession) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSession(aSession); } \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEventSource(aEventSource); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IVirtualBoxClient(PRUint32 *aInternalAndReservedAttribute1IVirtualBoxClient) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IVirtualBoxClient(aInternalAndReservedAttribute1IVirtualBoxClient); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IVirtualBoxClient(PRUint32 *aInternalAndReservedAttribute2IVirtualBoxClient) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IVirtualBoxClient(aInternalAndReservedAttribute2IVirtualBoxClient); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IVirtualBoxClient(PRUint32 *aInternalAndReservedAttribute3IVirtualBoxClient) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IVirtualBoxClient(aInternalAndReservedAttribute3IVirtualBoxClient); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IVirtualBoxClient(PRUint32 *aInternalAndReservedAttribute4IVirtualBoxClient) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IVirtualBoxClient(aInternalAndReservedAttribute4IVirtualBoxClient); } \
  NS_IMETHOD CheckMachineError(IMachine *machine) { return !_to ? NS_ERROR_NULL_POINTER : _to->CheckMachineError(machine); } \
  NS_IMETHOD InternalAndReservedMethod1IVirtualBoxClient(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IVirtualBoxClient(); } \
  NS_IMETHOD InternalAndReservedMethod2IVirtualBoxClient(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IVirtualBoxClient(); } \
  NS_IMETHOD InternalAndReservedMethod3IVirtualBoxClient(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IVirtualBoxClient(); } \
  NS_IMETHOD InternalAndReservedMethod4IVirtualBoxClient(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IVirtualBoxClient(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IVirtualBoxClient
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IVIRTUALBOXCLIENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IVirtualBoxClient)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute IVirtualBox virtualBox; */
NS_IMETHODIMP _MYCLASS_::GetVirtualBox(IVirtualBox * *aVirtualBox)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute ISession session; */
NS_IMETHODIMP _MYCLASS_::GetSession(ISession * *aSession)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IEventSource eventSource; */
NS_IMETHODIMP _MYCLASS_::GetEventSource(IEventSource * *aEventSource)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute1IVirtualBoxClient; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute1IVirtualBoxClient(PRUint32 *aInternalAndReservedAttribute1IVirtualBoxClient)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute2IVirtualBoxClient; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute2IVirtualBoxClient(PRUint32 *aInternalAndReservedAttribute2IVirtualBoxClient)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute3IVirtualBoxClient; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute3IVirtualBoxClient(PRUint32 *aInternalAndReservedAttribute3IVirtualBoxClient)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long InternalAndReservedAttribute4IVirtualBoxClient; */
NS_IMETHODIMP _MYCLASS_::GetInternalAndReservedAttribute4IVirtualBoxClient(PRUint32 *aInternalAndReservedAttribute4IVirtualBoxClient)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void checkMachineError (in IMachine machine); */
NS_IMETHODIMP _MYCLASS_::CheckMachineError(IMachine *machine)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod1IVirtualBoxClient (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod1IVirtualBoxClient()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod2IVirtualBoxClient (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod2IVirtualBoxClient()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod3IVirtualBoxClient (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod3IVirtualBoxClient()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void InternalAndReservedMethod4IVirtualBoxClient (); */
NS_IMETHODIMP _MYCLASS_::InternalAndReservedMethod4IVirtualBoxClient()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IEventSource */
#define IEVENTSOURCE_IID_STR "9b6e1aee-35f3-4f4d-b5bb-ed0ecefd8538"

#define IEVENTSOURCE_IID \
  {0x9b6e1aee, 0x35f3, 0x4f4d, \
    { 0xb5, 0xbb, 0xed, 0x0e, 0xce, 0xfd, 0x85, 0x38 }}

class NS_NO_VTABLE IEventSource : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IEVENTSOURCE_IID)

  /* void createListener ([retval] out IEventListener listener); */
  NS_IMETHOD CreateListener(IEventListener **listener) = 0;

  /* void createAggregator (in unsigned long subordinatesSize, [array, size_is (subordinatesSize)] in IEventSource subordinates, [retval] out IEventSource result); */
  NS_IMETHOD CreateAggregator(PRUint32 subordinatesSize, IEventSource **subordinates, IEventSource **result) = 0;

  /* void registerListener (in IEventListener listener, in unsigned long interestingSize, [array, size_is (interestingSize)] in PRUint32 interesting, in boolean active); */
  NS_IMETHOD RegisterListener(IEventListener *listener, PRUint32 interestingSize, PRUint32 *interesting, PRBool active) = 0;

  /* void unregisterListener (in IEventListener listener); */
  NS_IMETHOD UnregisterListener(IEventListener *listener) = 0;

  /* void fireEvent (in IEvent event, in long timeout, [retval] out boolean result); */
  NS_IMETHOD FireEvent(IEvent *event, PRInt32 timeout, PRBool *result) = 0;

  /* void getEvent (in IEventListener listener, in long timeout, [retval] out IEvent event); */
  NS_IMETHOD GetEvent(IEventListener *listener, PRInt32 timeout, IEvent **event) = 0;

  /* void eventProcessed (in IEventListener listener, in IEvent event); */
  NS_IMETHOD EventProcessed(IEventListener *listener, IEvent *event) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IEVENTSOURCE \
  NS_IMETHOD CreateListener(IEventListener **listener); \
  NS_IMETHOD CreateAggregator(PRUint32 subordinatesSize, IEventSource **subordinates, IEventSource **result); \
  NS_IMETHOD RegisterListener(IEventListener *listener, PRUint32 interestingSize, PRUint32 *interesting, PRBool active); \
  NS_IMETHOD UnregisterListener(IEventListener *listener); \
  NS_IMETHOD FireEvent(IEvent *event, PRInt32 timeout, PRBool *result); \
  NS_IMETHOD GetEvent(IEventListener *listener, PRInt32 timeout, IEvent **event); \
  NS_IMETHOD EventProcessed(IEventListener *listener, IEvent *event); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IEVENTSOURCE(_to) \
  NS_IMETHOD CreateListener(IEventListener **listener) { return _to CreateListener(listener); } \
  NS_IMETHOD CreateAggregator(PRUint32 subordinatesSize, IEventSource **subordinates, IEventSource **result) { return _to CreateAggregator(subordinatesSize, subordinates, result); } \
  NS_IMETHOD RegisterListener(IEventListener *listener, PRUint32 interestingSize, PRUint32 *interesting, PRBool active) { return _to RegisterListener(listener, interestingSize, interesting, active); } \
  NS_IMETHOD UnregisterListener(IEventListener *listener) { return _to UnregisterListener(listener); } \
  NS_IMETHOD FireEvent(IEvent *event, PRInt32 timeout, PRBool *result) { return _to FireEvent(event, timeout, result); } \
  NS_IMETHOD GetEvent(IEventListener *listener, PRInt32 timeout, IEvent **event) { return _to GetEvent(listener, timeout, event); } \
  NS_IMETHOD EventProcessed(IEventListener *listener, IEvent *event) { return _to EventProcessed(listener, event); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IEVENTSOURCE(_to) \
  NS_IMETHOD CreateListener(IEventListener **listener) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateListener(listener); } \
  NS_IMETHOD CreateAggregator(PRUint32 subordinatesSize, IEventSource **subordinates, IEventSource **result) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateAggregator(subordinatesSize, subordinates, result); } \
  NS_IMETHOD RegisterListener(IEventListener *listener, PRUint32 interestingSize, PRUint32 *interesting, PRBool active) { return !_to ? NS_ERROR_NULL_POINTER : _to->RegisterListener(listener, interestingSize, interesting, active); } \
  NS_IMETHOD UnregisterListener(IEventListener *listener) { return !_to ? NS_ERROR_NULL_POINTER : _to->UnregisterListener(listener); } \
  NS_IMETHOD FireEvent(IEvent *event, PRInt32 timeout, PRBool *result) { return !_to ? NS_ERROR_NULL_POINTER : _to->FireEvent(event, timeout, result); } \
  NS_IMETHOD GetEvent(IEventListener *listener, PRInt32 timeout, IEvent **event) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEvent(listener, timeout, event); } \
  NS_IMETHOD EventProcessed(IEventListener *listener, IEvent *event) { return !_to ? NS_ERROR_NULL_POINTER : _to->EventProcessed(listener, event); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IEventSource
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IEVENTSOURCE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IEventSource)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* void createListener ([retval] out IEventListener listener); */
NS_IMETHODIMP _MYCLASS_::CreateListener(IEventListener **listener)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void createAggregator (in unsigned long subordinatesSize, [array, size_is (subordinatesSize)] in IEventSource subordinates, [retval] out IEventSource result); */
NS_IMETHODIMP _MYCLASS_::CreateAggregator(PRUint32 subordinatesSize, IEventSource **subordinates, IEventSource **result)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void registerListener (in IEventListener listener, in unsigned long interestingSize, [array, size_is (interestingSize)] in PRUint32 interesting, in boolean active); */
NS_IMETHODIMP _MYCLASS_::RegisterListener(IEventListener *listener, PRUint32 interestingSize, PRUint32 *interesting, PRBool active)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void unregisterListener (in IEventListener listener); */
NS_IMETHODIMP _MYCLASS_::UnregisterListener(IEventListener *listener)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void fireEvent (in IEvent event, in long timeout, [retval] out boolean result); */
NS_IMETHODIMP _MYCLASS_::FireEvent(IEvent *event, PRInt32 timeout, PRBool *result)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getEvent (in IEventListener listener, in long timeout, [retval] out IEvent event); */
NS_IMETHODIMP _MYCLASS_::GetEvent(IEventListener *listener, PRInt32 timeout, IEvent **event)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void eventProcessed (in IEventListener listener, in IEvent event); */
NS_IMETHODIMP _MYCLASS_::EventProcessed(IEventListener *listener, IEvent *event)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IEventListener */
#define IEVENTLISTENER_IID_STR "67099191-32e7-4f6c-85ee-422304c71b90"

#define IEVENTLISTENER_IID \
  {0x67099191, 0x32e7, 0x4f6c, \
    { 0x85, 0xee, 0x42, 0x23, 0x04, 0xc7, 0x1b, 0x90 }}

class NS_NO_VTABLE IEventListener : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IEVENTLISTENER_IID)

  /* void handleEvent (in IEvent event); */
  NS_IMETHOD HandleEvent(IEvent *event) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IEVENTLISTENER \
  NS_IMETHOD HandleEvent(IEvent *event); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IEVENTLISTENER(_to) \
  NS_IMETHOD HandleEvent(IEvent *event) { return _to HandleEvent(event); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IEVENTLISTENER(_to) \
  NS_IMETHOD HandleEvent(IEvent *event) { return !_to ? NS_ERROR_NULL_POINTER : _to->HandleEvent(event); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IEventListener
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IEVENTLISTENER

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IEventListener)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* void handleEvent (in IEvent event); */
NS_IMETHODIMP _MYCLASS_::HandleEvent(IEvent *event)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IEvent */
#define IEVENT_IID_STR "0ca2adba-8f30-401b-a8cd-fe31dbe839c0"

#define IEVENT_IID \
  {0x0ca2adba, 0x8f30, 0x401b, \
    { 0xa8, 0xcd, 0xfe, 0x31, 0xdb, 0xe8, 0x39, 0xc0 }}

class NS_NO_VTABLE IEvent : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IEVENT_IID)

  /* readonly attribute PRUint32 type; */
  NS_IMETHOD GetType(PRUint32 *aType) = 0;

  /* readonly attribute IEventSource source; */
  NS_IMETHOD GetSource(IEventSource * *aSource) = 0;

  /* readonly attribute boolean waitable; */
  NS_IMETHOD GetWaitable(PRBool *aWaitable) = 0;

  /* void setProcessed (); */
  NS_IMETHOD SetProcessed(void) = 0;

  /* void waitProcessed (in long timeout, [retval] out boolean result); */
  NS_IMETHOD WaitProcessed(PRInt32 timeout, PRBool *result) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IEVENT \
  NS_IMETHOD GetType(PRUint32 *aType); \
  NS_IMETHOD GetSource(IEventSource * *aSource); \
  NS_IMETHOD GetWaitable(PRBool *aWaitable); \
  NS_IMETHOD SetProcessed(void); \
  NS_IMETHOD WaitProcessed(PRInt32 timeout, PRBool *result); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IEVENT(_to) \
  NS_IMETHOD GetType(PRUint32 *aType) { return _to GetType(aType); } \
  NS_IMETHOD GetSource(IEventSource * *aSource) { return _to GetSource(aSource); } \
  NS_IMETHOD GetWaitable(PRBool *aWaitable) { return _to GetWaitable(aWaitable); } \
  NS_IMETHOD SetProcessed(void) { return _to SetProcessed(); } \
  NS_IMETHOD WaitProcessed(PRInt32 timeout, PRBool *result) { return _to WaitProcessed(timeout, result); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IEVENT(_to) \
  NS_IMETHOD GetType(PRUint32 *aType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetType(aType); } \
  NS_IMETHOD GetSource(IEventSource * *aSource) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSource(aSource); } \
  NS_IMETHOD GetWaitable(PRBool *aWaitable) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetWaitable(aWaitable); } \
  NS_IMETHOD SetProcessed(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetProcessed(); } \
  NS_IMETHOD WaitProcessed(PRInt32 timeout, PRBool *result) { return !_to ? NS_ERROR_NULL_POINTER : _to->WaitProcessed(timeout, result); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute PRUint32 type; */
NS_IMETHODIMP _MYCLASS_::GetType(PRUint32 *aType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IEventSource source; */
NS_IMETHODIMP _MYCLASS_::GetSource(IEventSource * *aSource)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean waitable; */
NS_IMETHODIMP _MYCLASS_::GetWaitable(PRBool *aWaitable)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setProcessed (); */
NS_IMETHODIMP _MYCLASS_::SetProcessed()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void waitProcessed (in long timeout, [retval] out boolean result); */
NS_IMETHODIMP _MYCLASS_::WaitProcessed(PRInt32 timeout, PRBool *result)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IReusableEvent */
#define IREUSABLEEVENT_IID_STR "69bfb134-80f6-4266-8e20-16371f68fa25"

#define IREUSABLEEVENT_IID \
  {0x69bfb134, 0x80f6, 0x4266, \
    { 0x8e, 0x20, 0x16, 0x37, 0x1f, 0x68, 0xfa, 0x25 }}

class NS_NO_VTABLE IReusableEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IREUSABLEEVENT_IID)

  /* readonly attribute unsigned long generation; */
  NS_IMETHOD GetGeneration(PRUint32 *aGeneration) = 0;

  /* void reuse (); */
  NS_IMETHOD Reuse(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IREUSABLEEVENT \
  NS_IMETHOD GetGeneration(PRUint32 *aGeneration); \
  NS_IMETHOD Reuse(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IREUSABLEEVENT(_to) \
  NS_IMETHOD GetGeneration(PRUint32 *aGeneration) { return _to GetGeneration(aGeneration); } \
  NS_IMETHOD Reuse(void) { return _to Reuse(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IREUSABLEEVENT(_to) \
  NS_IMETHOD GetGeneration(PRUint32 *aGeneration) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGeneration(aGeneration); } \
  NS_IMETHOD Reuse(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Reuse(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IReusableEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IREUSABLEEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IReusableEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute unsigned long generation; */
NS_IMETHODIMP _MYCLASS_::GetGeneration(PRUint32 *aGeneration)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void reuse (); */
NS_IMETHODIMP _MYCLASS_::Reuse()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IMachineEvent */
#define IMACHINEEVENT_IID_STR "92ed7b1a-0d96-40ed-ae46-a564d484325e"

#define IMACHINEEVENT_IID \
  {0x92ed7b1a, 0x0d96, 0x40ed, \
    { 0xae, 0x46, 0xa5, 0x64, 0xd4, 0x84, 0x32, 0x5e }}

class NS_NO_VTABLE IMachineEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IMACHINEEVENT_IID)

  /* readonly attribute wstring machineId; */
  NS_IMETHOD GetMachineId(PRUnichar * *aMachineId) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IMACHINEEVENT \
  NS_IMETHOD GetMachineId(PRUnichar * *aMachineId); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IMACHINEEVENT(_to) \
  NS_IMETHOD GetMachineId(PRUnichar * *aMachineId) { return _to GetMachineId(aMachineId); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IMACHINEEVENT(_to) \
  NS_IMETHOD GetMachineId(PRUnichar * *aMachineId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMachineId(aMachineId); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IMachineEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IMACHINEEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IMachineEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute wstring machineId; */
NS_IMETHODIMP _MYCLASS_::GetMachineId(PRUnichar * *aMachineId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IMachineStateChangedEvent */
#define IMACHINESTATECHANGEDEVENT_IID_STR "5748f794-48df-438d-85eb-98ffd70d18c9"

#define IMACHINESTATECHANGEDEVENT_IID \
  {0x5748f794, 0x48df, 0x438d, \
    { 0x85, 0xeb, 0x98, 0xff, 0xd7, 0x0d, 0x18, 0xc9 }}

class NS_NO_VTABLE IMachineStateChangedEvent : public IMachineEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IMACHINESTATECHANGEDEVENT_IID)

  /* readonly attribute PRUint32 state; */
  NS_IMETHOD GetState(PRUint32 *aState) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IMACHINESTATECHANGEDEVENT \
  NS_IMETHOD GetState(PRUint32 *aState); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IMACHINESTATECHANGEDEVENT(_to) \
  NS_IMETHOD GetState(PRUint32 *aState) { return _to GetState(aState); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IMACHINESTATECHANGEDEVENT(_to) \
  NS_IMETHOD GetState(PRUint32 *aState) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetState(aState); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IMachineStateChangedEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IMACHINESTATECHANGEDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IMachineStateChangedEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute PRUint32 state; */
NS_IMETHODIMP _MYCLASS_::GetState(PRUint32 *aState)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IMachineDataChangedEvent */
#define IMACHINEDATACHANGEDEVENT_IID_STR "abe94809-2e88-4436-83d7-50f3e64d0503"

#define IMACHINEDATACHANGEDEVENT_IID \
  {0xabe94809, 0x2e88, 0x4436, \
    { 0x83, 0xd7, 0x50, 0xf3, 0xe6, 0x4d, 0x05, 0x03 }}

class NS_NO_VTABLE IMachineDataChangedEvent : public IMachineEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IMACHINEDATACHANGEDEVENT_IID)

  /* readonly attribute boolean temporary; */
  NS_IMETHOD GetTemporary(PRBool *aTemporary) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IMACHINEDATACHANGEDEVENT \
  NS_IMETHOD GetTemporary(PRBool *aTemporary); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IMACHINEDATACHANGEDEVENT(_to) \
  NS_IMETHOD GetTemporary(PRBool *aTemporary) { return _to GetTemporary(aTemporary); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IMACHINEDATACHANGEDEVENT(_to) \
  NS_IMETHOD GetTemporary(PRBool *aTemporary) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTemporary(aTemporary); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IMachineDataChangedEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IMACHINEDATACHANGEDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IMachineDataChangedEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean temporary; */
NS_IMETHODIMP _MYCLASS_::GetTemporary(PRBool *aTemporary)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IMediumRegisteredEvent */
#define IMEDIUMREGISTEREDEVENT_IID_STR "53fac49a-b7f1-4a5a-a4ef-a11dd9c2a458"

#define IMEDIUMREGISTEREDEVENT_IID \
  {0x53fac49a, 0xb7f1, 0x4a5a, \
    { 0xa4, 0xef, 0xa1, 0x1d, 0xd9, 0xc2, 0xa4, 0x58 }}

class NS_NO_VTABLE IMediumRegisteredEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IMEDIUMREGISTEREDEVENT_IID)

  /* readonly attribute wstring mediumId; */
  NS_IMETHOD GetMediumId(PRUnichar * *aMediumId) = 0;

  /* readonly attribute PRUint32 mediumType; */
  NS_IMETHOD GetMediumType(PRUint32 *aMediumType) = 0;

  /* readonly attribute boolean registered; */
  NS_IMETHOD GetRegistered(PRBool *aRegistered) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IMEDIUMREGISTEREDEVENT \
  NS_IMETHOD GetMediumId(PRUnichar * *aMediumId); \
  NS_IMETHOD GetMediumType(PRUint32 *aMediumType); \
  NS_IMETHOD GetRegistered(PRBool *aRegistered); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IMEDIUMREGISTEREDEVENT(_to) \
  NS_IMETHOD GetMediumId(PRUnichar * *aMediumId) { return _to GetMediumId(aMediumId); } \
  NS_IMETHOD GetMediumType(PRUint32 *aMediumType) { return _to GetMediumType(aMediumType); } \
  NS_IMETHOD GetRegistered(PRBool *aRegistered) { return _to GetRegistered(aRegistered); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IMEDIUMREGISTEREDEVENT(_to) \
  NS_IMETHOD GetMediumId(PRUnichar * *aMediumId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMediumId(aMediumId); } \
  NS_IMETHOD GetMediumType(PRUint32 *aMediumType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMediumType(aMediumType); } \
  NS_IMETHOD GetRegistered(PRBool *aRegistered) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRegistered(aRegistered); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IMediumRegisteredEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IMEDIUMREGISTEREDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IMediumRegisteredEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute wstring mediumId; */
NS_IMETHODIMP _MYCLASS_::GetMediumId(PRUnichar * *aMediumId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 mediumType; */
NS_IMETHODIMP _MYCLASS_::GetMediumType(PRUint32 *aMediumType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean registered; */
NS_IMETHODIMP _MYCLASS_::GetRegistered(PRBool *aRegistered)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IMediumConfigChangedEvent */
#define IMEDIUMCONFIGCHANGEDEVENT_IID_STR "dd3e2654-a161-41f1-b583-4892f4a9d5d5"

#define IMEDIUMCONFIGCHANGEDEVENT_IID \
  {0xdd3e2654, 0xa161, 0x41f1, \
    { 0xb5, 0x83, 0x48, 0x92, 0xf4, 0xa9, 0xd5, 0xd5 }}

class NS_NO_VTABLE IMediumConfigChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IMEDIUMCONFIGCHANGEDEVENT_IID)

  /* readonly attribute IMedium medium; */
  NS_IMETHOD GetMedium(IMedium * *aMedium) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IMEDIUMCONFIGCHANGEDEVENT \
  NS_IMETHOD GetMedium(IMedium * *aMedium); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IMEDIUMCONFIGCHANGEDEVENT(_to) \
  NS_IMETHOD GetMedium(IMedium * *aMedium) { return _to GetMedium(aMedium); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IMEDIUMCONFIGCHANGEDEVENT(_to) \
  NS_IMETHOD GetMedium(IMedium * *aMedium) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMedium(aMedium); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IMediumConfigChangedEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IMEDIUMCONFIGCHANGEDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IMediumConfigChangedEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute IMedium medium; */
NS_IMETHODIMP _MYCLASS_::GetMedium(IMedium * *aMedium)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IMachineRegisteredEvent */
#define IMACHINEREGISTEREDEVENT_IID_STR "c354a762-3ff2-4f2e-8f09-07382ee25088"

#define IMACHINEREGISTEREDEVENT_IID \
  {0xc354a762, 0x3ff2, 0x4f2e, \
    { 0x8f, 0x09, 0x07, 0x38, 0x2e, 0xe2, 0x50, 0x88 }}

class NS_NO_VTABLE IMachineRegisteredEvent : public IMachineEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IMACHINEREGISTEREDEVENT_IID)

  /* readonly attribute boolean registered; */
  NS_IMETHOD GetRegistered(PRBool *aRegistered) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IMACHINEREGISTEREDEVENT \
  NS_IMETHOD GetRegistered(PRBool *aRegistered); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IMACHINEREGISTEREDEVENT(_to) \
  NS_IMETHOD GetRegistered(PRBool *aRegistered) { return _to GetRegistered(aRegistered); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IMACHINEREGISTEREDEVENT(_to) \
  NS_IMETHOD GetRegistered(PRBool *aRegistered) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRegistered(aRegistered); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IMachineRegisteredEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IMACHINEREGISTEREDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IMachineRegisteredEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean registered; */
NS_IMETHODIMP _MYCLASS_::GetRegistered(PRBool *aRegistered)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    ISessionStateChangedEvent */
#define ISESSIONSTATECHANGEDEVENT_IID_STR "714a3eef-799a-4489-86cd-fe8e45b2ff8e"

#define ISESSIONSTATECHANGEDEVENT_IID \
  {0x714a3eef, 0x799a, 0x4489, \
    { 0x86, 0xcd, 0xfe, 0x8e, 0x45, 0xb2, 0xff, 0x8e }}

class NS_NO_VTABLE ISessionStateChangedEvent : public IMachineEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ISESSIONSTATECHANGEDEVENT_IID)

  /* readonly attribute PRUint32 state; */
  NS_IMETHOD GetState(PRUint32 *aState) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ISESSIONSTATECHANGEDEVENT \
  NS_IMETHOD GetState(PRUint32 *aState); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ISESSIONSTATECHANGEDEVENT(_to) \
  NS_IMETHOD GetState(PRUint32 *aState) { return _to GetState(aState); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ISESSIONSTATECHANGEDEVENT(_to) \
  NS_IMETHOD GetState(PRUint32 *aState) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetState(aState); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public ISessionStateChangedEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_ISESSIONSTATECHANGEDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, ISessionStateChangedEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute PRUint32 state; */
NS_IMETHODIMP _MYCLASS_::GetState(PRUint32 *aState)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IGuestPropertyChangedEvent */
#define IGUESTPROPERTYCHANGEDEVENT_IID_STR "3f63597a-26f1-4edb-8dd2-6bddd0912368"

#define IGUESTPROPERTYCHANGEDEVENT_IID \
  {0x3f63597a, 0x26f1, 0x4edb, \
    { 0x8d, 0xd2, 0x6b, 0xdd, 0xd0, 0x91, 0x23, 0x68 }}

class NS_NO_VTABLE IGuestPropertyChangedEvent : public IMachineEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTPROPERTYCHANGEDEVENT_IID)

  /* readonly attribute wstring name; */
  NS_IMETHOD GetName(PRUnichar * *aName) = 0;

  /* readonly attribute wstring value; */
  NS_IMETHOD GetValue(PRUnichar * *aValue) = 0;

  /* readonly attribute wstring flags; */
  NS_IMETHOD GetFlags(PRUnichar * *aFlags) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTPROPERTYCHANGEDEVENT \
  NS_IMETHOD GetName(PRUnichar * *aName); \
  NS_IMETHOD GetValue(PRUnichar * *aValue); \
  NS_IMETHOD GetFlags(PRUnichar * *aFlags); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTPROPERTYCHANGEDEVENT(_to) \
  NS_IMETHOD GetName(PRUnichar * *aName) { return _to GetName(aName); } \
  NS_IMETHOD GetValue(PRUnichar * *aValue) { return _to GetValue(aValue); } \
  NS_IMETHOD GetFlags(PRUnichar * *aFlags) { return _to GetFlags(aFlags); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGUESTPROPERTYCHANGEDEVENT(_to) \
  NS_IMETHOD GetName(PRUnichar * *aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
  NS_IMETHOD GetValue(PRUnichar * *aValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetValue(aValue); } \
  NS_IMETHOD GetFlags(PRUnichar * *aFlags) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFlags(aFlags); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IGuestPropertyChangedEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IGUESTPROPERTYCHANGEDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IGuestPropertyChangedEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute wstring name; */
NS_IMETHODIMP _MYCLASS_::GetName(PRUnichar * *aName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring value; */
NS_IMETHODIMP _MYCLASS_::GetValue(PRUnichar * *aValue)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring flags; */
NS_IMETHODIMP _MYCLASS_::GetFlags(PRUnichar * *aFlags)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    ISnapshotEvent */
#define ISNAPSHOTEVENT_IID_STR "21637b0e-34b8-42d3-acfb-7e96daf77c22"

#define ISNAPSHOTEVENT_IID \
  {0x21637b0e, 0x34b8, 0x42d3, \
    { 0xac, 0xfb, 0x7e, 0x96, 0xda, 0xf7, 0x7c, 0x22 }}

class NS_NO_VTABLE ISnapshotEvent : public IMachineEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ISNAPSHOTEVENT_IID)

  /* readonly attribute wstring snapshotId; */
  NS_IMETHOD GetSnapshotId(PRUnichar * *aSnapshotId) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ISNAPSHOTEVENT \
  NS_IMETHOD GetSnapshotId(PRUnichar * *aSnapshotId); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ISNAPSHOTEVENT(_to) \
  NS_IMETHOD GetSnapshotId(PRUnichar * *aSnapshotId) { return _to GetSnapshotId(aSnapshotId); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ISNAPSHOTEVENT(_to) \
  NS_IMETHOD GetSnapshotId(PRUnichar * *aSnapshotId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSnapshotId(aSnapshotId); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public ISnapshotEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_ISNAPSHOTEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, ISnapshotEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute wstring snapshotId; */
NS_IMETHODIMP _MYCLASS_::GetSnapshotId(PRUnichar * *aSnapshotId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    ISnapshotTakenEvent */
#define ISNAPSHOTTAKENEVENT_IID_STR "d27c0b3d-6038-422c-b45e-6d4a0503d9f1"

#define ISNAPSHOTTAKENEVENT_IID \
  {0xd27c0b3d, 0x6038, 0x422c, \
    { 0xb4, 0x5e, 0x6d, 0x4a, 0x05, 0x03, 0xd9, 0xf1 }}

class NS_NO_VTABLE ISnapshotTakenEvent : public ISnapshotEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ISNAPSHOTTAKENEVENT_IID)

  /* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ISNAPSHOTTAKENEVENT \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ISNAPSHOTTAKENEVENT(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return _to GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ISNAPSHOTTAKENEVENT(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public ISnapshotTakenEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_ISNAPSHOTTAKENEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, ISnapshotTakenEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
NS_IMETHODIMP _MYCLASS_::GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    ISnapshotDeletedEvent */
#define ISNAPSHOTDELETEDEVENT_IID_STR "c48f3401-4a9e-43f4-b7a7-54bd285e22f4"

#define ISNAPSHOTDELETEDEVENT_IID \
  {0xc48f3401, 0x4a9e, 0x43f4, \
    { 0xb7, 0xa7, 0x54, 0xbd, 0x28, 0x5e, 0x22, 0xf4 }}

class NS_NO_VTABLE ISnapshotDeletedEvent : public ISnapshotEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ISNAPSHOTDELETEDEVENT_IID)

  /* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ISNAPSHOTDELETEDEVENT \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ISNAPSHOTDELETEDEVENT(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return _to GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ISNAPSHOTDELETEDEVENT(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public ISnapshotDeletedEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_ISNAPSHOTDELETEDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, ISnapshotDeletedEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
NS_IMETHODIMP _MYCLASS_::GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    ISnapshotRestoredEvent */
#define ISNAPSHOTRESTOREDEVENT_IID_STR "f4d803b4-9b2d-4377-bfe6-9702e881516b"

#define ISNAPSHOTRESTOREDEVENT_IID \
  {0xf4d803b4, 0x9b2d, 0x4377, \
    { 0xbf, 0xe6, 0x97, 0x02, 0xe8, 0x81, 0x51, 0x6b }}

class NS_NO_VTABLE ISnapshotRestoredEvent : public ISnapshotEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ISNAPSHOTRESTOREDEVENT_IID)

  /* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ISNAPSHOTRESTOREDEVENT \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ISNAPSHOTRESTOREDEVENT(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return _to GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ISNAPSHOTRESTOREDEVENT(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public ISnapshotRestoredEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_ISNAPSHOTRESTOREDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, ISnapshotRestoredEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
NS_IMETHODIMP _MYCLASS_::GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    ISnapshotChangedEvent */
#define ISNAPSHOTCHANGEDEVENT_IID_STR "07541941-8079-447a-a33e-47a69c7980db"

#define ISNAPSHOTCHANGEDEVENT_IID \
  {0x07541941, 0x8079, 0x447a, \
    { 0xa3, 0x3e, 0x47, 0xa6, 0x9c, 0x79, 0x80, 0xdb }}

class NS_NO_VTABLE ISnapshotChangedEvent : public ISnapshotEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ISNAPSHOTCHANGEDEVENT_IID)

  /* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ISNAPSHOTCHANGEDEVENT \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ISNAPSHOTCHANGEDEVENT(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return _to GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ISNAPSHOTCHANGEDEVENT(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public ISnapshotChangedEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_ISNAPSHOTCHANGEDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, ISnapshotChangedEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
NS_IMETHODIMP _MYCLASS_::GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IMousePointerShapeChangedEvent */
#define IMOUSEPOINTERSHAPECHANGEDEVENT_IID_STR "a6dcf6e8-416b-4181-8c4a-45ec95177aef"

#define IMOUSEPOINTERSHAPECHANGEDEVENT_IID \
  {0xa6dcf6e8, 0x416b, 0x4181, \
    { 0x8c, 0x4a, 0x45, 0xec, 0x95, 0x17, 0x7a, 0xef }}

class NS_NO_VTABLE IMousePointerShapeChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IMOUSEPOINTERSHAPECHANGEDEVENT_IID)

  /* readonly attribute boolean visible; */
  NS_IMETHOD GetVisible(PRBool *aVisible) = 0;

  /* readonly attribute boolean alpha; */
  NS_IMETHOD GetAlpha(PRBool *aAlpha) = 0;

  /* readonly attribute unsigned long xhot; */
  NS_IMETHOD GetXhot(PRUint32 *aXhot) = 0;

  /* readonly attribute unsigned long yhot; */
  NS_IMETHOD GetYhot(PRUint32 *aYhot) = 0;

  /* readonly attribute unsigned long width; */
  NS_IMETHOD GetWidth(PRUint32 *aWidth) = 0;

  /* readonly attribute unsigned long height; */
  NS_IMETHOD GetHeight(PRUint32 *aHeight) = 0;

  /* void getShape (out unsigned long shapeSize, [array, size_is (shapeSize), retval] out octet shape); */
  NS_IMETHOD GetShape(PRUint32 *shapeSize, PRUint8 **shape) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IMOUSEPOINTERSHAPECHANGEDEVENT \
  NS_IMETHOD GetVisible(PRBool *aVisible); \
  NS_IMETHOD GetAlpha(PRBool *aAlpha); \
  NS_IMETHOD GetXhot(PRUint32 *aXhot); \
  NS_IMETHOD GetYhot(PRUint32 *aYhot); \
  NS_IMETHOD GetWidth(PRUint32 *aWidth); \
  NS_IMETHOD GetHeight(PRUint32 *aHeight); \
  NS_IMETHOD GetShape(PRUint32 *shapeSize, PRUint8 **shape); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IMOUSEPOINTERSHAPECHANGEDEVENT(_to) \
  NS_IMETHOD GetVisible(PRBool *aVisible) { return _to GetVisible(aVisible); } \
  NS_IMETHOD GetAlpha(PRBool *aAlpha) { return _to GetAlpha(aAlpha); } \
  NS_IMETHOD GetXhot(PRUint32 *aXhot) { return _to GetXhot(aXhot); } \
  NS_IMETHOD GetYhot(PRUint32 *aYhot) { return _to GetYhot(aYhot); } \
  NS_IMETHOD GetWidth(PRUint32 *aWidth) { return _to GetWidth(aWidth); } \
  NS_IMETHOD GetHeight(PRUint32 *aHeight) { return _to GetHeight(aHeight); } \
  NS_IMETHOD GetShape(PRUint32 *shapeSize, PRUint8 **shape) { return _to GetShape(shapeSize, shape); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IMOUSEPOINTERSHAPECHANGEDEVENT(_to) \
  NS_IMETHOD GetVisible(PRBool *aVisible) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVisible(aVisible); } \
  NS_IMETHOD GetAlpha(PRBool *aAlpha) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAlpha(aAlpha); } \
  NS_IMETHOD GetXhot(PRUint32 *aXhot) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetXhot(aXhot); } \
  NS_IMETHOD GetYhot(PRUint32 *aYhot) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetYhot(aYhot); } \
  NS_IMETHOD GetWidth(PRUint32 *aWidth) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetWidth(aWidth); } \
  NS_IMETHOD GetHeight(PRUint32 *aHeight) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHeight(aHeight); } \
  NS_IMETHOD GetShape(PRUint32 *shapeSize, PRUint8 **shape) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetShape(shapeSize, shape); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IMousePointerShapeChangedEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IMOUSEPOINTERSHAPECHANGEDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IMousePointerShapeChangedEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean visible; */
NS_IMETHODIMP _MYCLASS_::GetVisible(PRBool *aVisible)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean alpha; */
NS_IMETHODIMP _MYCLASS_::GetAlpha(PRBool *aAlpha)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long xhot; */
NS_IMETHODIMP _MYCLASS_::GetXhot(PRUint32 *aXhot)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long yhot; */
NS_IMETHODIMP _MYCLASS_::GetYhot(PRUint32 *aYhot)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long width; */
NS_IMETHODIMP _MYCLASS_::GetWidth(PRUint32 *aWidth)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long height; */
NS_IMETHODIMP _MYCLASS_::GetHeight(PRUint32 *aHeight)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getShape (out unsigned long shapeSize, [array, size_is (shapeSize), retval] out octet shape); */
NS_IMETHODIMP _MYCLASS_::GetShape(PRUint32 *shapeSize, PRUint8 **shape)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IMouseCapabilityChangedEvent */
#define IMOUSECAPABILITYCHANGEDEVENT_IID_STR "70e7779a-e64a-4908-804e-371cad23a756"

#define IMOUSECAPABILITYCHANGEDEVENT_IID \
  {0x70e7779a, 0xe64a, 0x4908, \
    { 0x80, 0x4e, 0x37, 0x1c, 0xad, 0x23, 0xa7, 0x56 }}

class NS_NO_VTABLE IMouseCapabilityChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IMOUSECAPABILITYCHANGEDEVENT_IID)

  /* readonly attribute boolean supportsAbsolute; */
  NS_IMETHOD GetSupportsAbsolute(PRBool *aSupportsAbsolute) = 0;

  /* readonly attribute boolean supportsRelative; */
  NS_IMETHOD GetSupportsRelative(PRBool *aSupportsRelative) = 0;

  /* readonly attribute boolean supportsMultiTouch; */
  NS_IMETHOD GetSupportsMultiTouch(PRBool *aSupportsMultiTouch) = 0;

  /* readonly attribute boolean needsHostCursor; */
  NS_IMETHOD GetNeedsHostCursor(PRBool *aNeedsHostCursor) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IMOUSECAPABILITYCHANGEDEVENT \
  NS_IMETHOD GetSupportsAbsolute(PRBool *aSupportsAbsolute); \
  NS_IMETHOD GetSupportsRelative(PRBool *aSupportsRelative); \
  NS_IMETHOD GetSupportsMultiTouch(PRBool *aSupportsMultiTouch); \
  NS_IMETHOD GetNeedsHostCursor(PRBool *aNeedsHostCursor); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IMOUSECAPABILITYCHANGEDEVENT(_to) \
  NS_IMETHOD GetSupportsAbsolute(PRBool *aSupportsAbsolute) { return _to GetSupportsAbsolute(aSupportsAbsolute); } \
  NS_IMETHOD GetSupportsRelative(PRBool *aSupportsRelative) { return _to GetSupportsRelative(aSupportsRelative); } \
  NS_IMETHOD GetSupportsMultiTouch(PRBool *aSupportsMultiTouch) { return _to GetSupportsMultiTouch(aSupportsMultiTouch); } \
  NS_IMETHOD GetNeedsHostCursor(PRBool *aNeedsHostCursor) { return _to GetNeedsHostCursor(aNeedsHostCursor); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IMOUSECAPABILITYCHANGEDEVENT(_to) \
  NS_IMETHOD GetSupportsAbsolute(PRBool *aSupportsAbsolute) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportsAbsolute(aSupportsAbsolute); } \
  NS_IMETHOD GetSupportsRelative(PRBool *aSupportsRelative) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportsRelative(aSupportsRelative); } \
  NS_IMETHOD GetSupportsMultiTouch(PRBool *aSupportsMultiTouch) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportsMultiTouch(aSupportsMultiTouch); } \
  NS_IMETHOD GetNeedsHostCursor(PRBool *aNeedsHostCursor) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNeedsHostCursor(aNeedsHostCursor); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IMouseCapabilityChangedEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IMOUSECAPABILITYCHANGEDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IMouseCapabilityChangedEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean supportsAbsolute; */
NS_IMETHODIMP _MYCLASS_::GetSupportsAbsolute(PRBool *aSupportsAbsolute)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean supportsRelative; */
NS_IMETHODIMP _MYCLASS_::GetSupportsRelative(PRBool *aSupportsRelative)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean supportsMultiTouch; */
NS_IMETHODIMP _MYCLASS_::GetSupportsMultiTouch(PRBool *aSupportsMultiTouch)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean needsHostCursor; */
NS_IMETHODIMP _MYCLASS_::GetNeedsHostCursor(PRBool *aNeedsHostCursor)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IKeyboardLedsChangedEvent */
#define IKEYBOARDLEDSCHANGEDEVENT_IID_STR "6ddef35e-4737-457b-99fc-bc52c851a44f"

#define IKEYBOARDLEDSCHANGEDEVENT_IID \
  {0x6ddef35e, 0x4737, 0x457b, \
    { 0x99, 0xfc, 0xbc, 0x52, 0xc8, 0x51, 0xa4, 0x4f }}

class NS_NO_VTABLE IKeyboardLedsChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IKEYBOARDLEDSCHANGEDEVENT_IID)

  /* readonly attribute boolean numLock; */
  NS_IMETHOD GetNumLock(PRBool *aNumLock) = 0;

  /* readonly attribute boolean capsLock; */
  NS_IMETHOD GetCapsLock(PRBool *aCapsLock) = 0;

  /* readonly attribute boolean scrollLock; */
  NS_IMETHOD GetScrollLock(PRBool *aScrollLock) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IKEYBOARDLEDSCHANGEDEVENT \
  NS_IMETHOD GetNumLock(PRBool *aNumLock); \
  NS_IMETHOD GetCapsLock(PRBool *aCapsLock); \
  NS_IMETHOD GetScrollLock(PRBool *aScrollLock); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IKEYBOARDLEDSCHANGEDEVENT(_to) \
  NS_IMETHOD GetNumLock(PRBool *aNumLock) { return _to GetNumLock(aNumLock); } \
  NS_IMETHOD GetCapsLock(PRBool *aCapsLock) { return _to GetCapsLock(aCapsLock); } \
  NS_IMETHOD GetScrollLock(PRBool *aScrollLock) { return _to GetScrollLock(aScrollLock); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IKEYBOARDLEDSCHANGEDEVENT(_to) \
  NS_IMETHOD GetNumLock(PRBool *aNumLock) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNumLock(aNumLock); } \
  NS_IMETHOD GetCapsLock(PRBool *aCapsLock) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCapsLock(aCapsLock); } \
  NS_IMETHOD GetScrollLock(PRBool *aScrollLock) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetScrollLock(aScrollLock); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IKeyboardLedsChangedEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IKEYBOARDLEDSCHANGEDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IKeyboardLedsChangedEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean numLock; */
NS_IMETHODIMP _MYCLASS_::GetNumLock(PRBool *aNumLock)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean capsLock; */
NS_IMETHODIMP _MYCLASS_::GetCapsLock(PRBool *aCapsLock)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean scrollLock; */
NS_IMETHODIMP _MYCLASS_::GetScrollLock(PRBool *aScrollLock)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IStateChangedEvent */
#define ISTATECHANGEDEVENT_IID_STR "4376693c-cf37-453b-9289-3b0f521caf27"

#define ISTATECHANGEDEVENT_IID \
  {0x4376693c, 0xcf37, 0x453b, \
    { 0x92, 0x89, 0x3b, 0x0f, 0x52, 0x1c, 0xaf, 0x27 }}

class NS_NO_VTABLE IStateChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ISTATECHANGEDEVENT_IID)

  /* readonly attribute PRUint32 state; */
  NS_IMETHOD GetState(PRUint32 *aState) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ISTATECHANGEDEVENT \
  NS_IMETHOD GetState(PRUint32 *aState); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ISTATECHANGEDEVENT(_to) \
  NS_IMETHOD GetState(PRUint32 *aState) { return _to GetState(aState); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ISTATECHANGEDEVENT(_to) \
  NS_IMETHOD GetState(PRUint32 *aState) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetState(aState); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IStateChangedEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_ISTATECHANGEDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IStateChangedEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute PRUint32 state; */
NS_IMETHODIMP _MYCLASS_::GetState(PRUint32 *aState)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IAdditionsStateChangedEvent */
#define IADDITIONSSTATECHANGEDEVENT_IID_STR "d70f7915-da7c-44c8-a7ac-9f173490446a"

#define IADDITIONSSTATECHANGEDEVENT_IID \
  {0xd70f7915, 0xda7c, 0x44c8, \
    { 0xa7, 0xac, 0x9f, 0x17, 0x34, 0x90, 0x44, 0x6a }}

class NS_NO_VTABLE IAdditionsStateChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IADDITIONSSTATECHANGEDEVENT_IID)

  /* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IADDITIONSSTATECHANGEDEVENT \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IADDITIONSSTATECHANGEDEVENT(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return _to GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IADDITIONSSTATECHANGEDEVENT(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IAdditionsStateChangedEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IADDITIONSSTATECHANGEDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IAdditionsStateChangedEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
NS_IMETHODIMP _MYCLASS_::GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    INetworkAdapterChangedEvent */
#define INETWORKADAPTERCHANGEDEVENT_IID_STR "08889892-1ec6-4883-801d-77f56cfd0103"

#define INETWORKADAPTERCHANGEDEVENT_IID \
  {0x08889892, 0x1ec6, 0x4883, \
    { 0x80, 0x1d, 0x77, 0xf5, 0x6c, 0xfd, 0x01, 0x03 }}

class NS_NO_VTABLE INetworkAdapterChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(INETWORKADAPTERCHANGEDEVENT_IID)

  /* readonly attribute INetworkAdapter networkAdapter; */
  NS_IMETHOD GetNetworkAdapter(INetworkAdapter * *aNetworkAdapter) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_INETWORKADAPTERCHANGEDEVENT \
  NS_IMETHOD GetNetworkAdapter(INetworkAdapter * *aNetworkAdapter); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_INETWORKADAPTERCHANGEDEVENT(_to) \
  NS_IMETHOD GetNetworkAdapter(INetworkAdapter * *aNetworkAdapter) { return _to GetNetworkAdapter(aNetworkAdapter); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_INETWORKADAPTERCHANGEDEVENT(_to) \
  NS_IMETHOD GetNetworkAdapter(INetworkAdapter * *aNetworkAdapter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNetworkAdapter(aNetworkAdapter); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public INetworkAdapterChangedEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_INETWORKADAPTERCHANGEDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, INetworkAdapterChangedEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute INetworkAdapter networkAdapter; */
NS_IMETHODIMP _MYCLASS_::GetNetworkAdapter(INetworkAdapter * *aNetworkAdapter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    ISerialPortChangedEvent */
#define ISERIALPORTCHANGEDEVENT_IID_STR "3ba329dc-659c-488b-835c-4eca7ae71c6c"

#define ISERIALPORTCHANGEDEVENT_IID \
  {0x3ba329dc, 0x659c, 0x488b, \
    { 0x83, 0x5c, 0x4e, 0xca, 0x7a, 0xe7, 0x1c, 0x6c }}

class NS_NO_VTABLE ISerialPortChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ISERIALPORTCHANGEDEVENT_IID)

  /* readonly attribute ISerialPort serialPort; */
  NS_IMETHOD GetSerialPort(ISerialPort * *aSerialPort) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ISERIALPORTCHANGEDEVENT \
  NS_IMETHOD GetSerialPort(ISerialPort * *aSerialPort); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ISERIALPORTCHANGEDEVENT(_to) \
  NS_IMETHOD GetSerialPort(ISerialPort * *aSerialPort) { return _to GetSerialPort(aSerialPort); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ISERIALPORTCHANGEDEVENT(_to) \
  NS_IMETHOD GetSerialPort(ISerialPort * *aSerialPort) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSerialPort(aSerialPort); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public ISerialPortChangedEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_ISERIALPORTCHANGEDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, ISerialPortChangedEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute ISerialPort serialPort; */
NS_IMETHODIMP _MYCLASS_::GetSerialPort(ISerialPort * *aSerialPort)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IParallelPortChangedEvent */
#define IPARALLELPORTCHANGEDEVENT_IID_STR "813c99fc-9849-4f47-813e-24a75dc85615"

#define IPARALLELPORTCHANGEDEVENT_IID \
  {0x813c99fc, 0x9849, 0x4f47, \
    { 0x81, 0x3e, 0x24, 0xa7, 0x5d, 0xc8, 0x56, 0x15 }}

class NS_NO_VTABLE IParallelPortChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IPARALLELPORTCHANGEDEVENT_IID)

  /* readonly attribute IParallelPort parallelPort; */
  NS_IMETHOD GetParallelPort(IParallelPort * *aParallelPort) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IPARALLELPORTCHANGEDEVENT \
  NS_IMETHOD GetParallelPort(IParallelPort * *aParallelPort); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IPARALLELPORTCHANGEDEVENT(_to) \
  NS_IMETHOD GetParallelPort(IParallelPort * *aParallelPort) { return _to GetParallelPort(aParallelPort); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IPARALLELPORTCHANGEDEVENT(_to) \
  NS_IMETHOD GetParallelPort(IParallelPort * *aParallelPort) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetParallelPort(aParallelPort); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IParallelPortChangedEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IPARALLELPORTCHANGEDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IParallelPortChangedEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute IParallelPort parallelPort; */
NS_IMETHODIMP _MYCLASS_::GetParallelPort(IParallelPort * *aParallelPort)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IStorageControllerChangedEvent */
#define ISTORAGECONTROLLERCHANGEDEVENT_IID_STR "715212bf-da59-426e-8230-3831faa52c56"

#define ISTORAGECONTROLLERCHANGEDEVENT_IID \
  {0x715212bf, 0xda59, 0x426e, \
    { 0x82, 0x30, 0x38, 0x31, 0xfa, 0xa5, 0x2c, 0x56 }}

class NS_NO_VTABLE IStorageControllerChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ISTORAGECONTROLLERCHANGEDEVENT_IID)

  /* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ISTORAGECONTROLLERCHANGEDEVENT \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ISTORAGECONTROLLERCHANGEDEVENT(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return _to GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ISTORAGECONTROLLERCHANGEDEVENT(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IStorageControllerChangedEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_ISTORAGECONTROLLERCHANGEDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IStorageControllerChangedEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
NS_IMETHODIMP _MYCLASS_::GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#define COM_FORWARD_IStorageControllerChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO(smth) NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces (PRBool * aMidlDoesNotLikeEmptyInterfaces) { return smth GetMidlDoesNotLikeEmptyInterfaces (aMidlDoesNotLikeEmptyInterfaces); }
#define COM_FORWARD_IStorageControllerChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_OBJ(obj) COM_FORWARD_IStorageControllerChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO ((obj)->)
#define COM_FORWARD_IStorageControllerChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_BASE(base) COM_FORWARD_IStorageControllerChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_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;

/* starting interface:    IMediumChangedEvent */
#define IMEDIUMCHANGEDEVENT_IID_STR "0fe2da40-5637-472a-9736-72019eabd7de"

#define IMEDIUMCHANGEDEVENT_IID \
  {0x0fe2da40, 0x5637, 0x472a, \
    { 0x97, 0x36, 0x72, 0x01, 0x9e, 0xab, 0xd7, 0xde }}

class NS_NO_VTABLE IMediumChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IMEDIUMCHANGEDEVENT_IID)

  /* readonly attribute IMediumAttachment mediumAttachment; */
  NS_IMETHOD GetMediumAttachment(IMediumAttachment * *aMediumAttachment) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IMEDIUMCHANGEDEVENT \
  NS_IMETHOD GetMediumAttachment(IMediumAttachment * *aMediumAttachment); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IMEDIUMCHANGEDEVENT(_to) \
  NS_IMETHOD GetMediumAttachment(IMediumAttachment * *aMediumAttachment) { return _to GetMediumAttachment(aMediumAttachment); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IMEDIUMCHANGEDEVENT(_to) \
  NS_IMETHOD GetMediumAttachment(IMediumAttachment * *aMediumAttachment) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMediumAttachment(aMediumAttachment); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IMediumChangedEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IMEDIUMCHANGEDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IMediumChangedEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute IMediumAttachment mediumAttachment; */
NS_IMETHODIMP _MYCLASS_::GetMediumAttachment(IMediumAttachment * *aMediumAttachment)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IClipboardModeChangedEvent */
#define ICLIPBOARDMODECHANGEDEVENT_IID_STR "cac21692-7997-4595-a731-3a509db604e5"

#define ICLIPBOARDMODECHANGEDEVENT_IID \
  {0xcac21692, 0x7997, 0x4595, \
    { 0xa7, 0x31, 0x3a, 0x50, 0x9d, 0xb6, 0x04, 0xe5 }}

class NS_NO_VTABLE IClipboardModeChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ICLIPBOARDMODECHANGEDEVENT_IID)

  /* readonly attribute PRUint32 clipboardMode; */
  NS_IMETHOD GetClipboardMode(PRUint32 *aClipboardMode) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ICLIPBOARDMODECHANGEDEVENT \
  NS_IMETHOD GetClipboardMode(PRUint32 *aClipboardMode); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ICLIPBOARDMODECHANGEDEVENT(_to) \
  NS_IMETHOD GetClipboardMode(PRUint32 *aClipboardMode) { return _to GetClipboardMode(aClipboardMode); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ICLIPBOARDMODECHANGEDEVENT(_to) \
  NS_IMETHOD GetClipboardMode(PRUint32 *aClipboardMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetClipboardMode(aClipboardMode); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IClipboardModeChangedEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_ICLIPBOARDMODECHANGEDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IClipboardModeChangedEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute PRUint32 clipboardMode; */
NS_IMETHODIMP _MYCLASS_::GetClipboardMode(PRUint32 *aClipboardMode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IDnDModeChangedEvent */
#define IDNDMODECHANGEDEVENT_IID_STR "b55cf856-1f8b-4692-abb4-462429fae5e9"

#define IDNDMODECHANGEDEVENT_IID \
  {0xb55cf856, 0x1f8b, 0x4692, \
    { 0xab, 0xb4, 0x46, 0x24, 0x29, 0xfa, 0xe5, 0xe9 }}

class NS_NO_VTABLE IDnDModeChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IDNDMODECHANGEDEVENT_IID)

  /* readonly attribute PRUint32 dndMode; */
  NS_IMETHOD GetDndMode(PRUint32 *aDndMode) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IDNDMODECHANGEDEVENT \
  NS_IMETHOD GetDndMode(PRUint32 *aDndMode); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IDNDMODECHANGEDEVENT(_to) \
  NS_IMETHOD GetDndMode(PRUint32 *aDndMode) { return _to GetDndMode(aDndMode); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IDNDMODECHANGEDEVENT(_to) \
  NS_IMETHOD GetDndMode(PRUint32 *aDndMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDndMode(aDndMode); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IDnDModeChangedEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IDNDMODECHANGEDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IDnDModeChangedEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute PRUint32 dndMode; */
NS_IMETHODIMP _MYCLASS_::GetDndMode(PRUint32 *aDndMode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    ICPUChangedEvent */
#define ICPUCHANGEDEVENT_IID_STR "4da2dec7-71b2-4817-9a64-4ed12c17388e"

#define ICPUCHANGEDEVENT_IID \
  {0x4da2dec7, 0x71b2, 0x4817, \
    { 0x9a, 0x64, 0x4e, 0xd1, 0x2c, 0x17, 0x38, 0x8e }}

class NS_NO_VTABLE ICPUChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ICPUCHANGEDEVENT_IID)

  /* readonly attribute unsigned long CPU; */
  NS_IMETHOD GetCPU(PRUint32 *aCPU) = 0;

  /* readonly attribute boolean add; */
  NS_IMETHOD GetAdd(PRBool *aAdd) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ICPUCHANGEDEVENT \
  NS_IMETHOD GetCPU(PRUint32 *aCPU); \
  NS_IMETHOD GetAdd(PRBool *aAdd); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ICPUCHANGEDEVENT(_to) \
  NS_IMETHOD GetCPU(PRUint32 *aCPU) { return _to GetCPU(aCPU); } \
  NS_IMETHOD GetAdd(PRBool *aAdd) { return _to GetAdd(aAdd); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ICPUCHANGEDEVENT(_to) \
  NS_IMETHOD GetCPU(PRUint32 *aCPU) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCPU(aCPU); } \
  NS_IMETHOD GetAdd(PRBool *aAdd) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAdd(aAdd); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public ICPUChangedEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_ICPUCHANGEDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, ICPUChangedEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute unsigned long CPU; */
NS_IMETHODIMP _MYCLASS_::GetCPU(PRUint32 *aCPU)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean add; */
NS_IMETHODIMP _MYCLASS_::GetAdd(PRBool *aAdd)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    ICPUExecutionCapChangedEvent */
#define ICPUEXECUTIONCAPCHANGEDEVENT_IID_STR "dfa7e4f5-b4a4-44ce-85a8-127ac5eb59dc"

#define ICPUEXECUTIONCAPCHANGEDEVENT_IID \
  {0xdfa7e4f5, 0xb4a4, 0x44ce, \
    { 0x85, 0xa8, 0x12, 0x7a, 0xc5, 0xeb, 0x59, 0xdc }}

class NS_NO_VTABLE ICPUExecutionCapChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ICPUEXECUTIONCAPCHANGEDEVENT_IID)

  /* readonly attribute unsigned long executionCap; */
  NS_IMETHOD GetExecutionCap(PRUint32 *aExecutionCap) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ICPUEXECUTIONCAPCHANGEDEVENT \
  NS_IMETHOD GetExecutionCap(PRUint32 *aExecutionCap); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ICPUEXECUTIONCAPCHANGEDEVENT(_to) \
  NS_IMETHOD GetExecutionCap(PRUint32 *aExecutionCap) { return _to GetExecutionCap(aExecutionCap); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ICPUEXECUTIONCAPCHANGEDEVENT(_to) \
  NS_IMETHOD GetExecutionCap(PRUint32 *aExecutionCap) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetExecutionCap(aExecutionCap); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public ICPUExecutionCapChangedEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_ICPUEXECUTIONCAPCHANGEDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, ICPUExecutionCapChangedEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute unsigned long executionCap; */
NS_IMETHODIMP _MYCLASS_::GetExecutionCap(PRUint32 *aExecutionCap)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IGuestKeyboardEvent */
#define IGUESTKEYBOARDEVENT_IID_STR "88394258-7006-40d4-b339-472ee3801844"

#define IGUESTKEYBOARDEVENT_IID \
  {0x88394258, 0x7006, 0x40d4, \
    { 0xb3, 0x39, 0x47, 0x2e, 0xe3, 0x80, 0x18, 0x44 }}

class NS_NO_VTABLE IGuestKeyboardEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTKEYBOARDEVENT_IID)

  /* void getScancodes (out unsigned long scancodesSize, [array, size_is (scancodesSize), retval] out long scancodes); */
  NS_IMETHOD GetScancodes(PRUint32 *scancodesSize, PRInt32 **scancodes) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTKEYBOARDEVENT \
  NS_IMETHOD GetScancodes(PRUint32 *scancodesSize, PRInt32 **scancodes); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTKEYBOARDEVENT(_to) \
  NS_IMETHOD GetScancodes(PRUint32 *scancodesSize, PRInt32 **scancodes) { return _to GetScancodes(scancodesSize, scancodes); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGUESTKEYBOARDEVENT(_to) \
  NS_IMETHOD GetScancodes(PRUint32 *scancodesSize, PRInt32 **scancodes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetScancodes(scancodesSize, scancodes); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IGuestKeyboardEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IGUESTKEYBOARDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IGuestKeyboardEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* void getScancodes (out unsigned long scancodesSize, [array, size_is (scancodesSize), retval] out long scancodes); */
NS_IMETHODIMP _MYCLASS_::GetScancodes(PRUint32 *scancodesSize, PRInt32 **scancodes)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IGuestMouseEvent */
#define IGUESTMOUSEEVENT_IID_STR "179f8647-319c-4e7e-8150-c5837bd265f6"

#define IGUESTMOUSEEVENT_IID \
  {0x179f8647, 0x319c, 0x4e7e, \
    { 0x81, 0x50, 0xc5, 0x83, 0x7b, 0xd2, 0x65, 0xf6 }}

class NS_NO_VTABLE IGuestMouseEvent : public IReusableEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTMOUSEEVENT_IID)

  /* readonly attribute PRUint32 mode; */
  NS_IMETHOD GetMode(PRUint32 *aMode) = 0;

  /* readonly attribute long x; */
  NS_IMETHOD GetX(PRInt32 *aX) = 0;

  /* readonly attribute long y; */
  NS_IMETHOD GetY(PRInt32 *aY) = 0;

  /* readonly attribute long z; */
  NS_IMETHOD GetZ(PRInt32 *aZ) = 0;

  /* readonly attribute long w; */
  NS_IMETHOD GetW(PRInt32 *aW) = 0;

  /* readonly attribute long buttons; */
  NS_IMETHOD GetButtons(PRInt32 *aButtons) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTMOUSEEVENT \
  NS_IMETHOD GetMode(PRUint32 *aMode); \
  NS_IMETHOD GetX(PRInt32 *aX); \
  NS_IMETHOD GetY(PRInt32 *aY); \
  NS_IMETHOD GetZ(PRInt32 *aZ); \
  NS_IMETHOD GetW(PRInt32 *aW); \
  NS_IMETHOD GetButtons(PRInt32 *aButtons); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTMOUSEEVENT(_to) \
  NS_IMETHOD GetMode(PRUint32 *aMode) { return _to GetMode(aMode); } \
  NS_IMETHOD GetX(PRInt32 *aX) { return _to GetX(aX); } \
  NS_IMETHOD GetY(PRInt32 *aY) { return _to GetY(aY); } \
  NS_IMETHOD GetZ(PRInt32 *aZ) { return _to GetZ(aZ); } \
  NS_IMETHOD GetW(PRInt32 *aW) { return _to GetW(aW); } \
  NS_IMETHOD GetButtons(PRInt32 *aButtons) { return _to GetButtons(aButtons); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGUESTMOUSEEVENT(_to) \
  NS_IMETHOD GetMode(PRUint32 *aMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMode(aMode); } \
  NS_IMETHOD GetX(PRInt32 *aX) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetX(aX); } \
  NS_IMETHOD GetY(PRInt32 *aY) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetY(aY); } \
  NS_IMETHOD GetZ(PRInt32 *aZ) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetZ(aZ); } \
  NS_IMETHOD GetW(PRInt32 *aW) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetW(aW); } \
  NS_IMETHOD GetButtons(PRInt32 *aButtons) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetButtons(aButtons); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IGuestMouseEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IGUESTMOUSEEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IGuestMouseEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute PRUint32 mode; */
NS_IMETHODIMP _MYCLASS_::GetMode(PRUint32 *aMode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long x; */
NS_IMETHODIMP _MYCLASS_::GetX(PRInt32 *aX)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long y; */
NS_IMETHODIMP _MYCLASS_::GetY(PRInt32 *aY)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long z; */
NS_IMETHODIMP _MYCLASS_::GetZ(PRInt32 *aZ)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long w; */
NS_IMETHODIMP _MYCLASS_::GetW(PRInt32 *aW)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long buttons; */
NS_IMETHODIMP _MYCLASS_::GetButtons(PRInt32 *aButtons)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IGuestMultiTouchEvent */
#define IGUESTMULTITOUCHEVENT_IID_STR "be8a0eb5-f4f4-4dd0-9d30-c89b873247ec"

#define IGUESTMULTITOUCHEVENT_IID \
  {0xbe8a0eb5, 0xf4f4, 0x4dd0, \
    { 0x9d, 0x30, 0xc8, 0x9b, 0x87, 0x32, 0x47, 0xec }}

class NS_NO_VTABLE IGuestMultiTouchEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTMULTITOUCHEVENT_IID)

  /* readonly attribute long contactCount; */
  NS_IMETHOD GetContactCount(PRInt32 *aContactCount) = 0;

  /* void getXPositions (out unsigned long xPositionsSize, [array, size_is (xPositionsSize), retval] out short xPositions); */
  NS_IMETHOD GetXPositions(PRUint32 *xPositionsSize, PRInt16 **xPositions) = 0;

  /* void getYPositions (out unsigned long yPositionsSize, [array, size_is (yPositionsSize), retval] out short yPositions); */
  NS_IMETHOD GetYPositions(PRUint32 *yPositionsSize, PRInt16 **yPositions) = 0;

  /* void getContactIds (out unsigned long contactIdsSize, [array, size_is (contactIdsSize), retval] out unsigned short contactIds); */
  NS_IMETHOD GetContactIds(PRUint32 *contactIdsSize, PRUint16 **contactIds) = 0;

  /* void getContactFlags (out unsigned long contactFlagsSize, [array, size_is (contactFlagsSize), retval] out unsigned short contactFlags); */
  NS_IMETHOD GetContactFlags(PRUint32 *contactFlagsSize, PRUint16 **contactFlags) = 0;

  /* readonly attribute unsigned long scanTime; */
  NS_IMETHOD GetScanTime(PRUint32 *aScanTime) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTMULTITOUCHEVENT \
  NS_IMETHOD GetContactCount(PRInt32 *aContactCount); \
  NS_IMETHOD GetXPositions(PRUint32 *xPositionsSize, PRInt16 **xPositions); \
  NS_IMETHOD GetYPositions(PRUint32 *yPositionsSize, PRInt16 **yPositions); \
  NS_IMETHOD GetContactIds(PRUint32 *contactIdsSize, PRUint16 **contactIds); \
  NS_IMETHOD GetContactFlags(PRUint32 *contactFlagsSize, PRUint16 **contactFlags); \
  NS_IMETHOD GetScanTime(PRUint32 *aScanTime); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTMULTITOUCHEVENT(_to) \
  NS_IMETHOD GetContactCount(PRInt32 *aContactCount) { return _to GetContactCount(aContactCount); } \
  NS_IMETHOD GetXPositions(PRUint32 *xPositionsSize, PRInt16 **xPositions) { return _to GetXPositions(xPositionsSize, xPositions); } \
  NS_IMETHOD GetYPositions(PRUint32 *yPositionsSize, PRInt16 **yPositions) { return _to GetYPositions(yPositionsSize, yPositions); } \
  NS_IMETHOD GetContactIds(PRUint32 *contactIdsSize, PRUint16 **contactIds) { return _to GetContactIds(contactIdsSize, contactIds); } \
  NS_IMETHOD GetContactFlags(PRUint32 *contactFlagsSize, PRUint16 **contactFlags) { return _to GetContactFlags(contactFlagsSize, contactFlags); } \
  NS_IMETHOD GetScanTime(PRUint32 *aScanTime) { return _to GetScanTime(aScanTime); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGUESTMULTITOUCHEVENT(_to) \
  NS_IMETHOD GetContactCount(PRInt32 *aContactCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetContactCount(aContactCount); } \
  NS_IMETHOD GetXPositions(PRUint32 *xPositionsSize, PRInt16 **xPositions) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetXPositions(xPositionsSize, xPositions); } \
  NS_IMETHOD GetYPositions(PRUint32 *yPositionsSize, PRInt16 **yPositions) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetYPositions(yPositionsSize, yPositions); } \
  NS_IMETHOD GetContactIds(PRUint32 *contactIdsSize, PRUint16 **contactIds) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetContactIds(contactIdsSize, contactIds); } \
  NS_IMETHOD GetContactFlags(PRUint32 *contactFlagsSize, PRUint16 **contactFlags) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetContactFlags(contactFlagsSize, contactFlags); } \
  NS_IMETHOD GetScanTime(PRUint32 *aScanTime) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetScanTime(aScanTime); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IGuestMultiTouchEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IGUESTMULTITOUCHEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IGuestMultiTouchEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute long contactCount; */
NS_IMETHODIMP _MYCLASS_::GetContactCount(PRInt32 *aContactCount)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getXPositions (out unsigned long xPositionsSize, [array, size_is (xPositionsSize), retval] out short xPositions); */
NS_IMETHODIMP _MYCLASS_::GetXPositions(PRUint32 *xPositionsSize, PRInt16 **xPositions)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getYPositions (out unsigned long yPositionsSize, [array, size_is (yPositionsSize), retval] out short yPositions); */
NS_IMETHODIMP _MYCLASS_::GetYPositions(PRUint32 *yPositionsSize, PRInt16 **yPositions)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getContactIds (out unsigned long contactIdsSize, [array, size_is (contactIdsSize), retval] out unsigned short contactIds); */
NS_IMETHODIMP _MYCLASS_::GetContactIds(PRUint32 *contactIdsSize, PRUint16 **contactIds)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getContactFlags (out unsigned long contactFlagsSize, [array, size_is (contactFlagsSize), retval] out unsigned short contactFlags); */
NS_IMETHODIMP _MYCLASS_::GetContactFlags(PRUint32 *contactFlagsSize, PRUint16 **contactFlags)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long scanTime; */
NS_IMETHODIMP _MYCLASS_::GetScanTime(PRUint32 *aScanTime)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IGuestSessionEvent */
#define IGUESTSESSIONEVENT_IID_STR "b9acd33f-647d-45ac-8fe9-f49b3183ba37"

#define IGUESTSESSIONEVENT_IID \
  {0xb9acd33f, 0x647d, 0x45ac, \
    { 0x8f, 0xe9, 0xf4, 0x9b, 0x31, 0x83, 0xba, 0x37 }}

class NS_NO_VTABLE IGuestSessionEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTSESSIONEVENT_IID)

  /* readonly attribute IGuestSession session; */
  NS_IMETHOD GetSession(IGuestSession * *aSession) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTSESSIONEVENT \
  NS_IMETHOD GetSession(IGuestSession * *aSession); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTSESSIONEVENT(_to) \
  NS_IMETHOD GetSession(IGuestSession * *aSession) { return _to GetSession(aSession); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGUESTSESSIONEVENT(_to) \
  NS_IMETHOD GetSession(IGuestSession * *aSession) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSession(aSession); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IGuestSessionEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IGUESTSESSIONEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IGuestSessionEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute IGuestSession session; */
NS_IMETHODIMP _MYCLASS_::GetSession(IGuestSession * *aSession)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IGuestSessionStateChangedEvent */
#define IGUESTSESSIONSTATECHANGEDEVENT_IID_STR "327e3c00-ee61-462f-aed3-0dff6cbf9904"

#define IGUESTSESSIONSTATECHANGEDEVENT_IID \
  {0x327e3c00, 0xee61, 0x462f, \
    { 0xae, 0xd3, 0x0d, 0xff, 0x6c, 0xbf, 0x99, 0x04 }}

class NS_NO_VTABLE IGuestSessionStateChangedEvent : public IGuestSessionEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTSESSIONSTATECHANGEDEVENT_IID)

  /* readonly attribute unsigned long id; */
  NS_IMETHOD GetId(PRUint32 *aId) = 0;

  /* readonly attribute PRUint32 status; */
  NS_IMETHOD GetStatus(PRUint32 *aStatus) = 0;

  /* readonly attribute IVirtualBoxErrorInfo error; */
  NS_IMETHOD GetError(IVirtualBoxErrorInfo * *aError) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTSESSIONSTATECHANGEDEVENT \
  NS_IMETHOD GetId(PRUint32 *aId); \
  NS_IMETHOD GetStatus(PRUint32 *aStatus); \
  NS_IMETHOD GetError(IVirtualBoxErrorInfo * *aError); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTSESSIONSTATECHANGEDEVENT(_to) \
  NS_IMETHOD GetId(PRUint32 *aId) { return _to GetId(aId); } \
  NS_IMETHOD GetStatus(PRUint32 *aStatus) { return _to GetStatus(aStatus); } \
  NS_IMETHOD GetError(IVirtualBoxErrorInfo * *aError) { return _to GetError(aError); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGUESTSESSIONSTATECHANGEDEVENT(_to) \
  NS_IMETHOD GetId(PRUint32 *aId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetId(aId); } \
  NS_IMETHOD GetStatus(PRUint32 *aStatus) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStatus(aStatus); } \
  NS_IMETHOD GetError(IVirtualBoxErrorInfo * *aError) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetError(aError); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IGuestSessionStateChangedEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IGUESTSESSIONSTATECHANGEDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IGuestSessionStateChangedEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute unsigned long id; */
NS_IMETHODIMP _MYCLASS_::GetId(PRUint32 *aId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 status; */
NS_IMETHODIMP _MYCLASS_::GetStatus(PRUint32 *aStatus)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IVirtualBoxErrorInfo error; */
NS_IMETHODIMP _MYCLASS_::GetError(IVirtualBoxErrorInfo * *aError)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IGuestSessionRegisteredEvent */
#define IGUESTSESSIONREGISTEREDEVENT_IID_STR "b79de686-eabd-4fa6-960a-f1756c99ea1c"

#define IGUESTSESSIONREGISTEREDEVENT_IID \
  {0xb79de686, 0xeabd, 0x4fa6, \
    { 0x96, 0x0a, 0xf1, 0x75, 0x6c, 0x99, 0xea, 0x1c }}

class NS_NO_VTABLE IGuestSessionRegisteredEvent : public IGuestSessionEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTSESSIONREGISTEREDEVENT_IID)

  /* readonly attribute boolean registered; */
  NS_IMETHOD GetRegistered(PRBool *aRegistered) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTSESSIONREGISTEREDEVENT \
  NS_IMETHOD GetRegistered(PRBool *aRegistered); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTSESSIONREGISTEREDEVENT(_to) \
  NS_IMETHOD GetRegistered(PRBool *aRegistered) { return _to GetRegistered(aRegistered); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGUESTSESSIONREGISTEREDEVENT(_to) \
  NS_IMETHOD GetRegistered(PRBool *aRegistered) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRegistered(aRegistered); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IGuestSessionRegisteredEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IGUESTSESSIONREGISTEREDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IGuestSessionRegisteredEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean registered; */
NS_IMETHODIMP _MYCLASS_::GetRegistered(PRBool *aRegistered)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IGuestProcessEvent */
#define IGUESTPROCESSEVENT_IID_STR "2405f0e5-6588-40a3-9b0a-68c05ba52c4b"

#define IGUESTPROCESSEVENT_IID \
  {0x2405f0e5, 0x6588, 0x40a3, \
    { 0x9b, 0x0a, 0x68, 0xc0, 0x5b, 0xa5, 0x2c, 0x4b }}

class NS_NO_VTABLE IGuestProcessEvent : public IGuestSessionEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTPROCESSEVENT_IID)

  /* readonly attribute IGuestProcess process; */
  NS_IMETHOD GetProcess(IGuestProcess * *aProcess) = 0;

  /* readonly attribute unsigned long pid; */
  NS_IMETHOD GetPid(PRUint32 *aPid) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTPROCESSEVENT \
  NS_IMETHOD GetProcess(IGuestProcess * *aProcess); \
  NS_IMETHOD GetPid(PRUint32 *aPid); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTPROCESSEVENT(_to) \
  NS_IMETHOD GetProcess(IGuestProcess * *aProcess) { return _to GetProcess(aProcess); } \
  NS_IMETHOD GetPid(PRUint32 *aPid) { return _to GetPid(aPid); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGUESTPROCESSEVENT(_to) \
  NS_IMETHOD GetProcess(IGuestProcess * *aProcess) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProcess(aProcess); } \
  NS_IMETHOD GetPid(PRUint32 *aPid) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPid(aPid); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IGuestProcessEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IGUESTPROCESSEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IGuestProcessEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute IGuestProcess process; */
NS_IMETHODIMP _MYCLASS_::GetProcess(IGuestProcess * *aProcess)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long pid; */
NS_IMETHODIMP _MYCLASS_::GetPid(PRUint32 *aPid)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IGuestProcessRegisteredEvent */
#define IGUESTPROCESSREGISTEREDEVENT_IID_STR "1d89e2b3-c6ea-45b6-9d43-dc6f70cc9f02"

#define IGUESTPROCESSREGISTEREDEVENT_IID \
  {0x1d89e2b3, 0xc6ea, 0x45b6, \
    { 0x9d, 0x43, 0xdc, 0x6f, 0x70, 0xcc, 0x9f, 0x02 }}

class NS_NO_VTABLE IGuestProcessRegisteredEvent : public IGuestProcessEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTPROCESSREGISTEREDEVENT_IID)

  /* readonly attribute boolean registered; */
  NS_IMETHOD GetRegistered(PRBool *aRegistered) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTPROCESSREGISTEREDEVENT \
  NS_IMETHOD GetRegistered(PRBool *aRegistered); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTPROCESSREGISTEREDEVENT(_to) \
  NS_IMETHOD GetRegistered(PRBool *aRegistered) { return _to GetRegistered(aRegistered); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGUESTPROCESSREGISTEREDEVENT(_to) \
  NS_IMETHOD GetRegistered(PRBool *aRegistered) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRegistered(aRegistered); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IGuestProcessRegisteredEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IGUESTPROCESSREGISTEREDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IGuestProcessRegisteredEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean registered; */
NS_IMETHODIMP _MYCLASS_::GetRegistered(PRBool *aRegistered)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IGuestProcessStateChangedEvent */
#define IGUESTPROCESSSTATECHANGEDEVENT_IID_STR "c365fb7b-4430-499f-92c8-8bed814a567a"

#define IGUESTPROCESSSTATECHANGEDEVENT_IID \
  {0xc365fb7b, 0x4430, 0x499f, \
    { 0x92, 0xc8, 0x8b, 0xed, 0x81, 0x4a, 0x56, 0x7a }}

class NS_NO_VTABLE IGuestProcessStateChangedEvent : public IGuestProcessEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTPROCESSSTATECHANGEDEVENT_IID)

  /* readonly attribute PRUint32 status; */
  NS_IMETHOD GetStatus(PRUint32 *aStatus) = 0;

  /* readonly attribute IVirtualBoxErrorInfo error; */
  NS_IMETHOD GetError(IVirtualBoxErrorInfo * *aError) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTPROCESSSTATECHANGEDEVENT \
  NS_IMETHOD GetStatus(PRUint32 *aStatus); \
  NS_IMETHOD GetError(IVirtualBoxErrorInfo * *aError); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTPROCESSSTATECHANGEDEVENT(_to) \
  NS_IMETHOD GetStatus(PRUint32 *aStatus) { return _to GetStatus(aStatus); } \
  NS_IMETHOD GetError(IVirtualBoxErrorInfo * *aError) { return _to GetError(aError); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGUESTPROCESSSTATECHANGEDEVENT(_to) \
  NS_IMETHOD GetStatus(PRUint32 *aStatus) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStatus(aStatus); } \
  NS_IMETHOD GetError(IVirtualBoxErrorInfo * *aError) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetError(aError); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IGuestProcessStateChangedEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IGUESTPROCESSSTATECHANGEDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IGuestProcessStateChangedEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute PRUint32 status; */
NS_IMETHODIMP _MYCLASS_::GetStatus(PRUint32 *aStatus)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IVirtualBoxErrorInfo error; */
NS_IMETHODIMP _MYCLASS_::GetError(IVirtualBoxErrorInfo * *aError)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IGuestProcessIOEvent */
#define IGUESTPROCESSIOEVENT_IID_STR "9ea9227c-e9bb-49b3-bfc7-c5171e93ef38"

#define IGUESTPROCESSIOEVENT_IID \
  {0x9ea9227c, 0xe9bb, 0x49b3, \
    { 0xbf, 0xc7, 0xc5, 0x17, 0x1e, 0x93, 0xef, 0x38 }}

class NS_NO_VTABLE IGuestProcessIOEvent : public IGuestProcessEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTPROCESSIOEVENT_IID)

  /* readonly attribute unsigned long handle; */
  NS_IMETHOD GetHandle(PRUint32 *aHandle) = 0;

  /* readonly attribute unsigned long processed; */
  NS_IMETHOD GetProcessed(PRUint32 *aProcessed) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTPROCESSIOEVENT \
  NS_IMETHOD GetHandle(PRUint32 *aHandle); \
  NS_IMETHOD GetProcessed(PRUint32 *aProcessed); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTPROCESSIOEVENT(_to) \
  NS_IMETHOD GetHandle(PRUint32 *aHandle) { return _to GetHandle(aHandle); } \
  NS_IMETHOD GetProcessed(PRUint32 *aProcessed) { return _to GetProcessed(aProcessed); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGUESTPROCESSIOEVENT(_to) \
  NS_IMETHOD GetHandle(PRUint32 *aHandle) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHandle(aHandle); } \
  NS_IMETHOD GetProcessed(PRUint32 *aProcessed) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProcessed(aProcessed); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IGuestProcessIOEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IGUESTPROCESSIOEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IGuestProcessIOEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute unsigned long handle; */
NS_IMETHODIMP _MYCLASS_::GetHandle(PRUint32 *aHandle)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long processed; */
NS_IMETHODIMP _MYCLASS_::GetProcessed(PRUint32 *aProcessed)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IGuestProcessInputNotifyEvent */
#define IGUESTPROCESSINPUTNOTIFYEVENT_IID_STR "0de887f2-b7db-4616-aac6-cfb94d89ba78"

#define IGUESTPROCESSINPUTNOTIFYEVENT_IID \
  {0x0de887f2, 0xb7db, 0x4616, \
    { 0xaa, 0xc6, 0xcf, 0xb9, 0x4d, 0x89, 0xba, 0x78 }}

class NS_NO_VTABLE IGuestProcessInputNotifyEvent : public IGuestProcessIOEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTPROCESSINPUTNOTIFYEVENT_IID)

  /* readonly attribute PRUint32 status; */
  NS_IMETHOD GetStatus(PRUint32 *aStatus) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTPROCESSINPUTNOTIFYEVENT \
  NS_IMETHOD GetStatus(PRUint32 *aStatus); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTPROCESSINPUTNOTIFYEVENT(_to) \
  NS_IMETHOD GetStatus(PRUint32 *aStatus) { return _to GetStatus(aStatus); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGUESTPROCESSINPUTNOTIFYEVENT(_to) \
  NS_IMETHOD GetStatus(PRUint32 *aStatus) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStatus(aStatus); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IGuestProcessInputNotifyEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IGUESTPROCESSINPUTNOTIFYEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IGuestProcessInputNotifyEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute PRUint32 status; */
NS_IMETHODIMP _MYCLASS_::GetStatus(PRUint32 *aStatus)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IGuestProcessOutputEvent */
#define IGUESTPROCESSOUTPUTEVENT_IID_STR "d3d5f1ee-bcb2-4905-a7ab-cc85448a742b"

#define IGUESTPROCESSOUTPUTEVENT_IID \
  {0xd3d5f1ee, 0xbcb2, 0x4905, \
    { 0xa7, 0xab, 0xcc, 0x85, 0x44, 0x8a, 0x74, 0x2b }}

class NS_NO_VTABLE IGuestProcessOutputEvent : public IGuestProcessIOEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTPROCESSOUTPUTEVENT_IID)

  /* void getData (out unsigned long dataSize, [array, size_is (dataSize), retval] out octet data); */
  NS_IMETHOD GetData(PRUint32 *dataSize, PRUint8 **data) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTPROCESSOUTPUTEVENT \
  NS_IMETHOD GetData(PRUint32 *dataSize, PRUint8 **data); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTPROCESSOUTPUTEVENT(_to) \
  NS_IMETHOD GetData(PRUint32 *dataSize, PRUint8 **data) { return _to GetData(dataSize, data); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGUESTPROCESSOUTPUTEVENT(_to) \
  NS_IMETHOD GetData(PRUint32 *dataSize, PRUint8 **data) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetData(dataSize, data); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IGuestProcessOutputEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IGUESTPROCESSOUTPUTEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IGuestProcessOutputEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* void getData (out unsigned long dataSize, [array, size_is (dataSize), retval] out octet data); */
NS_IMETHODIMP _MYCLASS_::GetData(PRUint32 *dataSize, PRUint8 **data)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IGuestFileEvent */
#define IGUESTFILEEVENT_IID_STR "c8adb7b0-057d-4391-b928-f14b06b710c5"

#define IGUESTFILEEVENT_IID \
  {0xc8adb7b0, 0x057d, 0x4391, \
    { 0xb9, 0x28, 0xf1, 0x4b, 0x06, 0xb7, 0x10, 0xc5 }}

class NS_NO_VTABLE IGuestFileEvent : public IGuestSessionEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTFILEEVENT_IID)

  /* readonly attribute IGuestFile file; */
  NS_IMETHOD GetFile(IGuestFile * *aFile) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTFILEEVENT \
  NS_IMETHOD GetFile(IGuestFile * *aFile); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTFILEEVENT(_to) \
  NS_IMETHOD GetFile(IGuestFile * *aFile) { return _to GetFile(aFile); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGUESTFILEEVENT(_to) \
  NS_IMETHOD GetFile(IGuestFile * *aFile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFile(aFile); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IGuestFileEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IGUESTFILEEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IGuestFileEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute IGuestFile file; */
NS_IMETHODIMP _MYCLASS_::GetFile(IGuestFile * *aFile)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IGuestFileRegisteredEvent */
#define IGUESTFILEREGISTEREDEVENT_IID_STR "d0d93830-70a2-487e-895e-d3fc9679f7b3"

#define IGUESTFILEREGISTEREDEVENT_IID \
  {0xd0d93830, 0x70a2, 0x487e, \
    { 0x89, 0x5e, 0xd3, 0xfc, 0x96, 0x79, 0xf7, 0xb3 }}

class NS_NO_VTABLE IGuestFileRegisteredEvent : public IGuestFileEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTFILEREGISTEREDEVENT_IID)

  /* readonly attribute boolean registered; */
  NS_IMETHOD GetRegistered(PRBool *aRegistered) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTFILEREGISTEREDEVENT \
  NS_IMETHOD GetRegistered(PRBool *aRegistered); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTFILEREGISTEREDEVENT(_to) \
  NS_IMETHOD GetRegistered(PRBool *aRegistered) { return _to GetRegistered(aRegistered); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGUESTFILEREGISTEREDEVENT(_to) \
  NS_IMETHOD GetRegistered(PRBool *aRegistered) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRegistered(aRegistered); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IGuestFileRegisteredEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IGUESTFILEREGISTEREDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IGuestFileRegisteredEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean registered; */
NS_IMETHODIMP _MYCLASS_::GetRegistered(PRBool *aRegistered)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IGuestFileStateChangedEvent */
#define IGUESTFILESTATECHANGEDEVENT_IID_STR "d37fe88f-0979-486c-baa1-3abb144dc82d"

#define IGUESTFILESTATECHANGEDEVENT_IID \
  {0xd37fe88f, 0x0979, 0x486c, \
    { 0xba, 0xa1, 0x3a, 0xbb, 0x14, 0x4d, 0xc8, 0x2d }}

class NS_NO_VTABLE IGuestFileStateChangedEvent : public IGuestFileEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTFILESTATECHANGEDEVENT_IID)

  /* readonly attribute PRUint32 status; */
  NS_IMETHOD GetStatus(PRUint32 *aStatus) = 0;

  /* readonly attribute IVirtualBoxErrorInfo error; */
  NS_IMETHOD GetError(IVirtualBoxErrorInfo * *aError) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTFILESTATECHANGEDEVENT \
  NS_IMETHOD GetStatus(PRUint32 *aStatus); \
  NS_IMETHOD GetError(IVirtualBoxErrorInfo * *aError); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTFILESTATECHANGEDEVENT(_to) \
  NS_IMETHOD GetStatus(PRUint32 *aStatus) { return _to GetStatus(aStatus); } \
  NS_IMETHOD GetError(IVirtualBoxErrorInfo * *aError) { return _to GetError(aError); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGUESTFILESTATECHANGEDEVENT(_to) \
  NS_IMETHOD GetStatus(PRUint32 *aStatus) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStatus(aStatus); } \
  NS_IMETHOD GetError(IVirtualBoxErrorInfo * *aError) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetError(aError); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IGuestFileStateChangedEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IGUESTFILESTATECHANGEDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IGuestFileStateChangedEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute PRUint32 status; */
NS_IMETHODIMP _MYCLASS_::GetStatus(PRUint32 *aStatus)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IVirtualBoxErrorInfo error; */
NS_IMETHODIMP _MYCLASS_::GetError(IVirtualBoxErrorInfo * *aError)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IGuestFileIOEvent */
#define IGUESTFILEIOEVENT_IID_STR "b5191a7c-9536-4ef8-820e-3b0e17e5bbc8"

#define IGUESTFILEIOEVENT_IID \
  {0xb5191a7c, 0x9536, 0x4ef8, \
    { 0x82, 0x0e, 0x3b, 0x0e, 0x17, 0xe5, 0xbb, 0xc8 }}

class NS_NO_VTABLE IGuestFileIOEvent : public IGuestFileEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTFILEIOEVENT_IID)

  /* readonly attribute long long offset; */
  NS_IMETHOD GetOffset(PRInt64 *aOffset) = 0;

  /* readonly attribute unsigned long processed; */
  NS_IMETHOD GetProcessed(PRUint32 *aProcessed) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTFILEIOEVENT \
  NS_IMETHOD GetOffset(PRInt64 *aOffset); \
  NS_IMETHOD GetProcessed(PRUint32 *aProcessed); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTFILEIOEVENT(_to) \
  NS_IMETHOD GetOffset(PRInt64 *aOffset) { return _to GetOffset(aOffset); } \
  NS_IMETHOD GetProcessed(PRUint32 *aProcessed) { return _to GetProcessed(aProcessed); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGUESTFILEIOEVENT(_to) \
  NS_IMETHOD GetOffset(PRInt64 *aOffset) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOffset(aOffset); } \
  NS_IMETHOD GetProcessed(PRUint32 *aProcessed) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProcessed(aProcessed); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IGuestFileIOEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IGUESTFILEIOEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IGuestFileIOEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute long long offset; */
NS_IMETHODIMP _MYCLASS_::GetOffset(PRInt64 *aOffset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long processed; */
NS_IMETHODIMP _MYCLASS_::GetProcessed(PRUint32 *aProcessed)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IGuestFileOffsetChangedEvent */
#define IGUESTFILEOFFSETCHANGEDEVENT_IID_STR "e8f79a21-1207-4179-94cf-ca250036308f"

#define IGUESTFILEOFFSETCHANGEDEVENT_IID \
  {0xe8f79a21, 0x1207, 0x4179, \
    { 0x94, 0xcf, 0xca, 0x25, 0x00, 0x36, 0x30, 0x8f }}

class NS_NO_VTABLE IGuestFileOffsetChangedEvent : public IGuestFileIOEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTFILEOFFSETCHANGEDEVENT_IID)

  /* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTFILEOFFSETCHANGEDEVENT \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTFILEOFFSETCHANGEDEVENT(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return _to GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGUESTFILEOFFSETCHANGEDEVENT(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IGuestFileOffsetChangedEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IGUESTFILEOFFSETCHANGEDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IGuestFileOffsetChangedEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
NS_IMETHODIMP _MYCLASS_::GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IGuestFileReadEvent */
#define IGUESTFILEREADEVENT_IID_STR "4ee3cbcb-486f-40db-9150-deee3fd24189"

#define IGUESTFILEREADEVENT_IID \
  {0x4ee3cbcb, 0x486f, 0x40db, \
    { 0x91, 0x50, 0xde, 0xee, 0x3f, 0xd2, 0x41, 0x89 }}

class NS_NO_VTABLE IGuestFileReadEvent : public IGuestFileIOEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTFILEREADEVENT_IID)

  /* void getData (out unsigned long dataSize, [array, size_is (dataSize), retval] out octet data); */
  NS_IMETHOD GetData(PRUint32 *dataSize, PRUint8 **data) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTFILEREADEVENT \
  NS_IMETHOD GetData(PRUint32 *dataSize, PRUint8 **data); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTFILEREADEVENT(_to) \
  NS_IMETHOD GetData(PRUint32 *dataSize, PRUint8 **data) { return _to GetData(dataSize, data); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGUESTFILEREADEVENT(_to) \
  NS_IMETHOD GetData(PRUint32 *dataSize, PRUint8 **data) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetData(dataSize, data); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IGuestFileReadEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IGUESTFILEREADEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IGuestFileReadEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* void getData (out unsigned long dataSize, [array, size_is (dataSize), retval] out octet data); */
NS_IMETHODIMP _MYCLASS_::GetData(PRUint32 *dataSize, PRUint8 **data)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IGuestFileWriteEvent */
#define IGUESTFILEWRITEEVENT_IID_STR "e062a915-3cf5-4c0a-bc90-9b8d4cc94d89"

#define IGUESTFILEWRITEEVENT_IID \
  {0xe062a915, 0x3cf5, 0x4c0a, \
    { 0xbc, 0x90, 0x9b, 0x8d, 0x4c, 0xc9, 0x4d, 0x89 }}

class NS_NO_VTABLE IGuestFileWriteEvent : public IGuestFileIOEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTFILEWRITEEVENT_IID)

  /* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTFILEWRITEEVENT \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTFILEWRITEEVENT(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return _to GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGUESTFILEWRITEEVENT(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IGuestFileWriteEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IGUESTFILEWRITEEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IGuestFileWriteEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
NS_IMETHODIMP _MYCLASS_::GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IVRDEServerChangedEvent */
#define IVRDESERVERCHANGEDEVENT_IID_STR "a06fd66a-3188-4c8c-8756-1395e8cb691c"

#define IVRDESERVERCHANGEDEVENT_IID \
  {0xa06fd66a, 0x3188, 0x4c8c, \
    { 0x87, 0x56, 0x13, 0x95, 0xe8, 0xcb, 0x69, 0x1c }}

class NS_NO_VTABLE IVRDEServerChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IVRDESERVERCHANGEDEVENT_IID)

  /* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IVRDESERVERCHANGEDEVENT \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IVRDESERVERCHANGEDEVENT(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return _to GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IVRDESERVERCHANGEDEVENT(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IVRDEServerChangedEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IVRDESERVERCHANGEDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IVRDEServerChangedEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
NS_IMETHODIMP _MYCLASS_::GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IVRDEServerInfoChangedEvent */
#define IVRDESERVERINFOCHANGEDEVENT_IID_STR "dd6a1080-e1b7-4339-a549-f0878115596e"

#define IVRDESERVERINFOCHANGEDEVENT_IID \
  {0xdd6a1080, 0xe1b7, 0x4339, \
    { 0xa5, 0x49, 0xf0, 0x87, 0x81, 0x15, 0x59, 0x6e }}

class NS_NO_VTABLE IVRDEServerInfoChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IVRDESERVERINFOCHANGEDEVENT_IID)

  /* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IVRDESERVERINFOCHANGEDEVENT \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IVRDESERVERINFOCHANGEDEVENT(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return _to GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IVRDESERVERINFOCHANGEDEVENT(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IVRDEServerInfoChangedEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IVRDESERVERINFOCHANGEDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IVRDEServerInfoChangedEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
NS_IMETHODIMP _MYCLASS_::GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IVideoCaptureChangedEvent */
#define IVIDEOCAPTURECHANGEDEVENT_IID_STR "6215d169-25dd-4719-ab34-c908701efb58"

#define IVIDEOCAPTURECHANGEDEVENT_IID \
  {0x6215d169, 0x25dd, 0x4719, \
    { 0xab, 0x34, 0xc9, 0x08, 0x70, 0x1e, 0xfb, 0x58 }}

class NS_NO_VTABLE IVideoCaptureChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IVIDEOCAPTURECHANGEDEVENT_IID)

  /* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IVIDEOCAPTURECHANGEDEVENT \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IVIDEOCAPTURECHANGEDEVENT(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return _to GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IVIDEOCAPTURECHANGEDEVENT(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IVideoCaptureChangedEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IVIDEOCAPTURECHANGEDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IVideoCaptureChangedEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
NS_IMETHODIMP _MYCLASS_::GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#define COM_FORWARD_IVideoCaptureChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO(smth) NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces (PRBool * aMidlDoesNotLikeEmptyInterfaces) { return smth GetMidlDoesNotLikeEmptyInterfaces (aMidlDoesNotLikeEmptyInterfaces); }
#define COM_FORWARD_IVideoCaptureChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_OBJ(obj) COM_FORWARD_IVideoCaptureChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO ((obj)->)
#define COM_FORWARD_IVideoCaptureChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_BASE(base) COM_FORWARD_IVideoCaptureChangedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO (base::)
#define COM_FORWARD_IVideoCaptureChangedEvent_TO(smth) NS_FORWARD_IVIDEOCAPTURECHANGEDEVENT (smth)
#define COM_FORWARD_IVideoCaptureChangedEvent_TO_OBJ(obj) COM_FORWARD_IVideoCaptureChangedEvent_TO ((obj)->)
#define COM_FORWARD_IVideoCaptureChangedEvent_TO_BASE(base) COM_FORWARD_IVideoCaptureChangedEvent_TO (base::)
// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IVideoCaptureChangedEvent;

/* starting interface:    IUSBControllerChangedEvent */
#define IUSBCONTROLLERCHANGEDEVENT_IID_STR "93badc0c-61d9-4940-a084-e6bb29af3d83"

#define IUSBCONTROLLERCHANGEDEVENT_IID \
  {0x93badc0c, 0x61d9, 0x4940, \
    { 0xa0, 0x84, 0xe6, 0xbb, 0x29, 0xaf, 0x3d, 0x83 }}

class NS_NO_VTABLE IUSBControllerChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IUSBCONTROLLERCHANGEDEVENT_IID)

  /* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IUSBCONTROLLERCHANGEDEVENT \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IUSBCONTROLLERCHANGEDEVENT(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return _to GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IUSBCONTROLLERCHANGEDEVENT(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IUSBControllerChangedEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IUSBCONTROLLERCHANGEDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IUSBControllerChangedEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
NS_IMETHODIMP _MYCLASS_::GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IUSBDeviceStateChangedEvent */
#define IUSBDEVICESTATECHANGEDEVENT_IID_STR "806da61b-6679-422a-b629-51b06b0c6d93"

#define IUSBDEVICESTATECHANGEDEVENT_IID \
  {0x806da61b, 0x6679, 0x422a, \
    { 0xb6, 0x29, 0x51, 0xb0, 0x6b, 0x0c, 0x6d, 0x93 }}

class NS_NO_VTABLE IUSBDeviceStateChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IUSBDEVICESTATECHANGEDEVENT_IID)

  /* readonly attribute IUSBDevice device; */
  NS_IMETHOD GetDevice(IUSBDevice * *aDevice) = 0;

  /* readonly attribute boolean attached; */
  NS_IMETHOD GetAttached(PRBool *aAttached) = 0;

  /* readonly attribute IVirtualBoxErrorInfo error; */
  NS_IMETHOD GetError(IVirtualBoxErrorInfo * *aError) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IUSBDEVICESTATECHANGEDEVENT \
  NS_IMETHOD GetDevice(IUSBDevice * *aDevice); \
  NS_IMETHOD GetAttached(PRBool *aAttached); \
  NS_IMETHOD GetError(IVirtualBoxErrorInfo * *aError); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IUSBDEVICESTATECHANGEDEVENT(_to) \
  NS_IMETHOD GetDevice(IUSBDevice * *aDevice) { return _to GetDevice(aDevice); } \
  NS_IMETHOD GetAttached(PRBool *aAttached) { return _to GetAttached(aAttached); } \
  NS_IMETHOD GetError(IVirtualBoxErrorInfo * *aError) { return _to GetError(aError); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IUSBDEVICESTATECHANGEDEVENT(_to) \
  NS_IMETHOD GetDevice(IUSBDevice * *aDevice) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDevice(aDevice); } \
  NS_IMETHOD GetAttached(PRBool *aAttached) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAttached(aAttached); } \
  NS_IMETHOD GetError(IVirtualBoxErrorInfo * *aError) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetError(aError); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IUSBDeviceStateChangedEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IUSBDEVICESTATECHANGEDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IUSBDeviceStateChangedEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute IUSBDevice device; */
NS_IMETHODIMP _MYCLASS_::GetDevice(IUSBDevice * *aDevice)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean attached; */
NS_IMETHODIMP _MYCLASS_::GetAttached(PRBool *aAttached)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IVirtualBoxErrorInfo error; */
NS_IMETHODIMP _MYCLASS_::GetError(IVirtualBoxErrorInfo * *aError)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    ISharedFolderChangedEvent */
#define ISHAREDFOLDERCHANGEDEVENT_IID_STR "b66349b5-3534-4239-b2de-8e1535d94c0b"

#define ISHAREDFOLDERCHANGEDEVENT_IID \
  {0xb66349b5, 0x3534, 0x4239, \
    { 0xb2, 0xde, 0x8e, 0x15, 0x35, 0xd9, 0x4c, 0x0b }}

class NS_NO_VTABLE ISharedFolderChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ISHAREDFOLDERCHANGEDEVENT_IID)

  /* readonly attribute PRUint32 scope; */
  NS_IMETHOD GetScope(PRUint32 *aScope) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ISHAREDFOLDERCHANGEDEVENT \
  NS_IMETHOD GetScope(PRUint32 *aScope); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ISHAREDFOLDERCHANGEDEVENT(_to) \
  NS_IMETHOD GetScope(PRUint32 *aScope) { return _to GetScope(aScope); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ISHAREDFOLDERCHANGEDEVENT(_to) \
  NS_IMETHOD GetScope(PRUint32 *aScope) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetScope(aScope); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public ISharedFolderChangedEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_ISHAREDFOLDERCHANGEDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, ISharedFolderChangedEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute PRUint32 scope; */
NS_IMETHODIMP _MYCLASS_::GetScope(PRUint32 *aScope)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IRuntimeErrorEvent */
#define IRUNTIMEERROREVENT_IID_STR "883dd18b-0721-4cde-867c-1a82abaf914c"

#define IRUNTIMEERROREVENT_IID \
  {0x883dd18b, 0x0721, 0x4cde, \
    { 0x86, 0x7c, 0x1a, 0x82, 0xab, 0xaf, 0x91, 0x4c }}

class NS_NO_VTABLE IRuntimeErrorEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IRUNTIMEERROREVENT_IID)

  /* readonly attribute boolean fatal; */
  NS_IMETHOD GetFatal(PRBool *aFatal) = 0;

  /* readonly attribute wstring id; */
  NS_IMETHOD GetId(PRUnichar * *aId) = 0;

  /* readonly attribute wstring message; */
  NS_IMETHOD GetMessage(PRUnichar * *aMessage) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IRUNTIMEERROREVENT \
  NS_IMETHOD GetFatal(PRBool *aFatal); \
  NS_IMETHOD GetId(PRUnichar * *aId); \
  NS_IMETHOD GetMessage(PRUnichar * *aMessage); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IRUNTIMEERROREVENT(_to) \
  NS_IMETHOD GetFatal(PRBool *aFatal) { return _to GetFatal(aFatal); } \
  NS_IMETHOD GetId(PRUnichar * *aId) { return _to GetId(aId); } \
  NS_IMETHOD GetMessage(PRUnichar * *aMessage) { return _to GetMessage(aMessage); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IRUNTIMEERROREVENT(_to) \
  NS_IMETHOD GetFatal(PRBool *aFatal) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFatal(aFatal); } \
  NS_IMETHOD GetId(PRUnichar * *aId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetId(aId); } \
  NS_IMETHOD GetMessage(PRUnichar * *aMessage) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMessage(aMessage); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IRuntimeErrorEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IRUNTIMEERROREVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IRuntimeErrorEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean fatal; */
NS_IMETHODIMP _MYCLASS_::GetFatal(PRBool *aFatal)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring id; */
NS_IMETHODIMP _MYCLASS_::GetId(PRUnichar * *aId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring message; */
NS_IMETHODIMP _MYCLASS_::GetMessage(PRUnichar * *aMessage)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IEventSourceChangedEvent */
#define IEVENTSOURCECHANGEDEVENT_IID_STR "e7932cb8-f6d4-4ab6-9cbf-558eb8959a6a"

#define IEVENTSOURCECHANGEDEVENT_IID \
  {0xe7932cb8, 0xf6d4, 0x4ab6, \
    { 0x9c, 0xbf, 0x55, 0x8e, 0xb8, 0x95, 0x9a, 0x6a }}

class NS_NO_VTABLE IEventSourceChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IEVENTSOURCECHANGEDEVENT_IID)

  /* readonly attribute IEventListener listener; */
  NS_IMETHOD GetListener(IEventListener * *aListener) = 0;

  /* readonly attribute boolean add; */
  NS_IMETHOD GetAdd(PRBool *aAdd) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IEVENTSOURCECHANGEDEVENT \
  NS_IMETHOD GetListener(IEventListener * *aListener); \
  NS_IMETHOD GetAdd(PRBool *aAdd); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IEVENTSOURCECHANGEDEVENT(_to) \
  NS_IMETHOD GetListener(IEventListener * *aListener) { return _to GetListener(aListener); } \
  NS_IMETHOD GetAdd(PRBool *aAdd) { return _to GetAdd(aAdd); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IEVENTSOURCECHANGEDEVENT(_to) \
  NS_IMETHOD GetListener(IEventListener * *aListener) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetListener(aListener); } \
  NS_IMETHOD GetAdd(PRBool *aAdd) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAdd(aAdd); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IEventSourceChangedEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IEVENTSOURCECHANGEDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IEventSourceChangedEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute IEventListener listener; */
NS_IMETHODIMP _MYCLASS_::GetListener(IEventListener * *aListener)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean add; */
NS_IMETHODIMP _MYCLASS_::GetAdd(PRBool *aAdd)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IExtraDataChangedEvent */
#define IEXTRADATACHANGEDEVENT_IID_STR "024f00ce-6e0b-492a-a8d0-968472a94dc7"

#define IEXTRADATACHANGEDEVENT_IID \
  {0x024f00ce, 0x6e0b, 0x492a, \
    { 0xa8, 0xd0, 0x96, 0x84, 0x72, 0xa9, 0x4d, 0xc7 }}

class NS_NO_VTABLE IExtraDataChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IEXTRADATACHANGEDEVENT_IID)

  /* readonly attribute wstring machineId; */
  NS_IMETHOD GetMachineId(PRUnichar * *aMachineId) = 0;

  /* readonly attribute wstring key; */
  NS_IMETHOD GetKey(PRUnichar * *aKey) = 0;

  /* readonly attribute wstring value; */
  NS_IMETHOD GetValue(PRUnichar * *aValue) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IEXTRADATACHANGEDEVENT \
  NS_IMETHOD GetMachineId(PRUnichar * *aMachineId); \
  NS_IMETHOD GetKey(PRUnichar * *aKey); \
  NS_IMETHOD GetValue(PRUnichar * *aValue); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IEXTRADATACHANGEDEVENT(_to) \
  NS_IMETHOD GetMachineId(PRUnichar * *aMachineId) { return _to GetMachineId(aMachineId); } \
  NS_IMETHOD GetKey(PRUnichar * *aKey) { return _to GetKey(aKey); } \
  NS_IMETHOD GetValue(PRUnichar * *aValue) { return _to GetValue(aValue); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IEXTRADATACHANGEDEVENT(_to) \
  NS_IMETHOD GetMachineId(PRUnichar * *aMachineId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMachineId(aMachineId); } \
  NS_IMETHOD GetKey(PRUnichar * *aKey) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetKey(aKey); } \
  NS_IMETHOD GetValue(PRUnichar * *aValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetValue(aValue); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IExtraDataChangedEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IEXTRADATACHANGEDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IExtraDataChangedEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute wstring machineId; */
NS_IMETHODIMP _MYCLASS_::GetMachineId(PRUnichar * *aMachineId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring key; */
NS_IMETHODIMP _MYCLASS_::GetKey(PRUnichar * *aKey)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring value; */
NS_IMETHODIMP _MYCLASS_::GetValue(PRUnichar * *aValue)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IVetoEvent */
#define IVETOEVENT_IID_STR "7c5e945f-2354-4267-883f-2f417d216519"

#define IVETOEVENT_IID \
  {0x7c5e945f, 0x2354, 0x4267, \
    { 0x88, 0x3f, 0x2f, 0x41, 0x7d, 0x21, 0x65, 0x19 }}

class NS_NO_VTABLE IVetoEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IVETOEVENT_IID)

  /* void addVeto (in wstring reason); */
  NS_IMETHOD AddVeto(const PRUnichar *reason) = 0;

  /* void isVetoed ([retval] out boolean result); */
  NS_IMETHOD IsVetoed(PRBool *result) = 0;

  /* void getVetos (out unsigned long resultSize, [array, size_is (resultSize), retval] out wstring result); */
  NS_IMETHOD GetVetos(PRUint32 *resultSize, PRUnichar ***result) = 0;

  /* void addApproval (in wstring reason); */
  NS_IMETHOD AddApproval(const PRUnichar *reason) = 0;

  /* void isApproved ([retval] out boolean result); */
  NS_IMETHOD IsApproved(PRBool *result) = 0;

  /* void getApprovals (out unsigned long resultSize, [array, size_is (resultSize), retval] out wstring result); */
  NS_IMETHOD GetApprovals(PRUint32 *resultSize, PRUnichar ***result) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IVETOEVENT \
  NS_IMETHOD AddVeto(const PRUnichar *reason); \
  NS_IMETHOD IsVetoed(PRBool *result); \
  NS_IMETHOD GetVetos(PRUint32 *resultSize, PRUnichar ***result); \
  NS_IMETHOD AddApproval(const PRUnichar *reason); \
  NS_IMETHOD IsApproved(PRBool *result); \
  NS_IMETHOD GetApprovals(PRUint32 *resultSize, PRUnichar ***result); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IVETOEVENT(_to) \
  NS_IMETHOD AddVeto(const PRUnichar *reason) { return _to AddVeto(reason); } \
  NS_IMETHOD IsVetoed(PRBool *result) { return _to IsVetoed(result); } \
  NS_IMETHOD GetVetos(PRUint32 *resultSize, PRUnichar ***result) { return _to GetVetos(resultSize, result); } \
  NS_IMETHOD AddApproval(const PRUnichar *reason) { return _to AddApproval(reason); } \
  NS_IMETHOD IsApproved(PRBool *result) { return _to IsApproved(result); } \
  NS_IMETHOD GetApprovals(PRUint32 *resultSize, PRUnichar ***result) { return _to GetApprovals(resultSize, result); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IVETOEVENT(_to) \
  NS_IMETHOD AddVeto(const PRUnichar *reason) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddVeto(reason); } \
  NS_IMETHOD IsVetoed(PRBool *result) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsVetoed(result); } \
  NS_IMETHOD GetVetos(PRUint32 *resultSize, PRUnichar ***result) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVetos(resultSize, result); } \
  NS_IMETHOD AddApproval(const PRUnichar *reason) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddApproval(reason); } \
  NS_IMETHOD IsApproved(PRBool *result) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsApproved(result); } \
  NS_IMETHOD GetApprovals(PRUint32 *resultSize, PRUnichar ***result) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetApprovals(resultSize, result); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IVetoEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IVETOEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IVetoEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* void addVeto (in wstring reason); */
NS_IMETHODIMP _MYCLASS_::AddVeto(const PRUnichar *reason)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void isVetoed ([retval] out boolean result); */
NS_IMETHODIMP _MYCLASS_::IsVetoed(PRBool *result)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getVetos (out unsigned long resultSize, [array, size_is (resultSize), retval] out wstring result); */
NS_IMETHODIMP _MYCLASS_::GetVetos(PRUint32 *resultSize, PRUnichar ***result)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addApproval (in wstring reason); */
NS_IMETHODIMP _MYCLASS_::AddApproval(const PRUnichar *reason)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void isApproved ([retval] out boolean result); */
NS_IMETHODIMP _MYCLASS_::IsApproved(PRBool *result)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getApprovals (out unsigned long resultSize, [array, size_is (resultSize), retval] out wstring result); */
NS_IMETHODIMP _MYCLASS_::GetApprovals(PRUint32 *resultSize, PRUnichar ***result)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IExtraDataCanChangeEvent */
#define IEXTRADATACANCHANGEEVENT_IID_STR "245d88bd-800a-40f8-87a6-170d02249a55"

#define IEXTRADATACANCHANGEEVENT_IID \
  {0x245d88bd, 0x800a, 0x40f8, \
    { 0x87, 0xa6, 0x17, 0x0d, 0x02, 0x24, 0x9a, 0x55 }}

class NS_NO_VTABLE IExtraDataCanChangeEvent : public IVetoEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IEXTRADATACANCHANGEEVENT_IID)

  /* readonly attribute wstring machineId; */
  NS_IMETHOD GetMachineId(PRUnichar * *aMachineId) = 0;

  /* readonly attribute wstring key; */
  NS_IMETHOD GetKey(PRUnichar * *aKey) = 0;

  /* readonly attribute wstring value; */
  NS_IMETHOD GetValue(PRUnichar * *aValue) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IEXTRADATACANCHANGEEVENT \
  NS_IMETHOD GetMachineId(PRUnichar * *aMachineId); \
  NS_IMETHOD GetKey(PRUnichar * *aKey); \
  NS_IMETHOD GetValue(PRUnichar * *aValue); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IEXTRADATACANCHANGEEVENT(_to) \
  NS_IMETHOD GetMachineId(PRUnichar * *aMachineId) { return _to GetMachineId(aMachineId); } \
  NS_IMETHOD GetKey(PRUnichar * *aKey) { return _to GetKey(aKey); } \
  NS_IMETHOD GetValue(PRUnichar * *aValue) { return _to GetValue(aValue); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IEXTRADATACANCHANGEEVENT(_to) \
  NS_IMETHOD GetMachineId(PRUnichar * *aMachineId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMachineId(aMachineId); } \
  NS_IMETHOD GetKey(PRUnichar * *aKey) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetKey(aKey); } \
  NS_IMETHOD GetValue(PRUnichar * *aValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetValue(aValue); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IExtraDataCanChangeEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IEXTRADATACANCHANGEEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IExtraDataCanChangeEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute wstring machineId; */
NS_IMETHODIMP _MYCLASS_::GetMachineId(PRUnichar * *aMachineId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring key; */
NS_IMETHODIMP _MYCLASS_::GetKey(PRUnichar * *aKey)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring value; */
NS_IMETHODIMP _MYCLASS_::GetValue(PRUnichar * *aValue)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    ICanShowWindowEvent */
#define ICANSHOWWINDOWEVENT_IID_STR "adf292b0-92c9-4a77-9d35-e058b39fe0b9"

#define ICANSHOWWINDOWEVENT_IID \
  {0xadf292b0, 0x92c9, 0x4a77, \
    { 0x9d, 0x35, 0xe0, 0x58, 0xb3, 0x9f, 0xe0, 0xb9 }}

class NS_NO_VTABLE ICanShowWindowEvent : public IVetoEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ICANSHOWWINDOWEVENT_IID)

  /* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ICANSHOWWINDOWEVENT \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ICANSHOWWINDOWEVENT(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return _to GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ICANSHOWWINDOWEVENT(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public ICanShowWindowEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_ICANSHOWWINDOWEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, ICanShowWindowEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
NS_IMETHODIMP _MYCLASS_::GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IShowWindowEvent */
#define ISHOWWINDOWEVENT_IID_STR "b0a0904d-2f05-4d28-855f-488f96bad2b2"

#define ISHOWWINDOWEVENT_IID \
  {0xb0a0904d, 0x2f05, 0x4d28, \
    { 0x85, 0x5f, 0x48, 0x8f, 0x96, 0xba, 0xd2, 0xb2 }}

class NS_NO_VTABLE IShowWindowEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ISHOWWINDOWEVENT_IID)

  /* attribute long long winId; */
  NS_IMETHOD GetWinId(PRInt64 *aWinId) = 0;
  NS_IMETHOD SetWinId(PRInt64 aWinId) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ISHOWWINDOWEVENT \
  NS_IMETHOD GetWinId(PRInt64 *aWinId); \
  NS_IMETHOD SetWinId(PRInt64 aWinId); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ISHOWWINDOWEVENT(_to) \
  NS_IMETHOD GetWinId(PRInt64 *aWinId) { return _to GetWinId(aWinId); } \
  NS_IMETHOD SetWinId(PRInt64 aWinId) { return _to SetWinId(aWinId); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ISHOWWINDOWEVENT(_to) \
  NS_IMETHOD GetWinId(PRInt64 *aWinId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetWinId(aWinId); } \
  NS_IMETHOD SetWinId(PRInt64 aWinId) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetWinId(aWinId); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IShowWindowEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_ISHOWWINDOWEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IShowWindowEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* attribute long long winId; */
NS_IMETHODIMP _MYCLASS_::GetWinId(PRInt64 *aWinId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetWinId(PRInt64 aWinId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    INATRedirectEvent */
#define INATREDIRECTEVENT_IID_STR "24eef068-c380-4510-bc7c-19314a7352f1"

#define INATREDIRECTEVENT_IID \
  {0x24eef068, 0xc380, 0x4510, \
    { 0xbc, 0x7c, 0x19, 0x31, 0x4a, 0x73, 0x52, 0xf1 }}

class NS_NO_VTABLE INATRedirectEvent : public IMachineEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(INATREDIRECTEVENT_IID)

  /* readonly attribute unsigned long slot; */
  NS_IMETHOD GetSlot(PRUint32 *aSlot) = 0;

  /* readonly attribute boolean remove; */
  NS_IMETHOD GetRemove(PRBool *aRemove) = 0;

  /* readonly attribute wstring name; */
  NS_IMETHOD GetName(PRUnichar * *aName) = 0;

  /* readonly attribute PRUint32 proto; */
  NS_IMETHOD GetProto(PRUint32 *aProto) = 0;

  /* readonly attribute wstring hostIP; */
  NS_IMETHOD GetHostIP(PRUnichar * *aHostIP) = 0;

  /* readonly attribute long hostPort; */
  NS_IMETHOD GetHostPort(PRInt32 *aHostPort) = 0;

  /* readonly attribute wstring guestIP; */
  NS_IMETHOD GetGuestIP(PRUnichar * *aGuestIP) = 0;

  /* readonly attribute long guestPort; */
  NS_IMETHOD GetGuestPort(PRInt32 *aGuestPort) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_INATREDIRECTEVENT \
  NS_IMETHOD GetSlot(PRUint32 *aSlot); \
  NS_IMETHOD GetRemove(PRBool *aRemove); \
  NS_IMETHOD GetName(PRUnichar * *aName); \
  NS_IMETHOD GetProto(PRUint32 *aProto); \
  NS_IMETHOD GetHostIP(PRUnichar * *aHostIP); \
  NS_IMETHOD GetHostPort(PRInt32 *aHostPort); \
  NS_IMETHOD GetGuestIP(PRUnichar * *aGuestIP); \
  NS_IMETHOD GetGuestPort(PRInt32 *aGuestPort); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_INATREDIRECTEVENT(_to) \
  NS_IMETHOD GetSlot(PRUint32 *aSlot) { return _to GetSlot(aSlot); } \
  NS_IMETHOD GetRemove(PRBool *aRemove) { return _to GetRemove(aRemove); } \
  NS_IMETHOD GetName(PRUnichar * *aName) { return _to GetName(aName); } \
  NS_IMETHOD GetProto(PRUint32 *aProto) { return _to GetProto(aProto); } \
  NS_IMETHOD GetHostIP(PRUnichar * *aHostIP) { return _to GetHostIP(aHostIP); } \
  NS_IMETHOD GetHostPort(PRInt32 *aHostPort) { return _to GetHostPort(aHostPort); } \
  NS_IMETHOD GetGuestIP(PRUnichar * *aGuestIP) { return _to GetGuestIP(aGuestIP); } \
  NS_IMETHOD GetGuestPort(PRInt32 *aGuestPort) { return _to GetGuestPort(aGuestPort); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_INATREDIRECTEVENT(_to) \
  NS_IMETHOD GetSlot(PRUint32 *aSlot) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSlot(aSlot); } \
  NS_IMETHOD GetRemove(PRBool *aRemove) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRemove(aRemove); } \
  NS_IMETHOD GetName(PRUnichar * *aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
  NS_IMETHOD GetProto(PRUint32 *aProto) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProto(aProto); } \
  NS_IMETHOD GetHostIP(PRUnichar * *aHostIP) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHostIP(aHostIP); } \
  NS_IMETHOD GetHostPort(PRInt32 *aHostPort) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHostPort(aHostPort); } \
  NS_IMETHOD GetGuestIP(PRUnichar * *aGuestIP) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGuestIP(aGuestIP); } \
  NS_IMETHOD GetGuestPort(PRInt32 *aGuestPort) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGuestPort(aGuestPort); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public INATRedirectEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_INATREDIRECTEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, INATRedirectEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute unsigned long slot; */
NS_IMETHODIMP _MYCLASS_::GetSlot(PRUint32 *aSlot)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean remove; */
NS_IMETHODIMP _MYCLASS_::GetRemove(PRBool *aRemove)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring name; */
NS_IMETHODIMP _MYCLASS_::GetName(PRUnichar * *aName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 proto; */
NS_IMETHODIMP _MYCLASS_::GetProto(PRUint32 *aProto)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring hostIP; */
NS_IMETHODIMP _MYCLASS_::GetHostIP(PRUnichar * *aHostIP)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long hostPort; */
NS_IMETHODIMP _MYCLASS_::GetHostPort(PRInt32 *aHostPort)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring guestIP; */
NS_IMETHODIMP _MYCLASS_::GetGuestIP(PRUnichar * *aGuestIP)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long guestPort; */
NS_IMETHODIMP _MYCLASS_::GetGuestPort(PRInt32 *aGuestPort)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IHostPCIDevicePlugEvent */
#define IHOSTPCIDEVICEPLUGEVENT_IID_STR "a0bad6df-d612-47d3-89d4-db3992533948"

#define IHOSTPCIDEVICEPLUGEVENT_IID \
  {0xa0bad6df, 0xd612, 0x47d3, \
    { 0x89, 0xd4, 0xdb, 0x39, 0x92, 0x53, 0x39, 0x48 }}

class NS_NO_VTABLE IHostPCIDevicePlugEvent : public IMachineEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IHOSTPCIDEVICEPLUGEVENT_IID)

  /* readonly attribute boolean plugged; */
  NS_IMETHOD GetPlugged(PRBool *aPlugged) = 0;

  /* readonly attribute boolean success; */
  NS_IMETHOD GetSuccess(PRBool *aSuccess) = 0;

  /* readonly attribute IPCIDeviceAttachment attachment; */
  NS_IMETHOD GetAttachment(IPCIDeviceAttachment * *aAttachment) = 0;

  /* readonly attribute wstring message; */
  NS_IMETHOD GetMessage(PRUnichar * *aMessage) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IHOSTPCIDEVICEPLUGEVENT \
  NS_IMETHOD GetPlugged(PRBool *aPlugged); \
  NS_IMETHOD GetSuccess(PRBool *aSuccess); \
  NS_IMETHOD GetAttachment(IPCIDeviceAttachment * *aAttachment); \
  NS_IMETHOD GetMessage(PRUnichar * *aMessage); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IHOSTPCIDEVICEPLUGEVENT(_to) \
  NS_IMETHOD GetPlugged(PRBool *aPlugged) { return _to GetPlugged(aPlugged); } \
  NS_IMETHOD GetSuccess(PRBool *aSuccess) { return _to GetSuccess(aSuccess); } \
  NS_IMETHOD GetAttachment(IPCIDeviceAttachment * *aAttachment) { return _to GetAttachment(aAttachment); } \
  NS_IMETHOD GetMessage(PRUnichar * *aMessage) { return _to GetMessage(aMessage); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IHOSTPCIDEVICEPLUGEVENT(_to) \
  NS_IMETHOD GetPlugged(PRBool *aPlugged) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPlugged(aPlugged); } \
  NS_IMETHOD GetSuccess(PRBool *aSuccess) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSuccess(aSuccess); } \
  NS_IMETHOD GetAttachment(IPCIDeviceAttachment * *aAttachment) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAttachment(aAttachment); } \
  NS_IMETHOD GetMessage(PRUnichar * *aMessage) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMessage(aMessage); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IHostPCIDevicePlugEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IHOSTPCIDEVICEPLUGEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IHostPCIDevicePlugEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean plugged; */
NS_IMETHODIMP _MYCLASS_::GetPlugged(PRBool *aPlugged)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean success; */
NS_IMETHODIMP _MYCLASS_::GetSuccess(PRBool *aSuccess)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute IPCIDeviceAttachment attachment; */
NS_IMETHODIMP _MYCLASS_::GetAttachment(IPCIDeviceAttachment * *aAttachment)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring message; */
NS_IMETHODIMP _MYCLASS_::GetMessage(PRUnichar * *aMessage)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IVBoxSVCAvailabilityChangedEvent */
#define IVBOXSVCAVAILABILITYCHANGEDEVENT_IID_STR "97c78fcd-d4fc-485f-8613-5af88bfcfcdc"

#define IVBOXSVCAVAILABILITYCHANGEDEVENT_IID \
  {0x97c78fcd, 0xd4fc, 0x485f, \
    { 0x86, 0x13, 0x5a, 0xf8, 0x8b, 0xfc, 0xfc, 0xdc }}

class NS_NO_VTABLE IVBoxSVCAvailabilityChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IVBOXSVCAVAILABILITYCHANGEDEVENT_IID)

  /* readonly attribute boolean available; */
  NS_IMETHOD GetAvailable(PRBool *aAvailable) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IVBOXSVCAVAILABILITYCHANGEDEVENT \
  NS_IMETHOD GetAvailable(PRBool *aAvailable); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IVBOXSVCAVAILABILITYCHANGEDEVENT(_to) \
  NS_IMETHOD GetAvailable(PRBool *aAvailable) { return _to GetAvailable(aAvailable); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IVBOXSVCAVAILABILITYCHANGEDEVENT(_to) \
  NS_IMETHOD GetAvailable(PRBool *aAvailable) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAvailable(aAvailable); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IVBoxSVCAvailabilityChangedEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IVBOXSVCAVAILABILITYCHANGEDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IVBoxSVCAvailabilityChangedEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean available; */
NS_IMETHODIMP _MYCLASS_::GetAvailable(PRBool *aAvailable)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IBandwidthGroupChangedEvent */
#define IBANDWIDTHGROUPCHANGEDEVENT_IID_STR "334df94a-7556-4cbc-8c04-043096b02d82"

#define IBANDWIDTHGROUPCHANGEDEVENT_IID \
  {0x334df94a, 0x7556, 0x4cbc, \
    { 0x8c, 0x04, 0x04, 0x30, 0x96, 0xb0, 0x2d, 0x82 }}

class NS_NO_VTABLE IBandwidthGroupChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IBANDWIDTHGROUPCHANGEDEVENT_IID)

  /* readonly attribute IBandwidthGroup bandwidthGroup; */
  NS_IMETHOD GetBandwidthGroup(IBandwidthGroup * *aBandwidthGroup) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IBANDWIDTHGROUPCHANGEDEVENT \
  NS_IMETHOD GetBandwidthGroup(IBandwidthGroup * *aBandwidthGroup); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IBANDWIDTHGROUPCHANGEDEVENT(_to) \
  NS_IMETHOD GetBandwidthGroup(IBandwidthGroup * *aBandwidthGroup) { return _to GetBandwidthGroup(aBandwidthGroup); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IBANDWIDTHGROUPCHANGEDEVENT(_to) \
  NS_IMETHOD GetBandwidthGroup(IBandwidthGroup * *aBandwidthGroup) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBandwidthGroup(aBandwidthGroup); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IBandwidthGroupChangedEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IBANDWIDTHGROUPCHANGEDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IBandwidthGroupChangedEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute IBandwidthGroup bandwidthGroup; */
NS_IMETHODIMP _MYCLASS_::GetBandwidthGroup(IBandwidthGroup * *aBandwidthGroup)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IGuestMonitorChangedEvent */
#define IGUESTMONITORCHANGEDEVENT_IID_STR "0f7b8a22-c71f-4a36-8e5f-a77d01d76090"

#define IGUESTMONITORCHANGEDEVENT_IID \
  {0x0f7b8a22, 0xc71f, 0x4a36, \
    { 0x8e, 0x5f, 0xa7, 0x7d, 0x01, 0xd7, 0x60, 0x90 }}

class NS_NO_VTABLE IGuestMonitorChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTMONITORCHANGEDEVENT_IID)

  /* readonly attribute PRUint32 changeType; */
  NS_IMETHOD GetChangeType(PRUint32 *aChangeType) = 0;

  /* readonly attribute unsigned long screenId; */
  NS_IMETHOD GetScreenId(PRUint32 *aScreenId) = 0;

  /* readonly attribute unsigned long originX; */
  NS_IMETHOD GetOriginX(PRUint32 *aOriginX) = 0;

  /* readonly attribute unsigned long originY; */
  NS_IMETHOD GetOriginY(PRUint32 *aOriginY) = 0;

  /* readonly attribute unsigned long width; */
  NS_IMETHOD GetWidth(PRUint32 *aWidth) = 0;

  /* readonly attribute unsigned long height; */
  NS_IMETHOD GetHeight(PRUint32 *aHeight) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTMONITORCHANGEDEVENT \
  NS_IMETHOD GetChangeType(PRUint32 *aChangeType); \
  NS_IMETHOD GetScreenId(PRUint32 *aScreenId); \
  NS_IMETHOD GetOriginX(PRUint32 *aOriginX); \
  NS_IMETHOD GetOriginY(PRUint32 *aOriginY); \
  NS_IMETHOD GetWidth(PRUint32 *aWidth); \
  NS_IMETHOD GetHeight(PRUint32 *aHeight); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTMONITORCHANGEDEVENT(_to) \
  NS_IMETHOD GetChangeType(PRUint32 *aChangeType) { return _to GetChangeType(aChangeType); } \
  NS_IMETHOD GetScreenId(PRUint32 *aScreenId) { return _to GetScreenId(aScreenId); } \
  NS_IMETHOD GetOriginX(PRUint32 *aOriginX) { return _to GetOriginX(aOriginX); } \
  NS_IMETHOD GetOriginY(PRUint32 *aOriginY) { return _to GetOriginY(aOriginY); } \
  NS_IMETHOD GetWidth(PRUint32 *aWidth) { return _to GetWidth(aWidth); } \
  NS_IMETHOD GetHeight(PRUint32 *aHeight) { return _to GetHeight(aHeight); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGUESTMONITORCHANGEDEVENT(_to) \
  NS_IMETHOD GetChangeType(PRUint32 *aChangeType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetChangeType(aChangeType); } \
  NS_IMETHOD GetScreenId(PRUint32 *aScreenId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetScreenId(aScreenId); } \
  NS_IMETHOD GetOriginX(PRUint32 *aOriginX) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOriginX(aOriginX); } \
  NS_IMETHOD GetOriginY(PRUint32 *aOriginY) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOriginY(aOriginY); } \
  NS_IMETHOD GetWidth(PRUint32 *aWidth) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetWidth(aWidth); } \
  NS_IMETHOD GetHeight(PRUint32 *aHeight) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHeight(aHeight); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IGuestMonitorChangedEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IGUESTMONITORCHANGEDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IGuestMonitorChangedEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute PRUint32 changeType; */
NS_IMETHODIMP _MYCLASS_::GetChangeType(PRUint32 *aChangeType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long screenId; */
NS_IMETHODIMP _MYCLASS_::GetScreenId(PRUint32 *aScreenId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long originX; */
NS_IMETHODIMP _MYCLASS_::GetOriginX(PRUint32 *aOriginX)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long originY; */
NS_IMETHODIMP _MYCLASS_::GetOriginY(PRUint32 *aOriginY)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long width; */
NS_IMETHODIMP _MYCLASS_::GetWidth(PRUint32 *aWidth)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long height; */
NS_IMETHODIMP _MYCLASS_::GetHeight(PRUint32 *aHeight)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IGuestUserStateChangedEvent */
#define IGUESTUSERSTATECHANGEDEVENT_IID_STR "39b4e759-1ec0-4c0f-857f-fbe2a737a256"

#define IGUESTUSERSTATECHANGEDEVENT_IID \
  {0x39b4e759, 0x1ec0, 0x4c0f, \
    { 0x85, 0x7f, 0xfb, 0xe2, 0xa7, 0x37, 0xa2, 0x56 }}

class NS_NO_VTABLE IGuestUserStateChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTUSERSTATECHANGEDEVENT_IID)

  /* readonly attribute wstring name; */
  NS_IMETHOD GetName(PRUnichar * *aName) = 0;

  /* readonly attribute wstring domain; */
  NS_IMETHOD GetDomain(PRUnichar * *aDomain) = 0;

  /* readonly attribute PRUint32 state; */
  NS_IMETHOD GetState(PRUint32 *aState) = 0;

  /* readonly attribute wstring stateDetails; */
  NS_IMETHOD GetStateDetails(PRUnichar * *aStateDetails) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTUSERSTATECHANGEDEVENT \
  NS_IMETHOD GetName(PRUnichar * *aName); \
  NS_IMETHOD GetDomain(PRUnichar * *aDomain); \
  NS_IMETHOD GetState(PRUint32 *aState); \
  NS_IMETHOD GetStateDetails(PRUnichar * *aStateDetails); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTUSERSTATECHANGEDEVENT(_to) \
  NS_IMETHOD GetName(PRUnichar * *aName) { return _to GetName(aName); } \
  NS_IMETHOD GetDomain(PRUnichar * *aDomain) { return _to GetDomain(aDomain); } \
  NS_IMETHOD GetState(PRUint32 *aState) { return _to GetState(aState); } \
  NS_IMETHOD GetStateDetails(PRUnichar * *aStateDetails) { return _to GetStateDetails(aStateDetails); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGUESTUSERSTATECHANGEDEVENT(_to) \
  NS_IMETHOD GetName(PRUnichar * *aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
  NS_IMETHOD GetDomain(PRUnichar * *aDomain) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDomain(aDomain); } \
  NS_IMETHOD GetState(PRUint32 *aState) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetState(aState); } \
  NS_IMETHOD GetStateDetails(PRUnichar * *aStateDetails) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStateDetails(aStateDetails); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IGuestUserStateChangedEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IGUESTUSERSTATECHANGEDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IGuestUserStateChangedEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute wstring name; */
NS_IMETHODIMP _MYCLASS_::GetName(PRUnichar * *aName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring domain; */
NS_IMETHODIMP _MYCLASS_::GetDomain(PRUnichar * *aDomain)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 state; */
NS_IMETHODIMP _MYCLASS_::GetState(PRUint32 *aState)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring stateDetails; */
NS_IMETHODIMP _MYCLASS_::GetStateDetails(PRUnichar * *aStateDetails)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IStorageDeviceChangedEvent */
#define ISTORAGEDEVICECHANGEDEVENT_IID_STR "232e9151-ae84-4b8e-b0f3-5c20c35caac9"

#define ISTORAGEDEVICECHANGEDEVENT_IID \
  {0x232e9151, 0xae84, 0x4b8e, \
    { 0xb0, 0xf3, 0x5c, 0x20, 0xc3, 0x5c, 0xaa, 0xc9 }}

class NS_NO_VTABLE IStorageDeviceChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ISTORAGEDEVICECHANGEDEVENT_IID)

  /* readonly attribute IMediumAttachment storageDevice; */
  NS_IMETHOD GetStorageDevice(IMediumAttachment * *aStorageDevice) = 0;

  /* readonly attribute boolean removed; */
  NS_IMETHOD GetRemoved(PRBool *aRemoved) = 0;

  /* readonly attribute boolean silent; */
  NS_IMETHOD GetSilent(PRBool *aSilent) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ISTORAGEDEVICECHANGEDEVENT \
  NS_IMETHOD GetStorageDevice(IMediumAttachment * *aStorageDevice); \
  NS_IMETHOD GetRemoved(PRBool *aRemoved); \
  NS_IMETHOD GetSilent(PRBool *aSilent); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ISTORAGEDEVICECHANGEDEVENT(_to) \
  NS_IMETHOD GetStorageDevice(IMediumAttachment * *aStorageDevice) { return _to GetStorageDevice(aStorageDevice); } \
  NS_IMETHOD GetRemoved(PRBool *aRemoved) { return _to GetRemoved(aRemoved); } \
  NS_IMETHOD GetSilent(PRBool *aSilent) { return _to GetSilent(aSilent); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ISTORAGEDEVICECHANGEDEVENT(_to) \
  NS_IMETHOD GetStorageDevice(IMediumAttachment * *aStorageDevice) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStorageDevice(aStorageDevice); } \
  NS_IMETHOD GetRemoved(PRBool *aRemoved) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRemoved(aRemoved); } \
  NS_IMETHOD GetSilent(PRBool *aSilent) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSilent(aSilent); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IStorageDeviceChangedEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_ISTORAGEDEVICECHANGEDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IStorageDeviceChangedEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute IMediumAttachment storageDevice; */
NS_IMETHODIMP _MYCLASS_::GetStorageDevice(IMediumAttachment * *aStorageDevice)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean removed; */
NS_IMETHODIMP _MYCLASS_::GetRemoved(PRBool *aRemoved)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean silent; */
NS_IMETHODIMP _MYCLASS_::GetSilent(PRBool *aSilent)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    INATNetworkChangedEvent */
#define INATNETWORKCHANGEDEVENT_IID_STR "101ae042-1a29-4a19-92cf-02285773f3b5"

#define INATNETWORKCHANGEDEVENT_IID \
  {0x101ae042, 0x1a29, 0x4a19, \
    { 0x92, 0xcf, 0x02, 0x28, 0x57, 0x73, 0xf3, 0xb5 }}

class NS_NO_VTABLE INATNetworkChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(INATNETWORKCHANGEDEVENT_IID)

  /* readonly attribute wstring networkName; */
  NS_IMETHOD GetNetworkName(PRUnichar * *aNetworkName) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_INATNETWORKCHANGEDEVENT \
  NS_IMETHOD GetNetworkName(PRUnichar * *aNetworkName); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_INATNETWORKCHANGEDEVENT(_to) \
  NS_IMETHOD GetNetworkName(PRUnichar * *aNetworkName) { return _to GetNetworkName(aNetworkName); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_INATNETWORKCHANGEDEVENT(_to) \
  NS_IMETHOD GetNetworkName(PRUnichar * *aNetworkName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNetworkName(aNetworkName); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public INATNetworkChangedEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_INATNETWORKCHANGEDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, INATNetworkChangedEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute wstring networkName; */
NS_IMETHODIMP _MYCLASS_::GetNetworkName(PRUnichar * *aNetworkName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    INATNetworkStartStopEvent */
#define INATNETWORKSTARTSTOPEVENT_IID_STR "269d8f6b-fa1e-4cee-91c7-6d8496bea3c1"

#define INATNETWORKSTARTSTOPEVENT_IID \
  {0x269d8f6b, 0xfa1e, 0x4cee, \
    { 0x91, 0xc7, 0x6d, 0x84, 0x96, 0xbe, 0xa3, 0xc1 }}

class NS_NO_VTABLE INATNetworkStartStopEvent : public INATNetworkChangedEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(INATNETWORKSTARTSTOPEVENT_IID)

  /* readonly attribute boolean startEvent; */
  NS_IMETHOD GetStartEvent(PRBool *aStartEvent) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_INATNETWORKSTARTSTOPEVENT \
  NS_IMETHOD GetStartEvent(PRBool *aStartEvent); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_INATNETWORKSTARTSTOPEVENT(_to) \
  NS_IMETHOD GetStartEvent(PRBool *aStartEvent) { return _to GetStartEvent(aStartEvent); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_INATNETWORKSTARTSTOPEVENT(_to) \
  NS_IMETHOD GetStartEvent(PRBool *aStartEvent) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStartEvent(aStartEvent); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public INATNetworkStartStopEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_INATNETWORKSTARTSTOPEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, INATNetworkStartStopEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean startEvent; */
NS_IMETHODIMP _MYCLASS_::GetStartEvent(PRBool *aStartEvent)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    INATNetworkAlterEvent */
#define INATNETWORKALTEREVENT_IID_STR "d947adf5-4022-dc80-5535-6fb116815604"

#define INATNETWORKALTEREVENT_IID \
  {0xd947adf5, 0x4022, 0xdc80, \
    { 0x55, 0x35, 0x6f, 0xb1, 0x16, 0x81, 0x56, 0x04 }}

class NS_NO_VTABLE INATNetworkAlterEvent : public INATNetworkChangedEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(INATNETWORKALTEREVENT_IID)

  /* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_INATNETWORKALTEREVENT \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_INATNETWORKALTEREVENT(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return _to GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_INATNETWORKALTEREVENT(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public INATNetworkAlterEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_INATNETWORKALTEREVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, INATNetworkAlterEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
NS_IMETHODIMP _MYCLASS_::GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    INATNetworkCreationDeletionEvent */
#define INATNETWORKCREATIONDELETIONEVENT_IID_STR "8d984a7e-b855-40b8-ab0c-44d3515b4528"

#define INATNETWORKCREATIONDELETIONEVENT_IID \
  {0x8d984a7e, 0xb855, 0x40b8, \
    { 0xab, 0x0c, 0x44, 0xd3, 0x51, 0x5b, 0x45, 0x28 }}

class NS_NO_VTABLE INATNetworkCreationDeletionEvent : public INATNetworkAlterEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(INATNETWORKCREATIONDELETIONEVENT_IID)

  /* readonly attribute boolean creationEvent; */
  NS_IMETHOD GetCreationEvent(PRBool *aCreationEvent) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_INATNETWORKCREATIONDELETIONEVENT \
  NS_IMETHOD GetCreationEvent(PRBool *aCreationEvent); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_INATNETWORKCREATIONDELETIONEVENT(_to) \
  NS_IMETHOD GetCreationEvent(PRBool *aCreationEvent) { return _to GetCreationEvent(aCreationEvent); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_INATNETWORKCREATIONDELETIONEVENT(_to) \
  NS_IMETHOD GetCreationEvent(PRBool *aCreationEvent) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCreationEvent(aCreationEvent); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public INATNetworkCreationDeletionEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_INATNETWORKCREATIONDELETIONEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, INATNetworkCreationDeletionEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean creationEvent; */
NS_IMETHODIMP _MYCLASS_::GetCreationEvent(PRBool *aCreationEvent)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    INATNetworkSettingEvent */
#define INATNETWORKSETTINGEVENT_IID_STR "9db3a9e6-7f29-4aae-a627-5a282c83092c"

#define INATNETWORKSETTINGEVENT_IID \
  {0x9db3a9e6, 0x7f29, 0x4aae, \
    { 0xa6, 0x27, 0x5a, 0x28, 0x2c, 0x83, 0x09, 0x2c }}

class NS_NO_VTABLE INATNetworkSettingEvent : public INATNetworkAlterEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(INATNETWORKSETTINGEVENT_IID)

  /* readonly attribute boolean enabled; */
  NS_IMETHOD GetEnabled(PRBool *aEnabled) = 0;

  /* readonly attribute wstring network; */
  NS_IMETHOD GetNetwork(PRUnichar * *aNetwork) = 0;

  /* readonly attribute wstring gateway; */
  NS_IMETHOD GetGateway(PRUnichar * *aGateway) = 0;

  /* readonly attribute boolean advertiseDefaultIPv6RouteEnabled; */
  NS_IMETHOD GetAdvertiseDefaultIPv6RouteEnabled(PRBool *aAdvertiseDefaultIPv6RouteEnabled) = 0;

  /* readonly attribute boolean needDhcpServer; */
  NS_IMETHOD GetNeedDhcpServer(PRBool *aNeedDhcpServer) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_INATNETWORKSETTINGEVENT \
  NS_IMETHOD GetEnabled(PRBool *aEnabled); \
  NS_IMETHOD GetNetwork(PRUnichar * *aNetwork); \
  NS_IMETHOD GetGateway(PRUnichar * *aGateway); \
  NS_IMETHOD GetAdvertiseDefaultIPv6RouteEnabled(PRBool *aAdvertiseDefaultIPv6RouteEnabled); \
  NS_IMETHOD GetNeedDhcpServer(PRBool *aNeedDhcpServer); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_INATNETWORKSETTINGEVENT(_to) \
  NS_IMETHOD GetEnabled(PRBool *aEnabled) { return _to GetEnabled(aEnabled); } \
  NS_IMETHOD GetNetwork(PRUnichar * *aNetwork) { return _to GetNetwork(aNetwork); } \
  NS_IMETHOD GetGateway(PRUnichar * *aGateway) { return _to GetGateway(aGateway); } \
  NS_IMETHOD GetAdvertiseDefaultIPv6RouteEnabled(PRBool *aAdvertiseDefaultIPv6RouteEnabled) { return _to GetAdvertiseDefaultIPv6RouteEnabled(aAdvertiseDefaultIPv6RouteEnabled); } \
  NS_IMETHOD GetNeedDhcpServer(PRBool *aNeedDhcpServer) { return _to GetNeedDhcpServer(aNeedDhcpServer); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_INATNETWORKSETTINGEVENT(_to) \
  NS_IMETHOD GetEnabled(PRBool *aEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEnabled(aEnabled); } \
  NS_IMETHOD GetNetwork(PRUnichar * *aNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNetwork(aNetwork); } \
  NS_IMETHOD GetGateway(PRUnichar * *aGateway) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGateway(aGateway); } \
  NS_IMETHOD GetAdvertiseDefaultIPv6RouteEnabled(PRBool *aAdvertiseDefaultIPv6RouteEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAdvertiseDefaultIPv6RouteEnabled(aAdvertiseDefaultIPv6RouteEnabled); } \
  NS_IMETHOD GetNeedDhcpServer(PRBool *aNeedDhcpServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNeedDhcpServer(aNeedDhcpServer); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public INATNetworkSettingEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_INATNETWORKSETTINGEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, INATNetworkSettingEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean enabled; */
NS_IMETHODIMP _MYCLASS_::GetEnabled(PRBool *aEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring network; */
NS_IMETHODIMP _MYCLASS_::GetNetwork(PRUnichar * *aNetwork)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring gateway; */
NS_IMETHODIMP _MYCLASS_::GetGateway(PRUnichar * *aGateway)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean advertiseDefaultIPv6RouteEnabled; */
NS_IMETHODIMP _MYCLASS_::GetAdvertiseDefaultIPv6RouteEnabled(PRBool *aAdvertiseDefaultIPv6RouteEnabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean needDhcpServer; */
NS_IMETHODIMP _MYCLASS_::GetNeedDhcpServer(PRBool *aNeedDhcpServer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    INATNetworkPortForwardEvent */
#define INATNETWORKPORTFORWARDEVENT_IID_STR "2514881b-23d0-430a-a7ff-7ed7f05534bc"

#define INATNETWORKPORTFORWARDEVENT_IID \
  {0x2514881b, 0x23d0, 0x430a, \
    { 0xa7, 0xff, 0x7e, 0xd7, 0xf0, 0x55, 0x34, 0xbc }}

class NS_NO_VTABLE INATNetworkPortForwardEvent : public INATNetworkAlterEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(INATNETWORKPORTFORWARDEVENT_IID)

  /* readonly attribute boolean create; */
  NS_IMETHOD GetCreate(PRBool *aCreate) = 0;

  /* readonly attribute boolean ipv6; */
  NS_IMETHOD GetIpv6(PRBool *aIpv6) = 0;

  /* readonly attribute wstring name; */
  NS_IMETHOD GetName(PRUnichar * *aName) = 0;

  /* readonly attribute PRUint32 proto; */
  NS_IMETHOD GetProto(PRUint32 *aProto) = 0;

  /* readonly attribute wstring hostIp; */
  NS_IMETHOD GetHostIp(PRUnichar * *aHostIp) = 0;

  /* readonly attribute long hostPort; */
  NS_IMETHOD GetHostPort(PRInt32 *aHostPort) = 0;

  /* readonly attribute wstring guestIp; */
  NS_IMETHOD GetGuestIp(PRUnichar * *aGuestIp) = 0;

  /* readonly attribute long guestPort; */
  NS_IMETHOD GetGuestPort(PRInt32 *aGuestPort) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_INATNETWORKPORTFORWARDEVENT \
  NS_IMETHOD GetCreate(PRBool *aCreate); \
  NS_IMETHOD GetIpv6(PRBool *aIpv6); \
  NS_IMETHOD GetName(PRUnichar * *aName); \
  NS_IMETHOD GetProto(PRUint32 *aProto); \
  NS_IMETHOD GetHostIp(PRUnichar * *aHostIp); \
  NS_IMETHOD GetHostPort(PRInt32 *aHostPort); \
  NS_IMETHOD GetGuestIp(PRUnichar * *aGuestIp); \
  NS_IMETHOD GetGuestPort(PRInt32 *aGuestPort); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_INATNETWORKPORTFORWARDEVENT(_to) \
  NS_IMETHOD GetCreate(PRBool *aCreate) { return _to GetCreate(aCreate); } \
  NS_IMETHOD GetIpv6(PRBool *aIpv6) { return _to GetIpv6(aIpv6); } \
  NS_IMETHOD GetName(PRUnichar * *aName) { return _to GetName(aName); } \
  NS_IMETHOD GetProto(PRUint32 *aProto) { return _to GetProto(aProto); } \
  NS_IMETHOD GetHostIp(PRUnichar * *aHostIp) { return _to GetHostIp(aHostIp); } \
  NS_IMETHOD GetHostPort(PRInt32 *aHostPort) { return _to GetHostPort(aHostPort); } \
  NS_IMETHOD GetGuestIp(PRUnichar * *aGuestIp) { return _to GetGuestIp(aGuestIp); } \
  NS_IMETHOD GetGuestPort(PRInt32 *aGuestPort) { return _to GetGuestPort(aGuestPort); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_INATNETWORKPORTFORWARDEVENT(_to) \
  NS_IMETHOD GetCreate(PRBool *aCreate) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCreate(aCreate); } \
  NS_IMETHOD GetIpv6(PRBool *aIpv6) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIpv6(aIpv6); } \
  NS_IMETHOD GetName(PRUnichar * *aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
  NS_IMETHOD GetProto(PRUint32 *aProto) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProto(aProto); } \
  NS_IMETHOD GetHostIp(PRUnichar * *aHostIp) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHostIp(aHostIp); } \
  NS_IMETHOD GetHostPort(PRInt32 *aHostPort) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHostPort(aHostPort); } \
  NS_IMETHOD GetGuestIp(PRUnichar * *aGuestIp) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGuestIp(aGuestIp); } \
  NS_IMETHOD GetGuestPort(PRInt32 *aGuestPort) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGuestPort(aGuestPort); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public INATNetworkPortForwardEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_INATNETWORKPORTFORWARDEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, INATNetworkPortForwardEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean create; */
NS_IMETHODIMP _MYCLASS_::GetCreate(PRBool *aCreate)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean ipv6; */
NS_IMETHODIMP _MYCLASS_::GetIpv6(PRBool *aIpv6)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring name; */
NS_IMETHODIMP _MYCLASS_::GetName(PRUnichar * *aName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRUint32 proto; */
NS_IMETHODIMP _MYCLASS_::GetProto(PRUint32 *aProto)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring hostIp; */
NS_IMETHODIMP _MYCLASS_::GetHostIp(PRUnichar * *aHostIp)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long hostPort; */
NS_IMETHODIMP _MYCLASS_::GetHostPort(PRInt32 *aHostPort)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute wstring guestIp; */
NS_IMETHODIMP _MYCLASS_::GetGuestIp(PRUnichar * *aGuestIp)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long guestPort; */
NS_IMETHODIMP _MYCLASS_::GetGuestPort(PRInt32 *aGuestPort)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;

/* starting interface:    IHostNameResolutionConfigurationChangeEvent */
#define IHOSTNAMERESOLUTIONCONFIGURATIONCHANGEEVENT_IID_STR "f9b9e1cf-cb63-47a1-84fb-02c4894b89a9"

#define IHOSTNAMERESOLUTIONCONFIGURATIONCHANGEEVENT_IID \
  {0xf9b9e1cf, 0xcb63, 0x47a1, \
    { 0x84, 0xfb, 0x02, 0xc4, 0x89, 0x4b, 0x89, 0xa9 }}

class NS_NO_VTABLE IHostNameResolutionConfigurationChangeEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IHOSTNAMERESOLUTIONCONFIGURATIONCHANGEEVENT_IID)

  /* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IHOSTNAMERESOLUTIONCONFIGURATIONCHANGEEVENT \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IHOSTNAMERESOLUTIONCONFIGURATIONCHANGEEVENT(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return _to GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IHOSTNAMERESOLUTIONCONFIGURATIONCHANGEEVENT(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public IHostNameResolutionConfigurationChangeEvent
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_IHOSTNAMERESOLUTIONCONFIGURATIONCHANGEEVENT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, IHostNameResolutionConfigurationChangeEvent)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
NS_IMETHODIMP _MYCLASS_::GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

#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;
// 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;
// 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;
// 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;

#endif /* __gen_VirtualBox_XPCOM_h__ */
