/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM /build/virtualbox/src/VirtualBox-7.2.16/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
  
#define GUEST_OS_ID_STR_X86(a_szOSid)     a_szOSid
#if 1 /* 2023-10-06: We stick with legacy variant, see bugref{10384#c19}. */
# define GUEST_OS_ID_STR_X64(a_szOSid)    a_szOSid  "_64"
# define GUEST_OS_ID_STYLE_LEGACY
#else
# define GUEST_OS_ID_STR_X64(a_szOSid)    a_szOSid  "_x64"
# define GUEST_OS_ID_STYLE_PARTIAL_CLEANUP
#endif
#define GUEST_OS_ID_STR_A32(a_szOSid)     a_szOSid  "_arm32"
#define GUEST_OS_ID_STR_A64(a_szOSid)     a_szOSid  "_arm64"
#define GUEST_OS_ID_STR_AMD64(a_szOSid)   GUEST_OS_ID_STR_X64(a_szOSid)
#define GUEST_OS_ID_STR_ARM32(a_szOSid)   GUEST_OS_ID_STR_A32(a_szOSid)
#define GUEST_OS_ID_STR_ARM64(a_szOSid)   GUEST_OS_ID_STR_A64(a_szOSid)
#define GUEST_OS_ID_STR_PARTIAL(a_szOSidPart) a_szOSidPart
#ifndef VBOX_EXTERN_C
# ifdef __cplusplus
#  define VBOX_EXTERN_C extern "C"
# else // !__cplusplus
#  define VBOX_EXTERN_C extern
# endif // !__cplusplus
#endif // !VBOX_EXTERN_C
// result codes declared in API spec
#define VBOX_E_OBJECT_NOT_FOUND ((nsresult)0x80BB0001)
#define VBOX_E_INVALID_VM_STATE ((nsresult)0x80BB0002)
#define VBOX_E_VM_ERROR ((nsresult)0x80BB0003)
#define VBOX_E_FILE_ERROR ((nsresult)0x80BB0004)
#define VBOX_E_IPRT_ERROR ((nsresult)0x80BB0005)
#define VBOX_E_PDM_ERROR ((nsresult)0x80BB0006)
#define VBOX_E_INVALID_OBJECT_STATE ((nsresult)0x80BB0007)
#define VBOX_E_HOST_ERROR ((nsresult)0x80BB0008)
#define VBOX_E_NOT_SUPPORTED ((nsresult)0x80BB0009)
#define VBOX_E_XML_ERROR ((nsresult)0x80BB000A)
#define VBOX_E_INVALID_SESSION_STATE ((nsresult)0x80BB000B)
#define VBOX_E_OBJECT_IN_USE ((nsresult)0x80BB000C)
#define VBOX_E_PASSWORD_INCORRECT ((nsresult)0x80BB000D)
#define VBOX_E_MAXIMUM_REACHED ((nsresult)0x80BB000E)
#define VBOX_E_GSTCTL_GUEST_ERROR ((nsresult)0x80BB000F)
#define VBOX_E_TIMEOUT ((nsresult)0x80BB0010)
#define VBOX_E_DND_ERROR ((nsresult)0x80BB0011)
#define VBOX_E_PLATFORM_ARCH_NOT_SUPPORTED ((nsresult)0x80BB0012)
#define VBOX_E_RECORDING_ERROR ((nsresult)0x80BB0013)
class IVirtualBoxErrorInfo; /* forward declaration */

class INATNetwork; /* forward declaration */

class ICloudNetwork; /* forward declaration */

class IHostOnlyNetwork; /* forward declaration */

class IDHCPServer; /* forward declaration */

class IDHCPConfig; /* forward declaration */

class IDHCPGlobalConfig; /* forward declaration */

class IDHCPGroupCondition; /* forward declaration */

class IDHCPGroupConfig; /* forward declaration */

class IDHCPIndividualConfig; /* forward declaration */

class IVirtualBox; /* forward declaration */

class IVFSExplorer; /* forward declaration */

class ICertificate; /* forward declaration */

class IAppliance; /* forward declaration */

class IVirtualSystemDescription; /* forward declaration */

class IUnattended; /* forward declaration */

class IInternalMachineControl; /* forward declaration */

class IGraphicsAdapter; /* forward declaration */

class IFirmwareSettings; /* forward declaration */

class ITrustedPlatformModule; /* forward declaration */

class IRecordingScreenSettings; /* forward declaration */

class IRecordingSettings; /* forward declaration */

class IPCIAddress; /* forward declaration */

class IPCIDeviceAttachment; /* forward declaration */

class IUefiVariableStore; /* forward declaration */

class INvramStore; /* forward declaration */

class IResourceStore; /* forward declaration */

class IPlatform; /* forward declaration */

class IPlatformX86; /* forward declaration */

class IPlatformARM; /* 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 IUpdateAgent; /* forward declaration */

class IHostUpdateAgent; /* forward declaration */

class IHostDrivePartition; /* forward declaration */

class IHostDrive; /* forward declaration */

class IHostX86; /* forward declaration */

class IHost; /* forward declaration */

class ICPUProfile; /* forward declaration */

class IPlatformProperties; /* 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 IFsInfo; /* forward declaration */

class IFsObjInfo; /* forward declaration */

class IGuestFsInfo; /* forward declaration */

class IGuestFsObjInfo; /* forward declaration */

class IGuest; /* forward declaration */

class IProgress; /* forward declaration */

class IInternalProgressControl; /* forward declaration */

class ISnapshot; /* forward declaration */

class IMediumAttachment; /* forward declaration */

class IMedium; /* forward declaration */

class IMediumFormat; /* forward declaration */

class IDataStream; /* forward declaration */

class IMediumIO; /* 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 IGuestScreenInfo; /* 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 IHostAudioDevice; /* forward declaration */

class IAudioSettings; /* 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 IGuestDebugControl; /* 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 IExtPackInstalledEvent; /* forward declaration */

class IExtPackUninstalledEvent; /* 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 IAudioAdapterChangedEvent; /* forward declaration */

class ISerialPortChangedEvent; /* forward declaration */

class IParallelPortChangedEvent; /* forward declaration */

class IStorageControllerChangedEvent; /* forward declaration */

class IMediumChangedEvent; /* forward declaration */

class IClipboardModeChangedEvent; /* forward declaration */

class IClipboardFileTransferModeChangedEvent; /* forward declaration */

class IClipboardEvent; /* forward declaration */

class IClipboardErrorEvent; /* 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 IGuestDirectoryEvent; /* forward declaration */

class IGuestDirectoryRegisteredEvent; /* forward declaration */

class IGuestDirectoryStateChangedEvent; /* forward declaration */

class IGuestDirectoryReadEvent; /* forward declaration */

class IGuestFileEvent; /* forward declaration */

class IGuestFileRegisteredEvent; /* forward declaration */

class IGuestFileStateChangedEvent; /* forward declaration */

class IGuestFileIOEvent; /* forward declaration */

class IGuestFileOffsetChangedEvent; /* forward declaration */

class IGuestFileSizeChangedEvent; /* forward declaration */

class IGuestFileReadEvent; /* forward declaration */

class IGuestFileWriteEvent; /* forward declaration */

class IVRDEServerChangedEvent; /* forward declaration */

class IVRDEServerInfoChangedEvent; /* forward declaration */

class IRecordingStateChangedEvent; /* forward declaration */

class IRecordingScreenStateChangedEvent; /* 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 IHostAudioDeviceChangedEvent; /* 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 */

class IProgressEvent; /* forward declaration */

class IProgressCreatedEvent; /* forward declaration */

class IProgressPercentageChangedEvent; /* forward declaration */

class IProgressTaskCompletedEvent; /* forward declaration */

class ICursorPositionChangedEvent; /* forward declaration */

class IGuestAdditionsStatusChangedEvent; /* forward declaration */

class IGuestMonitorInfoChangedEvent; /* forward declaration */

class IUpdateAgentEvent; /* forward declaration */

class IUpdateAgentSettingsChangedEvent; /* forward declaration */

class IUpdateAgentErrorEvent; /* forward declaration */

class IUpdateAgentAvailableEvent; /* forward declaration */

class IUpdateAgentStateChangedEvent; /* forward declaration */

class IGuestDebugControlChangedEvent; /* forward declaration */

class IMachineGroupsChangedEvent; /* forward declaration */

class IStringArray; /* forward declaration */

class IFormValue; /* forward declaration */

class IBooleanFormValue; /* forward declaration */

class IRangedIntegerFormValue; /* forward declaration */

class IRangedInteger64FormValue; /* forward declaration */

class IStringFormValue; /* forward declaration */

class IChoiceFormValue; /* forward declaration */

class IForm; /* forward declaration */

class IVirtualSystemDescriptionForm; /* forward declaration */

class ICloudNetworkGatewayInfo; /* forward declaration */

class ICloudNetworkEnvironmentInfo; /* forward declaration */

class ICloudMachine; /* forward declaration */

class ICloudClient; /* forward declaration */

class ICloudProfile; /* forward declaration */

class ICloudProvider; /* forward declaration */

class ICloudProviderManager; /* forward declaration */

class ICloudProviderListChangedEvent; /* forward declaration */

class ICloudProviderRegisteredEvent; /* forward declaration */

class ICloudProviderUninstallEvent; /* forward declaration */

class ICloudProfileRegisteredEvent; /* forward declaration */

class ICloudProfileChangedEvent; /* forward declaration */

class ILanguageChangedEvent; /* forward declaration */


/* starting interface:    SettingsVersion */
#define SETTINGSVERSION_IID_STR "85d84a63-bda8-424e-95fe-3650b6cf5a95"

#define SETTINGSVERSION_IID \
  {0x85d84a63, 0xbda8, 0x424e, \
    { 0x95, 0xfe, 0x36, 0x50, 0xb6, 0xcf, 0x5a, 0x95 }}

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 { v1_17 = 19U };

  enum { v1_18 = 20U };

  enum { v1_19 = 21U };

  enum { v1_20 = 22U };

  enum { v1_21 = 23U };

  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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 SettingsVersion_T;

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

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 AccessMode_T;

# define AccessMode_ReadOnly AccessMode::ReadOnly
# define AccessMode_ReadWrite AccessMode::ReadWrite
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum AccessMode_T {
    AccessMode_ReadOnly = AccessMode::ReadOnly,
    AccessMode_ReadWrite = AccessMode::ReadWrite,
    AccessMode_32BitHack = 0x7fffffff
} AccessMode_T;
# ifdef AssertCompileSize
AssertCompileSize(AccessMode_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    MachineState */
#define MACHINESTATE_IID_STR "00bc01b5-00a4-48db-000a-9061008357aa"

#define MACHINESTATE_IID \
  {0x00bc01b5, 0x00a4, 0x48db, \
    { 0x00, 0x0a, 0x90, 0x61, 0x00, 0x83, 0x57, 0xaa }}

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 { AbortedSaved = 5U };

  enum { Running = 6U };

  enum { Paused = 7U };

  enum { Stuck = 8U };

  enum { Teleporting = 9U };

  enum { LiveSnapshotting = 10U };

  enum { Starting = 11U };

  enum { Stopping = 12U };

  enum { Saving = 13U };

  enum { Restoring = 14U };

  enum { TeleportingPausedVM = 15U };

  enum { TeleportingIn = 16U };

  enum { DeletingSnapshotOnline = 17U };

  enum { DeletingSnapshotPaused = 18U };

  enum { OnlineSnapshotting = 19U };

  enum { RestoringSnapshot = 20U };

  enum { DeletingSnapshot = 21U };

  enum { SettingUp = 22U };

  enum { Snapshotting = 23U };

  enum { FirstOnline = 6U };

  enum { LastOnline = 19U };

  enum { FirstTransient = 9U };

  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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 MachineState_T;

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

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 SessionState_T;

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

/* starting interface:    PlatformArchitecture */
#define PLATFORMARCHITECTURE_IID_STR "36e21926-1713-413d-8cf5-2f169b2cbcf3"

#define PLATFORMARCHITECTURE_IID \
  {0x36e21926, 0x1713, 0x413d, \
    { 0x8c, 0xf5, 0x2f, 0x16, 0x9b, 0x2c, 0xbc, 0xf3 }}

class NS_NO_VTABLE PlatformArchitecture {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(PLATFORMARCHITECTURE_IID)

  enum { None = 0U };

  enum { x86 = 1U };

  enum { ARM = 2U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_PLATFORMARCHITECTURE(_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_PLATFORMARCHITECTURE(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 PlatformArchitecture_T;

# define PlatformArchitecture_None PlatformArchitecture::None
# define PlatformArchitecture_x86 PlatformArchitecture::x86
# define PlatformArchitecture_ARM PlatformArchitecture::ARM
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum PlatformArchitecture_T {
    PlatformArchitecture_None = PlatformArchitecture::None,
    PlatformArchitecture_x86 = PlatformArchitecture::x86,
    PlatformArchitecture_ARM = PlatformArchitecture::ARM,
    PlatformArchitecture_32BitHack = 0x7fffffff
} PlatformArchitecture_T;
# ifdef AssertCompileSize
AssertCompileSize(PlatformArchitecture_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    CPUArchitecture */
#define CPUARCHITECTURE_IID_STR "12906c63-9967-49c8-ba5a-6521adaf0185"

#define CPUARCHITECTURE_IID \
  {0x12906c63, 0x9967, 0x49c8, \
    { 0xba, 0x5a, 0x65, 0x21, 0xad, 0xaf, 0x01, 0x85 }}

class NS_NO_VTABLE CPUArchitecture {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(CPUARCHITECTURE_IID)

  enum { Any = 0U };

  enum { x86 = 1U };

  enum { AMD64 = 2U };

  enum { ARMv8_32 = 3U };

  enum { ARMv8_64 = 4U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_CPUARCHITECTURE(_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_CPUARCHITECTURE(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 CPUArchitecture_T;

# define CPUArchitecture_Any CPUArchitecture::Any
# define CPUArchitecture_x86 CPUArchitecture::x86
# define CPUArchitecture_AMD64 CPUArchitecture::AMD64
# define CPUArchitecture_ARMv8_32 CPUArchitecture::ARMv8_32
# define CPUArchitecture_ARMv8_64 CPUArchitecture::ARMv8_64
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum CPUArchitecture_T {
    CPUArchitecture_Any = CPUArchitecture::Any,
    CPUArchitecture_x86 = CPUArchitecture::x86,
    CPUArchitecture_AMD64 = CPUArchitecture::AMD64,
    CPUArchitecture_ARMv8_32 = CPUArchitecture::ARMv8_32,
    CPUArchitecture_ARMv8_64 = CPUArchitecture::ARMv8_64,
    CPUArchitecture_32BitHack = 0x7fffffff
} CPUArchitecture_T;
# ifdef AssertCompileSize
AssertCompileSize(CPUArchitecture_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    CPUPropertyTypeX86 */
#define CPUPROPERTYTYPEX86_IID_STR "a754b765-3687-4a68-abb9-78dcf4c07d5f"

#define CPUPROPERTYTYPEX86_IID \
  {0xa754b765, 0x3687, 0x4a68, \
    { 0xab, 0xb9, 0x78, 0xdc, 0xf4, 0xc0, 0x7d, 0x5f }}

class NS_NO_VTABLE CPUPropertyTypeX86 {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(CPUPROPERTYTYPEX86_IID)

  enum { Null = 0U };

  enum { PAE = 1U };

  enum { LongMode = 2U };

  enum { TripleFaultReset = 3U };

  enum { APIC = 4U };

  enum { X2APIC = 5U };

  enum { IBPBOnVMExit = 6U };

  enum { IBPBOnVMEntry = 7U };

  enum { HWVirt = 8U };

  enum { SpecCtrl = 9U };

  enum { SpecCtrlByHost = 10U };

  enum { L1DFlushOnEMTScheduling = 11U };

  enum { L1DFlushOnVMEntry = 12U };

  enum { MDSClearOnEMTScheduling = 13U };

  enum { MDSClearOnVMEntry = 14U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_CPUPROPERTYTYPEX86(_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_CPUPROPERTYTYPEX86(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 CPUPropertyTypeX86_T;

# define CPUPropertyTypeX86_Null CPUPropertyTypeX86::Null
# define CPUPropertyTypeX86_PAE CPUPropertyTypeX86::PAE
# define CPUPropertyTypeX86_LongMode CPUPropertyTypeX86::LongMode
# define CPUPropertyTypeX86_TripleFaultReset CPUPropertyTypeX86::TripleFaultReset
# define CPUPropertyTypeX86_APIC CPUPropertyTypeX86::APIC
# define CPUPropertyTypeX86_X2APIC CPUPropertyTypeX86::X2APIC
# define CPUPropertyTypeX86_IBPBOnVMExit CPUPropertyTypeX86::IBPBOnVMExit
# define CPUPropertyTypeX86_IBPBOnVMEntry CPUPropertyTypeX86::IBPBOnVMEntry
# define CPUPropertyTypeX86_HWVirt CPUPropertyTypeX86::HWVirt
# define CPUPropertyTypeX86_SpecCtrl CPUPropertyTypeX86::SpecCtrl
# define CPUPropertyTypeX86_SpecCtrlByHost CPUPropertyTypeX86::SpecCtrlByHost
# define CPUPropertyTypeX86_L1DFlushOnEMTScheduling CPUPropertyTypeX86::L1DFlushOnEMTScheduling
# define CPUPropertyTypeX86_L1DFlushOnVMEntry CPUPropertyTypeX86::L1DFlushOnVMEntry
# define CPUPropertyTypeX86_MDSClearOnEMTScheduling CPUPropertyTypeX86::MDSClearOnEMTScheduling
# define CPUPropertyTypeX86_MDSClearOnVMEntry CPUPropertyTypeX86::MDSClearOnVMEntry
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum CPUPropertyTypeX86_T {
    CPUPropertyTypeX86_Null = CPUPropertyTypeX86::Null,
    CPUPropertyTypeX86_PAE = CPUPropertyTypeX86::PAE,
    CPUPropertyTypeX86_LongMode = CPUPropertyTypeX86::LongMode,
    CPUPropertyTypeX86_TripleFaultReset = CPUPropertyTypeX86::TripleFaultReset,
    CPUPropertyTypeX86_APIC = CPUPropertyTypeX86::APIC,
    CPUPropertyTypeX86_X2APIC = CPUPropertyTypeX86::X2APIC,
    CPUPropertyTypeX86_IBPBOnVMExit = CPUPropertyTypeX86::IBPBOnVMExit,
    CPUPropertyTypeX86_IBPBOnVMEntry = CPUPropertyTypeX86::IBPBOnVMEntry,
    CPUPropertyTypeX86_HWVirt = CPUPropertyTypeX86::HWVirt,
    CPUPropertyTypeX86_SpecCtrl = CPUPropertyTypeX86::SpecCtrl,
    CPUPropertyTypeX86_SpecCtrlByHost = CPUPropertyTypeX86::SpecCtrlByHost,
    CPUPropertyTypeX86_L1DFlushOnEMTScheduling = CPUPropertyTypeX86::L1DFlushOnEMTScheduling,
    CPUPropertyTypeX86_L1DFlushOnVMEntry = CPUPropertyTypeX86::L1DFlushOnVMEntry,
    CPUPropertyTypeX86_MDSClearOnEMTScheduling = CPUPropertyTypeX86::MDSClearOnEMTScheduling,
    CPUPropertyTypeX86_MDSClearOnVMEntry = CPUPropertyTypeX86::MDSClearOnVMEntry,
    CPUPropertyTypeX86_32BitHack = 0x7fffffff
} CPUPropertyTypeX86_T;
# ifdef AssertCompileSize
AssertCompileSize(CPUPropertyTypeX86_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    CPUPropertyTypeARM */
#define CPUPROPERTYTYPEARM_IID_STR "f84eb90a-3e01-47cf-88c1-f8fc559dd37a"

#define CPUPROPERTYTYPEARM_IID \
  {0xf84eb90a, 0x3e01, 0x47cf, \
    { 0x88, 0xc1, 0xf8, 0xfc, 0x55, 0x9d, 0xd3, 0x7a }}

class NS_NO_VTABLE CPUPropertyTypeARM {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(CPUPROPERTYTYPEARM_IID)

  enum { Null = 0U };

  enum { HWVirt = 1U };

  enum { GICITS = 2U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_CPUPROPERTYTYPEARM(_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_CPUPROPERTYTYPEARM(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 CPUPropertyTypeARM_T;

# define CPUPropertyTypeARM_Null CPUPropertyTypeARM::Null
# define CPUPropertyTypeARM_HWVirt CPUPropertyTypeARM::HWVirt
# define CPUPropertyTypeARM_GICITS CPUPropertyTypeARM::GICITS
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum CPUPropertyTypeARM_T {
    CPUPropertyTypeARM_Null = CPUPropertyTypeARM::Null,
    CPUPropertyTypeARM_HWVirt = CPUPropertyTypeARM::HWVirt,
    CPUPropertyTypeARM_GICITS = CPUPropertyTypeARM::GICITS,
    CPUPropertyTypeARM_32BitHack = 0x7fffffff
} CPUPropertyTypeARM_T;
# ifdef AssertCompileSize
AssertCompileSize(CPUPropertyTypeARM_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    HWVirtExPropertyType */
#define HWVIRTEXPROPERTYTYPE_IID_STR "00069d9c-00b5-460c-00dd-64250024f7aa"

#define HWVIRTEXPROPERTYTYPE_IID \
  {0x00069d9c, 0x00b5, 0x460c, \
    { 0x00, 0xdd, 0x64, 0x25, 0x00, 0x24, 0xf7, 0xaa }}

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 };

  enum { UseNativeApi = 7U };

  enum { VirtVmsaveVmload = 8U };

};

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 HWVirtExPropertyType_T;

# define HWVirtExPropertyType_Null HWVirtExPropertyType::Null
# define HWVirtExPropertyType_Enabled HWVirtExPropertyType::Enabled
# define HWVirtExPropertyType_VPID HWVirtExPropertyType::VPID
# define HWVirtExPropertyType_NestedPaging HWVirtExPropertyType::NestedPaging
# define HWVirtExPropertyType_UnrestrictedExecution HWVirtExPropertyType::UnrestrictedExecution
# define HWVirtExPropertyType_LargePages HWVirtExPropertyType::LargePages
# define HWVirtExPropertyType_Force HWVirtExPropertyType::Force
# define HWVirtExPropertyType_UseNativeApi HWVirtExPropertyType::UseNativeApi
# define HWVirtExPropertyType_VirtVmsaveVmload HWVirtExPropertyType::VirtVmsaveVmload
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum HWVirtExPropertyType_T {
    HWVirtExPropertyType_Null = HWVirtExPropertyType::Null,
    HWVirtExPropertyType_Enabled = HWVirtExPropertyType::Enabled,
    HWVirtExPropertyType_VPID = HWVirtExPropertyType::VPID,
    HWVirtExPropertyType_NestedPaging = HWVirtExPropertyType::NestedPaging,
    HWVirtExPropertyType_UnrestrictedExecution = HWVirtExPropertyType::UnrestrictedExecution,
    HWVirtExPropertyType_LargePages = HWVirtExPropertyType::LargePages,
    HWVirtExPropertyType_Force = HWVirtExPropertyType::Force,
    HWVirtExPropertyType_UseNativeApi = HWVirtExPropertyType::UseNativeApi,
    HWVirtExPropertyType_VirtVmsaveVmload = HWVirtExPropertyType::VirtVmsaveVmload,
    HWVirtExPropertyType_32BitHack = 0x7fffffff
} HWVirtExPropertyType_T;
# ifdef AssertCompileSize
AssertCompileSize(HWVirtExPropertyType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 ParavirtProvider_T;

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

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 LockType_T;

# define LockType_Null LockType::Null
# define LockType_Shared LockType::Shared
# define LockType_Write LockType::Write
# define LockType_VM LockType::VM
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum LockType_T {
    LockType_Null = LockType::Null,
    LockType_Shared = LockType::Shared,
    LockType_Write = LockType::Write,
    LockType_VM = LockType::VM,
    LockType_32BitHack = 0x7fffffff
} LockType_T;
# ifdef AssertCompileSize
AssertCompileSize(LockType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 SessionType_T;

# define SessionType_Null SessionType::Null
# define SessionType_WriteLock SessionType::WriteLock
# define SessionType_Remote SessionType::Remote
# define SessionType_Shared SessionType::Shared
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum SessionType_T {
    SessionType_Null = SessionType::Null,
    SessionType_WriteLock = SessionType::WriteLock,
    SessionType_Remote = SessionType::Remote,
    SessionType_Shared = SessionType::Shared,
    SessionType_32BitHack = 0x7fffffff
} SessionType_T;
# ifdef AssertCompileSize
AssertCompileSize(SessionType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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 };

  enum { End = 8U };

};

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 DeviceType_T;

# 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
# define DeviceType_End DeviceType::End
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum DeviceType_T {
    DeviceType_Null = DeviceType::Null,
    DeviceType_Floppy = DeviceType::Floppy,
    DeviceType_DVD = DeviceType::DVD,
    DeviceType_HardDisk = DeviceType::HardDisk,
    DeviceType_Network = DeviceType::Network,
    DeviceType_USB = DeviceType::USB,
    DeviceType_SharedFolder = DeviceType::SharedFolder,
    DeviceType_Graphics3D = DeviceType::Graphics3D,
    DeviceType_End = DeviceType::End,
    DeviceType_32BitHack = 0x7fffffff
} DeviceType_T;
# ifdef AssertCompileSize
AssertCompileSize(DeviceType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 DeviceActivity_T;

# define DeviceActivity_Null DeviceActivity::Null
# define DeviceActivity_Idle DeviceActivity::Idle
# define DeviceActivity_Reading DeviceActivity::Reading
# define DeviceActivity_Writing DeviceActivity::Writing
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum DeviceActivity_T {
    DeviceActivity_Null = DeviceActivity::Null,
    DeviceActivity_Idle = DeviceActivity::Idle,
    DeviceActivity_Reading = DeviceActivity::Reading,
    DeviceActivity_Writing = DeviceActivity::Writing,
    DeviceActivity_32BitHack = 0x7fffffff
} DeviceActivity_T;
# ifdef AssertCompileSize
AssertCompileSize(DeviceActivity_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 ClipboardMode_T;

# define ClipboardMode_Disabled ClipboardMode::Disabled
# define ClipboardMode_HostToGuest ClipboardMode::HostToGuest
# define ClipboardMode_GuestToHost ClipboardMode::GuestToHost
# define ClipboardMode_Bidirectional ClipboardMode::Bidirectional
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum ClipboardMode_T {
    ClipboardMode_Disabled = ClipboardMode::Disabled,
    ClipboardMode_HostToGuest = ClipboardMode::HostToGuest,
    ClipboardMode_GuestToHost = ClipboardMode::GuestToHost,
    ClipboardMode_Bidirectional = ClipboardMode::Bidirectional,
    ClipboardMode_32BitHack = 0x7fffffff
} ClipboardMode_T;
# ifdef AssertCompileSize
AssertCompileSize(ClipboardMode_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 DnDMode_T;

# define DnDMode_Disabled DnDMode::Disabled
# define DnDMode_HostToGuest DnDMode::HostToGuest
# define DnDMode_GuestToHost DnDMode::GuestToHost
# define DnDMode_Bidirectional DnDMode::Bidirectional
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum DnDMode_T {
    DnDMode_Disabled = DnDMode::Disabled,
    DnDMode_HostToGuest = DnDMode::HostToGuest,
    DnDMode_GuestToHost = DnDMode::GuestToHost,
    DnDMode_Bidirectional = DnDMode::Bidirectional,
    DnDMode_32BitHack = 0x7fffffff
} DnDMode_T;
# ifdef AssertCompileSize
AssertCompileSize(DnDMode_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 Scope_T;

# define Scope_Global Scope::Global
# define Scope_Machine Scope::Machine
# define Scope_Session Scope::Session
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum Scope_T {
    Scope_Global = Scope::Global,
    Scope_Machine = Scope::Machine,
    Scope_Session = Scope::Session,
    Scope_32BitHack = 0x7fffffff
} Scope_T;
# ifdef AssertCompileSize
AssertCompileSize(Scope_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    FirmwareBootMenuMode */
#define FIRMWAREBOOTMENUMODE_IID_STR "bf88ec90-7fbb-4c78-bd71-5f8751d71450"

#define FIRMWAREBOOTMENUMODE_IID \
  {0xbf88ec90, 0x7fbb, 0x4c78, \
    { 0xbd, 0x71, 0x5f, 0x87, 0x51, 0xd7, 0x14, 0x50 }}

class NS_NO_VTABLE FirmwareBootMenuMode {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FIRMWAREBOOTMENUMODE_IID)

  enum { Disabled = 0U };

  enum { MenuOnly = 1U };

  enum { MessageAndMenu = 2U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FIRMWAREBOOTMENUMODE(_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_FIRMWAREBOOTMENUMODE(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 FirmwareBootMenuMode_T;

# define FirmwareBootMenuMode_Disabled FirmwareBootMenuMode::Disabled
# define FirmwareBootMenuMode_MenuOnly FirmwareBootMenuMode::MenuOnly
# define FirmwareBootMenuMode_MessageAndMenu FirmwareBootMenuMode::MessageAndMenu
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum FirmwareBootMenuMode_T {
    FirmwareBootMenuMode_Disabled = FirmwareBootMenuMode::Disabled,
    FirmwareBootMenuMode_MenuOnly = FirmwareBootMenuMode::MenuOnly,
    FirmwareBootMenuMode_MessageAndMenu = FirmwareBootMenuMode::MessageAndMenu,
    FirmwareBootMenuMode_32BitHack = 0x7fffffff
} FirmwareBootMenuMode_T;
# ifdef AssertCompileSize
AssertCompileSize(FirmwareBootMenuMode_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 APICMode_T;

# define APICMode_Disabled APICMode::Disabled
# define APICMode_APIC APICMode::APIC
# define APICMode_X2APIC APICMode::X2APIC
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum APICMode_T {
    APICMode_Disabled = APICMode::Disabled,
    APICMode_APIC = APICMode::APIC,
    APICMode_X2APIC = APICMode::X2APIC,
    APICMode_32BitHack = 0x7fffffff
} APICMode_T;
# ifdef AssertCompileSize
AssertCompileSize(APICMode_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    ProcessorFeature */
#define PROCESSORFEATURE_IID_STR "0064dece-000e-4963-00f8-eb9b00674c8a"

#define PROCESSORFEATURE_IID \
  {0x0064dece, 0x000e, 0x4963, \
    { 0x00, 0xf8, 0xeb, 0x9b, 0x00, 0x67, 0x4c, 0x8a }}

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 };

  enum { UnrestrictedGuest = 4U };

  enum { NestedHWVirt = 5U };

  enum { VirtVmsaveVmload = 6U };

};

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 ProcessorFeature_T;

# define ProcessorFeature_HWVirtEx ProcessorFeature::HWVirtEx
# define ProcessorFeature_PAE ProcessorFeature::PAE
# define ProcessorFeature_LongMode ProcessorFeature::LongMode
# define ProcessorFeature_NestedPaging ProcessorFeature::NestedPaging
# define ProcessorFeature_UnrestrictedGuest ProcessorFeature::UnrestrictedGuest
# define ProcessorFeature_NestedHWVirt ProcessorFeature::NestedHWVirt
# define ProcessorFeature_VirtVmsaveVmload ProcessorFeature::VirtVmsaveVmload
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum ProcessorFeature_T {
    ProcessorFeature_HWVirtEx = ProcessorFeature::HWVirtEx,
    ProcessorFeature_PAE = ProcessorFeature::PAE,
    ProcessorFeature_LongMode = ProcessorFeature::LongMode,
    ProcessorFeature_NestedPaging = ProcessorFeature::NestedPaging,
    ProcessorFeature_UnrestrictedGuest = ProcessorFeature::UnrestrictedGuest,
    ProcessorFeature_NestedHWVirt = ProcessorFeature::NestedHWVirt,
    ProcessorFeature_VirtVmsaveVmload = ProcessorFeature::VirtVmsaveVmload,
    ProcessorFeature_32BitHack = 0x7fffffff
} ProcessorFeature_T;
# ifdef AssertCompileSize
AssertCompileSize(ProcessorFeature_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 FirmwareType_T;

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

/* starting interface:    PointingHIDType */
#define POINTINGHIDTYPE_IID_STR "b3fd8215-6870-4e61-b6d9-2998fa625de0"

#define POINTINGHIDTYPE_IID \
  {0xb3fd8215, 0x6870, 0x4e61, \
    { 0xb6, 0xd9, 0x29, 0x98, 0xfa, 0x62, 0x5d, 0xe0 }}

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 };

  enum { USBMultiTouchScreenPlusPad = 7U };

};

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 PointingHIDType_T;

# 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
# define PointingHIDType_USBMultiTouchScreenPlusPad PointingHIDType::USBMultiTouchScreenPlusPad
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum PointingHIDType_T {
    PointingHIDType_None = PointingHIDType::None,
    PointingHIDType_PS2Mouse = PointingHIDType::PS2Mouse,
    PointingHIDType_USBMouse = PointingHIDType::USBMouse,
    PointingHIDType_USBTablet = PointingHIDType::USBTablet,
    PointingHIDType_ComboMouse = PointingHIDType::ComboMouse,
    PointingHIDType_USBMultiTouch = PointingHIDType::USBMultiTouch,
    PointingHIDType_USBMultiTouchScreenPlusPad = PointingHIDType::USBMultiTouchScreenPlusPad,
    PointingHIDType_32BitHack = 0x7fffffff
} PointingHIDType_T;
# ifdef AssertCompileSize
AssertCompileSize(PointingHIDType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 KeyboardHIDType_T;

# define KeyboardHIDType_None KeyboardHIDType::None
# define KeyboardHIDType_PS2Keyboard KeyboardHIDType::PS2Keyboard
# define KeyboardHIDType_USBKeyboard KeyboardHIDType::USBKeyboard
# define KeyboardHIDType_ComboKeyboard KeyboardHIDType::ComboKeyboard
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum KeyboardHIDType_T {
    KeyboardHIDType_None = KeyboardHIDType::None,
    KeyboardHIDType_PS2Keyboard = KeyboardHIDType::PS2Keyboard,
    KeyboardHIDType_USBKeyboard = KeyboardHIDType::USBKeyboard,
    KeyboardHIDType_ComboKeyboard = KeyboardHIDType::ComboKeyboard,
    KeyboardHIDType_32BitHack = 0x7fffffff
} KeyboardHIDType_T;
# ifdef AssertCompileSize
AssertCompileSize(KeyboardHIDType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 BitmapFormat_T;

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

/* starting interface:    PartitioningType */
#define PARTITIONINGTYPE_IID_STR "64c4c806-8908-4c0b-9a51-2d7a0151321f"

#define PARTITIONINGTYPE_IID \
  {0x64c4c806, 0x8908, 0x4c0b, \
    { 0x9a, 0x51, 0x2d, 0x7a, 0x01, 0x51, 0x32, 0x1f }}

class NS_NO_VTABLE PartitioningType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(PARTITIONINGTYPE_IID)

  enum { MBR = 0U };

  enum { GPT = 1U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_PARTITIONINGTYPE(_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_PARTITIONINGTYPE(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 PartitioningType_T;

# define PartitioningType_MBR PartitioningType::MBR
# define PartitioningType_GPT PartitioningType::GPT
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum PartitioningType_T {
    PartitioningType_MBR = PartitioningType::MBR,
    PartitioningType_GPT = PartitioningType::GPT,
    PartitioningType_32BitHack = 0x7fffffff
} PartitioningType_T;
# ifdef AssertCompileSize
AssertCompileSize(PartitioningType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    PartitionType */
#define PARTITIONTYPE_IID_STR "84a6629c-8e9c-474c-adbb-21995671597f"

#define PARTITIONTYPE_IID \
  {0x84a6629c, 0x8e9c, 0x474c, \
    { 0xad, 0xbb, 0x21, 0x99, 0x56, 0x71, 0x59, 0x7f }}

class NS_NO_VTABLE PartitionType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(PARTITIONTYPE_IID)

  enum { Empty = 0U };

  enum { FAT12 = 1U };

  enum { FAT16 = 4U };

  enum { FAT = 6U };

  enum { IFS = 7U };

  enum { FAT32CHS = 11U };

  enum { FAT32LBA = 12U };

  enum { FAT16B = 14U };

  enum { Extended = 15U };

  enum { WindowsRE = 39U };

  enum { LinuxSwapOld = 66U };

  enum { LinuxOld = 67U };

  enum { DragonFlyBSDSlice = 108U };

  enum { LinuxSwap = 130U };

  enum { Linux = 131U };

  enum { LinuxExtended = 133U };

  enum { LinuxLVM = 142U };

  enum { BSDSlice = 165U };

  enum { AppleUFS = 168U };

  enum { AppleHFS = 175U };

  enum { Solaris = 191U };

  enum { GPT = 238U };

  enum { EFI = 239U };

  enum { Unknown = 256U };

  enum { MBR = 257U };

  enum { iFFS = 258U };

  enum { SonyBoot = 259U };

  enum { LenovoBoot = 260U };

  enum { WindowsMSR = 270U };

  enum { WindowsBasicData = 271U };

  enum { WindowsLDMMeta = 272U };

  enum { WindowsLDMData = 273U };

  enum { WindowsRecovery = 274U };

  enum { WindowsStorageSpaces = 276U };

  enum { WindowsStorageReplica = 277U };

  enum { IBMGPFS = 275U };

  enum { LinuxData = 300U };

  enum { LinuxRAID = 301U };

  enum { LinuxRootX86 = 302U };

  enum { LinuxRootAMD64 = 303U };

  enum { LinuxRootARM32 = 304U };

  enum { LinuxRootARM64 = 305U };

  enum { LinuxHome = 306U };

  enum { LinuxSrv = 307U };

  enum { LinuxPlainDmCrypt = 308U };

  enum { LinuxLUKS = 309U };

  enum { LinuxReserved = 310U };

  enum { FreeBSDBoot = 330U };

  enum { FreeBSDData = 331U };

  enum { FreeBSDSwap = 332U };

  enum { FreeBSDUFS = 333U };

  enum { FreeBSDVinum = 334U };

  enum { FreeBSDZFS = 335U };

  enum { FreeBSDUnknown = 359U };

  enum { AppleHFSPlus = 360U };

  enum { AppleAPFS = 361U };

  enum { AppleRAID = 362U };

  enum { AppleRAIDOffline = 363U };

  enum { AppleBoot = 364U };

  enum { AppleLabel = 365U };

  enum { AppleTvRecovery = 366U };

  enum { AppleCoreStorage = 367U };

  enum { SoftRAIDStatus = 370U };

  enum { SoftRAIDScratch = 371U };

  enum { SoftRAIDVolume = 372U };

  enum { SoftRAIDCache = 373U };

  enum { AppleUnknown = 389U };

  enum { SolarisBoot = 390U };

  enum { SolarisRoot = 391U };

  enum { SolarisSwap = 392U };

  enum { SolarisBackup = 393U };

  enum { SolarisUsr = 394U };

  enum { SolarisVar = 395U };

  enum { SolarisHome = 396U };

  enum { SolarisAltSector = 397U };

  enum { SolarisReserved = 398U };

  enum { SolarisUnknown = 419U };

  enum { NetBSDSwap = 420U };

  enum { NetBSDFFS = 421U };

  enum { NetBSDLFS = 422U };

  enum { NetBSDRAID = 423U };

  enum { NetBSDConcatenated = 424U };

  enum { NetBSDEncrypted = 425U };

  enum { NetBSDUnknown = 449U };

  enum { ChromeOSKernel = 450U };

  enum { ChromeOSRootFS = 451U };

  enum { ChromeOSFuture = 452U };

  enum { ContLnxUsr = 480U };

  enum { ContLnxRoot = 481U };

  enum { ContLnxReserved = 482U };

  enum { ContLnxRootRAID = 483U };

  enum { HaikuBFS = 510U };

  enum { MidntBSDBoot = 540U };

  enum { MidntBSDData = 541U };

  enum { MidntBSDSwap = 542U };

  enum { MidntBSDUFS = 543U };

  enum { MidntBSDVium = 544U };

  enum { MidntBSDZFS = 545U };

  enum { MidntBSDUnknown = 569U };

  enum { OpenBSDData = 570U };

  enum { QNXPowerSafeFS = 600U };

  enum { Plan9 = 630U };

  enum { VMWareVMKCore = 660U };

  enum { VMWareVMFS = 661U };

  enum { VMWareReserved = 662U };

  enum { VMWareUnknown = 689U };

  enum { AndroidX86Bootloader = 690U };

  enum { AndroidX86Bootloader2 = 691U };

  enum { AndroidX86Boot = 692U };

  enum { AndroidX86Recovery = 693U };

  enum { AndroidX86Misc = 694U };

  enum { AndroidX86Metadata = 695U };

  enum { AndroidX86System = 696U };

  enum { AndroidX86Cache = 697U };

  enum { AndroidX86Data = 698U };

  enum { AndroidX86Persistent = 699U };

  enum { AndroidX86Vendor = 700U };

  enum { AndroidX86Config = 701U };

  enum { AndroidX86Factory = 702U };

  enum { AndroidX86FactoryAlt = 703U };

  enum { AndroidX86Fastboot = 704U };

  enum { AndroidX86OEM = 705U };

  enum { AndroidARMMeta = 720U };

  enum { AndroidARMExt = 721U };

  enum { ONIEBoot = 750U };

  enum { ONIEConfig = 751U };

  enum { PowerPCPrep = 780U };

  enum { XDGShrBootConfig = 810U };

  enum { CephBlock = 830U };

  enum { CephBlockDB = 831U };

  enum { CephBlockDBDmc = 832U };

  enum { CephBlockDBDmcLUKS = 833U };

  enum { CephBlockDmc = 834U };

  enum { CephBlockDmcLUKS = 835U };

  enum { CephBlockWALog = 836U };

  enum { CephBlockWALogDmc = 837U };

  enum { CephBlockWALogDmcLUKS = 838U };

  enum { CephDisk = 839U };

  enum { CephDiskDmc = 840U };

  enum { CephJournal = 841U };

  enum { CephJournalDmc = 842U };

  enum { CephJournalDmcLUKS = 843U };

  enum { CephLockbox = 844U };

  enum { CephMultipathBlock1 = 845U };

  enum { CephMultipathBlock2 = 846U };

  enum { CephMultipathBlockDB = 847U };

  enum { CephMultipathBLockWALog = 848U };

  enum { CephMultipathJournal = 849U };

  enum { CephMultipathOSD = 851U };

  enum { CephOSD = 852U };

  enum { CephOSDDmc = 853U };

  enum { CephOSDDmcLUKS = 854U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_PARTITIONTYPE(_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_PARTITIONTYPE(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 PartitionType_T;

# define PartitionType_Empty PartitionType::Empty
# define PartitionType_FAT12 PartitionType::FAT12
# define PartitionType_FAT16 PartitionType::FAT16
# define PartitionType_FAT PartitionType::FAT
# define PartitionType_IFS PartitionType::IFS
# define PartitionType_FAT32CHS PartitionType::FAT32CHS
# define PartitionType_FAT32LBA PartitionType::FAT32LBA
# define PartitionType_FAT16B PartitionType::FAT16B
# define PartitionType_Extended PartitionType::Extended
# define PartitionType_WindowsRE PartitionType::WindowsRE
# define PartitionType_LinuxSwapOld PartitionType::LinuxSwapOld
# define PartitionType_LinuxOld PartitionType::LinuxOld
# define PartitionType_DragonFlyBSDSlice PartitionType::DragonFlyBSDSlice
# define PartitionType_LinuxSwap PartitionType::LinuxSwap
# define PartitionType_Linux PartitionType::Linux
# define PartitionType_LinuxExtended PartitionType::LinuxExtended
# define PartitionType_LinuxLVM PartitionType::LinuxLVM
# define PartitionType_BSDSlice PartitionType::BSDSlice
# define PartitionType_AppleUFS PartitionType::AppleUFS
# define PartitionType_AppleHFS PartitionType::AppleHFS
# define PartitionType_Solaris PartitionType::Solaris
# define PartitionType_GPT PartitionType::GPT
# define PartitionType_EFI PartitionType::EFI
# define PartitionType_Unknown PartitionType::Unknown
# define PartitionType_MBR PartitionType::MBR
# define PartitionType_iFFS PartitionType::iFFS
# define PartitionType_SonyBoot PartitionType::SonyBoot
# define PartitionType_LenovoBoot PartitionType::LenovoBoot
# define PartitionType_WindowsMSR PartitionType::WindowsMSR
# define PartitionType_WindowsBasicData PartitionType::WindowsBasicData
# define PartitionType_WindowsLDMMeta PartitionType::WindowsLDMMeta
# define PartitionType_WindowsLDMData PartitionType::WindowsLDMData
# define PartitionType_WindowsRecovery PartitionType::WindowsRecovery
# define PartitionType_WindowsStorageSpaces PartitionType::WindowsStorageSpaces
# define PartitionType_WindowsStorageReplica PartitionType::WindowsStorageReplica
# define PartitionType_IBMGPFS PartitionType::IBMGPFS
# define PartitionType_LinuxData PartitionType::LinuxData
# define PartitionType_LinuxRAID PartitionType::LinuxRAID
# define PartitionType_LinuxRootX86 PartitionType::LinuxRootX86
# define PartitionType_LinuxRootAMD64 PartitionType::LinuxRootAMD64
# define PartitionType_LinuxRootARM32 PartitionType::LinuxRootARM32
# define PartitionType_LinuxRootARM64 PartitionType::LinuxRootARM64
# define PartitionType_LinuxHome PartitionType::LinuxHome
# define PartitionType_LinuxSrv PartitionType::LinuxSrv
# define PartitionType_LinuxPlainDmCrypt PartitionType::LinuxPlainDmCrypt
# define PartitionType_LinuxLUKS PartitionType::LinuxLUKS
# define PartitionType_LinuxReserved PartitionType::LinuxReserved
# define PartitionType_FreeBSDBoot PartitionType::FreeBSDBoot
# define PartitionType_FreeBSDData PartitionType::FreeBSDData
# define PartitionType_FreeBSDSwap PartitionType::FreeBSDSwap
# define PartitionType_FreeBSDUFS PartitionType::FreeBSDUFS
# define PartitionType_FreeBSDVinum PartitionType::FreeBSDVinum
# define PartitionType_FreeBSDZFS PartitionType::FreeBSDZFS
# define PartitionType_FreeBSDUnknown PartitionType::FreeBSDUnknown
# define PartitionType_AppleHFSPlus PartitionType::AppleHFSPlus
# define PartitionType_AppleAPFS PartitionType::AppleAPFS
# define PartitionType_AppleRAID PartitionType::AppleRAID
# define PartitionType_AppleRAIDOffline PartitionType::AppleRAIDOffline
# define PartitionType_AppleBoot PartitionType::AppleBoot
# define PartitionType_AppleLabel PartitionType::AppleLabel
# define PartitionType_AppleTvRecovery PartitionType::AppleTvRecovery
# define PartitionType_AppleCoreStorage PartitionType::AppleCoreStorage
# define PartitionType_SoftRAIDStatus PartitionType::SoftRAIDStatus
# define PartitionType_SoftRAIDScratch PartitionType::SoftRAIDScratch
# define PartitionType_SoftRAIDVolume PartitionType::SoftRAIDVolume
# define PartitionType_SoftRAIDCache PartitionType::SoftRAIDCache
# define PartitionType_AppleUnknown PartitionType::AppleUnknown
# define PartitionType_SolarisBoot PartitionType::SolarisBoot
# define PartitionType_SolarisRoot PartitionType::SolarisRoot
# define PartitionType_SolarisSwap PartitionType::SolarisSwap
# define PartitionType_SolarisBackup PartitionType::SolarisBackup
# define PartitionType_SolarisUsr PartitionType::SolarisUsr
# define PartitionType_SolarisVar PartitionType::SolarisVar
# define PartitionType_SolarisHome PartitionType::SolarisHome
# define PartitionType_SolarisAltSector PartitionType::SolarisAltSector
# define PartitionType_SolarisReserved PartitionType::SolarisReserved
# define PartitionType_SolarisUnknown PartitionType::SolarisUnknown
# define PartitionType_NetBSDSwap PartitionType::NetBSDSwap
# define PartitionType_NetBSDFFS PartitionType::NetBSDFFS
# define PartitionType_NetBSDLFS PartitionType::NetBSDLFS
# define PartitionType_NetBSDRAID PartitionType::NetBSDRAID
# define PartitionType_NetBSDConcatenated PartitionType::NetBSDConcatenated
# define PartitionType_NetBSDEncrypted PartitionType::NetBSDEncrypted
# define PartitionType_NetBSDUnknown PartitionType::NetBSDUnknown
# define PartitionType_ChromeOSKernel PartitionType::ChromeOSKernel
# define PartitionType_ChromeOSRootFS PartitionType::ChromeOSRootFS
# define PartitionType_ChromeOSFuture PartitionType::ChromeOSFuture
# define PartitionType_ContLnxUsr PartitionType::ContLnxUsr
# define PartitionType_ContLnxRoot PartitionType::ContLnxRoot
# define PartitionType_ContLnxReserved PartitionType::ContLnxReserved
# define PartitionType_ContLnxRootRAID PartitionType::ContLnxRootRAID
# define PartitionType_HaikuBFS PartitionType::HaikuBFS
# define PartitionType_MidntBSDBoot PartitionType::MidntBSDBoot
# define PartitionType_MidntBSDData PartitionType::MidntBSDData
# define PartitionType_MidntBSDSwap PartitionType::MidntBSDSwap
# define PartitionType_MidntBSDUFS PartitionType::MidntBSDUFS
# define PartitionType_MidntBSDVium PartitionType::MidntBSDVium
# define PartitionType_MidntBSDZFS PartitionType::MidntBSDZFS
# define PartitionType_MidntBSDUnknown PartitionType::MidntBSDUnknown
# define PartitionType_OpenBSDData PartitionType::OpenBSDData
# define PartitionType_QNXPowerSafeFS PartitionType::QNXPowerSafeFS
# define PartitionType_Plan9 PartitionType::Plan9
# define PartitionType_VMWareVMKCore PartitionType::VMWareVMKCore
# define PartitionType_VMWareVMFS PartitionType::VMWareVMFS
# define PartitionType_VMWareReserved PartitionType::VMWareReserved
# define PartitionType_VMWareUnknown PartitionType::VMWareUnknown
# define PartitionType_AndroidX86Bootloader PartitionType::AndroidX86Bootloader
# define PartitionType_AndroidX86Bootloader2 PartitionType::AndroidX86Bootloader2
# define PartitionType_AndroidX86Boot PartitionType::AndroidX86Boot
# define PartitionType_AndroidX86Recovery PartitionType::AndroidX86Recovery
# define PartitionType_AndroidX86Misc PartitionType::AndroidX86Misc
# define PartitionType_AndroidX86Metadata PartitionType::AndroidX86Metadata
# define PartitionType_AndroidX86System PartitionType::AndroidX86System
# define PartitionType_AndroidX86Cache PartitionType::AndroidX86Cache
# define PartitionType_AndroidX86Data PartitionType::AndroidX86Data
# define PartitionType_AndroidX86Persistent PartitionType::AndroidX86Persistent
# define PartitionType_AndroidX86Vendor PartitionType::AndroidX86Vendor
# define PartitionType_AndroidX86Config PartitionType::AndroidX86Config
# define PartitionType_AndroidX86Factory PartitionType::AndroidX86Factory
# define PartitionType_AndroidX86FactoryAlt PartitionType::AndroidX86FactoryAlt
# define PartitionType_AndroidX86Fastboot PartitionType::AndroidX86Fastboot
# define PartitionType_AndroidX86OEM PartitionType::AndroidX86OEM
# define PartitionType_AndroidARMMeta PartitionType::AndroidARMMeta
# define PartitionType_AndroidARMExt PartitionType::AndroidARMExt
# define PartitionType_ONIEBoot PartitionType::ONIEBoot
# define PartitionType_ONIEConfig PartitionType::ONIEConfig
# define PartitionType_PowerPCPrep PartitionType::PowerPCPrep
# define PartitionType_XDGShrBootConfig PartitionType::XDGShrBootConfig
# define PartitionType_CephBlock PartitionType::CephBlock
# define PartitionType_CephBlockDB PartitionType::CephBlockDB
# define PartitionType_CephBlockDBDmc PartitionType::CephBlockDBDmc
# define PartitionType_CephBlockDBDmcLUKS PartitionType::CephBlockDBDmcLUKS
# define PartitionType_CephBlockDmc PartitionType::CephBlockDmc
# define PartitionType_CephBlockDmcLUKS PartitionType::CephBlockDmcLUKS
# define PartitionType_CephBlockWALog PartitionType::CephBlockWALog
# define PartitionType_CephBlockWALogDmc PartitionType::CephBlockWALogDmc
# define PartitionType_CephBlockWALogDmcLUKS PartitionType::CephBlockWALogDmcLUKS
# define PartitionType_CephDisk PartitionType::CephDisk
# define PartitionType_CephDiskDmc PartitionType::CephDiskDmc
# define PartitionType_CephJournal PartitionType::CephJournal
# define PartitionType_CephJournalDmc PartitionType::CephJournalDmc
# define PartitionType_CephJournalDmcLUKS PartitionType::CephJournalDmcLUKS
# define PartitionType_CephLockbox PartitionType::CephLockbox
# define PartitionType_CephMultipathBlock1 PartitionType::CephMultipathBlock1
# define PartitionType_CephMultipathBlock2 PartitionType::CephMultipathBlock2
# define PartitionType_CephMultipathBlockDB PartitionType::CephMultipathBlockDB
# define PartitionType_CephMultipathBLockWALog PartitionType::CephMultipathBLockWALog
# define PartitionType_CephMultipathJournal PartitionType::CephMultipathJournal
# define PartitionType_CephMultipathOSD PartitionType::CephMultipathOSD
# define PartitionType_CephOSD PartitionType::CephOSD
# define PartitionType_CephOSDDmc PartitionType::CephOSDDmc
# define PartitionType_CephOSDDmcLUKS PartitionType::CephOSDDmcLUKS
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum PartitionType_T {
    PartitionType_Empty = PartitionType::Empty,
    PartitionType_FAT12 = PartitionType::FAT12,
    PartitionType_FAT16 = PartitionType::FAT16,
    PartitionType_FAT = PartitionType::FAT,
    PartitionType_IFS = PartitionType::IFS,
    PartitionType_FAT32CHS = PartitionType::FAT32CHS,
    PartitionType_FAT32LBA = PartitionType::FAT32LBA,
    PartitionType_FAT16B = PartitionType::FAT16B,
    PartitionType_Extended = PartitionType::Extended,
    PartitionType_WindowsRE = PartitionType::WindowsRE,
    PartitionType_LinuxSwapOld = PartitionType::LinuxSwapOld,
    PartitionType_LinuxOld = PartitionType::LinuxOld,
    PartitionType_DragonFlyBSDSlice = PartitionType::DragonFlyBSDSlice,
    PartitionType_LinuxSwap = PartitionType::LinuxSwap,
    PartitionType_Linux = PartitionType::Linux,
    PartitionType_LinuxExtended = PartitionType::LinuxExtended,
    PartitionType_LinuxLVM = PartitionType::LinuxLVM,
    PartitionType_BSDSlice = PartitionType::BSDSlice,
    PartitionType_AppleUFS = PartitionType::AppleUFS,
    PartitionType_AppleHFS = PartitionType::AppleHFS,
    PartitionType_Solaris = PartitionType::Solaris,
    PartitionType_GPT = PartitionType::GPT,
    PartitionType_EFI = PartitionType::EFI,
    PartitionType_Unknown = PartitionType::Unknown,
    PartitionType_MBR = PartitionType::MBR,
    PartitionType_iFFS = PartitionType::iFFS,
    PartitionType_SonyBoot = PartitionType::SonyBoot,
    PartitionType_LenovoBoot = PartitionType::LenovoBoot,
    PartitionType_WindowsMSR = PartitionType::WindowsMSR,
    PartitionType_WindowsBasicData = PartitionType::WindowsBasicData,
    PartitionType_WindowsLDMMeta = PartitionType::WindowsLDMMeta,
    PartitionType_WindowsLDMData = PartitionType::WindowsLDMData,
    PartitionType_WindowsRecovery = PartitionType::WindowsRecovery,
    PartitionType_WindowsStorageSpaces = PartitionType::WindowsStorageSpaces,
    PartitionType_WindowsStorageReplica = PartitionType::WindowsStorageReplica,
    PartitionType_IBMGPFS = PartitionType::IBMGPFS,
    PartitionType_LinuxData = PartitionType::LinuxData,
    PartitionType_LinuxRAID = PartitionType::LinuxRAID,
    PartitionType_LinuxRootX86 = PartitionType::LinuxRootX86,
    PartitionType_LinuxRootAMD64 = PartitionType::LinuxRootAMD64,
    PartitionType_LinuxRootARM32 = PartitionType::LinuxRootARM32,
    PartitionType_LinuxRootARM64 = PartitionType::LinuxRootARM64,
    PartitionType_LinuxHome = PartitionType::LinuxHome,
    PartitionType_LinuxSrv = PartitionType::LinuxSrv,
    PartitionType_LinuxPlainDmCrypt = PartitionType::LinuxPlainDmCrypt,
    PartitionType_LinuxLUKS = PartitionType::LinuxLUKS,
    PartitionType_LinuxReserved = PartitionType::LinuxReserved,
    PartitionType_FreeBSDBoot = PartitionType::FreeBSDBoot,
    PartitionType_FreeBSDData = PartitionType::FreeBSDData,
    PartitionType_FreeBSDSwap = PartitionType::FreeBSDSwap,
    PartitionType_FreeBSDUFS = PartitionType::FreeBSDUFS,
    PartitionType_FreeBSDVinum = PartitionType::FreeBSDVinum,
    PartitionType_FreeBSDZFS = PartitionType::FreeBSDZFS,
    PartitionType_FreeBSDUnknown = PartitionType::FreeBSDUnknown,
    PartitionType_AppleHFSPlus = PartitionType::AppleHFSPlus,
    PartitionType_AppleAPFS = PartitionType::AppleAPFS,
    PartitionType_AppleRAID = PartitionType::AppleRAID,
    PartitionType_AppleRAIDOffline = PartitionType::AppleRAIDOffline,
    PartitionType_AppleBoot = PartitionType::AppleBoot,
    PartitionType_AppleLabel = PartitionType::AppleLabel,
    PartitionType_AppleTvRecovery = PartitionType::AppleTvRecovery,
    PartitionType_AppleCoreStorage = PartitionType::AppleCoreStorage,
    PartitionType_SoftRAIDStatus = PartitionType::SoftRAIDStatus,
    PartitionType_SoftRAIDScratch = PartitionType::SoftRAIDScratch,
    PartitionType_SoftRAIDVolume = PartitionType::SoftRAIDVolume,
    PartitionType_SoftRAIDCache = PartitionType::SoftRAIDCache,
    PartitionType_AppleUnknown = PartitionType::AppleUnknown,
    PartitionType_SolarisBoot = PartitionType::SolarisBoot,
    PartitionType_SolarisRoot = PartitionType::SolarisRoot,
    PartitionType_SolarisSwap = PartitionType::SolarisSwap,
    PartitionType_SolarisBackup = PartitionType::SolarisBackup,
    PartitionType_SolarisUsr = PartitionType::SolarisUsr,
    PartitionType_SolarisVar = PartitionType::SolarisVar,
    PartitionType_SolarisHome = PartitionType::SolarisHome,
    PartitionType_SolarisAltSector = PartitionType::SolarisAltSector,
    PartitionType_SolarisReserved = PartitionType::SolarisReserved,
    PartitionType_SolarisUnknown = PartitionType::SolarisUnknown,
    PartitionType_NetBSDSwap = PartitionType::NetBSDSwap,
    PartitionType_NetBSDFFS = PartitionType::NetBSDFFS,
    PartitionType_NetBSDLFS = PartitionType::NetBSDLFS,
    PartitionType_NetBSDRAID = PartitionType::NetBSDRAID,
    PartitionType_NetBSDConcatenated = PartitionType::NetBSDConcatenated,
    PartitionType_NetBSDEncrypted = PartitionType::NetBSDEncrypted,
    PartitionType_NetBSDUnknown = PartitionType::NetBSDUnknown,
    PartitionType_ChromeOSKernel = PartitionType::ChromeOSKernel,
    PartitionType_ChromeOSRootFS = PartitionType::ChromeOSRootFS,
    PartitionType_ChromeOSFuture = PartitionType::ChromeOSFuture,
    PartitionType_ContLnxUsr = PartitionType::ContLnxUsr,
    PartitionType_ContLnxRoot = PartitionType::ContLnxRoot,
    PartitionType_ContLnxReserved = PartitionType::ContLnxReserved,
    PartitionType_ContLnxRootRAID = PartitionType::ContLnxRootRAID,
    PartitionType_HaikuBFS = PartitionType::HaikuBFS,
    PartitionType_MidntBSDBoot = PartitionType::MidntBSDBoot,
    PartitionType_MidntBSDData = PartitionType::MidntBSDData,
    PartitionType_MidntBSDSwap = PartitionType::MidntBSDSwap,
    PartitionType_MidntBSDUFS = PartitionType::MidntBSDUFS,
    PartitionType_MidntBSDVium = PartitionType::MidntBSDVium,
    PartitionType_MidntBSDZFS = PartitionType::MidntBSDZFS,
    PartitionType_MidntBSDUnknown = PartitionType::MidntBSDUnknown,
    PartitionType_OpenBSDData = PartitionType::OpenBSDData,
    PartitionType_QNXPowerSafeFS = PartitionType::QNXPowerSafeFS,
    PartitionType_Plan9 = PartitionType::Plan9,
    PartitionType_VMWareVMKCore = PartitionType::VMWareVMKCore,
    PartitionType_VMWareVMFS = PartitionType::VMWareVMFS,
    PartitionType_VMWareReserved = PartitionType::VMWareReserved,
    PartitionType_VMWareUnknown = PartitionType::VMWareUnknown,
    PartitionType_AndroidX86Bootloader = PartitionType::AndroidX86Bootloader,
    PartitionType_AndroidX86Bootloader2 = PartitionType::AndroidX86Bootloader2,
    PartitionType_AndroidX86Boot = PartitionType::AndroidX86Boot,
    PartitionType_AndroidX86Recovery = PartitionType::AndroidX86Recovery,
    PartitionType_AndroidX86Misc = PartitionType::AndroidX86Misc,
    PartitionType_AndroidX86Metadata = PartitionType::AndroidX86Metadata,
    PartitionType_AndroidX86System = PartitionType::AndroidX86System,
    PartitionType_AndroidX86Cache = PartitionType::AndroidX86Cache,
    PartitionType_AndroidX86Data = PartitionType::AndroidX86Data,
    PartitionType_AndroidX86Persistent = PartitionType::AndroidX86Persistent,
    PartitionType_AndroidX86Vendor = PartitionType::AndroidX86Vendor,
    PartitionType_AndroidX86Config = PartitionType::AndroidX86Config,
    PartitionType_AndroidX86Factory = PartitionType::AndroidX86Factory,
    PartitionType_AndroidX86FactoryAlt = PartitionType::AndroidX86FactoryAlt,
    PartitionType_AndroidX86Fastboot = PartitionType::AndroidX86Fastboot,
    PartitionType_AndroidX86OEM = PartitionType::AndroidX86OEM,
    PartitionType_AndroidARMMeta = PartitionType::AndroidARMMeta,
    PartitionType_AndroidARMExt = PartitionType::AndroidARMExt,
    PartitionType_ONIEBoot = PartitionType::ONIEBoot,
    PartitionType_ONIEConfig = PartitionType::ONIEConfig,
    PartitionType_PowerPCPrep = PartitionType::PowerPCPrep,
    PartitionType_XDGShrBootConfig = PartitionType::XDGShrBootConfig,
    PartitionType_CephBlock = PartitionType::CephBlock,
    PartitionType_CephBlockDB = PartitionType::CephBlockDB,
    PartitionType_CephBlockDBDmc = PartitionType::CephBlockDBDmc,
    PartitionType_CephBlockDBDmcLUKS = PartitionType::CephBlockDBDmcLUKS,
    PartitionType_CephBlockDmc = PartitionType::CephBlockDmc,
    PartitionType_CephBlockDmcLUKS = PartitionType::CephBlockDmcLUKS,
    PartitionType_CephBlockWALog = PartitionType::CephBlockWALog,
    PartitionType_CephBlockWALogDmc = PartitionType::CephBlockWALogDmc,
    PartitionType_CephBlockWALogDmcLUKS = PartitionType::CephBlockWALogDmcLUKS,
    PartitionType_CephDisk = PartitionType::CephDisk,
    PartitionType_CephDiskDmc = PartitionType::CephDiskDmc,
    PartitionType_CephJournal = PartitionType::CephJournal,
    PartitionType_CephJournalDmc = PartitionType::CephJournalDmc,
    PartitionType_CephJournalDmcLUKS = PartitionType::CephJournalDmcLUKS,
    PartitionType_CephLockbox = PartitionType::CephLockbox,
    PartitionType_CephMultipathBlock1 = PartitionType::CephMultipathBlock1,
    PartitionType_CephMultipathBlock2 = PartitionType::CephMultipathBlock2,
    PartitionType_CephMultipathBlockDB = PartitionType::CephMultipathBlockDB,
    PartitionType_CephMultipathBLockWALog = PartitionType::CephMultipathBLockWALog,
    PartitionType_CephMultipathJournal = PartitionType::CephMultipathJournal,
    PartitionType_CephMultipathOSD = PartitionType::CephMultipathOSD,
    PartitionType_CephOSD = PartitionType::CephOSD,
    PartitionType_CephOSDDmc = PartitionType::CephOSDDmc,
    PartitionType_CephOSDDmcLUKS = PartitionType::CephOSDDmcLUKS,
    PartitionType_32BitHack = 0x7fffffff
} PartitionType_T;
# ifdef AssertCompileSize
AssertCompileSize(PartitionType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    TrackedObjectState */
#define TRACKEDOBJECTSTATE_IID_STR "a5ee031d-aba8-4a7f-887a-9a1f12e7cc6c"

#define TRACKEDOBJECTSTATE_IID \
  {0xa5ee031d, 0xaba8, 0x4a7f, \
    { 0x88, 0x7a, 0x9a, 0x1f, 0x12, 0xe7, 0xcc, 0x6c }}

class NS_NO_VTABLE TrackedObjectState {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(TRACKEDOBJECTSTATE_IID)

  enum { None = 0U };

  enum { Alive = 1U };

  enum { Deleted = 2U };

  enum { Invalid = 3U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_TRACKEDOBJECTSTATE(_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_TRACKEDOBJECTSTATE(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 TrackedObjectState_T;

# define TrackedObjectState_None TrackedObjectState::None
# define TrackedObjectState_Alive TrackedObjectState::Alive
# define TrackedObjectState_Deleted TrackedObjectState::Deleted
# define TrackedObjectState_Invalid TrackedObjectState::Invalid
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum TrackedObjectState_T {
    TrackedObjectState_None = TrackedObjectState::None,
    TrackedObjectState_Alive = TrackedObjectState::Alive,
    TrackedObjectState_Deleted = TrackedObjectState::Deleted,
    TrackedObjectState_Invalid = TrackedObjectState::Invalid,
    TrackedObjectState_32BitHack = 0x7fffffff
} TrackedObjectState_T;
# ifdef AssertCompileSize
AssertCompileSize(TrackedObjectState_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    DHCPOption */
#define DHCPOPTION_IID_STR "00f5b10f-0021-4513-00f7-5bf4000982bf"

#define DHCPOPTION_IID \
  {0x00f5b10f, 0x0021, 0x4513, \
    { 0x00, 0xf7, 0x5b, 0xf4, 0x00, 0x09, 0x82, 0xbf }}

class NS_NO_VTABLE DHCPOption {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(DHCPOPTION_IID)

  enum { SubnetMask = 1U };

  enum { TimeOffset = 2U };

  enum { Routers = 3U };

  enum { TimeServers = 4U };

  enum { NameServers = 5U };

  enum { DomainNameServers = 6U };

  enum { LogServers = 7U };

  enum { CookieServers = 8U };

  enum { LPRServers = 9U };

  enum { ImpressServers = 10U };

  enum { ResourseLocationServers = 11U };

  enum { HostName = 12U };

  enum { BootFileSize = 13U };

  enum { MeritDumpFile = 14U };

  enum { DomainName = 15U };

  enum { SwapServer = 16U };

  enum { RootPath = 17U };

  enum { ExtensionPath = 18U };

  enum { IPForwarding = 19U };

  enum { OptNonLocalSourceRouting = 20U };

  enum { PolicyFilter = 21U };

  enum { MaxDgramReassemblySize = 22U };

  enum { DefaultIPTTL = 23U };

  enum { PathMTUAgingTimeout = 24U };

  enum { PathMTUPlateauTable = 25U };

  enum { InterfaceMTU = 26U };

  enum { AllSubnetsAreLocal = 27U };

  enum { BroadcastAddress = 28U };

  enum { PerformMaskDiscovery = 29U };

  enum { MaskSupplier = 30U };

  enum { PerformRouterDiscovery = 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 { NISDomain = 40U };

  enum { NISServers = 41U };

  enum { NTPServers = 42U };

  enum { VendorSpecificInfo = 43U };

  enum { NetBIOSNameServers = 44U };

  enum { NetBIOSDatagramServers = 45U };

  enum { NetBIOSNodeType = 46U };

  enum { NetBIOSScope = 47U };

  enum { XWindowsFontServers = 48U };

  enum { XWindowsDisplayManager = 49U };

  enum { NetWareIPDomainName = 62U };

  enum { NetWareIPInformation = 63U };

  enum { NISPlusDomain = 64U };

  enum { NISPlusServers = 65U };

  enum { TFTPServerName = 66U };

  enum { BootfileName = 67U };

  enum { MobileIPHomeAgents = 68U };

  enum { SMTPServers = 69U };

  enum { POP3Servers = 70U };

  enum { NNTPServers = 71U };

  enum { WWWServers = 72U };

  enum { FingerServers = 73U };

  enum { IRCServers = 74U };

  enum { StreetTalkServers = 75U };

  enum { STDAServers = 76U };

  enum { SLPDirectoryAgent = 78U };

  enum { SLPServiceScope = 79U };

  enum { DomainSearch = 119U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_DHCPOPTION(_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_DHCPOPTION(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 DHCPOption_T;

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

/* starting interface:    DHCPOptionEncoding */
#define DHCPOPTIONENCODING_IID_STR "84b6d460-2838-4682-c0d6-ef5b573ef28a"

#define DHCPOPTIONENCODING_IID \
  {0x84b6d460, 0x2838, 0x4682, \
    { 0xc0, 0xd6, 0xef, 0x5b, 0x57, 0x3e, 0xf2, 0x8a }}

class NS_NO_VTABLE DHCPOptionEncoding {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(DHCPOPTIONENCODING_IID)

  enum { Normal = 0U };

  enum { Hex = 1U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_DHCPOPTIONENCODING(_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_DHCPOPTIONENCODING(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 DHCPOptionEncoding_T;

# define DHCPOptionEncoding_Normal DHCPOptionEncoding::Normal
# define DHCPOptionEncoding_Hex DHCPOptionEncoding::Hex
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum DHCPOptionEncoding_T {
    DHCPOptionEncoding_Normal = DHCPOptionEncoding::Normal,
    DHCPOptionEncoding_Hex = DHCPOptionEncoding::Hex,
    DHCPOptionEncoding_32BitHack = 0x7fffffff
} DHCPOptionEncoding_T;
# ifdef AssertCompileSize
AssertCompileSize(DHCPOptionEncoding_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    DHCPConfigScope */
#define DHCPCONFIGSCOPE_IID_STR "469c42e4-b9ec-43f2-bdcb-9e9d1eb434ae"

#define DHCPCONFIGSCOPE_IID \
  {0x469c42e4, 0xb9ec, 0x43f2, \
    { 0xbd, 0xcb, 0x9e, 0x9d, 0x1e, 0xb4, 0x34, 0xae }}

class NS_NO_VTABLE DHCPConfigScope {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(DHCPCONFIGSCOPE_IID)

  enum { Global = 0U };

  enum { Group = 1U };

  enum { MachineNIC = 2U };

  enum { MAC = 3U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_DHCPCONFIGSCOPE(_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_DHCPCONFIGSCOPE(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 DHCPConfigScope_T;

# define DHCPConfigScope_Global DHCPConfigScope::Global
# define DHCPConfigScope_Group DHCPConfigScope::Group
# define DHCPConfigScope_MachineNIC DHCPConfigScope::MachineNIC
# define DHCPConfigScope_MAC DHCPConfigScope::MAC
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum DHCPConfigScope_T {
    DHCPConfigScope_Global = DHCPConfigScope::Global,
    DHCPConfigScope_Group = DHCPConfigScope::Group,
    DHCPConfigScope_MachineNIC = DHCPConfigScope::MachineNIC,
    DHCPConfigScope_MAC = DHCPConfigScope::MAC,
    DHCPConfigScope_32BitHack = 0x7fffffff
} DHCPConfigScope_T;
# ifdef AssertCompileSize
AssertCompileSize(DHCPConfigScope_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    DHCPGroupConditionType */
#define DHCPGROUPCONDITIONTYPE_IID_STR "2cb9280f-ada2-4194-dee8-bfb8ad77119d"

#define DHCPGROUPCONDITIONTYPE_IID \
  {0x2cb9280f, 0xada2, 0x4194, \
    { 0xde, 0xe8, 0xbf, 0xb8, 0xad, 0x77, 0x11, 0x9d }}

class NS_NO_VTABLE DHCPGroupConditionType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(DHCPGROUPCONDITIONTYPE_IID)

  enum { MAC = 0U };

  enum { MACWildcard = 1U };

  enum { vendorClassID = 2U };

  enum { vendorClassIDWildcard = 3U };

  enum { userClassID = 4U };

  enum { userClassIDWildcard = 5U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_DHCPGROUPCONDITIONTYPE(_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_DHCPGROUPCONDITIONTYPE(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 DHCPGroupConditionType_T;

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

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 VFSType_T;

# define VFSType_File VFSType::File
# define VFSType_Cloud VFSType::Cloud
# define VFSType_S3 VFSType::S3
# define VFSType_WebDav VFSType::WebDav
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum VFSType_T {
    VFSType_File = VFSType::File,
    VFSType_Cloud = VFSType::Cloud,
    VFSType_S3 = VFSType::S3,
    VFSType_WebDav = VFSType::WebDav,
    VFSType_32BitHack = 0x7fffffff
} VFSType_T;
# ifdef AssertCompileSize
AssertCompileSize(VFSType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 ImportOptions_T;

# define ImportOptions_KeepAllMACs ImportOptions::KeepAllMACs
# define ImportOptions_KeepNATMACs ImportOptions::KeepNATMACs
# define ImportOptions_ImportToVDI ImportOptions::ImportToVDI
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum ImportOptions_T {
    ImportOptions_KeepAllMACs = ImportOptions::KeepAllMACs,
    ImportOptions_KeepNATMACs = ImportOptions::KeepNATMACs,
    ImportOptions_ImportToVDI = ImportOptions::ImportToVDI,
    ImportOptions_32BitHack = 0x7fffffff
} ImportOptions_T;
# ifdef AssertCompileSize
AssertCompileSize(ImportOptions_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 ExportOptions_T;

# define ExportOptions_CreateManifest ExportOptions::CreateManifest
# define ExportOptions_ExportDVDImages ExportOptions::ExportDVDImages
# define ExportOptions_StripAllMACs ExportOptions::StripAllMACs
# define ExportOptions_StripAllNonNATMACs ExportOptions::StripAllNonNATMACs
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum ExportOptions_T {
    ExportOptions_CreateManifest = ExportOptions::CreateManifest,
    ExportOptions_ExportDVDImages = ExportOptions::ExportDVDImages,
    ExportOptions_StripAllMACs = ExportOptions::StripAllMACs,
    ExportOptions_StripAllNonNATMACs = ExportOptions::StripAllNonNATMACs,
    ExportOptions_32BitHack = 0x7fffffff
} ExportOptions_T;
# ifdef AssertCompileSize
AssertCompileSize(ExportOptions_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 CertificateVersion_T;

# define CertificateVersion_V1 CertificateVersion::V1
# define CertificateVersion_V2 CertificateVersion::V2
# define CertificateVersion_V3 CertificateVersion::V3
# define CertificateVersion_Unknown CertificateVersion::Unknown
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum CertificateVersion_T {
    CertificateVersion_V1 = CertificateVersion::V1,
    CertificateVersion_V2 = CertificateVersion::V2,
    CertificateVersion_V3 = CertificateVersion::V3,
    CertificateVersion_Unknown = CertificateVersion::Unknown,
    CertificateVersion_32BitHack = 0x7fffffff
} CertificateVersion_T;
# ifdef AssertCompileSize
AssertCompileSize(CertificateVersion_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    VirtualSystemDescriptionType */
#define VIRTUALSYSTEMDESCRIPTIONTYPE_IID_STR "d171d08c-f7bf-4bee-932f-ffbf998f7ac4"

#define VIRTUALSYSTEMDESCRIPTIONTYPE_IID \
  {0xd171d08c, 0xf7bf, 0x4bee, \
    { 0x93, 0x2f, 0xff, 0xbf, 0x99, 0x8f, 0x7a, 0xc4 }}

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 };

  enum { BaseFolder = 25U };

  enum { PrimaryGroup = 26U };

  enum { CloudInstanceShape = 27U };

  enum { CloudDomain = 28U };

  enum { CloudBootDiskSize = 29U };

  enum { CloudBucket = 30U };

  enum { CloudOCIVCN = 31U };

  enum { CloudPublicIP = 32U };

  enum { CloudProfileName = 33U };

  enum { CloudOCISubnet = 34U };

  enum { CloudKeepObject = 35U };

  enum { CloudLaunchInstance = 36U };

  enum { CloudInstanceId = 37U };

  enum { CloudImageId = 38U };

  enum { CloudInstanceState = 39U };

  enum { CloudImageState = 40U };

  enum { CloudInstanceDisplayName = 41U };

  enum { CloudImageDisplayName = 42U };

  enum { CloudOCILaunchMode = 43U };

  enum { CloudPrivateIP = 44U };

  enum { CloudBootVolumeId = 45U };

  enum { CloudOCIVCNCompartment = 46U };

  enum { CloudOCISubnetCompartment = 47U };

  enum { CloudPublicSSHKey = 48U };

  enum { BootingFirmware = 49U };

  enum { CloudInitScriptPath = 50U };

  enum { CloudCompartmentId = 51U };

  enum { CloudShapeCpus = 52U };

  enum { CloudShapeMemory = 53U };

  enum { CloudInstanceMetadata = 54U };

  enum { CloudInstanceFreeFormTags = 55U };

  enum { CloudImageFreeFormTags = 56U };

  enum { HardDiskControllerVirtioSCSI = 60U };

  enum { HardDiskControllerNVMe = 61U };

  enum { NVRAM = 32768U };

};

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 VirtualSystemDescriptionType_T;

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

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 VirtualSystemDescriptionValueType_T;

# define VirtualSystemDescriptionValueType_Reference VirtualSystemDescriptionValueType::Reference
# define VirtualSystemDescriptionValueType_Original VirtualSystemDescriptionValueType::Original
# define VirtualSystemDescriptionValueType_Auto VirtualSystemDescriptionValueType::Auto
# define VirtualSystemDescriptionValueType_ExtraConfig VirtualSystemDescriptionValueType::ExtraConfig
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum VirtualSystemDescriptionValueType_T {
    VirtualSystemDescriptionValueType_Reference = VirtualSystemDescriptionValueType::Reference,
    VirtualSystemDescriptionValueType_Original = VirtualSystemDescriptionValueType::Original,
    VirtualSystemDescriptionValueType_Auto = VirtualSystemDescriptionValueType::Auto,
    VirtualSystemDescriptionValueType_ExtraConfig = VirtualSystemDescriptionValueType::ExtraConfig,
    VirtualSystemDescriptionValueType_32BitHack = 0x7fffffff
} VirtualSystemDescriptionValueType_T;
# ifdef AssertCompileSize
AssertCompileSize(VirtualSystemDescriptionValueType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    TpmType */
#define TPMTYPE_IID_STR "c669b9f7-a547-42b6-8464-636aa53401eb"

#define TPMTYPE_IID \
  {0xc669b9f7, 0xa547, 0x42b6, \
    { 0x84, 0x64, 0x63, 0x6a, 0xa5, 0x34, 0x01, 0xeb }}

class NS_NO_VTABLE TpmType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(TPMTYPE_IID)

  enum { None = 0U };

  enum { v1_2 = 1U };

  enum { v2_0 = 2U };

  enum { Host = 3U };

  enum { Swtpm = 4U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_TPMTYPE(_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_TPMTYPE(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 TpmType_T;

# define TpmType_None TpmType::None
# define TpmType_v1_2 TpmType::v1_2
# define TpmType_v2_0 TpmType::v2_0
# define TpmType_Host TpmType::Host
# define TpmType_Swtpm TpmType::Swtpm
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum TpmType_T {
    TpmType_None = TpmType::None,
    TpmType_v1_2 = TpmType::v1_2,
    TpmType_v2_0 = TpmType::v2_0,
    TpmType_Host = TpmType::Host,
    TpmType_Swtpm = TpmType::Swtpm,
    TpmType_32BitHack = 0x7fffffff
} TpmType_T;
# ifdef AssertCompileSize
AssertCompileSize(TpmType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    RecordingDestination */
#define RECORDINGDESTINATION_IID_STR "11e3f06b-dec1-48b9-bdc4-1e618d72893c"

#define RECORDINGDESTINATION_IID \
  {0x11e3f06b, 0xdec1, 0x48b9, \
    { 0xbd, 0xc4, 0x1e, 0x61, 0x8d, 0x72, 0x89, 0x3c }}

class NS_NO_VTABLE RecordingDestination {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(RECORDINGDESTINATION_IID)

  enum { None = 0U };

  enum { File = 1U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_RECORDINGDESTINATION(_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_RECORDINGDESTINATION(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 RecordingDestination_T;

# define RecordingDestination_None RecordingDestination::None
# define RecordingDestination_File RecordingDestination::File
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum RecordingDestination_T {
    RecordingDestination_None = RecordingDestination::None,
    RecordingDestination_File = RecordingDestination::File,
    RecordingDestination_32BitHack = 0x7fffffff
} RecordingDestination_T;
# ifdef AssertCompileSize
AssertCompileSize(RecordingDestination_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    RecordingFeature */
#define RECORDINGFEATURE_IID_STR "a7ddc6a5-daa8-4485-b860-e9f2e98a7794"

#define RECORDINGFEATURE_IID \
  {0xa7ddc6a5, 0xdaa8, 0x4485, \
    { 0xb8, 0x60, 0xe9, 0xf2, 0xe9, 0x8a, 0x77, 0x94 }}

class NS_NO_VTABLE RecordingFeature {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(RECORDINGFEATURE_IID)

  enum { None = 0U };

  enum { Video = 1U };

  enum { Audio = 2U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_RECORDINGFEATURE(_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_RECORDINGFEATURE(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 RecordingFeature_T;

# define RecordingFeature_None RecordingFeature::None
# define RecordingFeature_Video RecordingFeature::Video
# define RecordingFeature_Audio RecordingFeature::Audio
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum RecordingFeature_T {
    RecordingFeature_None = RecordingFeature::None,
    RecordingFeature_Video = RecordingFeature::Video,
    RecordingFeature_Audio = RecordingFeature::Audio,
    RecordingFeature_32BitHack = 0x7fffffff
} RecordingFeature_T;
# ifdef AssertCompileSize
AssertCompileSize(RecordingFeature_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    RecordingAudioCodec */
#define RECORDINGAUDIOCODEC_IID_STR "16c42be8-1713-4717-a8b9-c65a6549fbcd"

#define RECORDINGAUDIOCODEC_IID \
  {0x16c42be8, 0x1713, 0x4717, \
    { 0xa8, 0xb9, 0xc6, 0x5a, 0x65, 0x49, 0xfb, 0xcd }}

class NS_NO_VTABLE RecordingAudioCodec {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(RECORDINGAUDIOCODEC_IID)

  enum { None = 0U };

  enum { WavPCM = 1U };

  enum { MP3 = 2U };

  enum { OggVorbis = 3U };

  enum { Opus = 4U };

  enum { Other = 5U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_RECORDINGAUDIOCODEC(_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_RECORDINGAUDIOCODEC(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 RecordingAudioCodec_T;

# define RecordingAudioCodec_None RecordingAudioCodec::None
# define RecordingAudioCodec_WavPCM RecordingAudioCodec::WavPCM
# define RecordingAudioCodec_MP3 RecordingAudioCodec::MP3
# define RecordingAudioCodec_OggVorbis RecordingAudioCodec::OggVorbis
# define RecordingAudioCodec_Opus RecordingAudioCodec::Opus
# define RecordingAudioCodec_Other RecordingAudioCodec::Other
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum RecordingAudioCodec_T {
    RecordingAudioCodec_None = RecordingAudioCodec::None,
    RecordingAudioCodec_WavPCM = RecordingAudioCodec::WavPCM,
    RecordingAudioCodec_MP3 = RecordingAudioCodec::MP3,
    RecordingAudioCodec_OggVorbis = RecordingAudioCodec::OggVorbis,
    RecordingAudioCodec_Opus = RecordingAudioCodec::Opus,
    RecordingAudioCodec_Other = RecordingAudioCodec::Other,
    RecordingAudioCodec_32BitHack = 0x7fffffff
} RecordingAudioCodec_T;
# ifdef AssertCompileSize
AssertCompileSize(RecordingAudioCodec_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    RecordingCodecDeadline */
#define RECORDINGCODECDEADLINE_IID_STR "53627ae1-31cf-4303-9cd5-0c22fd2637cf"

#define RECORDINGCODECDEADLINE_IID \
  {0x53627ae1, 0x31cf, 0x4303, \
    { 0x9c, 0xd5, 0x0c, 0x22, 0xfd, 0x26, 0x37, 0xcf }}

class NS_NO_VTABLE RecordingCodecDeadline {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(RECORDINGCODECDEADLINE_IID)

  enum { Default = 0U };

  enum { Realtime = 1U };

  enum { Good = 2U };

  enum { Best = 3U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_RECORDINGCODECDEADLINE(_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_RECORDINGCODECDEADLINE(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 RecordingCodecDeadline_T;

# define RecordingCodecDeadline_Default RecordingCodecDeadline::Default
# define RecordingCodecDeadline_Realtime RecordingCodecDeadline::Realtime
# define RecordingCodecDeadline_Good RecordingCodecDeadline::Good
# define RecordingCodecDeadline_Best RecordingCodecDeadline::Best
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum RecordingCodecDeadline_T {
    RecordingCodecDeadline_Default = RecordingCodecDeadline::Default,
    RecordingCodecDeadline_Realtime = RecordingCodecDeadline::Realtime,
    RecordingCodecDeadline_Good = RecordingCodecDeadline::Good,
    RecordingCodecDeadline_Best = RecordingCodecDeadline::Best,
    RecordingCodecDeadline_32BitHack = 0x7fffffff
} RecordingCodecDeadline_T;
# ifdef AssertCompileSize
AssertCompileSize(RecordingCodecDeadline_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    RecordingVideoCodec */
#define RECORDINGVIDEOCODEC_IID_STR "93791063-3e8c-4310-987c-ddb43ff03ffe"

#define RECORDINGVIDEOCODEC_IID \
  {0x93791063, 0x3e8c, 0x4310, \
    { 0x98, 0x7c, 0xdd, 0xb4, 0x3f, 0xf0, 0x3f, 0xfe }}

class NS_NO_VTABLE RecordingVideoCodec {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(RECORDINGVIDEOCODEC_IID)

  enum { None = 0U };

  enum { MJPEG = 1U };

  enum { H262 = 2U };

  enum { H264 = 3U };

  enum { H265 = 4U };

  enum { H266 = 5U };

  enum { VP8 = 6U };

  enum { VP9 = 7U };

  enum { AV1 = 8U };

  enum { Other = 9U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_RECORDINGVIDEOCODEC(_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_RECORDINGVIDEOCODEC(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 RecordingVideoCodec_T;

# define RecordingVideoCodec_None RecordingVideoCodec::None
# define RecordingVideoCodec_MJPEG RecordingVideoCodec::MJPEG
# define RecordingVideoCodec_H262 RecordingVideoCodec::H262
# define RecordingVideoCodec_H264 RecordingVideoCodec::H264
# define RecordingVideoCodec_H265 RecordingVideoCodec::H265
# define RecordingVideoCodec_H266 RecordingVideoCodec::H266
# define RecordingVideoCodec_VP8 RecordingVideoCodec::VP8
# define RecordingVideoCodec_VP9 RecordingVideoCodec::VP9
# define RecordingVideoCodec_AV1 RecordingVideoCodec::AV1
# define RecordingVideoCodec_Other RecordingVideoCodec::Other
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum RecordingVideoCodec_T {
    RecordingVideoCodec_None = RecordingVideoCodec::None,
    RecordingVideoCodec_MJPEG = RecordingVideoCodec::MJPEG,
    RecordingVideoCodec_H262 = RecordingVideoCodec::H262,
    RecordingVideoCodec_H264 = RecordingVideoCodec::H264,
    RecordingVideoCodec_H265 = RecordingVideoCodec::H265,
    RecordingVideoCodec_H266 = RecordingVideoCodec::H266,
    RecordingVideoCodec_VP8 = RecordingVideoCodec::VP8,
    RecordingVideoCodec_VP9 = RecordingVideoCodec::VP9,
    RecordingVideoCodec_AV1 = RecordingVideoCodec::AV1,
    RecordingVideoCodec_Other = RecordingVideoCodec::Other,
    RecordingVideoCodec_32BitHack = 0x7fffffff
} RecordingVideoCodec_T;
# ifdef AssertCompileSize
AssertCompileSize(RecordingVideoCodec_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    RecordingVideoScalingMode */
#define RECORDINGVIDEOSCALINGMODE_IID_STR "0dd1127d-4f62-4b82-beee-91086a9f1d24"

#define RECORDINGVIDEOSCALINGMODE_IID \
  {0x0dd1127d, 0x4f62, 0x4b82, \
    { 0xbe, 0xee, 0x91, 0x08, 0x6a, 0x9f, 0x1d, 0x24 }}

class NS_NO_VTABLE RecordingVideoScalingMode {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(RECORDINGVIDEOSCALINGMODE_IID)

  enum { None = 0U };

  enum { NearestNeighbor = 1U };

  enum { Bilinear = 2U };

  enum { Bicubic = 3U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_RECORDINGVIDEOSCALINGMODE(_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_RECORDINGVIDEOSCALINGMODE(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 RecordingVideoScalingMode_T;

# define RecordingVideoScalingMode_None RecordingVideoScalingMode::None
# define RecordingVideoScalingMode_NearestNeighbor RecordingVideoScalingMode::NearestNeighbor
# define RecordingVideoScalingMode_Bilinear RecordingVideoScalingMode::Bilinear
# define RecordingVideoScalingMode_Bicubic RecordingVideoScalingMode::Bicubic
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum RecordingVideoScalingMode_T {
    RecordingVideoScalingMode_None = RecordingVideoScalingMode::None,
    RecordingVideoScalingMode_NearestNeighbor = RecordingVideoScalingMode::NearestNeighbor,
    RecordingVideoScalingMode_Bilinear = RecordingVideoScalingMode::Bilinear,
    RecordingVideoScalingMode_Bicubic = RecordingVideoScalingMode::Bicubic,
    RecordingVideoScalingMode_32BitHack = 0x7fffffff
} RecordingVideoScalingMode_T;
# ifdef AssertCompileSize
AssertCompileSize(RecordingVideoScalingMode_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    RecordingRateControlMode */
#define RECORDINGRATECONTROLMODE_IID_STR "d07a33ac-b4ea-4917-942d-c03be14fbe2f"

#define RECORDINGRATECONTROLMODE_IID \
  {0xd07a33ac, 0xb4ea, 0x4917, \
    { 0x94, 0x2d, 0xc0, 0x3b, 0xe1, 0x4f, 0xbe, 0x2f }}

class NS_NO_VTABLE RecordingRateControlMode {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(RECORDINGRATECONTROLMODE_IID)

  enum { ABR = 0U };

  enum { CBR = 1U };

  enum { VBR = 2U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_RECORDINGRATECONTROLMODE(_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_RECORDINGRATECONTROLMODE(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 RecordingRateControlMode_T;

# define RecordingRateControlMode_ABR RecordingRateControlMode::ABR
# define RecordingRateControlMode_CBR RecordingRateControlMode::CBR
# define RecordingRateControlMode_VBR RecordingRateControlMode::VBR
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum RecordingRateControlMode_T {
    RecordingRateControlMode_ABR = RecordingRateControlMode::ABR,
    RecordingRateControlMode_CBR = RecordingRateControlMode::CBR,
    RecordingRateControlMode_VBR = RecordingRateControlMode::VBR,
    RecordingRateControlMode_32BitHack = 0x7fffffff
} RecordingRateControlMode_T;
# ifdef AssertCompileSize
AssertCompileSize(RecordingRateControlMode_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    RecordingState */
#define RECORDINGSTATE_IID_STR "c8a770a9-0412-467b-8dae-0e861279d0be"

#define RECORDINGSTATE_IID \
  {0xc8a770a9, 0x0412, 0x467b, \
    { 0x8d, 0xae, 0x0e, 0x86, 0x12, 0x79, 0xd0, 0xbe }}

class NS_NO_VTABLE RecordingState {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(RECORDINGSTATE_IID)

  enum { Unknown = 0U };

  enum { Initializing = 1U };

  enum { Started = 2U };

  enum { Paused = 3U };

  enum { Resumed = 4U };

  enum { Finalizing = 5U };

  enum { Stopped = 6U };

  enum { Canceled = 7U };

  enum { LimitReached = 8U };

  enum { Error = 9U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_RECORDINGSTATE(_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_RECORDINGSTATE(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 RecordingState_T;

# define RecordingState_Unknown RecordingState::Unknown
# define RecordingState_Initializing RecordingState::Initializing
# define RecordingState_Started RecordingState::Started
# define RecordingState_Paused RecordingState::Paused
# define RecordingState_Resumed RecordingState::Resumed
# define RecordingState_Finalizing RecordingState::Finalizing
# define RecordingState_Stopped RecordingState::Stopped
# define RecordingState_Canceled RecordingState::Canceled
# define RecordingState_LimitReached RecordingState::LimitReached
# define RecordingState_Error RecordingState::Error
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum RecordingState_T {
    RecordingState_Unknown = RecordingState::Unknown,
    RecordingState_Initializing = RecordingState::Initializing,
    RecordingState_Started = RecordingState::Started,
    RecordingState_Paused = RecordingState::Paused,
    RecordingState_Resumed = RecordingState::Resumed,
    RecordingState_Finalizing = RecordingState::Finalizing,
    RecordingState_Stopped = RecordingState::Stopped,
    RecordingState_Canceled = RecordingState::Canceled,
    RecordingState_LimitReached = RecordingState::LimitReached,
    RecordingState_Error = RecordingState::Error,
    RecordingState_32BitHack = 0x7fffffff
} RecordingState_T;
# ifdef AssertCompileSize
AssertCompileSize(RecordingState_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    SignatureType */
#define SIGNATURETYPE_IID_STR "6f6e67ef-9a32-4084-af84-5702679f882a"

#define SIGNATURETYPE_IID \
  {0x6f6e67ef, 0x9a32, 0x4084, \
    { 0xaf, 0x84, 0x57, 0x02, 0x67, 0x9f, 0x88, 0x2a }}

class NS_NO_VTABLE SignatureType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(SIGNATURETYPE_IID)

  enum { X509 = 0U };

  enum { Sha256 = 1U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_SIGNATURETYPE(_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_SIGNATURETYPE(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 SignatureType_T;

# define SignatureType_X509 SignatureType::X509
# define SignatureType_Sha256 SignatureType::Sha256
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum SignatureType_T {
    SignatureType_X509 = SignatureType::X509,
    SignatureType_Sha256 = SignatureType::Sha256,
    SignatureType_32BitHack = 0x7fffffff
} SignatureType_T;
# ifdef AssertCompileSize
AssertCompileSize(SignatureType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    UefiVariableAttributes */
#define UEFIVARIABLEATTRIBUTES_IID_STR "cda505ec-b444-4aef-b55c-b687717bdac5"

#define UEFIVARIABLEATTRIBUTES_IID \
  {0xcda505ec, 0xb444, 0x4aef, \
    { 0xb5, 0x5c, 0xb6, 0x87, 0x71, 0x7b, 0xda, 0xc5 }}

class NS_NO_VTABLE UefiVariableAttributes {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(UEFIVARIABLEATTRIBUTES_IID)

  enum { None = 0U };

  enum { NonVolatile = 1U };

  enum { BootServiceAccess = 2U };

  enum { RuntimeAccess = 4U };

  enum { HwErrorRecord = 8U };

  enum { AuthWriteAccess = 256U };

  enum { AuthTimeBasedWriteAccess = 512U };

  enum { AuthAppendWrite = 1024U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_UEFIVARIABLEATTRIBUTES(_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_UEFIVARIABLEATTRIBUTES(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 UefiVariableAttributes_T;

# define UefiVariableAttributes_None UefiVariableAttributes::None
# define UefiVariableAttributes_NonVolatile UefiVariableAttributes::NonVolatile
# define UefiVariableAttributes_BootServiceAccess UefiVariableAttributes::BootServiceAccess
# define UefiVariableAttributes_RuntimeAccess UefiVariableAttributes::RuntimeAccess
# define UefiVariableAttributes_HwErrorRecord UefiVariableAttributes::HwErrorRecord
# define UefiVariableAttributes_AuthWriteAccess UefiVariableAttributes::AuthWriteAccess
# define UefiVariableAttributes_AuthTimeBasedWriteAccess UefiVariableAttributes::AuthTimeBasedWriteAccess
# define UefiVariableAttributes_AuthAppendWrite UefiVariableAttributes::AuthAppendWrite
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum UefiVariableAttributes_T {
    UefiVariableAttributes_None = UefiVariableAttributes::None,
    UefiVariableAttributes_NonVolatile = UefiVariableAttributes::NonVolatile,
    UefiVariableAttributes_BootServiceAccess = UefiVariableAttributes::BootServiceAccess,
    UefiVariableAttributes_RuntimeAccess = UefiVariableAttributes::RuntimeAccess,
    UefiVariableAttributes_HwErrorRecord = UefiVariableAttributes::HwErrorRecord,
    UefiVariableAttributes_AuthWriteAccess = UefiVariableAttributes::AuthWriteAccess,
    UefiVariableAttributes_AuthTimeBasedWriteAccess = UefiVariableAttributes::AuthTimeBasedWriteAccess,
    UefiVariableAttributes_AuthAppendWrite = UefiVariableAttributes::AuthAppendWrite,
    UefiVariableAttributes_32BitHack = 0x7fffffff
} UefiVariableAttributes_T;
# ifdef AssertCompileSize
AssertCompileSize(UefiVariableAttributes_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    GraphicsControllerType */
#define GRAPHICSCONTROLLERTYPE_IID_STR "e1379bad-ae01-493d-abf5-740a95c41676"

#define GRAPHICSCONTROLLERTYPE_IID \
  {0xe1379bad, 0xae01, 0x493d, \
    { 0xab, 0xf5, 0x74, 0x0a, 0x95, 0xc4, 0x16, 0x76 }}

class NS_NO_VTABLE GraphicsControllerType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(GRAPHICSCONTROLLERTYPE_IID)

  enum { Null = 0U };

  enum { VBoxVGA = 1U };

  enum { VMSVGA = 2U };

  enum { VBoxSVGA = 3U };

  enum { QemuRamFB = 4U };

};

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 GraphicsControllerType_T;

# define GraphicsControllerType_Null GraphicsControllerType::Null
# define GraphicsControllerType_VBoxVGA GraphicsControllerType::VBoxVGA
# define GraphicsControllerType_VMSVGA GraphicsControllerType::VMSVGA
# define GraphicsControllerType_VBoxSVGA GraphicsControllerType::VBoxSVGA
# define GraphicsControllerType_QemuRamFB GraphicsControllerType::QemuRamFB
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum GraphicsControllerType_T {
    GraphicsControllerType_Null = GraphicsControllerType::Null,
    GraphicsControllerType_VBoxVGA = GraphicsControllerType::VBoxVGA,
    GraphicsControllerType_VMSVGA = GraphicsControllerType::VMSVGA,
    GraphicsControllerType_VBoxSVGA = GraphicsControllerType::VBoxSVGA,
    GraphicsControllerType_QemuRamFB = GraphicsControllerType::QemuRamFB,
    GraphicsControllerType_32BitHack = 0x7fffffff
} GraphicsControllerType_T;
# ifdef AssertCompileSize
AssertCompileSize(GraphicsControllerType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    GraphicsFeature */
#define GRAPHICSFEATURE_IID_STR "1bc430f8-d061-45fb-8830-155058ff3f66"

#define GRAPHICSFEATURE_IID \
  {0x1bc430f8, 0xd061, 0x45fb, \
    { 0x88, 0x30, 0x15, 0x50, 0x58, 0xff, 0x3f, 0x66 }}

class NS_NO_VTABLE GraphicsFeature {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(GRAPHICSFEATURE_IID)

  enum { None = 0U };

  enum { Acceleration3D = 2U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_GRAPHICSFEATURE(_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_GRAPHICSFEATURE(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 GraphicsFeature_T;

# define GraphicsFeature_None GraphicsFeature::None
# define GraphicsFeature_Acceleration3D GraphicsFeature::Acceleration3D
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum GraphicsFeature_T {
    GraphicsFeature_None = GraphicsFeature::None,
    GraphicsFeature_Acceleration3D = GraphicsFeature::Acceleration3D,
    GraphicsFeature_32BitHack = 0x7fffffff
} GraphicsFeature_T;
# ifdef AssertCompileSize
AssertCompileSize(GraphicsFeature_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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 };

  enum { DetachAllReturnHardDisksAndVMRemovable = 5U };

};

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 CleanupMode_T;

# define CleanupMode_UnregisterOnly CleanupMode::UnregisterOnly
# define CleanupMode_DetachAllReturnNone CleanupMode::DetachAllReturnNone
# define CleanupMode_DetachAllReturnHardDisksOnly CleanupMode::DetachAllReturnHardDisksOnly
# define CleanupMode_Full CleanupMode::Full
# define CleanupMode_DetachAllReturnHardDisksAndVMRemovable CleanupMode::DetachAllReturnHardDisksAndVMRemovable
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum CleanupMode_T {
    CleanupMode_UnregisterOnly = CleanupMode::UnregisterOnly,
    CleanupMode_DetachAllReturnNone = CleanupMode::DetachAllReturnNone,
    CleanupMode_DetachAllReturnHardDisksOnly = CleanupMode::DetachAllReturnHardDisksOnly,
    CleanupMode_Full = CleanupMode::Full,
    CleanupMode_DetachAllReturnHardDisksAndVMRemovable = CleanupMode::DetachAllReturnHardDisksAndVMRemovable,
    CleanupMode_32BitHack = 0x7fffffff
} CleanupMode_T;
# ifdef AssertCompileSize
AssertCompileSize(CleanupMode_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 CloneMode_T;

# define CloneMode_MachineState CloneMode::MachineState
# define CloneMode_MachineAndChildStates CloneMode::MachineAndChildStates
# define CloneMode_AllStates CloneMode::AllStates
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum CloneMode_T {
    CloneMode_MachineState = CloneMode::MachineState,
    CloneMode_MachineAndChildStates = CloneMode::MachineAndChildStates,
    CloneMode_AllStates = CloneMode::AllStates,
    CloneMode_32BitHack = 0x7fffffff
} CloneMode_T;
# ifdef AssertCompileSize
AssertCompileSize(CloneMode_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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 };

  enum { KeepHwUUIDs = 5U };

};

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 CloneOptions_T;

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

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 AutostopType_T;

# define AutostopType_Disabled AutostopType::Disabled
# define AutostopType_SaveState AutostopType::SaveState
# define AutostopType_PowerOff AutostopType::PowerOff
# define AutostopType_AcpiShutdown AutostopType::AcpiShutdown
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum AutostopType_T {
    AutostopType_Disabled = AutostopType::Disabled,
    AutostopType_SaveState = AutostopType::SaveState,
    AutostopType_PowerOff = AutostopType::PowerOff,
    AutostopType_AcpiShutdown = AutostopType::AcpiShutdown,
    AutostopType_32BitHack = 0x7fffffff
} AutostopType_T;
# ifdef AssertCompileSize
AssertCompileSize(AutostopType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    VMProcPriority */
#define VMPROCPRIORITY_IID_STR "6fa72dd5-19b7-46ba-bc52-f223c98c7d80"

#define VMPROCPRIORITY_IID \
  {0x6fa72dd5, 0x19b7, 0x46ba, \
    { 0xbc, 0x52, 0xf2, 0x23, 0xc9, 0x8c, 0x7d, 0x80 }}

class NS_NO_VTABLE VMProcPriority {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(VMPROCPRIORITY_IID)

  enum { Invalid = 0U };

  enum { Default = 1U };

  enum { Flat = 2U };

  enum { Low = 3U };

  enum { Normal = 5U };

  enum { High = 6U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_VMPROCPRIORITY(_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_VMPROCPRIORITY(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 VMProcPriority_T;

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

/* starting interface:    IommuType */
#define IOMMUTYPE_IID_STR "f47339cb-b94e-48fe-b507-2900103d7b9f"

#define IOMMUTYPE_IID \
  {0xf47339cb, 0xb94e, 0x48fe, \
    { 0xb5, 0x07, 0x29, 0x00, 0x10, 0x3d, 0x7b, 0x9f }}

class NS_NO_VTABLE IommuType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IOMMUTYPE_IID)

  enum { None = 0U };

  enum { Automatic = 1U };

  enum { AMD = 2U };

  enum { Intel = 3U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IOMMUTYPE(_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_IOMMUTYPE(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 IommuType_T;

# define IommuType_None IommuType::None
# define IommuType_Automatic IommuType::Automatic
# define IommuType_AMD IommuType::AMD
# define IommuType_Intel IommuType::Intel
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum IommuType_T {
    IommuType_None = IommuType::None,
    IommuType_Automatic = IommuType::Automatic,
    IommuType_AMD = IommuType::AMD,
    IommuType_Intel = IommuType::Intel,
    IommuType_32BitHack = 0x7fffffff
} IommuType_T;
# ifdef AssertCompileSize
AssertCompileSize(IommuType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    VMExecutionEngine */
#define VMEXECUTIONENGINE_IID_STR "69485f52-5cd3-40c9-946f-ae7d5c50798b"

#define VMEXECUTIONENGINE_IID \
  {0x69485f52, 0x5cd3, 0x40c9, \
    { 0x94, 0x6f, 0xae, 0x7d, 0x5c, 0x50, 0x79, 0x8b }}

class NS_NO_VTABLE VMExecutionEngine {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(VMEXECUTIONENGINE_IID)

  enum { NotSet = 0U };

  enum { Default = 1U };

  enum { HwVirt = 2U };

  enum { NativeApi = 3U };

  enum { Interpreter = 4U };

  enum { Recompiler = 5U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_VMEXECUTIONENGINE(_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_VMEXECUTIONENGINE(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 VMExecutionEngine_T;

# define VMExecutionEngine_NotSet VMExecutionEngine::NotSet
# define VMExecutionEngine_Default VMExecutionEngine::Default
# define VMExecutionEngine_HwVirt VMExecutionEngine::HwVirt
# define VMExecutionEngine_NativeApi VMExecutionEngine::NativeApi
# define VMExecutionEngine_Interpreter VMExecutionEngine::Interpreter
# define VMExecutionEngine_Recompiler VMExecutionEngine::Recompiler
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum VMExecutionEngine_T {
    VMExecutionEngine_NotSet = VMExecutionEngine::NotSet,
    VMExecutionEngine_Default = VMExecutionEngine::Default,
    VMExecutionEngine_HwVirt = VMExecutionEngine::HwVirt,
    VMExecutionEngine_NativeApi = VMExecutionEngine::NativeApi,
    VMExecutionEngine_Interpreter = VMExecutionEngine::Interpreter,
    VMExecutionEngine_Recompiler = VMExecutionEngine::Recompiler,
    VMExecutionEngine_32BitHack = 0x7fffffff
} VMExecutionEngine_T;
# ifdef AssertCompileSize
AssertCompileSize(VMExecutionEngine_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 HostNetworkInterfaceMediumType_T;

# define HostNetworkInterfaceMediumType_Unknown HostNetworkInterfaceMediumType::Unknown
# define HostNetworkInterfaceMediumType_Ethernet HostNetworkInterfaceMediumType::Ethernet
# define HostNetworkInterfaceMediumType_PPP HostNetworkInterfaceMediumType::PPP
# define HostNetworkInterfaceMediumType_SLIP HostNetworkInterfaceMediumType::SLIP
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum HostNetworkInterfaceMediumType_T {
    HostNetworkInterfaceMediumType_Unknown = HostNetworkInterfaceMediumType::Unknown,
    HostNetworkInterfaceMediumType_Ethernet = HostNetworkInterfaceMediumType::Ethernet,
    HostNetworkInterfaceMediumType_PPP = HostNetworkInterfaceMediumType::PPP,
    HostNetworkInterfaceMediumType_SLIP = HostNetworkInterfaceMediumType::SLIP,
    HostNetworkInterfaceMediumType_32BitHack = 0x7fffffff
} HostNetworkInterfaceMediumType_T;
# ifdef AssertCompileSize
AssertCompileSize(HostNetworkInterfaceMediumType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 HostNetworkInterfaceStatus_T;

# define HostNetworkInterfaceStatus_Unknown HostNetworkInterfaceStatus::Unknown
# define HostNetworkInterfaceStatus_Up HostNetworkInterfaceStatus::Up
# define HostNetworkInterfaceStatus_Down HostNetworkInterfaceStatus::Down
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum HostNetworkInterfaceStatus_T {
    HostNetworkInterfaceStatus_Unknown = HostNetworkInterfaceStatus::Unknown,
    HostNetworkInterfaceStatus_Up = HostNetworkInterfaceStatus::Up,
    HostNetworkInterfaceStatus_Down = HostNetworkInterfaceStatus::Down,
    HostNetworkInterfaceStatus_32BitHack = 0x7fffffff
} HostNetworkInterfaceStatus_T;
# ifdef AssertCompileSize
AssertCompileSize(HostNetworkInterfaceStatus_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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 { Invalid = 0U };

  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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 HostNetworkInterfaceType_T;

# define HostNetworkInterfaceType_Invalid HostNetworkInterfaceType::Invalid
# define HostNetworkInterfaceType_Bridged HostNetworkInterfaceType::Bridged
# define HostNetworkInterfaceType_HostOnly HostNetworkInterfaceType::HostOnly
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum HostNetworkInterfaceType_T {
    HostNetworkInterfaceType_Invalid = HostNetworkInterfaceType::Invalid,
    HostNetworkInterfaceType_Bridged = HostNetworkInterfaceType::Bridged,
    HostNetworkInterfaceType_HostOnly = HostNetworkInterfaceType::HostOnly,
    HostNetworkInterfaceType_32BitHack = 0x7fffffff
} HostNetworkInterfaceType_T;
# ifdef AssertCompileSize
AssertCompileSize(HostNetworkInterfaceType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    UpdateChannel */
#define UPDATECHANNEL_IID_STR "9f1562a5-e47a-496b-a818-66776f06ce40"

#define UPDATECHANNEL_IID \
  {0x9f1562a5, 0xe47a, 0x496b, \
    { 0xa8, 0x18, 0x66, 0x77, 0x6f, 0x06, 0xce, 0x40 }}

class NS_NO_VTABLE UpdateChannel {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(UPDATECHANNEL_IID)

  enum { Invalid = 0U };

  enum { Stable = 1U };

  enum { All = 2U };

  enum { WithBetas = 3U };

  enum { WithTesting = 4U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_UPDATECHANNEL(_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_UPDATECHANNEL(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 UpdateChannel_T;

# define UpdateChannel_Invalid UpdateChannel::Invalid
# define UpdateChannel_Stable UpdateChannel::Stable
# define UpdateChannel_All UpdateChannel::All
# define UpdateChannel_WithBetas UpdateChannel::WithBetas
# define UpdateChannel_WithTesting UpdateChannel::WithTesting
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum UpdateChannel_T {
    UpdateChannel_Invalid = UpdateChannel::Invalid,
    UpdateChannel_Stable = UpdateChannel::Stable,
    UpdateChannel_All = UpdateChannel::All,
    UpdateChannel_WithBetas = UpdateChannel::WithBetas,
    UpdateChannel_WithTesting = UpdateChannel::WithTesting,
    UpdateChannel_32BitHack = 0x7fffffff
} UpdateChannel_T;
# ifdef AssertCompileSize
AssertCompileSize(UpdateChannel_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    UpdateSeverity */
#define UPDATESEVERITY_IID_STR "359a5fee-8a06-4306-8068-2f2dd5cde06f"

#define UPDATESEVERITY_IID \
  {0x359a5fee, 0x8a06, 0x4306, \
    { 0x80, 0x68, 0x2f, 0x2d, 0xd5, 0xcd, 0xe0, 0x6f }}

class NS_NO_VTABLE UpdateSeverity {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(UPDATESEVERITY_IID)

  enum { Invalid = 0U };

  enum { Critical = 1U };

  enum { Major = 2U };

  enum { Minor = 3U };

  enum { Testing = 4U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_UPDATESEVERITY(_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_UPDATESEVERITY(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 UpdateSeverity_T;

# define UpdateSeverity_Invalid UpdateSeverity::Invalid
# define UpdateSeverity_Critical UpdateSeverity::Critical
# define UpdateSeverity_Major UpdateSeverity::Major
# define UpdateSeverity_Minor UpdateSeverity::Minor
# define UpdateSeverity_Testing UpdateSeverity::Testing
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum UpdateSeverity_T {
    UpdateSeverity_Invalid = UpdateSeverity::Invalid,
    UpdateSeverity_Critical = UpdateSeverity::Critical,
    UpdateSeverity_Major = UpdateSeverity::Major,
    UpdateSeverity_Minor = UpdateSeverity::Minor,
    UpdateSeverity_Testing = UpdateSeverity::Testing,
    UpdateSeverity_32BitHack = 0x7fffffff
} UpdateSeverity_T;
# ifdef AssertCompileSize
AssertCompileSize(UpdateSeverity_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    UpdateState */
#define UPDATESTATE_IID_STR "6623e363-c892-45f8-80cb-4e8ffd9b4e60"

#define UPDATESTATE_IID \
  {0x6623e363, 0xc892, 0x45f8, \
    { 0x80, 0xcb, 0x4e, 0x8f, 0xfd, 0x9b, 0x4e, 0x60 }}

class NS_NO_VTABLE UpdateState {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(UPDATESTATE_IID)

  enum { Invalid = 0U };

  enum { Available = 1U };

  enum { NotAvailable = 2U };

  enum { Downloading = 3U };

  enum { Downloaded = 4U };

  enum { Installing = 5U };

  enum { Installed = 6U };

  enum { UserInteraction = 7U };

  enum { Canceled = 8U };

  enum { Maintenance = 9U };

  enum { Error = 10U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_UPDATESTATE(_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_UPDATESTATE(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 UpdateState_T;

# define UpdateState_Invalid UpdateState::Invalid
# define UpdateState_Available UpdateState::Available
# define UpdateState_NotAvailable UpdateState::NotAvailable
# define UpdateState_Downloading UpdateState::Downloading
# define UpdateState_Downloaded UpdateState::Downloaded
# define UpdateState_Installing UpdateState::Installing
# define UpdateState_Installed UpdateState::Installed
# define UpdateState_UserInteraction UpdateState::UserInteraction
# define UpdateState_Canceled UpdateState::Canceled
# define UpdateState_Maintenance UpdateState::Maintenance
# define UpdateState_Error UpdateState::Error
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum UpdateState_T {
    UpdateState_Invalid = UpdateState::Invalid,
    UpdateState_Available = UpdateState::Available,
    UpdateState_NotAvailable = UpdateState::NotAvailable,
    UpdateState_Downloading = UpdateState::Downloading,
    UpdateState_Downloaded = UpdateState::Downloaded,
    UpdateState_Installing = UpdateState::Installing,
    UpdateState_Installed = UpdateState::Installed,
    UpdateState_UserInteraction = UpdateState::UserInteraction,
    UpdateState_Canceled = UpdateState::Canceled,
    UpdateState_Maintenance = UpdateState::Maintenance,
    UpdateState_Error = UpdateState::Error,
    UpdateState_32BitHack = 0x7fffffff
} UpdateState_T;
# ifdef AssertCompileSize
AssertCompileSize(UpdateState_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    ProxyMode */
#define PROXYMODE_IID_STR "885264b3-b517-40fc-ce46-36e3bae895a4"

#define PROXYMODE_IID \
  {0x885264b3, 0xb517, 0x40fc, \
    { 0xce, 0x46, 0x36, 0xe3, 0xba, 0xe8, 0x95, 0xa4 }}

class NS_NO_VTABLE ProxyMode {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(PROXYMODE_IID)

  enum { System = 0U };

  enum { NoProxy = 1U };

  enum { Manual = 2U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_PROXYMODE(_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_PROXYMODE(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 ProxyMode_T;

# define ProxyMode_System ProxyMode::System
# define ProxyMode_NoProxy ProxyMode::NoProxy
# define ProxyMode_Manual ProxyMode::Manual
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum ProxyMode_T {
    ProxyMode_System = ProxyMode::System,
    ProxyMode_NoProxy = ProxyMode::NoProxy,
    ProxyMode_Manual = ProxyMode::Manual,
    ProxyMode_32BitHack = 0x7fffffff
} ProxyMode_T;
# ifdef AssertCompileSize
AssertCompileSize(ProxyMode_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    AdditionsFacilityType */
#define ADDITIONSFACILITYTYPE_IID_STR "c4b10d74-dd48-4ff4-9a40-785a2a389ade"

#define ADDITIONSFACILITYTYPE_IID \
  {0xc4b10d74, 0xdd48, 0x4ff4, \
    { 0x9a, 0x40, 0x78, 0x5a, 0x2a, 0x38, 0x9a, 0xde }}

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 { MonitorAttach = 1101U };

  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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 AdditionsFacilityType_T;

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

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 AdditionsFacilityClass_T;

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

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 AdditionsFacilityStatus_T;

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

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 AdditionsRunLevelType_T;

# define AdditionsRunLevelType_None AdditionsRunLevelType::None
# define AdditionsRunLevelType_System AdditionsRunLevelType::System
# define AdditionsRunLevelType_Userland AdditionsRunLevelType::Userland
# define AdditionsRunLevelType_Desktop AdditionsRunLevelType::Desktop
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum AdditionsRunLevelType_T {
    AdditionsRunLevelType_None = AdditionsRunLevelType::None,
    AdditionsRunLevelType_System = AdditionsRunLevelType::System,
    AdditionsRunLevelType_Userland = AdditionsRunLevelType::Userland,
    AdditionsRunLevelType_Desktop = AdditionsRunLevelType::Desktop,
    AdditionsRunLevelType_32BitHack = 0x7fffffff
} AdditionsRunLevelType_T;
# ifdef AssertCompileSize
AssertCompileSize(AdditionsRunLevelType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 AdditionsUpdateFlag_T;

# define AdditionsUpdateFlag_None AdditionsUpdateFlag::None
# define AdditionsUpdateFlag_WaitForUpdateStartOnly AdditionsUpdateFlag::WaitForUpdateStartOnly
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum AdditionsUpdateFlag_T {
    AdditionsUpdateFlag_None = AdditionsUpdateFlag::None,
    AdditionsUpdateFlag_WaitForUpdateStartOnly = AdditionsUpdateFlag::WaitForUpdateStartOnly,
    AdditionsUpdateFlag_32BitHack = 0x7fffffff
} AdditionsUpdateFlag_T;
# ifdef AssertCompileSize
AssertCompileSize(AdditionsUpdateFlag_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    GuestShutdownFlag */
#define GUESTSHUTDOWNFLAG_IID_STR "28d19c9c-5862-4930-b29a-f117712b4864"

#define GUESTSHUTDOWNFLAG_IID \
  {0x28d19c9c, 0x5862, 0x4930, \
    { 0xb2, 0x9a, 0xf1, 0x17, 0x71, 0x2b, 0x48, 0x64 }}

class NS_NO_VTABLE GuestShutdownFlag {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(GUESTSHUTDOWNFLAG_IID)

  enum { None = 0U };

  enum { PowerOff = 1U };

  enum { Reboot = 2U };

  enum { Force = 4U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_GUESTSHUTDOWNFLAG(_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_GUESTSHUTDOWNFLAG(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 GuestShutdownFlag_T;

# define GuestShutdownFlag_None GuestShutdownFlag::None
# define GuestShutdownFlag_PowerOff GuestShutdownFlag::PowerOff
# define GuestShutdownFlag_Reboot GuestShutdownFlag::Reboot
# define GuestShutdownFlag_Force GuestShutdownFlag::Force
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum GuestShutdownFlag_T {
    GuestShutdownFlag_None = GuestShutdownFlag::None,
    GuestShutdownFlag_PowerOff = GuestShutdownFlag::PowerOff,
    GuestShutdownFlag_Reboot = GuestShutdownFlag::Reboot,
    GuestShutdownFlag_Force = GuestShutdownFlag::Force,
    GuestShutdownFlag_32BitHack = 0x7fffffff
} GuestShutdownFlag_T;
# ifdef AssertCompileSize
AssertCompileSize(GuestShutdownFlag_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 GuestSessionStatus_T;

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

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 GuestSessionWaitForFlag_T;

# define GuestSessionWaitForFlag_None GuestSessionWaitForFlag::None
# define GuestSessionWaitForFlag_Start GuestSessionWaitForFlag::Start
# define GuestSessionWaitForFlag_Terminate GuestSessionWaitForFlag::Terminate
# define GuestSessionWaitForFlag_Status GuestSessionWaitForFlag::Status
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum GuestSessionWaitForFlag_T {
    GuestSessionWaitForFlag_None = GuestSessionWaitForFlag::None,
    GuestSessionWaitForFlag_Start = GuestSessionWaitForFlag::Start,
    GuestSessionWaitForFlag_Terminate = GuestSessionWaitForFlag::Terminate,
    GuestSessionWaitForFlag_Status = GuestSessionWaitForFlag::Status,
    GuestSessionWaitForFlag_32BitHack = 0x7fffffff
} GuestSessionWaitForFlag_T;
# ifdef AssertCompileSize
AssertCompileSize(GuestSessionWaitForFlag_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 GuestSessionWaitResult_T;

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

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 GuestUserState_T;

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

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 FileSeekOrigin_T;

# define FileSeekOrigin_Begin FileSeekOrigin::Begin
# define FileSeekOrigin_Current FileSeekOrigin::Current
# define FileSeekOrigin_End FileSeekOrigin::End
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum FileSeekOrigin_T {
    FileSeekOrigin_Begin = FileSeekOrigin::Begin,
    FileSeekOrigin_Current = FileSeekOrigin::Current,
    FileSeekOrigin_End = FileSeekOrigin::End,
    FileSeekOrigin_32BitHack = 0x7fffffff
} FileSeekOrigin_T;
# ifdef AssertCompileSize
AssertCompileSize(FileSeekOrigin_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 ProcessInputFlag_T;

# define ProcessInputFlag_None ProcessInputFlag::None
# define ProcessInputFlag_EndOfFile ProcessInputFlag::EndOfFile
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum ProcessInputFlag_T {
    ProcessInputFlag_None = ProcessInputFlag::None,
    ProcessInputFlag_EndOfFile = ProcessInputFlag::EndOfFile,
    ProcessInputFlag_32BitHack = 0x7fffffff
} ProcessInputFlag_T;
# ifdef AssertCompileSize
AssertCompileSize(ProcessInputFlag_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 ProcessOutputFlag_T;

# define ProcessOutputFlag_None ProcessOutputFlag::None
# define ProcessOutputFlag_StdErr ProcessOutputFlag::StdErr
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum ProcessOutputFlag_T {
    ProcessOutputFlag_None = ProcessOutputFlag::None,
    ProcessOutputFlag_StdErr = ProcessOutputFlag::StdErr,
    ProcessOutputFlag_32BitHack = 0x7fffffff
} ProcessOutputFlag_T;
# ifdef AssertCompileSize
AssertCompileSize(ProcessOutputFlag_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 ProcessWaitForFlag_T;

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

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 ProcessWaitResult_T;

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

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 FileCopyFlag_T;

# define FileCopyFlag_None FileCopyFlag::None
# define FileCopyFlag_NoReplace FileCopyFlag::NoReplace
# define FileCopyFlag_FollowLinks FileCopyFlag::FollowLinks
# define FileCopyFlag_Update FileCopyFlag::Update
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum FileCopyFlag_T {
    FileCopyFlag_None = FileCopyFlag::None,
    FileCopyFlag_NoReplace = FileCopyFlag::NoReplace,
    FileCopyFlag_FollowLinks = FileCopyFlag::FollowLinks,
    FileCopyFlag_Update = FileCopyFlag::Update,
    FileCopyFlag_32BitHack = 0x7fffffff
} FileCopyFlag_T;
# ifdef AssertCompileSize
AssertCompileSize(FileCopyFlag_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    FsObjMoveFlag */
#define FSOBJMOVEFLAG_IID_STR "2450a05d-80c6-4c96-9a17-94d73293ff86"

#define FSOBJMOVEFLAG_IID \
  {0x2450a05d, 0x80c6, 0x4c96, \
    { 0x9a, 0x17, 0x94, 0xd7, 0x32, 0x93, 0xff, 0x86 }}

class NS_NO_VTABLE FsObjMoveFlag {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FSOBJMOVEFLAG_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_FSOBJMOVEFLAG \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FSOBJMOVEFLAG(_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_FSOBJMOVEFLAG(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 FsObjMoveFlag_T;

# define FsObjMoveFlag_None FsObjMoveFlag::None
# define FsObjMoveFlag_Replace FsObjMoveFlag::Replace
# define FsObjMoveFlag_FollowLinks FsObjMoveFlag::FollowLinks
# define FsObjMoveFlag_AllowDirectoryMoves FsObjMoveFlag::AllowDirectoryMoves
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum FsObjMoveFlag_T {
    FsObjMoveFlag_None = FsObjMoveFlag::None,
    FsObjMoveFlag_Replace = FsObjMoveFlag::Replace,
    FsObjMoveFlag_FollowLinks = FsObjMoveFlag::FollowLinks,
    FsObjMoveFlag_AllowDirectoryMoves = FsObjMoveFlag::AllowDirectoryMoves,
    FsObjMoveFlag_32BitHack = 0x7fffffff
} FsObjMoveFlag_T;
# ifdef AssertCompileSize
AssertCompileSize(FsObjMoveFlag_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 DirectoryCreateFlag_T;

# define DirectoryCreateFlag_None DirectoryCreateFlag::None
# define DirectoryCreateFlag_Parents DirectoryCreateFlag::Parents
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum DirectoryCreateFlag_T {
    DirectoryCreateFlag_None = DirectoryCreateFlag::None,
    DirectoryCreateFlag_Parents = DirectoryCreateFlag::Parents,
    DirectoryCreateFlag_32BitHack = 0x7fffffff
} DirectoryCreateFlag_T;
# ifdef AssertCompileSize
AssertCompileSize(DirectoryCreateFlag_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    DirectoryCopyFlag */
#define DIRECTORYCOPYFLAG_IID_STR "20108c67-b1eb-4ef6-869b-25539a47a18e"

#define DIRECTORYCOPYFLAG_IID \
  {0x20108c67, 0xb1eb, 0x4ef6, \
    { 0x86, 0x9b, 0x25, 0x53, 0x9a, 0x47, 0xa1, 0x8e }}

class NS_NO_VTABLE DirectoryCopyFlag {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(DIRECTORYCOPYFLAG_IID)

  enum { None = 0U };

  enum { CopyIntoExisting = 1U };

  enum { Recursive = 2U };

  enum { FollowLinks = 4U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_DIRECTORYCOPYFLAG(_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_DIRECTORYCOPYFLAG(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 DirectoryCopyFlag_T;

# define DirectoryCopyFlag_None DirectoryCopyFlag::None
# define DirectoryCopyFlag_CopyIntoExisting DirectoryCopyFlag::CopyIntoExisting
# define DirectoryCopyFlag_Recursive DirectoryCopyFlag::Recursive
# define DirectoryCopyFlag_FollowLinks DirectoryCopyFlag::FollowLinks
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum DirectoryCopyFlag_T {
    DirectoryCopyFlag_None = DirectoryCopyFlag::None,
    DirectoryCopyFlag_CopyIntoExisting = DirectoryCopyFlag::CopyIntoExisting,
    DirectoryCopyFlag_Recursive = DirectoryCopyFlag::Recursive,
    DirectoryCopyFlag_FollowLinks = DirectoryCopyFlag::FollowLinks,
    DirectoryCopyFlag_32BitHack = 0x7fffffff
} DirectoryCopyFlag_T;
# ifdef AssertCompileSize
AssertCompileSize(DirectoryCopyFlag_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 DirectoryRemoveRecFlag_T;

# define DirectoryRemoveRecFlag_None DirectoryRemoveRecFlag::None
# define DirectoryRemoveRecFlag_ContentAndDir DirectoryRemoveRecFlag::ContentAndDir
# define DirectoryRemoveRecFlag_ContentOnly DirectoryRemoveRecFlag::ContentOnly
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum DirectoryRemoveRecFlag_T {
    DirectoryRemoveRecFlag_None = DirectoryRemoveRecFlag::None,
    DirectoryRemoveRecFlag_ContentAndDir = DirectoryRemoveRecFlag::ContentAndDir,
    DirectoryRemoveRecFlag_ContentOnly = DirectoryRemoveRecFlag::ContentOnly,
    DirectoryRemoveRecFlag_32BitHack = 0x7fffffff
} DirectoryRemoveRecFlag_T;
# ifdef AssertCompileSize
AssertCompileSize(DirectoryRemoveRecFlag_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 FsObjRenameFlag_T;

# define FsObjRenameFlag_NoReplace FsObjRenameFlag::NoReplace
# define FsObjRenameFlag_Replace FsObjRenameFlag::Replace
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum FsObjRenameFlag_T {
    FsObjRenameFlag_NoReplace = FsObjRenameFlag::NoReplace,
    FsObjRenameFlag_Replace = FsObjRenameFlag::Replace,
    FsObjRenameFlag_32BitHack = 0x7fffffff
} FsObjRenameFlag_T;
# ifdef AssertCompileSize
AssertCompileSize(FsObjRenameFlag_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    ProcessCreateFlag */
#define PROCESSCREATEFLAG_IID_STR "c544cd2b-f02d-4886-9901-71c523db8dc5"

#define PROCESSCREATEFLAG_IID \
  {0xc544cd2b, 0xf02d, 0x4886, \
    { 0x99, 0x01, 0x71, 0xc5, 0x23, 0xdb, 0x8d, 0xc5 }}

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 { Profile = 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 ProcessCreateFlag_T;

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

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 ProcessPriority_T;

# define ProcessPriority_Invalid ProcessPriority::Invalid
# define ProcessPriority_Default ProcessPriority::Default
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum ProcessPriority_T {
    ProcessPriority_Invalid = ProcessPriority::Invalid,
    ProcessPriority_Default = ProcessPriority::Default,
    ProcessPriority_32BitHack = 0x7fffffff
} ProcessPriority_T;
# ifdef AssertCompileSize
AssertCompileSize(ProcessPriority_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 SymlinkType_T;

# define SymlinkType_Unknown SymlinkType::Unknown
# define SymlinkType_Directory SymlinkType::Directory
# define SymlinkType_File SymlinkType::File
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum SymlinkType_T {
    SymlinkType_Unknown = SymlinkType::Unknown,
    SymlinkType_Directory = SymlinkType::Directory,
    SymlinkType_File = SymlinkType::File,
    SymlinkType_32BitHack = 0x7fffffff
} SymlinkType_T;
# ifdef AssertCompileSize
AssertCompileSize(SymlinkType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 SymlinkReadFlag_T;

# define SymlinkReadFlag_None SymlinkReadFlag::None
# define SymlinkReadFlag_NoSymlinks SymlinkReadFlag::NoSymlinks
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum SymlinkReadFlag_T {
    SymlinkReadFlag_None = SymlinkReadFlag::None,
    SymlinkReadFlag_NoSymlinks = SymlinkReadFlag::NoSymlinks,
    SymlinkReadFlag_32BitHack = 0x7fffffff
} SymlinkReadFlag_T;
# ifdef AssertCompileSize
AssertCompileSize(SymlinkReadFlag_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 ProcessStatus_T;

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

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 ProcessInputStatus_T;

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

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 PathStyle_T;

# define PathStyle_DOS PathStyle::DOS
# define PathStyle_UNIX PathStyle::UNIX
# define PathStyle_Unknown PathStyle::Unknown
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum PathStyle_T {
    PathStyle_DOS = PathStyle::DOS,
    PathStyle_UNIX = PathStyle::UNIX,
    PathStyle_Unknown = PathStyle::Unknown,
    PathStyle_32BitHack = 0x7fffffff
} PathStyle_T;
# ifdef AssertCompileSize
AssertCompileSize(PathStyle_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    DirectoryStatus */
#define DIRECTORYSTATUS_IID_STR "a50ca1fc-85a9-4a7a-b755-68c3db01caf1"

#define DIRECTORYSTATUS_IID \
  {0xa50ca1fc, 0x85a9, 0x4a7a, \
    { 0xb7, 0x55, 0x68, 0xc3, 0xdb, 0x01, 0xca, 0xf1 }}

class NS_NO_VTABLE DirectoryStatus {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(DIRECTORYSTATUS_IID)

  enum { Undefined = 0U };

  enum { Open = 1U };

  enum { Close = 2U };

  enum { Rewind = 3U };

  enum { Down = 4U };

  enum { Error = 5U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_DIRECTORYSTATUS(_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_DIRECTORYSTATUS(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 DirectoryStatus_T;

# define DirectoryStatus_Undefined DirectoryStatus::Undefined
# define DirectoryStatus_Open DirectoryStatus::Open
# define DirectoryStatus_Close DirectoryStatus::Close
# define DirectoryStatus_Rewind DirectoryStatus::Rewind
# define DirectoryStatus_Down DirectoryStatus::Down
# define DirectoryStatus_Error DirectoryStatus::Error
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum DirectoryStatus_T {
    DirectoryStatus_Undefined = DirectoryStatus::Undefined,
    DirectoryStatus_Open = DirectoryStatus::Open,
    DirectoryStatus_Close = DirectoryStatus::Close,
    DirectoryStatus_Rewind = DirectoryStatus::Rewind,
    DirectoryStatus_Down = DirectoryStatus::Down,
    DirectoryStatus_Error = DirectoryStatus::Error,
    DirectoryStatus_32BitHack = 0x7fffffff
} DirectoryStatus_T;
# ifdef AssertCompileSize
AssertCompileSize(DirectoryStatus_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 FileAccessMode_T;

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

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 FileOpenAction_T;

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

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 FileSharingMode_T;

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

/* starting interface:    FileOpenExFlag */
#define FILEOPENEXFLAG_IID_STR "4671abd4-f70c-42aa-8542-6c169cb87a5c"

#define FILEOPENEXFLAG_IID \
  {0x4671abd4, 0xf70c, 0x42aa, \
    { 0x85, 0x42, 0x6c, 0x16, 0x9c, 0xb8, 0x7a, 0x5c }}

class NS_NO_VTABLE FileOpenExFlag {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FILEOPENEXFLAG_IID)

  enum { None = 0U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FILEOPENEXFLAG(_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_FILEOPENEXFLAG(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 FileOpenExFlag_T;

# define FileOpenExFlag_None FileOpenExFlag::None
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum FileOpenExFlag_T {
    FileOpenExFlag_None = FileOpenExFlag::None,
    FileOpenExFlag_32BitHack = 0x7fffffff
} FileOpenExFlag_T;
# ifdef AssertCompileSize
AssertCompileSize(FileOpenExFlag_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 FileStatus_T;

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

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 FsObjType_T;

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

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 DnDAction_T;

# define DnDAction_Ignore DnDAction::Ignore
# define DnDAction_Copy DnDAction::Copy
# define DnDAction_Move DnDAction::Move
# define DnDAction_Link DnDAction::Link
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum DnDAction_T {
    DnDAction_Ignore = DnDAction::Ignore,
    DnDAction_Copy = DnDAction::Copy,
    DnDAction_Move = DnDAction::Move,
    DnDAction_Link = DnDAction::Link,
    DnDAction_32BitHack = 0x7fffffff
} DnDAction_T;
# ifdef AssertCompileSize
AssertCompileSize(DnDAction_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    DirectoryOpenFlag */
#define DIRECTORYOPENFLAG_IID_STR "92f838f6-cbf9-4760-bb63-92c567773366"

#define DIRECTORYOPENFLAG_IID \
  {0x92f838f6, 0xcbf9, 0x4760, \
    { 0xbb, 0x63, 0x92, 0xc5, 0x67, 0x77, 0x33, 0x66 }}

class NS_NO_VTABLE DirectoryOpenFlag {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(DIRECTORYOPENFLAG_IID)

  enum { None = 0U };

  enum { NoSymlinks = 1U };

  enum { DenyAscent = 2U };

  enum { NoFollowSymlinks = 4U };

};

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 DirectoryOpenFlag_T;

# define DirectoryOpenFlag_None DirectoryOpenFlag::None
# define DirectoryOpenFlag_NoSymlinks DirectoryOpenFlag::NoSymlinks
# define DirectoryOpenFlag_DenyAscent DirectoryOpenFlag::DenyAscent
# define DirectoryOpenFlag_NoFollowSymlinks DirectoryOpenFlag::NoFollowSymlinks
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum DirectoryOpenFlag_T {
    DirectoryOpenFlag_None = DirectoryOpenFlag::None,
    DirectoryOpenFlag_NoSymlinks = DirectoryOpenFlag::NoSymlinks,
    DirectoryOpenFlag_DenyAscent = DirectoryOpenFlag::DenyAscent,
    DirectoryOpenFlag_NoFollowSymlinks = DirectoryOpenFlag::NoFollowSymlinks,
    DirectoryOpenFlag_32BitHack = 0x7fffffff
} DirectoryOpenFlag_T;
# ifdef AssertCompileSize
AssertCompileSize(DirectoryOpenFlag_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 MediumState_T;

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

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 MediumType_T;

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

/* 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 { Formatted = 536870912U };

  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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 MediumVariant_T;

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

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 DataType_T;

# define DataType_Int32 DataType::Int32
# define DataType_Int8 DataType::Int8
# define DataType_String DataType::String
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum DataType_T {
    DataType_Int32 = DataType::Int32,
    DataType_Int8 = DataType::Int8,
    DataType_String = DataType::String,
    DataType_32BitHack = 0x7fffffff
} DataType_T;
# ifdef AssertCompileSize
AssertCompileSize(DataType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 DataFlags_T;

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

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 MediumFormatCapabilities_T;

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

/* starting interface:    PartitionTableType */
#define PARTITIONTABLETYPE_IID_STR "360066eb-d19e-4fa1-57ef-fed434fbe2a9"

#define PARTITIONTABLETYPE_IID \
  {0x360066eb, 0xd19e, 0x4fa1, \
    { 0x57, 0xef, 0xfe, 0xd4, 0x34, 0xfb, 0xe2, 0xa9 }}

class NS_NO_VTABLE PartitionTableType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(PARTITIONTABLETYPE_IID)

  enum { MBR = 1U };

  enum { GPT = 2U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_PARTITIONTABLETYPE(_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_PARTITIONTABLETYPE(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 PartitionTableType_T;

# define PartitionTableType_MBR PartitionTableType::MBR
# define PartitionTableType_GPT PartitionTableType::GPT
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum PartitionTableType_T {
    PartitionTableType_MBR = PartitionTableType::MBR,
    PartitionTableType_GPT = PartitionTableType::GPT,
    PartitionTableType_32BitHack = 0x7fffffff
} PartitionTableType_T;
# ifdef AssertCompileSize
AssertCompileSize(PartitionTableType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 KeyboardLED_T;

# define KeyboardLED_NumLock KeyboardLED::NumLock
# define KeyboardLED_CapsLock KeyboardLED::CapsLock
# define KeyboardLED_ScrollLock KeyboardLED::ScrollLock
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum KeyboardLED_T {
    KeyboardLED_NumLock = KeyboardLED::NumLock,
    KeyboardLED_CapsLock = KeyboardLED::CapsLock,
    KeyboardLED_ScrollLock = KeyboardLED::ScrollLock,
    KeyboardLED_32BitHack = 0x7fffffff
} KeyboardLED_T;
# ifdef AssertCompileSize
AssertCompileSize(KeyboardLED_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 MouseButtonState_T;

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

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 TouchContactState_T;

# define TouchContactState_None TouchContactState::None
# define TouchContactState_InContact TouchContactState::InContact
# define TouchContactState_InRange TouchContactState::InRange
# define TouchContactState_ContactStateMask TouchContactState::ContactStateMask
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum TouchContactState_T {
    TouchContactState_None = TouchContactState::None,
    TouchContactState_InContact = TouchContactState::InContact,
    TouchContactState_InRange = TouchContactState::InRange,
    TouchContactState_ContactStateMask = TouchContactState::ContactStateMask,
    TouchContactState_32BitHack = 0x7fffffff
} TouchContactState_T;
# ifdef AssertCompileSize
AssertCompileSize(TouchContactState_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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 };

  enum { RenderCursor = 8U };

  enum { MoveCursor = 16U };

};

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 FramebufferCapabilities_T;

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

/* starting interface:    GuestMonitorStatus */
#define GUESTMONITORSTATUS_IID_STR "6b8d3f71-39cb-459e-a916-48917ed43e19"

#define GUESTMONITORSTATUS_IID \
  {0x6b8d3f71, 0x39cb, 0x459e, \
    { 0xa9, 0x16, 0x48, 0x91, 0x7e, 0xd4, 0x3e, 0x19 }}

class NS_NO_VTABLE GuestMonitorStatus {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(GUESTMONITORSTATUS_IID)

  enum { Disabled = 0U };

  enum { Enabled = 1U };

  enum { Blank = 2U };

};

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 GuestMonitorStatus_T;

# define GuestMonitorStatus_Disabled GuestMonitorStatus::Disabled
# define GuestMonitorStatus_Enabled GuestMonitorStatus::Enabled
# define GuestMonitorStatus_Blank GuestMonitorStatus::Blank
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum GuestMonitorStatus_T {
    GuestMonitorStatus_Disabled = GuestMonitorStatus::Disabled,
    GuestMonitorStatus_Enabled = GuestMonitorStatus::Enabled,
    GuestMonitorStatus_Blank = GuestMonitorStatus::Blank,
    GuestMonitorStatus_32BitHack = 0x7fffffff
} GuestMonitorStatus_T;
# ifdef AssertCompileSize
AssertCompileSize(GuestMonitorStatus_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    ScreenLayoutMode */
#define SCREENLAYOUTMODE_IID_STR "8fa1964c-8774-11e9-ae5d-1f419105e68d"

#define SCREENLAYOUTMODE_IID \
  {0x8fa1964c, 0x8774, 0x11e9, \
    { 0xae, 0x5d, 0x1f, 0x41, 0x91, 0x05, 0xe6, 0x8d }}

class NS_NO_VTABLE ScreenLayoutMode {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(SCREENLAYOUTMODE_IID)

  enum { Apply = 0U };

  enum { Reset = 1U };

  enum { Attach = 2U };

  enum { Silent = 3U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_SCREENLAYOUTMODE(_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_SCREENLAYOUTMODE(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 ScreenLayoutMode_T;

# define ScreenLayoutMode_Apply ScreenLayoutMode::Apply
# define ScreenLayoutMode_Reset ScreenLayoutMode::Reset
# define ScreenLayoutMode_Attach ScreenLayoutMode::Attach
# define ScreenLayoutMode_Silent ScreenLayoutMode::Silent
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum ScreenLayoutMode_T {
    ScreenLayoutMode_Apply = ScreenLayoutMode::Apply,
    ScreenLayoutMode_Reset = ScreenLayoutMode::Reset,
    ScreenLayoutMode_Attach = ScreenLayoutMode::Attach,
    ScreenLayoutMode_Silent = ScreenLayoutMode::Silent,
    ScreenLayoutMode_32BitHack = 0x7fffffff
} ScreenLayoutMode_T;
# ifdef AssertCompileSize
AssertCompileSize(ScreenLayoutMode_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    NetworkAttachmentType */
#define NETWORKATTACHMENTTYPE_IID_STR "cbfd17fa-fdc3-4d1c-97ec-4674da8d2a5d"

#define NETWORKATTACHMENTTYPE_IID \
  {0xcbfd17fa, 0xfdc3, 0x4d1c, \
    { 0x97, 0xec, 0x46, 0x74, 0xda, 0x8d, 0x2a, 0x5d }}

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 };

  enum { Cloud = 7U };

  enum { HostOnlyNetwork = 8U };

};

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 NetworkAttachmentType_T;

# define NetworkAttachmentType_Null NetworkAttachmentType::Null
# define NetworkAttachmentType_NAT NetworkAttachmentType::NAT
# define NetworkAttachmentType_Bridged NetworkAttachmentType::Bridged
# define NetworkAttachmentType_Internal NetworkAttachmentType::Internal
# define NetworkAttachmentType_HostOnly NetworkAttachmentType::HostOnly
# define NetworkAttachmentType_Generic NetworkAttachmentType::Generic
# define NetworkAttachmentType_NATNetwork NetworkAttachmentType::NATNetwork
# define NetworkAttachmentType_Cloud NetworkAttachmentType::Cloud
# define NetworkAttachmentType_HostOnlyNetwork NetworkAttachmentType::HostOnlyNetwork
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum NetworkAttachmentType_T {
    NetworkAttachmentType_Null = NetworkAttachmentType::Null,
    NetworkAttachmentType_NAT = NetworkAttachmentType::NAT,
    NetworkAttachmentType_Bridged = NetworkAttachmentType::Bridged,
    NetworkAttachmentType_Internal = NetworkAttachmentType::Internal,
    NetworkAttachmentType_HostOnly = NetworkAttachmentType::HostOnly,
    NetworkAttachmentType_Generic = NetworkAttachmentType::Generic,
    NetworkAttachmentType_NATNetwork = NetworkAttachmentType::NATNetwork,
    NetworkAttachmentType_Cloud = NetworkAttachmentType::Cloud,
    NetworkAttachmentType_HostOnlyNetwork = NetworkAttachmentType::HostOnlyNetwork,
    NetworkAttachmentType_32BitHack = 0x7fffffff
} NetworkAttachmentType_T;
# ifdef AssertCompileSize
AssertCompileSize(NetworkAttachmentType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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 };

  enum { Am79C960 = 7U };

  enum { NE2000 = 8U };

  enum { NE1000 = 9U };

  enum { WD8013 = 10U };

  enum { WD8003 = 11U };

  enum { ELNK2 = 12U };

  enum { ELNK1 = 13U };

  enum { UsbNet = 14U };

  enum { I82583V = 15U };

};

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 NetworkAdapterType_T;

# define NetworkAdapterType_Null NetworkAdapterType::Null
# define NetworkAdapterType_Am79C970A NetworkAdapterType::Am79C970A
# define NetworkAdapterType_Am79C973 NetworkAdapterType::Am79C973
# define NetworkAdapterType_I82540EM NetworkAdapterType::I82540EM
# define NetworkAdapterType_I82543GC NetworkAdapterType::I82543GC
# define NetworkAdapterType_I82545EM NetworkAdapterType::I82545EM
# define NetworkAdapterType_Virtio NetworkAdapterType::Virtio
# define NetworkAdapterType_Am79C960 NetworkAdapterType::Am79C960
# define NetworkAdapterType_NE2000 NetworkAdapterType::NE2000
# define NetworkAdapterType_NE1000 NetworkAdapterType::NE1000
# define NetworkAdapterType_WD8013 NetworkAdapterType::WD8013
# define NetworkAdapterType_WD8003 NetworkAdapterType::WD8003
# define NetworkAdapterType_ELNK2 NetworkAdapterType::ELNK2
# define NetworkAdapterType_ELNK1 NetworkAdapterType::ELNK1
# define NetworkAdapterType_UsbNet NetworkAdapterType::UsbNet
# define NetworkAdapterType_I82583V NetworkAdapterType::I82583V
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum NetworkAdapterType_T {
    NetworkAdapterType_Null = NetworkAdapterType::Null,
    NetworkAdapterType_Am79C970A = NetworkAdapterType::Am79C970A,
    NetworkAdapterType_Am79C973 = NetworkAdapterType::Am79C973,
    NetworkAdapterType_I82540EM = NetworkAdapterType::I82540EM,
    NetworkAdapterType_I82543GC = NetworkAdapterType::I82543GC,
    NetworkAdapterType_I82545EM = NetworkAdapterType::I82545EM,
    NetworkAdapterType_Virtio = NetworkAdapterType::Virtio,
    NetworkAdapterType_Am79C960 = NetworkAdapterType::Am79C960,
    NetworkAdapterType_NE2000 = NetworkAdapterType::NE2000,
    NetworkAdapterType_NE1000 = NetworkAdapterType::NE1000,
    NetworkAdapterType_WD8013 = NetworkAdapterType::WD8013,
    NetworkAdapterType_WD8003 = NetworkAdapterType::WD8003,
    NetworkAdapterType_ELNK2 = NetworkAdapterType::ELNK2,
    NetworkAdapterType_ELNK1 = NetworkAdapterType::ELNK1,
    NetworkAdapterType_UsbNet = NetworkAdapterType::UsbNet,
    NetworkAdapterType_I82583V = NetworkAdapterType::I82583V,
    NetworkAdapterType_32BitHack = 0x7fffffff
} NetworkAdapterType_T;
# ifdef AssertCompileSize
AssertCompileSize(NetworkAdapterType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 NetworkAdapterPromiscModePolicy_T;

# define NetworkAdapterPromiscModePolicy_Deny NetworkAdapterPromiscModePolicy::Deny
# define NetworkAdapterPromiscModePolicy_AllowNetwork NetworkAdapterPromiscModePolicy::AllowNetwork
# define NetworkAdapterPromiscModePolicy_AllowAll NetworkAdapterPromiscModePolicy::AllowAll
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum NetworkAdapterPromiscModePolicy_T {
    NetworkAdapterPromiscModePolicy_Deny = NetworkAdapterPromiscModePolicy::Deny,
    NetworkAdapterPromiscModePolicy_AllowNetwork = NetworkAdapterPromiscModePolicy::AllowNetwork,
    NetworkAdapterPromiscModePolicy_AllowAll = NetworkAdapterPromiscModePolicy::AllowAll,
    NetworkAdapterPromiscModePolicy_32BitHack = 0x7fffffff
} NetworkAdapterPromiscModePolicy_T;
# ifdef AssertCompileSize
AssertCompileSize(NetworkAdapterPromiscModePolicy_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 PortMode_T;

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

/* starting interface:    UartType */
#define UARTTYPE_IID_STR "c8899d39-0b90-4265-9d02-1e38bd4d1b39"

#define UARTTYPE_IID \
  {0xc8899d39, 0x0b90, 0x4265, \
    { 0x9d, 0x02, 0x1e, 0x38, 0xbd, 0x4d, 0x1b, 0x39 }}

class NS_NO_VTABLE UartType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(UARTTYPE_IID)

  enum { U16450 = 0U };

  enum { U16550A = 1U };

  enum { U16750 = 2U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_UARTTYPE(_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_UARTTYPE(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 UartType_T;

# define UartType_U16450 UartType::U16450
# define UartType_U16550A UartType::U16550A
# define UartType_U16750 UartType::U16750
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum UartType_T {
    UartType_U16450 = UartType::U16450,
    UartType_U16550A = UartType::U16550A,
    UartType_U16750 = UartType::U16750,
    UartType_32BitHack = 0x7fffffff
} UartType_T;
# ifdef AssertCompileSize
AssertCompileSize(UartType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 USBControllerType_T;

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

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 USBConnectionSpeed_T;

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

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 USBDeviceState_T;

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

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 USBDeviceFilterAction_T;

# define USBDeviceFilterAction_Null USBDeviceFilterAction::Null
# define USBDeviceFilterAction_Ignore USBDeviceFilterAction::Ignore
# define USBDeviceFilterAction_Hold USBDeviceFilterAction::Hold
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum USBDeviceFilterAction_T {
    USBDeviceFilterAction_Null = USBDeviceFilterAction::Null,
    USBDeviceFilterAction_Ignore = USBDeviceFilterAction::Ignore,
    USBDeviceFilterAction_Hold = USBDeviceFilterAction::Hold,
    USBDeviceFilterAction_32BitHack = 0x7fffffff
} USBDeviceFilterAction_T;
# ifdef AssertCompileSize
AssertCompileSize(USBDeviceFilterAction_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    AudioDriverType */
#define AUDIODRIVERTYPE_IID_STR "32b4acfd-79ab-4b7e-9a1c-92e99f4e000b"

#define AUDIODRIVERTYPE_IID \
  {0x32b4acfd, 0x79ab, 0x4b7e, \
    { 0x9a, 0x1c, 0x92, 0xe9, 0x9f, 0x4e, 0x00, 0x0b }}

class NS_NO_VTABLE AudioDriverType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(AUDIODRIVERTYPE_IID)

  enum { Default = 0U };

  enum { Null = 1U };

  enum { OSS = 2U };

  enum { ALSA = 3U };

  enum { Pulse = 4U };

  enum { WinMM = 5U };

  enum { DirectSound = 6U };

  enum { WAS = 7U };

  enum { CoreAudio = 8U };

  enum { MMPM = 9U };

  enum { SolAudio = 10U };

};

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 AudioDriverType_T;

# define AudioDriverType_Default AudioDriverType::Default
# define AudioDriverType_Null AudioDriverType::Null
# define AudioDriverType_OSS AudioDriverType::OSS
# define AudioDriverType_ALSA AudioDriverType::ALSA
# define AudioDriverType_Pulse AudioDriverType::Pulse
# define AudioDriverType_WinMM AudioDriverType::WinMM
# define AudioDriverType_DirectSound AudioDriverType::DirectSound
# define AudioDriverType_WAS AudioDriverType::WAS
# define AudioDriverType_CoreAudio AudioDriverType::CoreAudio
# define AudioDriverType_MMPM AudioDriverType::MMPM
# define AudioDriverType_SolAudio AudioDriverType::SolAudio
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum AudioDriverType_T {
    AudioDriverType_Default = AudioDriverType::Default,
    AudioDriverType_Null = AudioDriverType::Null,
    AudioDriverType_OSS = AudioDriverType::OSS,
    AudioDriverType_ALSA = AudioDriverType::ALSA,
    AudioDriverType_Pulse = AudioDriverType::Pulse,
    AudioDriverType_WinMM = AudioDriverType::WinMM,
    AudioDriverType_DirectSound = AudioDriverType::DirectSound,
    AudioDriverType_WAS = AudioDriverType::WAS,
    AudioDriverType_CoreAudio = AudioDriverType::CoreAudio,
    AudioDriverType_MMPM = AudioDriverType::MMPM,
    AudioDriverType_SolAudio = AudioDriverType::SolAudio,
    AudioDriverType_32BitHack = 0x7fffffff
} AudioDriverType_T;
# ifdef AssertCompileSize
AssertCompileSize(AudioDriverType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    AudioControllerType */
#define AUDIOCONTROLLERTYPE_IID_STR "6389dcc9-4e60-4983-9418-299e602efafc"

#define AUDIOCONTROLLERTYPE_IID \
  {0x6389dcc9, 0x4e60, 0x4983, \
    { 0x94, 0x18, 0x29, 0x9e, 0x60, 0x2e, 0xfa, 0xfc }}

class NS_NO_VTABLE AudioControllerType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(AUDIOCONTROLLERTYPE_IID)

  enum { AC97 = 0U };

  enum { SB16 = 1U };

  enum { HDA = 2U };

  enum { VirtioSound = 3U };

};

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 AudioControllerType_T;

# define AudioControllerType_AC97 AudioControllerType::AC97
# define AudioControllerType_SB16 AudioControllerType::SB16
# define AudioControllerType_HDA AudioControllerType::HDA
# define AudioControllerType_VirtioSound AudioControllerType::VirtioSound
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum AudioControllerType_T {
    AudioControllerType_AC97 = AudioControllerType::AC97,
    AudioControllerType_SB16 = AudioControllerType::SB16,
    AudioControllerType_HDA = AudioControllerType::HDA,
    AudioControllerType_VirtioSound = AudioControllerType::VirtioSound,
    AudioControllerType_32BitHack = 0x7fffffff
} AudioControllerType_T;
# ifdef AssertCompileSize
AssertCompileSize(AudioControllerType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 AudioCodecType_T;

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

/* starting interface:    AudioDirection */
#define AUDIODIRECTION_IID_STR "f27d209b-040c-4ae9-beae-85f9693ca07a"

#define AUDIODIRECTION_IID \
  {0xf27d209b, 0x040c, 0x4ae9, \
    { 0xbe, 0xae, 0x85, 0xf9, 0x69, 0x3c, 0xa0, 0x7a }}

class NS_NO_VTABLE AudioDirection {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(AUDIODIRECTION_IID)

  enum { Unknown = 0U };

  enum { In = 1U };

  enum { Out = 2U };

  enum { Duplex = 3U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_AUDIODIRECTION(_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_AUDIODIRECTION(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 AudioDirection_T;

# define AudioDirection_Unknown AudioDirection::Unknown
# define AudioDirection_In AudioDirection::In
# define AudioDirection_Out AudioDirection::Out
# define AudioDirection_Duplex AudioDirection::Duplex
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum AudioDirection_T {
    AudioDirection_Unknown = AudioDirection::Unknown,
    AudioDirection_In = AudioDirection::In,
    AudioDirection_Out = AudioDirection::Out,
    AudioDirection_Duplex = AudioDirection::Duplex,
    AudioDirection_32BitHack = 0x7fffffff
} AudioDirection_T;
# ifdef AssertCompileSize
AssertCompileSize(AudioDirection_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    AudioDeviceType */
#define AUDIODEVICETYPE_IID_STR "95457071-ef88-45a9-8416-fc05b08731d2"

#define AUDIODEVICETYPE_IID \
  {0x95457071, 0xef88, 0x45a9, \
    { 0x84, 0x16, 0xfc, 0x05, 0xb0, 0x87, 0x31, 0xd2 }}

class NS_NO_VTABLE AudioDeviceType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(AUDIODEVICETYPE_IID)

  enum { Unknown = 0U };

  enum { BuiltLin = 1U };

  enum { ExternalUSB = 2U };

  enum { ExternalOther = 3U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_AUDIODEVICETYPE(_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_AUDIODEVICETYPE(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 AudioDeviceType_T;

# define AudioDeviceType_Unknown AudioDeviceType::Unknown
# define AudioDeviceType_BuiltLin AudioDeviceType::BuiltLin
# define AudioDeviceType_ExternalUSB AudioDeviceType::ExternalUSB
# define AudioDeviceType_ExternalOther AudioDeviceType::ExternalOther
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum AudioDeviceType_T {
    AudioDeviceType_Unknown = AudioDeviceType::Unknown,
    AudioDeviceType_BuiltLin = AudioDeviceType::BuiltLin,
    AudioDeviceType_ExternalUSB = AudioDeviceType::ExternalUSB,
    AudioDeviceType_ExternalOther = AudioDeviceType::ExternalOther,
    AudioDeviceType_32BitHack = 0x7fffffff
} AudioDeviceType_T;
# ifdef AssertCompileSize
AssertCompileSize(AudioDeviceType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    AudioDeviceState */
#define AUDIODEVICESTATE_IID_STR "45c1b969-556a-4277-8570-b438d2ef5ebe"

#define AUDIODEVICESTATE_IID \
  {0x45c1b969, 0x556a, 0x4277, \
    { 0x85, 0x70, 0xb4, 0x38, 0xd2, 0xef, 0x5e, 0xbe }}

class NS_NO_VTABLE AudioDeviceState {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(AUDIODEVICESTATE_IID)

  enum { Unknown = 0U };

  enum { Active = 1U };

  enum { Disabled = 2U };

  enum { NotPresent = 3U };

  enum { Unplugged = 4U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_AUDIODEVICESTATE(_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_AUDIODEVICESTATE(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 AudioDeviceState_T;

# define AudioDeviceState_Unknown AudioDeviceState::Unknown
# define AudioDeviceState_Active AudioDeviceState::Active
# define AudioDeviceState_Disabled AudioDeviceState::Disabled
# define AudioDeviceState_NotPresent AudioDeviceState::NotPresent
# define AudioDeviceState_Unplugged AudioDeviceState::Unplugged
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum AudioDeviceState_T {
    AudioDeviceState_Unknown = AudioDeviceState::Unknown,
    AudioDeviceState_Active = AudioDeviceState::Active,
    AudioDeviceState_Disabled = AudioDeviceState::Disabled,
    AudioDeviceState_NotPresent = AudioDeviceState::NotPresent,
    AudioDeviceState_Unplugged = AudioDeviceState::Unplugged,
    AudioDeviceState_32BitHack = 0x7fffffff
} AudioDeviceState_T;
# ifdef AssertCompileSize
AssertCompileSize(AudioDeviceState_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 AuthType_T;

# define AuthType_Null AuthType::Null
# define AuthType_External AuthType::External
# define AuthType_Guest AuthType::Guest
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum AuthType_T {
    AuthType_Null = AuthType::Null,
    AuthType_External = AuthType::External,
    AuthType_Guest = AuthType::Guest,
    AuthType_32BitHack = 0x7fffffff
} AuthType_T;
# ifdef AssertCompileSize
AssertCompileSize(AuthType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 Reason_T;

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

/* starting interface:    StorageBus */
#define STORAGEBUS_IID_STR "f9510869-7d07-46ba-96a6-6728fbf4adee"

#define STORAGEBUS_IID \
  {0xf9510869, 0x7d07, 0x46ba, \
    { 0x96, 0xa6, 0x67, 0x28, 0xfb, 0xf4, 0xad, 0xee }}

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 };

  enum { VirtioSCSI = 8U };

};

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 StorageBus_T;

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

/* starting interface:    StorageControllerType */
#define STORAGECONTROLLERTYPE_IID_STR "a77d457d-66a3-4368-b24c-293d0f562a9f"

#define STORAGECONTROLLERTYPE_IID \
  {0xa77d457d, 0x66a3, 0x4368, \
    { 0xb2, 0x4c, 0x29, 0x3d, 0x0f, 0x56, 0x2a, 0x9f }}

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 };

  enum { VirtioSCSI = 11U };

};

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 StorageControllerType_T;

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

/* starting interface:    ChipsetType */
#define CHIPSETTYPE_IID_STR "733d5f16-1f47-4e25-b272-d7c138bc2e3d"

#define CHIPSETTYPE_IID \
  {0x733d5f16, 0x1f47, 0x4e25, \
    { 0xb2, 0x72, 0xd7, 0xc1, 0x38, 0xbc, 0x2e, 0x3d }}

class NS_NO_VTABLE ChipsetType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(CHIPSETTYPE_IID)

  enum { Null = 0U };

  enum { PIIX3 = 1U };

  enum { ICH9 = 2U };

  enum { ARMv8Virtual = 3U };

};

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 ChipsetType_T;

# define ChipsetType_Null ChipsetType::Null
# define ChipsetType_PIIX3 ChipsetType::PIIX3
# define ChipsetType_ICH9 ChipsetType::ICH9
# define ChipsetType_ARMv8Virtual ChipsetType::ARMv8Virtual
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum ChipsetType_T {
    ChipsetType_Null = ChipsetType::Null,
    ChipsetType_PIIX3 = ChipsetType::PIIX3,
    ChipsetType_ICH9 = ChipsetType::ICH9,
    ChipsetType_ARMv8Virtual = ChipsetType::ARMv8Virtual,
    ChipsetType_32BitHack = 0x7fffffff
} ChipsetType_T;
# ifdef AssertCompileSize
AssertCompileSize(ChipsetType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 NATAliasMode_T;

# define NATAliasMode_AliasLog NATAliasMode::AliasLog
# define NATAliasMode_AliasProxyOnly NATAliasMode::AliasProxyOnly
# define NATAliasMode_AliasUseSamePorts NATAliasMode::AliasUseSamePorts
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum NATAliasMode_T {
    NATAliasMode_AliasLog = NATAliasMode::AliasLog,
    NATAliasMode_AliasProxyOnly = NATAliasMode::AliasProxyOnly,
    NATAliasMode_AliasUseSamePorts = NATAliasMode::AliasUseSamePorts,
    NATAliasMode_32BitHack = 0x7fffffff
} NATAliasMode_T;
# ifdef AssertCompileSize
AssertCompileSize(NATAliasMode_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 NATProtocol_T;

# define NATProtocol_UDP NATProtocol::UDP
# define NATProtocol_TCP NATProtocol::TCP
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum NATProtocol_T {
    NATProtocol_UDP = NATProtocol::UDP,
    NATProtocol_TCP = NATProtocol::TCP,
    NATProtocol_32BitHack = 0x7fffffff
} NATProtocol_T;
# ifdef AssertCompileSize
AssertCompileSize(NATProtocol_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 BandwidthGroupType_T;

# define BandwidthGroupType_Null BandwidthGroupType::Null
# define BandwidthGroupType_Disk BandwidthGroupType::Disk
# define BandwidthGroupType_Network BandwidthGroupType::Network
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum BandwidthGroupType_T {
    BandwidthGroupType_Null = BandwidthGroupType::Null,
    BandwidthGroupType_Disk = BandwidthGroupType::Disk,
    BandwidthGroupType_Network = BandwidthGroupType::Network,
    BandwidthGroupType_32BitHack = 0x7fffffff
} BandwidthGroupType_T;
# ifdef AssertCompileSize
AssertCompileSize(BandwidthGroupType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    GuestDebugProvider */
#define GUESTDEBUGPROVIDER_IID_STR "acdaddc5-aa0f-4f2e-be1f-a9be2828d24a"

#define GUESTDEBUGPROVIDER_IID \
  {0xacdaddc5, 0xaa0f, 0x4f2e, \
    { 0xbe, 0x1f, 0xa9, 0xbe, 0x28, 0x28, 0xd2, 0x4a }}

class NS_NO_VTABLE GuestDebugProvider {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(GUESTDEBUGPROVIDER_IID)

  enum { None = 0U };

  enum { Native = 1U };

  enum { GDB = 2U };

  enum { KD = 3U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_GUESTDEBUGPROVIDER(_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_GUESTDEBUGPROVIDER(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 GuestDebugProvider_T;

# define GuestDebugProvider_None GuestDebugProvider::None
# define GuestDebugProvider_Native GuestDebugProvider::Native
# define GuestDebugProvider_GDB GuestDebugProvider::GDB
# define GuestDebugProvider_KD GuestDebugProvider::KD
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum GuestDebugProvider_T {
    GuestDebugProvider_None = GuestDebugProvider::None,
    GuestDebugProvider_Native = GuestDebugProvider::Native,
    GuestDebugProvider_GDB = GuestDebugProvider::GDB,
    GuestDebugProvider_KD = GuestDebugProvider::KD,
    GuestDebugProvider_32BitHack = 0x7fffffff
} GuestDebugProvider_T;
# ifdef AssertCompileSize
AssertCompileSize(GuestDebugProvider_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    GuestDebugIoProvider */
#define GUESTDEBUGIOPROVIDER_IID_STR "0cf00b1b-2ff7-414c-81c6-6cf410eaec4a"

#define GUESTDEBUGIOPROVIDER_IID \
  {0x0cf00b1b, 0x2ff7, 0x414c, \
    { 0x81, 0xc6, 0x6c, 0xf4, 0x10, 0xea, 0xec, 0x4a }}

class NS_NO_VTABLE GuestDebugIoProvider {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(GUESTDEBUGIOPROVIDER_IID)

  enum { None = 0U };

  enum { TCP = 1U };

  enum { UDP = 2U };

  enum { IPC = 3U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_GUESTDEBUGIOPROVIDER(_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_GUESTDEBUGIOPROVIDER(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 GuestDebugIoProvider_T;

# define GuestDebugIoProvider_None GuestDebugIoProvider::None
# define GuestDebugIoProvider_TCP GuestDebugIoProvider::TCP
# define GuestDebugIoProvider_UDP GuestDebugIoProvider::UDP
# define GuestDebugIoProvider_IPC GuestDebugIoProvider::IPC
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum GuestDebugIoProvider_T {
    GuestDebugIoProvider_None = GuestDebugIoProvider::None,
    GuestDebugIoProvider_TCP = GuestDebugIoProvider::TCP,
    GuestDebugIoProvider_UDP = GuestDebugIoProvider::UDP,
    GuestDebugIoProvider_IPC = GuestDebugIoProvider::IPC,
    GuestDebugIoProvider_32BitHack = 0x7fffffff
} GuestDebugIoProvider_T;
# ifdef AssertCompileSize
AssertCompileSize(GuestDebugIoProvider_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    VBoxEventType */
#define VBOXEVENTTYPE_IID_STR "0c8f8bd7-c5d8-4085-83c2-558a4025b215"

#define VBOXEVENTTYPE_IID \
  {0x0c8f8bd7, 0xc5d8, 0x4085, \
    { 0x83, 0xc2, 0x55, 0x8a, 0x40, 0x25, 0xb2, 0x15 }}

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 { OnRecordingStateChanged = 91U };

  enum { OnGuestUserStateChanged = 92U };

  enum { OnGuestMultiTouch = 93U };

  enum { OnHostNameResolutionConfigurationChange = 94U };

  enum { OnSnapshotRestored = 95U };

  enum { OnMediumConfigChanged = 96U };

  enum { OnAudioAdapterChanged = 97U };

  enum { OnProgressPercentageChanged = 98U };

  enum { OnProgressTaskCompleted = 99U };

  enum { OnCursorPositionChanged = 100U };

  enum { OnGuestAdditionsStatusChanged = 101U };

  enum { OnGuestMonitorInfoChanged = 102U };

  enum { OnGuestFileSizeChanged = 103U };

  enum { OnClipboardFileTransferModeChanged = 104U };

  enum { OnCloudProviderListChanged = 105U };

  enum { OnCloudProviderRegistered = 106U };

  enum { OnCloudProviderUninstall = 107U };

  enum { OnCloudProfileRegistered = 108U };

  enum { OnCloudProfileChanged = 109U };

  enum { OnProgressCreated = 110U };

  enum { OnLanguageChanged = 111U };

  enum { OnUpdateAgentAvailable = 112U };

  enum { OnUpdateAgentError = 113U };

  enum { OnUpdateAgentSettingsChanged = 114U };

  enum { OnUpdateAgentStateChanged = 115U };

  enum { OnHostAudioDeviceChanged = 116U };

  enum { OnGuestDebugControlChanged = 117U };

  enum { OnMachineGroupsChanged = 118U };

  enum { OnGuestDirectoryRegistered = 119U };

  enum { OnGuestDirectoryStateChanged = 120U };

  enum { OnGuestDirectoryRead = 121U };

  enum { OnClipboardError = 122U };

  enum { OnExtPackInstalled = 123U };

  enum { OnExtPackUninstalled = 124U };

  enum { OnRecordingScreenStateChanged = 125U };

  enum { End = 126U };

};

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 VBoxEventType_T;

# 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_OnRecordingStateChanged VBoxEventType::OnRecordingStateChanged
# define VBoxEventType_OnGuestUserStateChanged VBoxEventType::OnGuestUserStateChanged
# define VBoxEventType_OnGuestMultiTouch VBoxEventType::OnGuestMultiTouch
# define VBoxEventType_OnHostNameResolutionConfigurationChange VBoxEventType::OnHostNameResolutionConfigurationChange
# define VBoxEventType_OnSnapshotRestored VBoxEventType::OnSnapshotRestored
# define VBoxEventType_OnMediumConfigChanged VBoxEventType::OnMediumConfigChanged
# define VBoxEventType_OnAudioAdapterChanged VBoxEventType::OnAudioAdapterChanged
# define VBoxEventType_OnProgressPercentageChanged VBoxEventType::OnProgressPercentageChanged
# define VBoxEventType_OnProgressTaskCompleted VBoxEventType::OnProgressTaskCompleted
# define VBoxEventType_OnCursorPositionChanged VBoxEventType::OnCursorPositionChanged
# define VBoxEventType_OnGuestAdditionsStatusChanged VBoxEventType::OnGuestAdditionsStatusChanged
# define VBoxEventType_OnGuestMonitorInfoChanged VBoxEventType::OnGuestMonitorInfoChanged
# define VBoxEventType_OnGuestFileSizeChanged VBoxEventType::OnGuestFileSizeChanged
# define VBoxEventType_OnClipboardFileTransferModeChanged VBoxEventType::OnClipboardFileTransferModeChanged
# define VBoxEventType_OnCloudProviderListChanged VBoxEventType::OnCloudProviderListChanged
# define VBoxEventType_OnCloudProviderRegistered VBoxEventType::OnCloudProviderRegistered
# define VBoxEventType_OnCloudProviderUninstall VBoxEventType::OnCloudProviderUninstall
# define VBoxEventType_OnCloudProfileRegistered VBoxEventType::OnCloudProfileRegistered
# define VBoxEventType_OnCloudProfileChanged VBoxEventType::OnCloudProfileChanged
# define VBoxEventType_OnProgressCreated VBoxEventType::OnProgressCreated
# define VBoxEventType_OnLanguageChanged VBoxEventType::OnLanguageChanged
# define VBoxEventType_OnUpdateAgentAvailable VBoxEventType::OnUpdateAgentAvailable
# define VBoxEventType_OnUpdateAgentError VBoxEventType::OnUpdateAgentError
# define VBoxEventType_OnUpdateAgentSettingsChanged VBoxEventType::OnUpdateAgentSettingsChanged
# define VBoxEventType_OnUpdateAgentStateChanged VBoxEventType::OnUpdateAgentStateChanged
# define VBoxEventType_OnHostAudioDeviceChanged VBoxEventType::OnHostAudioDeviceChanged
# define VBoxEventType_OnGuestDebugControlChanged VBoxEventType::OnGuestDebugControlChanged
# define VBoxEventType_OnMachineGroupsChanged VBoxEventType::OnMachineGroupsChanged
# define VBoxEventType_OnGuestDirectoryRegistered VBoxEventType::OnGuestDirectoryRegistered
# define VBoxEventType_OnGuestDirectoryStateChanged VBoxEventType::OnGuestDirectoryStateChanged
# define VBoxEventType_OnGuestDirectoryRead VBoxEventType::OnGuestDirectoryRead
# define VBoxEventType_OnClipboardError VBoxEventType::OnClipboardError
# define VBoxEventType_OnExtPackInstalled VBoxEventType::OnExtPackInstalled
# define VBoxEventType_OnExtPackUninstalled VBoxEventType::OnExtPackUninstalled
# define VBoxEventType_OnRecordingScreenStateChanged VBoxEventType::OnRecordingScreenStateChanged
# define VBoxEventType_End VBoxEventType::End
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum VBoxEventType_T {
    VBoxEventType_Invalid = VBoxEventType::Invalid,
    VBoxEventType_Any = VBoxEventType::Any,
    VBoxEventType_Vetoable = VBoxEventType::Vetoable,
    VBoxEventType_MachineEvent = VBoxEventType::MachineEvent,
    VBoxEventType_SnapshotEvent = VBoxEventType::SnapshotEvent,
    VBoxEventType_InputEvent = VBoxEventType::InputEvent,
    VBoxEventType_LastWildcard = VBoxEventType::LastWildcard,
    VBoxEventType_OnMachineStateChanged = VBoxEventType::OnMachineStateChanged,
    VBoxEventType_OnMachineDataChanged = VBoxEventType::OnMachineDataChanged,
    VBoxEventType_OnExtraDataChanged = VBoxEventType::OnExtraDataChanged,
    VBoxEventType_OnExtraDataCanChange = VBoxEventType::OnExtraDataCanChange,
    VBoxEventType_OnMediumRegistered = VBoxEventType::OnMediumRegistered,
    VBoxEventType_OnMachineRegistered = VBoxEventType::OnMachineRegistered,
    VBoxEventType_OnSessionStateChanged = VBoxEventType::OnSessionStateChanged,
    VBoxEventType_OnSnapshotTaken = VBoxEventType::OnSnapshotTaken,
    VBoxEventType_OnSnapshotDeleted = VBoxEventType::OnSnapshotDeleted,
    VBoxEventType_OnSnapshotChanged = VBoxEventType::OnSnapshotChanged,
    VBoxEventType_OnGuestPropertyChanged = VBoxEventType::OnGuestPropertyChanged,
    VBoxEventType_OnMousePointerShapeChanged = VBoxEventType::OnMousePointerShapeChanged,
    VBoxEventType_OnMouseCapabilityChanged = VBoxEventType::OnMouseCapabilityChanged,
    VBoxEventType_OnKeyboardLedsChanged = VBoxEventType::OnKeyboardLedsChanged,
    VBoxEventType_OnStateChanged = VBoxEventType::OnStateChanged,
    VBoxEventType_OnAdditionsStateChanged = VBoxEventType::OnAdditionsStateChanged,
    VBoxEventType_OnNetworkAdapterChanged = VBoxEventType::OnNetworkAdapterChanged,
    VBoxEventType_OnSerialPortChanged = VBoxEventType::OnSerialPortChanged,
    VBoxEventType_OnParallelPortChanged = VBoxEventType::OnParallelPortChanged,
    VBoxEventType_OnStorageControllerChanged = VBoxEventType::OnStorageControllerChanged,
    VBoxEventType_OnMediumChanged = VBoxEventType::OnMediumChanged,
    VBoxEventType_OnVRDEServerChanged = VBoxEventType::OnVRDEServerChanged,
    VBoxEventType_OnUSBControllerChanged = VBoxEventType::OnUSBControllerChanged,
    VBoxEventType_OnUSBDeviceStateChanged = VBoxEventType::OnUSBDeviceStateChanged,
    VBoxEventType_OnSharedFolderChanged = VBoxEventType::OnSharedFolderChanged,
    VBoxEventType_OnRuntimeError = VBoxEventType::OnRuntimeError,
    VBoxEventType_OnCanShowWindow = VBoxEventType::OnCanShowWindow,
    VBoxEventType_OnShowWindow = VBoxEventType::OnShowWindow,
    VBoxEventType_OnCPUChanged = VBoxEventType::OnCPUChanged,
    VBoxEventType_OnVRDEServerInfoChanged = VBoxEventType::OnVRDEServerInfoChanged,
    VBoxEventType_OnEventSourceChanged = VBoxEventType::OnEventSourceChanged,
    VBoxEventType_OnCPUExecutionCapChanged = VBoxEventType::OnCPUExecutionCapChanged,
    VBoxEventType_OnGuestKeyboard = VBoxEventType::OnGuestKeyboard,
    VBoxEventType_OnGuestMouse = VBoxEventType::OnGuestMouse,
    VBoxEventType_OnNATRedirect = VBoxEventType::OnNATRedirect,
    VBoxEventType_OnHostPCIDevicePlug = VBoxEventType::OnHostPCIDevicePlug,
    VBoxEventType_OnVBoxSVCAvailabilityChanged = VBoxEventType::OnVBoxSVCAvailabilityChanged,
    VBoxEventType_OnBandwidthGroupChanged = VBoxEventType::OnBandwidthGroupChanged,
    VBoxEventType_OnGuestMonitorChanged = VBoxEventType::OnGuestMonitorChanged,
    VBoxEventType_OnStorageDeviceChanged = VBoxEventType::OnStorageDeviceChanged,
    VBoxEventType_OnClipboardModeChanged = VBoxEventType::OnClipboardModeChanged,
    VBoxEventType_OnDnDModeChanged = VBoxEventType::OnDnDModeChanged,
    VBoxEventType_OnNATNetworkChanged = VBoxEventType::OnNATNetworkChanged,
    VBoxEventType_OnNATNetworkStartStop = VBoxEventType::OnNATNetworkStartStop,
    VBoxEventType_OnNATNetworkAlter = VBoxEventType::OnNATNetworkAlter,
    VBoxEventType_OnNATNetworkCreationDeletion = VBoxEventType::OnNATNetworkCreationDeletion,
    VBoxEventType_OnNATNetworkSetting = VBoxEventType::OnNATNetworkSetting,
    VBoxEventType_OnNATNetworkPortForward = VBoxEventType::OnNATNetworkPortForward,
    VBoxEventType_OnGuestSessionStateChanged = VBoxEventType::OnGuestSessionStateChanged,
    VBoxEventType_OnGuestSessionRegistered = VBoxEventType::OnGuestSessionRegistered,
    VBoxEventType_OnGuestProcessRegistered = VBoxEventType::OnGuestProcessRegistered,
    VBoxEventType_OnGuestProcessStateChanged = VBoxEventType::OnGuestProcessStateChanged,
    VBoxEventType_OnGuestProcessInputNotify = VBoxEventType::OnGuestProcessInputNotify,
    VBoxEventType_OnGuestProcessOutput = VBoxEventType::OnGuestProcessOutput,
    VBoxEventType_OnGuestFileRegistered = VBoxEventType::OnGuestFileRegistered,
    VBoxEventType_OnGuestFileStateChanged = VBoxEventType::OnGuestFileStateChanged,
    VBoxEventType_OnGuestFileOffsetChanged = VBoxEventType::OnGuestFileOffsetChanged,
    VBoxEventType_OnGuestFileRead = VBoxEventType::OnGuestFileRead,
    VBoxEventType_OnGuestFileWrite = VBoxEventType::OnGuestFileWrite,
    VBoxEventType_OnRecordingStateChanged = VBoxEventType::OnRecordingStateChanged,
    VBoxEventType_OnGuestUserStateChanged = VBoxEventType::OnGuestUserStateChanged,
    VBoxEventType_OnGuestMultiTouch = VBoxEventType::OnGuestMultiTouch,
    VBoxEventType_OnHostNameResolutionConfigurationChange = VBoxEventType::OnHostNameResolutionConfigurationChange,
    VBoxEventType_OnSnapshotRestored = VBoxEventType::OnSnapshotRestored,
    VBoxEventType_OnMediumConfigChanged = VBoxEventType::OnMediumConfigChanged,
    VBoxEventType_OnAudioAdapterChanged = VBoxEventType::OnAudioAdapterChanged,
    VBoxEventType_OnProgressPercentageChanged = VBoxEventType::OnProgressPercentageChanged,
    VBoxEventType_OnProgressTaskCompleted = VBoxEventType::OnProgressTaskCompleted,
    VBoxEventType_OnCursorPositionChanged = VBoxEventType::OnCursorPositionChanged,
    VBoxEventType_OnGuestAdditionsStatusChanged = VBoxEventType::OnGuestAdditionsStatusChanged,
    VBoxEventType_OnGuestMonitorInfoChanged = VBoxEventType::OnGuestMonitorInfoChanged,
    VBoxEventType_OnGuestFileSizeChanged = VBoxEventType::OnGuestFileSizeChanged,
    VBoxEventType_OnClipboardFileTransferModeChanged = VBoxEventType::OnClipboardFileTransferModeChanged,
    VBoxEventType_OnCloudProviderListChanged = VBoxEventType::OnCloudProviderListChanged,
    VBoxEventType_OnCloudProviderRegistered = VBoxEventType::OnCloudProviderRegistered,
    VBoxEventType_OnCloudProviderUninstall = VBoxEventType::OnCloudProviderUninstall,
    VBoxEventType_OnCloudProfileRegistered = VBoxEventType::OnCloudProfileRegistered,
    VBoxEventType_OnCloudProfileChanged = VBoxEventType::OnCloudProfileChanged,
    VBoxEventType_OnProgressCreated = VBoxEventType::OnProgressCreated,
    VBoxEventType_OnLanguageChanged = VBoxEventType::OnLanguageChanged,
    VBoxEventType_OnUpdateAgentAvailable = VBoxEventType::OnUpdateAgentAvailable,
    VBoxEventType_OnUpdateAgentError = VBoxEventType::OnUpdateAgentError,
    VBoxEventType_OnUpdateAgentSettingsChanged = VBoxEventType::OnUpdateAgentSettingsChanged,
    VBoxEventType_OnUpdateAgentStateChanged = VBoxEventType::OnUpdateAgentStateChanged,
    VBoxEventType_OnHostAudioDeviceChanged = VBoxEventType::OnHostAudioDeviceChanged,
    VBoxEventType_OnGuestDebugControlChanged = VBoxEventType::OnGuestDebugControlChanged,
    VBoxEventType_OnMachineGroupsChanged = VBoxEventType::OnMachineGroupsChanged,
    VBoxEventType_OnGuestDirectoryRegistered = VBoxEventType::OnGuestDirectoryRegistered,
    VBoxEventType_OnGuestDirectoryStateChanged = VBoxEventType::OnGuestDirectoryStateChanged,
    VBoxEventType_OnGuestDirectoryRead = VBoxEventType::OnGuestDirectoryRead,
    VBoxEventType_OnClipboardError = VBoxEventType::OnClipboardError,
    VBoxEventType_OnExtPackInstalled = VBoxEventType::OnExtPackInstalled,
    VBoxEventType_OnExtPackUninstalled = VBoxEventType::OnExtPackUninstalled,
    VBoxEventType_OnRecordingScreenStateChanged = VBoxEventType::OnRecordingScreenStateChanged,
    VBoxEventType_End = VBoxEventType::End,
    VBoxEventType_32BitHack = 0x7fffffff
} VBoxEventType_T;
# ifdef AssertCompileSize
AssertCompileSize(VBoxEventType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 GuestMouseEventMode_T;

# define GuestMouseEventMode_Relative GuestMouseEventMode::Relative
# define GuestMouseEventMode_Absolute GuestMouseEventMode::Absolute
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum GuestMouseEventMode_T {
    GuestMouseEventMode_Relative = GuestMouseEventMode::Relative,
    GuestMouseEventMode_Absolute = GuestMouseEventMode::Absolute,
    GuestMouseEventMode_32BitHack = 0x7fffffff
} GuestMouseEventMode_T;
# ifdef AssertCompileSize
AssertCompileSize(GuestMouseEventMode_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 GuestMonitorChangedEventType_T;

# define GuestMonitorChangedEventType_Enabled GuestMonitorChangedEventType::Enabled
# define GuestMonitorChangedEventType_Disabled GuestMonitorChangedEventType::Disabled
# define GuestMonitorChangedEventType_NewOrigin GuestMonitorChangedEventType::NewOrigin
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum GuestMonitorChangedEventType_T {
    GuestMonitorChangedEventType_Enabled = GuestMonitorChangedEventType::Enabled,
    GuestMonitorChangedEventType_Disabled = GuestMonitorChangedEventType::Disabled,
    GuestMonitorChangedEventType_NewOrigin = GuestMonitorChangedEventType::NewOrigin,
    GuestMonitorChangedEventType_32BitHack = 0x7fffffff
} GuestMonitorChangedEventType_T;
# ifdef AssertCompileSize
AssertCompileSize(GuestMonitorChangedEventType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    FormValueType */
#define FORMVALUETYPE_IID_STR "5f10e2f2-911f-4f55-8afb-39c790f7dc42"

#define FORMVALUETYPE_IID \
  {0x5f10e2f2, 0x911f, 0x4f55, \
    { 0x8a, 0xfb, 0x39, 0xc7, 0x90, 0xf7, 0xdc, 0x42 }}

class NS_NO_VTABLE FormValueType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FORMVALUETYPE_IID)

  enum { Boolean = 0U };

  enum { String = 1U };

  enum { Choice = 2U };

  enum { RangedInteger = 3U };

  enum { RangedInteger64 = 4U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FORMVALUETYPE(_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_FORMVALUETYPE(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 FormValueType_T;

# define FormValueType_Boolean FormValueType::Boolean
# define FormValueType_String FormValueType::String
# define FormValueType_Choice FormValueType::Choice
# define FormValueType_RangedInteger FormValueType::RangedInteger
# define FormValueType_RangedInteger64 FormValueType::RangedInteger64
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum FormValueType_T {
    FormValueType_Boolean = FormValueType::Boolean,
    FormValueType_String = FormValueType::String,
    FormValueType_Choice = FormValueType::Choice,
    FormValueType_RangedInteger = FormValueType::RangedInteger,
    FormValueType_RangedInteger64 = FormValueType::RangedInteger64,
    FormValueType_32BitHack = 0x7fffffff
} FormValueType_T;
# ifdef AssertCompileSize
AssertCompileSize(FormValueType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    CloudMachineState */
#define CLOUDMACHINESTATE_IID_STR "67b6d054-0154-4f5d-b71b-6ac406e1ff78"

#define CLOUDMACHINESTATE_IID \
  {0x67b6d054, 0x0154, 0x4f5d, \
    { 0xb7, 0x1b, 0x6a, 0xc4, 0x06, 0xe1, 0xff, 0x78 }}

class NS_NO_VTABLE CloudMachineState {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(CLOUDMACHINESTATE_IID)

  enum { Invalid = 0U };

  enum { Provisioning = 1U };

  enum { Running = 2U };

  enum { Starting = 3U };

  enum { Stopping = 4U };

  enum { Stopped = 5U };

  enum { CreatingImage = 6U };

  enum { Terminating = 7U };

  enum { Terminated = 8U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_CLOUDMACHINESTATE(_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_CLOUDMACHINESTATE(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 CloudMachineState_T;

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

/* starting interface:    CloudImageState */
#define CLOUDIMAGESTATE_IID_STR "6e5d6762-eea2-4f2c-b104-2952d0aa8a0a"

#define CLOUDIMAGESTATE_IID \
  {0x6e5d6762, 0xeea2, 0x4f2c, \
    { 0xb1, 0x04, 0x29, 0x52, 0xd0, 0xaa, 0x8a, 0x0a }}

class NS_NO_VTABLE CloudImageState {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(CLOUDIMAGESTATE_IID)

  enum { Invalid = 0U };

  enum { Provisioning = 1U };

  enum { Importing = 2U };

  enum { Available = 3U };

  enum { Exporting = 4U };

  enum { Disabled = 5U };

  enum { Deleted = 6U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_CLOUDIMAGESTATE(_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_CLOUDIMAGESTATE(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 CloudImageState_T;

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

/* starting interface:    MetricType */
#define METRICTYPE_IID_STR "adf26edc-7e32-11ee-b962-0242ac120002"

#define METRICTYPE_IID \
  {0xadf26edc, 0x7e32, 0x11ee, \
    { 0xb9, 0x62, 0x02, 0x42, 0xac, 0x12, 0x00, 0x02 }}

class NS_NO_VTABLE MetricType {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(METRICTYPE_IID)

  enum { Invalid = 0U };

  enum { CpuUtilization = 1U };

  enum { MemoryUtilization = 2U };

  enum { DiskBytesRead = 3U };

  enum { DiskBytesWritten = 4U };

  enum { NetworksBytesIn = 5U };

  enum { NetworksBytesOut = 6U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_METRICTYPE(_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_METRICTYPE(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 MetricType_T;

# define MetricType_Invalid MetricType::Invalid
# define MetricType_CpuUtilization MetricType::CpuUtilization
# define MetricType_MemoryUtilization MetricType::MemoryUtilization
# define MetricType_DiskBytesRead MetricType::DiskBytesRead
# define MetricType_DiskBytesWritten MetricType::DiskBytesWritten
# define MetricType_NetworksBytesIn MetricType::NetworksBytesIn
# define MetricType_NetworksBytesOut MetricType::NetworksBytesOut
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum MetricType_T {
    MetricType_Invalid = MetricType::Invalid,
    MetricType_CpuUtilization = MetricType::CpuUtilization,
    MetricType_MemoryUtilization = MetricType::MemoryUtilization,
    MetricType_DiskBytesRead = MetricType::DiskBytesRead,
    MetricType_DiskBytesWritten = MetricType::DiskBytesWritten,
    MetricType_NetworksBytesIn = MetricType::NetworksBytesIn,
    MetricType_NetworksBytesOut = MetricType::NetworksBytesOut,
    MetricType_32BitHack = 0x7fffffff
} MetricType_T;
# ifdef AssertCompileSize
AssertCompileSize(MetricType_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* starting interface:    SymlinkPolicy */
#define SYMLINKPOLICY_IID_STR "a818472e-215d-4279-8af8-eac4c0517bcc"

#define SYMLINKPOLICY_IID \
  {0xa818472e, 0x215d, 0x4279, \
    { 0x8a, 0xf8, 0xea, 0xc4, 0xc0, 0x51, 0x7b, 0xcc }}

class NS_NO_VTABLE SymlinkPolicy {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(SYMLINKPOLICY_IID)

  enum { None = 0U };

  enum { Forbidden = 1U };

  enum { AllowedInShareSubtree = 2U };

  enum { AllowedToRelativeTargets = 3U };

  enum { AllowedToAnyTarget = 4U };

};

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

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_SYMLINKPOLICY(_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_SYMLINKPOLICY(_to) \

#ifndef VBOX_WITH_XPCOM_CPP_ENUM_HACK
typedef PRUint32 SymlinkPolicy_T;

# define SymlinkPolicy_None SymlinkPolicy::None
# define SymlinkPolicy_Forbidden SymlinkPolicy::Forbidden
# define SymlinkPolicy_AllowedInShareSubtree SymlinkPolicy::AllowedInShareSubtree
# define SymlinkPolicy_AllowedToRelativeTargets SymlinkPolicy::AllowedToRelativeTargets
# define SymlinkPolicy_AllowedToAnyTarget SymlinkPolicy::AllowedToAnyTarget
#else /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */
typedef enum SymlinkPolicy_T {
    SymlinkPolicy_None = SymlinkPolicy::None,
    SymlinkPolicy_Forbidden = SymlinkPolicy::Forbidden,
    SymlinkPolicy_AllowedInShareSubtree = SymlinkPolicy::AllowedInShareSubtree,
    SymlinkPolicy_AllowedToRelativeTargets = SymlinkPolicy::AllowedToRelativeTargets,
    SymlinkPolicy_AllowedToAnyTarget = SymlinkPolicy::AllowedToAnyTarget,
    SymlinkPolicy_32BitHack = 0x7fffffff
} SymlinkPolicy_T;
# ifdef AssertCompileSize
AssertCompileSize(SymlinkPolicy_T, sizeof(PRUint32));
# endif
#endif /* VBOX_WITH_XPCOM_CPP_ENUM_HACK */

/* 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_OVERRIDE; \
  NS_IMETHOD GetResultDetail(PRInt32 *aResultDetail) NS_OVERRIDE; \
  NS_IMETHOD GetInterfaceID(PRUnichar **aInterfaceID) NS_OVERRIDE; \
  NS_IMETHOD GetComponent(PRUnichar **aComponent) NS_OVERRIDE; \
  NS_IMETHOD GetText(PRUnichar **aText) NS_OVERRIDE; \
  NS_IMETHOD GetNext(IVirtualBoxErrorInfo * *aNext) NS_OVERRIDE; 

/* 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); } 

#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 "90b89e78-1a61-4e66-af61-b9d2532e5632"

#define INATNETWORK_IID \
  {0x90b89e78, 0x1a61, 0x4e66, \
    { 0xaf, 0x61, 0xb9, 0xd2, 0x53, 0x2e, 0x56, 0x32 }}

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 boolean localhostReachable; */
  NS_IMETHOD GetLocalhostReachable(PRBool *aLocalhostReachable) = 0;
  NS_IMETHOD SetLocalhostReachable(PRBool aLocalhostReachable) = 0;

  /* attribute boolean forwardBroadcast; */
  NS_IMETHOD GetForwardBroadcast(PRBool *aForwardBroadcast) = 0;
  NS_IMETHOD SetForwardBroadcast(PRBool aForwardBroadcast) = 0;

  /* attribute unsigned long natMTU; */
  NS_IMETHOD GetNatMTU(PRUint32 *aNatMTU) = 0;
  NS_IMETHOD SetNatMTU(PRUint32 aNatMTU) = 0;

  /* attribute unsigned long natMRU; */
  NS_IMETHOD GetNatMRU(PRUint32 *aNatMRU) = 0;
  NS_IMETHOD SetNatMRU(PRUint32 aNatMRU) = 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 NATProtocol_T proto, in wstring hostIP, in unsigned short hostPort, in wstring guestIP, in unsigned short guestPort); */
  NS_IMETHOD AddPortForwardRule(PRBool isIpv6, const PRUnichar *ruleName, NATProtocol_T 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 (); */
  NS_IMETHOD Start(void) = 0;

  /* void stop (); */
  NS_IMETHOD Stop(void) = 0;

  /* void InternalAndReservedMethod1INATNetwork (); */
  NS_IMETHOD InternalAndReservedMethod1INATNetwork(void) = 0;

  /* void InternalAndReservedMethod2INATNetwork (); */
  NS_IMETHOD InternalAndReservedMethod2INATNetwork(void) = 0;

  /* void InternalAndReservedMethod3INATNetwork (); */
  NS_IMETHOD InternalAndReservedMethod3INATNetwork(void) = 0;

  /* void InternalAndReservedMethod4INATNetwork (); */
  NS_IMETHOD InternalAndReservedMethod4INATNetwork(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_INATNETWORK \
  NS_IMETHOD GetNetworkName(PRUnichar **aNetworkName) NS_OVERRIDE; \
  NS_IMETHOD SetNetworkName(const PRUnichar *aNetworkName) NS_OVERRIDE; \
  NS_IMETHOD GetEnabled(PRBool *aEnabled) NS_OVERRIDE; \
  NS_IMETHOD SetEnabled(PRBool aEnabled) NS_OVERRIDE; \
  NS_IMETHOD GetNetwork(PRUnichar **aNetwork) NS_OVERRIDE; \
  NS_IMETHOD SetNetwork(const PRUnichar *aNetwork) NS_OVERRIDE; \
  NS_IMETHOD GetGateway(PRUnichar **aGateway) NS_OVERRIDE; \
  NS_IMETHOD GetIPv6Enabled(PRBool *aIPv6Enabled) NS_OVERRIDE; \
  NS_IMETHOD SetIPv6Enabled(PRBool aIPv6Enabled) NS_OVERRIDE; \
  NS_IMETHOD GetIPv6Prefix(PRUnichar **aIPv6Prefix) NS_OVERRIDE; \
  NS_IMETHOD SetIPv6Prefix(const PRUnichar *aIPv6Prefix) NS_OVERRIDE; \
  NS_IMETHOD GetAdvertiseDefaultIPv6RouteEnabled(PRBool *aAdvertiseDefaultIPv6RouteEnabled) NS_OVERRIDE; \
  NS_IMETHOD SetAdvertiseDefaultIPv6RouteEnabled(PRBool aAdvertiseDefaultIPv6RouteEnabled) NS_OVERRIDE; \
  NS_IMETHOD GetNeedDhcpServer(PRBool *aNeedDhcpServer) NS_OVERRIDE; \
  NS_IMETHOD SetNeedDhcpServer(PRBool aNeedDhcpServer) NS_OVERRIDE; \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) NS_OVERRIDE; \
  NS_IMETHOD GetPortForwardRules4(PRUint32 *portForwardRules4Size, PRUnichar ***portForwardRules4) NS_OVERRIDE; \
  NS_IMETHOD GetLocalMappings(PRUint32 *localMappingsSize, PRUnichar ***localMappings) NS_OVERRIDE; \
  NS_IMETHOD GetLocalhostReachable(PRBool *aLocalhostReachable) NS_OVERRIDE; \
  NS_IMETHOD SetLocalhostReachable(PRBool aLocalhostReachable) NS_OVERRIDE; \
  NS_IMETHOD GetForwardBroadcast(PRBool *aForwardBroadcast) NS_OVERRIDE; \
  NS_IMETHOD SetForwardBroadcast(PRBool aForwardBroadcast) NS_OVERRIDE; \
  NS_IMETHOD GetNatMTU(PRUint32 *aNatMTU) NS_OVERRIDE; \
  NS_IMETHOD SetNatMTU(PRUint32 aNatMTU) NS_OVERRIDE; \
  NS_IMETHOD GetNatMRU(PRUint32 *aNatMRU) NS_OVERRIDE; \
  NS_IMETHOD SetNatMRU(PRUint32 aNatMRU) NS_OVERRIDE; \
  NS_IMETHOD GetLoopbackIp6(PRInt32 *aLoopbackIp6) NS_OVERRIDE; \
  NS_IMETHOD SetLoopbackIp6(PRInt32 aLoopbackIp6) NS_OVERRIDE; \
  NS_IMETHOD GetPortForwardRules6(PRUint32 *portForwardRules6Size, PRUnichar ***portForwardRules6) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1INATNetwork(PRUint32 *aInternalAndReservedAttribute1INATNetwork) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2INATNetwork(PRUint32 *aInternalAndReservedAttribute2INATNetwork) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3INATNetwork(PRUint32 *aInternalAndReservedAttribute3INATNetwork) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4INATNetwork(PRUint32 *aInternalAndReservedAttribute4INATNetwork) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5INATNetwork(PRUint32 *aInternalAndReservedAttribute5INATNetwork) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6INATNetwork(PRUint32 *aInternalAndReservedAttribute6INATNetwork) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7INATNetwork(PRUint32 *aInternalAndReservedAttribute7INATNetwork) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8INATNetwork(PRUint32 *aInternalAndReservedAttribute8INATNetwork) NS_OVERRIDE; \
  NS_IMETHOD AddLocalMapping(const PRUnichar *hostid, PRInt32 offset) NS_OVERRIDE; \
  NS_IMETHOD AddPortForwardRule(PRBool isIpv6, const PRUnichar *ruleName, NATProtocol_T proto, const PRUnichar *hostIP, PRUint16 hostPort, const PRUnichar *guestIP, PRUint16 guestPort) NS_OVERRIDE; \
  NS_IMETHOD RemovePortForwardRule(PRBool isIpv6, const PRUnichar *ruleName) NS_OVERRIDE; \
  NS_IMETHOD Start(void) NS_OVERRIDE; \
  NS_IMETHOD Stop(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1INATNetwork(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2INATNetwork(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3INATNetwork(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4INATNetwork(void) NS_OVERRIDE; 

/* 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 GetLocalhostReachable(PRBool *aLocalhostReachable) { return _to GetLocalhostReachable(aLocalhostReachable); } \
  NS_IMETHOD SetLocalhostReachable(PRBool aLocalhostReachable) { return _to SetLocalhostReachable(aLocalhostReachable); } \
  NS_IMETHOD GetForwardBroadcast(PRBool *aForwardBroadcast) { return _to GetForwardBroadcast(aForwardBroadcast); } \
  NS_IMETHOD SetForwardBroadcast(PRBool aForwardBroadcast) { return _to SetForwardBroadcast(aForwardBroadcast); } \
  NS_IMETHOD GetNatMTU(PRUint32 *aNatMTU) { return _to GetNatMTU(aNatMTU); } \
  NS_IMETHOD SetNatMTU(PRUint32 aNatMTU) { return _to SetNatMTU(aNatMTU); } \
  NS_IMETHOD GetNatMRU(PRUint32 *aNatMRU) { return _to GetNatMRU(aNatMRU); } \
  NS_IMETHOD SetNatMRU(PRUint32 aNatMRU) { return _to SetNatMRU(aNatMRU); } \
  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, NATProtocol_T 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(void) { return _to Start(); } \
  NS_IMETHOD Stop(void) { return _to Stop(); } \
  NS_IMETHOD InternalAndReservedMethod1INATNetwork(void) { return _to InternalAndReservedMethod1INATNetwork(); } \
  NS_IMETHOD InternalAndReservedMethod2INATNetwork(void) { return _to InternalAndReservedMethod2INATNetwork(); } \
  NS_IMETHOD InternalAndReservedMethod3INATNetwork(void) { return _to InternalAndReservedMethod3INATNetwork(); } \
  NS_IMETHOD InternalAndReservedMethod4INATNetwork(void) { return _to InternalAndReservedMethod4INATNetwork(); } 

/* 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 GetLocalhostReachable(PRBool *aLocalhostReachable) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLocalhostReachable(aLocalhostReachable); } \
  NS_IMETHOD SetLocalhostReachable(PRBool aLocalhostReachable) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLocalhostReachable(aLocalhostReachable); } \
  NS_IMETHOD GetForwardBroadcast(PRBool *aForwardBroadcast) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetForwardBroadcast(aForwardBroadcast); } \
  NS_IMETHOD SetForwardBroadcast(PRBool aForwardBroadcast) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetForwardBroadcast(aForwardBroadcast); } \
  NS_IMETHOD GetNatMTU(PRUint32 *aNatMTU) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNatMTU(aNatMTU); } \
  NS_IMETHOD SetNatMTU(PRUint32 aNatMTU) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetNatMTU(aNatMTU); } \
  NS_IMETHOD GetNatMRU(PRUint32 *aNatMRU) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNatMRU(aNatMRU); } \
  NS_IMETHOD SetNatMRU(PRUint32 aNatMRU) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetNatMRU(aNatMRU); } \
  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, NATProtocol_T 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(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Start(); } \
  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(); } \
  NS_IMETHOD InternalAndReservedMethod3INATNetwork(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3INATNetwork(); } \
  NS_IMETHOD InternalAndReservedMethod4INATNetwork(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4INATNetwork(); } 

#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_LocalhostReachable_TO(smth) NS_IMETHOD GetLocalhostReachable (PRBool * aLocalhostReachable) { return smth GetLocalhostReachable (aLocalhostReachable); }
#define COM_FORWARD_INATNetwork_GETTER_LocalhostReachable_TO_OBJ(obj) COM_FORWARD_INATNetwork_GETTER_LocalhostReachable_TO ((obj)->)
#define COM_FORWARD_INATNetwork_GETTER_LocalhostReachable_TO_BASE(base) COM_FORWARD_INATNetwork_GETTER_LocalhostReachable_TO (base::)
#define COM_FORWARD_INATNetwork_SETTER_LocalhostReachable_TO(smth) NS_IMETHOD SetLocalhostReachable (PRBool aLocalhostReachable) { return smth SetLocalhostReachable (aLocalhostReachable); }
#define COM_FORWARD_INATNetwork_SETTER_LocalhostReachable_TO_OBJ(obj) COM_FORWARD_INATNetwork_SETTER_LocalhostReachable_TO ((obj)->)
#define COM_FORWARD_INATNetwork_SETTER_LocalhostReachable_TO_BASE(base) COM_FORWARD_INATNetwork_SETTER_LocalhostReachable_TO (base::)
#define COM_FORWARD_INATNetwork_GETTER_ForwardBroadcast_TO(smth) NS_IMETHOD GetForwardBroadcast (PRBool * aForwardBroadcast) { return smth GetForwardBroadcast (aForwardBroadcast); }
#define COM_FORWARD_INATNetwork_GETTER_ForwardBroadcast_TO_OBJ(obj) COM_FORWARD_INATNetwork_GETTER_ForwardBroadcast_TO ((obj)->)
#define COM_FORWARD_INATNetwork_GETTER_ForwardBroadcast_TO_BASE(base) COM_FORWARD_INATNetwork_GETTER_ForwardBroadcast_TO (base::)
#define COM_FORWARD_INATNetwork_SETTER_ForwardBroadcast_TO(smth) NS_IMETHOD SetForwardBroadcast (PRBool aForwardBroadcast) { return smth SetForwardBroadcast (aForwardBroadcast); }
#define COM_FORWARD_INATNetwork_SETTER_ForwardBroadcast_TO_OBJ(obj) COM_FORWARD_INATNetwork_SETTER_ForwardBroadcast_TO ((obj)->)
#define COM_FORWARD_INATNetwork_SETTER_ForwardBroadcast_TO_BASE(base) COM_FORWARD_INATNetwork_SETTER_ForwardBroadcast_TO (base::)
#define COM_FORWARD_INATNetwork_GETTER_NatMTU_TO(smth) NS_IMETHOD GetNatMTU (PRUint32 * aNatMTU) { return smth GetNatMTU (aNatMTU); }
#define COM_FORWARD_INATNetwork_GETTER_NatMTU_TO_OBJ(obj) COM_FORWARD_INATNetwork_GETTER_NatMTU_TO ((obj)->)
#define COM_FORWARD_INATNetwork_GETTER_NatMTU_TO_BASE(base) COM_FORWARD_INATNetwork_GETTER_NatMTU_TO (base::)
#define COM_FORWARD_INATNetwork_SETTER_NatMTU_TO(smth) NS_IMETHOD SetNatMTU (PRUint32 aNatMTU) { return smth SetNatMTU (aNatMTU); }
#define COM_FORWARD_INATNetwork_SETTER_NatMTU_TO_OBJ(obj) COM_FORWARD_INATNetwork_SETTER_NatMTU_TO ((obj)->)
#define COM_FORWARD_INATNetwork_SETTER_NatMTU_TO_BASE(base) COM_FORWARD_INATNetwork_SETTER_NatMTU_TO (base::)
#define COM_FORWARD_INATNetwork_GETTER_NatMRU_TO(smth) NS_IMETHOD GetNatMRU (PRUint32 * aNatMRU) { return smth GetNatMRU (aNatMRU); }
#define COM_FORWARD_INATNetwork_GETTER_NatMRU_TO_OBJ(obj) COM_FORWARD_INATNetwork_GETTER_NatMRU_TO ((obj)->)
#define COM_FORWARD_INATNetwork_GETTER_NatMRU_TO_BASE(base) COM_FORWARD_INATNetwork_GETTER_NatMRU_TO (base::)
#define COM_FORWARD_INATNetwork_SETTER_NatMRU_TO(smth) NS_IMETHOD SetNatMRU (PRUint32 aNatMRU) { return smth SetNatMRU (aNatMRU); }
#define COM_FORWARD_INATNetwork_SETTER_NatMRU_TO_OBJ(obj) COM_FORWARD_INATNetwork_SETTER_NatMRU_TO ((obj)->)
#define COM_FORWARD_INATNetwork_SETTER_NatMRU_TO_BASE(base) COM_FORWARD_INATNetwork_SETTER_NatMRU_TO (base::)
#define COM_FORWARD_INATNetwork_GETTER_LoopbackIp6_TO(smth) NS_IMETHOD GetLoopbackIp6 (PRInt32 * aLoopbackIp6) { return smth GetLoopbackIp6 (aLoopbackIp6); }
#define COM_FORWARD_INATNetwork_GETTER_LoopbackIp6_TO_OBJ(obj) COM_FORWARD_INATNetwork_GETTER_LoopbackIp6_TO ((obj)->)
#define COM_FORWARD_INATNetwork_GETTER_LoopbackIp6_TO_BASE(base) COM_FORWARD_INATNetwork_GETTER_LoopbackIp6_TO (base::)
#define COM_FORWARD_INATNetwork_SETTER_LoopbackIp6_TO(smth) NS_IMETHOD SetLoopbackIp6 (PRInt32 aLoopbackIp6) { return smth SetLoopbackIp6 (aLoopbackIp6); }
#define COM_FORWARD_INATNetwork_SETTER_LoopbackIp6_TO_OBJ(obj) COM_FORWARD_INATNetwork_SETTER_LoopbackIp6_TO ((obj)->)
#define COM_FORWARD_INATNetwork_SETTER_LoopbackIp6_TO_BASE(base) COM_FORWARD_INATNetwork_SETTER_LoopbackIp6_TO (base::)
#define COM_FORWARD_INATNetwork_GETTER_PortForwardRules6_TO(smth) NS_IMETHOD GetPortForwardRules6 (PRUint32 * aPortForwardRules6Size, PRUnichar * * * aPortForwardRules6) { return smth GetPortForwardRules6 (aPortForwardRules6Size, aPortForwardRules6); }
#define COM_FORWARD_INATNetwork_GETTER_PortForwardRules6_TO_OBJ(obj) COM_FORWARD_INATNetwork_GETTER_PortForwardRules6_TO ((obj)->)
#define COM_FORWARD_INATNetwork_GETTER_PortForwardRules6_TO_BASE(base) COM_FORWARD_INATNetwork_GETTER_PortForwardRules6_TO (base::)
#define COM_FORWARD_INATNetwork_AddLocalMapping_TO(smth) NS_IMETHOD AddLocalMapping (PRUnichar * aHostid, PRInt32 aOffset) { return smth AddLocalMapping (aHostid, aOffset); }
#define COM_FORWARD_INATNetwork_AddLocalMapping_TO_OBJ(obj) COM_FORWARD_INATNetwork_AddLocalMapping_TO ((obj)->)
#define COM_FORWARD_INATNetwork_AddLocalMapping_TO_BASE(base) COM_FORWARD_INATNetwork_AddLocalMapping_TO (base::)
#define COM_FORWARD_INATNetwork_AddPortForwardRule_TO(smth) NS_IMETHOD AddPortForwardRule (PRBool aIsIpv6, PRUnichar * aRuleName, PRUint32 aProto, PRUnichar * aHostIP, PRUint16 aHostPort, PRUnichar * aGuestIP, PRUint16 aGuestPort) { return smth AddPortForwardRule (aIsIpv6, aRuleName, aProto, aHostIP, aHostPort, aGuestIP, aGuestPort); }
#define COM_FORWARD_INATNetwork_AddPortForwardRule_TO_OBJ(obj) COM_FORWARD_INATNetwork_AddPortForwardRule_TO ((obj)->)
#define COM_FORWARD_INATNetwork_AddPortForwardRule_TO_BASE(base) COM_FORWARD_INATNetwork_AddPortForwardRule_TO (base::)
#define COM_FORWARD_INATNetwork_RemovePortForwardRule_TO(smth) NS_IMETHOD RemovePortForwardRule (PRBool aIsIpv6, PRUnichar * aRuleName) { return smth RemovePortForwardRule (aIsIpv6, aRuleName); }
#define COM_FORWARD_INATNetwork_RemovePortForwardRule_TO_OBJ(obj) COM_FORWARD_INATNetwork_RemovePortForwardRule_TO ((obj)->)
#define COM_FORWARD_INATNetwork_RemovePortForwardRule_TO_BASE(base) COM_FORWARD_INATNetwork_RemovePortForwardRule_TO (base::)
#define COM_FORWARD_INATNetwork_Start_TO(smth) NS_IMETHOD Start() { return smth Start(); }
#define COM_FORWARD_INATNetwork_Start_TO_OBJ(obj) COM_FORWARD_INATNetwork_Start_TO ((obj)->)
#define COM_FORWARD_INATNetwork_Start_TO_BASE(base) COM_FORWARD_INATNetwork_Start_TO (base::)
#define COM_FORWARD_INATNetwork_Stop_TO(smth) NS_IMETHOD Stop() { return smth Stop(); }
#define COM_FORWARD_INATNetwork_Stop_TO_OBJ(obj) COM_FORWARD_INATNetwork_Stop_TO ((obj)->)
#define COM_FORWARD_INATNetwork_Stop_TO_BASE(base) COM_FORWARD_INATNetwork_Stop_TO (base::)
#define COM_FORWARD_INATNetwork_TO(smth) NS_FORWARD_INATNETWORK (smth)
#define COM_FORWARD_INATNetwork_TO_OBJ(obj) COM_FORWARD_INATNetwork_TO ((obj)->)
#define COM_FORWARD_INATNetwork_TO_BASE(base) COM_FORWARD_INATNetwork_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_INATNetwork;

/* starting interface:    ICloudNetwork */
#define ICLOUDNETWORK_IID_STR "d8e3496e-735f-4fde-8a54-427d49409b5f"

#define ICLOUDNETWORK_IID \
  {0xd8e3496e, 0x735f, 0x4fde, \
    { 0x8a, 0x54, 0x42, 0x7d, 0x49, 0x40, 0x9b, 0x5f }}

class NS_NO_VTABLE ICloudNetwork : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ICLOUDNETWORK_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 provider; */
  NS_IMETHOD GetProvider(PRUnichar **aProvider) = 0;
  NS_IMETHOD SetProvider(const PRUnichar *aProvider) = 0;

  /* attribute wstring profile; */
  NS_IMETHOD GetProfile(PRUnichar **aProfile) = 0;
  NS_IMETHOD SetProfile(const PRUnichar *aProfile) = 0;

  /* attribute wstring networkId; */
  NS_IMETHOD GetNetworkId(PRUnichar **aNetworkId) = 0;
  NS_IMETHOD SetNetworkId(const PRUnichar *aNetworkId) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1ICloudNetwork; */
  NS_IMETHOD GetInternalAndReservedAttribute1ICloudNetwork(PRUint32 *aInternalAndReservedAttribute1ICloudNetwork) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2ICloudNetwork; */
  NS_IMETHOD GetInternalAndReservedAttribute2ICloudNetwork(PRUint32 *aInternalAndReservedAttribute2ICloudNetwork) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3ICloudNetwork; */
  NS_IMETHOD GetInternalAndReservedAttribute3ICloudNetwork(PRUint32 *aInternalAndReservedAttribute3ICloudNetwork) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4ICloudNetwork; */
  NS_IMETHOD GetInternalAndReservedAttribute4ICloudNetwork(PRUint32 *aInternalAndReservedAttribute4ICloudNetwork) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5ICloudNetwork; */
  NS_IMETHOD GetInternalAndReservedAttribute5ICloudNetwork(PRUint32 *aInternalAndReservedAttribute5ICloudNetwork) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6ICloudNetwork; */
  NS_IMETHOD GetInternalAndReservedAttribute6ICloudNetwork(PRUint32 *aInternalAndReservedAttribute6ICloudNetwork) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7ICloudNetwork; */
  NS_IMETHOD GetInternalAndReservedAttribute7ICloudNetwork(PRUint32 *aInternalAndReservedAttribute7ICloudNetwork) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8ICloudNetwork; */
  NS_IMETHOD GetInternalAndReservedAttribute8ICloudNetwork(PRUint32 *aInternalAndReservedAttribute8ICloudNetwork) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute9ICloudNetwork; */
  NS_IMETHOD GetInternalAndReservedAttribute9ICloudNetwork(PRUint32 *aInternalAndReservedAttribute9ICloudNetwork) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute10ICloudNetwork; */
  NS_IMETHOD GetInternalAndReservedAttribute10ICloudNetwork(PRUint32 *aInternalAndReservedAttribute10ICloudNetwork) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute11ICloudNetwork; */
  NS_IMETHOD GetInternalAndReservedAttribute11ICloudNetwork(PRUint32 *aInternalAndReservedAttribute11ICloudNetwork) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute12ICloudNetwork; */
  NS_IMETHOD GetInternalAndReservedAttribute12ICloudNetwork(PRUint32 *aInternalAndReservedAttribute12ICloudNetwork) = 0;

  /* void InternalAndReservedMethod1ICloudNetwork (); */
  NS_IMETHOD InternalAndReservedMethod1ICloudNetwork(void) = 0;

  /* void InternalAndReservedMethod2ICloudNetwork (); */
  NS_IMETHOD InternalAndReservedMethod2ICloudNetwork(void) = 0;

  /* void InternalAndReservedMethod3ICloudNetwork (); */
  NS_IMETHOD InternalAndReservedMethod3ICloudNetwork(void) = 0;

  /* void InternalAndReservedMethod4ICloudNetwork (); */
  NS_IMETHOD InternalAndReservedMethod4ICloudNetwork(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ICLOUDNETWORK \
  NS_IMETHOD GetNetworkName(PRUnichar **aNetworkName) NS_OVERRIDE; \
  NS_IMETHOD SetNetworkName(const PRUnichar *aNetworkName) NS_OVERRIDE; \
  NS_IMETHOD GetEnabled(PRBool *aEnabled) NS_OVERRIDE; \
  NS_IMETHOD SetEnabled(PRBool aEnabled) NS_OVERRIDE; \
  NS_IMETHOD GetProvider(PRUnichar **aProvider) NS_OVERRIDE; \
  NS_IMETHOD SetProvider(const PRUnichar *aProvider) NS_OVERRIDE; \
  NS_IMETHOD GetProfile(PRUnichar **aProfile) NS_OVERRIDE; \
  NS_IMETHOD SetProfile(const PRUnichar *aProfile) NS_OVERRIDE; \
  NS_IMETHOD GetNetworkId(PRUnichar **aNetworkId) NS_OVERRIDE; \
  NS_IMETHOD SetNetworkId(const PRUnichar *aNetworkId) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1ICloudNetwork(PRUint32 *aInternalAndReservedAttribute1ICloudNetwork) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2ICloudNetwork(PRUint32 *aInternalAndReservedAttribute2ICloudNetwork) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3ICloudNetwork(PRUint32 *aInternalAndReservedAttribute3ICloudNetwork) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4ICloudNetwork(PRUint32 *aInternalAndReservedAttribute4ICloudNetwork) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5ICloudNetwork(PRUint32 *aInternalAndReservedAttribute5ICloudNetwork) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6ICloudNetwork(PRUint32 *aInternalAndReservedAttribute6ICloudNetwork) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7ICloudNetwork(PRUint32 *aInternalAndReservedAttribute7ICloudNetwork) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8ICloudNetwork(PRUint32 *aInternalAndReservedAttribute8ICloudNetwork) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute9ICloudNetwork(PRUint32 *aInternalAndReservedAttribute9ICloudNetwork) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute10ICloudNetwork(PRUint32 *aInternalAndReservedAttribute10ICloudNetwork) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute11ICloudNetwork(PRUint32 *aInternalAndReservedAttribute11ICloudNetwork) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute12ICloudNetwork(PRUint32 *aInternalAndReservedAttribute12ICloudNetwork) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1ICloudNetwork(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2ICloudNetwork(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3ICloudNetwork(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4ICloudNetwork(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ICLOUDNETWORK(_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 GetProvider(PRUnichar **aProvider) { return _to GetProvider(aProvider); } \
  NS_IMETHOD SetProvider(const PRUnichar *aProvider) { return _to SetProvider(aProvider); } \
  NS_IMETHOD GetProfile(PRUnichar **aProfile) { return _to GetProfile(aProfile); } \
  NS_IMETHOD SetProfile(const PRUnichar *aProfile) { return _to SetProfile(aProfile); } \
  NS_IMETHOD GetNetworkId(PRUnichar **aNetworkId) { return _to GetNetworkId(aNetworkId); } \
  NS_IMETHOD SetNetworkId(const PRUnichar *aNetworkId) { return _to SetNetworkId(aNetworkId); } \
  NS_IMETHOD GetInternalAndReservedAttribute1ICloudNetwork(PRUint32 *aInternalAndReservedAttribute1ICloudNetwork) { return _to GetInternalAndReservedAttribute1ICloudNetwork(aInternalAndReservedAttribute1ICloudNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute2ICloudNetwork(PRUint32 *aInternalAndReservedAttribute2ICloudNetwork) { return _to GetInternalAndReservedAttribute2ICloudNetwork(aInternalAndReservedAttribute2ICloudNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute3ICloudNetwork(PRUint32 *aInternalAndReservedAttribute3ICloudNetwork) { return _to GetInternalAndReservedAttribute3ICloudNetwork(aInternalAndReservedAttribute3ICloudNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute4ICloudNetwork(PRUint32 *aInternalAndReservedAttribute4ICloudNetwork) { return _to GetInternalAndReservedAttribute4ICloudNetwork(aInternalAndReservedAttribute4ICloudNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute5ICloudNetwork(PRUint32 *aInternalAndReservedAttribute5ICloudNetwork) { return _to GetInternalAndReservedAttribute5ICloudNetwork(aInternalAndReservedAttribute5ICloudNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute6ICloudNetwork(PRUint32 *aInternalAndReservedAttribute6ICloudNetwork) { return _to GetInternalAndReservedAttribute6ICloudNetwork(aInternalAndReservedAttribute6ICloudNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute7ICloudNetwork(PRUint32 *aInternalAndReservedAttribute7ICloudNetwork) { return _to GetInternalAndReservedAttribute7ICloudNetwork(aInternalAndReservedAttribute7ICloudNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute8ICloudNetwork(PRUint32 *aInternalAndReservedAttribute8ICloudNetwork) { return _to GetInternalAndReservedAttribute8ICloudNetwork(aInternalAndReservedAttribute8ICloudNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute9ICloudNetwork(PRUint32 *aInternalAndReservedAttribute9ICloudNetwork) { return _to GetInternalAndReservedAttribute9ICloudNetwork(aInternalAndReservedAttribute9ICloudNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute10ICloudNetwork(PRUint32 *aInternalAndReservedAttribute10ICloudNetwork) { return _to GetInternalAndReservedAttribute10ICloudNetwork(aInternalAndReservedAttribute10ICloudNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute11ICloudNetwork(PRUint32 *aInternalAndReservedAttribute11ICloudNetwork) { return _to GetInternalAndReservedAttribute11ICloudNetwork(aInternalAndReservedAttribute11ICloudNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute12ICloudNetwork(PRUint32 *aInternalAndReservedAttribute12ICloudNetwork) { return _to GetInternalAndReservedAttribute12ICloudNetwork(aInternalAndReservedAttribute12ICloudNetwork); } \
  NS_IMETHOD InternalAndReservedMethod1ICloudNetwork(void) { return _to InternalAndReservedMethod1ICloudNetwork(); } \
  NS_IMETHOD InternalAndReservedMethod2ICloudNetwork(void) { return _to InternalAndReservedMethod2ICloudNetwork(); } \
  NS_IMETHOD InternalAndReservedMethod3ICloudNetwork(void) { return _to InternalAndReservedMethod3ICloudNetwork(); } \
  NS_IMETHOD InternalAndReservedMethod4ICloudNetwork(void) { return _to InternalAndReservedMethod4ICloudNetwork(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ICLOUDNETWORK(_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 GetProvider(PRUnichar **aProvider) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProvider(aProvider); } \
  NS_IMETHOD SetProvider(const PRUnichar *aProvider) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetProvider(aProvider); } \
  NS_IMETHOD GetProfile(PRUnichar **aProfile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProfile(aProfile); } \
  NS_IMETHOD SetProfile(const PRUnichar *aProfile) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetProfile(aProfile); } \
  NS_IMETHOD GetNetworkId(PRUnichar **aNetworkId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNetworkId(aNetworkId); } \
  NS_IMETHOD SetNetworkId(const PRUnichar *aNetworkId) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetNetworkId(aNetworkId); } \
  NS_IMETHOD GetInternalAndReservedAttribute1ICloudNetwork(PRUint32 *aInternalAndReservedAttribute1ICloudNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1ICloudNetwork(aInternalAndReservedAttribute1ICloudNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute2ICloudNetwork(PRUint32 *aInternalAndReservedAttribute2ICloudNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2ICloudNetwork(aInternalAndReservedAttribute2ICloudNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute3ICloudNetwork(PRUint32 *aInternalAndReservedAttribute3ICloudNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3ICloudNetwork(aInternalAndReservedAttribute3ICloudNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute4ICloudNetwork(PRUint32 *aInternalAndReservedAttribute4ICloudNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4ICloudNetwork(aInternalAndReservedAttribute4ICloudNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute5ICloudNetwork(PRUint32 *aInternalAndReservedAttribute5ICloudNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5ICloudNetwork(aInternalAndReservedAttribute5ICloudNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute6ICloudNetwork(PRUint32 *aInternalAndReservedAttribute6ICloudNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6ICloudNetwork(aInternalAndReservedAttribute6ICloudNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute7ICloudNetwork(PRUint32 *aInternalAndReservedAttribute7ICloudNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7ICloudNetwork(aInternalAndReservedAttribute7ICloudNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute8ICloudNetwork(PRUint32 *aInternalAndReservedAttribute8ICloudNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8ICloudNetwork(aInternalAndReservedAttribute8ICloudNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute9ICloudNetwork(PRUint32 *aInternalAndReservedAttribute9ICloudNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute9ICloudNetwork(aInternalAndReservedAttribute9ICloudNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute10ICloudNetwork(PRUint32 *aInternalAndReservedAttribute10ICloudNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute10ICloudNetwork(aInternalAndReservedAttribute10ICloudNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute11ICloudNetwork(PRUint32 *aInternalAndReservedAttribute11ICloudNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute11ICloudNetwork(aInternalAndReservedAttribute11ICloudNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute12ICloudNetwork(PRUint32 *aInternalAndReservedAttribute12ICloudNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute12ICloudNetwork(aInternalAndReservedAttribute12ICloudNetwork); } \
  NS_IMETHOD InternalAndReservedMethod1ICloudNetwork(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1ICloudNetwork(); } \
  NS_IMETHOD InternalAndReservedMethod2ICloudNetwork(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2ICloudNetwork(); } \
  NS_IMETHOD InternalAndReservedMethod3ICloudNetwork(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3ICloudNetwork(); } \
  NS_IMETHOD InternalAndReservedMethod4ICloudNetwork(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4ICloudNetwork(); } 

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

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ICloudNetwork;

/* starting interface:    IHostOnlyNetwork */
#define IHOSTONLYNETWORK_IID_STR "6eb5de7d-9a67-4fde-83be-f768084d03b5"

#define IHOSTONLYNETWORK_IID \
  {0x6eb5de7d, 0x9a67, 0x4fde, \
    { 0x83, 0xbe, 0xf7, 0x68, 0x08, 0x4d, 0x03, 0xb5 }}

class NS_NO_VTABLE IHostOnlyNetwork : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IHOSTONLYNETWORK_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 networkMask; */
  NS_IMETHOD GetNetworkMask(PRUnichar **aNetworkMask) = 0;
  NS_IMETHOD SetNetworkMask(const PRUnichar *aNetworkMask) = 0;

  /* readonly attribute wstring hostIP; */
  NS_IMETHOD GetHostIP(PRUnichar **aHostIP) = 0;

  /* attribute wstring lowerIP; */
  NS_IMETHOD GetLowerIP(PRUnichar **aLowerIP) = 0;
  NS_IMETHOD SetLowerIP(const PRUnichar *aLowerIP) = 0;

  /* attribute wstring upperIP; */
  NS_IMETHOD GetUpperIP(PRUnichar **aUpperIP) = 0;
  NS_IMETHOD SetUpperIP(const PRUnichar *aUpperIP) = 0;

  /* attribute wstring id; */
  NS_IMETHOD GetId(PRUnichar **aId) = 0;
  NS_IMETHOD SetId(const PRUnichar *aId) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IHostOnlyNetwork; */
  NS_IMETHOD GetInternalAndReservedAttribute1IHostOnlyNetwork(PRUint32 *aInternalAndReservedAttribute1IHostOnlyNetwork) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IHostOnlyNetwork; */
  NS_IMETHOD GetInternalAndReservedAttribute2IHostOnlyNetwork(PRUint32 *aInternalAndReservedAttribute2IHostOnlyNetwork) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IHostOnlyNetwork; */
  NS_IMETHOD GetInternalAndReservedAttribute3IHostOnlyNetwork(PRUint32 *aInternalAndReservedAttribute3IHostOnlyNetwork) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IHostOnlyNetwork; */
  NS_IMETHOD GetInternalAndReservedAttribute4IHostOnlyNetwork(PRUint32 *aInternalAndReservedAttribute4IHostOnlyNetwork) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IHostOnlyNetwork; */
  NS_IMETHOD GetInternalAndReservedAttribute5IHostOnlyNetwork(PRUint32 *aInternalAndReservedAttribute5IHostOnlyNetwork) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IHostOnlyNetwork; */
  NS_IMETHOD GetInternalAndReservedAttribute6IHostOnlyNetwork(PRUint32 *aInternalAndReservedAttribute6IHostOnlyNetwork) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IHostOnlyNetwork; */
  NS_IMETHOD GetInternalAndReservedAttribute7IHostOnlyNetwork(PRUint32 *aInternalAndReservedAttribute7IHostOnlyNetwork) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IHostOnlyNetwork; */
  NS_IMETHOD GetInternalAndReservedAttribute8IHostOnlyNetwork(PRUint32 *aInternalAndReservedAttribute8IHostOnlyNetwork) = 0;

  /* void InternalAndReservedMethod1IHostOnlyNetwork (); */
  NS_IMETHOD InternalAndReservedMethod1IHostOnlyNetwork(void) = 0;

  /* void InternalAndReservedMethod2IHostOnlyNetwork (); */
  NS_IMETHOD InternalAndReservedMethod2IHostOnlyNetwork(void) = 0;

  /* void InternalAndReservedMethod3IHostOnlyNetwork (); */
  NS_IMETHOD InternalAndReservedMethod3IHostOnlyNetwork(void) = 0;

  /* void InternalAndReservedMethod4IHostOnlyNetwork (); */
  NS_IMETHOD InternalAndReservedMethod4IHostOnlyNetwork(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IHOSTONLYNETWORK \
  NS_IMETHOD GetNetworkName(PRUnichar **aNetworkName) NS_OVERRIDE; \
  NS_IMETHOD SetNetworkName(const PRUnichar *aNetworkName) NS_OVERRIDE; \
  NS_IMETHOD GetEnabled(PRBool *aEnabled) NS_OVERRIDE; \
  NS_IMETHOD SetEnabled(PRBool aEnabled) NS_OVERRIDE; \
  NS_IMETHOD GetNetworkMask(PRUnichar **aNetworkMask) NS_OVERRIDE; \
  NS_IMETHOD SetNetworkMask(const PRUnichar *aNetworkMask) NS_OVERRIDE; \
  NS_IMETHOD GetHostIP(PRUnichar **aHostIP) NS_OVERRIDE; \
  NS_IMETHOD GetLowerIP(PRUnichar **aLowerIP) NS_OVERRIDE; \
  NS_IMETHOD SetLowerIP(const PRUnichar *aLowerIP) NS_OVERRIDE; \
  NS_IMETHOD GetUpperIP(PRUnichar **aUpperIP) NS_OVERRIDE; \
  NS_IMETHOD SetUpperIP(const PRUnichar *aUpperIP) NS_OVERRIDE; \
  NS_IMETHOD GetId(PRUnichar **aId) NS_OVERRIDE; \
  NS_IMETHOD SetId(const PRUnichar *aId) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IHostOnlyNetwork(PRUint32 *aInternalAndReservedAttribute1IHostOnlyNetwork) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IHostOnlyNetwork(PRUint32 *aInternalAndReservedAttribute2IHostOnlyNetwork) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IHostOnlyNetwork(PRUint32 *aInternalAndReservedAttribute3IHostOnlyNetwork) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IHostOnlyNetwork(PRUint32 *aInternalAndReservedAttribute4IHostOnlyNetwork) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IHostOnlyNetwork(PRUint32 *aInternalAndReservedAttribute5IHostOnlyNetwork) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IHostOnlyNetwork(PRUint32 *aInternalAndReservedAttribute6IHostOnlyNetwork) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IHostOnlyNetwork(PRUint32 *aInternalAndReservedAttribute7IHostOnlyNetwork) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IHostOnlyNetwork(PRUint32 *aInternalAndReservedAttribute8IHostOnlyNetwork) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IHostOnlyNetwork(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IHostOnlyNetwork(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IHostOnlyNetwork(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IHostOnlyNetwork(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IHOSTONLYNETWORK(_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 GetNetworkMask(PRUnichar **aNetworkMask) { return _to GetNetworkMask(aNetworkMask); } \
  NS_IMETHOD SetNetworkMask(const PRUnichar *aNetworkMask) { return _to SetNetworkMask(aNetworkMask); } \
  NS_IMETHOD GetHostIP(PRUnichar **aHostIP) { return _to GetHostIP(aHostIP); } \
  NS_IMETHOD GetLowerIP(PRUnichar **aLowerIP) { return _to GetLowerIP(aLowerIP); } \
  NS_IMETHOD SetLowerIP(const PRUnichar *aLowerIP) { return _to SetLowerIP(aLowerIP); } \
  NS_IMETHOD GetUpperIP(PRUnichar **aUpperIP) { return _to GetUpperIP(aUpperIP); } \
  NS_IMETHOD SetUpperIP(const PRUnichar *aUpperIP) { return _to SetUpperIP(aUpperIP); } \
  NS_IMETHOD GetId(PRUnichar **aId) { return _to GetId(aId); } \
  NS_IMETHOD SetId(const PRUnichar *aId) { return _to SetId(aId); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IHostOnlyNetwork(PRUint32 *aInternalAndReservedAttribute1IHostOnlyNetwork) { return _to GetInternalAndReservedAttribute1IHostOnlyNetwork(aInternalAndReservedAttribute1IHostOnlyNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IHostOnlyNetwork(PRUint32 *aInternalAndReservedAttribute2IHostOnlyNetwork) { return _to GetInternalAndReservedAttribute2IHostOnlyNetwork(aInternalAndReservedAttribute2IHostOnlyNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IHostOnlyNetwork(PRUint32 *aInternalAndReservedAttribute3IHostOnlyNetwork) { return _to GetInternalAndReservedAttribute3IHostOnlyNetwork(aInternalAndReservedAttribute3IHostOnlyNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IHostOnlyNetwork(PRUint32 *aInternalAndReservedAttribute4IHostOnlyNetwork) { return _to GetInternalAndReservedAttribute4IHostOnlyNetwork(aInternalAndReservedAttribute4IHostOnlyNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IHostOnlyNetwork(PRUint32 *aInternalAndReservedAttribute5IHostOnlyNetwork) { return _to GetInternalAndReservedAttribute5IHostOnlyNetwork(aInternalAndReservedAttribute5IHostOnlyNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IHostOnlyNetwork(PRUint32 *aInternalAndReservedAttribute6IHostOnlyNetwork) { return _to GetInternalAndReservedAttribute6IHostOnlyNetwork(aInternalAndReservedAttribute6IHostOnlyNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IHostOnlyNetwork(PRUint32 *aInternalAndReservedAttribute7IHostOnlyNetwork) { return _to GetInternalAndReservedAttribute7IHostOnlyNetwork(aInternalAndReservedAttribute7IHostOnlyNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IHostOnlyNetwork(PRUint32 *aInternalAndReservedAttribute8IHostOnlyNetwork) { return _to GetInternalAndReservedAttribute8IHostOnlyNetwork(aInternalAndReservedAttribute8IHostOnlyNetwork); } \
  NS_IMETHOD InternalAndReservedMethod1IHostOnlyNetwork(void) { return _to InternalAndReservedMethod1IHostOnlyNetwork(); } \
  NS_IMETHOD InternalAndReservedMethod2IHostOnlyNetwork(void) { return _to InternalAndReservedMethod2IHostOnlyNetwork(); } \
  NS_IMETHOD InternalAndReservedMethod3IHostOnlyNetwork(void) { return _to InternalAndReservedMethod3IHostOnlyNetwork(); } \
  NS_IMETHOD InternalAndReservedMethod4IHostOnlyNetwork(void) { return _to InternalAndReservedMethod4IHostOnlyNetwork(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IHOSTONLYNETWORK(_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 GetNetworkMask(PRUnichar **aNetworkMask) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNetworkMask(aNetworkMask); } \
  NS_IMETHOD SetNetworkMask(const PRUnichar *aNetworkMask) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetNetworkMask(aNetworkMask); } \
  NS_IMETHOD GetHostIP(PRUnichar **aHostIP) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHostIP(aHostIP); } \
  NS_IMETHOD GetLowerIP(PRUnichar **aLowerIP) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLowerIP(aLowerIP); } \
  NS_IMETHOD SetLowerIP(const PRUnichar *aLowerIP) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLowerIP(aLowerIP); } \
  NS_IMETHOD GetUpperIP(PRUnichar **aUpperIP) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUpperIP(aUpperIP); } \
  NS_IMETHOD SetUpperIP(const PRUnichar *aUpperIP) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUpperIP(aUpperIP); } \
  NS_IMETHOD GetId(PRUnichar **aId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetId(aId); } \
  NS_IMETHOD SetId(const PRUnichar *aId) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetId(aId); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IHostOnlyNetwork(PRUint32 *aInternalAndReservedAttribute1IHostOnlyNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IHostOnlyNetwork(aInternalAndReservedAttribute1IHostOnlyNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IHostOnlyNetwork(PRUint32 *aInternalAndReservedAttribute2IHostOnlyNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IHostOnlyNetwork(aInternalAndReservedAttribute2IHostOnlyNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IHostOnlyNetwork(PRUint32 *aInternalAndReservedAttribute3IHostOnlyNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IHostOnlyNetwork(aInternalAndReservedAttribute3IHostOnlyNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IHostOnlyNetwork(PRUint32 *aInternalAndReservedAttribute4IHostOnlyNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IHostOnlyNetwork(aInternalAndReservedAttribute4IHostOnlyNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IHostOnlyNetwork(PRUint32 *aInternalAndReservedAttribute5IHostOnlyNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IHostOnlyNetwork(aInternalAndReservedAttribute5IHostOnlyNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IHostOnlyNetwork(PRUint32 *aInternalAndReservedAttribute6IHostOnlyNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IHostOnlyNetwork(aInternalAndReservedAttribute6IHostOnlyNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IHostOnlyNetwork(PRUint32 *aInternalAndReservedAttribute7IHostOnlyNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IHostOnlyNetwork(aInternalAndReservedAttribute7IHostOnlyNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IHostOnlyNetwork(PRUint32 *aInternalAndReservedAttribute8IHostOnlyNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IHostOnlyNetwork(aInternalAndReservedAttribute8IHostOnlyNetwork); } \
  NS_IMETHOD InternalAndReservedMethod1IHostOnlyNetwork(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IHostOnlyNetwork(); } \
  NS_IMETHOD InternalAndReservedMethod2IHostOnlyNetwork(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IHostOnlyNetwork(); } \
  NS_IMETHOD InternalAndReservedMethod3IHostOnlyNetwork(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IHostOnlyNetwork(); } \
  NS_IMETHOD InternalAndReservedMethod4IHostOnlyNetwork(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IHostOnlyNetwork(); } 

#define COM_FORWARD_IHostOnlyNetwork_GETTER_NetworkName_TO(smth) NS_IMETHOD GetNetworkName (PRUnichar * * aNetworkName) { return smth GetNetworkName (aNetworkName); }
#define COM_FORWARD_IHostOnlyNetwork_GETTER_NetworkName_TO_OBJ(obj) COM_FORWARD_IHostOnlyNetwork_GETTER_NetworkName_TO ((obj)->)
#define COM_FORWARD_IHostOnlyNetwork_GETTER_NetworkName_TO_BASE(base) COM_FORWARD_IHostOnlyNetwork_GETTER_NetworkName_TO (base::)
#define COM_FORWARD_IHostOnlyNetwork_SETTER_NetworkName_TO(smth) NS_IMETHOD SetNetworkName (const PRUnichar * aNetworkName) { return smth SetNetworkName (aNetworkName); }
#define COM_FORWARD_IHostOnlyNetwork_SETTER_NetworkName_TO_OBJ(obj) COM_FORWARD_IHostOnlyNetwork_SETTER_NetworkName_TO ((obj)->)
#define COM_FORWARD_IHostOnlyNetwork_SETTER_NetworkName_TO_BASE(base) COM_FORWARD_IHostOnlyNetwork_SETTER_NetworkName_TO (base::)
#define COM_FORWARD_IHostOnlyNetwork_GETTER_Enabled_TO(smth) NS_IMETHOD GetEnabled (PRBool * aEnabled) { return smth GetEnabled (aEnabled); }
#define COM_FORWARD_IHostOnlyNetwork_GETTER_Enabled_TO_OBJ(obj) COM_FORWARD_IHostOnlyNetwork_GETTER_Enabled_TO ((obj)->)
#define COM_FORWARD_IHostOnlyNetwork_GETTER_Enabled_TO_BASE(base) COM_FORWARD_IHostOnlyNetwork_GETTER_Enabled_TO (base::)
#define COM_FORWARD_IHostOnlyNetwork_SETTER_Enabled_TO(smth) NS_IMETHOD SetEnabled (PRBool aEnabled) { return smth SetEnabled (aEnabled); }
#define COM_FORWARD_IHostOnlyNetwork_SETTER_Enabled_TO_OBJ(obj) COM_FORWARD_IHostOnlyNetwork_SETTER_Enabled_TO ((obj)->)
#define COM_FORWARD_IHostOnlyNetwork_SETTER_Enabled_TO_BASE(base) COM_FORWARD_IHostOnlyNetwork_SETTER_Enabled_TO (base::)
#define COM_FORWARD_IHostOnlyNetwork_GETTER_NetworkMask_TO(smth) NS_IMETHOD GetNetworkMask (PRUnichar * * aNetworkMask) { return smth GetNetworkMask (aNetworkMask); }
#define COM_FORWARD_IHostOnlyNetwork_GETTER_NetworkMask_TO_OBJ(obj) COM_FORWARD_IHostOnlyNetwork_GETTER_NetworkMask_TO ((obj)->)
#define COM_FORWARD_IHostOnlyNetwork_GETTER_NetworkMask_TO_BASE(base) COM_FORWARD_IHostOnlyNetwork_GETTER_NetworkMask_TO (base::)
#define COM_FORWARD_IHostOnlyNetwork_SETTER_NetworkMask_TO(smth) NS_IMETHOD SetNetworkMask (const PRUnichar * aNetworkMask) { return smth SetNetworkMask (aNetworkMask); }
#define COM_FORWARD_IHostOnlyNetwork_SETTER_NetworkMask_TO_OBJ(obj) COM_FORWARD_IHostOnlyNetwork_SETTER_NetworkMask_TO ((obj)->)
#define COM_FORWARD_IHostOnlyNetwork_SETTER_NetworkMask_TO_BASE(base) COM_FORWARD_IHostOnlyNetwork_SETTER_NetworkMask_TO (base::)
#define COM_FORWARD_IHostOnlyNetwork_GETTER_HostIP_TO(smth) NS_IMETHOD GetHostIP (PRUnichar * * aHostIP) { return smth GetHostIP (aHostIP); }
#define COM_FORWARD_IHostOnlyNetwork_GETTER_HostIP_TO_OBJ(obj) COM_FORWARD_IHostOnlyNetwork_GETTER_HostIP_TO ((obj)->)
#define COM_FORWARD_IHostOnlyNetwork_GETTER_HostIP_TO_BASE(base) COM_FORWARD_IHostOnlyNetwork_GETTER_HostIP_TO (base::)
#define COM_FORWARD_IHostOnlyNetwork_GETTER_LowerIP_TO(smth) NS_IMETHOD GetLowerIP (PRUnichar * * aLowerIP) { return smth GetLowerIP (aLowerIP); }
#define COM_FORWARD_IHostOnlyNetwork_GETTER_LowerIP_TO_OBJ(obj) COM_FORWARD_IHostOnlyNetwork_GETTER_LowerIP_TO ((obj)->)
#define COM_FORWARD_IHostOnlyNetwork_GETTER_LowerIP_TO_BASE(base) COM_FORWARD_IHostOnlyNetwork_GETTER_LowerIP_TO (base::)
#define COM_FORWARD_IHostOnlyNetwork_SETTER_LowerIP_TO(smth) NS_IMETHOD SetLowerIP (const PRUnichar * aLowerIP) { return smth SetLowerIP (aLowerIP); }
#define COM_FORWARD_IHostOnlyNetwork_SETTER_LowerIP_TO_OBJ(obj) COM_FORWARD_IHostOnlyNetwork_SETTER_LowerIP_TO ((obj)->)
#define COM_FORWARD_IHostOnlyNetwork_SETTER_LowerIP_TO_BASE(base) COM_FORWARD_IHostOnlyNetwork_SETTER_LowerIP_TO (base::)
#define COM_FORWARD_IHostOnlyNetwork_GETTER_UpperIP_TO(smth) NS_IMETHOD GetUpperIP (PRUnichar * * aUpperIP) { return smth GetUpperIP (aUpperIP); }
#define COM_FORWARD_IHostOnlyNetwork_GETTER_UpperIP_TO_OBJ(obj) COM_FORWARD_IHostOnlyNetwork_GETTER_UpperIP_TO ((obj)->)
#define COM_FORWARD_IHostOnlyNetwork_GETTER_UpperIP_TO_BASE(base) COM_FORWARD_IHostOnlyNetwork_GETTER_UpperIP_TO (base::)
#define COM_FORWARD_IHostOnlyNetwork_SETTER_UpperIP_TO(smth) NS_IMETHOD SetUpperIP (const PRUnichar * aUpperIP) { return smth SetUpperIP (aUpperIP); }
#define COM_FORWARD_IHostOnlyNetwork_SETTER_UpperIP_TO_OBJ(obj) COM_FORWARD_IHostOnlyNetwork_SETTER_UpperIP_TO ((obj)->)
#define COM_FORWARD_IHostOnlyNetwork_SETTER_UpperIP_TO_BASE(base) COM_FORWARD_IHostOnlyNetwork_SETTER_UpperIP_TO (base::)
#define COM_FORWARD_IHostOnlyNetwork_GETTER_Id_TO(smth) NS_IMETHOD GetId (PRUnichar * * aId) { return smth GetId (aId); }
#define COM_FORWARD_IHostOnlyNetwork_GETTER_Id_TO_OBJ(obj) COM_FORWARD_IHostOnlyNetwork_GETTER_Id_TO ((obj)->)
#define COM_FORWARD_IHostOnlyNetwork_GETTER_Id_TO_BASE(base) COM_FORWARD_IHostOnlyNetwork_GETTER_Id_TO (base::)
#define COM_FORWARD_IHostOnlyNetwork_SETTER_Id_TO(smth) NS_IMETHOD SetId (PRUnichar * aId) { return smth SetId (aId); }
#define COM_FORWARD_IHostOnlyNetwork_SETTER_Id_TO_OBJ(obj) COM_FORWARD_IHostOnlyNetwork_SETTER_Id_TO ((obj)->)
#define COM_FORWARD_IHostOnlyNetwork_SETTER_Id_TO_BASE(base) COM_FORWARD_IHostOnlyNetwork_SETTER_Id_TO (base::)
#define COM_FORWARD_IHostOnlyNetwork_TO(smth) NS_FORWARD_IHOSTONLYNETWORK (smth)
#define COM_FORWARD_IHostOnlyNetwork_TO_OBJ(obj) COM_FORWARD_IHostOnlyNetwork_TO ((obj)->)
#define COM_FORWARD_IHostOnlyNetwork_TO_BASE(base) COM_FORWARD_IHostOnlyNetwork_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IHostOnlyNetwork;

/* starting interface:    IDHCPServer */
#define IDHCPSERVER_IID_STR "cadef0a2-a1a9-4ac2-8e80-c049af69dac8"

#define IDHCPSERVER_IID \
  {0xcadef0a2, 0xa1a9, 0x4ac2, \
    { 0x8e, 0x80, 0xc0, 0x49, 0xaf, 0x69, 0xda, 0xc8 }}

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;

  /* readonly attribute IDHCPGlobalConfig globalConfig; */
  NS_IMETHOD GetGlobalConfig(IDHCPGlobalConfig * *aGlobalConfig) = 0;

  /* void getGroupConfigs (out unsigned long groupConfigsSize, [array, size_is (groupConfigsSize), retval] out IDHCPGroupConfig groupConfigs); */
  NS_IMETHOD GetGroupConfigs(PRUint32 *groupConfigsSize, IDHCPGroupConfig * **groupConfigs) = 0;

  /* void getIndividualConfigs (out unsigned long individualConfigsSize, [array, size_is (individualConfigsSize), retval] out IDHCPIndividualConfig individualConfigs); */
  NS_IMETHOD GetIndividualConfigs(PRUint32 *individualConfigsSize, IDHCPIndividualConfig * **individualConfigs) = 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;

  /* 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 trunkName, in wstring trunkType); */
  NS_IMETHOD Start(const PRUnichar *trunkName, const PRUnichar *trunkType) = 0;

  /* void stop (); */
  NS_IMETHOD Stop(void) = 0;

  /* void restart (); */
  NS_IMETHOD Restart(void) = 0;

  /* void findLeaseByMAC (in wstring mac, in long type, out wstring address, out wstring state, out long long issued, out long long expire); */
  NS_IMETHOD FindLeaseByMAC(const PRUnichar *mac, PRInt32 type, PRUnichar **address, PRUnichar **state, PRInt64 *issued, PRInt64 *expire) = 0;

  /* void getConfig (in DHCPConfigScope_T scope, in wstring name, in unsigned long slot, in boolean mayAdd, [retval] out IDHCPConfig config); */
  NS_IMETHOD GetConfig(DHCPConfigScope_T scope, const PRUnichar *name, PRUint32 slot, PRBool mayAdd, IDHCPConfig * *config) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IDHCPSERVER \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) NS_OVERRIDE; \
  NS_IMETHOD GetEnabled(PRBool *aEnabled) NS_OVERRIDE; \
  NS_IMETHOD SetEnabled(PRBool aEnabled) NS_OVERRIDE; \
  NS_IMETHOD GetIPAddress(PRUnichar **aIPAddress) NS_OVERRIDE; \
  NS_IMETHOD GetNetworkMask(PRUnichar **aNetworkMask) NS_OVERRIDE; \
  NS_IMETHOD GetNetworkName(PRUnichar **aNetworkName) NS_OVERRIDE; \
  NS_IMETHOD GetLowerIP(PRUnichar **aLowerIP) NS_OVERRIDE; \
  NS_IMETHOD GetUpperIP(PRUnichar **aUpperIP) NS_OVERRIDE; \
  NS_IMETHOD GetGlobalConfig(IDHCPGlobalConfig * *aGlobalConfig) NS_OVERRIDE; \
  NS_IMETHOD GetGroupConfigs(PRUint32 *groupConfigsSize, IDHCPGroupConfig * **groupConfigs) NS_OVERRIDE; \
  NS_IMETHOD GetIndividualConfigs(PRUint32 *individualConfigsSize, IDHCPIndividualConfig * **individualConfigs) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IDHCPServer(PRUint32 *aInternalAndReservedAttribute1IDHCPServer) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IDHCPServer(PRUint32 *aInternalAndReservedAttribute2IDHCPServer) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IDHCPServer(PRUint32 *aInternalAndReservedAttribute3IDHCPServer) NS_OVERRIDE; \
  NS_IMETHOD SetConfiguration(const PRUnichar *IPAddress, const PRUnichar *networkMask, const PRUnichar *FromIPAddress, const PRUnichar *ToIPAddress) NS_OVERRIDE; \
  NS_IMETHOD Start(const PRUnichar *trunkName, const PRUnichar *trunkType) NS_OVERRIDE; \
  NS_IMETHOD Stop(void) NS_OVERRIDE; \
  NS_IMETHOD Restart(void) NS_OVERRIDE; \
  NS_IMETHOD FindLeaseByMAC(const PRUnichar *mac, PRInt32 type, PRUnichar **address, PRUnichar **state, PRInt64 *issued, PRInt64 *expire) NS_OVERRIDE; \
  NS_IMETHOD GetConfig(DHCPConfigScope_T scope, const PRUnichar *name, PRUint32 slot, PRBool mayAdd, IDHCPConfig * *config) NS_OVERRIDE; 

/* 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 GetGlobalConfig(IDHCPGlobalConfig * *aGlobalConfig) { return _to GetGlobalConfig(aGlobalConfig); } \
  NS_IMETHOD GetGroupConfigs(PRUint32 *groupConfigsSize, IDHCPGroupConfig * **groupConfigs) { return _to GetGroupConfigs(groupConfigsSize, groupConfigs); } \
  NS_IMETHOD GetIndividualConfigs(PRUint32 *individualConfigsSize, IDHCPIndividualConfig * **individualConfigs) { return _to GetIndividualConfigs(individualConfigsSize, individualConfigs); } \
  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 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 *trunkName, const PRUnichar *trunkType) { return _to Start(trunkName, trunkType); } \
  NS_IMETHOD Stop(void) { return _to Stop(); } \
  NS_IMETHOD Restart(void) { return _to Restart(); } \
  NS_IMETHOD FindLeaseByMAC(const PRUnichar *mac, PRInt32 type, PRUnichar **address, PRUnichar **state, PRInt64 *issued, PRInt64 *expire) { return _to FindLeaseByMAC(mac, type, address, state, issued, expire); } \
  NS_IMETHOD GetConfig(DHCPConfigScope_T scope, const PRUnichar *name, PRUint32 slot, PRBool mayAdd, IDHCPConfig * *config) { return _to GetConfig(scope, name, slot, mayAdd, config); } 

/* 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 GetGlobalConfig(IDHCPGlobalConfig * *aGlobalConfig) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGlobalConfig(aGlobalConfig); } \
  NS_IMETHOD GetGroupConfigs(PRUint32 *groupConfigsSize, IDHCPGroupConfig * **groupConfigs) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGroupConfigs(groupConfigsSize, groupConfigs); } \
  NS_IMETHOD GetIndividualConfigs(PRUint32 *individualConfigsSize, IDHCPIndividualConfig * **individualConfigs) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIndividualConfigs(individualConfigsSize, individualConfigs); } \
  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 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 *trunkName, const PRUnichar *trunkType) { return !_to ? NS_ERROR_NULL_POINTER : _to->Start(trunkName, trunkType); } \
  NS_IMETHOD Stop(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Stop(); } \
  NS_IMETHOD Restart(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Restart(); } \
  NS_IMETHOD FindLeaseByMAC(const PRUnichar *mac, PRInt32 type, PRUnichar **address, PRUnichar **state, PRInt64 *issued, PRInt64 *expire) { return !_to ? NS_ERROR_NULL_POINTER : _to->FindLeaseByMAC(mac, type, address, state, issued, expire); } \
  NS_IMETHOD GetConfig(DHCPConfigScope_T scope, const PRUnichar *name, PRUint32 slot, PRBool mayAdd, IDHCPConfig * *config) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetConfig(scope, name, slot, mayAdd, config); } 

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

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IDHCPServer;

/* starting interface:    IDHCPConfig */
#define IDHCPCONFIG_IID_STR "00f4a8dc-0002-4b81-0077-1dcb004571ba"

#define IDHCPCONFIG_IID \
  {0x00f4a8dc, 0x0002, 0x4b81, \
    { 0x00, 0x77, 0x1d, 0xcb, 0x00, 0x45, 0x71, 0xba }}

class NS_NO_VTABLE IDHCPConfig : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IDHCPCONFIG_IID)

  /* readonly attribute DHCPConfigScope_T scope; */
  NS_IMETHOD GetScope(DHCPConfigScope_T *aScope) = 0;

  /* attribute unsigned long minLeaseTime; */
  NS_IMETHOD GetMinLeaseTime(PRUint32 *aMinLeaseTime) = 0;
  NS_IMETHOD SetMinLeaseTime(PRUint32 aMinLeaseTime) = 0;

  /* attribute unsigned long defaultLeaseTime; */
  NS_IMETHOD GetDefaultLeaseTime(PRUint32 *aDefaultLeaseTime) = 0;
  NS_IMETHOD SetDefaultLeaseTime(PRUint32 aDefaultLeaseTime) = 0;

  /* attribute unsigned long maxLeaseTime; */
  NS_IMETHOD GetMaxLeaseTime(PRUint32 *aMaxLeaseTime) = 0;
  NS_IMETHOD SetMaxLeaseTime(PRUint32 aMaxLeaseTime) = 0;

  /* void getForcedOptions (out unsigned long forcedOptionsSize, [array, size_is (forcedOptionsSize), retval] out DHCPOption_T forcedOptions); */
  NS_IMETHOD GetForcedOptions(PRUint32 *forcedOptionsSize, DHCPOption_T **forcedOptions) = 0;

  /* void setForcedOptions (in unsigned long forcedOptionsSize, [array, size_is (forcedOptionsSize)] in DHCPOption_T forcedOptions); */
  NS_IMETHOD SetForcedOptions(PRUint32 forcedOptionsSize, DHCPOption_T *forcedOptions) = 0;

  /* void getSuppressedOptions (out unsigned long suppressedOptionsSize, [array, size_is (suppressedOptionsSize), retval] out DHCPOption_T suppressedOptions); */
  NS_IMETHOD GetSuppressedOptions(PRUint32 *suppressedOptionsSize, DHCPOption_T **suppressedOptions) = 0;

  /* void setSuppressedOptions (in unsigned long suppressedOptionsSize, [array, size_is (suppressedOptionsSize)] in DHCPOption_T suppressedOptions); */
  NS_IMETHOD SetSuppressedOptions(PRUint32 suppressedOptionsSize, DHCPOption_T *suppressedOptions) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IDHCPConfig; */
  NS_IMETHOD GetInternalAndReservedAttribute1IDHCPConfig(PRUint32 *aInternalAndReservedAttribute1IDHCPConfig) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IDHCPConfig; */
  NS_IMETHOD GetInternalAndReservedAttribute2IDHCPConfig(PRUint32 *aInternalAndReservedAttribute2IDHCPConfig) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IDHCPConfig; */
  NS_IMETHOD GetInternalAndReservedAttribute3IDHCPConfig(PRUint32 *aInternalAndReservedAttribute3IDHCPConfig) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IDHCPConfig; */
  NS_IMETHOD GetInternalAndReservedAttribute4IDHCPConfig(PRUint32 *aInternalAndReservedAttribute4IDHCPConfig) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IDHCPConfig; */
  NS_IMETHOD GetInternalAndReservedAttribute5IDHCPConfig(PRUint32 *aInternalAndReservedAttribute5IDHCPConfig) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IDHCPConfig; */
  NS_IMETHOD GetInternalAndReservedAttribute6IDHCPConfig(PRUint32 *aInternalAndReservedAttribute6IDHCPConfig) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IDHCPConfig; */
  NS_IMETHOD GetInternalAndReservedAttribute7IDHCPConfig(PRUint32 *aInternalAndReservedAttribute7IDHCPConfig) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IDHCPConfig; */
  NS_IMETHOD GetInternalAndReservedAttribute8IDHCPConfig(PRUint32 *aInternalAndReservedAttribute8IDHCPConfig) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute9IDHCPConfig; */
  NS_IMETHOD GetInternalAndReservedAttribute9IDHCPConfig(PRUint32 *aInternalAndReservedAttribute9IDHCPConfig) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute10IDHCPConfig; */
  NS_IMETHOD GetInternalAndReservedAttribute10IDHCPConfig(PRUint32 *aInternalAndReservedAttribute10IDHCPConfig) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute11IDHCPConfig; */
  NS_IMETHOD GetInternalAndReservedAttribute11IDHCPConfig(PRUint32 *aInternalAndReservedAttribute11IDHCPConfig) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute12IDHCPConfig; */
  NS_IMETHOD GetInternalAndReservedAttribute12IDHCPConfig(PRUint32 *aInternalAndReservedAttribute12IDHCPConfig) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute13IDHCPConfig; */
  NS_IMETHOD GetInternalAndReservedAttribute13IDHCPConfig(PRUint32 *aInternalAndReservedAttribute13IDHCPConfig) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute14IDHCPConfig; */
  NS_IMETHOD GetInternalAndReservedAttribute14IDHCPConfig(PRUint32 *aInternalAndReservedAttribute14IDHCPConfig) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute15IDHCPConfig; */
  NS_IMETHOD GetInternalAndReservedAttribute15IDHCPConfig(PRUint32 *aInternalAndReservedAttribute15IDHCPConfig) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute16IDHCPConfig; */
  NS_IMETHOD GetInternalAndReservedAttribute16IDHCPConfig(PRUint32 *aInternalAndReservedAttribute16IDHCPConfig) = 0;

  /* void setOption (in DHCPOption_T option, in DHCPOptionEncoding_T encoding, in wstring value); */
  NS_IMETHOD SetOption(DHCPOption_T option, DHCPOptionEncoding_T encoding, const PRUnichar *value) = 0;

  /* void removeOption (in DHCPOption_T option); */
  NS_IMETHOD RemoveOption(DHCPOption_T option) = 0;

  /* void removeAllOptions (); */
  NS_IMETHOD RemoveAllOptions(void) = 0;

  /* void getOption (in DHCPOption_T option, out DHCPOptionEncoding_T encoding, [retval] out wstring value); */
  NS_IMETHOD GetOption(DHCPOption_T option, DHCPOptionEncoding_T *encoding, PRUnichar **value) = 0;

  /* void getAllOptions (out unsigned long optionsSize, [array, size_is (optionsSize)] out DHCPOption_T options, out unsigned long encodingsSize, [array, size_is (encodingsSize)] out DHCPOptionEncoding_T encodings, out unsigned long valuesSize, [array, size_is (valuesSize), retval] out wstring values); */
  NS_IMETHOD GetAllOptions(PRUint32 *optionsSize, DHCPOption_T **options, PRUint32 *encodingsSize, DHCPOptionEncoding_T **encodings, PRUint32 *valuesSize, PRUnichar ***values) = 0;

  /* void remove (); */
  NS_IMETHOD Remove(void) = 0;

  /* void InternalAndReservedMethod1IDHCPConfig (); */
  NS_IMETHOD InternalAndReservedMethod1IDHCPConfig(void) = 0;

  /* void InternalAndReservedMethod2IDHCPConfig (); */
  NS_IMETHOD InternalAndReservedMethod2IDHCPConfig(void) = 0;

  /* void InternalAndReservedMethod3IDHCPConfig (); */
  NS_IMETHOD InternalAndReservedMethod3IDHCPConfig(void) = 0;

  /* void InternalAndReservedMethod4IDHCPConfig (); */
  NS_IMETHOD InternalAndReservedMethod4IDHCPConfig(void) = 0;

  /* void InternalAndReservedMethod5IDHCPConfig (); */
  NS_IMETHOD InternalAndReservedMethod5IDHCPConfig(void) = 0;

  /* void InternalAndReservedMethod6IDHCPConfig (); */
  NS_IMETHOD InternalAndReservedMethod6IDHCPConfig(void) = 0;

  /* void InternalAndReservedMethod7IDHCPConfig (); */
  NS_IMETHOD InternalAndReservedMethod7IDHCPConfig(void) = 0;

  /* void InternalAndReservedMethod8IDHCPConfig (); */
  NS_IMETHOD InternalAndReservedMethod8IDHCPConfig(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IDHCPCONFIG \
  NS_IMETHOD GetScope(DHCPConfigScope_T *aScope) NS_OVERRIDE; \
  NS_IMETHOD GetMinLeaseTime(PRUint32 *aMinLeaseTime) NS_OVERRIDE; \
  NS_IMETHOD SetMinLeaseTime(PRUint32 aMinLeaseTime) NS_OVERRIDE; \
  NS_IMETHOD GetDefaultLeaseTime(PRUint32 *aDefaultLeaseTime) NS_OVERRIDE; \
  NS_IMETHOD SetDefaultLeaseTime(PRUint32 aDefaultLeaseTime) NS_OVERRIDE; \
  NS_IMETHOD GetMaxLeaseTime(PRUint32 *aMaxLeaseTime) NS_OVERRIDE; \
  NS_IMETHOD SetMaxLeaseTime(PRUint32 aMaxLeaseTime) NS_OVERRIDE; \
  NS_IMETHOD GetForcedOptions(PRUint32 *forcedOptionsSize, DHCPOption_T **forcedOptions) NS_OVERRIDE; \
  NS_IMETHOD SetForcedOptions(PRUint32 forcedOptionsSize, DHCPOption_T *forcedOptions) NS_OVERRIDE; \
  NS_IMETHOD GetSuppressedOptions(PRUint32 *suppressedOptionsSize, DHCPOption_T **suppressedOptions) NS_OVERRIDE; \
  NS_IMETHOD SetSuppressedOptions(PRUint32 suppressedOptionsSize, DHCPOption_T *suppressedOptions) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IDHCPConfig(PRUint32 *aInternalAndReservedAttribute1IDHCPConfig) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IDHCPConfig(PRUint32 *aInternalAndReservedAttribute2IDHCPConfig) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IDHCPConfig(PRUint32 *aInternalAndReservedAttribute3IDHCPConfig) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IDHCPConfig(PRUint32 *aInternalAndReservedAttribute4IDHCPConfig) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IDHCPConfig(PRUint32 *aInternalAndReservedAttribute5IDHCPConfig) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IDHCPConfig(PRUint32 *aInternalAndReservedAttribute6IDHCPConfig) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IDHCPConfig(PRUint32 *aInternalAndReservedAttribute7IDHCPConfig) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IDHCPConfig(PRUint32 *aInternalAndReservedAttribute8IDHCPConfig) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute9IDHCPConfig(PRUint32 *aInternalAndReservedAttribute9IDHCPConfig) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute10IDHCPConfig(PRUint32 *aInternalAndReservedAttribute10IDHCPConfig) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute11IDHCPConfig(PRUint32 *aInternalAndReservedAttribute11IDHCPConfig) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute12IDHCPConfig(PRUint32 *aInternalAndReservedAttribute12IDHCPConfig) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute13IDHCPConfig(PRUint32 *aInternalAndReservedAttribute13IDHCPConfig) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute14IDHCPConfig(PRUint32 *aInternalAndReservedAttribute14IDHCPConfig) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute15IDHCPConfig(PRUint32 *aInternalAndReservedAttribute15IDHCPConfig) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute16IDHCPConfig(PRUint32 *aInternalAndReservedAttribute16IDHCPConfig) NS_OVERRIDE; \
  NS_IMETHOD SetOption(DHCPOption_T option, DHCPOptionEncoding_T encoding, const PRUnichar *value) NS_OVERRIDE; \
  NS_IMETHOD RemoveOption(DHCPOption_T option) NS_OVERRIDE; \
  NS_IMETHOD RemoveAllOptions(void) NS_OVERRIDE; \
  NS_IMETHOD GetOption(DHCPOption_T option, DHCPOptionEncoding_T *encoding, PRUnichar **value) NS_OVERRIDE; \
  NS_IMETHOD GetAllOptions(PRUint32 *optionsSize, DHCPOption_T **options, PRUint32 *encodingsSize, DHCPOptionEncoding_T **encodings, PRUint32 *valuesSize, PRUnichar ***values) NS_OVERRIDE; \
  NS_IMETHOD Remove(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IDHCPConfig(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IDHCPConfig(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IDHCPConfig(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IDHCPConfig(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod5IDHCPConfig(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod6IDHCPConfig(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod7IDHCPConfig(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod8IDHCPConfig(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IDHCPCONFIG(_to) \
  NS_IMETHOD GetScope(DHCPConfigScope_T *aScope) { return _to GetScope(aScope); } \
  NS_IMETHOD GetMinLeaseTime(PRUint32 *aMinLeaseTime) { return _to GetMinLeaseTime(aMinLeaseTime); } \
  NS_IMETHOD SetMinLeaseTime(PRUint32 aMinLeaseTime) { return _to SetMinLeaseTime(aMinLeaseTime); } \
  NS_IMETHOD GetDefaultLeaseTime(PRUint32 *aDefaultLeaseTime) { return _to GetDefaultLeaseTime(aDefaultLeaseTime); } \
  NS_IMETHOD SetDefaultLeaseTime(PRUint32 aDefaultLeaseTime) { return _to SetDefaultLeaseTime(aDefaultLeaseTime); } \
  NS_IMETHOD GetMaxLeaseTime(PRUint32 *aMaxLeaseTime) { return _to GetMaxLeaseTime(aMaxLeaseTime); } \
  NS_IMETHOD SetMaxLeaseTime(PRUint32 aMaxLeaseTime) { return _to SetMaxLeaseTime(aMaxLeaseTime); } \
  NS_IMETHOD GetForcedOptions(PRUint32 *forcedOptionsSize, DHCPOption_T **forcedOptions) { return _to GetForcedOptions(forcedOptionsSize, forcedOptions); } \
  NS_IMETHOD SetForcedOptions(PRUint32 forcedOptionsSize, DHCPOption_T *forcedOptions) { return _to SetForcedOptions(forcedOptionsSize, forcedOptions); } \
  NS_IMETHOD GetSuppressedOptions(PRUint32 *suppressedOptionsSize, DHCPOption_T **suppressedOptions) { return _to GetSuppressedOptions(suppressedOptionsSize, suppressedOptions); } \
  NS_IMETHOD SetSuppressedOptions(PRUint32 suppressedOptionsSize, DHCPOption_T *suppressedOptions) { return _to SetSuppressedOptions(suppressedOptionsSize, suppressedOptions); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IDHCPConfig(PRUint32 *aInternalAndReservedAttribute1IDHCPConfig) { return _to GetInternalAndReservedAttribute1IDHCPConfig(aInternalAndReservedAttribute1IDHCPConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IDHCPConfig(PRUint32 *aInternalAndReservedAttribute2IDHCPConfig) { return _to GetInternalAndReservedAttribute2IDHCPConfig(aInternalAndReservedAttribute2IDHCPConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IDHCPConfig(PRUint32 *aInternalAndReservedAttribute3IDHCPConfig) { return _to GetInternalAndReservedAttribute3IDHCPConfig(aInternalAndReservedAttribute3IDHCPConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IDHCPConfig(PRUint32 *aInternalAndReservedAttribute4IDHCPConfig) { return _to GetInternalAndReservedAttribute4IDHCPConfig(aInternalAndReservedAttribute4IDHCPConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IDHCPConfig(PRUint32 *aInternalAndReservedAttribute5IDHCPConfig) { return _to GetInternalAndReservedAttribute5IDHCPConfig(aInternalAndReservedAttribute5IDHCPConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IDHCPConfig(PRUint32 *aInternalAndReservedAttribute6IDHCPConfig) { return _to GetInternalAndReservedAttribute6IDHCPConfig(aInternalAndReservedAttribute6IDHCPConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IDHCPConfig(PRUint32 *aInternalAndReservedAttribute7IDHCPConfig) { return _to GetInternalAndReservedAttribute7IDHCPConfig(aInternalAndReservedAttribute7IDHCPConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IDHCPConfig(PRUint32 *aInternalAndReservedAttribute8IDHCPConfig) { return _to GetInternalAndReservedAttribute8IDHCPConfig(aInternalAndReservedAttribute8IDHCPConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute9IDHCPConfig(PRUint32 *aInternalAndReservedAttribute9IDHCPConfig) { return _to GetInternalAndReservedAttribute9IDHCPConfig(aInternalAndReservedAttribute9IDHCPConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute10IDHCPConfig(PRUint32 *aInternalAndReservedAttribute10IDHCPConfig) { return _to GetInternalAndReservedAttribute10IDHCPConfig(aInternalAndReservedAttribute10IDHCPConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute11IDHCPConfig(PRUint32 *aInternalAndReservedAttribute11IDHCPConfig) { return _to GetInternalAndReservedAttribute11IDHCPConfig(aInternalAndReservedAttribute11IDHCPConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute12IDHCPConfig(PRUint32 *aInternalAndReservedAttribute12IDHCPConfig) { return _to GetInternalAndReservedAttribute12IDHCPConfig(aInternalAndReservedAttribute12IDHCPConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute13IDHCPConfig(PRUint32 *aInternalAndReservedAttribute13IDHCPConfig) { return _to GetInternalAndReservedAttribute13IDHCPConfig(aInternalAndReservedAttribute13IDHCPConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute14IDHCPConfig(PRUint32 *aInternalAndReservedAttribute14IDHCPConfig) { return _to GetInternalAndReservedAttribute14IDHCPConfig(aInternalAndReservedAttribute14IDHCPConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute15IDHCPConfig(PRUint32 *aInternalAndReservedAttribute15IDHCPConfig) { return _to GetInternalAndReservedAttribute15IDHCPConfig(aInternalAndReservedAttribute15IDHCPConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute16IDHCPConfig(PRUint32 *aInternalAndReservedAttribute16IDHCPConfig) { return _to GetInternalAndReservedAttribute16IDHCPConfig(aInternalAndReservedAttribute16IDHCPConfig); } \
  NS_IMETHOD SetOption(DHCPOption_T option, DHCPOptionEncoding_T encoding, const PRUnichar *value) { return _to SetOption(option, encoding, value); } \
  NS_IMETHOD RemoveOption(DHCPOption_T option) { return _to RemoveOption(option); } \
  NS_IMETHOD RemoveAllOptions(void) { return _to RemoveAllOptions(); } \
  NS_IMETHOD GetOption(DHCPOption_T option, DHCPOptionEncoding_T *encoding, PRUnichar **value) { return _to GetOption(option, encoding, value); } \
  NS_IMETHOD GetAllOptions(PRUint32 *optionsSize, DHCPOption_T **options, PRUint32 *encodingsSize, DHCPOptionEncoding_T **encodings, PRUint32 *valuesSize, PRUnichar ***values) { return _to GetAllOptions(optionsSize, options, encodingsSize, encodings, valuesSize, values); } \
  NS_IMETHOD Remove(void) { return _to Remove(); } \
  NS_IMETHOD InternalAndReservedMethod1IDHCPConfig(void) { return _to InternalAndReservedMethod1IDHCPConfig(); } \
  NS_IMETHOD InternalAndReservedMethod2IDHCPConfig(void) { return _to InternalAndReservedMethod2IDHCPConfig(); } \
  NS_IMETHOD InternalAndReservedMethod3IDHCPConfig(void) { return _to InternalAndReservedMethod3IDHCPConfig(); } \
  NS_IMETHOD InternalAndReservedMethod4IDHCPConfig(void) { return _to InternalAndReservedMethod4IDHCPConfig(); } \
  NS_IMETHOD InternalAndReservedMethod5IDHCPConfig(void) { return _to InternalAndReservedMethod5IDHCPConfig(); } \
  NS_IMETHOD InternalAndReservedMethod6IDHCPConfig(void) { return _to InternalAndReservedMethod6IDHCPConfig(); } \
  NS_IMETHOD InternalAndReservedMethod7IDHCPConfig(void) { return _to InternalAndReservedMethod7IDHCPConfig(); } \
  NS_IMETHOD InternalAndReservedMethod8IDHCPConfig(void) { return _to InternalAndReservedMethod8IDHCPConfig(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IDHCPCONFIG(_to) \
  NS_IMETHOD GetScope(DHCPConfigScope_T *aScope) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetScope(aScope); } \
  NS_IMETHOD GetMinLeaseTime(PRUint32 *aMinLeaseTime) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMinLeaseTime(aMinLeaseTime); } \
  NS_IMETHOD SetMinLeaseTime(PRUint32 aMinLeaseTime) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMinLeaseTime(aMinLeaseTime); } \
  NS_IMETHOD GetDefaultLeaseTime(PRUint32 *aDefaultLeaseTime) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDefaultLeaseTime(aDefaultLeaseTime); } \
  NS_IMETHOD SetDefaultLeaseTime(PRUint32 aDefaultLeaseTime) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDefaultLeaseTime(aDefaultLeaseTime); } \
  NS_IMETHOD GetMaxLeaseTime(PRUint32 *aMaxLeaseTime) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMaxLeaseTime(aMaxLeaseTime); } \
  NS_IMETHOD SetMaxLeaseTime(PRUint32 aMaxLeaseTime) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMaxLeaseTime(aMaxLeaseTime); } \
  NS_IMETHOD GetForcedOptions(PRUint32 *forcedOptionsSize, DHCPOption_T **forcedOptions) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetForcedOptions(forcedOptionsSize, forcedOptions); } \
  NS_IMETHOD SetForcedOptions(PRUint32 forcedOptionsSize, DHCPOption_T *forcedOptions) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetForcedOptions(forcedOptionsSize, forcedOptions); } \
  NS_IMETHOD GetSuppressedOptions(PRUint32 *suppressedOptionsSize, DHCPOption_T **suppressedOptions) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSuppressedOptions(suppressedOptionsSize, suppressedOptions); } \
  NS_IMETHOD SetSuppressedOptions(PRUint32 suppressedOptionsSize, DHCPOption_T *suppressedOptions) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSuppressedOptions(suppressedOptionsSize, suppressedOptions); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IDHCPConfig(PRUint32 *aInternalAndReservedAttribute1IDHCPConfig) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IDHCPConfig(aInternalAndReservedAttribute1IDHCPConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IDHCPConfig(PRUint32 *aInternalAndReservedAttribute2IDHCPConfig) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IDHCPConfig(aInternalAndReservedAttribute2IDHCPConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IDHCPConfig(PRUint32 *aInternalAndReservedAttribute3IDHCPConfig) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IDHCPConfig(aInternalAndReservedAttribute3IDHCPConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IDHCPConfig(PRUint32 *aInternalAndReservedAttribute4IDHCPConfig) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IDHCPConfig(aInternalAndReservedAttribute4IDHCPConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IDHCPConfig(PRUint32 *aInternalAndReservedAttribute5IDHCPConfig) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IDHCPConfig(aInternalAndReservedAttribute5IDHCPConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IDHCPConfig(PRUint32 *aInternalAndReservedAttribute6IDHCPConfig) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IDHCPConfig(aInternalAndReservedAttribute6IDHCPConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IDHCPConfig(PRUint32 *aInternalAndReservedAttribute7IDHCPConfig) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IDHCPConfig(aInternalAndReservedAttribute7IDHCPConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IDHCPConfig(PRUint32 *aInternalAndReservedAttribute8IDHCPConfig) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IDHCPConfig(aInternalAndReservedAttribute8IDHCPConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute9IDHCPConfig(PRUint32 *aInternalAndReservedAttribute9IDHCPConfig) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute9IDHCPConfig(aInternalAndReservedAttribute9IDHCPConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute10IDHCPConfig(PRUint32 *aInternalAndReservedAttribute10IDHCPConfig) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute10IDHCPConfig(aInternalAndReservedAttribute10IDHCPConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute11IDHCPConfig(PRUint32 *aInternalAndReservedAttribute11IDHCPConfig) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute11IDHCPConfig(aInternalAndReservedAttribute11IDHCPConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute12IDHCPConfig(PRUint32 *aInternalAndReservedAttribute12IDHCPConfig) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute12IDHCPConfig(aInternalAndReservedAttribute12IDHCPConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute13IDHCPConfig(PRUint32 *aInternalAndReservedAttribute13IDHCPConfig) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute13IDHCPConfig(aInternalAndReservedAttribute13IDHCPConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute14IDHCPConfig(PRUint32 *aInternalAndReservedAttribute14IDHCPConfig) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute14IDHCPConfig(aInternalAndReservedAttribute14IDHCPConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute15IDHCPConfig(PRUint32 *aInternalAndReservedAttribute15IDHCPConfig) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute15IDHCPConfig(aInternalAndReservedAttribute15IDHCPConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute16IDHCPConfig(PRUint32 *aInternalAndReservedAttribute16IDHCPConfig) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute16IDHCPConfig(aInternalAndReservedAttribute16IDHCPConfig); } \
  NS_IMETHOD SetOption(DHCPOption_T option, DHCPOptionEncoding_T encoding, const PRUnichar *value) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetOption(option, encoding, value); } \
  NS_IMETHOD RemoveOption(DHCPOption_T option) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveOption(option); } \
  NS_IMETHOD RemoveAllOptions(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveAllOptions(); } \
  NS_IMETHOD GetOption(DHCPOption_T option, DHCPOptionEncoding_T *encoding, PRUnichar **value) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOption(option, encoding, value); } \
  NS_IMETHOD GetAllOptions(PRUint32 *optionsSize, DHCPOption_T **options, PRUint32 *encodingsSize, DHCPOptionEncoding_T **encodings, PRUint32 *valuesSize, PRUnichar ***values) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAllOptions(optionsSize, options, encodingsSize, encodings, valuesSize, values); } \
  NS_IMETHOD Remove(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Remove(); } \
  NS_IMETHOD InternalAndReservedMethod1IDHCPConfig(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IDHCPConfig(); } \
  NS_IMETHOD InternalAndReservedMethod2IDHCPConfig(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IDHCPConfig(); } \
  NS_IMETHOD InternalAndReservedMethod3IDHCPConfig(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IDHCPConfig(); } \
  NS_IMETHOD InternalAndReservedMethod4IDHCPConfig(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IDHCPConfig(); } \
  NS_IMETHOD InternalAndReservedMethod5IDHCPConfig(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod5IDHCPConfig(); } \
  NS_IMETHOD InternalAndReservedMethod6IDHCPConfig(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod6IDHCPConfig(); } \
  NS_IMETHOD InternalAndReservedMethod7IDHCPConfig(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod7IDHCPConfig(); } \
  NS_IMETHOD InternalAndReservedMethod8IDHCPConfig(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod8IDHCPConfig(); } 

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

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IDHCPConfig;

/* starting interface:    IDHCPGlobalConfig */
#define IDHCPGLOBALCONFIG_IID_STR "46735de7-f4c4-4020-a185-0d2881bcfa8b"

#define IDHCPGLOBALCONFIG_IID \
  {0x46735de7, 0xf4c4, 0x4020, \
    { 0xa1, 0x85, 0x0d, 0x28, 0x81, 0xbc, 0xfa, 0x8b }}

class NS_NO_VTABLE IDHCPGlobalConfig : public IDHCPConfig {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IDHCPGLOBALCONFIG_IID)

  /* readonly attribute unsigned long InternalAndReservedAttribute1IDHCPGlobalConfig; */
  NS_IMETHOD GetInternalAndReservedAttribute1IDHCPGlobalConfig(PRUint32 *aInternalAndReservedAttribute1IDHCPGlobalConfig) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IDHCPGlobalConfig; */
  NS_IMETHOD GetInternalAndReservedAttribute2IDHCPGlobalConfig(PRUint32 *aInternalAndReservedAttribute2IDHCPGlobalConfig) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IDHCPGlobalConfig; */
  NS_IMETHOD GetInternalAndReservedAttribute3IDHCPGlobalConfig(PRUint32 *aInternalAndReservedAttribute3IDHCPGlobalConfig) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IDHCPGlobalConfig; */
  NS_IMETHOD GetInternalAndReservedAttribute4IDHCPGlobalConfig(PRUint32 *aInternalAndReservedAttribute4IDHCPGlobalConfig) = 0;

  /* void InternalAndReservedMethod1IDHCPGlobalConfig (); */
  NS_IMETHOD InternalAndReservedMethod1IDHCPGlobalConfig(void) = 0;

  /* void InternalAndReservedMethod2IDHCPGlobalConfig (); */
  NS_IMETHOD InternalAndReservedMethod2IDHCPGlobalConfig(void) = 0;

  /* void InternalAndReservedMethod3IDHCPGlobalConfig (); */
  NS_IMETHOD InternalAndReservedMethod3IDHCPGlobalConfig(void) = 0;

  /* void InternalAndReservedMethod4IDHCPGlobalConfig (); */
  NS_IMETHOD InternalAndReservedMethod4IDHCPGlobalConfig(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IDHCPGLOBALCONFIG \
  NS_IMETHOD GetInternalAndReservedAttribute1IDHCPGlobalConfig(PRUint32 *aInternalAndReservedAttribute1IDHCPGlobalConfig) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IDHCPGlobalConfig(PRUint32 *aInternalAndReservedAttribute2IDHCPGlobalConfig) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IDHCPGlobalConfig(PRUint32 *aInternalAndReservedAttribute3IDHCPGlobalConfig) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IDHCPGlobalConfig(PRUint32 *aInternalAndReservedAttribute4IDHCPGlobalConfig) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IDHCPGlobalConfig(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IDHCPGlobalConfig(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IDHCPGlobalConfig(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IDHCPGlobalConfig(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IDHCPGLOBALCONFIG(_to) \
  NS_IMETHOD GetInternalAndReservedAttribute1IDHCPGlobalConfig(PRUint32 *aInternalAndReservedAttribute1IDHCPGlobalConfig) { return _to GetInternalAndReservedAttribute1IDHCPGlobalConfig(aInternalAndReservedAttribute1IDHCPGlobalConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IDHCPGlobalConfig(PRUint32 *aInternalAndReservedAttribute2IDHCPGlobalConfig) { return _to GetInternalAndReservedAttribute2IDHCPGlobalConfig(aInternalAndReservedAttribute2IDHCPGlobalConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IDHCPGlobalConfig(PRUint32 *aInternalAndReservedAttribute3IDHCPGlobalConfig) { return _to GetInternalAndReservedAttribute3IDHCPGlobalConfig(aInternalAndReservedAttribute3IDHCPGlobalConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IDHCPGlobalConfig(PRUint32 *aInternalAndReservedAttribute4IDHCPGlobalConfig) { return _to GetInternalAndReservedAttribute4IDHCPGlobalConfig(aInternalAndReservedAttribute4IDHCPGlobalConfig); } \
  NS_IMETHOD InternalAndReservedMethod1IDHCPGlobalConfig(void) { return _to InternalAndReservedMethod1IDHCPGlobalConfig(); } \
  NS_IMETHOD InternalAndReservedMethod2IDHCPGlobalConfig(void) { return _to InternalAndReservedMethod2IDHCPGlobalConfig(); } \
  NS_IMETHOD InternalAndReservedMethod3IDHCPGlobalConfig(void) { return _to InternalAndReservedMethod3IDHCPGlobalConfig(); } \
  NS_IMETHOD InternalAndReservedMethod4IDHCPGlobalConfig(void) { return _to InternalAndReservedMethod4IDHCPGlobalConfig(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IDHCPGLOBALCONFIG(_to) \
  NS_IMETHOD GetInternalAndReservedAttribute1IDHCPGlobalConfig(PRUint32 *aInternalAndReservedAttribute1IDHCPGlobalConfig) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IDHCPGlobalConfig(aInternalAndReservedAttribute1IDHCPGlobalConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IDHCPGlobalConfig(PRUint32 *aInternalAndReservedAttribute2IDHCPGlobalConfig) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IDHCPGlobalConfig(aInternalAndReservedAttribute2IDHCPGlobalConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IDHCPGlobalConfig(PRUint32 *aInternalAndReservedAttribute3IDHCPGlobalConfig) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IDHCPGlobalConfig(aInternalAndReservedAttribute3IDHCPGlobalConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IDHCPGlobalConfig(PRUint32 *aInternalAndReservedAttribute4IDHCPGlobalConfig) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IDHCPGlobalConfig(aInternalAndReservedAttribute4IDHCPGlobalConfig); } \
  NS_IMETHOD InternalAndReservedMethod1IDHCPGlobalConfig(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IDHCPGlobalConfig(); } \
  NS_IMETHOD InternalAndReservedMethod2IDHCPGlobalConfig(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IDHCPGlobalConfig(); } \
  NS_IMETHOD InternalAndReservedMethod3IDHCPGlobalConfig(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IDHCPGlobalConfig(); } \
  NS_IMETHOD InternalAndReservedMethod4IDHCPGlobalConfig(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IDHCPGlobalConfig(); } 

#define COM_FORWARD_IDHCPGlobalConfig_TO(smth) NS_FORWARD_IDHCPGLOBALCONFIG (smth)
#define COM_FORWARD_IDHCPGlobalConfig_TO_OBJ(obj) COM_FORWARD_IDHCPGlobalConfig_TO ((obj)->)
#define COM_FORWARD_IDHCPGlobalConfig_TO_BASE(base) COM_FORWARD_IDHCPGlobalConfig_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IDHCPGlobalConfig;

/* starting interface:    IDHCPGroupCondition */
#define IDHCPGROUPCONDITION_IID_STR "5ca9e537-5a1d-43f1-6f27-6a0db298a9a8"

#define IDHCPGROUPCONDITION_IID \
  {0x5ca9e537, 0x5a1d, 0x43f1, \
    { 0x6f, 0x27, 0x6a, 0x0d, 0xb2, 0x98, 0xa9, 0xa8 }}

class NS_NO_VTABLE IDHCPGroupCondition : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IDHCPGROUPCONDITION_IID)

  /* attribute boolean inclusive; */
  NS_IMETHOD GetInclusive(PRBool *aInclusive) = 0;
  NS_IMETHOD SetInclusive(PRBool aInclusive) = 0;

  /* attribute DHCPGroupConditionType_T type; */
  NS_IMETHOD GetType(DHCPGroupConditionType_T *aType) = 0;
  NS_IMETHOD SetType(DHCPGroupConditionType_T aType) = 0;

  /* attribute wstring value; */
  NS_IMETHOD GetValue(PRUnichar **aValue) = 0;
  NS_IMETHOD SetValue(const PRUnichar *aValue) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IDHCPGroupCondition; */
  NS_IMETHOD GetInternalAndReservedAttribute1IDHCPGroupCondition(PRUint32 *aInternalAndReservedAttribute1IDHCPGroupCondition) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IDHCPGroupCondition; */
  NS_IMETHOD GetInternalAndReservedAttribute2IDHCPGroupCondition(PRUint32 *aInternalAndReservedAttribute2IDHCPGroupCondition) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IDHCPGroupCondition; */
  NS_IMETHOD GetInternalAndReservedAttribute3IDHCPGroupCondition(PRUint32 *aInternalAndReservedAttribute3IDHCPGroupCondition) = 0;

  /* void remove (); */
  NS_IMETHOD Remove(void) = 0;

  /* void InternalAndReservedMethod1IDHCPGroupCondition (); */
  NS_IMETHOD InternalAndReservedMethod1IDHCPGroupCondition(void) = 0;

  /* void InternalAndReservedMethod2IDHCPGroupCondition (); */
  NS_IMETHOD InternalAndReservedMethod2IDHCPGroupCondition(void) = 0;

  /* void InternalAndReservedMethod3IDHCPGroupCondition (); */
  NS_IMETHOD InternalAndReservedMethod3IDHCPGroupCondition(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IDHCPGROUPCONDITION \
  NS_IMETHOD GetInclusive(PRBool *aInclusive) NS_OVERRIDE; \
  NS_IMETHOD SetInclusive(PRBool aInclusive) NS_OVERRIDE; \
  NS_IMETHOD GetType(DHCPGroupConditionType_T *aType) NS_OVERRIDE; \
  NS_IMETHOD SetType(DHCPGroupConditionType_T aType) NS_OVERRIDE; \
  NS_IMETHOD GetValue(PRUnichar **aValue) NS_OVERRIDE; \
  NS_IMETHOD SetValue(const PRUnichar *aValue) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IDHCPGroupCondition(PRUint32 *aInternalAndReservedAttribute1IDHCPGroupCondition) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IDHCPGroupCondition(PRUint32 *aInternalAndReservedAttribute2IDHCPGroupCondition) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IDHCPGroupCondition(PRUint32 *aInternalAndReservedAttribute3IDHCPGroupCondition) NS_OVERRIDE; \
  NS_IMETHOD Remove(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IDHCPGroupCondition(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IDHCPGroupCondition(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IDHCPGroupCondition(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IDHCPGROUPCONDITION(_to) \
  NS_IMETHOD GetInclusive(PRBool *aInclusive) { return _to GetInclusive(aInclusive); } \
  NS_IMETHOD SetInclusive(PRBool aInclusive) { return _to SetInclusive(aInclusive); } \
  NS_IMETHOD GetType(DHCPGroupConditionType_T *aType) { return _to GetType(aType); } \
  NS_IMETHOD SetType(DHCPGroupConditionType_T aType) { return _to SetType(aType); } \
  NS_IMETHOD GetValue(PRUnichar **aValue) { return _to GetValue(aValue); } \
  NS_IMETHOD SetValue(const PRUnichar *aValue) { return _to SetValue(aValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IDHCPGroupCondition(PRUint32 *aInternalAndReservedAttribute1IDHCPGroupCondition) { return _to GetInternalAndReservedAttribute1IDHCPGroupCondition(aInternalAndReservedAttribute1IDHCPGroupCondition); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IDHCPGroupCondition(PRUint32 *aInternalAndReservedAttribute2IDHCPGroupCondition) { return _to GetInternalAndReservedAttribute2IDHCPGroupCondition(aInternalAndReservedAttribute2IDHCPGroupCondition); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IDHCPGroupCondition(PRUint32 *aInternalAndReservedAttribute3IDHCPGroupCondition) { return _to GetInternalAndReservedAttribute3IDHCPGroupCondition(aInternalAndReservedAttribute3IDHCPGroupCondition); } \
  NS_IMETHOD Remove(void) { return _to Remove(); } \
  NS_IMETHOD InternalAndReservedMethod1IDHCPGroupCondition(void) { return _to InternalAndReservedMethod1IDHCPGroupCondition(); } \
  NS_IMETHOD InternalAndReservedMethod2IDHCPGroupCondition(void) { return _to InternalAndReservedMethod2IDHCPGroupCondition(); } \
  NS_IMETHOD InternalAndReservedMethod3IDHCPGroupCondition(void) { return _to InternalAndReservedMethod3IDHCPGroupCondition(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IDHCPGROUPCONDITION(_to) \
  NS_IMETHOD GetInclusive(PRBool *aInclusive) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInclusive(aInclusive); } \
  NS_IMETHOD SetInclusive(PRBool aInclusive) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetInclusive(aInclusive); } \
  NS_IMETHOD GetType(DHCPGroupConditionType_T *aType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetType(aType); } \
  NS_IMETHOD SetType(DHCPGroupConditionType_T aType) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetType(aType); } \
  NS_IMETHOD GetValue(PRUnichar **aValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetValue(aValue); } \
  NS_IMETHOD SetValue(const PRUnichar *aValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetValue(aValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IDHCPGroupCondition(PRUint32 *aInternalAndReservedAttribute1IDHCPGroupCondition) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IDHCPGroupCondition(aInternalAndReservedAttribute1IDHCPGroupCondition); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IDHCPGroupCondition(PRUint32 *aInternalAndReservedAttribute2IDHCPGroupCondition) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IDHCPGroupCondition(aInternalAndReservedAttribute2IDHCPGroupCondition); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IDHCPGroupCondition(PRUint32 *aInternalAndReservedAttribute3IDHCPGroupCondition) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IDHCPGroupCondition(aInternalAndReservedAttribute3IDHCPGroupCondition); } \
  NS_IMETHOD Remove(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Remove(); } \
  NS_IMETHOD InternalAndReservedMethod1IDHCPGroupCondition(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IDHCPGroupCondition(); } \
  NS_IMETHOD InternalAndReservedMethod2IDHCPGroupCondition(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IDHCPGroupCondition(); } \
  NS_IMETHOD InternalAndReservedMethod3IDHCPGroupCondition(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IDHCPGroupCondition(); } 

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

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IDHCPGroupCondition;

/* starting interface:    IDHCPGroupConfig */
#define IDHCPGROUPCONFIG_IID_STR "537707f7-ebf9-4d5c-7aea-877bfc4256ba"

#define IDHCPGROUPCONFIG_IID \
  {0x537707f7, 0xebf9, 0x4d5c, \
    { 0x7a, 0xea, 0x87, 0x7b, 0xfc, 0x42, 0x56, 0xba }}

class NS_NO_VTABLE IDHCPGroupConfig : public IDHCPConfig {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IDHCPGROUPCONFIG_IID)

  /* attribute wstring name; */
  NS_IMETHOD GetName(PRUnichar **aName) = 0;
  NS_IMETHOD SetName(const PRUnichar *aName) = 0;

  /* void getConditions (out unsigned long conditionsSize, [array, size_is (conditionsSize), retval] out IDHCPGroupCondition conditions); */
  NS_IMETHOD GetConditions(PRUint32 *conditionsSize, IDHCPGroupCondition * **conditions) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IDHCPGroupConfig; */
  NS_IMETHOD GetInternalAndReservedAttribute1IDHCPGroupConfig(PRUint32 *aInternalAndReservedAttribute1IDHCPGroupConfig) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IDHCPGroupConfig; */
  NS_IMETHOD GetInternalAndReservedAttribute2IDHCPGroupConfig(PRUint32 *aInternalAndReservedAttribute2IDHCPGroupConfig) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IDHCPGroupConfig; */
  NS_IMETHOD GetInternalAndReservedAttribute3IDHCPGroupConfig(PRUint32 *aInternalAndReservedAttribute3IDHCPGroupConfig) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IDHCPGroupConfig; */
  NS_IMETHOD GetInternalAndReservedAttribute4IDHCPGroupConfig(PRUint32 *aInternalAndReservedAttribute4IDHCPGroupConfig) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IDHCPGroupConfig; */
  NS_IMETHOD GetInternalAndReservedAttribute5IDHCPGroupConfig(PRUint32 *aInternalAndReservedAttribute5IDHCPGroupConfig) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IDHCPGroupConfig; */
  NS_IMETHOD GetInternalAndReservedAttribute6IDHCPGroupConfig(PRUint32 *aInternalAndReservedAttribute6IDHCPGroupConfig) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IDHCPGroupConfig; */
  NS_IMETHOD GetInternalAndReservedAttribute7IDHCPGroupConfig(PRUint32 *aInternalAndReservedAttribute7IDHCPGroupConfig) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IDHCPGroupConfig; */
  NS_IMETHOD GetInternalAndReservedAttribute8IDHCPGroupConfig(PRUint32 *aInternalAndReservedAttribute8IDHCPGroupConfig) = 0;

  /* void addCondition (in boolean inclusive, in DHCPGroupConditionType_T type, in wstring value, [retval] out IDHCPGroupCondition condition); */
  NS_IMETHOD AddCondition(PRBool inclusive, DHCPGroupConditionType_T type, const PRUnichar *value, IDHCPGroupCondition * *condition) = 0;

  /* void removeAllConditions (); */
  NS_IMETHOD RemoveAllConditions(void) = 0;

  /* void InternalAndReservedMethod1IDHCPGroupConfig (); */
  NS_IMETHOD InternalAndReservedMethod1IDHCPGroupConfig(void) = 0;

  /* void InternalAndReservedMethod2IDHCPGroupConfig (); */
  NS_IMETHOD InternalAndReservedMethod2IDHCPGroupConfig(void) = 0;

  /* void InternalAndReservedMethod3IDHCPGroupConfig (); */
  NS_IMETHOD InternalAndReservedMethod3IDHCPGroupConfig(void) = 0;

  /* void InternalAndReservedMethod4IDHCPGroupConfig (); */
  NS_IMETHOD InternalAndReservedMethod4IDHCPGroupConfig(void) = 0;

  /* void InternalAndReservedMethod5IDHCPGroupConfig (); */
  NS_IMETHOD InternalAndReservedMethod5IDHCPGroupConfig(void) = 0;

  /* void InternalAndReservedMethod6IDHCPGroupConfig (); */
  NS_IMETHOD InternalAndReservedMethod6IDHCPGroupConfig(void) = 0;

  /* void InternalAndReservedMethod7IDHCPGroupConfig (); */
  NS_IMETHOD InternalAndReservedMethod7IDHCPGroupConfig(void) = 0;

  /* void InternalAndReservedMethod8IDHCPGroupConfig (); */
  NS_IMETHOD InternalAndReservedMethod8IDHCPGroupConfig(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IDHCPGROUPCONFIG \
  NS_IMETHOD GetName(PRUnichar **aName) NS_OVERRIDE; \
  NS_IMETHOD SetName(const PRUnichar *aName) NS_OVERRIDE; \
  NS_IMETHOD GetConditions(PRUint32 *conditionsSize, IDHCPGroupCondition * **conditions) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IDHCPGroupConfig(PRUint32 *aInternalAndReservedAttribute1IDHCPGroupConfig) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IDHCPGroupConfig(PRUint32 *aInternalAndReservedAttribute2IDHCPGroupConfig) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IDHCPGroupConfig(PRUint32 *aInternalAndReservedAttribute3IDHCPGroupConfig) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IDHCPGroupConfig(PRUint32 *aInternalAndReservedAttribute4IDHCPGroupConfig) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IDHCPGroupConfig(PRUint32 *aInternalAndReservedAttribute5IDHCPGroupConfig) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IDHCPGroupConfig(PRUint32 *aInternalAndReservedAttribute6IDHCPGroupConfig) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IDHCPGroupConfig(PRUint32 *aInternalAndReservedAttribute7IDHCPGroupConfig) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IDHCPGroupConfig(PRUint32 *aInternalAndReservedAttribute8IDHCPGroupConfig) NS_OVERRIDE; \
  NS_IMETHOD AddCondition(PRBool inclusive, DHCPGroupConditionType_T type, const PRUnichar *value, IDHCPGroupCondition * *condition) NS_OVERRIDE; \
  NS_IMETHOD RemoveAllConditions(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IDHCPGroupConfig(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IDHCPGroupConfig(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IDHCPGroupConfig(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IDHCPGroupConfig(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod5IDHCPGroupConfig(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod6IDHCPGroupConfig(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod7IDHCPGroupConfig(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod8IDHCPGroupConfig(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IDHCPGROUPCONFIG(_to) \
  NS_IMETHOD GetName(PRUnichar **aName) { return _to GetName(aName); } \
  NS_IMETHOD SetName(const PRUnichar *aName) { return _to SetName(aName); } \
  NS_IMETHOD GetConditions(PRUint32 *conditionsSize, IDHCPGroupCondition * **conditions) { return _to GetConditions(conditionsSize, conditions); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IDHCPGroupConfig(PRUint32 *aInternalAndReservedAttribute1IDHCPGroupConfig) { return _to GetInternalAndReservedAttribute1IDHCPGroupConfig(aInternalAndReservedAttribute1IDHCPGroupConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IDHCPGroupConfig(PRUint32 *aInternalAndReservedAttribute2IDHCPGroupConfig) { return _to GetInternalAndReservedAttribute2IDHCPGroupConfig(aInternalAndReservedAttribute2IDHCPGroupConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IDHCPGroupConfig(PRUint32 *aInternalAndReservedAttribute3IDHCPGroupConfig) { return _to GetInternalAndReservedAttribute3IDHCPGroupConfig(aInternalAndReservedAttribute3IDHCPGroupConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IDHCPGroupConfig(PRUint32 *aInternalAndReservedAttribute4IDHCPGroupConfig) { return _to GetInternalAndReservedAttribute4IDHCPGroupConfig(aInternalAndReservedAttribute4IDHCPGroupConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IDHCPGroupConfig(PRUint32 *aInternalAndReservedAttribute5IDHCPGroupConfig) { return _to GetInternalAndReservedAttribute5IDHCPGroupConfig(aInternalAndReservedAttribute5IDHCPGroupConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IDHCPGroupConfig(PRUint32 *aInternalAndReservedAttribute6IDHCPGroupConfig) { return _to GetInternalAndReservedAttribute6IDHCPGroupConfig(aInternalAndReservedAttribute6IDHCPGroupConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IDHCPGroupConfig(PRUint32 *aInternalAndReservedAttribute7IDHCPGroupConfig) { return _to GetInternalAndReservedAttribute7IDHCPGroupConfig(aInternalAndReservedAttribute7IDHCPGroupConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IDHCPGroupConfig(PRUint32 *aInternalAndReservedAttribute8IDHCPGroupConfig) { return _to GetInternalAndReservedAttribute8IDHCPGroupConfig(aInternalAndReservedAttribute8IDHCPGroupConfig); } \
  NS_IMETHOD AddCondition(PRBool inclusive, DHCPGroupConditionType_T type, const PRUnichar *value, IDHCPGroupCondition * *condition) { return _to AddCondition(inclusive, type, value, condition); } \
  NS_IMETHOD RemoveAllConditions(void) { return _to RemoveAllConditions(); } \
  NS_IMETHOD InternalAndReservedMethod1IDHCPGroupConfig(void) { return _to InternalAndReservedMethod1IDHCPGroupConfig(); } \
  NS_IMETHOD InternalAndReservedMethod2IDHCPGroupConfig(void) { return _to InternalAndReservedMethod2IDHCPGroupConfig(); } \
  NS_IMETHOD InternalAndReservedMethod3IDHCPGroupConfig(void) { return _to InternalAndReservedMethod3IDHCPGroupConfig(); } \
  NS_IMETHOD InternalAndReservedMethod4IDHCPGroupConfig(void) { return _to InternalAndReservedMethod4IDHCPGroupConfig(); } \
  NS_IMETHOD InternalAndReservedMethod5IDHCPGroupConfig(void) { return _to InternalAndReservedMethod5IDHCPGroupConfig(); } \
  NS_IMETHOD InternalAndReservedMethod6IDHCPGroupConfig(void) { return _to InternalAndReservedMethod6IDHCPGroupConfig(); } \
  NS_IMETHOD InternalAndReservedMethod7IDHCPGroupConfig(void) { return _to InternalAndReservedMethod7IDHCPGroupConfig(); } \
  NS_IMETHOD InternalAndReservedMethod8IDHCPGroupConfig(void) { return _to InternalAndReservedMethod8IDHCPGroupConfig(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IDHCPGROUPCONFIG(_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 GetConditions(PRUint32 *conditionsSize, IDHCPGroupCondition * **conditions) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetConditions(conditionsSize, conditions); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IDHCPGroupConfig(PRUint32 *aInternalAndReservedAttribute1IDHCPGroupConfig) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IDHCPGroupConfig(aInternalAndReservedAttribute1IDHCPGroupConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IDHCPGroupConfig(PRUint32 *aInternalAndReservedAttribute2IDHCPGroupConfig) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IDHCPGroupConfig(aInternalAndReservedAttribute2IDHCPGroupConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IDHCPGroupConfig(PRUint32 *aInternalAndReservedAttribute3IDHCPGroupConfig) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IDHCPGroupConfig(aInternalAndReservedAttribute3IDHCPGroupConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IDHCPGroupConfig(PRUint32 *aInternalAndReservedAttribute4IDHCPGroupConfig) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IDHCPGroupConfig(aInternalAndReservedAttribute4IDHCPGroupConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IDHCPGroupConfig(PRUint32 *aInternalAndReservedAttribute5IDHCPGroupConfig) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IDHCPGroupConfig(aInternalAndReservedAttribute5IDHCPGroupConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IDHCPGroupConfig(PRUint32 *aInternalAndReservedAttribute6IDHCPGroupConfig) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IDHCPGroupConfig(aInternalAndReservedAttribute6IDHCPGroupConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IDHCPGroupConfig(PRUint32 *aInternalAndReservedAttribute7IDHCPGroupConfig) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IDHCPGroupConfig(aInternalAndReservedAttribute7IDHCPGroupConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IDHCPGroupConfig(PRUint32 *aInternalAndReservedAttribute8IDHCPGroupConfig) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IDHCPGroupConfig(aInternalAndReservedAttribute8IDHCPGroupConfig); } \
  NS_IMETHOD AddCondition(PRBool inclusive, DHCPGroupConditionType_T type, const PRUnichar *value, IDHCPGroupCondition * *condition) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddCondition(inclusive, type, value, condition); } \
  NS_IMETHOD RemoveAllConditions(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveAllConditions(); } \
  NS_IMETHOD InternalAndReservedMethod1IDHCPGroupConfig(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IDHCPGroupConfig(); } \
  NS_IMETHOD InternalAndReservedMethod2IDHCPGroupConfig(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IDHCPGroupConfig(); } \
  NS_IMETHOD InternalAndReservedMethod3IDHCPGroupConfig(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IDHCPGroupConfig(); } \
  NS_IMETHOD InternalAndReservedMethod4IDHCPGroupConfig(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IDHCPGroupConfig(); } \
  NS_IMETHOD InternalAndReservedMethod5IDHCPGroupConfig(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod5IDHCPGroupConfig(); } \
  NS_IMETHOD InternalAndReservedMethod6IDHCPGroupConfig(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod6IDHCPGroupConfig(); } \
  NS_IMETHOD InternalAndReservedMethod7IDHCPGroupConfig(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod7IDHCPGroupConfig(); } \
  NS_IMETHOD InternalAndReservedMethod8IDHCPGroupConfig(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod8IDHCPGroupConfig(); } 

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

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IDHCPGroupConfig;

/* starting interface:    IDHCPIndividualConfig */
#define IDHCPINDIVIDUALCONFIG_IID_STR "c40c2b86-73a5-46cc-8227-93fe57d006a6"

#define IDHCPINDIVIDUALCONFIG_IID \
  {0xc40c2b86, 0x73a5, 0x46cc, \
    { 0x82, 0x27, 0x93, 0xfe, 0x57, 0xd0, 0x06, 0xa6 }}

class NS_NO_VTABLE IDHCPIndividualConfig : public IDHCPConfig {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IDHCPINDIVIDUALCONFIG_IID)

  /* readonly attribute wstring MACAddress; */
  NS_IMETHOD GetMACAddress(PRUnichar **aMACAddress) = 0;

  /* readonly attribute wstring machineId; */
  NS_IMETHOD GetMachineId(PRUnichar **aMachineId) = 0;

  /* readonly attribute unsigned long slot; */
  NS_IMETHOD GetSlot(PRUint32 *aSlot) = 0;

  /* attribute wstring fixedAddress; */
  NS_IMETHOD GetFixedAddress(PRUnichar **aFixedAddress) = 0;
  NS_IMETHOD SetFixedAddress(const PRUnichar *aFixedAddress) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IDHCPIndividualConfig; */
  NS_IMETHOD GetInternalAndReservedAttribute1IDHCPIndividualConfig(PRUint32 *aInternalAndReservedAttribute1IDHCPIndividualConfig) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IDHCPIndividualConfig; */
  NS_IMETHOD GetInternalAndReservedAttribute2IDHCPIndividualConfig(PRUint32 *aInternalAndReservedAttribute2IDHCPIndividualConfig) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IDHCPIndividualConfig; */
  NS_IMETHOD GetInternalAndReservedAttribute3IDHCPIndividualConfig(PRUint32 *aInternalAndReservedAttribute3IDHCPIndividualConfig) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IDHCPIndividualConfig; */
  NS_IMETHOD GetInternalAndReservedAttribute4IDHCPIndividualConfig(PRUint32 *aInternalAndReservedAttribute4IDHCPIndividualConfig) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IDHCPIndividualConfig; */
  NS_IMETHOD GetInternalAndReservedAttribute5IDHCPIndividualConfig(PRUint32 *aInternalAndReservedAttribute5IDHCPIndividualConfig) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IDHCPIndividualConfig; */
  NS_IMETHOD GetInternalAndReservedAttribute6IDHCPIndividualConfig(PRUint32 *aInternalAndReservedAttribute6IDHCPIndividualConfig) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IDHCPIndividualConfig; */
  NS_IMETHOD GetInternalAndReservedAttribute7IDHCPIndividualConfig(PRUint32 *aInternalAndReservedAttribute7IDHCPIndividualConfig) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IDHCPIndividualConfig; */
  NS_IMETHOD GetInternalAndReservedAttribute8IDHCPIndividualConfig(PRUint32 *aInternalAndReservedAttribute8IDHCPIndividualConfig) = 0;

  /* void InternalAndReservedMethod1IDHCPIndividualConfig (); */
  NS_IMETHOD InternalAndReservedMethod1IDHCPIndividualConfig(void) = 0;

  /* void InternalAndReservedMethod2IDHCPIndividualConfig (); */
  NS_IMETHOD InternalAndReservedMethod2IDHCPIndividualConfig(void) = 0;

  /* void InternalAndReservedMethod3IDHCPIndividualConfig (); */
  NS_IMETHOD InternalAndReservedMethod3IDHCPIndividualConfig(void) = 0;

  /* void InternalAndReservedMethod4IDHCPIndividualConfig (); */
  NS_IMETHOD InternalAndReservedMethod4IDHCPIndividualConfig(void) = 0;

  /* void InternalAndReservedMethod5IDHCPIndividualConfig (); */
  NS_IMETHOD InternalAndReservedMethod5IDHCPIndividualConfig(void) = 0;

  /* void InternalAndReservedMethod6IDHCPIndividualConfig (); */
  NS_IMETHOD InternalAndReservedMethod6IDHCPIndividualConfig(void) = 0;

  /* void InternalAndReservedMethod7IDHCPIndividualConfig (); */
  NS_IMETHOD InternalAndReservedMethod7IDHCPIndividualConfig(void) = 0;

  /* void InternalAndReservedMethod8IDHCPIndividualConfig (); */
  NS_IMETHOD InternalAndReservedMethod8IDHCPIndividualConfig(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IDHCPINDIVIDUALCONFIG \
  NS_IMETHOD GetMACAddress(PRUnichar **aMACAddress) NS_OVERRIDE; \
  NS_IMETHOD GetMachineId(PRUnichar **aMachineId) NS_OVERRIDE; \
  NS_IMETHOD GetSlot(PRUint32 *aSlot) NS_OVERRIDE; \
  NS_IMETHOD GetFixedAddress(PRUnichar **aFixedAddress) NS_OVERRIDE; \
  NS_IMETHOD SetFixedAddress(const PRUnichar *aFixedAddress) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IDHCPIndividualConfig(PRUint32 *aInternalAndReservedAttribute1IDHCPIndividualConfig) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IDHCPIndividualConfig(PRUint32 *aInternalAndReservedAttribute2IDHCPIndividualConfig) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IDHCPIndividualConfig(PRUint32 *aInternalAndReservedAttribute3IDHCPIndividualConfig) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IDHCPIndividualConfig(PRUint32 *aInternalAndReservedAttribute4IDHCPIndividualConfig) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IDHCPIndividualConfig(PRUint32 *aInternalAndReservedAttribute5IDHCPIndividualConfig) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IDHCPIndividualConfig(PRUint32 *aInternalAndReservedAttribute6IDHCPIndividualConfig) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IDHCPIndividualConfig(PRUint32 *aInternalAndReservedAttribute7IDHCPIndividualConfig) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IDHCPIndividualConfig(PRUint32 *aInternalAndReservedAttribute8IDHCPIndividualConfig) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IDHCPIndividualConfig(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IDHCPIndividualConfig(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IDHCPIndividualConfig(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IDHCPIndividualConfig(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod5IDHCPIndividualConfig(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod6IDHCPIndividualConfig(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod7IDHCPIndividualConfig(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod8IDHCPIndividualConfig(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IDHCPINDIVIDUALCONFIG(_to) \
  NS_IMETHOD GetMACAddress(PRUnichar **aMACAddress) { return _to GetMACAddress(aMACAddress); } \
  NS_IMETHOD GetMachineId(PRUnichar **aMachineId) { return _to GetMachineId(aMachineId); } \
  NS_IMETHOD GetSlot(PRUint32 *aSlot) { return _to GetSlot(aSlot); } \
  NS_IMETHOD GetFixedAddress(PRUnichar **aFixedAddress) { return _to GetFixedAddress(aFixedAddress); } \
  NS_IMETHOD SetFixedAddress(const PRUnichar *aFixedAddress) { return _to SetFixedAddress(aFixedAddress); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IDHCPIndividualConfig(PRUint32 *aInternalAndReservedAttribute1IDHCPIndividualConfig) { return _to GetInternalAndReservedAttribute1IDHCPIndividualConfig(aInternalAndReservedAttribute1IDHCPIndividualConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IDHCPIndividualConfig(PRUint32 *aInternalAndReservedAttribute2IDHCPIndividualConfig) { return _to GetInternalAndReservedAttribute2IDHCPIndividualConfig(aInternalAndReservedAttribute2IDHCPIndividualConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IDHCPIndividualConfig(PRUint32 *aInternalAndReservedAttribute3IDHCPIndividualConfig) { return _to GetInternalAndReservedAttribute3IDHCPIndividualConfig(aInternalAndReservedAttribute3IDHCPIndividualConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IDHCPIndividualConfig(PRUint32 *aInternalAndReservedAttribute4IDHCPIndividualConfig) { return _to GetInternalAndReservedAttribute4IDHCPIndividualConfig(aInternalAndReservedAttribute4IDHCPIndividualConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IDHCPIndividualConfig(PRUint32 *aInternalAndReservedAttribute5IDHCPIndividualConfig) { return _to GetInternalAndReservedAttribute5IDHCPIndividualConfig(aInternalAndReservedAttribute5IDHCPIndividualConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IDHCPIndividualConfig(PRUint32 *aInternalAndReservedAttribute6IDHCPIndividualConfig) { return _to GetInternalAndReservedAttribute6IDHCPIndividualConfig(aInternalAndReservedAttribute6IDHCPIndividualConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IDHCPIndividualConfig(PRUint32 *aInternalAndReservedAttribute7IDHCPIndividualConfig) { return _to GetInternalAndReservedAttribute7IDHCPIndividualConfig(aInternalAndReservedAttribute7IDHCPIndividualConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IDHCPIndividualConfig(PRUint32 *aInternalAndReservedAttribute8IDHCPIndividualConfig) { return _to GetInternalAndReservedAttribute8IDHCPIndividualConfig(aInternalAndReservedAttribute8IDHCPIndividualConfig); } \
  NS_IMETHOD InternalAndReservedMethod1IDHCPIndividualConfig(void) { return _to InternalAndReservedMethod1IDHCPIndividualConfig(); } \
  NS_IMETHOD InternalAndReservedMethod2IDHCPIndividualConfig(void) { return _to InternalAndReservedMethod2IDHCPIndividualConfig(); } \
  NS_IMETHOD InternalAndReservedMethod3IDHCPIndividualConfig(void) { return _to InternalAndReservedMethod3IDHCPIndividualConfig(); } \
  NS_IMETHOD InternalAndReservedMethod4IDHCPIndividualConfig(void) { return _to InternalAndReservedMethod4IDHCPIndividualConfig(); } \
  NS_IMETHOD InternalAndReservedMethod5IDHCPIndividualConfig(void) { return _to InternalAndReservedMethod5IDHCPIndividualConfig(); } \
  NS_IMETHOD InternalAndReservedMethod6IDHCPIndividualConfig(void) { return _to InternalAndReservedMethod6IDHCPIndividualConfig(); } \
  NS_IMETHOD InternalAndReservedMethod7IDHCPIndividualConfig(void) { return _to InternalAndReservedMethod7IDHCPIndividualConfig(); } \
  NS_IMETHOD InternalAndReservedMethod8IDHCPIndividualConfig(void) { return _to InternalAndReservedMethod8IDHCPIndividualConfig(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IDHCPINDIVIDUALCONFIG(_to) \
  NS_IMETHOD GetMACAddress(PRUnichar **aMACAddress) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMACAddress(aMACAddress); } \
  NS_IMETHOD GetMachineId(PRUnichar **aMachineId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMachineId(aMachineId); } \
  NS_IMETHOD GetSlot(PRUint32 *aSlot) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSlot(aSlot); } \
  NS_IMETHOD GetFixedAddress(PRUnichar **aFixedAddress) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFixedAddress(aFixedAddress); } \
  NS_IMETHOD SetFixedAddress(const PRUnichar *aFixedAddress) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFixedAddress(aFixedAddress); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IDHCPIndividualConfig(PRUint32 *aInternalAndReservedAttribute1IDHCPIndividualConfig) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IDHCPIndividualConfig(aInternalAndReservedAttribute1IDHCPIndividualConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IDHCPIndividualConfig(PRUint32 *aInternalAndReservedAttribute2IDHCPIndividualConfig) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IDHCPIndividualConfig(aInternalAndReservedAttribute2IDHCPIndividualConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IDHCPIndividualConfig(PRUint32 *aInternalAndReservedAttribute3IDHCPIndividualConfig) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IDHCPIndividualConfig(aInternalAndReservedAttribute3IDHCPIndividualConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IDHCPIndividualConfig(PRUint32 *aInternalAndReservedAttribute4IDHCPIndividualConfig) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IDHCPIndividualConfig(aInternalAndReservedAttribute4IDHCPIndividualConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IDHCPIndividualConfig(PRUint32 *aInternalAndReservedAttribute5IDHCPIndividualConfig) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IDHCPIndividualConfig(aInternalAndReservedAttribute5IDHCPIndividualConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IDHCPIndividualConfig(PRUint32 *aInternalAndReservedAttribute6IDHCPIndividualConfig) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IDHCPIndividualConfig(aInternalAndReservedAttribute6IDHCPIndividualConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IDHCPIndividualConfig(PRUint32 *aInternalAndReservedAttribute7IDHCPIndividualConfig) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IDHCPIndividualConfig(aInternalAndReservedAttribute7IDHCPIndividualConfig); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IDHCPIndividualConfig(PRUint32 *aInternalAndReservedAttribute8IDHCPIndividualConfig) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IDHCPIndividualConfig(aInternalAndReservedAttribute8IDHCPIndividualConfig); } \
  NS_IMETHOD InternalAndReservedMethod1IDHCPIndividualConfig(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IDHCPIndividualConfig(); } \
  NS_IMETHOD InternalAndReservedMethod2IDHCPIndividualConfig(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IDHCPIndividualConfig(); } \
  NS_IMETHOD InternalAndReservedMethod3IDHCPIndividualConfig(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IDHCPIndividualConfig(); } \
  NS_IMETHOD InternalAndReservedMethod4IDHCPIndividualConfig(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IDHCPIndividualConfig(); } \
  NS_IMETHOD InternalAndReservedMethod5IDHCPIndividualConfig(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod5IDHCPIndividualConfig(); } \
  NS_IMETHOD InternalAndReservedMethod6IDHCPIndividualConfig(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod6IDHCPIndividualConfig(); } \
  NS_IMETHOD InternalAndReservedMethod7IDHCPIndividualConfig(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod7IDHCPIndividualConfig(); } \
  NS_IMETHOD InternalAndReservedMethod8IDHCPIndividualConfig(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod8IDHCPIndividualConfig(); } 

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

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IDHCPIndividualConfig;

/* starting interface:    IVirtualBox */
#define IVIRTUALBOX_IID_STR "2ce10519-3c09-45d8-a12d-e887786146b7"

#define IVIRTUALBOX_IID \
  {0x2ce10519, 0x3c09, 0x45d8, \
    { 0xa1, 0x2d, 0xe8, 0x87, 0x78, 0x61, 0x46, 0xb7 }}

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 getGuestOSFamilies (out unsigned long guestOSFamiliesSize, [array, size_is (guestOSFamiliesSize), retval] out wstring guestOSFamilies); */
  NS_IMETHOD GetGuestOSFamilies(PRUint32 *guestOSFamiliesSize, PRUnichar ***guestOSFamilies) = 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 getHostOnlyNetworks (out unsigned long hostOnlyNetworksSize, [array, size_is (hostOnlyNetworksSize), retval] out IHostOnlyNetwork hostOnlyNetworks); */
  NS_IMETHOD GetHostOnlyNetworks(PRUint32 *hostOnlyNetworksSize, IHostOnlyNetwork * **hostOnlyNetworks) = 0;

  /* void getGenericNetworkDrivers (out unsigned long genericNetworkDriversSize, [array, size_is (genericNetworkDriversSize), retval] out wstring genericNetworkDrivers); */
  NS_IMETHOD GetGenericNetworkDrivers(PRUint32 *genericNetworkDriversSize, PRUnichar ***genericNetworkDrivers) = 0;

  /* void getCloudNetworks (out unsigned long cloudNetworksSize, [array, size_is (cloudNetworksSize), retval] out ICloudNetwork cloudNetworks); */
  NS_IMETHOD GetCloudNetworks(PRUint32 *cloudNetworksSize, ICloudNetwork * **cloudNetworks) = 0;

  /* readonly attribute ICloudProviderManager cloudProviderManager; */
  NS_IMETHOD GetCloudProviderManager(ICloudProviderManager * *aCloudProviderManager) = 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 getPlatformProperties (in PlatformArchitecture_T architecture, [retval] out IPlatformProperties properties); */
  NS_IMETHOD GetPlatformProperties(PlatformArchitecture_T architecture, IPlatformProperties * *properties) = 0;

  /* void createMachine (in wstring settingsFile, in wstring name, in PlatformArchitecture_T platform, in unsigned long groupsSize, [array, size_is (groupsSize)] in wstring groups, in wstring osTypeId, in wstring flags, in wstring cipher, in wstring passwordId, in wstring password, [retval] out IMachine machine); */
  NS_IMETHOD CreateMachine(const PRUnichar *settingsFile, const PRUnichar *name, PlatformArchitecture_T platform, PRUint32 groupsSize, const PRUnichar **groups, const PRUnichar *osTypeId, const PRUnichar *flags, const PRUnichar *cipher, const PRUnichar *passwordId, const PRUnichar *password, IMachine * *machine) = 0;

  /* void openMachine (in wstring settingsFile, in wstring password, [retval] out IMachine machine); */
  NS_IMETHOD OpenMachine(const PRUnichar *settingsFile, const PRUnichar *password, 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 MachineState_T states); */
  NS_IMETHOD GetMachineStates(PRUint32 machinesSize, IMachine * *machines, PRUint32 *statesSize, MachineState_T **states) = 0;

  /* void createAppliance ([retval] out IAppliance appliance); */
  NS_IMETHOD CreateAppliance(IAppliance * *appliance) = 0;

  /* void createUnattendedInstaller ([retval] out IUnattended unattended); */
  NS_IMETHOD CreateUnattendedInstaller(IUnattended * *unattended) = 0;

  /* void createMedium (in wstring format, in wstring location, in AccessMode_T accessMode, in DeviceType_T aDeviceTypeType, [retval] out IMedium medium); */
  NS_IMETHOD CreateMedium(const PRUnichar *format, const PRUnichar *location, AccessMode_T accessMode, DeviceType_T aDeviceTypeType, IMedium * *medium) = 0;

  /* void openMedium (in wstring location, in DeviceType_T deviceType, in AccessMode_T accessMode, in boolean forceNewUuid, [retval] out IMedium medium); */
  NS_IMETHOD OpenMedium(const PRUnichar *location, DeviceType_T deviceType, AccessMode_T 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 getGuestOSSubtypesByFamilyId (in wstring family, out unsigned long OSsubtypesSize, [array, size_is (OSsubtypesSize), retval] out wstring OSsubtypes); */
  NS_IMETHOD GetGuestOSSubtypesByFamilyId(const PRUnichar *family, PRUint32 *OSsubtypesSize, PRUnichar ***OSsubtypes) = 0;

  /* void getGuestOSDescsBySubtype (in wstring OSSubtype, out unsigned long GuestOSDescsSize, [array, size_is (GuestOSDescsSize), retval] out wstring GuestOSDescs); */
  NS_IMETHOD GetGuestOSDescsBySubtype(const PRUnichar *OSSubtype, PRUint32 *GuestOSDescsSize, PRUnichar ***GuestOSDescs) = 0;

  /* void createSharedFolder (in wstring name, in wstring hostPath, in boolean writable, in boolean automount, in wstring autoMountPoint); */
  NS_IMETHOD CreateSharedFolder(const PRUnichar *name, const PRUnichar *hostPath, PRBool writable, PRBool automount, const PRUnichar *autoMountPoint) = 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 createHostOnlyNetwork (in wstring networkName, [retval] out IHostOnlyNetwork network); */
  NS_IMETHOD CreateHostOnlyNetwork(const PRUnichar *networkName, IHostOnlyNetwork * *network) = 0;

  /* void findHostOnlyNetworkByName (in wstring networkName, [retval] out IHostOnlyNetwork network); */
  NS_IMETHOD FindHostOnlyNetworkByName(const PRUnichar *networkName, IHostOnlyNetwork * *network) = 0;

  /* void findHostOnlyNetworkById (in wstring id, [retval] out IHostOnlyNetwork network); */
  NS_IMETHOD FindHostOnlyNetworkById(const PRUnichar *id, IHostOnlyNetwork * *network) = 0;

  /* void removeHostOnlyNetwork (in IHostOnlyNetwork network); */
  NS_IMETHOD RemoveHostOnlyNetwork(IHostOnlyNetwork * network) = 0;

  /* void createCloudNetwork (in wstring networkName, [retval] out ICloudNetwork network); */
  NS_IMETHOD CreateCloudNetwork(const PRUnichar *networkName, ICloudNetwork * *network) = 0;

  /* void findCloudNetworkByName (in wstring networkName, [retval] out ICloudNetwork network); */
  NS_IMETHOD FindCloudNetworkByName(const PRUnichar *networkName, ICloudNetwork * *network) = 0;

  /* void removeCloudNetwork (in ICloudNetwork network); */
  NS_IMETHOD RemoveCloudNetwork(ICloudNetwork * network) = 0;

  /* void checkFirmwarePresent (in PlatformArchitecture_T platformArchitecture, in FirmwareType_T firmwareType, in wstring version, out wstring url, out wstring file, [retval] out boolean result); */
  NS_IMETHOD CheckFirmwarePresent(PlatformArchitecture_T platformArchitecture, FirmwareType_T firmwareType, const PRUnichar *version, PRUnichar **url, PRUnichar **file, PRBool *result) = 0;

  /* void findProgressById (in wstring id, [retval] out IProgress progressObject); */
  NS_IMETHOD FindProgressById(const PRUnichar *id, IProgress * *progressObject) = 0;

  /* void getTrackedObject (in wstring trObjId, out nsISupports pIface, out TrackedObjectState_T state, out long long creationTime, out long long deletionTime); */
  NS_IMETHOD GetTrackedObject(const PRUnichar *trObjId, nsISupports * *pIface, TrackedObjectState_T *state, PRInt64 *creationTime, PRInt64 *deletionTime) = 0;

  /* void getTrackedObjectIds (in wstring name, out unsigned long objIdsListSize, [array, size_is (objIdsListSize), retval] out wstring objIdsList); */
  NS_IMETHOD GetTrackedObjectIds(const PRUnichar *name, PRUint32 *objIdsListSize, PRUnichar ***objIdsList) = 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;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IVIRTUALBOX \
  NS_IMETHOD GetVersion(PRUnichar **aVersion) NS_OVERRIDE; \
  NS_IMETHOD GetVersionNormalized(PRUnichar **aVersionNormalized) NS_OVERRIDE; \
  NS_IMETHOD GetRevision(PRUint32 *aRevision) NS_OVERRIDE; \
  NS_IMETHOD GetPackageType(PRUnichar **aPackageType) NS_OVERRIDE; \
  NS_IMETHOD GetAPIVersion(PRUnichar **aAPIVersion) NS_OVERRIDE; \
  NS_IMETHOD GetAPIRevision(PRInt64 *aAPIRevision) NS_OVERRIDE; \
  NS_IMETHOD GetHomeFolder(PRUnichar **aHomeFolder) NS_OVERRIDE; \
  NS_IMETHOD GetSettingsFilePath(PRUnichar **aSettingsFilePath) NS_OVERRIDE; \
  NS_IMETHOD GetHost(IHost * *aHost) NS_OVERRIDE; \
  NS_IMETHOD GetSystemProperties(ISystemProperties * *aSystemProperties) NS_OVERRIDE; \
  NS_IMETHOD GetMachines(PRUint32 *machinesSize, IMachine * **machines) NS_OVERRIDE; \
  NS_IMETHOD GetMachineGroups(PRUint32 *machineGroupsSize, PRUnichar ***machineGroups) NS_OVERRIDE; \
  NS_IMETHOD GetHardDisks(PRUint32 *hardDisksSize, IMedium * **hardDisks) NS_OVERRIDE; \
  NS_IMETHOD GetDVDImages(PRUint32 *DVDImagesSize, IMedium * **DVDImages) NS_OVERRIDE; \
  NS_IMETHOD GetFloppyImages(PRUint32 *floppyImagesSize, IMedium * **floppyImages) NS_OVERRIDE; \
  NS_IMETHOD GetProgressOperations(PRUint32 *progressOperationsSize, IProgress * **progressOperations) NS_OVERRIDE; \
  NS_IMETHOD GetGuestOSTypes(PRUint32 *guestOSTypesSize, IGuestOSType * **guestOSTypes) NS_OVERRIDE; \
  NS_IMETHOD GetGuestOSFamilies(PRUint32 *guestOSFamiliesSize, PRUnichar ***guestOSFamilies) NS_OVERRIDE; \
  NS_IMETHOD GetSharedFolders(PRUint32 *sharedFoldersSize, ISharedFolder * **sharedFolders) NS_OVERRIDE; \
  NS_IMETHOD GetPerformanceCollector(IPerformanceCollector * *aPerformanceCollector) NS_OVERRIDE; \
  NS_IMETHOD GetDHCPServers(PRUint32 *DHCPServersSize, IDHCPServer * **DHCPServers) NS_OVERRIDE; \
  NS_IMETHOD GetNATNetworks(PRUint32 *NATNetworksSize, INATNetwork * **NATNetworks) NS_OVERRIDE; \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) NS_OVERRIDE; \
  NS_IMETHOD GetExtensionPackManager(IExtPackManager * *aExtensionPackManager) NS_OVERRIDE; \
  NS_IMETHOD GetInternalNetworks(PRUint32 *internalNetworksSize, PRUnichar ***internalNetworks) NS_OVERRIDE; \
  NS_IMETHOD GetHostOnlyNetworks(PRUint32 *hostOnlyNetworksSize, IHostOnlyNetwork * **hostOnlyNetworks) NS_OVERRIDE; \
  NS_IMETHOD GetGenericNetworkDrivers(PRUint32 *genericNetworkDriversSize, PRUnichar ***genericNetworkDrivers) NS_OVERRIDE; \
  NS_IMETHOD GetCloudNetworks(PRUint32 *cloudNetworksSize, ICloudNetwork * **cloudNetworks) NS_OVERRIDE; \
  NS_IMETHOD GetCloudProviderManager(ICloudProviderManager * *aCloudProviderManager) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IVirtualBox(PRUint32 *aInternalAndReservedAttribute1IVirtualBox) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IVirtualBox(PRUint32 *aInternalAndReservedAttribute2IVirtualBox) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IVirtualBox(PRUint32 *aInternalAndReservedAttribute3IVirtualBox) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IVirtualBox(PRUint32 *aInternalAndReservedAttribute4IVirtualBox) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IVirtualBox(PRUint32 *aInternalAndReservedAttribute5IVirtualBox) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IVirtualBox(PRUint32 *aInternalAndReservedAttribute6IVirtualBox) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IVirtualBox(PRUint32 *aInternalAndReservedAttribute7IVirtualBox) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IVirtualBox(PRUint32 *aInternalAndReservedAttribute8IVirtualBox) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute9IVirtualBox(PRUint32 *aInternalAndReservedAttribute9IVirtualBox) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute10IVirtualBox(PRUint32 *aInternalAndReservedAttribute10IVirtualBox) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute11IVirtualBox(PRUint32 *aInternalAndReservedAttribute11IVirtualBox) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute12IVirtualBox(PRUint32 *aInternalAndReservedAttribute12IVirtualBox) NS_OVERRIDE; \
  NS_IMETHOD ComposeMachineFilename(const PRUnichar *name, const PRUnichar *group, const PRUnichar *createFlags, const PRUnichar *baseFolder, PRUnichar **file) NS_OVERRIDE; \
  NS_IMETHOD GetPlatformProperties(PlatformArchitecture_T architecture, IPlatformProperties * *properties) NS_OVERRIDE; \
  NS_IMETHOD CreateMachine(const PRUnichar *settingsFile, const PRUnichar *name, PlatformArchitecture_T platform, PRUint32 groupsSize, const PRUnichar **groups, const PRUnichar *osTypeId, const PRUnichar *flags, const PRUnichar *cipher, const PRUnichar *passwordId, const PRUnichar *password, IMachine * *machine) NS_OVERRIDE; \
  NS_IMETHOD OpenMachine(const PRUnichar *settingsFile, const PRUnichar *password, IMachine * *machine) NS_OVERRIDE; \
  NS_IMETHOD RegisterMachine(IMachine * machine) NS_OVERRIDE; \
  NS_IMETHOD FindMachine(const PRUnichar *nameOrId, IMachine * *machine) NS_OVERRIDE; \
  NS_IMETHOD GetMachinesByGroups(PRUint32 groupsSize, const PRUnichar **groups, PRUint32 *machinesSize, IMachine * **machines) NS_OVERRIDE; \
  NS_IMETHOD GetMachineStates(PRUint32 machinesSize, IMachine * *machines, PRUint32 *statesSize, MachineState_T **states) NS_OVERRIDE; \
  NS_IMETHOD CreateAppliance(IAppliance * *appliance) NS_OVERRIDE; \
  NS_IMETHOD CreateUnattendedInstaller(IUnattended * *unattended) NS_OVERRIDE; \
  NS_IMETHOD CreateMedium(const PRUnichar *format, const PRUnichar *location, AccessMode_T accessMode, DeviceType_T aDeviceTypeType, IMedium * *medium) NS_OVERRIDE; \
  NS_IMETHOD OpenMedium(const PRUnichar *location, DeviceType_T deviceType, AccessMode_T accessMode, PRBool forceNewUuid, IMedium * *medium) NS_OVERRIDE; \
  NS_IMETHOD GetGuestOSType(const PRUnichar *id, IGuestOSType * *type) NS_OVERRIDE; \
  NS_IMETHOD GetGuestOSSubtypesByFamilyId(const PRUnichar *family, PRUint32 *OSsubtypesSize, PRUnichar ***OSsubtypes) NS_OVERRIDE; \
  NS_IMETHOD GetGuestOSDescsBySubtype(const PRUnichar *OSSubtype, PRUint32 *GuestOSDescsSize, PRUnichar ***GuestOSDescs) NS_OVERRIDE; \
  NS_IMETHOD CreateSharedFolder(const PRUnichar *name, const PRUnichar *hostPath, PRBool writable, PRBool automount, const PRUnichar *autoMountPoint) NS_OVERRIDE; \
  NS_IMETHOD RemoveSharedFolder(const PRUnichar *name) NS_OVERRIDE; \
  NS_IMETHOD GetExtraDataKeys(PRUint32 *keysSize, PRUnichar ***keys) NS_OVERRIDE; \
  NS_IMETHOD GetExtraData(const PRUnichar *key, PRUnichar **value) NS_OVERRIDE; \
  NS_IMETHOD SetExtraData(const PRUnichar *key, const PRUnichar *value) NS_OVERRIDE; \
  NS_IMETHOD SetSettingsSecret(const PRUnichar *password) NS_OVERRIDE; \
  NS_IMETHOD CreateDHCPServer(const PRUnichar *name, IDHCPServer * *server) NS_OVERRIDE; \
  NS_IMETHOD FindDHCPServerByNetworkName(const PRUnichar *name, IDHCPServer * *server) NS_OVERRIDE; \
  NS_IMETHOD RemoveDHCPServer(IDHCPServer * server) NS_OVERRIDE; \
  NS_IMETHOD CreateNATNetwork(const PRUnichar *networkName, INATNetwork * *network) NS_OVERRIDE; \
  NS_IMETHOD FindNATNetworkByName(const PRUnichar *networkName, INATNetwork * *network) NS_OVERRIDE; \
  NS_IMETHOD RemoveNATNetwork(INATNetwork * network) NS_OVERRIDE; \
  NS_IMETHOD CreateHostOnlyNetwork(const PRUnichar *networkName, IHostOnlyNetwork * *network) NS_OVERRIDE; \
  NS_IMETHOD FindHostOnlyNetworkByName(const PRUnichar *networkName, IHostOnlyNetwork * *network) NS_OVERRIDE; \
  NS_IMETHOD FindHostOnlyNetworkById(const PRUnichar *id, IHostOnlyNetwork * *network) NS_OVERRIDE; \
  NS_IMETHOD RemoveHostOnlyNetwork(IHostOnlyNetwork * network) NS_OVERRIDE; \
  NS_IMETHOD CreateCloudNetwork(const PRUnichar *networkName, ICloudNetwork * *network) NS_OVERRIDE; \
  NS_IMETHOD FindCloudNetworkByName(const PRUnichar *networkName, ICloudNetwork * *network) NS_OVERRIDE; \
  NS_IMETHOD RemoveCloudNetwork(ICloudNetwork * network) NS_OVERRIDE; \
  NS_IMETHOD CheckFirmwarePresent(PlatformArchitecture_T platformArchitecture, FirmwareType_T firmwareType, const PRUnichar *version, PRUnichar **url, PRUnichar **file, PRBool *result) NS_OVERRIDE; \
  NS_IMETHOD FindProgressById(const PRUnichar *id, IProgress * *progressObject) NS_OVERRIDE; \
  NS_IMETHOD GetTrackedObject(const PRUnichar *trObjId, nsISupports * *pIface, TrackedObjectState_T *state, PRInt64 *creationTime, PRInt64 *deletionTime) NS_OVERRIDE; \
  NS_IMETHOD GetTrackedObjectIds(const PRUnichar *name, PRUint32 *objIdsListSize, PRUnichar ***objIdsList) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IVirtualBox(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IVirtualBox(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IVirtualBox(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IVirtualBox(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod5IVirtualBox(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod6IVirtualBox(void) NS_OVERRIDE; 

/* 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 GetGuestOSFamilies(PRUint32 *guestOSFamiliesSize, PRUnichar ***guestOSFamilies) { return _to GetGuestOSFamilies(guestOSFamiliesSize, guestOSFamilies); } \
  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 GetHostOnlyNetworks(PRUint32 *hostOnlyNetworksSize, IHostOnlyNetwork * **hostOnlyNetworks) { return _to GetHostOnlyNetworks(hostOnlyNetworksSize, hostOnlyNetworks); } \
  NS_IMETHOD GetGenericNetworkDrivers(PRUint32 *genericNetworkDriversSize, PRUnichar ***genericNetworkDrivers) { return _to GetGenericNetworkDrivers(genericNetworkDriversSize, genericNetworkDrivers); } \
  NS_IMETHOD GetCloudNetworks(PRUint32 *cloudNetworksSize, ICloudNetwork * **cloudNetworks) { return _to GetCloudNetworks(cloudNetworksSize, cloudNetworks); } \
  NS_IMETHOD GetCloudProviderManager(ICloudProviderManager * *aCloudProviderManager) { return _to GetCloudProviderManager(aCloudProviderManager); } \
  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 GetPlatformProperties(PlatformArchitecture_T architecture, IPlatformProperties * *properties) { return _to GetPlatformProperties(architecture, properties); } \
  NS_IMETHOD CreateMachine(const PRUnichar *settingsFile, const PRUnichar *name, PlatformArchitecture_T platform, PRUint32 groupsSize, const PRUnichar **groups, const PRUnichar *osTypeId, const PRUnichar *flags, const PRUnichar *cipher, const PRUnichar *passwordId, const PRUnichar *password, IMachine * *machine) { return _to CreateMachine(settingsFile, name, platform, groupsSize, groups, osTypeId, flags, cipher, passwordId, password, machine); } \
  NS_IMETHOD OpenMachine(const PRUnichar *settingsFile, const PRUnichar *password, IMachine * *machine) { return _to OpenMachine(settingsFile, password, 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, MachineState_T **states) { return _to GetMachineStates(machinesSize, machines, statesSize, states); } \
  NS_IMETHOD CreateAppliance(IAppliance * *appliance) { return _to CreateAppliance(appliance); } \
  NS_IMETHOD CreateUnattendedInstaller(IUnattended * *unattended) { return _to CreateUnattendedInstaller(unattended); } \
  NS_IMETHOD CreateMedium(const PRUnichar *format, const PRUnichar *location, AccessMode_T accessMode, DeviceType_T aDeviceTypeType, IMedium * *medium) { return _to CreateMedium(format, location, accessMode, aDeviceTypeType, medium); } \
  NS_IMETHOD OpenMedium(const PRUnichar *location, DeviceType_T deviceType, AccessMode_T 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 GetGuestOSSubtypesByFamilyId(const PRUnichar *family, PRUint32 *OSsubtypesSize, PRUnichar ***OSsubtypes) { return _to GetGuestOSSubtypesByFamilyId(family, OSsubtypesSize, OSsubtypes); } \
  NS_IMETHOD GetGuestOSDescsBySubtype(const PRUnichar *OSSubtype, PRUint32 *GuestOSDescsSize, PRUnichar ***GuestOSDescs) { return _to GetGuestOSDescsBySubtype(OSSubtype, GuestOSDescsSize, GuestOSDescs); } \
  NS_IMETHOD CreateSharedFolder(const PRUnichar *name, const PRUnichar *hostPath, PRBool writable, PRBool automount, const PRUnichar *autoMountPoint) { return _to CreateSharedFolder(name, hostPath, writable, automount, autoMountPoint); } \
  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 CreateHostOnlyNetwork(const PRUnichar *networkName, IHostOnlyNetwork * *network) { return _to CreateHostOnlyNetwork(networkName, network); } \
  NS_IMETHOD FindHostOnlyNetworkByName(const PRUnichar *networkName, IHostOnlyNetwork * *network) { return _to FindHostOnlyNetworkByName(networkName, network); } \
  NS_IMETHOD FindHostOnlyNetworkById(const PRUnichar *id, IHostOnlyNetwork * *network) { return _to FindHostOnlyNetworkById(id, network); } \
  NS_IMETHOD RemoveHostOnlyNetwork(IHostOnlyNetwork * network) { return _to RemoveHostOnlyNetwork(network); } \
  NS_IMETHOD CreateCloudNetwork(const PRUnichar *networkName, ICloudNetwork * *network) { return _to CreateCloudNetwork(networkName, network); } \
  NS_IMETHOD FindCloudNetworkByName(const PRUnichar *networkName, ICloudNetwork * *network) { return _to FindCloudNetworkByName(networkName, network); } \
  NS_IMETHOD RemoveCloudNetwork(ICloudNetwork * network) { return _to RemoveCloudNetwork(network); } \
  NS_IMETHOD CheckFirmwarePresent(PlatformArchitecture_T platformArchitecture, FirmwareType_T firmwareType, const PRUnichar *version, PRUnichar **url, PRUnichar **file, PRBool *result) { return _to CheckFirmwarePresent(platformArchitecture, firmwareType, version, url, file, result); } \
  NS_IMETHOD FindProgressById(const PRUnichar *id, IProgress * *progressObject) { return _to FindProgressById(id, progressObject); } \
  NS_IMETHOD GetTrackedObject(const PRUnichar *trObjId, nsISupports * *pIface, TrackedObjectState_T *state, PRInt64 *creationTime, PRInt64 *deletionTime) { return _to GetTrackedObject(trObjId, pIface, state, creationTime, deletionTime); } \
  NS_IMETHOD GetTrackedObjectIds(const PRUnichar *name, PRUint32 *objIdsListSize, PRUnichar ***objIdsList) { return _to GetTrackedObjectIds(name, objIdsListSize, objIdsList); } \
  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(); } 

/* 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 GetGuestOSFamilies(PRUint32 *guestOSFamiliesSize, PRUnichar ***guestOSFamilies) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGuestOSFamilies(guestOSFamiliesSize, guestOSFamilies); } \
  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 GetHostOnlyNetworks(PRUint32 *hostOnlyNetworksSize, IHostOnlyNetwork * **hostOnlyNetworks) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHostOnlyNetworks(hostOnlyNetworksSize, hostOnlyNetworks); } \
  NS_IMETHOD GetGenericNetworkDrivers(PRUint32 *genericNetworkDriversSize, PRUnichar ***genericNetworkDrivers) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGenericNetworkDrivers(genericNetworkDriversSize, genericNetworkDrivers); } \
  NS_IMETHOD GetCloudNetworks(PRUint32 *cloudNetworksSize, ICloudNetwork * **cloudNetworks) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCloudNetworks(cloudNetworksSize, cloudNetworks); } \
  NS_IMETHOD GetCloudProviderManager(ICloudProviderManager * *aCloudProviderManager) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCloudProviderManager(aCloudProviderManager); } \
  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 GetPlatformProperties(PlatformArchitecture_T architecture, IPlatformProperties * *properties) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPlatformProperties(architecture, properties); } \
  NS_IMETHOD CreateMachine(const PRUnichar *settingsFile, const PRUnichar *name, PlatformArchitecture_T platform, PRUint32 groupsSize, const PRUnichar **groups, const PRUnichar *osTypeId, const PRUnichar *flags, const PRUnichar *cipher, const PRUnichar *passwordId, const PRUnichar *password, IMachine * *machine) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateMachine(settingsFile, name, platform, groupsSize, groups, osTypeId, flags, cipher, passwordId, password, machine); } \
  NS_IMETHOD OpenMachine(const PRUnichar *settingsFile, const PRUnichar *password, IMachine * *machine) { return !_to ? NS_ERROR_NULL_POINTER : _to->OpenMachine(settingsFile, password, 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, MachineState_T **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 CreateUnattendedInstaller(IUnattended * *unattended) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateUnattendedInstaller(unattended); } \
  NS_IMETHOD CreateMedium(const PRUnichar *format, const PRUnichar *location, AccessMode_T accessMode, DeviceType_T aDeviceTypeType, IMedium * *medium) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateMedium(format, location, accessMode, aDeviceTypeType, medium); } \
  NS_IMETHOD OpenMedium(const PRUnichar *location, DeviceType_T deviceType, AccessMode_T 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 GetGuestOSSubtypesByFamilyId(const PRUnichar *family, PRUint32 *OSsubtypesSize, PRUnichar ***OSsubtypes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGuestOSSubtypesByFamilyId(family, OSsubtypesSize, OSsubtypes); } \
  NS_IMETHOD GetGuestOSDescsBySubtype(const PRUnichar *OSSubtype, PRUint32 *GuestOSDescsSize, PRUnichar ***GuestOSDescs) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGuestOSDescsBySubtype(OSSubtype, GuestOSDescsSize, GuestOSDescs); } \
  NS_IMETHOD CreateSharedFolder(const PRUnichar *name, const PRUnichar *hostPath, PRBool writable, PRBool automount, const PRUnichar *autoMountPoint) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateSharedFolder(name, hostPath, writable, automount, autoMountPoint); } \
  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 CreateHostOnlyNetwork(const PRUnichar *networkName, IHostOnlyNetwork * *network) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateHostOnlyNetwork(networkName, network); } \
  NS_IMETHOD FindHostOnlyNetworkByName(const PRUnichar *networkName, IHostOnlyNetwork * *network) { return !_to ? NS_ERROR_NULL_POINTER : _to->FindHostOnlyNetworkByName(networkName, network); } \
  NS_IMETHOD FindHostOnlyNetworkById(const PRUnichar *id, IHostOnlyNetwork * *network) { return !_to ? NS_ERROR_NULL_POINTER : _to->FindHostOnlyNetworkById(id, network); } \
  NS_IMETHOD RemoveHostOnlyNetwork(IHostOnlyNetwork * network) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveHostOnlyNetwork(network); } \
  NS_IMETHOD CreateCloudNetwork(const PRUnichar *networkName, ICloudNetwork * *network) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateCloudNetwork(networkName, network); } \
  NS_IMETHOD FindCloudNetworkByName(const PRUnichar *networkName, ICloudNetwork * *network) { return !_to ? NS_ERROR_NULL_POINTER : _to->FindCloudNetworkByName(networkName, network); } \
  NS_IMETHOD RemoveCloudNetwork(ICloudNetwork * network) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveCloudNetwork(network); } \
  NS_IMETHOD CheckFirmwarePresent(PlatformArchitecture_T platformArchitecture, FirmwareType_T firmwareType, const PRUnichar *version, PRUnichar **url, PRUnichar **file, PRBool *result) { return !_to ? NS_ERROR_NULL_POINTER : _to->CheckFirmwarePresent(platformArchitecture, firmwareType, version, url, file, result); } \
  NS_IMETHOD FindProgressById(const PRUnichar *id, IProgress * *progressObject) { return !_to ? NS_ERROR_NULL_POINTER : _to->FindProgressById(id, progressObject); } \
  NS_IMETHOD GetTrackedObject(const PRUnichar *trObjId, nsISupports * *pIface, TrackedObjectState_T *state, PRInt64 *creationTime, PRInt64 *deletionTime) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTrackedObject(trObjId, pIface, state, creationTime, deletionTime); } \
  NS_IMETHOD GetTrackedObjectIds(const PRUnichar *name, PRUint32 *objIdsListSize, PRUnichar ***objIdsList) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTrackedObjectIds(name, objIdsListSize, objIdsList); } \
  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(); } 

#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_GuestOSFamilies_TO(smth) NS_IMETHOD GetGuestOSFamilies (PRUint32 * aGuestOSFamiliesSize, PRUnichar * * * aGuestOSFamilies) { return smth GetGuestOSFamilies (aGuestOSFamiliesSize, aGuestOSFamilies); }
#define COM_FORWARD_IVirtualBox_GETTER_GuestOSFamilies_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_GuestOSFamilies_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GETTER_GuestOSFamilies_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_GuestOSFamilies_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_HostOnlyNetworks_TO(smth) NS_IMETHOD GetHostOnlyNetworks (PRUint32 * aHostOnlyNetworksSize, IHostOnlyNetwork * * * aHostOnlyNetworks) { return smth GetHostOnlyNetworks (aHostOnlyNetworksSize, aHostOnlyNetworks); }
#define COM_FORWARD_IVirtualBox_GETTER_HostOnlyNetworks_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_HostOnlyNetworks_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GETTER_HostOnlyNetworks_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_HostOnlyNetworks_TO (base::)
#define COM_FORWARD_IVirtualBox_GETTER_GenericNetworkDrivers_TO(smth) NS_IMETHOD GetGenericNetworkDrivers (PRUint32 * aGenericNetworkDriversSize, PRUnichar * * * aGenericNetworkDrivers) { return smth GetGenericNetworkDrivers (aGenericNetworkDriversSize, aGenericNetworkDrivers); }
#define COM_FORWARD_IVirtualBox_GETTER_GenericNetworkDrivers_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_GenericNetworkDrivers_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GETTER_GenericNetworkDrivers_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_GenericNetworkDrivers_TO (base::)
#define COM_FORWARD_IVirtualBox_GETTER_CloudNetworks_TO(smth) NS_IMETHOD GetCloudNetworks (PRUint32 * aCloudNetworksSize, ICloudNetwork * * * aCloudNetworks) { return smth GetCloudNetworks (aCloudNetworksSize, aCloudNetworks); }
#define COM_FORWARD_IVirtualBox_GETTER_CloudNetworks_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_CloudNetworks_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GETTER_CloudNetworks_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_CloudNetworks_TO (base::)
#define COM_FORWARD_IVirtualBox_GETTER_CloudProviderManager_TO(smth) NS_IMETHOD GetCloudProviderManager (ICloudProviderManager * * aCloudProviderManager) { return smth GetCloudProviderManager (aCloudProviderManager); }
#define COM_FORWARD_IVirtualBox_GETTER_CloudProviderManager_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_CloudProviderManager_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GETTER_CloudProviderManager_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_CloudProviderManager_TO (base::)
#define COM_FORWARD_IVirtualBox_ComposeMachineFilename_TO(smth) NS_IMETHOD ComposeMachineFilename (PRUnichar * aName, PRUnichar * aGroup, PRUnichar * aCreateFlags, PRUnichar * aBaseFolder, PRUnichar * * aFile) { return smth ComposeMachineFilename (aName, aGroup, aCreateFlags, aBaseFolder, aFile); }
#define COM_FORWARD_IVirtualBox_ComposeMachineFilename_TO_OBJ(obj) COM_FORWARD_IVirtualBox_ComposeMachineFilename_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_ComposeMachineFilename_TO_BASE(base) COM_FORWARD_IVirtualBox_ComposeMachineFilename_TO (base::)
#define COM_FORWARD_IVirtualBox_GetPlatformProperties_TO(smth) NS_IMETHOD GetPlatformProperties (PRUint32 aArchitecture, IPlatformProperties * * aProperties) { return smth GetPlatformProperties (aArchitecture, aProperties); }
#define COM_FORWARD_IVirtualBox_GetPlatformProperties_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GetPlatformProperties_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GetPlatformProperties_TO_BASE(base) COM_FORWARD_IVirtualBox_GetPlatformProperties_TO (base::)
#define COM_FORWARD_IVirtualBox_CreateMachine_TO(smth) NS_IMETHOD CreateMachine (PRUnichar * aSettingsFile, PRUnichar * aName, PRUint32 aPlatform, PRUint32 aGroupsSize, PRUnichar * * aGroups, PRUnichar * aOsTypeId, PRUnichar * aFlags, PRUnichar * aCipher, PRUnichar * aPasswordId, PRUnichar * aPassword, IMachine * * aMachine) { return smth CreateMachine (aSettingsFile, aName, aPlatform, aGroupsSize+++, aGroups, aOsTypeId, aFlags, aCipher, aPasswordId, aPassword, 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, PRUnichar * aPassword, IMachine * * aMachine) { return smth OpenMachine (aSettingsFile, aPassword, aMachine); }
#define COM_FORWARD_IVirtualBox_OpenMachine_TO_OBJ(obj) COM_FORWARD_IVirtualBox_OpenMachine_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_OpenMachine_TO_BASE(base) COM_FORWARD_IVirtualBox_OpenMachine_TO (base::)
#define COM_FORWARD_IVirtualBox_RegisterMachine_TO(smth) NS_IMETHOD RegisterMachine (IMachine * aMachine) { return smth RegisterMachine (aMachine); }
#define COM_FORWARD_IVirtualBox_RegisterMachine_TO_OBJ(obj) COM_FORWARD_IVirtualBox_RegisterMachine_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_RegisterMachine_TO_BASE(base) COM_FORWARD_IVirtualBox_RegisterMachine_TO (base::)
#define COM_FORWARD_IVirtualBox_FindMachine_TO(smth) NS_IMETHOD FindMachine (PRUnichar * aNameOrId, IMachine * * aMachine) { return smth FindMachine (aNameOrId, aMachine); }
#define COM_FORWARD_IVirtualBox_FindMachine_TO_OBJ(obj) COM_FORWARD_IVirtualBox_FindMachine_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_FindMachine_TO_BASE(base) COM_FORWARD_IVirtualBox_FindMachine_TO (base::)
#define COM_FORWARD_IVirtualBox_GetMachinesByGroups_TO(smth) NS_IMETHOD GetMachinesByGroups (PRUint32 aGroupsSize, PRUnichar * * aGroups, PRUint32 * aMachinesSize, IMachine * * * aMachines) { return smth GetMachinesByGroups (aGroupsSize+++, aGroups, aMachinesSize, aMachines); }
#define COM_FORWARD_IVirtualBox_GetMachinesByGroups_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GetMachinesByGroups_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GetMachinesByGroups_TO_BASE(base) COM_FORWARD_IVirtualBox_GetMachinesByGroups_TO (base::)
#define COM_FORWARD_IVirtualBox_GetMachineStates_TO(smth) NS_IMETHOD GetMachineStates (PRUint32 aMachinesSize, IMachine * * aMachines, PRUint32 * aStatesSize, PRUint32 * * aStates) { return smth GetMachineStates (aMachinesSize+++, aMachines, aStatesSize, aStates); }
#define COM_FORWARD_IVirtualBox_GetMachineStates_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GetMachineStates_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GetMachineStates_TO_BASE(base) COM_FORWARD_IVirtualBox_GetMachineStates_TO (base::)
#define COM_FORWARD_IVirtualBox_CreateAppliance_TO(smth) NS_IMETHOD CreateAppliance (IAppliance * * aAppliance) { return smth CreateAppliance (aAppliance); }
#define COM_FORWARD_IVirtualBox_CreateAppliance_TO_OBJ(obj) COM_FORWARD_IVirtualBox_CreateAppliance_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_CreateAppliance_TO_BASE(base) COM_FORWARD_IVirtualBox_CreateAppliance_TO (base::)
#define COM_FORWARD_IVirtualBox_CreateUnattendedInstaller_TO(smth) NS_IMETHOD CreateUnattendedInstaller (IUnattended * * aUnattended) { return smth CreateUnattendedInstaller (aUnattended); }
#define COM_FORWARD_IVirtualBox_CreateUnattendedInstaller_TO_OBJ(obj) COM_FORWARD_IVirtualBox_CreateUnattendedInstaller_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_CreateUnattendedInstaller_TO_BASE(base) COM_FORWARD_IVirtualBox_CreateUnattendedInstaller_TO (base::)
#define COM_FORWARD_IVirtualBox_CreateMedium_TO(smth) NS_IMETHOD CreateMedium (PRUnichar * aFormat, PRUnichar * aLocation, PRUint32 aAccessMode, PRUint32 aADeviceTypeType, IMedium * * aMedium) { return smth CreateMedium (aFormat, aLocation, aAccessMode, aADeviceTypeType, aMedium); }
#define COM_FORWARD_IVirtualBox_CreateMedium_TO_OBJ(obj) COM_FORWARD_IVirtualBox_CreateMedium_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_CreateMedium_TO_BASE(base) COM_FORWARD_IVirtualBox_CreateMedium_TO (base::)
#define COM_FORWARD_IVirtualBox_OpenMedium_TO(smth) NS_IMETHOD OpenMedium (PRUnichar * aLocation, PRUint32 aDeviceType, PRUint32 aAccessMode, PRBool aForceNewUuid, IMedium * * aMedium) { return smth OpenMedium (aLocation, aDeviceType, aAccessMode, aForceNewUuid, aMedium); }
#define COM_FORWARD_IVirtualBox_OpenMedium_TO_OBJ(obj) COM_FORWARD_IVirtualBox_OpenMedium_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_OpenMedium_TO_BASE(base) COM_FORWARD_IVirtualBox_OpenMedium_TO (base::)
#define COM_FORWARD_IVirtualBox_GetGuestOSType_TO(smth) NS_IMETHOD GetGuestOSType (PRUnichar * aId, IGuestOSType * * aType) { return smth GetGuestOSType (aId, aType); }
#define COM_FORWARD_IVirtualBox_GetGuestOSType_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GetGuestOSType_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GetGuestOSType_TO_BASE(base) COM_FORWARD_IVirtualBox_GetGuestOSType_TO (base::)
#define COM_FORWARD_IVirtualBox_GetGuestOSSubtypesByFamilyId_TO(smth) NS_IMETHOD GetGuestOSSubtypesByFamilyId (PRUnichar * aFamily, PRUint32 * aOSsubtypesSize, PRUnichar * * * aOSsubtypes) { return smth GetGuestOSSubtypesByFamilyId (aFamily, aOSsubtypesSize, aOSsubtypes); }
#define COM_FORWARD_IVirtualBox_GetGuestOSSubtypesByFamilyId_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GetGuestOSSubtypesByFamilyId_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GetGuestOSSubtypesByFamilyId_TO_BASE(base) COM_FORWARD_IVirtualBox_GetGuestOSSubtypesByFamilyId_TO (base::)
#define COM_FORWARD_IVirtualBox_GetGuestOSDescsBySubtype_TO(smth) NS_IMETHOD GetGuestOSDescsBySubtype (PRUnichar * aOSSubtype, PRUint32 * aGuestOSDescsSize, PRUnichar * * * aGuestOSDescs) { return smth GetGuestOSDescsBySubtype (aOSSubtype, aGuestOSDescsSize, aGuestOSDescs); }
#define COM_FORWARD_IVirtualBox_GetGuestOSDescsBySubtype_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GetGuestOSDescsBySubtype_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GetGuestOSDescsBySubtype_TO_BASE(base) COM_FORWARD_IVirtualBox_GetGuestOSDescsBySubtype_TO (base::)
#define COM_FORWARD_IVirtualBox_CreateSharedFolder_TO(smth) NS_IMETHOD CreateSharedFolder (PRUnichar * aName, PRUnichar * aHostPath, PRBool aWritable, PRBool aAutomount, PRUnichar * aAutoMountPoint) { return smth CreateSharedFolder (aName, aHostPath, aWritable, aAutomount, aAutoMountPoint); }
#define COM_FORWARD_IVirtualBox_CreateSharedFolder_TO_OBJ(obj) COM_FORWARD_IVirtualBox_CreateSharedFolder_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_CreateSharedFolder_TO_BASE(base) COM_FORWARD_IVirtualBox_CreateSharedFolder_TO (base::)
#define COM_FORWARD_IVirtualBox_RemoveSharedFolder_TO(smth) NS_IMETHOD RemoveSharedFolder (PRUnichar * aName) { return smth RemoveSharedFolder (aName); }
#define COM_FORWARD_IVirtualBox_RemoveSharedFolder_TO_OBJ(obj) COM_FORWARD_IVirtualBox_RemoveSharedFolder_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_RemoveSharedFolder_TO_BASE(base) COM_FORWARD_IVirtualBox_RemoveSharedFolder_TO (base::)
#define COM_FORWARD_IVirtualBox_GetExtraDataKeys_TO(smth) NS_IMETHOD GetExtraDataKeys (PRUint32 * aKeysSize, PRUnichar * * * aKeys) { return smth GetExtraDataKeys (aKeysSize, aKeys); }
#define COM_FORWARD_IVirtualBox_GetExtraDataKeys_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GetExtraDataKeys_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GetExtraDataKeys_TO_BASE(base) COM_FORWARD_IVirtualBox_GetExtraDataKeys_TO (base::)
#define COM_FORWARD_IVirtualBox_GetExtraData_TO(smth) NS_IMETHOD GetExtraData (PRUnichar * aKey, PRUnichar * * aValue) { return smth GetExtraData (aKey, aValue); }
#define COM_FORWARD_IVirtualBox_GetExtraData_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GetExtraData_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GetExtraData_TO_BASE(base) COM_FORWARD_IVirtualBox_GetExtraData_TO (base::)
#define COM_FORWARD_IVirtualBox_SetExtraData_TO(smth) NS_IMETHOD SetExtraData (PRUnichar * aKey, PRUnichar * aValue) { return smth SetExtraData (aKey, aValue); }
#define COM_FORWARD_IVirtualBox_SetExtraData_TO_OBJ(obj) COM_FORWARD_IVirtualBox_SetExtraData_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_SetExtraData_TO_BASE(base) COM_FORWARD_IVirtualBox_SetExtraData_TO (base::)
#define COM_FORWARD_IVirtualBox_SetSettingsSecret_TO(smth) NS_IMETHOD SetSettingsSecret (PRUnichar * aPassword) { return smth SetSettingsSecret (aPassword); }
#define COM_FORWARD_IVirtualBox_SetSettingsSecret_TO_OBJ(obj) COM_FORWARD_IVirtualBox_SetSettingsSecret_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_SetSettingsSecret_TO_BASE(base) COM_FORWARD_IVirtualBox_SetSettingsSecret_TO (base::)
#define COM_FORWARD_IVirtualBox_CreateDHCPServer_TO(smth) NS_IMETHOD CreateDHCPServer (PRUnichar * aName, IDHCPServer * * aServer) { return smth CreateDHCPServer (aName, aServer); }
#define COM_FORWARD_IVirtualBox_CreateDHCPServer_TO_OBJ(obj) COM_FORWARD_IVirtualBox_CreateDHCPServer_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_CreateDHCPServer_TO_BASE(base) COM_FORWARD_IVirtualBox_CreateDHCPServer_TO (base::)
#define COM_FORWARD_IVirtualBox_FindDHCPServerByNetworkName_TO(smth) NS_IMETHOD FindDHCPServerByNetworkName (PRUnichar * aName, IDHCPServer * * aServer) { return smth FindDHCPServerByNetworkName (aName, aServer); }
#define COM_FORWARD_IVirtualBox_FindDHCPServerByNetworkName_TO_OBJ(obj) COM_FORWARD_IVirtualBox_FindDHCPServerByNetworkName_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_FindDHCPServerByNetworkName_TO_BASE(base) COM_FORWARD_IVirtualBox_FindDHCPServerByNetworkName_TO (base::)
#define COM_FORWARD_IVirtualBox_RemoveDHCPServer_TO(smth) NS_IMETHOD RemoveDHCPServer (IDHCPServer * aServer) { return smth RemoveDHCPServer (aServer); }
#define COM_FORWARD_IVirtualBox_RemoveDHCPServer_TO_OBJ(obj) COM_FORWARD_IVirtualBox_RemoveDHCPServer_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_RemoveDHCPServer_TO_BASE(base) COM_FORWARD_IVirtualBox_RemoveDHCPServer_TO (base::)
#define COM_FORWARD_IVirtualBox_CreateNATNetwork_TO(smth) NS_IMETHOD CreateNATNetwork (PRUnichar * aNetworkName, INATNetwork * * aNetwork) { return smth CreateNATNetwork (aNetworkName, aNetwork); }
#define COM_FORWARD_IVirtualBox_CreateNATNetwork_TO_OBJ(obj) COM_FORWARD_IVirtualBox_CreateNATNetwork_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_CreateNATNetwork_TO_BASE(base) COM_FORWARD_IVirtualBox_CreateNATNetwork_TO (base::)
#define COM_FORWARD_IVirtualBox_FindNATNetworkByName_TO(smth) NS_IMETHOD FindNATNetworkByName (PRUnichar * aNetworkName, INATNetwork * * aNetwork) { return smth FindNATNetworkByName (aNetworkName, aNetwork); }
#define COM_FORWARD_IVirtualBox_FindNATNetworkByName_TO_OBJ(obj) COM_FORWARD_IVirtualBox_FindNATNetworkByName_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_FindNATNetworkByName_TO_BASE(base) COM_FORWARD_IVirtualBox_FindNATNetworkByName_TO (base::)
#define COM_FORWARD_IVirtualBox_RemoveNATNetwork_TO(smth) NS_IMETHOD RemoveNATNetwork (INATNetwork * aNetwork) { return smth RemoveNATNetwork (aNetwork); }
#define COM_FORWARD_IVirtualBox_RemoveNATNetwork_TO_OBJ(obj) COM_FORWARD_IVirtualBox_RemoveNATNetwork_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_RemoveNATNetwork_TO_BASE(base) COM_FORWARD_IVirtualBox_RemoveNATNetwork_TO (base::)
#define COM_FORWARD_IVirtualBox_CreateHostOnlyNetwork_TO(smth) NS_IMETHOD CreateHostOnlyNetwork (PRUnichar * aNetworkName, IHostOnlyNetwork * * aNetwork) { return smth CreateHostOnlyNetwork (aNetworkName, aNetwork); }
#define COM_FORWARD_IVirtualBox_CreateHostOnlyNetwork_TO_OBJ(obj) COM_FORWARD_IVirtualBox_CreateHostOnlyNetwork_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_CreateHostOnlyNetwork_TO_BASE(base) COM_FORWARD_IVirtualBox_CreateHostOnlyNetwork_TO (base::)
#define COM_FORWARD_IVirtualBox_FindHostOnlyNetworkByName_TO(smth) NS_IMETHOD FindHostOnlyNetworkByName (PRUnichar * aNetworkName, IHostOnlyNetwork * * aNetwork) { return smth FindHostOnlyNetworkByName (aNetworkName, aNetwork); }
#define COM_FORWARD_IVirtualBox_FindHostOnlyNetworkByName_TO_OBJ(obj) COM_FORWARD_IVirtualBox_FindHostOnlyNetworkByName_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_FindHostOnlyNetworkByName_TO_BASE(base) COM_FORWARD_IVirtualBox_FindHostOnlyNetworkByName_TO (base::)
#define COM_FORWARD_IVirtualBox_FindHostOnlyNetworkById_TO(smth) NS_IMETHOD FindHostOnlyNetworkById (PRUnichar * aId, IHostOnlyNetwork * * aNetwork) { return smth FindHostOnlyNetworkById (aId, aNetwork); }
#define COM_FORWARD_IVirtualBox_FindHostOnlyNetworkById_TO_OBJ(obj) COM_FORWARD_IVirtualBox_FindHostOnlyNetworkById_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_FindHostOnlyNetworkById_TO_BASE(base) COM_FORWARD_IVirtualBox_FindHostOnlyNetworkById_TO (base::)
#define COM_FORWARD_IVirtualBox_RemoveHostOnlyNetwork_TO(smth) NS_IMETHOD RemoveHostOnlyNetwork (IHostOnlyNetwork * aNetwork) { return smth RemoveHostOnlyNetwork (aNetwork); }
#define COM_FORWARD_IVirtualBox_RemoveHostOnlyNetwork_TO_OBJ(obj) COM_FORWARD_IVirtualBox_RemoveHostOnlyNetwork_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_RemoveHostOnlyNetwork_TO_BASE(base) COM_FORWARD_IVirtualBox_RemoveHostOnlyNetwork_TO (base::)
#define COM_FORWARD_IVirtualBox_CreateCloudNetwork_TO(smth) NS_IMETHOD CreateCloudNetwork (PRUnichar * aNetworkName, ICloudNetwork * * aNetwork) { return smth CreateCloudNetwork (aNetworkName, aNetwork); }
#define COM_FORWARD_IVirtualBox_CreateCloudNetwork_TO_OBJ(obj) COM_FORWARD_IVirtualBox_CreateCloudNetwork_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_CreateCloudNetwork_TO_BASE(base) COM_FORWARD_IVirtualBox_CreateCloudNetwork_TO (base::)
#define COM_FORWARD_IVirtualBox_FindCloudNetworkByName_TO(smth) NS_IMETHOD FindCloudNetworkByName (PRUnichar * aNetworkName, ICloudNetwork * * aNetwork) { return smth FindCloudNetworkByName (aNetworkName, aNetwork); }
#define COM_FORWARD_IVirtualBox_FindCloudNetworkByName_TO_OBJ(obj) COM_FORWARD_IVirtualBox_FindCloudNetworkByName_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_FindCloudNetworkByName_TO_BASE(base) COM_FORWARD_IVirtualBox_FindCloudNetworkByName_TO (base::)
#define COM_FORWARD_IVirtualBox_RemoveCloudNetwork_TO(smth) NS_IMETHOD RemoveCloudNetwork (ICloudNetwork * aNetwork) { return smth RemoveCloudNetwork (aNetwork); }
#define COM_FORWARD_IVirtualBox_RemoveCloudNetwork_TO_OBJ(obj) COM_FORWARD_IVirtualBox_RemoveCloudNetwork_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_RemoveCloudNetwork_TO_BASE(base) COM_FORWARD_IVirtualBox_RemoveCloudNetwork_TO (base::)
#define COM_FORWARD_IVirtualBox_CheckFirmwarePresent_TO(smth) NS_IMETHOD CheckFirmwarePresent (PRUint32 aPlatformArchitecture, PRUint32 aFirmwareType, PRUnichar * aVersion, PRUnichar * * aUrl, PRUnichar * * aFile, PRBool * aResult) { return smth CheckFirmwarePresent (aPlatformArchitecture, 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_FindProgressById_TO(smth) NS_IMETHOD FindProgressById (PRUnichar * aId, IProgress * * aProgressObject) { return smth FindProgressById (aId, aProgressObject); }
#define COM_FORWARD_IVirtualBox_FindProgressById_TO_OBJ(obj) COM_FORWARD_IVirtualBox_FindProgressById_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_FindProgressById_TO_BASE(base) COM_FORWARD_IVirtualBox_FindProgressById_TO (base::)
#define COM_FORWARD_IVirtualBox_GetTrackedObject_TO(smth) NS_IMETHOD GetTrackedObject (PRUnichar * aTrObjId, nsISupports * * aPIface, PRUint32 * aState, PRInt64 * aCreationTime, PRInt64 * aDeletionTime) { return smth GetTrackedObject (aTrObjId, aPIface, aState, aCreationTime, aDeletionTime); }
#define COM_FORWARD_IVirtualBox_GetTrackedObject_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GetTrackedObject_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GetTrackedObject_TO_BASE(base) COM_FORWARD_IVirtualBox_GetTrackedObject_TO (base::)
#define COM_FORWARD_IVirtualBox_GetTrackedObjectIds_TO(smth) NS_IMETHOD GetTrackedObjectIds (PRUnichar * aName, PRUint32 * aObjIdsListSize, PRUnichar * * * aObjIdsList) { return smth GetTrackedObjectIds (aName, aObjIdsListSize, aObjIdsList); }
#define COM_FORWARD_IVirtualBox_GetTrackedObjectIds_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GetTrackedObjectIds_TO ((obj)->)
#define COM_FORWARD_IVirtualBox_GetTrackedObjectIds_TO_BASE(base) COM_FORWARD_IVirtualBox_GetTrackedObjectIds_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 VFSType_T type; */
  NS_IMETHOD GetType(VFSType_T *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_OVERRIDE; \
  NS_IMETHOD GetType(VFSType_T *aType) NS_OVERRIDE; \
  NS_IMETHOD Update(IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD Cd(const PRUnichar *dir, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD CdUp(IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD EntryList(PRUint32 *namesSize, PRUnichar ***names, PRUint32 *typesSize, PRUint32 **types, PRUint32 *sizesSize, PRInt64 **sizes, PRUint32 *modesSize, PRUint32 **modes) NS_OVERRIDE; \
  NS_IMETHOD Exists(PRUint32 namesSize, const PRUnichar **names, PRUint32 *existsSize, PRUnichar ***exists) NS_OVERRIDE; \
  NS_IMETHOD Remove(PRUint32 namesSize, const PRUnichar **names, IProgress * *progress) NS_OVERRIDE; 

/* 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(VFSType_T *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(VFSType_T *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); } 

#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 CertificateVersion_T versionNumber; */
  NS_IMETHOD GetVersionNumber(CertificateVersion_T *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(CertificateVersion_T *aVersionNumber) NS_OVERRIDE; \
  NS_IMETHOD GetSerialNumber(PRUnichar **aSerialNumber) NS_OVERRIDE; \
  NS_IMETHOD GetSignatureAlgorithmOID(PRUnichar **aSignatureAlgorithmOID) NS_OVERRIDE; \
  NS_IMETHOD GetSignatureAlgorithmName(PRUnichar **aSignatureAlgorithmName) NS_OVERRIDE; \
  NS_IMETHOD GetIssuerName(PRUint32 *issuerNameSize, PRUnichar ***issuerName) NS_OVERRIDE; \
  NS_IMETHOD GetSubjectName(PRUint32 *subjectNameSize, PRUnichar ***subjectName) NS_OVERRIDE; \
  NS_IMETHOD GetFriendlyName(PRUnichar **aFriendlyName) NS_OVERRIDE; \
  NS_IMETHOD GetValidityPeriodNotBefore(PRUnichar **aValidityPeriodNotBefore) NS_OVERRIDE; \
  NS_IMETHOD GetValidityPeriodNotAfter(PRUnichar **aValidityPeriodNotAfter) NS_OVERRIDE; \
  NS_IMETHOD GetPublicKeyAlgorithmOID(PRUnichar **aPublicKeyAlgorithmOID) NS_OVERRIDE; \
  NS_IMETHOD GetPublicKeyAlgorithm(PRUnichar **aPublicKeyAlgorithm) NS_OVERRIDE; \
  NS_IMETHOD GetSubjectPublicKey(PRUint32 *subjectPublicKeySize, PRUint8 **subjectPublicKey) NS_OVERRIDE; \
  NS_IMETHOD GetIssuerUniqueIdentifier(PRUnichar **aIssuerUniqueIdentifier) NS_OVERRIDE; \
  NS_IMETHOD GetSubjectUniqueIdentifier(PRUnichar **aSubjectUniqueIdentifier) NS_OVERRIDE; \
  NS_IMETHOD GetCertificateAuthority(PRBool *aCertificateAuthority) NS_OVERRIDE; \
  NS_IMETHOD GetKeyUsage(PRUint32 *aKeyUsage) NS_OVERRIDE; \
  NS_IMETHOD GetExtendedKeyUsage(PRUint32 *extendedKeyUsageSize, PRUnichar ***extendedKeyUsage) NS_OVERRIDE; \
  NS_IMETHOD GetRawCertData(PRUint32 *rawCertDataSize, PRUint8 **rawCertData) NS_OVERRIDE; \
  NS_IMETHOD GetSelfSigned(PRBool *aSelfSigned) NS_OVERRIDE; \
  NS_IMETHOD GetTrusted(PRBool *aTrusted) NS_OVERRIDE; \
  NS_IMETHOD GetExpired(PRBool *aExpired) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1ICertificate(PRUint32 *aInternalAndReservedAttribute1ICertificate) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2ICertificate(PRUint32 *aInternalAndReservedAttribute2ICertificate) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3ICertificate(PRUint32 *aInternalAndReservedAttribute3ICertificate) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4ICertificate(PRUint32 *aInternalAndReservedAttribute4ICertificate) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5ICertificate(PRUint32 *aInternalAndReservedAttribute5ICertificate) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6ICertificate(PRUint32 *aInternalAndReservedAttribute6ICertificate) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7ICertificate(PRUint32 *aInternalAndReservedAttribute7ICertificate) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8ICertificate(PRUint32 *aInternalAndReservedAttribute8ICertificate) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute9ICertificate(PRUint32 *aInternalAndReservedAttribute9ICertificate) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute10ICertificate(PRUint32 *aInternalAndReservedAttribute10ICertificate) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute11ICertificate(PRUint32 *aInternalAndReservedAttribute11ICertificate) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute12ICertificate(PRUint32 *aInternalAndReservedAttribute12ICertificate) NS_OVERRIDE; \
  NS_IMETHOD IsCurrentlyExpired(PRBool *result) NS_OVERRIDE; \
  NS_IMETHOD QueryInfo(PRInt32 what, PRUnichar **result) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1ICertificate(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2ICertificate(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ICERTIFICATE(_to) \
  NS_IMETHOD GetVersionNumber(CertificateVersion_T *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(CertificateVersion_T *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(); } 

#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 "86a98347-7619-41aa-aece-b21ac5c1a7e6"

#define IAPPLIANCE_IID \
  {0x86a98347, 0x7619, 0x41aa, \
    { 0xae, 0xce, 0xb2, 0x1a, 0xc5, 0xc1, 0xa7, 0xe6 }}

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;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IAppliance; */
  NS_IMETHOD GetInternalAndReservedAttribute8IAppliance(PRUint32 *aInternalAndReservedAttribute8IAppliance) = 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 ImportOptions_T options, [retval] out IProgress progress); */
  NS_IMETHOD ImportMachines(PRUint32 optionsSize, ImportOptions_T *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 ExportOptions_T options, in wstring path, [retval] out IProgress progress); */
  NS_IMETHOD Write(const PRUnichar *format, PRUint32 optionsSize, ExportOptions_T *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 createVirtualSystemDescriptions (in unsigned long requested, [retval] out unsigned long created); */
  NS_IMETHOD CreateVirtualSystemDescriptions(PRUint32 requested, PRUint32 *created) = 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;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IAPPLIANCE \
  NS_IMETHOD GetPath(PRUnichar **aPath) NS_OVERRIDE; \
  NS_IMETHOD GetDisks(PRUint32 *disksSize, PRUnichar ***disks) NS_OVERRIDE; \
  NS_IMETHOD GetVirtualSystemDescriptions(PRUint32 *virtualSystemDescriptionsSize, IVirtualSystemDescription * **virtualSystemDescriptions) NS_OVERRIDE; \
  NS_IMETHOD GetMachines(PRUint32 *machinesSize, PRUnichar ***machines) NS_OVERRIDE; \
  NS_IMETHOD GetCertificate(ICertificate * *aCertificate) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IAppliance(PRUint32 *aInternalAndReservedAttribute1IAppliance) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IAppliance(PRUint32 *aInternalAndReservedAttribute2IAppliance) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IAppliance(PRUint32 *aInternalAndReservedAttribute3IAppliance) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IAppliance(PRUint32 *aInternalAndReservedAttribute4IAppliance) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IAppliance(PRUint32 *aInternalAndReservedAttribute5IAppliance) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IAppliance(PRUint32 *aInternalAndReservedAttribute6IAppliance) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IAppliance(PRUint32 *aInternalAndReservedAttribute7IAppliance) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IAppliance(PRUint32 *aInternalAndReservedAttribute8IAppliance) NS_OVERRIDE; \
  NS_IMETHOD Read(const PRUnichar *file, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD Interpret(void) NS_OVERRIDE; \
  NS_IMETHOD ImportMachines(PRUint32 optionsSize, ImportOptions_T *options, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD CreateVFSExplorer(const PRUnichar *URI, IVFSExplorer * *explorer) NS_OVERRIDE; \
  NS_IMETHOD Write(const PRUnichar *format, PRUint32 optionsSize, ExportOptions_T *options, const PRUnichar *path, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD GetWarnings(PRUint32 *warningsSize, PRUnichar ***warnings) NS_OVERRIDE; \
  NS_IMETHOD GetPasswordIds(PRUint32 *identifiersSize, PRUnichar ***identifiers) NS_OVERRIDE; \
  NS_IMETHOD GetMediumIdsForPasswordId(const PRUnichar *passwordId, PRUint32 *identifiersSize, PRUnichar ***identifiers) NS_OVERRIDE; \
  NS_IMETHOD AddPasswords(PRUint32 identifiersSize, const PRUnichar **identifiers, PRUint32 passwordsSize, const PRUnichar **passwords) NS_OVERRIDE; \
  NS_IMETHOD CreateVirtualSystemDescriptions(PRUint32 requested, PRUint32 *created) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IAppliance(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IAppliance(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IAppliance(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IAppliance(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod5IAppliance(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod6IAppliance(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod7IAppliance(void) NS_OVERRIDE; 

/* 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 GetInternalAndReservedAttribute8IAppliance(PRUint32 *aInternalAndReservedAttribute8IAppliance) { return _to GetInternalAndReservedAttribute8IAppliance(aInternalAndReservedAttribute8IAppliance); } \
  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, ImportOptions_T *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, ExportOptions_T *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 CreateVirtualSystemDescriptions(PRUint32 requested, PRUint32 *created) { return _to CreateVirtualSystemDescriptions(requested, created); } \
  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(); } 

/* 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 GetInternalAndReservedAttribute8IAppliance(PRUint32 *aInternalAndReservedAttribute8IAppliance) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IAppliance(aInternalAndReservedAttribute8IAppliance); } \
  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, ImportOptions_T *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, ExportOptions_T *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 CreateVirtualSystemDescriptions(PRUint32 requested, PRUint32 *created) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateVirtualSystemDescriptions(requested, created); } \
  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(); } 

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

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IAppliance;

/* starting interface:    IVirtualSystemDescription */
#define IVIRTUALSYSTEMDESCRIPTION_IID_STR "01510f40-c196-4d26-b8db-4c8c389f1f82"

#define IVIRTUALSYSTEMDESCRIPTION_IID \
  {0x01510f40, 0xc196, 0x4d26, \
    { 0xb8, 0xdb, 0x4c, 0x8c, 0x38, 0x9f, 0x1f, 0x82 }}

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 VirtualSystemDescriptionType_T types, out unsigned long refsSize, [array, size_is (refsSize)] out wstring refs, out unsigned long OVFValuesSize, [array, size_is (OVFValuesSize)] out wstring OVFValues, out unsigned long VBoxValuesSize, [array, size_is (VBoxValuesSize)] out wstring VBoxValues, out unsigned long extraConfigValuesSize, [array, size_is (extraConfigValuesSize)] out wstring extraConfigValues); */
  NS_IMETHOD GetDescription(PRUint32 *typesSize, VirtualSystemDescriptionType_T **types, PRUint32 *refsSize, PRUnichar ***refs, PRUint32 *OVFValuesSize, PRUnichar ***OVFValues, PRUint32 *VBoxValuesSize, PRUnichar ***VBoxValues, PRUint32 *extraConfigValuesSize, PRUnichar ***extraConfigValues) = 0;

  /* void getDescriptionByType (in VirtualSystemDescriptionType_T type, out unsigned long typesSize, [array, size_is (typesSize)] out VirtualSystemDescriptionType_T types, out unsigned long refsSize, [array, size_is (refsSize)] out wstring refs, out unsigned long OVFValuesSize, [array, size_is (OVFValuesSize)] out wstring OVFValues, out unsigned long VBoxValuesSize, [array, size_is (VBoxValuesSize)] out wstring VBoxValues, out unsigned long extraConfigValuesSize, [array, size_is (extraConfigValuesSize)] out wstring extraConfigValues); */
  NS_IMETHOD GetDescriptionByType(VirtualSystemDescriptionType_T type, PRUint32 *typesSize, VirtualSystemDescriptionType_T **types, PRUint32 *refsSize, PRUnichar ***refs, PRUint32 *OVFValuesSize, PRUnichar ***OVFValues, PRUint32 *VBoxValuesSize, PRUnichar ***VBoxValues, PRUint32 *extraConfigValuesSize, PRUnichar ***extraConfigValues) = 0;

  /* void removeDescriptionByType (in VirtualSystemDescriptionType_T type); */
  NS_IMETHOD RemoveDescriptionByType(VirtualSystemDescriptionType_T type) = 0;

  /* void getValuesByType (in VirtualSystemDescriptionType_T type, in VirtualSystemDescriptionValueType_T which, out unsigned long valuesSize, [array, size_is (valuesSize), retval] out wstring values); */
  NS_IMETHOD GetValuesByType(VirtualSystemDescriptionType_T type, VirtualSystemDescriptionValueType_T 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 VirtualSystemDescriptionType_T type, in wstring VBoxValue, in wstring extraConfigValue); */
  NS_IMETHOD AddDescription(VirtualSystemDescriptionType_T 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_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IVirtualSystemDescription(PRUint32 *aInternalAndReservedAttribute1IVirtualSystemDescription) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IVirtualSystemDescription(PRUint32 *aInternalAndReservedAttribute2IVirtualSystemDescription) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IVirtualSystemDescription(PRUint32 *aInternalAndReservedAttribute3IVirtualSystemDescription) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IVirtualSystemDescription(PRUint32 *aInternalAndReservedAttribute4IVirtualSystemDescription) NS_OVERRIDE; \
  NS_IMETHOD GetDescription(PRUint32 *typesSize, VirtualSystemDescriptionType_T **types, PRUint32 *refsSize, PRUnichar ***refs, PRUint32 *OVFValuesSize, PRUnichar ***OVFValues, PRUint32 *VBoxValuesSize, PRUnichar ***VBoxValues, PRUint32 *extraConfigValuesSize, PRUnichar ***extraConfigValues) NS_OVERRIDE; \
  NS_IMETHOD GetDescriptionByType(VirtualSystemDescriptionType_T type, PRUint32 *typesSize, VirtualSystemDescriptionType_T **types, PRUint32 *refsSize, PRUnichar ***refs, PRUint32 *OVFValuesSize, PRUnichar ***OVFValues, PRUint32 *VBoxValuesSize, PRUnichar ***VBoxValues, PRUint32 *extraConfigValuesSize, PRUnichar ***extraConfigValues) NS_OVERRIDE; \
  NS_IMETHOD RemoveDescriptionByType(VirtualSystemDescriptionType_T type) NS_OVERRIDE; \
  NS_IMETHOD GetValuesByType(VirtualSystemDescriptionType_T type, VirtualSystemDescriptionValueType_T which, PRUint32 *valuesSize, PRUnichar ***values) NS_OVERRIDE; \
  NS_IMETHOD SetFinalValues(PRUint32 enabledSize, PRBool *enabled, PRUint32 VBoxValuesSize, const PRUnichar **VBoxValues, PRUint32 extraConfigValuesSize, const PRUnichar **extraConfigValues) NS_OVERRIDE; \
  NS_IMETHOD AddDescription(VirtualSystemDescriptionType_T type, const PRUnichar *VBoxValue, const PRUnichar *extraConfigValue) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IVirtualSystemDescription(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IVirtualSystemDescription(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IVirtualSystemDescription(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IVirtualSystemDescription(void) NS_OVERRIDE; 

/* 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, VirtualSystemDescriptionType_T **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(VirtualSystemDescriptionType_T type, PRUint32 *typesSize, VirtualSystemDescriptionType_T **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 RemoveDescriptionByType(VirtualSystemDescriptionType_T type) { return _to RemoveDescriptionByType(type); } \
  NS_IMETHOD GetValuesByType(VirtualSystemDescriptionType_T type, VirtualSystemDescriptionValueType_T 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(VirtualSystemDescriptionType_T 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, VirtualSystemDescriptionType_T **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(VirtualSystemDescriptionType_T type, PRUint32 *typesSize, VirtualSystemDescriptionType_T **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 RemoveDescriptionByType(VirtualSystemDescriptionType_T type) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveDescriptionByType(type); } \
  NS_IMETHOD GetValuesByType(VirtualSystemDescriptionType_T type, VirtualSystemDescriptionValueType_T 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(VirtualSystemDescriptionType_T 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(); } 

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

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IVirtualSystemDescription;

/* starting interface:    IUnattended */
#define IUNATTENDED_IID_STR "39d1f56c-c1c2-40df-84e9-468062d84768"

#define IUNATTENDED_IID \
  {0x39d1f56c, 0xc1c2, 0x40df, \
    { 0x84, 0xe9, 0x46, 0x80, 0x62, 0xd8, 0x47, 0x68 }}

class NS_NO_VTABLE IUnattended : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IUNATTENDED_IID)

  /* attribute wstring isoPath; */
  NS_IMETHOD GetIsoPath(PRUnichar **aIsoPath) = 0;
  NS_IMETHOD SetIsoPath(const PRUnichar *aIsoPath) = 0;

  /* attribute IMachine machine; */
  NS_IMETHOD GetMachine(IMachine * *aMachine) = 0;
  NS_IMETHOD SetMachine(IMachine * aMachine) = 0;

  /* attribute wstring user; */
  NS_IMETHOD GetUser(PRUnichar **aUser) = 0;
  NS_IMETHOD SetUser(const PRUnichar *aUser) = 0;

  /* attribute wstring userPassword; */
  NS_IMETHOD GetUserPassword(PRUnichar **aUserPassword) = 0;
  NS_IMETHOD SetUserPassword(const PRUnichar *aUserPassword) = 0;

  /* attribute wstring adminPassword; */
  NS_IMETHOD GetAdminPassword(PRUnichar **aAdminPassword) = 0;
  NS_IMETHOD SetAdminPassword(const PRUnichar *aAdminPassword) = 0;

  /* attribute wstring fullUserName; */
  NS_IMETHOD GetFullUserName(PRUnichar **aFullUserName) = 0;
  NS_IMETHOD SetFullUserName(const PRUnichar *aFullUserName) = 0;

  /* attribute wstring productKey; */
  NS_IMETHOD GetProductKey(PRUnichar **aProductKey) = 0;
  NS_IMETHOD SetProductKey(const PRUnichar *aProductKey) = 0;

  /* attribute wstring additionsIsoPath; */
  NS_IMETHOD GetAdditionsIsoPath(PRUnichar **aAdditionsIsoPath) = 0;
  NS_IMETHOD SetAdditionsIsoPath(const PRUnichar *aAdditionsIsoPath) = 0;

  /* attribute boolean installGuestAdditions; */
  NS_IMETHOD GetInstallGuestAdditions(PRBool *aInstallGuestAdditions) = 0;
  NS_IMETHOD SetInstallGuestAdditions(PRBool aInstallGuestAdditions) = 0;

  /* readonly attribute boolean productKeyRequired; */
  NS_IMETHOD GetProductKeyRequired(PRBool *aProductKeyRequired) = 0;

  /* attribute wstring validationKitIsoPath; */
  NS_IMETHOD GetValidationKitIsoPath(PRUnichar **aValidationKitIsoPath) = 0;
  NS_IMETHOD SetValidationKitIsoPath(const PRUnichar *aValidationKitIsoPath) = 0;

  /* attribute boolean installTestExecService; */
  NS_IMETHOD GetInstallTestExecService(PRBool *aInstallTestExecService) = 0;
  NS_IMETHOD SetInstallTestExecService(PRBool aInstallTestExecService) = 0;

  /* attribute wstring userPayloadIsoPath; */
  NS_IMETHOD GetUserPayloadIsoPath(PRUnichar **aUserPayloadIsoPath) = 0;
  NS_IMETHOD SetUserPayloadIsoPath(const PRUnichar *aUserPayloadIsoPath) = 0;

  /* attribute boolean installUserPayload; */
  NS_IMETHOD GetInstallUserPayload(PRBool *aInstallUserPayload) = 0;
  NS_IMETHOD SetInstallUserPayload(PRBool aInstallUserPayload) = 0;

  /* attribute wstring timeZone; */
  NS_IMETHOD GetTimeZone(PRUnichar **aTimeZone) = 0;
  NS_IMETHOD SetTimeZone(const PRUnichar *aTimeZone) = 0;

  /* attribute wstring keyboardLayout; */
  NS_IMETHOD GetKeyboardLayout(PRUnichar **aKeyboardLayout) = 0;
  NS_IMETHOD SetKeyboardLayout(const PRUnichar *aKeyboardLayout) = 0;

  /* attribute wstring keyboardVariant; */
  NS_IMETHOD GetKeyboardVariant(PRUnichar **aKeyboardVariant) = 0;
  NS_IMETHOD SetKeyboardVariant(const PRUnichar *aKeyboardVariant) = 0;

  /* attribute wstring locale; */
  NS_IMETHOD GetLocale(PRUnichar **aLocale) = 0;
  NS_IMETHOD SetLocale(const PRUnichar *aLocale) = 0;

  /* attribute wstring language; */
  NS_IMETHOD GetLanguage(PRUnichar **aLanguage) = 0;
  NS_IMETHOD SetLanguage(const PRUnichar *aLanguage) = 0;

  /* attribute wstring country; */
  NS_IMETHOD GetCountry(PRUnichar **aCountry) = 0;
  NS_IMETHOD SetCountry(const PRUnichar *aCountry) = 0;

  /* attribute wstring proxy; */
  NS_IMETHOD GetProxy(PRUnichar **aProxy) = 0;
  NS_IMETHOD SetProxy(const PRUnichar *aProxy) = 0;

  /* attribute wstring packageSelectionAdjustments; */
  NS_IMETHOD GetPackageSelectionAdjustments(PRUnichar **aPackageSelectionAdjustments) = 0;
  NS_IMETHOD SetPackageSelectionAdjustments(const PRUnichar *aPackageSelectionAdjustments) = 0;

  /* attribute wstring hostname; */
  NS_IMETHOD GetHostname(PRUnichar **aHostname) = 0;
  NS_IMETHOD SetHostname(const PRUnichar *aHostname) = 0;

  /* attribute wstring auxiliaryBasePath; */
  NS_IMETHOD GetAuxiliaryBasePath(PRUnichar **aAuxiliaryBasePath) = 0;
  NS_IMETHOD SetAuxiliaryBasePath(const PRUnichar *aAuxiliaryBasePath) = 0;

  /* attribute unsigned long imageIndex; */
  NS_IMETHOD GetImageIndex(PRUint32 *aImageIndex) = 0;
  NS_IMETHOD SetImageIndex(PRUint32 aImageIndex) = 0;

  /* attribute wstring scriptTemplatePath; */
  NS_IMETHOD GetScriptTemplatePath(PRUnichar **aScriptTemplatePath) = 0;
  NS_IMETHOD SetScriptTemplatePath(const PRUnichar *aScriptTemplatePath) = 0;

  /* attribute wstring postInstallScriptTemplatePath; */
  NS_IMETHOD GetPostInstallScriptTemplatePath(PRUnichar **aPostInstallScriptTemplatePath) = 0;
  NS_IMETHOD SetPostInstallScriptTemplatePath(const PRUnichar *aPostInstallScriptTemplatePath) = 0;

  /* attribute wstring postInstallCommand; */
  NS_IMETHOD GetPostInstallCommand(PRUnichar **aPostInstallCommand) = 0;
  NS_IMETHOD SetPostInstallCommand(const PRUnichar *aPostInstallCommand) = 0;

  /* attribute wstring extraInstallKernelParameters; */
  NS_IMETHOD GetExtraInstallKernelParameters(PRUnichar **aExtraInstallKernelParameters) = 0;
  NS_IMETHOD SetExtraInstallKernelParameters(const PRUnichar *aExtraInstallKernelParameters) = 0;

  /* readonly attribute wstring detectedOSTypeId; */
  NS_IMETHOD GetDetectedOSTypeId(PRUnichar **aDetectedOSTypeId) = 0;

  /* readonly attribute wstring detectedOSVersion; */
  NS_IMETHOD GetDetectedOSVersion(PRUnichar **aDetectedOSVersion) = 0;

  /* readonly attribute wstring detectedOSFlavor; */
  NS_IMETHOD GetDetectedOSFlavor(PRUnichar **aDetectedOSFlavor) = 0;

  /* readonly attribute wstring detectedOSLanguages; */
  NS_IMETHOD GetDetectedOSLanguages(PRUnichar **aDetectedOSLanguages) = 0;

  /* readonly attribute wstring detectedOSHints; */
  NS_IMETHOD GetDetectedOSHints(PRUnichar **aDetectedOSHints) = 0;

  /* void getDetectedImageNames (out unsigned long detectedImageNamesSize, [array, size_is (detectedImageNamesSize), retval] out wstring detectedImageNames); */
  NS_IMETHOD GetDetectedImageNames(PRUint32 *detectedImageNamesSize, PRUnichar ***detectedImageNames) = 0;

  /* void getDetectedImageIndices (out unsigned long detectedImageIndicesSize, [array, size_is (detectedImageIndicesSize), retval] out unsigned long detectedImageIndices); */
  NS_IMETHOD GetDetectedImageIndices(PRUint32 *detectedImageIndicesSize, PRUint32 **detectedImageIndices) = 0;

  /* readonly attribute boolean isUnattendedInstallSupported; */
  NS_IMETHOD GetIsUnattendedInstallSupported(PRBool *aIsUnattendedInstallSupported) = 0;

  /* attribute boolean avoidUpdatesOverNetwork; */
  NS_IMETHOD GetAvoidUpdatesOverNetwork(PRBool *aAvoidUpdatesOverNetwork) = 0;
  NS_IMETHOD SetAvoidUpdatesOverNetwork(PRBool aAvoidUpdatesOverNetwork) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IUnattended; */
  NS_IMETHOD GetInternalAndReservedAttribute1IUnattended(PRUint32 *aInternalAndReservedAttribute1IUnattended) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IUnattended; */
  NS_IMETHOD GetInternalAndReservedAttribute2IUnattended(PRUint32 *aInternalAndReservedAttribute2IUnattended) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IUnattended; */
  NS_IMETHOD GetInternalAndReservedAttribute3IUnattended(PRUint32 *aInternalAndReservedAttribute3IUnattended) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IUnattended; */
  NS_IMETHOD GetInternalAndReservedAttribute4IUnattended(PRUint32 *aInternalAndReservedAttribute4IUnattended) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IUnattended; */
  NS_IMETHOD GetInternalAndReservedAttribute5IUnattended(PRUint32 *aInternalAndReservedAttribute5IUnattended) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IUnattended; */
  NS_IMETHOD GetInternalAndReservedAttribute6IUnattended(PRUint32 *aInternalAndReservedAttribute6IUnattended) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IUnattended; */
  NS_IMETHOD GetInternalAndReservedAttribute7IUnattended(PRUint32 *aInternalAndReservedAttribute7IUnattended) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IUnattended; */
  NS_IMETHOD GetInternalAndReservedAttribute8IUnattended(PRUint32 *aInternalAndReservedAttribute8IUnattended) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute9IUnattended; */
  NS_IMETHOD GetInternalAndReservedAttribute9IUnattended(PRUint32 *aInternalAndReservedAttribute9IUnattended) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute10IUnattended; */
  NS_IMETHOD GetInternalAndReservedAttribute10IUnattended(PRUint32 *aInternalAndReservedAttribute10IUnattended) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute11IUnattended; */
  NS_IMETHOD GetInternalAndReservedAttribute11IUnattended(PRUint32 *aInternalAndReservedAttribute11IUnattended) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute12IUnattended; */
  NS_IMETHOD GetInternalAndReservedAttribute12IUnattended(PRUint32 *aInternalAndReservedAttribute12IUnattended) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute13IUnattended; */
  NS_IMETHOD GetInternalAndReservedAttribute13IUnattended(PRUint32 *aInternalAndReservedAttribute13IUnattended) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute14IUnattended; */
  NS_IMETHOD GetInternalAndReservedAttribute14IUnattended(PRUint32 *aInternalAndReservedAttribute14IUnattended) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute15IUnattended; */
  NS_IMETHOD GetInternalAndReservedAttribute15IUnattended(PRUint32 *aInternalAndReservedAttribute15IUnattended) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute16IUnattended; */
  NS_IMETHOD GetInternalAndReservedAttribute16IUnattended(PRUint32 *aInternalAndReservedAttribute16IUnattended) = 0;

  /* void detectIsoOS (); */
  NS_IMETHOD DetectIsoOS(void) = 0;

  /* void prepare (); */
  NS_IMETHOD Prepare(void) = 0;

  /* void constructMedia (); */
  NS_IMETHOD ConstructMedia(void) = 0;

  /* void reconfigureVM (); */
  NS_IMETHOD ReconfigureVM(void) = 0;

  /* void done (); */
  NS_IMETHOD Done(void) = 0;

  /* void InternalAndReservedMethod1IUnattended (); */
  NS_IMETHOD InternalAndReservedMethod1IUnattended(void) = 0;

  /* void InternalAndReservedMethod2IUnattended (); */
  NS_IMETHOD InternalAndReservedMethod2IUnattended(void) = 0;

  /* void InternalAndReservedMethod3IUnattended (); */
  NS_IMETHOD InternalAndReservedMethod3IUnattended(void) = 0;

  /* void InternalAndReservedMethod4IUnattended (); */
  NS_IMETHOD InternalAndReservedMethod4IUnattended(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IUNATTENDED \
  NS_IMETHOD GetIsoPath(PRUnichar **aIsoPath) NS_OVERRIDE; \
  NS_IMETHOD SetIsoPath(const PRUnichar *aIsoPath) NS_OVERRIDE; \
  NS_IMETHOD GetMachine(IMachine * *aMachine) NS_OVERRIDE; \
  NS_IMETHOD SetMachine(IMachine * aMachine) NS_OVERRIDE; \
  NS_IMETHOD GetUser(PRUnichar **aUser) NS_OVERRIDE; \
  NS_IMETHOD SetUser(const PRUnichar *aUser) NS_OVERRIDE; \
  NS_IMETHOD GetUserPassword(PRUnichar **aUserPassword) NS_OVERRIDE; \
  NS_IMETHOD SetUserPassword(const PRUnichar *aUserPassword) NS_OVERRIDE; \
  NS_IMETHOD GetAdminPassword(PRUnichar **aAdminPassword) NS_OVERRIDE; \
  NS_IMETHOD SetAdminPassword(const PRUnichar *aAdminPassword) NS_OVERRIDE; \
  NS_IMETHOD GetFullUserName(PRUnichar **aFullUserName) NS_OVERRIDE; \
  NS_IMETHOD SetFullUserName(const PRUnichar *aFullUserName) NS_OVERRIDE; \
  NS_IMETHOD GetProductKey(PRUnichar **aProductKey) NS_OVERRIDE; \
  NS_IMETHOD SetProductKey(const PRUnichar *aProductKey) NS_OVERRIDE; \
  NS_IMETHOD GetAdditionsIsoPath(PRUnichar **aAdditionsIsoPath) NS_OVERRIDE; \
  NS_IMETHOD SetAdditionsIsoPath(const PRUnichar *aAdditionsIsoPath) NS_OVERRIDE; \
  NS_IMETHOD GetInstallGuestAdditions(PRBool *aInstallGuestAdditions) NS_OVERRIDE; \
  NS_IMETHOD SetInstallGuestAdditions(PRBool aInstallGuestAdditions) NS_OVERRIDE; \
  NS_IMETHOD GetProductKeyRequired(PRBool *aProductKeyRequired) NS_OVERRIDE; \
  NS_IMETHOD GetValidationKitIsoPath(PRUnichar **aValidationKitIsoPath) NS_OVERRIDE; \
  NS_IMETHOD SetValidationKitIsoPath(const PRUnichar *aValidationKitIsoPath) NS_OVERRIDE; \
  NS_IMETHOD GetInstallTestExecService(PRBool *aInstallTestExecService) NS_OVERRIDE; \
  NS_IMETHOD SetInstallTestExecService(PRBool aInstallTestExecService) NS_OVERRIDE; \
  NS_IMETHOD GetUserPayloadIsoPath(PRUnichar **aUserPayloadIsoPath) NS_OVERRIDE; \
  NS_IMETHOD SetUserPayloadIsoPath(const PRUnichar *aUserPayloadIsoPath) NS_OVERRIDE; \
  NS_IMETHOD GetInstallUserPayload(PRBool *aInstallUserPayload) NS_OVERRIDE; \
  NS_IMETHOD SetInstallUserPayload(PRBool aInstallUserPayload) NS_OVERRIDE; \
  NS_IMETHOD GetTimeZone(PRUnichar **aTimeZone) NS_OVERRIDE; \
  NS_IMETHOD SetTimeZone(const PRUnichar *aTimeZone) NS_OVERRIDE; \
  NS_IMETHOD GetKeyboardLayout(PRUnichar **aKeyboardLayout) NS_OVERRIDE; \
  NS_IMETHOD SetKeyboardLayout(const PRUnichar *aKeyboardLayout) NS_OVERRIDE; \
  NS_IMETHOD GetKeyboardVariant(PRUnichar **aKeyboardVariant) NS_OVERRIDE; \
  NS_IMETHOD SetKeyboardVariant(const PRUnichar *aKeyboardVariant) NS_OVERRIDE; \
  NS_IMETHOD GetLocale(PRUnichar **aLocale) NS_OVERRIDE; \
  NS_IMETHOD SetLocale(const PRUnichar *aLocale) NS_OVERRIDE; \
  NS_IMETHOD GetLanguage(PRUnichar **aLanguage) NS_OVERRIDE; \
  NS_IMETHOD SetLanguage(const PRUnichar *aLanguage) NS_OVERRIDE; \
  NS_IMETHOD GetCountry(PRUnichar **aCountry) NS_OVERRIDE; \
  NS_IMETHOD SetCountry(const PRUnichar *aCountry) NS_OVERRIDE; \
  NS_IMETHOD GetProxy(PRUnichar **aProxy) NS_OVERRIDE; \
  NS_IMETHOD SetProxy(const PRUnichar *aProxy) NS_OVERRIDE; \
  NS_IMETHOD GetPackageSelectionAdjustments(PRUnichar **aPackageSelectionAdjustments) NS_OVERRIDE; \
  NS_IMETHOD SetPackageSelectionAdjustments(const PRUnichar *aPackageSelectionAdjustments) NS_OVERRIDE; \
  NS_IMETHOD GetHostname(PRUnichar **aHostname) NS_OVERRIDE; \
  NS_IMETHOD SetHostname(const PRUnichar *aHostname) NS_OVERRIDE; \
  NS_IMETHOD GetAuxiliaryBasePath(PRUnichar **aAuxiliaryBasePath) NS_OVERRIDE; \
  NS_IMETHOD SetAuxiliaryBasePath(const PRUnichar *aAuxiliaryBasePath) NS_OVERRIDE; \
  NS_IMETHOD GetImageIndex(PRUint32 *aImageIndex) NS_OVERRIDE; \
  NS_IMETHOD SetImageIndex(PRUint32 aImageIndex) NS_OVERRIDE; \
  NS_IMETHOD GetScriptTemplatePath(PRUnichar **aScriptTemplatePath) NS_OVERRIDE; \
  NS_IMETHOD SetScriptTemplatePath(const PRUnichar *aScriptTemplatePath) NS_OVERRIDE; \
  NS_IMETHOD GetPostInstallScriptTemplatePath(PRUnichar **aPostInstallScriptTemplatePath) NS_OVERRIDE; \
  NS_IMETHOD SetPostInstallScriptTemplatePath(const PRUnichar *aPostInstallScriptTemplatePath) NS_OVERRIDE; \
  NS_IMETHOD GetPostInstallCommand(PRUnichar **aPostInstallCommand) NS_OVERRIDE; \
  NS_IMETHOD SetPostInstallCommand(const PRUnichar *aPostInstallCommand) NS_OVERRIDE; \
  NS_IMETHOD GetExtraInstallKernelParameters(PRUnichar **aExtraInstallKernelParameters) NS_OVERRIDE; \
  NS_IMETHOD SetExtraInstallKernelParameters(const PRUnichar *aExtraInstallKernelParameters) NS_OVERRIDE; \
  NS_IMETHOD GetDetectedOSTypeId(PRUnichar **aDetectedOSTypeId) NS_OVERRIDE; \
  NS_IMETHOD GetDetectedOSVersion(PRUnichar **aDetectedOSVersion) NS_OVERRIDE; \
  NS_IMETHOD GetDetectedOSFlavor(PRUnichar **aDetectedOSFlavor) NS_OVERRIDE; \
  NS_IMETHOD GetDetectedOSLanguages(PRUnichar **aDetectedOSLanguages) NS_OVERRIDE; \
  NS_IMETHOD GetDetectedOSHints(PRUnichar **aDetectedOSHints) NS_OVERRIDE; \
  NS_IMETHOD GetDetectedImageNames(PRUint32 *detectedImageNamesSize, PRUnichar ***detectedImageNames) NS_OVERRIDE; \
  NS_IMETHOD GetDetectedImageIndices(PRUint32 *detectedImageIndicesSize, PRUint32 **detectedImageIndices) NS_OVERRIDE; \
  NS_IMETHOD GetIsUnattendedInstallSupported(PRBool *aIsUnattendedInstallSupported) NS_OVERRIDE; \
  NS_IMETHOD GetAvoidUpdatesOverNetwork(PRBool *aAvoidUpdatesOverNetwork) NS_OVERRIDE; \
  NS_IMETHOD SetAvoidUpdatesOverNetwork(PRBool aAvoidUpdatesOverNetwork) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IUnattended(PRUint32 *aInternalAndReservedAttribute1IUnattended) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IUnattended(PRUint32 *aInternalAndReservedAttribute2IUnattended) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IUnattended(PRUint32 *aInternalAndReservedAttribute3IUnattended) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IUnattended(PRUint32 *aInternalAndReservedAttribute4IUnattended) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IUnattended(PRUint32 *aInternalAndReservedAttribute5IUnattended) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IUnattended(PRUint32 *aInternalAndReservedAttribute6IUnattended) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IUnattended(PRUint32 *aInternalAndReservedAttribute7IUnattended) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IUnattended(PRUint32 *aInternalAndReservedAttribute8IUnattended) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute9IUnattended(PRUint32 *aInternalAndReservedAttribute9IUnattended) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute10IUnattended(PRUint32 *aInternalAndReservedAttribute10IUnattended) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute11IUnattended(PRUint32 *aInternalAndReservedAttribute11IUnattended) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute12IUnattended(PRUint32 *aInternalAndReservedAttribute12IUnattended) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute13IUnattended(PRUint32 *aInternalAndReservedAttribute13IUnattended) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute14IUnattended(PRUint32 *aInternalAndReservedAttribute14IUnattended) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute15IUnattended(PRUint32 *aInternalAndReservedAttribute15IUnattended) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute16IUnattended(PRUint32 *aInternalAndReservedAttribute16IUnattended) NS_OVERRIDE; \
  NS_IMETHOD DetectIsoOS(void) NS_OVERRIDE; \
  NS_IMETHOD Prepare(void) NS_OVERRIDE; \
  NS_IMETHOD ConstructMedia(void) NS_OVERRIDE; \
  NS_IMETHOD ReconfigureVM(void) NS_OVERRIDE; \
  NS_IMETHOD Done(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IUnattended(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IUnattended(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IUnattended(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IUnattended(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IUNATTENDED(_to) \
  NS_IMETHOD GetIsoPath(PRUnichar **aIsoPath) { return _to GetIsoPath(aIsoPath); } \
  NS_IMETHOD SetIsoPath(const PRUnichar *aIsoPath) { return _to SetIsoPath(aIsoPath); } \
  NS_IMETHOD GetMachine(IMachine * *aMachine) { return _to GetMachine(aMachine); } \
  NS_IMETHOD SetMachine(IMachine * aMachine) { return _to SetMachine(aMachine); } \
  NS_IMETHOD GetUser(PRUnichar **aUser) { return _to GetUser(aUser); } \
  NS_IMETHOD SetUser(const PRUnichar *aUser) { return _to SetUser(aUser); } \
  NS_IMETHOD GetUserPassword(PRUnichar **aUserPassword) { return _to GetUserPassword(aUserPassword); } \
  NS_IMETHOD SetUserPassword(const PRUnichar *aUserPassword) { return _to SetUserPassword(aUserPassword); } \
  NS_IMETHOD GetAdminPassword(PRUnichar **aAdminPassword) { return _to GetAdminPassword(aAdminPassword); } \
  NS_IMETHOD SetAdminPassword(const PRUnichar *aAdminPassword) { return _to SetAdminPassword(aAdminPassword); } \
  NS_IMETHOD GetFullUserName(PRUnichar **aFullUserName) { return _to GetFullUserName(aFullUserName); } \
  NS_IMETHOD SetFullUserName(const PRUnichar *aFullUserName) { return _to SetFullUserName(aFullUserName); } \
  NS_IMETHOD GetProductKey(PRUnichar **aProductKey) { return _to GetProductKey(aProductKey); } \
  NS_IMETHOD SetProductKey(const PRUnichar *aProductKey) { return _to SetProductKey(aProductKey); } \
  NS_IMETHOD GetAdditionsIsoPath(PRUnichar **aAdditionsIsoPath) { return _to GetAdditionsIsoPath(aAdditionsIsoPath); } \
  NS_IMETHOD SetAdditionsIsoPath(const PRUnichar *aAdditionsIsoPath) { return _to SetAdditionsIsoPath(aAdditionsIsoPath); } \
  NS_IMETHOD GetInstallGuestAdditions(PRBool *aInstallGuestAdditions) { return _to GetInstallGuestAdditions(aInstallGuestAdditions); } \
  NS_IMETHOD SetInstallGuestAdditions(PRBool aInstallGuestAdditions) { return _to SetInstallGuestAdditions(aInstallGuestAdditions); } \
  NS_IMETHOD GetProductKeyRequired(PRBool *aProductKeyRequired) { return _to GetProductKeyRequired(aProductKeyRequired); } \
  NS_IMETHOD GetValidationKitIsoPath(PRUnichar **aValidationKitIsoPath) { return _to GetValidationKitIsoPath(aValidationKitIsoPath); } \
  NS_IMETHOD SetValidationKitIsoPath(const PRUnichar *aValidationKitIsoPath) { return _to SetValidationKitIsoPath(aValidationKitIsoPath); } \
  NS_IMETHOD GetInstallTestExecService(PRBool *aInstallTestExecService) { return _to GetInstallTestExecService(aInstallTestExecService); } \
  NS_IMETHOD SetInstallTestExecService(PRBool aInstallTestExecService) { return _to SetInstallTestExecService(aInstallTestExecService); } \
  NS_IMETHOD GetUserPayloadIsoPath(PRUnichar **aUserPayloadIsoPath) { return _to GetUserPayloadIsoPath(aUserPayloadIsoPath); } \
  NS_IMETHOD SetUserPayloadIsoPath(const PRUnichar *aUserPayloadIsoPath) { return _to SetUserPayloadIsoPath(aUserPayloadIsoPath); } \
  NS_IMETHOD GetInstallUserPayload(PRBool *aInstallUserPayload) { return _to GetInstallUserPayload(aInstallUserPayload); } \
  NS_IMETHOD SetInstallUserPayload(PRBool aInstallUserPayload) { return _to SetInstallUserPayload(aInstallUserPayload); } \
  NS_IMETHOD GetTimeZone(PRUnichar **aTimeZone) { return _to GetTimeZone(aTimeZone); } \
  NS_IMETHOD SetTimeZone(const PRUnichar *aTimeZone) { return _to SetTimeZone(aTimeZone); } \
  NS_IMETHOD GetKeyboardLayout(PRUnichar **aKeyboardLayout) { return _to GetKeyboardLayout(aKeyboardLayout); } \
  NS_IMETHOD SetKeyboardLayout(const PRUnichar *aKeyboardLayout) { return _to SetKeyboardLayout(aKeyboardLayout); } \
  NS_IMETHOD GetKeyboardVariant(PRUnichar **aKeyboardVariant) { return _to GetKeyboardVariant(aKeyboardVariant); } \
  NS_IMETHOD SetKeyboardVariant(const PRUnichar *aKeyboardVariant) { return _to SetKeyboardVariant(aKeyboardVariant); } \
  NS_IMETHOD GetLocale(PRUnichar **aLocale) { return _to GetLocale(aLocale); } \
  NS_IMETHOD SetLocale(const PRUnichar *aLocale) { return _to SetLocale(aLocale); } \
  NS_IMETHOD GetLanguage(PRUnichar **aLanguage) { return _to GetLanguage(aLanguage); } \
  NS_IMETHOD SetLanguage(const PRUnichar *aLanguage) { return _to SetLanguage(aLanguage); } \
  NS_IMETHOD GetCountry(PRUnichar **aCountry) { return _to GetCountry(aCountry); } \
  NS_IMETHOD SetCountry(const PRUnichar *aCountry) { return _to SetCountry(aCountry); } \
  NS_IMETHOD GetProxy(PRUnichar **aProxy) { return _to GetProxy(aProxy); } \
  NS_IMETHOD SetProxy(const PRUnichar *aProxy) { return _to SetProxy(aProxy); } \
  NS_IMETHOD GetPackageSelectionAdjustments(PRUnichar **aPackageSelectionAdjustments) { return _to GetPackageSelectionAdjustments(aPackageSelectionAdjustments); } \
  NS_IMETHOD SetPackageSelectionAdjustments(const PRUnichar *aPackageSelectionAdjustments) { return _to SetPackageSelectionAdjustments(aPackageSelectionAdjustments); } \
  NS_IMETHOD GetHostname(PRUnichar **aHostname) { return _to GetHostname(aHostname); } \
  NS_IMETHOD SetHostname(const PRUnichar *aHostname) { return _to SetHostname(aHostname); } \
  NS_IMETHOD GetAuxiliaryBasePath(PRUnichar **aAuxiliaryBasePath) { return _to GetAuxiliaryBasePath(aAuxiliaryBasePath); } \
  NS_IMETHOD SetAuxiliaryBasePath(const PRUnichar *aAuxiliaryBasePath) { return _to SetAuxiliaryBasePath(aAuxiliaryBasePath); } \
  NS_IMETHOD GetImageIndex(PRUint32 *aImageIndex) { return _to GetImageIndex(aImageIndex); } \
  NS_IMETHOD SetImageIndex(PRUint32 aImageIndex) { return _to SetImageIndex(aImageIndex); } \
  NS_IMETHOD GetScriptTemplatePath(PRUnichar **aScriptTemplatePath) { return _to GetScriptTemplatePath(aScriptTemplatePath); } \
  NS_IMETHOD SetScriptTemplatePath(const PRUnichar *aScriptTemplatePath) { return _to SetScriptTemplatePath(aScriptTemplatePath); } \
  NS_IMETHOD GetPostInstallScriptTemplatePath(PRUnichar **aPostInstallScriptTemplatePath) { return _to GetPostInstallScriptTemplatePath(aPostInstallScriptTemplatePath); } \
  NS_IMETHOD SetPostInstallScriptTemplatePath(const PRUnichar *aPostInstallScriptTemplatePath) { return _to SetPostInstallScriptTemplatePath(aPostInstallScriptTemplatePath); } \
  NS_IMETHOD GetPostInstallCommand(PRUnichar **aPostInstallCommand) { return _to GetPostInstallCommand(aPostInstallCommand); } \
  NS_IMETHOD SetPostInstallCommand(const PRUnichar *aPostInstallCommand) { return _to SetPostInstallCommand(aPostInstallCommand); } \
  NS_IMETHOD GetExtraInstallKernelParameters(PRUnichar **aExtraInstallKernelParameters) { return _to GetExtraInstallKernelParameters(aExtraInstallKernelParameters); } \
  NS_IMETHOD SetExtraInstallKernelParameters(const PRUnichar *aExtraInstallKernelParameters) { return _to SetExtraInstallKernelParameters(aExtraInstallKernelParameters); } \
  NS_IMETHOD GetDetectedOSTypeId(PRUnichar **aDetectedOSTypeId) { return _to GetDetectedOSTypeId(aDetectedOSTypeId); } \
  NS_IMETHOD GetDetectedOSVersion(PRUnichar **aDetectedOSVersion) { return _to GetDetectedOSVersion(aDetectedOSVersion); } \
  NS_IMETHOD GetDetectedOSFlavor(PRUnichar **aDetectedOSFlavor) { return _to GetDetectedOSFlavor(aDetectedOSFlavor); } \
  NS_IMETHOD GetDetectedOSLanguages(PRUnichar **aDetectedOSLanguages) { return _to GetDetectedOSLanguages(aDetectedOSLanguages); } \
  NS_IMETHOD GetDetectedOSHints(PRUnichar **aDetectedOSHints) { return _to GetDetectedOSHints(aDetectedOSHints); } \
  NS_IMETHOD GetDetectedImageNames(PRUint32 *detectedImageNamesSize, PRUnichar ***detectedImageNames) { return _to GetDetectedImageNames(detectedImageNamesSize, detectedImageNames); } \
  NS_IMETHOD GetDetectedImageIndices(PRUint32 *detectedImageIndicesSize, PRUint32 **detectedImageIndices) { return _to GetDetectedImageIndices(detectedImageIndicesSize, detectedImageIndices); } \
  NS_IMETHOD GetIsUnattendedInstallSupported(PRBool *aIsUnattendedInstallSupported) { return _to GetIsUnattendedInstallSupported(aIsUnattendedInstallSupported); } \
  NS_IMETHOD GetAvoidUpdatesOverNetwork(PRBool *aAvoidUpdatesOverNetwork) { return _to GetAvoidUpdatesOverNetwork(aAvoidUpdatesOverNetwork); } \
  NS_IMETHOD SetAvoidUpdatesOverNetwork(PRBool aAvoidUpdatesOverNetwork) { return _to SetAvoidUpdatesOverNetwork(aAvoidUpdatesOverNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IUnattended(PRUint32 *aInternalAndReservedAttribute1IUnattended) { return _to GetInternalAndReservedAttribute1IUnattended(aInternalAndReservedAttribute1IUnattended); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IUnattended(PRUint32 *aInternalAndReservedAttribute2IUnattended) { return _to GetInternalAndReservedAttribute2IUnattended(aInternalAndReservedAttribute2IUnattended); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IUnattended(PRUint32 *aInternalAndReservedAttribute3IUnattended) { return _to GetInternalAndReservedAttribute3IUnattended(aInternalAndReservedAttribute3IUnattended); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IUnattended(PRUint32 *aInternalAndReservedAttribute4IUnattended) { return _to GetInternalAndReservedAttribute4IUnattended(aInternalAndReservedAttribute4IUnattended); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IUnattended(PRUint32 *aInternalAndReservedAttribute5IUnattended) { return _to GetInternalAndReservedAttribute5IUnattended(aInternalAndReservedAttribute5IUnattended); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IUnattended(PRUint32 *aInternalAndReservedAttribute6IUnattended) { return _to GetInternalAndReservedAttribute6IUnattended(aInternalAndReservedAttribute6IUnattended); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IUnattended(PRUint32 *aInternalAndReservedAttribute7IUnattended) { return _to GetInternalAndReservedAttribute7IUnattended(aInternalAndReservedAttribute7IUnattended); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IUnattended(PRUint32 *aInternalAndReservedAttribute8IUnattended) { return _to GetInternalAndReservedAttribute8IUnattended(aInternalAndReservedAttribute8IUnattended); } \
  NS_IMETHOD GetInternalAndReservedAttribute9IUnattended(PRUint32 *aInternalAndReservedAttribute9IUnattended) { return _to GetInternalAndReservedAttribute9IUnattended(aInternalAndReservedAttribute9IUnattended); } \
  NS_IMETHOD GetInternalAndReservedAttribute10IUnattended(PRUint32 *aInternalAndReservedAttribute10IUnattended) { return _to GetInternalAndReservedAttribute10IUnattended(aInternalAndReservedAttribute10IUnattended); } \
  NS_IMETHOD GetInternalAndReservedAttribute11IUnattended(PRUint32 *aInternalAndReservedAttribute11IUnattended) { return _to GetInternalAndReservedAttribute11IUnattended(aInternalAndReservedAttribute11IUnattended); } \
  NS_IMETHOD GetInternalAndReservedAttribute12IUnattended(PRUint32 *aInternalAndReservedAttribute12IUnattended) { return _to GetInternalAndReservedAttribute12IUnattended(aInternalAndReservedAttribute12IUnattended); } \
  NS_IMETHOD GetInternalAndReservedAttribute13IUnattended(PRUint32 *aInternalAndReservedAttribute13IUnattended) { return _to GetInternalAndReservedAttribute13IUnattended(aInternalAndReservedAttribute13IUnattended); } \
  NS_IMETHOD GetInternalAndReservedAttribute14IUnattended(PRUint32 *aInternalAndReservedAttribute14IUnattended) { return _to GetInternalAndReservedAttribute14IUnattended(aInternalAndReservedAttribute14IUnattended); } \
  NS_IMETHOD GetInternalAndReservedAttribute15IUnattended(PRUint32 *aInternalAndReservedAttribute15IUnattended) { return _to GetInternalAndReservedAttribute15IUnattended(aInternalAndReservedAttribute15IUnattended); } \
  NS_IMETHOD GetInternalAndReservedAttribute16IUnattended(PRUint32 *aInternalAndReservedAttribute16IUnattended) { return _to GetInternalAndReservedAttribute16IUnattended(aInternalAndReservedAttribute16IUnattended); } \
  NS_IMETHOD DetectIsoOS(void) { return _to DetectIsoOS(); } \
  NS_IMETHOD Prepare(void) { return _to Prepare(); } \
  NS_IMETHOD ConstructMedia(void) { return _to ConstructMedia(); } \
  NS_IMETHOD ReconfigureVM(void) { return _to ReconfigureVM(); } \
  NS_IMETHOD Done(void) { return _to Done(); } \
  NS_IMETHOD InternalAndReservedMethod1IUnattended(void) { return _to InternalAndReservedMethod1IUnattended(); } \
  NS_IMETHOD InternalAndReservedMethod2IUnattended(void) { return _to InternalAndReservedMethod2IUnattended(); } \
  NS_IMETHOD InternalAndReservedMethod3IUnattended(void) { return _to InternalAndReservedMethod3IUnattended(); } \
  NS_IMETHOD InternalAndReservedMethod4IUnattended(void) { return _to InternalAndReservedMethod4IUnattended(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IUNATTENDED(_to) \
  NS_IMETHOD GetIsoPath(PRUnichar **aIsoPath) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsoPath(aIsoPath); } \
  NS_IMETHOD SetIsoPath(const PRUnichar *aIsoPath) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIsoPath(aIsoPath); } \
  NS_IMETHOD GetMachine(IMachine * *aMachine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMachine(aMachine); } \
  NS_IMETHOD SetMachine(IMachine * aMachine) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMachine(aMachine); } \
  NS_IMETHOD GetUser(PRUnichar **aUser) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUser(aUser); } \
  NS_IMETHOD SetUser(const PRUnichar *aUser) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUser(aUser); } \
  NS_IMETHOD GetUserPassword(PRUnichar **aUserPassword) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUserPassword(aUserPassword); } \
  NS_IMETHOD SetUserPassword(const PRUnichar *aUserPassword) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUserPassword(aUserPassword); } \
  NS_IMETHOD GetAdminPassword(PRUnichar **aAdminPassword) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAdminPassword(aAdminPassword); } \
  NS_IMETHOD SetAdminPassword(const PRUnichar *aAdminPassword) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAdminPassword(aAdminPassword); } \
  NS_IMETHOD GetFullUserName(PRUnichar **aFullUserName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFullUserName(aFullUserName); } \
  NS_IMETHOD SetFullUserName(const PRUnichar *aFullUserName) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFullUserName(aFullUserName); } \
  NS_IMETHOD GetProductKey(PRUnichar **aProductKey) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProductKey(aProductKey); } \
  NS_IMETHOD SetProductKey(const PRUnichar *aProductKey) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetProductKey(aProductKey); } \
  NS_IMETHOD GetAdditionsIsoPath(PRUnichar **aAdditionsIsoPath) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAdditionsIsoPath(aAdditionsIsoPath); } \
  NS_IMETHOD SetAdditionsIsoPath(const PRUnichar *aAdditionsIsoPath) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAdditionsIsoPath(aAdditionsIsoPath); } \
  NS_IMETHOD GetInstallGuestAdditions(PRBool *aInstallGuestAdditions) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInstallGuestAdditions(aInstallGuestAdditions); } \
  NS_IMETHOD SetInstallGuestAdditions(PRBool aInstallGuestAdditions) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetInstallGuestAdditions(aInstallGuestAdditions); } \
  NS_IMETHOD GetProductKeyRequired(PRBool *aProductKeyRequired) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProductKeyRequired(aProductKeyRequired); } \
  NS_IMETHOD GetValidationKitIsoPath(PRUnichar **aValidationKitIsoPath) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetValidationKitIsoPath(aValidationKitIsoPath); } \
  NS_IMETHOD SetValidationKitIsoPath(const PRUnichar *aValidationKitIsoPath) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetValidationKitIsoPath(aValidationKitIsoPath); } \
  NS_IMETHOD GetInstallTestExecService(PRBool *aInstallTestExecService) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInstallTestExecService(aInstallTestExecService); } \
  NS_IMETHOD SetInstallTestExecService(PRBool aInstallTestExecService) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetInstallTestExecService(aInstallTestExecService); } \
  NS_IMETHOD GetUserPayloadIsoPath(PRUnichar **aUserPayloadIsoPath) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUserPayloadIsoPath(aUserPayloadIsoPath); } \
  NS_IMETHOD SetUserPayloadIsoPath(const PRUnichar *aUserPayloadIsoPath) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUserPayloadIsoPath(aUserPayloadIsoPath); } \
  NS_IMETHOD GetInstallUserPayload(PRBool *aInstallUserPayload) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInstallUserPayload(aInstallUserPayload); } \
  NS_IMETHOD SetInstallUserPayload(PRBool aInstallUserPayload) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetInstallUserPayload(aInstallUserPayload); } \
  NS_IMETHOD GetTimeZone(PRUnichar **aTimeZone) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTimeZone(aTimeZone); } \
  NS_IMETHOD SetTimeZone(const PRUnichar *aTimeZone) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetTimeZone(aTimeZone); } \
  NS_IMETHOD GetKeyboardLayout(PRUnichar **aKeyboardLayout) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetKeyboardLayout(aKeyboardLayout); } \
  NS_IMETHOD SetKeyboardLayout(const PRUnichar *aKeyboardLayout) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetKeyboardLayout(aKeyboardLayout); } \
  NS_IMETHOD GetKeyboardVariant(PRUnichar **aKeyboardVariant) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetKeyboardVariant(aKeyboardVariant); } \
  NS_IMETHOD SetKeyboardVariant(const PRUnichar *aKeyboardVariant) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetKeyboardVariant(aKeyboardVariant); } \
  NS_IMETHOD GetLocale(PRUnichar **aLocale) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLocale(aLocale); } \
  NS_IMETHOD SetLocale(const PRUnichar *aLocale) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLocale(aLocale); } \
  NS_IMETHOD GetLanguage(PRUnichar **aLanguage) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLanguage(aLanguage); } \
  NS_IMETHOD SetLanguage(const PRUnichar *aLanguage) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLanguage(aLanguage); } \
  NS_IMETHOD GetCountry(PRUnichar **aCountry) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCountry(aCountry); } \
  NS_IMETHOD SetCountry(const PRUnichar *aCountry) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCountry(aCountry); } \
  NS_IMETHOD GetProxy(PRUnichar **aProxy) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProxy(aProxy); } \
  NS_IMETHOD SetProxy(const PRUnichar *aProxy) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetProxy(aProxy); } \
  NS_IMETHOD GetPackageSelectionAdjustments(PRUnichar **aPackageSelectionAdjustments) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPackageSelectionAdjustments(aPackageSelectionAdjustments); } \
  NS_IMETHOD SetPackageSelectionAdjustments(const PRUnichar *aPackageSelectionAdjustments) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPackageSelectionAdjustments(aPackageSelectionAdjustments); } \
  NS_IMETHOD GetHostname(PRUnichar **aHostname) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHostname(aHostname); } \
  NS_IMETHOD SetHostname(const PRUnichar *aHostname) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetHostname(aHostname); } \
  NS_IMETHOD GetAuxiliaryBasePath(PRUnichar **aAuxiliaryBasePath) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAuxiliaryBasePath(aAuxiliaryBasePath); } \
  NS_IMETHOD SetAuxiliaryBasePath(const PRUnichar *aAuxiliaryBasePath) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAuxiliaryBasePath(aAuxiliaryBasePath); } \
  NS_IMETHOD GetImageIndex(PRUint32 *aImageIndex) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetImageIndex(aImageIndex); } \
  NS_IMETHOD SetImageIndex(PRUint32 aImageIndex) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetImageIndex(aImageIndex); } \
  NS_IMETHOD GetScriptTemplatePath(PRUnichar **aScriptTemplatePath) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetScriptTemplatePath(aScriptTemplatePath); } \
  NS_IMETHOD SetScriptTemplatePath(const PRUnichar *aScriptTemplatePath) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetScriptTemplatePath(aScriptTemplatePath); } \
  NS_IMETHOD GetPostInstallScriptTemplatePath(PRUnichar **aPostInstallScriptTemplatePath) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPostInstallScriptTemplatePath(aPostInstallScriptTemplatePath); } \
  NS_IMETHOD SetPostInstallScriptTemplatePath(const PRUnichar *aPostInstallScriptTemplatePath) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPostInstallScriptTemplatePath(aPostInstallScriptTemplatePath); } \
  NS_IMETHOD GetPostInstallCommand(PRUnichar **aPostInstallCommand) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPostInstallCommand(aPostInstallCommand); } \
  NS_IMETHOD SetPostInstallCommand(const PRUnichar *aPostInstallCommand) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPostInstallCommand(aPostInstallCommand); } \
  NS_IMETHOD GetExtraInstallKernelParameters(PRUnichar **aExtraInstallKernelParameters) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetExtraInstallKernelParameters(aExtraInstallKernelParameters); } \
  NS_IMETHOD SetExtraInstallKernelParameters(const PRUnichar *aExtraInstallKernelParameters) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetExtraInstallKernelParameters(aExtraInstallKernelParameters); } \
  NS_IMETHOD GetDetectedOSTypeId(PRUnichar **aDetectedOSTypeId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDetectedOSTypeId(aDetectedOSTypeId); } \
  NS_IMETHOD GetDetectedOSVersion(PRUnichar **aDetectedOSVersion) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDetectedOSVersion(aDetectedOSVersion); } \
  NS_IMETHOD GetDetectedOSFlavor(PRUnichar **aDetectedOSFlavor) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDetectedOSFlavor(aDetectedOSFlavor); } \
  NS_IMETHOD GetDetectedOSLanguages(PRUnichar **aDetectedOSLanguages) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDetectedOSLanguages(aDetectedOSLanguages); } \
  NS_IMETHOD GetDetectedOSHints(PRUnichar **aDetectedOSHints) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDetectedOSHints(aDetectedOSHints); } \
  NS_IMETHOD GetDetectedImageNames(PRUint32 *detectedImageNamesSize, PRUnichar ***detectedImageNames) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDetectedImageNames(detectedImageNamesSize, detectedImageNames); } \
  NS_IMETHOD GetDetectedImageIndices(PRUint32 *detectedImageIndicesSize, PRUint32 **detectedImageIndices) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDetectedImageIndices(detectedImageIndicesSize, detectedImageIndices); } \
  NS_IMETHOD GetIsUnattendedInstallSupported(PRBool *aIsUnattendedInstallSupported) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsUnattendedInstallSupported(aIsUnattendedInstallSupported); } \
  NS_IMETHOD GetAvoidUpdatesOverNetwork(PRBool *aAvoidUpdatesOverNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAvoidUpdatesOverNetwork(aAvoidUpdatesOverNetwork); } \
  NS_IMETHOD SetAvoidUpdatesOverNetwork(PRBool aAvoidUpdatesOverNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAvoidUpdatesOverNetwork(aAvoidUpdatesOverNetwork); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IUnattended(PRUint32 *aInternalAndReservedAttribute1IUnattended) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IUnattended(aInternalAndReservedAttribute1IUnattended); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IUnattended(PRUint32 *aInternalAndReservedAttribute2IUnattended) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IUnattended(aInternalAndReservedAttribute2IUnattended); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IUnattended(PRUint32 *aInternalAndReservedAttribute3IUnattended) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IUnattended(aInternalAndReservedAttribute3IUnattended); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IUnattended(PRUint32 *aInternalAndReservedAttribute4IUnattended) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IUnattended(aInternalAndReservedAttribute4IUnattended); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IUnattended(PRUint32 *aInternalAndReservedAttribute5IUnattended) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IUnattended(aInternalAndReservedAttribute5IUnattended); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IUnattended(PRUint32 *aInternalAndReservedAttribute6IUnattended) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IUnattended(aInternalAndReservedAttribute6IUnattended); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IUnattended(PRUint32 *aInternalAndReservedAttribute7IUnattended) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IUnattended(aInternalAndReservedAttribute7IUnattended); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IUnattended(PRUint32 *aInternalAndReservedAttribute8IUnattended) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IUnattended(aInternalAndReservedAttribute8IUnattended); } \
  NS_IMETHOD GetInternalAndReservedAttribute9IUnattended(PRUint32 *aInternalAndReservedAttribute9IUnattended) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute9IUnattended(aInternalAndReservedAttribute9IUnattended); } \
  NS_IMETHOD GetInternalAndReservedAttribute10IUnattended(PRUint32 *aInternalAndReservedAttribute10IUnattended) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute10IUnattended(aInternalAndReservedAttribute10IUnattended); } \
  NS_IMETHOD GetInternalAndReservedAttribute11IUnattended(PRUint32 *aInternalAndReservedAttribute11IUnattended) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute11IUnattended(aInternalAndReservedAttribute11IUnattended); } \
  NS_IMETHOD GetInternalAndReservedAttribute12IUnattended(PRUint32 *aInternalAndReservedAttribute12IUnattended) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute12IUnattended(aInternalAndReservedAttribute12IUnattended); } \
  NS_IMETHOD GetInternalAndReservedAttribute13IUnattended(PRUint32 *aInternalAndReservedAttribute13IUnattended) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute13IUnattended(aInternalAndReservedAttribute13IUnattended); } \
  NS_IMETHOD GetInternalAndReservedAttribute14IUnattended(PRUint32 *aInternalAndReservedAttribute14IUnattended) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute14IUnattended(aInternalAndReservedAttribute14IUnattended); } \
  NS_IMETHOD GetInternalAndReservedAttribute15IUnattended(PRUint32 *aInternalAndReservedAttribute15IUnattended) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute15IUnattended(aInternalAndReservedAttribute15IUnattended); } \
  NS_IMETHOD GetInternalAndReservedAttribute16IUnattended(PRUint32 *aInternalAndReservedAttribute16IUnattended) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute16IUnattended(aInternalAndReservedAttribute16IUnattended); } \
  NS_IMETHOD DetectIsoOS(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->DetectIsoOS(); } \
  NS_IMETHOD Prepare(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Prepare(); } \
  NS_IMETHOD ConstructMedia(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->ConstructMedia(); } \
  NS_IMETHOD ReconfigureVM(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->ReconfigureVM(); } \
  NS_IMETHOD Done(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Done(); } \
  NS_IMETHOD InternalAndReservedMethod1IUnattended(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IUnattended(); } \
  NS_IMETHOD InternalAndReservedMethod2IUnattended(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IUnattended(); } \
  NS_IMETHOD InternalAndReservedMethod3IUnattended(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IUnattended(); } \
  NS_IMETHOD InternalAndReservedMethod4IUnattended(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IUnattended(); } 

#define COM_FORWARD_IUnattended_GETTER_IsoPath_TO(smth) NS_IMETHOD GetIsoPath (PRUnichar * * aIsoPath) { return smth GetIsoPath (aIsoPath); }
#define COM_FORWARD_IUnattended_GETTER_IsoPath_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_IsoPath_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_IsoPath_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_IsoPath_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_IsoPath_TO(smth) NS_IMETHOD SetIsoPath (const PRUnichar * aIsoPath) { return smth SetIsoPath (aIsoPath); }
#define COM_FORWARD_IUnattended_SETTER_IsoPath_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_IsoPath_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_IsoPath_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_IsoPath_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_Machine_TO(smth) NS_IMETHOD GetMachine (IMachine * * aMachine) { return smth GetMachine (aMachine); }
#define COM_FORWARD_IUnattended_GETTER_Machine_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_Machine_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_Machine_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_Machine_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_Machine_TO(smth) NS_IMETHOD SetMachine (IMachine * aMachine) { return smth SetMachine (aMachine); }
#define COM_FORWARD_IUnattended_SETTER_Machine_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_Machine_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_Machine_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_Machine_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_User_TO(smth) NS_IMETHOD GetUser (PRUnichar * * aUser) { return smth GetUser (aUser); }
#define COM_FORWARD_IUnattended_GETTER_User_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_User_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_User_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_User_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_User_TO(smth) NS_IMETHOD SetUser (const PRUnichar * aUser) { return smth SetUser (aUser); }
#define COM_FORWARD_IUnattended_SETTER_User_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_User_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_User_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_User_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_UserPassword_TO(smth) NS_IMETHOD GetUserPassword (PRUnichar * * aUserPassword) { return smth GetUserPassword (aUserPassword); }
#define COM_FORWARD_IUnattended_GETTER_UserPassword_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_UserPassword_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_UserPassword_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_UserPassword_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_UserPassword_TO(smth) NS_IMETHOD SetUserPassword (const PRUnichar * aUserPassword) { return smth SetUserPassword (aUserPassword); }
#define COM_FORWARD_IUnattended_SETTER_UserPassword_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_UserPassword_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_UserPassword_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_UserPassword_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_AdminPassword_TO(smth) NS_IMETHOD GetAdminPassword (PRUnichar * * aAdminPassword) { return smth GetAdminPassword (aAdminPassword); }
#define COM_FORWARD_IUnattended_GETTER_AdminPassword_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_AdminPassword_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_AdminPassword_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_AdminPassword_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_AdminPassword_TO(smth) NS_IMETHOD SetAdminPassword (const PRUnichar * aAdminPassword) { return smth SetAdminPassword (aAdminPassword); }
#define COM_FORWARD_IUnattended_SETTER_AdminPassword_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_AdminPassword_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_AdminPassword_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_AdminPassword_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_FullUserName_TO(smth) NS_IMETHOD GetFullUserName (PRUnichar * * aFullUserName) { return smth GetFullUserName (aFullUserName); }
#define COM_FORWARD_IUnattended_GETTER_FullUserName_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_FullUserName_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_FullUserName_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_FullUserName_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_FullUserName_TO(smth) NS_IMETHOD SetFullUserName (const PRUnichar * aFullUserName) { return smth SetFullUserName (aFullUserName); }
#define COM_FORWARD_IUnattended_SETTER_FullUserName_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_FullUserName_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_FullUserName_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_FullUserName_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_ProductKey_TO(smth) NS_IMETHOD GetProductKey (PRUnichar * * aProductKey) { return smth GetProductKey (aProductKey); }
#define COM_FORWARD_IUnattended_GETTER_ProductKey_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_ProductKey_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_ProductKey_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_ProductKey_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_ProductKey_TO(smth) NS_IMETHOD SetProductKey (const PRUnichar * aProductKey) { return smth SetProductKey (aProductKey); }
#define COM_FORWARD_IUnattended_SETTER_ProductKey_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_ProductKey_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_ProductKey_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_ProductKey_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_AdditionsIsoPath_TO(smth) NS_IMETHOD GetAdditionsIsoPath (PRUnichar * * aAdditionsIsoPath) { return smth GetAdditionsIsoPath (aAdditionsIsoPath); }
#define COM_FORWARD_IUnattended_GETTER_AdditionsIsoPath_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_AdditionsIsoPath_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_AdditionsIsoPath_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_AdditionsIsoPath_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_AdditionsIsoPath_TO(smth) NS_IMETHOD SetAdditionsIsoPath (const PRUnichar * aAdditionsIsoPath) { return smth SetAdditionsIsoPath (aAdditionsIsoPath); }
#define COM_FORWARD_IUnattended_SETTER_AdditionsIsoPath_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_AdditionsIsoPath_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_AdditionsIsoPath_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_AdditionsIsoPath_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_InstallGuestAdditions_TO(smth) NS_IMETHOD GetInstallGuestAdditions (PRBool * aInstallGuestAdditions) { return smth GetInstallGuestAdditions (aInstallGuestAdditions); }
#define COM_FORWARD_IUnattended_GETTER_InstallGuestAdditions_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_InstallGuestAdditions_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_InstallGuestAdditions_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_InstallGuestAdditions_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_InstallGuestAdditions_TO(smth) NS_IMETHOD SetInstallGuestAdditions (PRBool aInstallGuestAdditions) { return smth SetInstallGuestAdditions (aInstallGuestAdditions); }
#define COM_FORWARD_IUnattended_SETTER_InstallGuestAdditions_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_InstallGuestAdditions_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_InstallGuestAdditions_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_InstallGuestAdditions_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_ProductKeyRequired_TO(smth) NS_IMETHOD GetProductKeyRequired (PRBool * aProductKeyRequired) { return smth GetProductKeyRequired (aProductKeyRequired); }
#define COM_FORWARD_IUnattended_GETTER_ProductKeyRequired_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_ProductKeyRequired_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_ProductKeyRequired_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_ProductKeyRequired_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_ValidationKitIsoPath_TO(smth) NS_IMETHOD GetValidationKitIsoPath (PRUnichar * * aValidationKitIsoPath) { return smth GetValidationKitIsoPath (aValidationKitIsoPath); }
#define COM_FORWARD_IUnattended_GETTER_ValidationKitIsoPath_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_ValidationKitIsoPath_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_ValidationKitIsoPath_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_ValidationKitIsoPath_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_ValidationKitIsoPath_TO(smth) NS_IMETHOD SetValidationKitIsoPath (const PRUnichar * aValidationKitIsoPath) { return smth SetValidationKitIsoPath (aValidationKitIsoPath); }
#define COM_FORWARD_IUnattended_SETTER_ValidationKitIsoPath_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_ValidationKitIsoPath_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_ValidationKitIsoPath_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_ValidationKitIsoPath_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_InstallTestExecService_TO(smth) NS_IMETHOD GetInstallTestExecService (PRBool * aInstallTestExecService) { return smth GetInstallTestExecService (aInstallTestExecService); }
#define COM_FORWARD_IUnattended_GETTER_InstallTestExecService_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_InstallTestExecService_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_InstallTestExecService_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_InstallTestExecService_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_InstallTestExecService_TO(smth) NS_IMETHOD SetInstallTestExecService (PRBool aInstallTestExecService) { return smth SetInstallTestExecService (aInstallTestExecService); }
#define COM_FORWARD_IUnattended_SETTER_InstallTestExecService_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_InstallTestExecService_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_InstallTestExecService_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_InstallTestExecService_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_UserPayloadIsoPath_TO(smth) NS_IMETHOD GetUserPayloadIsoPath (PRUnichar * * aUserPayloadIsoPath) { return smth GetUserPayloadIsoPath (aUserPayloadIsoPath); }
#define COM_FORWARD_IUnattended_GETTER_UserPayloadIsoPath_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_UserPayloadIsoPath_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_UserPayloadIsoPath_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_UserPayloadIsoPath_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_UserPayloadIsoPath_TO(smth) NS_IMETHOD SetUserPayloadIsoPath (const PRUnichar * aUserPayloadIsoPath) { return smth SetUserPayloadIsoPath (aUserPayloadIsoPath); }
#define COM_FORWARD_IUnattended_SETTER_UserPayloadIsoPath_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_UserPayloadIsoPath_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_UserPayloadIsoPath_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_UserPayloadIsoPath_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_InstallUserPayload_TO(smth) NS_IMETHOD GetInstallUserPayload (PRBool * aInstallUserPayload) { return smth GetInstallUserPayload (aInstallUserPayload); }
#define COM_FORWARD_IUnattended_GETTER_InstallUserPayload_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_InstallUserPayload_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_InstallUserPayload_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_InstallUserPayload_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_InstallUserPayload_TO(smth) NS_IMETHOD SetInstallUserPayload (PRBool aInstallUserPayload) { return smth SetInstallUserPayload (aInstallUserPayload); }
#define COM_FORWARD_IUnattended_SETTER_InstallUserPayload_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_InstallUserPayload_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_InstallUserPayload_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_InstallUserPayload_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_TimeZone_TO(smth) NS_IMETHOD GetTimeZone (PRUnichar * * aTimeZone) { return smth GetTimeZone (aTimeZone); }
#define COM_FORWARD_IUnattended_GETTER_TimeZone_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_TimeZone_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_TimeZone_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_TimeZone_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_TimeZone_TO(smth) NS_IMETHOD SetTimeZone (const PRUnichar * aTimeZone) { return smth SetTimeZone (aTimeZone); }
#define COM_FORWARD_IUnattended_SETTER_TimeZone_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_TimeZone_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_TimeZone_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_TimeZone_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_KeyboardLayout_TO(smth) NS_IMETHOD GetKeyboardLayout (PRUnichar * * aKeyboardLayout) { return smth GetKeyboardLayout (aKeyboardLayout); }
#define COM_FORWARD_IUnattended_GETTER_KeyboardLayout_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_KeyboardLayout_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_KeyboardLayout_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_KeyboardLayout_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_KeyboardLayout_TO(smth) NS_IMETHOD SetKeyboardLayout (const PRUnichar * aKeyboardLayout) { return smth SetKeyboardLayout (aKeyboardLayout); }
#define COM_FORWARD_IUnattended_SETTER_KeyboardLayout_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_KeyboardLayout_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_KeyboardLayout_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_KeyboardLayout_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_KeyboardVariant_TO(smth) NS_IMETHOD GetKeyboardVariant (PRUnichar * * aKeyboardVariant) { return smth GetKeyboardVariant (aKeyboardVariant); }
#define COM_FORWARD_IUnattended_GETTER_KeyboardVariant_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_KeyboardVariant_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_KeyboardVariant_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_KeyboardVariant_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_KeyboardVariant_TO(smth) NS_IMETHOD SetKeyboardVariant (const PRUnichar * aKeyboardVariant) { return smth SetKeyboardVariant (aKeyboardVariant); }
#define COM_FORWARD_IUnattended_SETTER_KeyboardVariant_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_KeyboardVariant_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_KeyboardVariant_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_KeyboardVariant_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_Locale_TO(smth) NS_IMETHOD GetLocale (PRUnichar * * aLocale) { return smth GetLocale (aLocale); }
#define COM_FORWARD_IUnattended_GETTER_Locale_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_Locale_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_Locale_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_Locale_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_Locale_TO(smth) NS_IMETHOD SetLocale (const PRUnichar * aLocale) { return smth SetLocale (aLocale); }
#define COM_FORWARD_IUnattended_SETTER_Locale_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_Locale_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_Locale_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_Locale_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_Language_TO(smth) NS_IMETHOD GetLanguage (PRUnichar * * aLanguage) { return smth GetLanguage (aLanguage); }
#define COM_FORWARD_IUnattended_GETTER_Language_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_Language_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_Language_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_Language_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_Language_TO(smth) NS_IMETHOD SetLanguage (const PRUnichar * aLanguage) { return smth SetLanguage (aLanguage); }
#define COM_FORWARD_IUnattended_SETTER_Language_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_Language_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_Language_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_Language_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_Country_TO(smth) NS_IMETHOD GetCountry (PRUnichar * * aCountry) { return smth GetCountry (aCountry); }
#define COM_FORWARD_IUnattended_GETTER_Country_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_Country_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_Country_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_Country_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_Country_TO(smth) NS_IMETHOD SetCountry (const PRUnichar * aCountry) { return smth SetCountry (aCountry); }
#define COM_FORWARD_IUnattended_SETTER_Country_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_Country_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_Country_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_Country_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_Proxy_TO(smth) NS_IMETHOD GetProxy (PRUnichar * * aProxy) { return smth GetProxy (aProxy); }
#define COM_FORWARD_IUnattended_GETTER_Proxy_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_Proxy_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_Proxy_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_Proxy_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_Proxy_TO(smth) NS_IMETHOD SetProxy (const PRUnichar * aProxy) { return smth SetProxy (aProxy); }
#define COM_FORWARD_IUnattended_SETTER_Proxy_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_Proxy_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_Proxy_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_Proxy_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_PackageSelectionAdjustments_TO(smth) NS_IMETHOD GetPackageSelectionAdjustments (PRUnichar * * aPackageSelectionAdjustments) { return smth GetPackageSelectionAdjustments (aPackageSelectionAdjustments); }
#define COM_FORWARD_IUnattended_GETTER_PackageSelectionAdjustments_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_PackageSelectionAdjustments_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_PackageSelectionAdjustments_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_PackageSelectionAdjustments_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_PackageSelectionAdjustments_TO(smth) NS_IMETHOD SetPackageSelectionAdjustments (const PRUnichar * aPackageSelectionAdjustments) { return smth SetPackageSelectionAdjustments (aPackageSelectionAdjustments); }
#define COM_FORWARD_IUnattended_SETTER_PackageSelectionAdjustments_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_PackageSelectionAdjustments_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_PackageSelectionAdjustments_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_PackageSelectionAdjustments_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_Hostname_TO(smth) NS_IMETHOD GetHostname (PRUnichar * * aHostname) { return smth GetHostname (aHostname); }
#define COM_FORWARD_IUnattended_GETTER_Hostname_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_Hostname_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_Hostname_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_Hostname_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_Hostname_TO(smth) NS_IMETHOD SetHostname (const PRUnichar * aHostname) { return smth SetHostname (aHostname); }
#define COM_FORWARD_IUnattended_SETTER_Hostname_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_Hostname_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_Hostname_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_Hostname_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_AuxiliaryBasePath_TO(smth) NS_IMETHOD GetAuxiliaryBasePath (PRUnichar * * aAuxiliaryBasePath) { return smth GetAuxiliaryBasePath (aAuxiliaryBasePath); }
#define COM_FORWARD_IUnattended_GETTER_AuxiliaryBasePath_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_AuxiliaryBasePath_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_AuxiliaryBasePath_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_AuxiliaryBasePath_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_AuxiliaryBasePath_TO(smth) NS_IMETHOD SetAuxiliaryBasePath (const PRUnichar * aAuxiliaryBasePath) { return smth SetAuxiliaryBasePath (aAuxiliaryBasePath); }
#define COM_FORWARD_IUnattended_SETTER_AuxiliaryBasePath_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_AuxiliaryBasePath_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_AuxiliaryBasePath_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_AuxiliaryBasePath_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_ImageIndex_TO(smth) NS_IMETHOD GetImageIndex (PRUint32 * aImageIndex) { return smth GetImageIndex (aImageIndex); }
#define COM_FORWARD_IUnattended_GETTER_ImageIndex_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_ImageIndex_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_ImageIndex_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_ImageIndex_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_ImageIndex_TO(smth) NS_IMETHOD SetImageIndex (PRUint32 aImageIndex) { return smth SetImageIndex (aImageIndex); }
#define COM_FORWARD_IUnattended_SETTER_ImageIndex_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_ImageIndex_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_ImageIndex_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_ImageIndex_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_ScriptTemplatePath_TO(smth) NS_IMETHOD GetScriptTemplatePath (PRUnichar * * aScriptTemplatePath) { return smth GetScriptTemplatePath (aScriptTemplatePath); }
#define COM_FORWARD_IUnattended_GETTER_ScriptTemplatePath_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_ScriptTemplatePath_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_ScriptTemplatePath_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_ScriptTemplatePath_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_ScriptTemplatePath_TO(smth) NS_IMETHOD SetScriptTemplatePath (const PRUnichar * aScriptTemplatePath) { return smth SetScriptTemplatePath (aScriptTemplatePath); }
#define COM_FORWARD_IUnattended_SETTER_ScriptTemplatePath_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_ScriptTemplatePath_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_ScriptTemplatePath_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_ScriptTemplatePath_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_PostInstallScriptTemplatePath_TO(smth) NS_IMETHOD GetPostInstallScriptTemplatePath (PRUnichar * * aPostInstallScriptTemplatePath) { return smth GetPostInstallScriptTemplatePath (aPostInstallScriptTemplatePath); }
#define COM_FORWARD_IUnattended_GETTER_PostInstallScriptTemplatePath_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_PostInstallScriptTemplatePath_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_PostInstallScriptTemplatePath_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_PostInstallScriptTemplatePath_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_PostInstallScriptTemplatePath_TO(smth) NS_IMETHOD SetPostInstallScriptTemplatePath (const PRUnichar * aPostInstallScriptTemplatePath) { return smth SetPostInstallScriptTemplatePath (aPostInstallScriptTemplatePath); }
#define COM_FORWARD_IUnattended_SETTER_PostInstallScriptTemplatePath_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_PostInstallScriptTemplatePath_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_PostInstallScriptTemplatePath_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_PostInstallScriptTemplatePath_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_PostInstallCommand_TO(smth) NS_IMETHOD GetPostInstallCommand (PRUnichar * * aPostInstallCommand) { return smth GetPostInstallCommand (aPostInstallCommand); }
#define COM_FORWARD_IUnattended_GETTER_PostInstallCommand_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_PostInstallCommand_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_PostInstallCommand_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_PostInstallCommand_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_PostInstallCommand_TO(smth) NS_IMETHOD SetPostInstallCommand (const PRUnichar * aPostInstallCommand) { return smth SetPostInstallCommand (aPostInstallCommand); }
#define COM_FORWARD_IUnattended_SETTER_PostInstallCommand_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_PostInstallCommand_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_PostInstallCommand_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_PostInstallCommand_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_ExtraInstallKernelParameters_TO(smth) NS_IMETHOD GetExtraInstallKernelParameters (PRUnichar * * aExtraInstallKernelParameters) { return smth GetExtraInstallKernelParameters (aExtraInstallKernelParameters); }
#define COM_FORWARD_IUnattended_GETTER_ExtraInstallKernelParameters_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_ExtraInstallKernelParameters_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_ExtraInstallKernelParameters_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_ExtraInstallKernelParameters_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_ExtraInstallKernelParameters_TO(smth) NS_IMETHOD SetExtraInstallKernelParameters (const PRUnichar * aExtraInstallKernelParameters) { return smth SetExtraInstallKernelParameters (aExtraInstallKernelParameters); }
#define COM_FORWARD_IUnattended_SETTER_ExtraInstallKernelParameters_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_ExtraInstallKernelParameters_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_ExtraInstallKernelParameters_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_ExtraInstallKernelParameters_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_DetectedOSTypeId_TO(smth) NS_IMETHOD GetDetectedOSTypeId (PRUnichar * * aDetectedOSTypeId) { return smth GetDetectedOSTypeId (aDetectedOSTypeId); }
#define COM_FORWARD_IUnattended_GETTER_DetectedOSTypeId_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_DetectedOSTypeId_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_DetectedOSTypeId_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_DetectedOSTypeId_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_DetectedOSVersion_TO(smth) NS_IMETHOD GetDetectedOSVersion (PRUnichar * * aDetectedOSVersion) { return smth GetDetectedOSVersion (aDetectedOSVersion); }
#define COM_FORWARD_IUnattended_GETTER_DetectedOSVersion_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_DetectedOSVersion_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_DetectedOSVersion_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_DetectedOSVersion_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_DetectedOSFlavor_TO(smth) NS_IMETHOD GetDetectedOSFlavor (PRUnichar * * aDetectedOSFlavor) { return smth GetDetectedOSFlavor (aDetectedOSFlavor); }
#define COM_FORWARD_IUnattended_GETTER_DetectedOSFlavor_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_DetectedOSFlavor_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_DetectedOSFlavor_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_DetectedOSFlavor_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_DetectedOSLanguages_TO(smth) NS_IMETHOD GetDetectedOSLanguages (PRUnichar * * aDetectedOSLanguages) { return smth GetDetectedOSLanguages (aDetectedOSLanguages); }
#define COM_FORWARD_IUnattended_GETTER_DetectedOSLanguages_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_DetectedOSLanguages_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_DetectedOSLanguages_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_DetectedOSLanguages_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_DetectedOSHints_TO(smth) NS_IMETHOD GetDetectedOSHints (PRUnichar * * aDetectedOSHints) { return smth GetDetectedOSHints (aDetectedOSHints); }
#define COM_FORWARD_IUnattended_GETTER_DetectedOSHints_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_DetectedOSHints_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_DetectedOSHints_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_DetectedOSHints_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_DetectedImageNames_TO(smth) NS_IMETHOD GetDetectedImageNames (PRUint32 * aDetectedImageNamesSize, PRUnichar * * * aDetectedImageNames) { return smth GetDetectedImageNames (aDetectedImageNamesSize, aDetectedImageNames); }
#define COM_FORWARD_IUnattended_GETTER_DetectedImageNames_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_DetectedImageNames_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_DetectedImageNames_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_DetectedImageNames_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_DetectedImageIndices_TO(smth) NS_IMETHOD GetDetectedImageIndices (PRUint32 * aDetectedImageIndicesSize, PRUint32 * * aDetectedImageIndices) { return smth GetDetectedImageIndices (aDetectedImageIndicesSize, aDetectedImageIndices); }
#define COM_FORWARD_IUnattended_GETTER_DetectedImageIndices_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_DetectedImageIndices_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_DetectedImageIndices_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_DetectedImageIndices_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_IsUnattendedInstallSupported_TO(smth) NS_IMETHOD GetIsUnattendedInstallSupported (PRBool * aIsUnattendedInstallSupported) { return smth GetIsUnattendedInstallSupported (aIsUnattendedInstallSupported); }
#define COM_FORWARD_IUnattended_GETTER_IsUnattendedInstallSupported_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_IsUnattendedInstallSupported_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_IsUnattendedInstallSupported_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_IsUnattendedInstallSupported_TO (base::)
#define COM_FORWARD_IUnattended_GETTER_AvoidUpdatesOverNetwork_TO(smth) NS_IMETHOD GetAvoidUpdatesOverNetwork (PRBool * aAvoidUpdatesOverNetwork) { return smth GetAvoidUpdatesOverNetwork (aAvoidUpdatesOverNetwork); }
#define COM_FORWARD_IUnattended_GETTER_AvoidUpdatesOverNetwork_TO_OBJ(obj) COM_FORWARD_IUnattended_GETTER_AvoidUpdatesOverNetwork_TO ((obj)->)
#define COM_FORWARD_IUnattended_GETTER_AvoidUpdatesOverNetwork_TO_BASE(base) COM_FORWARD_IUnattended_GETTER_AvoidUpdatesOverNetwork_TO (base::)
#define COM_FORWARD_IUnattended_SETTER_AvoidUpdatesOverNetwork_TO(smth) NS_IMETHOD SetAvoidUpdatesOverNetwork (PRBool aAvoidUpdatesOverNetwork) { return smth SetAvoidUpdatesOverNetwork (aAvoidUpdatesOverNetwork); }
#define COM_FORWARD_IUnattended_SETTER_AvoidUpdatesOverNetwork_TO_OBJ(obj) COM_FORWARD_IUnattended_SETTER_AvoidUpdatesOverNetwork_TO ((obj)->)
#define COM_FORWARD_IUnattended_SETTER_AvoidUpdatesOverNetwork_TO_BASE(base) COM_FORWARD_IUnattended_SETTER_AvoidUpdatesOverNetwork_TO (base::)
#define COM_FORWARD_IUnattended_DetectIsoOS_TO(smth) NS_IMETHOD DetectIsoOS() { return smth DetectIsoOS(); }
#define COM_FORWARD_IUnattended_DetectIsoOS_TO_OBJ(obj) COM_FORWARD_IUnattended_DetectIsoOS_TO ((obj)->)
#define COM_FORWARD_IUnattended_DetectIsoOS_TO_BASE(base) COM_FORWARD_IUnattended_DetectIsoOS_TO (base::)
#define COM_FORWARD_IUnattended_Prepare_TO(smth) NS_IMETHOD Prepare() { return smth Prepare(); }
#define COM_FORWARD_IUnattended_Prepare_TO_OBJ(obj) COM_FORWARD_IUnattended_Prepare_TO ((obj)->)
#define COM_FORWARD_IUnattended_Prepare_TO_BASE(base) COM_FORWARD_IUnattended_Prepare_TO (base::)
#define COM_FORWARD_IUnattended_ConstructMedia_TO(smth) NS_IMETHOD ConstructMedia() { return smth ConstructMedia(); }
#define COM_FORWARD_IUnattended_ConstructMedia_TO_OBJ(obj) COM_FORWARD_IUnattended_ConstructMedia_TO ((obj)->)
#define COM_FORWARD_IUnattended_ConstructMedia_TO_BASE(base) COM_FORWARD_IUnattended_ConstructMedia_TO (base::)
#define COM_FORWARD_IUnattended_ReconfigureVM_TO(smth) NS_IMETHOD ReconfigureVM() { return smth ReconfigureVM(); }
#define COM_FORWARD_IUnattended_ReconfigureVM_TO_OBJ(obj) COM_FORWARD_IUnattended_ReconfigureVM_TO ((obj)->)
#define COM_FORWARD_IUnattended_ReconfigureVM_TO_BASE(base) COM_FORWARD_IUnattended_ReconfigureVM_TO (base::)
#define COM_FORWARD_IUnattended_Done_TO(smth) NS_IMETHOD Done() { return smth Done(); }
#define COM_FORWARD_IUnattended_Done_TO_OBJ(obj) COM_FORWARD_IUnattended_Done_TO ((obj)->)
#define COM_FORWARD_IUnattended_Done_TO_BASE(base) COM_FORWARD_IUnattended_Done_TO (base::)
#define COM_FORWARD_IUnattended_TO(smth) NS_FORWARD_IUNATTENDED (smth)
#define COM_FORWARD_IUnattended_TO_OBJ(obj) COM_FORWARD_IUnattended_TO ((obj)->)
#define COM_FORWARD_IUnattended_TO_BASE(base) COM_FORWARD_IUnattended_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IUnattended;

/* starting interface:    IInternalMachineControl */
#define IINTERNALMACHINECONTROL_IID_STR "ea05e40c-cb31-423b-b3b7-a5b19300f40c"

#define IINTERNALMACHINECONTROL_IID \
  {0xea05e40c, 0xcb31, 0x423b, \
    { 0xb3, 0xb7, 0xa5, 0xb1, 0x93, 0x00, 0xf4, 0x0c }}

class NS_NO_VTABLE IInternalMachineControl : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IINTERNALMACHINECONTROL_IID)

  /* void updateState (in MachineState_T state); */
  NS_IMETHOD UpdateState(MachineState_T 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, in boolean fWasDeleted); */
  NS_IMETHOD PushGuestProperty(const PRUnichar *name, const PRUnichar *value, PRInt64 timestamp, const PRUnichar *flags, PRBool fWasDeleted) = 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(MachineState_T state) NS_OVERRIDE; \
  NS_IMETHOD BeginPowerUp(IProgress * progress) NS_OVERRIDE; \
  NS_IMETHOD EndPowerUp(PRInt32 result) NS_OVERRIDE; \
  NS_IMETHOD BeginPoweringDown(IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD EndPoweringDown(PRInt32 result, const PRUnichar *errMsg) NS_OVERRIDE; \
  NS_IMETHOD RunUSBDeviceFilters(IUSBDevice * device, PRBool *matched, PRUint32 *maskedInterfaces) NS_OVERRIDE; \
  NS_IMETHOD CaptureUSBDevice(const PRUnichar *id, const PRUnichar *captureFilename) NS_OVERRIDE; \
  NS_IMETHOD DetachUSBDevice(const PRUnichar *id, PRBool done) NS_OVERRIDE; \
  NS_IMETHOD AutoCaptureUSBDevices(void) NS_OVERRIDE; \
  NS_IMETHOD DetachAllUSBDevices(PRBool done) NS_OVERRIDE; \
  NS_IMETHOD OnSessionEnd(ISession * session, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD FinishOnlineMergeMedium(void) NS_OVERRIDE; \
  NS_IMETHOD PullGuestProperties(PRUint32 *namesSize, PRUnichar ***names, PRUint32 *valuesSize, PRUnichar ***values, PRUint32 *timestampsSize, PRInt64 **timestamps, PRUint32 *flagsSize, PRUnichar ***flags) NS_OVERRIDE; \
  NS_IMETHOD PushGuestProperty(const PRUnichar *name, const PRUnichar *value, PRInt64 timestamp, const PRUnichar *flags, PRBool fWasDeleted) NS_OVERRIDE; \
  NS_IMETHOD LockMedia(void) NS_OVERRIDE; \
  NS_IMETHOD UnlockMedia(void) NS_OVERRIDE; \
  NS_IMETHOD EjectMedium(IMediumAttachment * attachment, IMediumAttachment * *newAttachment) NS_OVERRIDE; \
  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_OVERRIDE; \
  NS_IMETHOD AuthenticateExternal(PRUint32 authParamsSize, const PRUnichar **authParams, PRUnichar **result) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IINTERNALMACHINECONTROL(_to) \
  NS_IMETHOD UpdateState(MachineState_T 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, PRBool fWasDeleted) { return _to PushGuestProperty(name, value, timestamp, flags, fWasDeleted); } \
  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(MachineState_T 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, PRBool fWasDeleted) { return !_to ? NS_ERROR_NULL_POINTER : _to->PushGuestProperty(name, value, timestamp, flags, fWasDeleted); } \
  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); } 

#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, PRBool aFWasDeleted) { return smth PushGuestProperty (aName, aValue, aTimestamp, aFlags, aFWasDeleted); }
#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:    IGraphicsAdapter */
#define IGRAPHICSADAPTER_IID_STR "13ee6eb4-06fe-406b-ad69-f6e08b0587a3"

#define IGRAPHICSADAPTER_IID \
  {0x13ee6eb4, 0x06fe, 0x406b, \
    { 0xad, 0x69, 0xf6, 0xe0, 0x8b, 0x05, 0x87, 0xa3 }}

class NS_NO_VTABLE IGraphicsAdapter : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGRAPHICSADAPTER_IID)

  /* attribute GraphicsControllerType_T graphicsControllerType; */
  NS_IMETHOD GetGraphicsControllerType(GraphicsControllerType_T *aGraphicsControllerType) = 0;
  NS_IMETHOD SetGraphicsControllerType(GraphicsControllerType_T aGraphicsControllerType) = 0;

  /* attribute unsigned long VRAMSize; */
  NS_IMETHOD GetVRAMSize(PRUint32 *aVRAMSize) = 0;
  NS_IMETHOD SetVRAMSize(PRUint32 aVRAMSize) = 0;

  /* attribute unsigned long monitorCount; */
  NS_IMETHOD GetMonitorCount(PRUint32 *aMonitorCount) = 0;
  NS_IMETHOD SetMonitorCount(PRUint32 aMonitorCount) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IGraphicsAdapter; */
  NS_IMETHOD GetInternalAndReservedAttribute1IGraphicsAdapter(PRUint32 *aInternalAndReservedAttribute1IGraphicsAdapter) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IGraphicsAdapter; */
  NS_IMETHOD GetInternalAndReservedAttribute2IGraphicsAdapter(PRUint32 *aInternalAndReservedAttribute2IGraphicsAdapter) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IGraphicsAdapter; */
  NS_IMETHOD GetInternalAndReservedAttribute3IGraphicsAdapter(PRUint32 *aInternalAndReservedAttribute3IGraphicsAdapter) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IGraphicsAdapter; */
  NS_IMETHOD GetInternalAndReservedAttribute4IGraphicsAdapter(PRUint32 *aInternalAndReservedAttribute4IGraphicsAdapter) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IGraphicsAdapter; */
  NS_IMETHOD GetInternalAndReservedAttribute5IGraphicsAdapter(PRUint32 *aInternalAndReservedAttribute5IGraphicsAdapter) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IGraphicsAdapter; */
  NS_IMETHOD GetInternalAndReservedAttribute6IGraphicsAdapter(PRUint32 *aInternalAndReservedAttribute6IGraphicsAdapter) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IGraphicsAdapter; */
  NS_IMETHOD GetInternalAndReservedAttribute7IGraphicsAdapter(PRUint32 *aInternalAndReservedAttribute7IGraphicsAdapter) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IGraphicsAdapter; */
  NS_IMETHOD GetInternalAndReservedAttribute8IGraphicsAdapter(PRUint32 *aInternalAndReservedAttribute8IGraphicsAdapter) = 0;

  /* void setFeature (in GraphicsFeature_T feature, in boolean enabled); */
  NS_IMETHOD SetFeature(GraphicsFeature_T feature, PRBool enabled) = 0;

  /* void isFeatureEnabled (in GraphicsFeature_T feature, [retval] out boolean enabled); */
  NS_IMETHOD IsFeatureEnabled(GraphicsFeature_T feature, PRBool *enabled) = 0;

  /* void InternalAndReservedMethod1IGraphicsAdapter (); */
  NS_IMETHOD InternalAndReservedMethod1IGraphicsAdapter(void) = 0;

  /* void InternalAndReservedMethod2IGraphicsAdapter (); */
  NS_IMETHOD InternalAndReservedMethod2IGraphicsAdapter(void) = 0;

  /* void InternalAndReservedMethod3IGraphicsAdapter (); */
  NS_IMETHOD InternalAndReservedMethod3IGraphicsAdapter(void) = 0;

  /* void InternalAndReservedMethod4IGraphicsAdapter (); */
  NS_IMETHOD InternalAndReservedMethod4IGraphicsAdapter(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGRAPHICSADAPTER \
  NS_IMETHOD GetGraphicsControllerType(GraphicsControllerType_T *aGraphicsControllerType) NS_OVERRIDE; \
  NS_IMETHOD SetGraphicsControllerType(GraphicsControllerType_T aGraphicsControllerType) NS_OVERRIDE; \
  NS_IMETHOD GetVRAMSize(PRUint32 *aVRAMSize) NS_OVERRIDE; \
  NS_IMETHOD SetVRAMSize(PRUint32 aVRAMSize) NS_OVERRIDE; \
  NS_IMETHOD GetMonitorCount(PRUint32 *aMonitorCount) NS_OVERRIDE; \
  NS_IMETHOD SetMonitorCount(PRUint32 aMonitorCount) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IGraphicsAdapter(PRUint32 *aInternalAndReservedAttribute1IGraphicsAdapter) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IGraphicsAdapter(PRUint32 *aInternalAndReservedAttribute2IGraphicsAdapter) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IGraphicsAdapter(PRUint32 *aInternalAndReservedAttribute3IGraphicsAdapter) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IGraphicsAdapter(PRUint32 *aInternalAndReservedAttribute4IGraphicsAdapter) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IGraphicsAdapter(PRUint32 *aInternalAndReservedAttribute5IGraphicsAdapter) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IGraphicsAdapter(PRUint32 *aInternalAndReservedAttribute6IGraphicsAdapter) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IGraphicsAdapter(PRUint32 *aInternalAndReservedAttribute7IGraphicsAdapter) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IGraphicsAdapter(PRUint32 *aInternalAndReservedAttribute8IGraphicsAdapter) NS_OVERRIDE; \
  NS_IMETHOD SetFeature(GraphicsFeature_T feature, PRBool enabled) NS_OVERRIDE; \
  NS_IMETHOD IsFeatureEnabled(GraphicsFeature_T feature, PRBool *enabled) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IGraphicsAdapter(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IGraphicsAdapter(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IGraphicsAdapter(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IGraphicsAdapter(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGRAPHICSADAPTER(_to) \
  NS_IMETHOD GetGraphicsControllerType(GraphicsControllerType_T *aGraphicsControllerType) { return _to GetGraphicsControllerType(aGraphicsControllerType); } \
  NS_IMETHOD SetGraphicsControllerType(GraphicsControllerType_T 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 GetMonitorCount(PRUint32 *aMonitorCount) { return _to GetMonitorCount(aMonitorCount); } \
  NS_IMETHOD SetMonitorCount(PRUint32 aMonitorCount) { return _to SetMonitorCount(aMonitorCount); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IGraphicsAdapter(PRUint32 *aInternalAndReservedAttribute1IGraphicsAdapter) { return _to GetInternalAndReservedAttribute1IGraphicsAdapter(aInternalAndReservedAttribute1IGraphicsAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IGraphicsAdapter(PRUint32 *aInternalAndReservedAttribute2IGraphicsAdapter) { return _to GetInternalAndReservedAttribute2IGraphicsAdapter(aInternalAndReservedAttribute2IGraphicsAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IGraphicsAdapter(PRUint32 *aInternalAndReservedAttribute3IGraphicsAdapter) { return _to GetInternalAndReservedAttribute3IGraphicsAdapter(aInternalAndReservedAttribute3IGraphicsAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IGraphicsAdapter(PRUint32 *aInternalAndReservedAttribute4IGraphicsAdapter) { return _to GetInternalAndReservedAttribute4IGraphicsAdapter(aInternalAndReservedAttribute4IGraphicsAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IGraphicsAdapter(PRUint32 *aInternalAndReservedAttribute5IGraphicsAdapter) { return _to GetInternalAndReservedAttribute5IGraphicsAdapter(aInternalAndReservedAttribute5IGraphicsAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IGraphicsAdapter(PRUint32 *aInternalAndReservedAttribute6IGraphicsAdapter) { return _to GetInternalAndReservedAttribute6IGraphicsAdapter(aInternalAndReservedAttribute6IGraphicsAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IGraphicsAdapter(PRUint32 *aInternalAndReservedAttribute7IGraphicsAdapter) { return _to GetInternalAndReservedAttribute7IGraphicsAdapter(aInternalAndReservedAttribute7IGraphicsAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IGraphicsAdapter(PRUint32 *aInternalAndReservedAttribute8IGraphicsAdapter) { return _to GetInternalAndReservedAttribute8IGraphicsAdapter(aInternalAndReservedAttribute8IGraphicsAdapter); } \
  NS_IMETHOD SetFeature(GraphicsFeature_T feature, PRBool enabled) { return _to SetFeature(feature, enabled); } \
  NS_IMETHOD IsFeatureEnabled(GraphicsFeature_T feature, PRBool *enabled) { return _to IsFeatureEnabled(feature, enabled); } \
  NS_IMETHOD InternalAndReservedMethod1IGraphicsAdapter(void) { return _to InternalAndReservedMethod1IGraphicsAdapter(); } \
  NS_IMETHOD InternalAndReservedMethod2IGraphicsAdapter(void) { return _to InternalAndReservedMethod2IGraphicsAdapter(); } \
  NS_IMETHOD InternalAndReservedMethod3IGraphicsAdapter(void) { return _to InternalAndReservedMethod3IGraphicsAdapter(); } \
  NS_IMETHOD InternalAndReservedMethod4IGraphicsAdapter(void) { return _to InternalAndReservedMethod4IGraphicsAdapter(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGRAPHICSADAPTER(_to) \
  NS_IMETHOD GetGraphicsControllerType(GraphicsControllerType_T *aGraphicsControllerType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGraphicsControllerType(aGraphicsControllerType); } \
  NS_IMETHOD SetGraphicsControllerType(GraphicsControllerType_T 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 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 GetInternalAndReservedAttribute1IGraphicsAdapter(PRUint32 *aInternalAndReservedAttribute1IGraphicsAdapter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IGraphicsAdapter(aInternalAndReservedAttribute1IGraphicsAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IGraphicsAdapter(PRUint32 *aInternalAndReservedAttribute2IGraphicsAdapter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IGraphicsAdapter(aInternalAndReservedAttribute2IGraphicsAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IGraphicsAdapter(PRUint32 *aInternalAndReservedAttribute3IGraphicsAdapter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IGraphicsAdapter(aInternalAndReservedAttribute3IGraphicsAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IGraphicsAdapter(PRUint32 *aInternalAndReservedAttribute4IGraphicsAdapter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IGraphicsAdapter(aInternalAndReservedAttribute4IGraphicsAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IGraphicsAdapter(PRUint32 *aInternalAndReservedAttribute5IGraphicsAdapter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IGraphicsAdapter(aInternalAndReservedAttribute5IGraphicsAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IGraphicsAdapter(PRUint32 *aInternalAndReservedAttribute6IGraphicsAdapter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IGraphicsAdapter(aInternalAndReservedAttribute6IGraphicsAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IGraphicsAdapter(PRUint32 *aInternalAndReservedAttribute7IGraphicsAdapter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IGraphicsAdapter(aInternalAndReservedAttribute7IGraphicsAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IGraphicsAdapter(PRUint32 *aInternalAndReservedAttribute8IGraphicsAdapter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IGraphicsAdapter(aInternalAndReservedAttribute8IGraphicsAdapter); } \
  NS_IMETHOD SetFeature(GraphicsFeature_T feature, PRBool enabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFeature(feature, enabled); } \
  NS_IMETHOD IsFeatureEnabled(GraphicsFeature_T feature, PRBool *enabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsFeatureEnabled(feature, enabled); } \
  NS_IMETHOD InternalAndReservedMethod1IGraphicsAdapter(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IGraphicsAdapter(); } \
  NS_IMETHOD InternalAndReservedMethod2IGraphicsAdapter(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IGraphicsAdapter(); } \
  NS_IMETHOD InternalAndReservedMethod3IGraphicsAdapter(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IGraphicsAdapter(); } \
  NS_IMETHOD InternalAndReservedMethod4IGraphicsAdapter(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IGraphicsAdapter(); } 

#define COM_FORWARD_IGraphicsAdapter_GETTER_GraphicsControllerType_TO(smth) NS_IMETHOD GetGraphicsControllerType (PRUint32 * aGraphicsControllerType) { return smth GetGraphicsControllerType (aGraphicsControllerType); }
#define COM_FORWARD_IGraphicsAdapter_GETTER_GraphicsControllerType_TO_OBJ(obj) COM_FORWARD_IGraphicsAdapter_GETTER_GraphicsControllerType_TO ((obj)->)
#define COM_FORWARD_IGraphicsAdapter_GETTER_GraphicsControllerType_TO_BASE(base) COM_FORWARD_IGraphicsAdapter_GETTER_GraphicsControllerType_TO (base::)
#define COM_FORWARD_IGraphicsAdapter_SETTER_GraphicsControllerType_TO(smth) NS_IMETHOD SetGraphicsControllerType (PRUint32 aGraphicsControllerType) { return smth SetGraphicsControllerType (aGraphicsControllerType); }
#define COM_FORWARD_IGraphicsAdapter_SETTER_GraphicsControllerType_TO_OBJ(obj) COM_FORWARD_IGraphicsAdapter_SETTER_GraphicsControllerType_TO ((obj)->)
#define COM_FORWARD_IGraphicsAdapter_SETTER_GraphicsControllerType_TO_BASE(base) COM_FORWARD_IGraphicsAdapter_SETTER_GraphicsControllerType_TO (base::)
#define COM_FORWARD_IGraphicsAdapter_GETTER_VRAMSize_TO(smth) NS_IMETHOD GetVRAMSize (PRUint32 * aVRAMSize) { return smth GetVRAMSize (aVRAMSize); }
#define COM_FORWARD_IGraphicsAdapter_GETTER_VRAMSize_TO_OBJ(obj) COM_FORWARD_IGraphicsAdapter_GETTER_VRAMSize_TO ((obj)->)
#define COM_FORWARD_IGraphicsAdapter_GETTER_VRAMSize_TO_BASE(base) COM_FORWARD_IGraphicsAdapter_GETTER_VRAMSize_TO (base::)
#define COM_FORWARD_IGraphicsAdapter_SETTER_VRAMSize_TO(smth) NS_IMETHOD SetVRAMSize (PRUint32 aVRAMSize) { return smth SetVRAMSize (aVRAMSize); }
#define COM_FORWARD_IGraphicsAdapter_SETTER_VRAMSize_TO_OBJ(obj) COM_FORWARD_IGraphicsAdapter_SETTER_VRAMSize_TO ((obj)->)
#define COM_FORWARD_IGraphicsAdapter_SETTER_VRAMSize_TO_BASE(base) COM_FORWARD_IGraphicsAdapter_SETTER_VRAMSize_TO (base::)
#define COM_FORWARD_IGraphicsAdapter_GETTER_MonitorCount_TO(smth) NS_IMETHOD GetMonitorCount (PRUint32 * aMonitorCount) { return smth GetMonitorCount (aMonitorCount); }
#define COM_FORWARD_IGraphicsAdapter_GETTER_MonitorCount_TO_OBJ(obj) COM_FORWARD_IGraphicsAdapter_GETTER_MonitorCount_TO ((obj)->)
#define COM_FORWARD_IGraphicsAdapter_GETTER_MonitorCount_TO_BASE(base) COM_FORWARD_IGraphicsAdapter_GETTER_MonitorCount_TO (base::)
#define COM_FORWARD_IGraphicsAdapter_SETTER_MonitorCount_TO(smth) NS_IMETHOD SetMonitorCount (PRUint32 aMonitorCount) { return smth SetMonitorCount (aMonitorCount); }
#define COM_FORWARD_IGraphicsAdapter_SETTER_MonitorCount_TO_OBJ(obj) COM_FORWARD_IGraphicsAdapter_SETTER_MonitorCount_TO ((obj)->)
#define COM_FORWARD_IGraphicsAdapter_SETTER_MonitorCount_TO_BASE(base) COM_FORWARD_IGraphicsAdapter_SETTER_MonitorCount_TO (base::)
#define COM_FORWARD_IGraphicsAdapter_SetFeature_TO(smth) NS_IMETHOD SetFeature (PRUint32 aFeature, PRBool aEnabled) { return smth SetFeature (aFeature, aEnabled); }
#define COM_FORWARD_IGraphicsAdapter_SetFeature_TO_OBJ(obj) COM_FORWARD_IGraphicsAdapter_SetFeature_TO ((obj)->)
#define COM_FORWARD_IGraphicsAdapter_SetFeature_TO_BASE(base) COM_FORWARD_IGraphicsAdapter_SetFeature_TO (base::)
#define COM_FORWARD_IGraphicsAdapter_IsFeatureEnabled_TO(smth) NS_IMETHOD IsFeatureEnabled (PRUint32 aFeature, PRBool * aEnabled) { return smth IsFeatureEnabled (aFeature, aEnabled); }
#define COM_FORWARD_IGraphicsAdapter_IsFeatureEnabled_TO_OBJ(obj) COM_FORWARD_IGraphicsAdapter_IsFeatureEnabled_TO ((obj)->)
#define COM_FORWARD_IGraphicsAdapter_IsFeatureEnabled_TO_BASE(base) COM_FORWARD_IGraphicsAdapter_IsFeatureEnabled_TO (base::)
#define COM_FORWARD_IGraphicsAdapter_TO(smth) NS_FORWARD_IGRAPHICSADAPTER (smth)
#define COM_FORWARD_IGraphicsAdapter_TO_OBJ(obj) COM_FORWARD_IGraphicsAdapter_TO ((obj)->)
#define COM_FORWARD_IGraphicsAdapter_TO_BASE(base) COM_FORWARD_IGraphicsAdapter_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGraphicsAdapter;

/* starting interface:    IFirmwareSettings */
#define IFIRMWARESETTINGS_IID_STR "426ef1b8-de91-49fb-abc3-0e2bae654ff2"

#define IFIRMWARESETTINGS_IID \
  {0x426ef1b8, 0xde91, 0x49fb, \
    { 0xab, 0xc3, 0x0e, 0x2b, 0xae, 0x65, 0x4f, 0xf2 }}

class NS_NO_VTABLE IFirmwareSettings : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IFIRMWARESETTINGS_IID)

  /* attribute FirmwareType_T firmwareType; */
  NS_IMETHOD GetFirmwareType(FirmwareType_T *aFirmwareType) = 0;
  NS_IMETHOD SetFirmwareType(FirmwareType_T aFirmwareType) = 0;

  /* 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 FirmwareBootMenuMode_T bootMenuMode; */
  NS_IMETHOD GetBootMenuMode(FirmwareBootMenuMode_T *aBootMenuMode) = 0;
  NS_IMETHOD SetBootMenuMode(FirmwareBootMenuMode_T 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 APICMode_T APICMode; */
  NS_IMETHOD GetAPICMode(APICMode_T *aAPICMode) = 0;
  NS_IMETHOD SetAPICMode(APICMode_T 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;

  /* attribute boolean SMBIOSUuidLittleEndian; */
  NS_IMETHOD GetSMBIOSUuidLittleEndian(PRBool *aSMBIOSUuidLittleEndian) = 0;
  NS_IMETHOD SetSMBIOSUuidLittleEndian(PRBool aSMBIOSUuidLittleEndian) = 0;

  /* attribute boolean AutoSerialNumGen; */
  NS_IMETHOD GetAutoSerialNumGen(PRBool *aAutoSerialNumGen) = 0;
  NS_IMETHOD SetAutoSerialNumGen(PRBool aAutoSerialNumGen) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IFirmwareSettings; */
  NS_IMETHOD GetInternalAndReservedAttribute1IFirmwareSettings(PRUint32 *aInternalAndReservedAttribute1IFirmwareSettings) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IFirmwareSettings; */
  NS_IMETHOD GetInternalAndReservedAttribute2IFirmwareSettings(PRUint32 *aInternalAndReservedAttribute2IFirmwareSettings) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IFirmwareSettings; */
  NS_IMETHOD GetInternalAndReservedAttribute3IFirmwareSettings(PRUint32 *aInternalAndReservedAttribute3IFirmwareSettings) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IFirmwareSettings; */
  NS_IMETHOD GetInternalAndReservedAttribute4IFirmwareSettings(PRUint32 *aInternalAndReservedAttribute4IFirmwareSettings) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IFirmwareSettings; */
  NS_IMETHOD GetInternalAndReservedAttribute5IFirmwareSettings(PRUint32 *aInternalAndReservedAttribute5IFirmwareSettings) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IFirmwareSettings; */
  NS_IMETHOD GetInternalAndReservedAttribute6IFirmwareSettings(PRUint32 *aInternalAndReservedAttribute6IFirmwareSettings) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IFirmwareSettings; */
  NS_IMETHOD GetInternalAndReservedAttribute7IFirmwareSettings(PRUint32 *aInternalAndReservedAttribute7IFirmwareSettings) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IFirmwareSettings; */
  NS_IMETHOD GetInternalAndReservedAttribute8IFirmwareSettings(PRUint32 *aInternalAndReservedAttribute8IFirmwareSettings) = 0;

  /* void InternalAndReservedMethod1IFirmwareSettings (); */
  NS_IMETHOD InternalAndReservedMethod1IFirmwareSettings(void) = 0;

  /* void InternalAndReservedMethod2IFirmwareSettings (); */
  NS_IMETHOD InternalAndReservedMethod2IFirmwareSettings(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IFIRMWARESETTINGS \
  NS_IMETHOD GetFirmwareType(FirmwareType_T *aFirmwareType) NS_OVERRIDE; \
  NS_IMETHOD SetFirmwareType(FirmwareType_T aFirmwareType) NS_OVERRIDE; \
  NS_IMETHOD GetLogoFadeIn(PRBool *aLogoFadeIn) NS_OVERRIDE; \
  NS_IMETHOD SetLogoFadeIn(PRBool aLogoFadeIn) NS_OVERRIDE; \
  NS_IMETHOD GetLogoFadeOut(PRBool *aLogoFadeOut) NS_OVERRIDE; \
  NS_IMETHOD SetLogoFadeOut(PRBool aLogoFadeOut) NS_OVERRIDE; \
  NS_IMETHOD GetLogoDisplayTime(PRUint32 *aLogoDisplayTime) NS_OVERRIDE; \
  NS_IMETHOD SetLogoDisplayTime(PRUint32 aLogoDisplayTime) NS_OVERRIDE; \
  NS_IMETHOD GetLogoImagePath(PRUnichar **aLogoImagePath) NS_OVERRIDE; \
  NS_IMETHOD SetLogoImagePath(const PRUnichar *aLogoImagePath) NS_OVERRIDE; \
  NS_IMETHOD GetBootMenuMode(FirmwareBootMenuMode_T *aBootMenuMode) NS_OVERRIDE; \
  NS_IMETHOD SetBootMenuMode(FirmwareBootMenuMode_T aBootMenuMode) NS_OVERRIDE; \
  NS_IMETHOD GetACPIEnabled(PRBool *aACPIEnabled) NS_OVERRIDE; \
  NS_IMETHOD SetACPIEnabled(PRBool aACPIEnabled) NS_OVERRIDE; \
  NS_IMETHOD GetIOAPICEnabled(PRBool *aIOAPICEnabled) NS_OVERRIDE; \
  NS_IMETHOD SetIOAPICEnabled(PRBool aIOAPICEnabled) NS_OVERRIDE; \
  NS_IMETHOD GetAPICMode(APICMode_T *aAPICMode) NS_OVERRIDE; \
  NS_IMETHOD SetAPICMode(APICMode_T aAPICMode) NS_OVERRIDE; \
  NS_IMETHOD GetTimeOffset(PRInt64 *aTimeOffset) NS_OVERRIDE; \
  NS_IMETHOD SetTimeOffset(PRInt64 aTimeOffset) NS_OVERRIDE; \
  NS_IMETHOD GetPXEDebugEnabled(PRBool *aPXEDebugEnabled) NS_OVERRIDE; \
  NS_IMETHOD SetPXEDebugEnabled(PRBool aPXEDebugEnabled) NS_OVERRIDE; \
  NS_IMETHOD GetSMBIOSUuidLittleEndian(PRBool *aSMBIOSUuidLittleEndian) NS_OVERRIDE; \
  NS_IMETHOD SetSMBIOSUuidLittleEndian(PRBool aSMBIOSUuidLittleEndian) NS_OVERRIDE; \
  NS_IMETHOD GetAutoSerialNumGen(PRBool *aAutoSerialNumGen) NS_OVERRIDE; \
  NS_IMETHOD SetAutoSerialNumGen(PRBool aAutoSerialNumGen) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IFirmwareSettings(PRUint32 *aInternalAndReservedAttribute1IFirmwareSettings) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IFirmwareSettings(PRUint32 *aInternalAndReservedAttribute2IFirmwareSettings) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IFirmwareSettings(PRUint32 *aInternalAndReservedAttribute3IFirmwareSettings) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IFirmwareSettings(PRUint32 *aInternalAndReservedAttribute4IFirmwareSettings) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IFirmwareSettings(PRUint32 *aInternalAndReservedAttribute5IFirmwareSettings) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IFirmwareSettings(PRUint32 *aInternalAndReservedAttribute6IFirmwareSettings) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IFirmwareSettings(PRUint32 *aInternalAndReservedAttribute7IFirmwareSettings) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IFirmwareSettings(PRUint32 *aInternalAndReservedAttribute8IFirmwareSettings) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IFirmwareSettings(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IFirmwareSettings(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IFIRMWARESETTINGS(_to) \
  NS_IMETHOD GetFirmwareType(FirmwareType_T *aFirmwareType) { return _to GetFirmwareType(aFirmwareType); } \
  NS_IMETHOD SetFirmwareType(FirmwareType_T aFirmwareType) { return _to SetFirmwareType(aFirmwareType); } \
  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(FirmwareBootMenuMode_T *aBootMenuMode) { return _to GetBootMenuMode(aBootMenuMode); } \
  NS_IMETHOD SetBootMenuMode(FirmwareBootMenuMode_T 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(APICMode_T *aAPICMode) { return _to GetAPICMode(aAPICMode); } \
  NS_IMETHOD SetAPICMode(APICMode_T 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 GetSMBIOSUuidLittleEndian(PRBool *aSMBIOSUuidLittleEndian) { return _to GetSMBIOSUuidLittleEndian(aSMBIOSUuidLittleEndian); } \
  NS_IMETHOD SetSMBIOSUuidLittleEndian(PRBool aSMBIOSUuidLittleEndian) { return _to SetSMBIOSUuidLittleEndian(aSMBIOSUuidLittleEndian); } \
  NS_IMETHOD GetAutoSerialNumGen(PRBool *aAutoSerialNumGen) { return _to GetAutoSerialNumGen(aAutoSerialNumGen); } \
  NS_IMETHOD SetAutoSerialNumGen(PRBool aAutoSerialNumGen) { return _to SetAutoSerialNumGen(aAutoSerialNumGen); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IFirmwareSettings(PRUint32 *aInternalAndReservedAttribute1IFirmwareSettings) { return _to GetInternalAndReservedAttribute1IFirmwareSettings(aInternalAndReservedAttribute1IFirmwareSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IFirmwareSettings(PRUint32 *aInternalAndReservedAttribute2IFirmwareSettings) { return _to GetInternalAndReservedAttribute2IFirmwareSettings(aInternalAndReservedAttribute2IFirmwareSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IFirmwareSettings(PRUint32 *aInternalAndReservedAttribute3IFirmwareSettings) { return _to GetInternalAndReservedAttribute3IFirmwareSettings(aInternalAndReservedAttribute3IFirmwareSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IFirmwareSettings(PRUint32 *aInternalAndReservedAttribute4IFirmwareSettings) { return _to GetInternalAndReservedAttribute4IFirmwareSettings(aInternalAndReservedAttribute4IFirmwareSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IFirmwareSettings(PRUint32 *aInternalAndReservedAttribute5IFirmwareSettings) { return _to GetInternalAndReservedAttribute5IFirmwareSettings(aInternalAndReservedAttribute5IFirmwareSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IFirmwareSettings(PRUint32 *aInternalAndReservedAttribute6IFirmwareSettings) { return _to GetInternalAndReservedAttribute6IFirmwareSettings(aInternalAndReservedAttribute6IFirmwareSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IFirmwareSettings(PRUint32 *aInternalAndReservedAttribute7IFirmwareSettings) { return _to GetInternalAndReservedAttribute7IFirmwareSettings(aInternalAndReservedAttribute7IFirmwareSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IFirmwareSettings(PRUint32 *aInternalAndReservedAttribute8IFirmwareSettings) { return _to GetInternalAndReservedAttribute8IFirmwareSettings(aInternalAndReservedAttribute8IFirmwareSettings); } \
  NS_IMETHOD InternalAndReservedMethod1IFirmwareSettings(void) { return _to InternalAndReservedMethod1IFirmwareSettings(); } \
  NS_IMETHOD InternalAndReservedMethod2IFirmwareSettings(void) { return _to InternalAndReservedMethod2IFirmwareSettings(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IFIRMWARESETTINGS(_to) \
  NS_IMETHOD GetFirmwareType(FirmwareType_T *aFirmwareType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFirmwareType(aFirmwareType); } \
  NS_IMETHOD SetFirmwareType(FirmwareType_T aFirmwareType) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFirmwareType(aFirmwareType); } \
  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(FirmwareBootMenuMode_T *aBootMenuMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBootMenuMode(aBootMenuMode); } \
  NS_IMETHOD SetBootMenuMode(FirmwareBootMenuMode_T 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(APICMode_T *aAPICMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAPICMode(aAPICMode); } \
  NS_IMETHOD SetAPICMode(APICMode_T 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 GetSMBIOSUuidLittleEndian(PRBool *aSMBIOSUuidLittleEndian) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSMBIOSUuidLittleEndian(aSMBIOSUuidLittleEndian); } \
  NS_IMETHOD SetSMBIOSUuidLittleEndian(PRBool aSMBIOSUuidLittleEndian) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSMBIOSUuidLittleEndian(aSMBIOSUuidLittleEndian); } \
  NS_IMETHOD GetAutoSerialNumGen(PRBool *aAutoSerialNumGen) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAutoSerialNumGen(aAutoSerialNumGen); } \
  NS_IMETHOD SetAutoSerialNumGen(PRBool aAutoSerialNumGen) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAutoSerialNumGen(aAutoSerialNumGen); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IFirmwareSettings(PRUint32 *aInternalAndReservedAttribute1IFirmwareSettings) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IFirmwareSettings(aInternalAndReservedAttribute1IFirmwareSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IFirmwareSettings(PRUint32 *aInternalAndReservedAttribute2IFirmwareSettings) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IFirmwareSettings(aInternalAndReservedAttribute2IFirmwareSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IFirmwareSettings(PRUint32 *aInternalAndReservedAttribute3IFirmwareSettings) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IFirmwareSettings(aInternalAndReservedAttribute3IFirmwareSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IFirmwareSettings(PRUint32 *aInternalAndReservedAttribute4IFirmwareSettings) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IFirmwareSettings(aInternalAndReservedAttribute4IFirmwareSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IFirmwareSettings(PRUint32 *aInternalAndReservedAttribute5IFirmwareSettings) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IFirmwareSettings(aInternalAndReservedAttribute5IFirmwareSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IFirmwareSettings(PRUint32 *aInternalAndReservedAttribute6IFirmwareSettings) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IFirmwareSettings(aInternalAndReservedAttribute6IFirmwareSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IFirmwareSettings(PRUint32 *aInternalAndReservedAttribute7IFirmwareSettings) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IFirmwareSettings(aInternalAndReservedAttribute7IFirmwareSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IFirmwareSettings(PRUint32 *aInternalAndReservedAttribute8IFirmwareSettings) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IFirmwareSettings(aInternalAndReservedAttribute8IFirmwareSettings); } \
  NS_IMETHOD InternalAndReservedMethod1IFirmwareSettings(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IFirmwareSettings(); } \
  NS_IMETHOD InternalAndReservedMethod2IFirmwareSettings(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IFirmwareSettings(); } 

#define COM_FORWARD_IFirmwareSettings_GETTER_FirmwareType_TO(smth) NS_IMETHOD GetFirmwareType (PRUint32 * aFirmwareType) { return smth GetFirmwareType (aFirmwareType); }
#define COM_FORWARD_IFirmwareSettings_GETTER_FirmwareType_TO_OBJ(obj) COM_FORWARD_IFirmwareSettings_GETTER_FirmwareType_TO ((obj)->)
#define COM_FORWARD_IFirmwareSettings_GETTER_FirmwareType_TO_BASE(base) COM_FORWARD_IFirmwareSettings_GETTER_FirmwareType_TO (base::)
#define COM_FORWARD_IFirmwareSettings_SETTER_FirmwareType_TO(smth) NS_IMETHOD SetFirmwareType (PRUint32 aFirmwareType) { return smth SetFirmwareType (aFirmwareType); }
#define COM_FORWARD_IFirmwareSettings_SETTER_FirmwareType_TO_OBJ(obj) COM_FORWARD_IFirmwareSettings_SETTER_FirmwareType_TO ((obj)->)
#define COM_FORWARD_IFirmwareSettings_SETTER_FirmwareType_TO_BASE(base) COM_FORWARD_IFirmwareSettings_SETTER_FirmwareType_TO (base::)
#define COM_FORWARD_IFirmwareSettings_GETTER_LogoFadeIn_TO(smth) NS_IMETHOD GetLogoFadeIn (PRBool * aLogoFadeIn) { return smth GetLogoFadeIn (aLogoFadeIn); }
#define COM_FORWARD_IFirmwareSettings_GETTER_LogoFadeIn_TO_OBJ(obj) COM_FORWARD_IFirmwareSettings_GETTER_LogoFadeIn_TO ((obj)->)
#define COM_FORWARD_IFirmwareSettings_GETTER_LogoFadeIn_TO_BASE(base) COM_FORWARD_IFirmwareSettings_GETTER_LogoFadeIn_TO (base::)
#define COM_FORWARD_IFirmwareSettings_SETTER_LogoFadeIn_TO(smth) NS_IMETHOD SetLogoFadeIn (PRBool aLogoFadeIn) { return smth SetLogoFadeIn (aLogoFadeIn); }
#define COM_FORWARD_IFirmwareSettings_SETTER_LogoFadeIn_TO_OBJ(obj) COM_FORWARD_IFirmwareSettings_SETTER_LogoFadeIn_TO ((obj)->)
#define COM_FORWARD_IFirmwareSettings_SETTER_LogoFadeIn_TO_BASE(base) COM_FORWARD_IFirmwareSettings_SETTER_LogoFadeIn_TO (base::)
#define COM_FORWARD_IFirmwareSettings_GETTER_LogoFadeOut_TO(smth) NS_IMETHOD GetLogoFadeOut (PRBool * aLogoFadeOut) { return smth GetLogoFadeOut (aLogoFadeOut); }
#define COM_FORWARD_IFirmwareSettings_GETTER_LogoFadeOut_TO_OBJ(obj) COM_FORWARD_IFirmwareSettings_GETTER_LogoFadeOut_TO ((obj)->)
#define COM_FORWARD_IFirmwareSettings_GETTER_LogoFadeOut_TO_BASE(base) COM_FORWARD_IFirmwareSettings_GETTER_LogoFadeOut_TO (base::)
#define COM_FORWARD_IFirmwareSettings_SETTER_LogoFadeOut_TO(smth) NS_IMETHOD SetLogoFadeOut (PRBool aLogoFadeOut) { return smth SetLogoFadeOut (aLogoFadeOut); }
#define COM_FORWARD_IFirmwareSettings_SETTER_LogoFadeOut_TO_OBJ(obj) COM_FORWARD_IFirmwareSettings_SETTER_LogoFadeOut_TO ((obj)->)
#define COM_FORWARD_IFirmwareSettings_SETTER_LogoFadeOut_TO_BASE(base) COM_FORWARD_IFirmwareSettings_SETTER_LogoFadeOut_TO (base::)
#define COM_FORWARD_IFirmwareSettings_GETTER_LogoDisplayTime_TO(smth) NS_IMETHOD GetLogoDisplayTime (PRUint32 * aLogoDisplayTime) { return smth GetLogoDisplayTime (aLogoDisplayTime); }
#define COM_FORWARD_IFirmwareSettings_GETTER_LogoDisplayTime_TO_OBJ(obj) COM_FORWARD_IFirmwareSettings_GETTER_LogoDisplayTime_TO ((obj)->)
#define COM_FORWARD_IFirmwareSettings_GETTER_LogoDisplayTime_TO_BASE(base) COM_FORWARD_IFirmwareSettings_GETTER_LogoDisplayTime_TO (base::)
#define COM_FORWARD_IFirmwareSettings_SETTER_LogoDisplayTime_TO(smth) NS_IMETHOD SetLogoDisplayTime (PRUint32 aLogoDisplayTime) { return smth SetLogoDisplayTime (aLogoDisplayTime); }
#define COM_FORWARD_IFirmwareSettings_SETTER_LogoDisplayTime_TO_OBJ(obj) COM_FORWARD_IFirmwareSettings_SETTER_LogoDisplayTime_TO ((obj)->)
#define COM_FORWARD_IFirmwareSettings_SETTER_LogoDisplayTime_TO_BASE(base) COM_FORWARD_IFirmwareSettings_SETTER_LogoDisplayTime_TO (base::)
#define COM_FORWARD_IFirmwareSettings_GETTER_LogoImagePath_TO(smth) NS_IMETHOD GetLogoImagePath (PRUnichar * * aLogoImagePath) { return smth GetLogoImagePath (aLogoImagePath); }
#define COM_FORWARD_IFirmwareSettings_GETTER_LogoImagePath_TO_OBJ(obj) COM_FORWARD_IFirmwareSettings_GETTER_LogoImagePath_TO ((obj)->)
#define COM_FORWARD_IFirmwareSettings_GETTER_LogoImagePath_TO_BASE(base) COM_FORWARD_IFirmwareSettings_GETTER_LogoImagePath_TO (base::)
#define COM_FORWARD_IFirmwareSettings_SETTER_LogoImagePath_TO(smth) NS_IMETHOD SetLogoImagePath (const PRUnichar * aLogoImagePath) { return smth SetLogoImagePath (aLogoImagePath); }
#define COM_FORWARD_IFirmwareSettings_SETTER_LogoImagePath_TO_OBJ(obj) COM_FORWARD_IFirmwareSettings_SETTER_LogoImagePath_TO ((obj)->)
#define COM_FORWARD_IFirmwareSettings_SETTER_LogoImagePath_TO_BASE(base) COM_FORWARD_IFirmwareSettings_SETTER_LogoImagePath_TO (base::)
#define COM_FORWARD_IFirmwareSettings_GETTER_BootMenuMode_TO(smth) NS_IMETHOD GetBootMenuMode (PRUint32 * aBootMenuMode) { return smth GetBootMenuMode (aBootMenuMode); }
#define COM_FORWARD_IFirmwareSettings_GETTER_BootMenuMode_TO_OBJ(obj) COM_FORWARD_IFirmwareSettings_GETTER_BootMenuMode_TO ((obj)->)
#define COM_FORWARD_IFirmwareSettings_GETTER_BootMenuMode_TO_BASE(base) COM_FORWARD_IFirmwareSettings_GETTER_BootMenuMode_TO (base::)
#define COM_FORWARD_IFirmwareSettings_SETTER_BootMenuMode_TO(smth) NS_IMETHOD SetBootMenuMode (PRUint32 aBootMenuMode) { return smth SetBootMenuMode (aBootMenuMode); }
#define COM_FORWARD_IFirmwareSettings_SETTER_BootMenuMode_TO_OBJ(obj) COM_FORWARD_IFirmwareSettings_SETTER_BootMenuMode_TO ((obj)->)
#define COM_FORWARD_IFirmwareSettings_SETTER_BootMenuMode_TO_BASE(base) COM_FORWARD_IFirmwareSettings_SETTER_BootMenuMode_TO (base::)
#define COM_FORWARD_IFirmwareSettings_GETTER_ACPIEnabled_TO(smth) NS_IMETHOD GetACPIEnabled (PRBool * aACPIEnabled) { return smth GetACPIEnabled (aACPIEnabled); }
#define COM_FORWARD_IFirmwareSettings_GETTER_ACPIEnabled_TO_OBJ(obj) COM_FORWARD_IFirmwareSettings_GETTER_ACPIEnabled_TO ((obj)->)
#define COM_FORWARD_IFirmwareSettings_GETTER_ACPIEnabled_TO_BASE(base) COM_FORWARD_IFirmwareSettings_GETTER_ACPIEnabled_TO (base::)
#define COM_FORWARD_IFirmwareSettings_SETTER_ACPIEnabled_TO(smth) NS_IMETHOD SetACPIEnabled (PRBool aACPIEnabled) { return smth SetACPIEnabled (aACPIEnabled); }
#define COM_FORWARD_IFirmwareSettings_SETTER_ACPIEnabled_TO_OBJ(obj) COM_FORWARD_IFirmwareSettings_SETTER_ACPIEnabled_TO ((obj)->)
#define COM_FORWARD_IFirmwareSettings_SETTER_ACPIEnabled_TO_BASE(base) COM_FORWARD_IFirmwareSettings_SETTER_ACPIEnabled_TO (base::)
#define COM_FORWARD_IFirmwareSettings_GETTER_IOAPICEnabled_TO(smth) NS_IMETHOD GetIOAPICEnabled (PRBool * aIOAPICEnabled) { return smth GetIOAPICEnabled (aIOAPICEnabled); }
#define COM_FORWARD_IFirmwareSettings_GETTER_IOAPICEnabled_TO_OBJ(obj) COM_FORWARD_IFirmwareSettings_GETTER_IOAPICEnabled_TO ((obj)->)
#define COM_FORWARD_IFirmwareSettings_GETTER_IOAPICEnabled_TO_BASE(base) COM_FORWARD_IFirmwareSettings_GETTER_IOAPICEnabled_TO (base::)
#define COM_FORWARD_IFirmwareSettings_SETTER_IOAPICEnabled_TO(smth) NS_IMETHOD SetIOAPICEnabled (PRBool aIOAPICEnabled) { return smth SetIOAPICEnabled (aIOAPICEnabled); }
#define COM_FORWARD_IFirmwareSettings_SETTER_IOAPICEnabled_TO_OBJ(obj) COM_FORWARD_IFirmwareSettings_SETTER_IOAPICEnabled_TO ((obj)->)
#define COM_FORWARD_IFirmwareSettings_SETTER_IOAPICEnabled_TO_BASE(base) COM_FORWARD_IFirmwareSettings_SETTER_IOAPICEnabled_TO (base::)
#define COM_FORWARD_IFirmwareSettings_GETTER_APICMode_TO(smth) NS_IMETHOD GetAPICMode (PRUint32 * aAPICMode) { return smth GetAPICMode (aAPICMode); }
#define COM_FORWARD_IFirmwareSettings_GETTER_APICMode_TO_OBJ(obj) COM_FORWARD_IFirmwareSettings_GETTER_APICMode_TO ((obj)->)
#define COM_FORWARD_IFirmwareSettings_GETTER_APICMode_TO_BASE(base) COM_FORWARD_IFirmwareSettings_GETTER_APICMode_TO (base::)
#define COM_FORWARD_IFirmwareSettings_SETTER_APICMode_TO(smth) NS_IMETHOD SetAPICMode (PRUint32 aAPICMode) { return smth SetAPICMode (aAPICMode); }
#define COM_FORWARD_IFirmwareSettings_SETTER_APICMode_TO_OBJ(obj) COM_FORWARD_IFirmwareSettings_SETTER_APICMode_TO ((obj)->)
#define COM_FORWARD_IFirmwareSettings_SETTER_APICMode_TO_BASE(base) COM_FORWARD_IFirmwareSettings_SETTER_APICMode_TO (base::)
#define COM_FORWARD_IFirmwareSettings_GETTER_TimeOffset_TO(smth) NS_IMETHOD GetTimeOffset (PRInt64 * aTimeOffset) { return smth GetTimeOffset (aTimeOffset); }
#define COM_FORWARD_IFirmwareSettings_GETTER_TimeOffset_TO_OBJ(obj) COM_FORWARD_IFirmwareSettings_GETTER_TimeOffset_TO ((obj)->)
#define COM_FORWARD_IFirmwareSettings_GETTER_TimeOffset_TO_BASE(base) COM_FORWARD_IFirmwareSettings_GETTER_TimeOffset_TO (base::)
#define COM_FORWARD_IFirmwareSettings_SETTER_TimeOffset_TO(smth) NS_IMETHOD SetTimeOffset (PRInt64 aTimeOffset) { return smth SetTimeOffset (aTimeOffset); }
#define COM_FORWARD_IFirmwareSettings_SETTER_TimeOffset_TO_OBJ(obj) COM_FORWARD_IFirmwareSettings_SETTER_TimeOffset_TO ((obj)->)
#define COM_FORWARD_IFirmwareSettings_SETTER_TimeOffset_TO_BASE(base) COM_FORWARD_IFirmwareSettings_SETTER_TimeOffset_TO (base::)
#define COM_FORWARD_IFirmwareSettings_GETTER_PXEDebugEnabled_TO(smth) NS_IMETHOD GetPXEDebugEnabled (PRBool * aPXEDebugEnabled) { return smth GetPXEDebugEnabled (aPXEDebugEnabled); }
#define COM_FORWARD_IFirmwareSettings_GETTER_PXEDebugEnabled_TO_OBJ(obj) COM_FORWARD_IFirmwareSettings_GETTER_PXEDebugEnabled_TO ((obj)->)
#define COM_FORWARD_IFirmwareSettings_GETTER_PXEDebugEnabled_TO_BASE(base) COM_FORWARD_IFirmwareSettings_GETTER_PXEDebugEnabled_TO (base::)
#define COM_FORWARD_IFirmwareSettings_SETTER_PXEDebugEnabled_TO(smth) NS_IMETHOD SetPXEDebugEnabled (PRBool aPXEDebugEnabled) { return smth SetPXEDebugEnabled (aPXEDebugEnabled); }
#define COM_FORWARD_IFirmwareSettings_SETTER_PXEDebugEnabled_TO_OBJ(obj) COM_FORWARD_IFirmwareSettings_SETTER_PXEDebugEnabled_TO ((obj)->)
#define COM_FORWARD_IFirmwareSettings_SETTER_PXEDebugEnabled_TO_BASE(base) COM_FORWARD_IFirmwareSettings_SETTER_PXEDebugEnabled_TO (base::)
#define COM_FORWARD_IFirmwareSettings_GETTER_SMBIOSUuidLittleEndian_TO(smth) NS_IMETHOD GetSMBIOSUuidLittleEndian (PRBool * aSMBIOSUuidLittleEndian) { return smth GetSMBIOSUuidLittleEndian (aSMBIOSUuidLittleEndian); }
#define COM_FORWARD_IFirmwareSettings_GETTER_SMBIOSUuidLittleEndian_TO_OBJ(obj) COM_FORWARD_IFirmwareSettings_GETTER_SMBIOSUuidLittleEndian_TO ((obj)->)
#define COM_FORWARD_IFirmwareSettings_GETTER_SMBIOSUuidLittleEndian_TO_BASE(base) COM_FORWARD_IFirmwareSettings_GETTER_SMBIOSUuidLittleEndian_TO (base::)
#define COM_FORWARD_IFirmwareSettings_SETTER_SMBIOSUuidLittleEndian_TO(smth) NS_IMETHOD SetSMBIOSUuidLittleEndian (PRBool aSMBIOSUuidLittleEndian) { return smth SetSMBIOSUuidLittleEndian (aSMBIOSUuidLittleEndian); }
#define COM_FORWARD_IFirmwareSettings_SETTER_SMBIOSUuidLittleEndian_TO_OBJ(obj) COM_FORWARD_IFirmwareSettings_SETTER_SMBIOSUuidLittleEndian_TO ((obj)->)
#define COM_FORWARD_IFirmwareSettings_SETTER_SMBIOSUuidLittleEndian_TO_BASE(base) COM_FORWARD_IFirmwareSettings_SETTER_SMBIOSUuidLittleEndian_TO (base::)
#define COM_FORWARD_IFirmwareSettings_GETTER_AutoSerialNumGen_TO(smth) NS_IMETHOD GetAutoSerialNumGen (PRBool * aAutoSerialNumGen) { return smth GetAutoSerialNumGen (aAutoSerialNumGen); }
#define COM_FORWARD_IFirmwareSettings_GETTER_AutoSerialNumGen_TO_OBJ(obj) COM_FORWARD_IFirmwareSettings_GETTER_AutoSerialNumGen_TO ((obj)->)
#define COM_FORWARD_IFirmwareSettings_GETTER_AutoSerialNumGen_TO_BASE(base) COM_FORWARD_IFirmwareSettings_GETTER_AutoSerialNumGen_TO (base::)
#define COM_FORWARD_IFirmwareSettings_SETTER_AutoSerialNumGen_TO(smth) NS_IMETHOD SetAutoSerialNumGen (PRBool aAutoSerialNumGen) { return smth SetAutoSerialNumGen (aAutoSerialNumGen); }
#define COM_FORWARD_IFirmwareSettings_SETTER_AutoSerialNumGen_TO_OBJ(obj) COM_FORWARD_IFirmwareSettings_SETTER_AutoSerialNumGen_TO ((obj)->)
#define COM_FORWARD_IFirmwareSettings_SETTER_AutoSerialNumGen_TO_BASE(base) COM_FORWARD_IFirmwareSettings_SETTER_AutoSerialNumGen_TO (base::)
#define COM_FORWARD_IFirmwareSettings_TO(smth) NS_FORWARD_IFIRMWARESETTINGS (smth)
#define COM_FORWARD_IFirmwareSettings_TO_OBJ(obj) COM_FORWARD_IFirmwareSettings_TO ((obj)->)
#define COM_FORWARD_IFirmwareSettings_TO_BASE(base) COM_FORWARD_IFirmwareSettings_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IFirmwareSettings;

/* starting interface:    ITrustedPlatformModule */
#define ITRUSTEDPLATFORMMODULE_IID_STR "cf11d345-0241-4ea9-ac4c-c69ed3d674e3"

#define ITRUSTEDPLATFORMMODULE_IID \
  {0xcf11d345, 0x0241, 0x4ea9, \
    { 0xac, 0x4c, 0xc6, 0x9e, 0xd3, 0xd6, 0x74, 0xe3 }}

class NS_NO_VTABLE ITrustedPlatformModule : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ITRUSTEDPLATFORMMODULE_IID)

  /* attribute TpmType_T type; */
  NS_IMETHOD GetType(TpmType_T *aType) = 0;
  NS_IMETHOD SetType(TpmType_T aType) = 0;

  /* attribute wstring location; */
  NS_IMETHOD GetLocation(PRUnichar **aLocation) = 0;
  NS_IMETHOD SetLocation(const PRUnichar *aLocation) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1ITrustedPlatformModule; */
  NS_IMETHOD GetInternalAndReservedAttribute1ITrustedPlatformModule(PRUint32 *aInternalAndReservedAttribute1ITrustedPlatformModule) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2ITrustedPlatformModule; */
  NS_IMETHOD GetInternalAndReservedAttribute2ITrustedPlatformModule(PRUint32 *aInternalAndReservedAttribute2ITrustedPlatformModule) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3ITrustedPlatformModule; */
  NS_IMETHOD GetInternalAndReservedAttribute3ITrustedPlatformModule(PRUint32 *aInternalAndReservedAttribute3ITrustedPlatformModule) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4ITrustedPlatformModule; */
  NS_IMETHOD GetInternalAndReservedAttribute4ITrustedPlatformModule(PRUint32 *aInternalAndReservedAttribute4ITrustedPlatformModule) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5ITrustedPlatformModule; */
  NS_IMETHOD GetInternalAndReservedAttribute5ITrustedPlatformModule(PRUint32 *aInternalAndReservedAttribute5ITrustedPlatformModule) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6ITrustedPlatformModule; */
  NS_IMETHOD GetInternalAndReservedAttribute6ITrustedPlatformModule(PRUint32 *aInternalAndReservedAttribute6ITrustedPlatformModule) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7ITrustedPlatformModule; */
  NS_IMETHOD GetInternalAndReservedAttribute7ITrustedPlatformModule(PRUint32 *aInternalAndReservedAttribute7ITrustedPlatformModule) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8ITrustedPlatformModule; */
  NS_IMETHOD GetInternalAndReservedAttribute8ITrustedPlatformModule(PRUint32 *aInternalAndReservedAttribute8ITrustedPlatformModule) = 0;

  /* void InternalAndReservedMethod1ITrustedPlatformModule (); */
  NS_IMETHOD InternalAndReservedMethod1ITrustedPlatformModule(void) = 0;

  /* void InternalAndReservedMethod2ITrustedPlatformModule (); */
  NS_IMETHOD InternalAndReservedMethod2ITrustedPlatformModule(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ITRUSTEDPLATFORMMODULE \
  NS_IMETHOD GetType(TpmType_T *aType) NS_OVERRIDE; \
  NS_IMETHOD SetType(TpmType_T aType) NS_OVERRIDE; \
  NS_IMETHOD GetLocation(PRUnichar **aLocation) NS_OVERRIDE; \
  NS_IMETHOD SetLocation(const PRUnichar *aLocation) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1ITrustedPlatformModule(PRUint32 *aInternalAndReservedAttribute1ITrustedPlatformModule) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2ITrustedPlatformModule(PRUint32 *aInternalAndReservedAttribute2ITrustedPlatformModule) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3ITrustedPlatformModule(PRUint32 *aInternalAndReservedAttribute3ITrustedPlatformModule) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4ITrustedPlatformModule(PRUint32 *aInternalAndReservedAttribute4ITrustedPlatformModule) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5ITrustedPlatformModule(PRUint32 *aInternalAndReservedAttribute5ITrustedPlatformModule) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6ITrustedPlatformModule(PRUint32 *aInternalAndReservedAttribute6ITrustedPlatformModule) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7ITrustedPlatformModule(PRUint32 *aInternalAndReservedAttribute7ITrustedPlatformModule) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8ITrustedPlatformModule(PRUint32 *aInternalAndReservedAttribute8ITrustedPlatformModule) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1ITrustedPlatformModule(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2ITrustedPlatformModule(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ITRUSTEDPLATFORMMODULE(_to) \
  NS_IMETHOD GetType(TpmType_T *aType) { return _to GetType(aType); } \
  NS_IMETHOD SetType(TpmType_T aType) { return _to SetType(aType); } \
  NS_IMETHOD GetLocation(PRUnichar **aLocation) { return _to GetLocation(aLocation); } \
  NS_IMETHOD SetLocation(const PRUnichar *aLocation) { return _to SetLocation(aLocation); } \
  NS_IMETHOD GetInternalAndReservedAttribute1ITrustedPlatformModule(PRUint32 *aInternalAndReservedAttribute1ITrustedPlatformModule) { return _to GetInternalAndReservedAttribute1ITrustedPlatformModule(aInternalAndReservedAttribute1ITrustedPlatformModule); } \
  NS_IMETHOD GetInternalAndReservedAttribute2ITrustedPlatformModule(PRUint32 *aInternalAndReservedAttribute2ITrustedPlatformModule) { return _to GetInternalAndReservedAttribute2ITrustedPlatformModule(aInternalAndReservedAttribute2ITrustedPlatformModule); } \
  NS_IMETHOD GetInternalAndReservedAttribute3ITrustedPlatformModule(PRUint32 *aInternalAndReservedAttribute3ITrustedPlatformModule) { return _to GetInternalAndReservedAttribute3ITrustedPlatformModule(aInternalAndReservedAttribute3ITrustedPlatformModule); } \
  NS_IMETHOD GetInternalAndReservedAttribute4ITrustedPlatformModule(PRUint32 *aInternalAndReservedAttribute4ITrustedPlatformModule) { return _to GetInternalAndReservedAttribute4ITrustedPlatformModule(aInternalAndReservedAttribute4ITrustedPlatformModule); } \
  NS_IMETHOD GetInternalAndReservedAttribute5ITrustedPlatformModule(PRUint32 *aInternalAndReservedAttribute5ITrustedPlatformModule) { return _to GetInternalAndReservedAttribute5ITrustedPlatformModule(aInternalAndReservedAttribute5ITrustedPlatformModule); } \
  NS_IMETHOD GetInternalAndReservedAttribute6ITrustedPlatformModule(PRUint32 *aInternalAndReservedAttribute6ITrustedPlatformModule) { return _to GetInternalAndReservedAttribute6ITrustedPlatformModule(aInternalAndReservedAttribute6ITrustedPlatformModule); } \
  NS_IMETHOD GetInternalAndReservedAttribute7ITrustedPlatformModule(PRUint32 *aInternalAndReservedAttribute7ITrustedPlatformModule) { return _to GetInternalAndReservedAttribute7ITrustedPlatformModule(aInternalAndReservedAttribute7ITrustedPlatformModule); } \
  NS_IMETHOD GetInternalAndReservedAttribute8ITrustedPlatformModule(PRUint32 *aInternalAndReservedAttribute8ITrustedPlatformModule) { return _to GetInternalAndReservedAttribute8ITrustedPlatformModule(aInternalAndReservedAttribute8ITrustedPlatformModule); } \
  NS_IMETHOD InternalAndReservedMethod1ITrustedPlatformModule(void) { return _to InternalAndReservedMethod1ITrustedPlatformModule(); } \
  NS_IMETHOD InternalAndReservedMethod2ITrustedPlatformModule(void) { return _to InternalAndReservedMethod2ITrustedPlatformModule(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ITRUSTEDPLATFORMMODULE(_to) \
  NS_IMETHOD GetType(TpmType_T *aType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetType(aType); } \
  NS_IMETHOD SetType(TpmType_T aType) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetType(aType); } \
  NS_IMETHOD GetLocation(PRUnichar **aLocation) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLocation(aLocation); } \
  NS_IMETHOD SetLocation(const PRUnichar *aLocation) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLocation(aLocation); } \
  NS_IMETHOD GetInternalAndReservedAttribute1ITrustedPlatformModule(PRUint32 *aInternalAndReservedAttribute1ITrustedPlatformModule) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1ITrustedPlatformModule(aInternalAndReservedAttribute1ITrustedPlatformModule); } \
  NS_IMETHOD GetInternalAndReservedAttribute2ITrustedPlatformModule(PRUint32 *aInternalAndReservedAttribute2ITrustedPlatformModule) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2ITrustedPlatformModule(aInternalAndReservedAttribute2ITrustedPlatformModule); } \
  NS_IMETHOD GetInternalAndReservedAttribute3ITrustedPlatformModule(PRUint32 *aInternalAndReservedAttribute3ITrustedPlatformModule) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3ITrustedPlatformModule(aInternalAndReservedAttribute3ITrustedPlatformModule); } \
  NS_IMETHOD GetInternalAndReservedAttribute4ITrustedPlatformModule(PRUint32 *aInternalAndReservedAttribute4ITrustedPlatformModule) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4ITrustedPlatformModule(aInternalAndReservedAttribute4ITrustedPlatformModule); } \
  NS_IMETHOD GetInternalAndReservedAttribute5ITrustedPlatformModule(PRUint32 *aInternalAndReservedAttribute5ITrustedPlatformModule) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5ITrustedPlatformModule(aInternalAndReservedAttribute5ITrustedPlatformModule); } \
  NS_IMETHOD GetInternalAndReservedAttribute6ITrustedPlatformModule(PRUint32 *aInternalAndReservedAttribute6ITrustedPlatformModule) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6ITrustedPlatformModule(aInternalAndReservedAttribute6ITrustedPlatformModule); } \
  NS_IMETHOD GetInternalAndReservedAttribute7ITrustedPlatformModule(PRUint32 *aInternalAndReservedAttribute7ITrustedPlatformModule) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7ITrustedPlatformModule(aInternalAndReservedAttribute7ITrustedPlatformModule); } \
  NS_IMETHOD GetInternalAndReservedAttribute8ITrustedPlatformModule(PRUint32 *aInternalAndReservedAttribute8ITrustedPlatformModule) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8ITrustedPlatformModule(aInternalAndReservedAttribute8ITrustedPlatformModule); } \
  NS_IMETHOD InternalAndReservedMethod1ITrustedPlatformModule(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1ITrustedPlatformModule(); } \
  NS_IMETHOD InternalAndReservedMethod2ITrustedPlatformModule(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2ITrustedPlatformModule(); } 

#define COM_FORWARD_ITrustedPlatformModule_GETTER_Type_TO(smth) NS_IMETHOD GetType (PRUint32 * aType) { return smth GetType (aType); }
#define COM_FORWARD_ITrustedPlatformModule_GETTER_Type_TO_OBJ(obj) COM_FORWARD_ITrustedPlatformModule_GETTER_Type_TO ((obj)->)
#define COM_FORWARD_ITrustedPlatformModule_GETTER_Type_TO_BASE(base) COM_FORWARD_ITrustedPlatformModule_GETTER_Type_TO (base::)
#define COM_FORWARD_ITrustedPlatformModule_SETTER_Type_TO(smth) NS_IMETHOD SetType (PRUint32 aType) { return smth SetType (aType); }
#define COM_FORWARD_ITrustedPlatformModule_SETTER_Type_TO_OBJ(obj) COM_FORWARD_ITrustedPlatformModule_SETTER_Type_TO ((obj)->)
#define COM_FORWARD_ITrustedPlatformModule_SETTER_Type_TO_BASE(base) COM_FORWARD_ITrustedPlatformModule_SETTER_Type_TO (base::)
#define COM_FORWARD_ITrustedPlatformModule_GETTER_Location_TO(smth) NS_IMETHOD GetLocation (PRUnichar * * aLocation) { return smth GetLocation (aLocation); }
#define COM_FORWARD_ITrustedPlatformModule_GETTER_Location_TO_OBJ(obj) COM_FORWARD_ITrustedPlatformModule_GETTER_Location_TO ((obj)->)
#define COM_FORWARD_ITrustedPlatformModule_GETTER_Location_TO_BASE(base) COM_FORWARD_ITrustedPlatformModule_GETTER_Location_TO (base::)
#define COM_FORWARD_ITrustedPlatformModule_SETTER_Location_TO(smth) NS_IMETHOD SetLocation (const PRUnichar * aLocation) { return smth SetLocation (aLocation); }
#define COM_FORWARD_ITrustedPlatformModule_SETTER_Location_TO_OBJ(obj) COM_FORWARD_ITrustedPlatformModule_SETTER_Location_TO ((obj)->)
#define COM_FORWARD_ITrustedPlatformModule_SETTER_Location_TO_BASE(base) COM_FORWARD_ITrustedPlatformModule_SETTER_Location_TO (base::)
#define COM_FORWARD_ITrustedPlatformModule_TO(smth) NS_FORWARD_ITRUSTEDPLATFORMMODULE (smth)
#define COM_FORWARD_ITrustedPlatformModule_TO_OBJ(obj) COM_FORWARD_ITrustedPlatformModule_TO ((obj)->)
#define COM_FORWARD_ITrustedPlatformModule_TO_BASE(base) COM_FORWARD_ITrustedPlatformModule_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ITrustedPlatformModule;

/* starting interface:    IRecordingScreenSettings */
#define IRECORDINGSCREENSETTINGS_IID_STR "c1844087-ec6b-488d-afbb-c90f6452a04b"

#define IRECORDINGSCREENSETTINGS_IID \
  {0xc1844087, 0xec6b, 0x488d, \
    { 0xaf, 0xbb, 0xc9, 0x0f, 0x64, 0x52, 0xa0, 0x4b }}

class NS_NO_VTABLE IRecordingScreenSettings : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IRECORDINGSCREENSETTINGS_IID)

  /* readonly attribute unsigned long id; */
  NS_IMETHOD GetId(PRUint32 *aId) = 0;

  /* attribute boolean enabled; */
  NS_IMETHOD GetEnabled(PRBool *aEnabled) = 0;
  NS_IMETHOD SetEnabled(PRBool aEnabled) = 0;

  /* void getFeatures (out unsigned long featuresSize, [array, size_is (featuresSize), retval] out RecordingFeature_T features); */
  NS_IMETHOD GetFeatures(PRUint32 *featuresSize, RecordingFeature_T **features) = 0;

  /* void setFeatures (in unsigned long featuresSize, [array, size_is (featuresSize)] in RecordingFeature_T features); */
  NS_IMETHOD SetFeatures(PRUint32 featuresSize, RecordingFeature_T *features) = 0;

  /* attribute RecordingDestination_T destination; */
  NS_IMETHOD GetDestination(RecordingDestination_T *aDestination) = 0;
  NS_IMETHOD SetDestination(RecordingDestination_T aDestination) = 0;

  /* attribute wstring filename; */
  NS_IMETHOD GetFilename(PRUnichar **aFilename) = 0;
  NS_IMETHOD SetFilename(const PRUnichar *aFilename) = 0;

  /* attribute unsigned long maxTime; */
  NS_IMETHOD GetMaxTime(PRUint32 *aMaxTime) = 0;
  NS_IMETHOD SetMaxTime(PRUint32 aMaxTime) = 0;

  /* attribute unsigned long maxFileSize; */
  NS_IMETHOD GetMaxFileSize(PRUint32 *aMaxFileSize) = 0;
  NS_IMETHOD SetMaxFileSize(PRUint32 aMaxFileSize) = 0;

  /* attribute wstring options; */
  NS_IMETHOD GetOptions(PRUnichar **aOptions) = 0;
  NS_IMETHOD SetOptions(const PRUnichar *aOptions) = 0;

  /* attribute RecordingAudioCodec_T audioCodec; */
  NS_IMETHOD GetAudioCodec(RecordingAudioCodec_T *aAudioCodec) = 0;
  NS_IMETHOD SetAudioCodec(RecordingAudioCodec_T aAudioCodec) = 0;

  /* attribute RecordingRateControlMode_T audioRateControlMode; */
  NS_IMETHOD GetAudioRateControlMode(RecordingRateControlMode_T *aAudioRateControlMode) = 0;
  NS_IMETHOD SetAudioRateControlMode(RecordingRateControlMode_T aAudioRateControlMode) = 0;

  /* attribute RecordingCodecDeadline_T audioDeadline; */
  NS_IMETHOD GetAudioDeadline(RecordingCodecDeadline_T *aAudioDeadline) = 0;
  NS_IMETHOD SetAudioDeadline(RecordingCodecDeadline_T aAudioDeadline) = 0;

  /* attribute unsigned long audioHz; */
  NS_IMETHOD GetAudioHz(PRUint32 *aAudioHz) = 0;
  NS_IMETHOD SetAudioHz(PRUint32 aAudioHz) = 0;

  /* attribute unsigned long audioBits; */
  NS_IMETHOD GetAudioBits(PRUint32 *aAudioBits) = 0;
  NS_IMETHOD SetAudioBits(PRUint32 aAudioBits) = 0;

  /* attribute unsigned long audioChannels; */
  NS_IMETHOD GetAudioChannels(PRUint32 *aAudioChannels) = 0;
  NS_IMETHOD SetAudioChannels(PRUint32 aAudioChannels) = 0;

  /* attribute RecordingVideoCodec_T videoCodec; */
  NS_IMETHOD GetVideoCodec(RecordingVideoCodec_T *aVideoCodec) = 0;
  NS_IMETHOD SetVideoCodec(RecordingVideoCodec_T aVideoCodec) = 0;

  /* attribute RecordingCodecDeadline_T videoDeadline; */
  NS_IMETHOD GetVideoDeadline(RecordingCodecDeadline_T *aVideoDeadline) = 0;
  NS_IMETHOD SetVideoDeadline(RecordingCodecDeadline_T aVideoDeadline) = 0;

  /* attribute unsigned long videoWidth; */
  NS_IMETHOD GetVideoWidth(PRUint32 *aVideoWidth) = 0;
  NS_IMETHOD SetVideoWidth(PRUint32 aVideoWidth) = 0;

  /* attribute unsigned long videoHeight; */
  NS_IMETHOD GetVideoHeight(PRUint32 *aVideoHeight) = 0;
  NS_IMETHOD SetVideoHeight(PRUint32 aVideoHeight) = 0;

  /* attribute unsigned long videoRate; */
  NS_IMETHOD GetVideoRate(PRUint32 *aVideoRate) = 0;
  NS_IMETHOD SetVideoRate(PRUint32 aVideoRate) = 0;

  /* attribute RecordingRateControlMode_T videoRateControlMode; */
  NS_IMETHOD GetVideoRateControlMode(RecordingRateControlMode_T *aVideoRateControlMode) = 0;
  NS_IMETHOD SetVideoRateControlMode(RecordingRateControlMode_T aVideoRateControlMode) = 0;

  /* attribute unsigned long videoFPS; */
  NS_IMETHOD GetVideoFPS(PRUint32 *aVideoFPS) = 0;
  NS_IMETHOD SetVideoFPS(PRUint32 aVideoFPS) = 0;

  /* attribute RecordingVideoScalingMode_T videoScalingMode; */
  NS_IMETHOD GetVideoScalingMode(RecordingVideoScalingMode_T *aVideoScalingMode) = 0;
  NS_IMETHOD SetVideoScalingMode(RecordingVideoScalingMode_T aVideoScalingMode) = 0;

  /* void isFeatureEnabled (in RecordingFeature_T feature, [retval] out boolean enabled); */
  NS_IMETHOD IsFeatureEnabled(RecordingFeature_T feature, PRBool *enabled) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IRECORDINGSCREENSETTINGS \
  NS_IMETHOD GetId(PRUint32 *aId) NS_OVERRIDE; \
  NS_IMETHOD GetEnabled(PRBool *aEnabled) NS_OVERRIDE; \
  NS_IMETHOD SetEnabled(PRBool aEnabled) NS_OVERRIDE; \
  NS_IMETHOD GetFeatures(PRUint32 *featuresSize, RecordingFeature_T **features) NS_OVERRIDE; \
  NS_IMETHOD SetFeatures(PRUint32 featuresSize, RecordingFeature_T *features) NS_OVERRIDE; \
  NS_IMETHOD GetDestination(RecordingDestination_T *aDestination) NS_OVERRIDE; \
  NS_IMETHOD SetDestination(RecordingDestination_T aDestination) NS_OVERRIDE; \
  NS_IMETHOD GetFilename(PRUnichar **aFilename) NS_OVERRIDE; \
  NS_IMETHOD SetFilename(const PRUnichar *aFilename) NS_OVERRIDE; \
  NS_IMETHOD GetMaxTime(PRUint32 *aMaxTime) NS_OVERRIDE; \
  NS_IMETHOD SetMaxTime(PRUint32 aMaxTime) NS_OVERRIDE; \
  NS_IMETHOD GetMaxFileSize(PRUint32 *aMaxFileSize) NS_OVERRIDE; \
  NS_IMETHOD SetMaxFileSize(PRUint32 aMaxFileSize) NS_OVERRIDE; \
  NS_IMETHOD GetOptions(PRUnichar **aOptions) NS_OVERRIDE; \
  NS_IMETHOD SetOptions(const PRUnichar *aOptions) NS_OVERRIDE; \
  NS_IMETHOD GetAudioCodec(RecordingAudioCodec_T *aAudioCodec) NS_OVERRIDE; \
  NS_IMETHOD SetAudioCodec(RecordingAudioCodec_T aAudioCodec) NS_OVERRIDE; \
  NS_IMETHOD GetAudioRateControlMode(RecordingRateControlMode_T *aAudioRateControlMode) NS_OVERRIDE; \
  NS_IMETHOD SetAudioRateControlMode(RecordingRateControlMode_T aAudioRateControlMode) NS_OVERRIDE; \
  NS_IMETHOD GetAudioDeadline(RecordingCodecDeadline_T *aAudioDeadline) NS_OVERRIDE; \
  NS_IMETHOD SetAudioDeadline(RecordingCodecDeadline_T aAudioDeadline) NS_OVERRIDE; \
  NS_IMETHOD GetAudioHz(PRUint32 *aAudioHz) NS_OVERRIDE; \
  NS_IMETHOD SetAudioHz(PRUint32 aAudioHz) NS_OVERRIDE; \
  NS_IMETHOD GetAudioBits(PRUint32 *aAudioBits) NS_OVERRIDE; \
  NS_IMETHOD SetAudioBits(PRUint32 aAudioBits) NS_OVERRIDE; \
  NS_IMETHOD GetAudioChannels(PRUint32 *aAudioChannels) NS_OVERRIDE; \
  NS_IMETHOD SetAudioChannels(PRUint32 aAudioChannels) NS_OVERRIDE; \
  NS_IMETHOD GetVideoCodec(RecordingVideoCodec_T *aVideoCodec) NS_OVERRIDE; \
  NS_IMETHOD SetVideoCodec(RecordingVideoCodec_T aVideoCodec) NS_OVERRIDE; \
  NS_IMETHOD GetVideoDeadline(RecordingCodecDeadline_T *aVideoDeadline) NS_OVERRIDE; \
  NS_IMETHOD SetVideoDeadline(RecordingCodecDeadline_T aVideoDeadline) NS_OVERRIDE; \
  NS_IMETHOD GetVideoWidth(PRUint32 *aVideoWidth) NS_OVERRIDE; \
  NS_IMETHOD SetVideoWidth(PRUint32 aVideoWidth) NS_OVERRIDE; \
  NS_IMETHOD GetVideoHeight(PRUint32 *aVideoHeight) NS_OVERRIDE; \
  NS_IMETHOD SetVideoHeight(PRUint32 aVideoHeight) NS_OVERRIDE; \
  NS_IMETHOD GetVideoRate(PRUint32 *aVideoRate) NS_OVERRIDE; \
  NS_IMETHOD SetVideoRate(PRUint32 aVideoRate) NS_OVERRIDE; \
  NS_IMETHOD GetVideoRateControlMode(RecordingRateControlMode_T *aVideoRateControlMode) NS_OVERRIDE; \
  NS_IMETHOD SetVideoRateControlMode(RecordingRateControlMode_T aVideoRateControlMode) NS_OVERRIDE; \
  NS_IMETHOD GetVideoFPS(PRUint32 *aVideoFPS) NS_OVERRIDE; \
  NS_IMETHOD SetVideoFPS(PRUint32 aVideoFPS) NS_OVERRIDE; \
  NS_IMETHOD GetVideoScalingMode(RecordingVideoScalingMode_T *aVideoScalingMode) NS_OVERRIDE; \
  NS_IMETHOD SetVideoScalingMode(RecordingVideoScalingMode_T aVideoScalingMode) NS_OVERRIDE; \
  NS_IMETHOD IsFeatureEnabled(RecordingFeature_T feature, PRBool *enabled) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IRECORDINGSCREENSETTINGS(_to) \
  NS_IMETHOD GetId(PRUint32 *aId) { return _to GetId(aId); } \
  NS_IMETHOD GetEnabled(PRBool *aEnabled) { return _to GetEnabled(aEnabled); } \
  NS_IMETHOD SetEnabled(PRBool aEnabled) { return _to SetEnabled(aEnabled); } \
  NS_IMETHOD GetFeatures(PRUint32 *featuresSize, RecordingFeature_T **features) { return _to GetFeatures(featuresSize, features); } \
  NS_IMETHOD SetFeatures(PRUint32 featuresSize, RecordingFeature_T *features) { return _to SetFeatures(featuresSize, features); } \
  NS_IMETHOD GetDestination(RecordingDestination_T *aDestination) { return _to GetDestination(aDestination); } \
  NS_IMETHOD SetDestination(RecordingDestination_T aDestination) { return _to SetDestination(aDestination); } \
  NS_IMETHOD GetFilename(PRUnichar **aFilename) { return _to GetFilename(aFilename); } \
  NS_IMETHOD SetFilename(const PRUnichar *aFilename) { return _to SetFilename(aFilename); } \
  NS_IMETHOD GetMaxTime(PRUint32 *aMaxTime) { return _to GetMaxTime(aMaxTime); } \
  NS_IMETHOD SetMaxTime(PRUint32 aMaxTime) { return _to SetMaxTime(aMaxTime); } \
  NS_IMETHOD GetMaxFileSize(PRUint32 *aMaxFileSize) { return _to GetMaxFileSize(aMaxFileSize); } \
  NS_IMETHOD SetMaxFileSize(PRUint32 aMaxFileSize) { return _to SetMaxFileSize(aMaxFileSize); } \
  NS_IMETHOD GetOptions(PRUnichar **aOptions) { return _to GetOptions(aOptions); } \
  NS_IMETHOD SetOptions(const PRUnichar *aOptions) { return _to SetOptions(aOptions); } \
  NS_IMETHOD GetAudioCodec(RecordingAudioCodec_T *aAudioCodec) { return _to GetAudioCodec(aAudioCodec); } \
  NS_IMETHOD SetAudioCodec(RecordingAudioCodec_T aAudioCodec) { return _to SetAudioCodec(aAudioCodec); } \
  NS_IMETHOD GetAudioRateControlMode(RecordingRateControlMode_T *aAudioRateControlMode) { return _to GetAudioRateControlMode(aAudioRateControlMode); } \
  NS_IMETHOD SetAudioRateControlMode(RecordingRateControlMode_T aAudioRateControlMode) { return _to SetAudioRateControlMode(aAudioRateControlMode); } \
  NS_IMETHOD GetAudioDeadline(RecordingCodecDeadline_T *aAudioDeadline) { return _to GetAudioDeadline(aAudioDeadline); } \
  NS_IMETHOD SetAudioDeadline(RecordingCodecDeadline_T aAudioDeadline) { return _to SetAudioDeadline(aAudioDeadline); } \
  NS_IMETHOD GetAudioHz(PRUint32 *aAudioHz) { return _to GetAudioHz(aAudioHz); } \
  NS_IMETHOD SetAudioHz(PRUint32 aAudioHz) { return _to SetAudioHz(aAudioHz); } \
  NS_IMETHOD GetAudioBits(PRUint32 *aAudioBits) { return _to GetAudioBits(aAudioBits); } \
  NS_IMETHOD SetAudioBits(PRUint32 aAudioBits) { return _to SetAudioBits(aAudioBits); } \
  NS_IMETHOD GetAudioChannels(PRUint32 *aAudioChannels) { return _to GetAudioChannels(aAudioChannels); } \
  NS_IMETHOD SetAudioChannels(PRUint32 aAudioChannels) { return _to SetAudioChannels(aAudioChannels); } \
  NS_IMETHOD GetVideoCodec(RecordingVideoCodec_T *aVideoCodec) { return _to GetVideoCodec(aVideoCodec); } \
  NS_IMETHOD SetVideoCodec(RecordingVideoCodec_T aVideoCodec) { return _to SetVideoCodec(aVideoCodec); } \
  NS_IMETHOD GetVideoDeadline(RecordingCodecDeadline_T *aVideoDeadline) { return _to GetVideoDeadline(aVideoDeadline); } \
  NS_IMETHOD SetVideoDeadline(RecordingCodecDeadline_T aVideoDeadline) { return _to SetVideoDeadline(aVideoDeadline); } \
  NS_IMETHOD GetVideoWidth(PRUint32 *aVideoWidth) { return _to GetVideoWidth(aVideoWidth); } \
  NS_IMETHOD SetVideoWidth(PRUint32 aVideoWidth) { return _to SetVideoWidth(aVideoWidth); } \
  NS_IMETHOD GetVideoHeight(PRUint32 *aVideoHeight) { return _to GetVideoHeight(aVideoHeight); } \
  NS_IMETHOD SetVideoHeight(PRUint32 aVideoHeight) { return _to SetVideoHeight(aVideoHeight); } \
  NS_IMETHOD GetVideoRate(PRUint32 *aVideoRate) { return _to GetVideoRate(aVideoRate); } \
  NS_IMETHOD SetVideoRate(PRUint32 aVideoRate) { return _to SetVideoRate(aVideoRate); } \
  NS_IMETHOD GetVideoRateControlMode(RecordingRateControlMode_T *aVideoRateControlMode) { return _to GetVideoRateControlMode(aVideoRateControlMode); } \
  NS_IMETHOD SetVideoRateControlMode(RecordingRateControlMode_T aVideoRateControlMode) { return _to SetVideoRateControlMode(aVideoRateControlMode); } \
  NS_IMETHOD GetVideoFPS(PRUint32 *aVideoFPS) { return _to GetVideoFPS(aVideoFPS); } \
  NS_IMETHOD SetVideoFPS(PRUint32 aVideoFPS) { return _to SetVideoFPS(aVideoFPS); } \
  NS_IMETHOD GetVideoScalingMode(RecordingVideoScalingMode_T *aVideoScalingMode) { return _to GetVideoScalingMode(aVideoScalingMode); } \
  NS_IMETHOD SetVideoScalingMode(RecordingVideoScalingMode_T aVideoScalingMode) { return _to SetVideoScalingMode(aVideoScalingMode); } \
  NS_IMETHOD IsFeatureEnabled(RecordingFeature_T feature, PRBool *enabled) { return _to IsFeatureEnabled(feature, enabled); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IRECORDINGSCREENSETTINGS(_to) \
  NS_IMETHOD GetId(PRUint32 *aId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetId(aId); } \
  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 GetFeatures(PRUint32 *featuresSize, RecordingFeature_T **features) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFeatures(featuresSize, features); } \
  NS_IMETHOD SetFeatures(PRUint32 featuresSize, RecordingFeature_T *features) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFeatures(featuresSize, features); } \
  NS_IMETHOD GetDestination(RecordingDestination_T *aDestination) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDestination(aDestination); } \
  NS_IMETHOD SetDestination(RecordingDestination_T aDestination) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDestination(aDestination); } \
  NS_IMETHOD GetFilename(PRUnichar **aFilename) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFilename(aFilename); } \
  NS_IMETHOD SetFilename(const PRUnichar *aFilename) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFilename(aFilename); } \
  NS_IMETHOD GetMaxTime(PRUint32 *aMaxTime) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMaxTime(aMaxTime); } \
  NS_IMETHOD SetMaxTime(PRUint32 aMaxTime) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMaxTime(aMaxTime); } \
  NS_IMETHOD GetMaxFileSize(PRUint32 *aMaxFileSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMaxFileSize(aMaxFileSize); } \
  NS_IMETHOD SetMaxFileSize(PRUint32 aMaxFileSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMaxFileSize(aMaxFileSize); } \
  NS_IMETHOD GetOptions(PRUnichar **aOptions) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOptions(aOptions); } \
  NS_IMETHOD SetOptions(const PRUnichar *aOptions) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetOptions(aOptions); } \
  NS_IMETHOD GetAudioCodec(RecordingAudioCodec_T *aAudioCodec) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAudioCodec(aAudioCodec); } \
  NS_IMETHOD SetAudioCodec(RecordingAudioCodec_T aAudioCodec) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAudioCodec(aAudioCodec); } \
  NS_IMETHOD GetAudioRateControlMode(RecordingRateControlMode_T *aAudioRateControlMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAudioRateControlMode(aAudioRateControlMode); } \
  NS_IMETHOD SetAudioRateControlMode(RecordingRateControlMode_T aAudioRateControlMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAudioRateControlMode(aAudioRateControlMode); } \
  NS_IMETHOD GetAudioDeadline(RecordingCodecDeadline_T *aAudioDeadline) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAudioDeadline(aAudioDeadline); } \
  NS_IMETHOD SetAudioDeadline(RecordingCodecDeadline_T aAudioDeadline) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAudioDeadline(aAudioDeadline); } \
  NS_IMETHOD GetAudioHz(PRUint32 *aAudioHz) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAudioHz(aAudioHz); } \
  NS_IMETHOD SetAudioHz(PRUint32 aAudioHz) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAudioHz(aAudioHz); } \
  NS_IMETHOD GetAudioBits(PRUint32 *aAudioBits) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAudioBits(aAudioBits); } \
  NS_IMETHOD SetAudioBits(PRUint32 aAudioBits) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAudioBits(aAudioBits); } \
  NS_IMETHOD GetAudioChannels(PRUint32 *aAudioChannels) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAudioChannels(aAudioChannels); } \
  NS_IMETHOD SetAudioChannels(PRUint32 aAudioChannels) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAudioChannels(aAudioChannels); } \
  NS_IMETHOD GetVideoCodec(RecordingVideoCodec_T *aVideoCodec) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVideoCodec(aVideoCodec); } \
  NS_IMETHOD SetVideoCodec(RecordingVideoCodec_T aVideoCodec) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetVideoCodec(aVideoCodec); } \
  NS_IMETHOD GetVideoDeadline(RecordingCodecDeadline_T *aVideoDeadline) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVideoDeadline(aVideoDeadline); } \
  NS_IMETHOD SetVideoDeadline(RecordingCodecDeadline_T aVideoDeadline) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetVideoDeadline(aVideoDeadline); } \
  NS_IMETHOD GetVideoWidth(PRUint32 *aVideoWidth) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVideoWidth(aVideoWidth); } \
  NS_IMETHOD SetVideoWidth(PRUint32 aVideoWidth) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetVideoWidth(aVideoWidth); } \
  NS_IMETHOD GetVideoHeight(PRUint32 *aVideoHeight) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVideoHeight(aVideoHeight); } \
  NS_IMETHOD SetVideoHeight(PRUint32 aVideoHeight) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetVideoHeight(aVideoHeight); } \
  NS_IMETHOD GetVideoRate(PRUint32 *aVideoRate) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVideoRate(aVideoRate); } \
  NS_IMETHOD SetVideoRate(PRUint32 aVideoRate) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetVideoRate(aVideoRate); } \
  NS_IMETHOD GetVideoRateControlMode(RecordingRateControlMode_T *aVideoRateControlMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVideoRateControlMode(aVideoRateControlMode); } \
  NS_IMETHOD SetVideoRateControlMode(RecordingRateControlMode_T aVideoRateControlMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetVideoRateControlMode(aVideoRateControlMode); } \
  NS_IMETHOD GetVideoFPS(PRUint32 *aVideoFPS) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVideoFPS(aVideoFPS); } \
  NS_IMETHOD SetVideoFPS(PRUint32 aVideoFPS) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetVideoFPS(aVideoFPS); } \
  NS_IMETHOD GetVideoScalingMode(RecordingVideoScalingMode_T *aVideoScalingMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVideoScalingMode(aVideoScalingMode); } \
  NS_IMETHOD SetVideoScalingMode(RecordingVideoScalingMode_T aVideoScalingMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetVideoScalingMode(aVideoScalingMode); } \
  NS_IMETHOD IsFeatureEnabled(RecordingFeature_T feature, PRBool *enabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsFeatureEnabled(feature, enabled); } 

#define COM_FORWARD_IRecordingScreenSettings_GETTER_Id_TO(smth) NS_IMETHOD GetId (PRUint32 * aId) { return smth GetId (aId); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_Id_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_Id_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_Id_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_Id_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_Enabled_TO(smth) NS_IMETHOD GetEnabled (PRBool * aEnabled) { return smth GetEnabled (aEnabled); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_Enabled_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_Enabled_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_Enabled_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_Enabled_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_Enabled_TO(smth) NS_IMETHOD SetEnabled (PRBool aEnabled) { return smth SetEnabled (aEnabled); }
#define COM_FORWARD_IRecordingScreenSettings_SETTER_Enabled_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_SETTER_Enabled_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_Enabled_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_SETTER_Enabled_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_Features_TO(smth) NS_IMETHOD GetFeatures (PRUint32 * aFeaturesSize, PRUint32 * * aFeatures) { return smth GetFeatures (aFeaturesSize, aFeatures); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_Features_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_Features_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_Features_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_Features_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_Features_TO(smth) NS_IMETHOD SetFeatures (PRUint32 aFeaturesSize, PRUint32 * aFeatures) { return smth SetFeatures (aFeatures); }
#define COM_FORWARD_IRecordingScreenSettings_SETTER_Features_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_SETTER_Features_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_Features_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_SETTER_Features_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_Destination_TO(smth) NS_IMETHOD GetDestination (PRUint32 * aDestination) { return smth GetDestination (aDestination); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_Destination_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_Destination_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_Destination_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_Destination_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_Destination_TO(smth) NS_IMETHOD SetDestination (PRUint32 aDestination) { return smth SetDestination (aDestination); }
#define COM_FORWARD_IRecordingScreenSettings_SETTER_Destination_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_SETTER_Destination_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_Destination_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_SETTER_Destination_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_Filename_TO(smth) NS_IMETHOD GetFilename (PRUnichar * * aFilename) { return smth GetFilename (aFilename); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_Filename_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_Filename_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_Filename_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_Filename_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_Filename_TO(smth) NS_IMETHOD SetFilename (const PRUnichar * aFilename) { return smth SetFilename (aFilename); }
#define COM_FORWARD_IRecordingScreenSettings_SETTER_Filename_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_SETTER_Filename_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_Filename_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_SETTER_Filename_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_MaxTime_TO(smth) NS_IMETHOD GetMaxTime (PRUint32 * aMaxTime) { return smth GetMaxTime (aMaxTime); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_MaxTime_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_MaxTime_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_MaxTime_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_MaxTime_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_MaxTime_TO(smth) NS_IMETHOD SetMaxTime (PRUint32 aMaxTime) { return smth SetMaxTime (aMaxTime); }
#define COM_FORWARD_IRecordingScreenSettings_SETTER_MaxTime_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_SETTER_MaxTime_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_MaxTime_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_SETTER_MaxTime_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_MaxFileSize_TO(smth) NS_IMETHOD GetMaxFileSize (PRUint32 * aMaxFileSize) { return smth GetMaxFileSize (aMaxFileSize); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_MaxFileSize_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_MaxFileSize_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_MaxFileSize_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_MaxFileSize_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_MaxFileSize_TO(smth) NS_IMETHOD SetMaxFileSize (PRUint32 aMaxFileSize) { return smth SetMaxFileSize (aMaxFileSize); }
#define COM_FORWARD_IRecordingScreenSettings_SETTER_MaxFileSize_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_SETTER_MaxFileSize_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_MaxFileSize_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_SETTER_MaxFileSize_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_Options_TO(smth) NS_IMETHOD GetOptions (PRUnichar * * aOptions) { return smth GetOptions (aOptions); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_Options_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_Options_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_Options_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_Options_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_Options_TO(smth) NS_IMETHOD SetOptions (const PRUnichar * aOptions) { return smth SetOptions (aOptions); }
#define COM_FORWARD_IRecordingScreenSettings_SETTER_Options_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_SETTER_Options_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_Options_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_SETTER_Options_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_AudioCodec_TO(smth) NS_IMETHOD GetAudioCodec (PRUint32 * aAudioCodec) { return smth GetAudioCodec (aAudioCodec); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_AudioCodec_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_AudioCodec_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_AudioCodec_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_AudioCodec_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_AudioCodec_TO(smth) NS_IMETHOD SetAudioCodec (PRUint32 aAudioCodec) { return smth SetAudioCodec (aAudioCodec); }
#define COM_FORWARD_IRecordingScreenSettings_SETTER_AudioCodec_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_SETTER_AudioCodec_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_AudioCodec_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_SETTER_AudioCodec_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_AudioRateControlMode_TO(smth) NS_IMETHOD GetAudioRateControlMode (PRUint32 * aAudioRateControlMode) { return smth GetAudioRateControlMode (aAudioRateControlMode); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_AudioRateControlMode_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_AudioRateControlMode_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_AudioRateControlMode_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_AudioRateControlMode_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_AudioRateControlMode_TO(smth) NS_IMETHOD SetAudioRateControlMode (PRUint32 aAudioRateControlMode) { return smth SetAudioRateControlMode (aAudioRateControlMode); }
#define COM_FORWARD_IRecordingScreenSettings_SETTER_AudioRateControlMode_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_SETTER_AudioRateControlMode_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_AudioRateControlMode_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_SETTER_AudioRateControlMode_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_AudioDeadline_TO(smth) NS_IMETHOD GetAudioDeadline (PRUint32 * aAudioDeadline) { return smth GetAudioDeadline (aAudioDeadline); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_AudioDeadline_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_AudioDeadline_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_AudioDeadline_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_AudioDeadline_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_AudioDeadline_TO(smth) NS_IMETHOD SetAudioDeadline (PRUint32 aAudioDeadline) { return smth SetAudioDeadline (aAudioDeadline); }
#define COM_FORWARD_IRecordingScreenSettings_SETTER_AudioDeadline_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_SETTER_AudioDeadline_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_AudioDeadline_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_SETTER_AudioDeadline_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_AudioHz_TO(smth) NS_IMETHOD GetAudioHz (PRUint32 * aAudioHz) { return smth GetAudioHz (aAudioHz); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_AudioHz_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_AudioHz_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_AudioHz_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_AudioHz_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_AudioHz_TO(smth) NS_IMETHOD SetAudioHz (PRUint32 aAudioHz) { return smth SetAudioHz (aAudioHz); }
#define COM_FORWARD_IRecordingScreenSettings_SETTER_AudioHz_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_SETTER_AudioHz_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_AudioHz_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_SETTER_AudioHz_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_AudioBits_TO(smth) NS_IMETHOD GetAudioBits (PRUint32 * aAudioBits) { return smth GetAudioBits (aAudioBits); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_AudioBits_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_AudioBits_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_AudioBits_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_AudioBits_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_AudioBits_TO(smth) NS_IMETHOD SetAudioBits (PRUint32 aAudioBits) { return smth SetAudioBits (aAudioBits); }
#define COM_FORWARD_IRecordingScreenSettings_SETTER_AudioBits_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_SETTER_AudioBits_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_AudioBits_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_SETTER_AudioBits_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_AudioChannels_TO(smth) NS_IMETHOD GetAudioChannels (PRUint32 * aAudioChannels) { return smth GetAudioChannels (aAudioChannels); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_AudioChannels_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_AudioChannels_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_AudioChannels_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_AudioChannels_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_AudioChannels_TO(smth) NS_IMETHOD SetAudioChannels (PRUint32 aAudioChannels) { return smth SetAudioChannels (aAudioChannels); }
#define COM_FORWARD_IRecordingScreenSettings_SETTER_AudioChannels_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_SETTER_AudioChannels_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_AudioChannels_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_SETTER_AudioChannels_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoCodec_TO(smth) NS_IMETHOD GetVideoCodec (PRUint32 * aVideoCodec) { return smth GetVideoCodec (aVideoCodec); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoCodec_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_VideoCodec_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoCodec_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_VideoCodec_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoCodec_TO(smth) NS_IMETHOD SetVideoCodec (PRUint32 aVideoCodec) { return smth SetVideoCodec (aVideoCodec); }
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoCodec_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_SETTER_VideoCodec_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoCodec_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_SETTER_VideoCodec_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoDeadline_TO(smth) NS_IMETHOD GetVideoDeadline (PRUint32 * aVideoDeadline) { return smth GetVideoDeadline (aVideoDeadline); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoDeadline_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_VideoDeadline_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoDeadline_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_VideoDeadline_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoDeadline_TO(smth) NS_IMETHOD SetVideoDeadline (PRUint32 aVideoDeadline) { return smth SetVideoDeadline (aVideoDeadline); }
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoDeadline_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_SETTER_VideoDeadline_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoDeadline_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_SETTER_VideoDeadline_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoWidth_TO(smth) NS_IMETHOD GetVideoWidth (PRUint32 * aVideoWidth) { return smth GetVideoWidth (aVideoWidth); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoWidth_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_VideoWidth_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoWidth_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_VideoWidth_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoWidth_TO(smth) NS_IMETHOD SetVideoWidth (PRUint32 aVideoWidth) { return smth SetVideoWidth (aVideoWidth); }
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoWidth_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_SETTER_VideoWidth_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoWidth_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_SETTER_VideoWidth_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoHeight_TO(smth) NS_IMETHOD GetVideoHeight (PRUint32 * aVideoHeight) { return smth GetVideoHeight (aVideoHeight); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoHeight_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_VideoHeight_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoHeight_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_VideoHeight_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoHeight_TO(smth) NS_IMETHOD SetVideoHeight (PRUint32 aVideoHeight) { return smth SetVideoHeight (aVideoHeight); }
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoHeight_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_SETTER_VideoHeight_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoHeight_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_SETTER_VideoHeight_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoRate_TO(smth) NS_IMETHOD GetVideoRate (PRUint32 * aVideoRate) { return smth GetVideoRate (aVideoRate); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoRate_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_VideoRate_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoRate_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_VideoRate_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoRate_TO(smth) NS_IMETHOD SetVideoRate (PRUint32 aVideoRate) { return smth SetVideoRate (aVideoRate); }
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoRate_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_SETTER_VideoRate_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoRate_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_SETTER_VideoRate_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoRateControlMode_TO(smth) NS_IMETHOD GetVideoRateControlMode (PRUint32 * aVideoRateControlMode) { return smth GetVideoRateControlMode (aVideoRateControlMode); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoRateControlMode_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_VideoRateControlMode_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoRateControlMode_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_VideoRateControlMode_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoRateControlMode_TO(smth) NS_IMETHOD SetVideoRateControlMode (PRUint32 aVideoRateControlMode) { return smth SetVideoRateControlMode (aVideoRateControlMode); }
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoRateControlMode_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_SETTER_VideoRateControlMode_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoRateControlMode_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_SETTER_VideoRateControlMode_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoFPS_TO(smth) NS_IMETHOD GetVideoFPS (PRUint32 * aVideoFPS) { return smth GetVideoFPS (aVideoFPS); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoFPS_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_VideoFPS_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoFPS_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_VideoFPS_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoFPS_TO(smth) NS_IMETHOD SetVideoFPS (PRUint32 aVideoFPS) { return smth SetVideoFPS (aVideoFPS); }
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoFPS_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_SETTER_VideoFPS_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoFPS_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_SETTER_VideoFPS_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoScalingMode_TO(smth) NS_IMETHOD GetVideoScalingMode (PRUint32 * aVideoScalingMode) { return smth GetVideoScalingMode (aVideoScalingMode); }
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoScalingMode_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_GETTER_VideoScalingMode_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_GETTER_VideoScalingMode_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_GETTER_VideoScalingMode_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoScalingMode_TO(smth) NS_IMETHOD SetVideoScalingMode (PRUint32 aVideoScalingMode) { return smth SetVideoScalingMode (aVideoScalingMode); }
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoScalingMode_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_SETTER_VideoScalingMode_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_SETTER_VideoScalingMode_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_SETTER_VideoScalingMode_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_IsFeatureEnabled_TO(smth) NS_IMETHOD IsFeatureEnabled (PRUint32 aFeature, PRBool * aEnabled) { return smth IsFeatureEnabled (aFeature, aEnabled); }
#define COM_FORWARD_IRecordingScreenSettings_IsFeatureEnabled_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_IsFeatureEnabled_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_IsFeatureEnabled_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_IsFeatureEnabled_TO (base::)
#define COM_FORWARD_IRecordingScreenSettings_TO(smth) NS_FORWARD_IRECORDINGSCREENSETTINGS (smth)
#define COM_FORWARD_IRecordingScreenSettings_TO_OBJ(obj) COM_FORWARD_IRecordingScreenSettings_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenSettings_TO_BASE(base) COM_FORWARD_IRecordingScreenSettings_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IRecordingScreenSettings;

/* starting interface:    IRecordingSettings */
#define IRECORDINGSETTINGS_IID_STR "83cfdc66-4f20-4569-ad39-8722f7d472b3"

#define IRECORDINGSETTINGS_IID \
  {0x83cfdc66, 0x4f20, 0x4569, \
    { 0xad, 0x39, 0x87, 0x22, 0xf7, 0xd4, 0x72, 0xb3 }}

class NS_NO_VTABLE IRecordingSettings : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IRECORDINGSETTINGS_IID)

  /* attribute boolean paused; */
  NS_IMETHOD GetPaused(PRBool *aPaused) = 0;
  NS_IMETHOD SetPaused(PRBool aPaused) = 0;

  /* attribute boolean enabled; */
  NS_IMETHOD GetEnabled(PRBool *aEnabled) = 0;
  NS_IMETHOD SetEnabled(PRBool aEnabled) = 0;

  /* void getScreens (out unsigned long screensSize, [array, size_is (screensSize), retval] out IRecordingScreenSettings screens); */
  NS_IMETHOD GetScreens(PRUint32 *screensSize, IRecordingScreenSettings * **screens) = 0;

  /* readonly attribute IProgress progress; */
  NS_IMETHOD GetProgress(IProgress * *aProgress) = 0;

  /* void getScreenSettings (in unsigned long screenId, [retval] out IRecordingScreenSettings recordScreenSettings); */
  NS_IMETHOD GetScreenSettings(PRUint32 screenId, IRecordingScreenSettings * *recordScreenSettings) = 0;

  /* void start ([retval] out IProgress progress); */
  NS_IMETHOD Start(IProgress * *progress) = 0;

  /* void resume (); */
  NS_IMETHOD Resume(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IRECORDINGSETTINGS \
  NS_IMETHOD GetPaused(PRBool *aPaused) NS_OVERRIDE; \
  NS_IMETHOD SetPaused(PRBool aPaused) NS_OVERRIDE; \
  NS_IMETHOD GetEnabled(PRBool *aEnabled) NS_OVERRIDE; \
  NS_IMETHOD SetEnabled(PRBool aEnabled) NS_OVERRIDE; \
  NS_IMETHOD GetScreens(PRUint32 *screensSize, IRecordingScreenSettings * **screens) NS_OVERRIDE; \
  NS_IMETHOD GetProgress(IProgress * *aProgress) NS_OVERRIDE; \
  NS_IMETHOD GetScreenSettings(PRUint32 screenId, IRecordingScreenSettings * *recordScreenSettings) NS_OVERRIDE; \
  NS_IMETHOD Start(IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD Resume(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IRECORDINGSETTINGS(_to) \
  NS_IMETHOD GetPaused(PRBool *aPaused) { return _to GetPaused(aPaused); } \
  NS_IMETHOD SetPaused(PRBool aPaused) { return _to SetPaused(aPaused); } \
  NS_IMETHOD GetEnabled(PRBool *aEnabled) { return _to GetEnabled(aEnabled); } \
  NS_IMETHOD SetEnabled(PRBool aEnabled) { return _to SetEnabled(aEnabled); } \
  NS_IMETHOD GetScreens(PRUint32 *screensSize, IRecordingScreenSettings * **screens) { return _to GetScreens(screensSize, screens); } \
  NS_IMETHOD GetProgress(IProgress * *aProgress) { return _to GetProgress(aProgress); } \
  NS_IMETHOD GetScreenSettings(PRUint32 screenId, IRecordingScreenSettings * *recordScreenSettings) { return _to GetScreenSettings(screenId, recordScreenSettings); } \
  NS_IMETHOD Start(IProgress * *progress) { return _to Start(progress); } \
  NS_IMETHOD Resume(void) { return _to Resume(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IRECORDINGSETTINGS(_to) \
  NS_IMETHOD GetPaused(PRBool *aPaused) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPaused(aPaused); } \
  NS_IMETHOD SetPaused(PRBool aPaused) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPaused(aPaused); } \
  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 GetScreens(PRUint32 *screensSize, IRecordingScreenSettings * **screens) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetScreens(screensSize, screens); } \
  NS_IMETHOD GetProgress(IProgress * *aProgress) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProgress(aProgress); } \
  NS_IMETHOD GetScreenSettings(PRUint32 screenId, IRecordingScreenSettings * *recordScreenSettings) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetScreenSettings(screenId, recordScreenSettings); } \
  NS_IMETHOD Start(IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->Start(progress); } \
  NS_IMETHOD Resume(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Resume(); } 

#define COM_FORWARD_IRecordingSettings_GETTER_Paused_TO(smth) NS_IMETHOD GetPaused (PRBool * aPaused) { return smth GetPaused (aPaused); }
#define COM_FORWARD_IRecordingSettings_GETTER_Paused_TO_OBJ(obj) COM_FORWARD_IRecordingSettings_GETTER_Paused_TO ((obj)->)
#define COM_FORWARD_IRecordingSettings_GETTER_Paused_TO_BASE(base) COM_FORWARD_IRecordingSettings_GETTER_Paused_TO (base::)
#define COM_FORWARD_IRecordingSettings_SETTER_Paused_TO(smth) NS_IMETHOD SetPaused (PRBool aPaused) { return smth SetPaused (aPaused); }
#define COM_FORWARD_IRecordingSettings_SETTER_Paused_TO_OBJ(obj) COM_FORWARD_IRecordingSettings_SETTER_Paused_TO ((obj)->)
#define COM_FORWARD_IRecordingSettings_SETTER_Paused_TO_BASE(base) COM_FORWARD_IRecordingSettings_SETTER_Paused_TO (base::)
#define COM_FORWARD_IRecordingSettings_GETTER_Enabled_TO(smth) NS_IMETHOD GetEnabled (PRBool * aEnabled) { return smth GetEnabled (aEnabled); }
#define COM_FORWARD_IRecordingSettings_GETTER_Enabled_TO_OBJ(obj) COM_FORWARD_IRecordingSettings_GETTER_Enabled_TO ((obj)->)
#define COM_FORWARD_IRecordingSettings_GETTER_Enabled_TO_BASE(base) COM_FORWARD_IRecordingSettings_GETTER_Enabled_TO (base::)
#define COM_FORWARD_IRecordingSettings_SETTER_Enabled_TO(smth) NS_IMETHOD SetEnabled (PRBool aEnabled) { return smth SetEnabled (aEnabled); }
#define COM_FORWARD_IRecordingSettings_SETTER_Enabled_TO_OBJ(obj) COM_FORWARD_IRecordingSettings_SETTER_Enabled_TO ((obj)->)
#define COM_FORWARD_IRecordingSettings_SETTER_Enabled_TO_BASE(base) COM_FORWARD_IRecordingSettings_SETTER_Enabled_TO (base::)
#define COM_FORWARD_IRecordingSettings_GETTER_Screens_TO(smth) NS_IMETHOD GetScreens (PRUint32 * aScreensSize, IRecordingScreenSettings * * * aScreens) { return smth GetScreens (aScreensSize, aScreens); }
#define COM_FORWARD_IRecordingSettings_GETTER_Screens_TO_OBJ(obj) COM_FORWARD_IRecordingSettings_GETTER_Screens_TO ((obj)->)
#define COM_FORWARD_IRecordingSettings_GETTER_Screens_TO_BASE(base) COM_FORWARD_IRecordingSettings_GETTER_Screens_TO (base::)
#define COM_FORWARD_IRecordingSettings_GETTER_Progress_TO(smth) NS_IMETHOD GetProgress (IProgress * * aProgress) { return smth GetProgress (aProgress); }
#define COM_FORWARD_IRecordingSettings_GETTER_Progress_TO_OBJ(obj) COM_FORWARD_IRecordingSettings_GETTER_Progress_TO ((obj)->)
#define COM_FORWARD_IRecordingSettings_GETTER_Progress_TO_BASE(base) COM_FORWARD_IRecordingSettings_GETTER_Progress_TO (base::)
#define COM_FORWARD_IRecordingSettings_GetScreenSettings_TO(smth) NS_IMETHOD GetScreenSettings (PRUint32 aScreenId, IRecordingScreenSettings * * aRecordScreenSettings) { return smth GetScreenSettings (aScreenId, aRecordScreenSettings); }
#define COM_FORWARD_IRecordingSettings_GetScreenSettings_TO_OBJ(obj) COM_FORWARD_IRecordingSettings_GetScreenSettings_TO ((obj)->)
#define COM_FORWARD_IRecordingSettings_GetScreenSettings_TO_BASE(base) COM_FORWARD_IRecordingSettings_GetScreenSettings_TO (base::)
#define COM_FORWARD_IRecordingSettings_Start_TO(smth) NS_IMETHOD Start (IProgress * * aProgress) { return smth Start (aProgress); }
#define COM_FORWARD_IRecordingSettings_Start_TO_OBJ(obj) COM_FORWARD_IRecordingSettings_Start_TO ((obj)->)
#define COM_FORWARD_IRecordingSettings_Start_TO_BASE(base) COM_FORWARD_IRecordingSettings_Start_TO (base::)
#define COM_FORWARD_IRecordingSettings_Resume_TO(smth) NS_IMETHOD Resume() { return smth Resume(); }
#define COM_FORWARD_IRecordingSettings_Resume_TO_OBJ(obj) COM_FORWARD_IRecordingSettings_Resume_TO ((obj)->)
#define COM_FORWARD_IRecordingSettings_Resume_TO_BASE(base) COM_FORWARD_IRecordingSettings_Resume_TO (base::)
#define COM_FORWARD_IRecordingSettings_TO(smth) NS_FORWARD_IRECORDINGSETTINGS (smth)
#define COM_FORWARD_IRecordingSettings_TO_OBJ(obj) COM_FORWARD_IRecordingSettings_TO ((obj)->)
#define COM_FORWARD_IRecordingSettings_TO_BASE(base) COM_FORWARD_IRecordingSettings_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IRecordingSettings;

/* 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_OVERRIDE; \
  NS_IMETHOD SetBus(PRInt16 aBus) NS_OVERRIDE; \
  NS_IMETHOD GetDevice(PRInt16 *aDevice) NS_OVERRIDE; \
  NS_IMETHOD SetDevice(PRInt16 aDevice) NS_OVERRIDE; \
  NS_IMETHOD GetDevFunction(PRInt16 *aDevFunction) NS_OVERRIDE; \
  NS_IMETHOD SetDevFunction(PRInt16 aDevFunction) NS_OVERRIDE; \
  NS_IMETHOD AsLong(PRInt32 *result) NS_OVERRIDE; \
  NS_IMETHOD FromLong(PRInt32 number) NS_OVERRIDE; 

/* 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); } 

#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_OVERRIDE; \
  NS_IMETHOD GetIsPhysicalDevice(PRBool *aIsPhysicalDevice) NS_OVERRIDE; \
  NS_IMETHOD GetHostAddress(PRInt32 *aHostAddress) NS_OVERRIDE; \
  NS_IMETHOD GetGuestAddress(PRInt32 *aGuestAddress) NS_OVERRIDE; 

/* 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); } 

#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:    IUefiVariableStore */
#define IUEFIVARIABLESTORE_IID_STR "d134c6b6-4479-430d-bb73-68a452ba3e67"

#define IUEFIVARIABLESTORE_IID \
  {0xd134c6b6, 0x4479, 0x430d, \
    { 0xbb, 0x73, 0x68, 0xa4, 0x52, 0xba, 0x3e, 0x67 }}

class NS_NO_VTABLE IUefiVariableStore : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IUEFIVARIABLESTORE_IID)

  /* attribute boolean secureBootEnabled; */
  NS_IMETHOD GetSecureBootEnabled(PRBool *aSecureBootEnabled) = 0;
  NS_IMETHOD SetSecureBootEnabled(PRBool aSecureBootEnabled) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IUefiVariableStore; */
  NS_IMETHOD GetInternalAndReservedAttribute1IUefiVariableStore(PRUint32 *aInternalAndReservedAttribute1IUefiVariableStore) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IUefiVariableStore; */
  NS_IMETHOD GetInternalAndReservedAttribute2IUefiVariableStore(PRUint32 *aInternalAndReservedAttribute2IUefiVariableStore) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IUefiVariableStore; */
  NS_IMETHOD GetInternalAndReservedAttribute3IUefiVariableStore(PRUint32 *aInternalAndReservedAttribute3IUefiVariableStore) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IUefiVariableStore; */
  NS_IMETHOD GetInternalAndReservedAttribute4IUefiVariableStore(PRUint32 *aInternalAndReservedAttribute4IUefiVariableStore) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IUefiVariableStore; */
  NS_IMETHOD GetInternalAndReservedAttribute5IUefiVariableStore(PRUint32 *aInternalAndReservedAttribute5IUefiVariableStore) = 0;

  /* void addVariable (in wstring name, in wstring owner, in unsigned long attributesSize, [array, size_is (attributesSize)] in UefiVariableAttributes_T attributes, in unsigned long dataSize, [array, size_is (dataSize)] in octet data); */
  NS_IMETHOD AddVariable(const PRUnichar *name, const PRUnichar *owner, PRUint32 attributesSize, UefiVariableAttributes_T *attributes, PRUint32 dataSize, PRUint8 *data) = 0;

  /* void deleteVariable (in wstring name, in wstring owner); */
  NS_IMETHOD DeleteVariable(const PRUnichar *name, const PRUnichar *owner) = 0;

  /* void changeVariable (in wstring name, in unsigned long dataSize, [array, size_is (dataSize)] in octet data); */
  NS_IMETHOD ChangeVariable(const PRUnichar *name, PRUint32 dataSize, PRUint8 *data) = 0;

  /* void queryVariableByName (in wstring name, out wstring owner, out unsigned long attributesSize, [array, size_is (attributesSize)] out UefiVariableAttributes_T attributes, out unsigned long dataSize, [array, size_is (dataSize)] out octet data); */
  NS_IMETHOD QueryVariableByName(const PRUnichar *name, PRUnichar **owner, PRUint32 *attributesSize, UefiVariableAttributes_T **attributes, PRUint32 *dataSize, PRUint8 **data) = 0;

  /* void queryVariables (out unsigned long namesSize, [array, size_is (namesSize)] out wstring names, out unsigned long ownersSize, [array, size_is (ownersSize)] out wstring owners); */
  NS_IMETHOD QueryVariables(PRUint32 *namesSize, PRUnichar ***names, PRUint32 *ownersSize, PRUnichar ***owners) = 0;

  /* void enrollOraclePlatformKey (); */
  NS_IMETHOD EnrollOraclePlatformKey(void) = 0;

  /* void enrollPlatformKey (in unsigned long platformKeySize, [array, size_is (platformKeySize)] in octet platformKey, in wstring owner); */
  NS_IMETHOD EnrollPlatformKey(PRUint32 platformKeySize, PRUint8 *platformKey, const PRUnichar *owner) = 0;

  /* void addKek (in unsigned long keyEncryptionKeySize, [array, size_is (keyEncryptionKeySize)] in octet keyEncryptionKey, in wstring owner, in SignatureType_T signatureType); */
  NS_IMETHOD AddKek(PRUint32 keyEncryptionKeySize, PRUint8 *keyEncryptionKey, const PRUnichar *owner, SignatureType_T signatureType) = 0;

  /* void addSignatureToDb (in unsigned long signatureSize, [array, size_is (signatureSize)] in octet signature, in wstring owner, in SignatureType_T signatureType); */
  NS_IMETHOD AddSignatureToDb(PRUint32 signatureSize, PRUint8 *signature, const PRUnichar *owner, SignatureType_T signatureType) = 0;

  /* void addSignatureToDbx (in unsigned long signatureSize, [array, size_is (signatureSize)] in octet signature, in wstring owner, in SignatureType_T signatureType); */
  NS_IMETHOD AddSignatureToDbx(PRUint32 signatureSize, PRUint8 *signature, const PRUnichar *owner, SignatureType_T signatureType) = 0;

  /* void enrollDefaultMsSignatures (); */
  NS_IMETHOD EnrollDefaultMsSignatures(void) = 0;

  /* void addSignatureToMok (in unsigned long signatureSize, [array, size_is (signatureSize)] in octet signature, in wstring owner, in SignatureType_T signatureType); */
  NS_IMETHOD AddSignatureToMok(PRUint32 signatureSize, PRUint8 *signature, const PRUnichar *owner, SignatureType_T signatureType) = 0;

  /* void InternalAndReservedMethod1IUefiVariableStore (); */
  NS_IMETHOD InternalAndReservedMethod1IUefiVariableStore(void) = 0;

  /* void InternalAndReservedMethod2IUefiVariableStore (); */
  NS_IMETHOD InternalAndReservedMethod2IUefiVariableStore(void) = 0;

  /* void InternalAndReservedMethod3IUefiVariableStore (); */
  NS_IMETHOD InternalAndReservedMethod3IUefiVariableStore(void) = 0;

  /* void InternalAndReservedMethod4IUefiVariableStore (); */
  NS_IMETHOD InternalAndReservedMethod4IUefiVariableStore(void) = 0;

  /* void InternalAndReservedMethod5IUefiVariableStore (); */
  NS_IMETHOD InternalAndReservedMethod5IUefiVariableStore(void) = 0;

  /* void InternalAndReservedMethod6IUefiVariableStore (); */
  NS_IMETHOD InternalAndReservedMethod6IUefiVariableStore(void) = 0;

  /* void InternalAndReservedMethod7IUefiVariableStore (); */
  NS_IMETHOD InternalAndReservedMethod7IUefiVariableStore(void) = 0;

  /* void InternalAndReservedMethod8IUefiVariableStore (); */
  NS_IMETHOD InternalAndReservedMethod8IUefiVariableStore(void) = 0;

  /* void InternalAndReservedMethod9IUefiVariableStore (); */
  NS_IMETHOD InternalAndReservedMethod9IUefiVariableStore(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IUEFIVARIABLESTORE \
  NS_IMETHOD GetSecureBootEnabled(PRBool *aSecureBootEnabled) NS_OVERRIDE; \
  NS_IMETHOD SetSecureBootEnabled(PRBool aSecureBootEnabled) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IUefiVariableStore(PRUint32 *aInternalAndReservedAttribute1IUefiVariableStore) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IUefiVariableStore(PRUint32 *aInternalAndReservedAttribute2IUefiVariableStore) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IUefiVariableStore(PRUint32 *aInternalAndReservedAttribute3IUefiVariableStore) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IUefiVariableStore(PRUint32 *aInternalAndReservedAttribute4IUefiVariableStore) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IUefiVariableStore(PRUint32 *aInternalAndReservedAttribute5IUefiVariableStore) NS_OVERRIDE; \
  NS_IMETHOD AddVariable(const PRUnichar *name, const PRUnichar *owner, PRUint32 attributesSize, UefiVariableAttributes_T *attributes, PRUint32 dataSize, PRUint8 *data) NS_OVERRIDE; \
  NS_IMETHOD DeleteVariable(const PRUnichar *name, const PRUnichar *owner) NS_OVERRIDE; \
  NS_IMETHOD ChangeVariable(const PRUnichar *name, PRUint32 dataSize, PRUint8 *data) NS_OVERRIDE; \
  NS_IMETHOD QueryVariableByName(const PRUnichar *name, PRUnichar **owner, PRUint32 *attributesSize, UefiVariableAttributes_T **attributes, PRUint32 *dataSize, PRUint8 **data) NS_OVERRIDE; \
  NS_IMETHOD QueryVariables(PRUint32 *namesSize, PRUnichar ***names, PRUint32 *ownersSize, PRUnichar ***owners) NS_OVERRIDE; \
  NS_IMETHOD EnrollOraclePlatformKey(void) NS_OVERRIDE; \
  NS_IMETHOD EnrollPlatformKey(PRUint32 platformKeySize, PRUint8 *platformKey, const PRUnichar *owner) NS_OVERRIDE; \
  NS_IMETHOD AddKek(PRUint32 keyEncryptionKeySize, PRUint8 *keyEncryptionKey, const PRUnichar *owner, SignatureType_T signatureType) NS_OVERRIDE; \
  NS_IMETHOD AddSignatureToDb(PRUint32 signatureSize, PRUint8 *signature, const PRUnichar *owner, SignatureType_T signatureType) NS_OVERRIDE; \
  NS_IMETHOD AddSignatureToDbx(PRUint32 signatureSize, PRUint8 *signature, const PRUnichar *owner, SignatureType_T signatureType) NS_OVERRIDE; \
  NS_IMETHOD EnrollDefaultMsSignatures(void) NS_OVERRIDE; \
  NS_IMETHOD AddSignatureToMok(PRUint32 signatureSize, PRUint8 *signature, const PRUnichar *owner, SignatureType_T signatureType) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IUefiVariableStore(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IUefiVariableStore(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IUefiVariableStore(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IUefiVariableStore(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod5IUefiVariableStore(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod6IUefiVariableStore(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod7IUefiVariableStore(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod8IUefiVariableStore(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod9IUefiVariableStore(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IUEFIVARIABLESTORE(_to) \
  NS_IMETHOD GetSecureBootEnabled(PRBool *aSecureBootEnabled) { return _to GetSecureBootEnabled(aSecureBootEnabled); } \
  NS_IMETHOD SetSecureBootEnabled(PRBool aSecureBootEnabled) { return _to SetSecureBootEnabled(aSecureBootEnabled); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IUefiVariableStore(PRUint32 *aInternalAndReservedAttribute1IUefiVariableStore) { return _to GetInternalAndReservedAttribute1IUefiVariableStore(aInternalAndReservedAttribute1IUefiVariableStore); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IUefiVariableStore(PRUint32 *aInternalAndReservedAttribute2IUefiVariableStore) { return _to GetInternalAndReservedAttribute2IUefiVariableStore(aInternalAndReservedAttribute2IUefiVariableStore); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IUefiVariableStore(PRUint32 *aInternalAndReservedAttribute3IUefiVariableStore) { return _to GetInternalAndReservedAttribute3IUefiVariableStore(aInternalAndReservedAttribute3IUefiVariableStore); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IUefiVariableStore(PRUint32 *aInternalAndReservedAttribute4IUefiVariableStore) { return _to GetInternalAndReservedAttribute4IUefiVariableStore(aInternalAndReservedAttribute4IUefiVariableStore); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IUefiVariableStore(PRUint32 *aInternalAndReservedAttribute5IUefiVariableStore) { return _to GetInternalAndReservedAttribute5IUefiVariableStore(aInternalAndReservedAttribute5IUefiVariableStore); } \
  NS_IMETHOD AddVariable(const PRUnichar *name, const PRUnichar *owner, PRUint32 attributesSize, UefiVariableAttributes_T *attributes, PRUint32 dataSize, PRUint8 *data) { return _to AddVariable(name, owner, attributesSize, attributes, dataSize, data); } \
  NS_IMETHOD DeleteVariable(const PRUnichar *name, const PRUnichar *owner) { return _to DeleteVariable(name, owner); } \
  NS_IMETHOD ChangeVariable(const PRUnichar *name, PRUint32 dataSize, PRUint8 *data) { return _to ChangeVariable(name, dataSize, data); } \
  NS_IMETHOD QueryVariableByName(const PRUnichar *name, PRUnichar **owner, PRUint32 *attributesSize, UefiVariableAttributes_T **attributes, PRUint32 *dataSize, PRUint8 **data) { return _to QueryVariableByName(name, owner, attributesSize, attributes, dataSize, data); } \
  NS_IMETHOD QueryVariables(PRUint32 *namesSize, PRUnichar ***names, PRUint32 *ownersSize, PRUnichar ***owners) { return _to QueryVariables(namesSize, names, ownersSize, owners); } \
  NS_IMETHOD EnrollOraclePlatformKey(void) { return _to EnrollOraclePlatformKey(); } \
  NS_IMETHOD EnrollPlatformKey(PRUint32 platformKeySize, PRUint8 *platformKey, const PRUnichar *owner) { return _to EnrollPlatformKey(platformKeySize, platformKey, owner); } \
  NS_IMETHOD AddKek(PRUint32 keyEncryptionKeySize, PRUint8 *keyEncryptionKey, const PRUnichar *owner, SignatureType_T signatureType) { return _to AddKek(keyEncryptionKeySize, keyEncryptionKey, owner, signatureType); } \
  NS_IMETHOD AddSignatureToDb(PRUint32 signatureSize, PRUint8 *signature, const PRUnichar *owner, SignatureType_T signatureType) { return _to AddSignatureToDb(signatureSize, signature, owner, signatureType); } \
  NS_IMETHOD AddSignatureToDbx(PRUint32 signatureSize, PRUint8 *signature, const PRUnichar *owner, SignatureType_T signatureType) { return _to AddSignatureToDbx(signatureSize, signature, owner, signatureType); } \
  NS_IMETHOD EnrollDefaultMsSignatures(void) { return _to EnrollDefaultMsSignatures(); } \
  NS_IMETHOD AddSignatureToMok(PRUint32 signatureSize, PRUint8 *signature, const PRUnichar *owner, SignatureType_T signatureType) { return _to AddSignatureToMok(signatureSize, signature, owner, signatureType); } \
  NS_IMETHOD InternalAndReservedMethod1IUefiVariableStore(void) { return _to InternalAndReservedMethod1IUefiVariableStore(); } \
  NS_IMETHOD InternalAndReservedMethod2IUefiVariableStore(void) { return _to InternalAndReservedMethod2IUefiVariableStore(); } \
  NS_IMETHOD InternalAndReservedMethod3IUefiVariableStore(void) { return _to InternalAndReservedMethod3IUefiVariableStore(); } \
  NS_IMETHOD InternalAndReservedMethod4IUefiVariableStore(void) { return _to InternalAndReservedMethod4IUefiVariableStore(); } \
  NS_IMETHOD InternalAndReservedMethod5IUefiVariableStore(void) { return _to InternalAndReservedMethod5IUefiVariableStore(); } \
  NS_IMETHOD InternalAndReservedMethod6IUefiVariableStore(void) { return _to InternalAndReservedMethod6IUefiVariableStore(); } \
  NS_IMETHOD InternalAndReservedMethod7IUefiVariableStore(void) { return _to InternalAndReservedMethod7IUefiVariableStore(); } \
  NS_IMETHOD InternalAndReservedMethod8IUefiVariableStore(void) { return _to InternalAndReservedMethod8IUefiVariableStore(); } \
  NS_IMETHOD InternalAndReservedMethod9IUefiVariableStore(void) { return _to InternalAndReservedMethod9IUefiVariableStore(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IUEFIVARIABLESTORE(_to) \
  NS_IMETHOD GetSecureBootEnabled(PRBool *aSecureBootEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSecureBootEnabled(aSecureBootEnabled); } \
  NS_IMETHOD SetSecureBootEnabled(PRBool aSecureBootEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSecureBootEnabled(aSecureBootEnabled); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IUefiVariableStore(PRUint32 *aInternalAndReservedAttribute1IUefiVariableStore) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IUefiVariableStore(aInternalAndReservedAttribute1IUefiVariableStore); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IUefiVariableStore(PRUint32 *aInternalAndReservedAttribute2IUefiVariableStore) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IUefiVariableStore(aInternalAndReservedAttribute2IUefiVariableStore); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IUefiVariableStore(PRUint32 *aInternalAndReservedAttribute3IUefiVariableStore) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IUefiVariableStore(aInternalAndReservedAttribute3IUefiVariableStore); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IUefiVariableStore(PRUint32 *aInternalAndReservedAttribute4IUefiVariableStore) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IUefiVariableStore(aInternalAndReservedAttribute4IUefiVariableStore); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IUefiVariableStore(PRUint32 *aInternalAndReservedAttribute5IUefiVariableStore) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IUefiVariableStore(aInternalAndReservedAttribute5IUefiVariableStore); } \
  NS_IMETHOD AddVariable(const PRUnichar *name, const PRUnichar *owner, PRUint32 attributesSize, UefiVariableAttributes_T *attributes, PRUint32 dataSize, PRUint8 *data) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddVariable(name, owner, attributesSize, attributes, dataSize, data); } \
  NS_IMETHOD DeleteVariable(const PRUnichar *name, const PRUnichar *owner) { return !_to ? NS_ERROR_NULL_POINTER : _to->DeleteVariable(name, owner); } \
  NS_IMETHOD ChangeVariable(const PRUnichar *name, PRUint32 dataSize, PRUint8 *data) { return !_to ? NS_ERROR_NULL_POINTER : _to->ChangeVariable(name, dataSize, data); } \
  NS_IMETHOD QueryVariableByName(const PRUnichar *name, PRUnichar **owner, PRUint32 *attributesSize, UefiVariableAttributes_T **attributes, PRUint32 *dataSize, PRUint8 **data) { return !_to ? NS_ERROR_NULL_POINTER : _to->QueryVariableByName(name, owner, attributesSize, attributes, dataSize, data); } \
  NS_IMETHOD QueryVariables(PRUint32 *namesSize, PRUnichar ***names, PRUint32 *ownersSize, PRUnichar ***owners) { return !_to ? NS_ERROR_NULL_POINTER : _to->QueryVariables(namesSize, names, ownersSize, owners); } \
  NS_IMETHOD EnrollOraclePlatformKey(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->EnrollOraclePlatformKey(); } \
  NS_IMETHOD EnrollPlatformKey(PRUint32 platformKeySize, PRUint8 *platformKey, const PRUnichar *owner) { return !_to ? NS_ERROR_NULL_POINTER : _to->EnrollPlatformKey(platformKeySize, platformKey, owner); } \
  NS_IMETHOD AddKek(PRUint32 keyEncryptionKeySize, PRUint8 *keyEncryptionKey, const PRUnichar *owner, SignatureType_T signatureType) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddKek(keyEncryptionKeySize, keyEncryptionKey, owner, signatureType); } \
  NS_IMETHOD AddSignatureToDb(PRUint32 signatureSize, PRUint8 *signature, const PRUnichar *owner, SignatureType_T signatureType) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddSignatureToDb(signatureSize, signature, owner, signatureType); } \
  NS_IMETHOD AddSignatureToDbx(PRUint32 signatureSize, PRUint8 *signature, const PRUnichar *owner, SignatureType_T signatureType) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddSignatureToDbx(signatureSize, signature, owner, signatureType); } \
  NS_IMETHOD EnrollDefaultMsSignatures(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->EnrollDefaultMsSignatures(); } \
  NS_IMETHOD AddSignatureToMok(PRUint32 signatureSize, PRUint8 *signature, const PRUnichar *owner, SignatureType_T signatureType) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddSignatureToMok(signatureSize, signature, owner, signatureType); } \
  NS_IMETHOD InternalAndReservedMethod1IUefiVariableStore(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IUefiVariableStore(); } \
  NS_IMETHOD InternalAndReservedMethod2IUefiVariableStore(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IUefiVariableStore(); } \
  NS_IMETHOD InternalAndReservedMethod3IUefiVariableStore(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IUefiVariableStore(); } \
  NS_IMETHOD InternalAndReservedMethod4IUefiVariableStore(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IUefiVariableStore(); } \
  NS_IMETHOD InternalAndReservedMethod5IUefiVariableStore(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod5IUefiVariableStore(); } \
  NS_IMETHOD InternalAndReservedMethod6IUefiVariableStore(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod6IUefiVariableStore(); } \
  NS_IMETHOD InternalAndReservedMethod7IUefiVariableStore(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod7IUefiVariableStore(); } \
  NS_IMETHOD InternalAndReservedMethod8IUefiVariableStore(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod8IUefiVariableStore(); } \
  NS_IMETHOD InternalAndReservedMethod9IUefiVariableStore(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod9IUefiVariableStore(); } 

#define COM_FORWARD_IUefiVariableStore_GETTER_SecureBootEnabled_TO(smth) NS_IMETHOD GetSecureBootEnabled (PRBool * aSecureBootEnabled) { return smth GetSecureBootEnabled (aSecureBootEnabled); }
#define COM_FORWARD_IUefiVariableStore_GETTER_SecureBootEnabled_TO_OBJ(obj) COM_FORWARD_IUefiVariableStore_GETTER_SecureBootEnabled_TO ((obj)->)
#define COM_FORWARD_IUefiVariableStore_GETTER_SecureBootEnabled_TO_BASE(base) COM_FORWARD_IUefiVariableStore_GETTER_SecureBootEnabled_TO (base::)
#define COM_FORWARD_IUefiVariableStore_SETTER_SecureBootEnabled_TO(smth) NS_IMETHOD SetSecureBootEnabled (PRBool aSecureBootEnabled) { return smth SetSecureBootEnabled (aSecureBootEnabled); }
#define COM_FORWARD_IUefiVariableStore_SETTER_SecureBootEnabled_TO_OBJ(obj) COM_FORWARD_IUefiVariableStore_SETTER_SecureBootEnabled_TO ((obj)->)
#define COM_FORWARD_IUefiVariableStore_SETTER_SecureBootEnabled_TO_BASE(base) COM_FORWARD_IUefiVariableStore_SETTER_SecureBootEnabled_TO (base::)
#define COM_FORWARD_IUefiVariableStore_AddVariable_TO(smth) NS_IMETHOD AddVariable (PRUnichar * aName, PRUnichar * aOwner, PRUint32 aAttributesSize, PRUint32 * aAttributes, PRUint32 aDataSize, PRUint8 * aData) { return smth AddVariable (aName, aOwner, aAttributesSize+++, aAttributes, aDataSize, aData); }
#define COM_FORWARD_IUefiVariableStore_AddVariable_TO_OBJ(obj) COM_FORWARD_IUefiVariableStore_AddVariable_TO ((obj)->)
#define COM_FORWARD_IUefiVariableStore_AddVariable_TO_BASE(base) COM_FORWARD_IUefiVariableStore_AddVariable_TO (base::)
#define COM_FORWARD_IUefiVariableStore_DeleteVariable_TO(smth) NS_IMETHOD DeleteVariable (PRUnichar * aName, PRUnichar * aOwner) { return smth DeleteVariable (aName, aOwner); }
#define COM_FORWARD_IUefiVariableStore_DeleteVariable_TO_OBJ(obj) COM_FORWARD_IUefiVariableStore_DeleteVariable_TO ((obj)->)
#define COM_FORWARD_IUefiVariableStore_DeleteVariable_TO_BASE(base) COM_FORWARD_IUefiVariableStore_DeleteVariable_TO (base::)
#define COM_FORWARD_IUefiVariableStore_ChangeVariable_TO(smth) NS_IMETHOD ChangeVariable (PRUnichar * aName, PRUint32 aDataSize, PRUint8 * aData) { return smth ChangeVariable (aName, aDataSize, aData); }
#define COM_FORWARD_IUefiVariableStore_ChangeVariable_TO_OBJ(obj) COM_FORWARD_IUefiVariableStore_ChangeVariable_TO ((obj)->)
#define COM_FORWARD_IUefiVariableStore_ChangeVariable_TO_BASE(base) COM_FORWARD_IUefiVariableStore_ChangeVariable_TO (base::)
#define COM_FORWARD_IUefiVariableStore_QueryVariableByName_TO(smth) NS_IMETHOD QueryVariableByName (PRUnichar * aName, PRUnichar * * aOwner, PRUint32 * aAttributesSize, PRUint32 * * aAttributes, PRUint32 * aDataSize, PRUint8 * * aData) { return smth QueryVariableByName (aName, aOwner, aAttributesSize+++, aAttributes, aDataSize, aData); }
#define COM_FORWARD_IUefiVariableStore_QueryVariableByName_TO_OBJ(obj) COM_FORWARD_IUefiVariableStore_QueryVariableByName_TO ((obj)->)
#define COM_FORWARD_IUefiVariableStore_QueryVariableByName_TO_BASE(base) COM_FORWARD_IUefiVariableStore_QueryVariableByName_TO (base::)
#define COM_FORWARD_IUefiVariableStore_QueryVariables_TO(smth) NS_IMETHOD QueryVariables (PRUint32 * aNamesSize, PRUnichar * * * aNames, PRUint32 * aOwnersSize, PRUnichar * * * aOwners) { return smth QueryVariables (aNamesSize+++, aNames, aOwnersSize, aOwners); }
#define COM_FORWARD_IUefiVariableStore_QueryVariables_TO_OBJ(obj) COM_FORWARD_IUefiVariableStore_QueryVariables_TO ((obj)->)
#define COM_FORWARD_IUefiVariableStore_QueryVariables_TO_BASE(base) COM_FORWARD_IUefiVariableStore_QueryVariables_TO (base::)
#define COM_FORWARD_IUefiVariableStore_EnrollOraclePlatformKey_TO(smth) NS_IMETHOD EnrollOraclePlatformKey() { return smth EnrollOraclePlatformKey(); }
#define COM_FORWARD_IUefiVariableStore_EnrollOraclePlatformKey_TO_OBJ(obj) COM_FORWARD_IUefiVariableStore_EnrollOraclePlatformKey_TO ((obj)->)
#define COM_FORWARD_IUefiVariableStore_EnrollOraclePlatformKey_TO_BASE(base) COM_FORWARD_IUefiVariableStore_EnrollOraclePlatformKey_TO (base::)
#define COM_FORWARD_IUefiVariableStore_EnrollPlatformKey_TO(smth) NS_IMETHOD EnrollPlatformKey (PRUint32 aPlatformKeySize, PRUint8 * aPlatformKey, PRUnichar * aOwner) { return smth EnrollPlatformKey (aPlatformKeySize+++, aPlatformKey, aOwner); }
#define COM_FORWARD_IUefiVariableStore_EnrollPlatformKey_TO_OBJ(obj) COM_FORWARD_IUefiVariableStore_EnrollPlatformKey_TO ((obj)->)
#define COM_FORWARD_IUefiVariableStore_EnrollPlatformKey_TO_BASE(base) COM_FORWARD_IUefiVariableStore_EnrollPlatformKey_TO (base::)
#define COM_FORWARD_IUefiVariableStore_AddKek_TO(smth) NS_IMETHOD AddKek (PRUint32 aKeyEncryptionKeySize, PRUint8 * aKeyEncryptionKey, PRUnichar * aOwner, PRUint32 aSignatureType) { return smth AddKek (aKeyEncryptionKeySize+++, aKeyEncryptionKey, aOwner, aSignatureType); }
#define COM_FORWARD_IUefiVariableStore_AddKek_TO_OBJ(obj) COM_FORWARD_IUefiVariableStore_AddKek_TO ((obj)->)
#define COM_FORWARD_IUefiVariableStore_AddKek_TO_BASE(base) COM_FORWARD_IUefiVariableStore_AddKek_TO (base::)
#define COM_FORWARD_IUefiVariableStore_AddSignatureToDb_TO(smth) NS_IMETHOD AddSignatureToDb (PRUint32 aSignatureSize, PRUint8 * aSignature, PRUnichar * aOwner, PRUint32 aSignatureType) { return smth AddSignatureToDb (aSignatureSize+++, aSignature, aOwner, aSignatureType); }
#define COM_FORWARD_IUefiVariableStore_AddSignatureToDb_TO_OBJ(obj) COM_FORWARD_IUefiVariableStore_AddSignatureToDb_TO ((obj)->)
#define COM_FORWARD_IUefiVariableStore_AddSignatureToDb_TO_BASE(base) COM_FORWARD_IUefiVariableStore_AddSignatureToDb_TO (base::)
#define COM_FORWARD_IUefiVariableStore_AddSignatureToDbx_TO(smth) NS_IMETHOD AddSignatureToDbx (PRUint32 aSignatureSize, PRUint8 * aSignature, PRUnichar * aOwner, PRUint32 aSignatureType) { return smth AddSignatureToDbx (aSignatureSize+++, aSignature, aOwner, aSignatureType); }
#define COM_FORWARD_IUefiVariableStore_AddSignatureToDbx_TO_OBJ(obj) COM_FORWARD_IUefiVariableStore_AddSignatureToDbx_TO ((obj)->)
#define COM_FORWARD_IUefiVariableStore_AddSignatureToDbx_TO_BASE(base) COM_FORWARD_IUefiVariableStore_AddSignatureToDbx_TO (base::)
#define COM_FORWARD_IUefiVariableStore_EnrollDefaultMsSignatures_TO(smth) NS_IMETHOD EnrollDefaultMsSignatures() { return smth EnrollDefaultMsSignatures(); }
#define COM_FORWARD_IUefiVariableStore_EnrollDefaultMsSignatures_TO_OBJ(obj) COM_FORWARD_IUefiVariableStore_EnrollDefaultMsSignatures_TO ((obj)->)
#define COM_FORWARD_IUefiVariableStore_EnrollDefaultMsSignatures_TO_BASE(base) COM_FORWARD_IUefiVariableStore_EnrollDefaultMsSignatures_TO (base::)
#define COM_FORWARD_IUefiVariableStore_AddSignatureToMok_TO(smth) NS_IMETHOD AddSignatureToMok (PRUint32 aSignatureSize, PRUint8 * aSignature, PRUnichar * aOwner, PRUint32 aSignatureType) { return smth AddSignatureToMok (aSignatureSize+++, aSignature, aOwner, aSignatureType); }
#define COM_FORWARD_IUefiVariableStore_AddSignatureToMok_TO_OBJ(obj) COM_FORWARD_IUefiVariableStore_AddSignatureToMok_TO ((obj)->)
#define COM_FORWARD_IUefiVariableStore_AddSignatureToMok_TO_BASE(base) COM_FORWARD_IUefiVariableStore_AddSignatureToMok_TO (base::)
#define COM_FORWARD_IUefiVariableStore_TO(smth) NS_FORWARD_IUEFIVARIABLESTORE (smth)
#define COM_FORWARD_IUefiVariableStore_TO_OBJ(obj) COM_FORWARD_IUefiVariableStore_TO ((obj)->)
#define COM_FORWARD_IUefiVariableStore_TO_BASE(base) COM_FORWARD_IUefiVariableStore_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IUefiVariableStore;

/* starting interface:    INvramStore */
#define INVRAMSTORE_IID_STR "5bfd8965-b81b-469f-8649-f717ce97a5d5"

#define INVRAMSTORE_IID \
  {0x5bfd8965, 0xb81b, 0x469f, \
    { 0x86, 0x49, 0xf7, 0x17, 0xce, 0x97, 0xa5, 0xd5 }}

class NS_NO_VTABLE INvramStore : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(INVRAMSTORE_IID)

  /* readonly attribute wstring nonVolatileStorageFile; */
  NS_IMETHOD GetNonVolatileStorageFile(PRUnichar **aNonVolatileStorageFile) = 0;

  /* readonly attribute IUefiVariableStore uefiVariableStore; */
  NS_IMETHOD GetUefiVariableStore(IUefiVariableStore * *aUefiVariableStore) = 0;

  /* readonly attribute wstring keyId; */
  NS_IMETHOD GetKeyId(PRUnichar **aKeyId) = 0;

  /* readonly attribute wstring keyStore; */
  NS_IMETHOD GetKeyStore(PRUnichar **aKeyStore) = 0;

  /* void initUefiVariableStore (in unsigned long size); */
  NS_IMETHOD InitUefiVariableStore(PRUint32 size) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_INVRAMSTORE \
  NS_IMETHOD GetNonVolatileStorageFile(PRUnichar **aNonVolatileStorageFile) NS_OVERRIDE; \
  NS_IMETHOD GetUefiVariableStore(IUefiVariableStore * *aUefiVariableStore) NS_OVERRIDE; \
  NS_IMETHOD GetKeyId(PRUnichar **aKeyId) NS_OVERRIDE; \
  NS_IMETHOD GetKeyStore(PRUnichar **aKeyStore) NS_OVERRIDE; \
  NS_IMETHOD InitUefiVariableStore(PRUint32 size) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_INVRAMSTORE(_to) \
  NS_IMETHOD GetNonVolatileStorageFile(PRUnichar **aNonVolatileStorageFile) { return _to GetNonVolatileStorageFile(aNonVolatileStorageFile); } \
  NS_IMETHOD GetUefiVariableStore(IUefiVariableStore * *aUefiVariableStore) { return _to GetUefiVariableStore(aUefiVariableStore); } \
  NS_IMETHOD GetKeyId(PRUnichar **aKeyId) { return _to GetKeyId(aKeyId); } \
  NS_IMETHOD GetKeyStore(PRUnichar **aKeyStore) { return _to GetKeyStore(aKeyStore); } \
  NS_IMETHOD InitUefiVariableStore(PRUint32 size) { return _to InitUefiVariableStore(size); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_INVRAMSTORE(_to) \
  NS_IMETHOD GetNonVolatileStorageFile(PRUnichar **aNonVolatileStorageFile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNonVolatileStorageFile(aNonVolatileStorageFile); } \
  NS_IMETHOD GetUefiVariableStore(IUefiVariableStore * *aUefiVariableStore) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUefiVariableStore(aUefiVariableStore); } \
  NS_IMETHOD GetKeyId(PRUnichar **aKeyId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetKeyId(aKeyId); } \
  NS_IMETHOD GetKeyStore(PRUnichar **aKeyStore) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetKeyStore(aKeyStore); } \
  NS_IMETHOD InitUefiVariableStore(PRUint32 size) { return !_to ? NS_ERROR_NULL_POINTER : _to->InitUefiVariableStore(size); } 

#define COM_FORWARD_INvramStore_GETTER_NonVolatileStorageFile_TO(smth) NS_IMETHOD GetNonVolatileStorageFile (PRUnichar * * aNonVolatileStorageFile) { return smth GetNonVolatileStorageFile (aNonVolatileStorageFile); }
#define COM_FORWARD_INvramStore_GETTER_NonVolatileStorageFile_TO_OBJ(obj) COM_FORWARD_INvramStore_GETTER_NonVolatileStorageFile_TO ((obj)->)
#define COM_FORWARD_INvramStore_GETTER_NonVolatileStorageFile_TO_BASE(base) COM_FORWARD_INvramStore_GETTER_NonVolatileStorageFile_TO (base::)
#define COM_FORWARD_INvramStore_GETTER_UefiVariableStore_TO(smth) NS_IMETHOD GetUefiVariableStore (IUefiVariableStore * * aUefiVariableStore) { return smth GetUefiVariableStore (aUefiVariableStore); }
#define COM_FORWARD_INvramStore_GETTER_UefiVariableStore_TO_OBJ(obj) COM_FORWARD_INvramStore_GETTER_UefiVariableStore_TO ((obj)->)
#define COM_FORWARD_INvramStore_GETTER_UefiVariableStore_TO_BASE(base) COM_FORWARD_INvramStore_GETTER_UefiVariableStore_TO (base::)
#define COM_FORWARD_INvramStore_GETTER_KeyId_TO(smth) NS_IMETHOD GetKeyId (PRUnichar * * aKeyId) { return smth GetKeyId (aKeyId); }
#define COM_FORWARD_INvramStore_GETTER_KeyId_TO_OBJ(obj) COM_FORWARD_INvramStore_GETTER_KeyId_TO ((obj)->)
#define COM_FORWARD_INvramStore_GETTER_KeyId_TO_BASE(base) COM_FORWARD_INvramStore_GETTER_KeyId_TO (base::)
#define COM_FORWARD_INvramStore_GETTER_KeyStore_TO(smth) NS_IMETHOD GetKeyStore (PRUnichar * * aKeyStore) { return smth GetKeyStore (aKeyStore); }
#define COM_FORWARD_INvramStore_GETTER_KeyStore_TO_OBJ(obj) COM_FORWARD_INvramStore_GETTER_KeyStore_TO ((obj)->)
#define COM_FORWARD_INvramStore_GETTER_KeyStore_TO_BASE(base) COM_FORWARD_INvramStore_GETTER_KeyStore_TO (base::)
#define COM_FORWARD_INvramStore_InitUefiVariableStore_TO(smth) NS_IMETHOD InitUefiVariableStore (PRUint32 aSize) { return smth InitUefiVariableStore (aSize); }
#define COM_FORWARD_INvramStore_InitUefiVariableStore_TO_OBJ(obj) COM_FORWARD_INvramStore_InitUefiVariableStore_TO ((obj)->)
#define COM_FORWARD_INvramStore_InitUefiVariableStore_TO_BASE(base) COM_FORWARD_INvramStore_InitUefiVariableStore_TO (base::)
#define COM_FORWARD_INvramStore_TO(smth) NS_FORWARD_INVRAMSTORE (smth)
#define COM_FORWARD_INvramStore_TO_OBJ(obj) COM_FORWARD_INvramStore_TO ((obj)->)
#define COM_FORWARD_INvramStore_TO_BASE(base) COM_FORWARD_INvramStore_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_INvramStore;

/* starting interface:    IResourceStore */
#define IRESOURCESTORE_IID_STR "d96a2540-8aab-4c71-8af9-95379f23b23d"

#define IRESOURCESTORE_IID \
  {0xd96a2540, 0x8aab, 0x4c71, \
    { 0x8a, 0xf9, 0x95, 0x37, 0x9f, 0x23, 0xb2, 0x3d }}

class NS_NO_VTABLE IResourceStore : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IRESOURCESTORE_IID)

  /* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IRESOURCESTORE \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IRESOURCESTORE(_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_IRESOURCESTORE(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

#define COM_FORWARD_IResourceStore_GETTER_MidlDoesNotLikeEmptyInterfaces_TO(smth) NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces (PRBool * aMidlDoesNotLikeEmptyInterfaces) { return smth GetMidlDoesNotLikeEmptyInterfaces (aMidlDoesNotLikeEmptyInterfaces); }
#define COM_FORWARD_IResourceStore_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_OBJ(obj) COM_FORWARD_IResourceStore_GETTER_MidlDoesNotLikeEmptyInterfaces_TO ((obj)->)
#define COM_FORWARD_IResourceStore_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_BASE(base) COM_FORWARD_IResourceStore_GETTER_MidlDoesNotLikeEmptyInterfaces_TO (base::)
#define COM_FORWARD_IResourceStore_TO(smth) NS_FORWARD_IRESOURCESTORE (smth)
#define COM_FORWARD_IResourceStore_TO_OBJ(obj) COM_FORWARD_IResourceStore_TO ((obj)->)
#define COM_FORWARD_IResourceStore_TO_BASE(base) COM_FORWARD_IResourceStore_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IResourceStore;

/* starting interface:    IPlatform */
#define IPLATFORM_IID_STR "a670a023-e172-452c-b731-14ef855f4da6"

#define IPLATFORM_IID \
  {0xa670a023, 0xe172, 0x452c, \
    { 0xb7, 0x31, 0x14, 0xef, 0x85, 0x5f, 0x4d, 0xa6 }}

class NS_NO_VTABLE IPlatform : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IPLATFORM_IID)

  /* attribute PlatformArchitecture_T architecture; */
  NS_IMETHOD GetArchitecture(PlatformArchitecture_T *aArchitecture) = 0;
  NS_IMETHOD SetArchitecture(PlatformArchitecture_T aArchitecture) = 0;

  /* readonly attribute IPlatformProperties properties; */
  NS_IMETHOD GetProperties(IPlatformProperties * *aProperties) = 0;

  /* readonly attribute IPlatformX86 x86; */
  NS_IMETHOD GetX86(IPlatformX86 * *aX86) = 0;

  /* readonly attribute IPlatformARM ARM; */
  NS_IMETHOD GetARM(IPlatformARM * *aARM) = 0;

  /* attribute ChipsetType_T chipsetType; */
  NS_IMETHOD GetChipsetType(ChipsetType_T *aChipsetType) = 0;
  NS_IMETHOD SetChipsetType(ChipsetType_T aChipsetType) = 0;

  /* attribute IommuType_T iommuType; */
  NS_IMETHOD GetIommuType(IommuType_T *aIommuType) = 0;
  NS_IMETHOD SetIommuType(IommuType_T aIommuType) = 0;

  /* attribute boolean RTCUseUTC; */
  NS_IMETHOD GetRTCUseUTC(PRBool *aRTCUseUTC) = 0;
  NS_IMETHOD SetRTCUseUTC(PRBool aRTCUseUTC) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IPlatform; */
  NS_IMETHOD GetInternalAndReservedAttribute1IPlatform(PRUint32 *aInternalAndReservedAttribute1IPlatform) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IPlatform; */
  NS_IMETHOD GetInternalAndReservedAttribute2IPlatform(PRUint32 *aInternalAndReservedAttribute2IPlatform) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IPlatform; */
  NS_IMETHOD GetInternalAndReservedAttribute3IPlatform(PRUint32 *aInternalAndReservedAttribute3IPlatform) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IPlatform; */
  NS_IMETHOD GetInternalAndReservedAttribute4IPlatform(PRUint32 *aInternalAndReservedAttribute4IPlatform) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IPlatform; */
  NS_IMETHOD GetInternalAndReservedAttribute5IPlatform(PRUint32 *aInternalAndReservedAttribute5IPlatform) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IPlatform; */
  NS_IMETHOD GetInternalAndReservedAttribute6IPlatform(PRUint32 *aInternalAndReservedAttribute6IPlatform) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IPlatform; */
  NS_IMETHOD GetInternalAndReservedAttribute7IPlatform(PRUint32 *aInternalAndReservedAttribute7IPlatform) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IPlatform; */
  NS_IMETHOD GetInternalAndReservedAttribute8IPlatform(PRUint32 *aInternalAndReservedAttribute8IPlatform) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute9IPlatform; */
  NS_IMETHOD GetInternalAndReservedAttribute9IPlatform(PRUint32 *aInternalAndReservedAttribute9IPlatform) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute10IPlatform; */
  NS_IMETHOD GetInternalAndReservedAttribute10IPlatform(PRUint32 *aInternalAndReservedAttribute10IPlatform) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute11IPlatform; */
  NS_IMETHOD GetInternalAndReservedAttribute11IPlatform(PRUint32 *aInternalAndReservedAttribute11IPlatform) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute12IPlatform; */
  NS_IMETHOD GetInternalAndReservedAttribute12IPlatform(PRUint32 *aInternalAndReservedAttribute12IPlatform) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute13IPlatform; */
  NS_IMETHOD GetInternalAndReservedAttribute13IPlatform(PRUint32 *aInternalAndReservedAttribute13IPlatform) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute14IPlatform; */
  NS_IMETHOD GetInternalAndReservedAttribute14IPlatform(PRUint32 *aInternalAndReservedAttribute14IPlatform) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute15IPlatform; */
  NS_IMETHOD GetInternalAndReservedAttribute15IPlatform(PRUint32 *aInternalAndReservedAttribute15IPlatform) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute16IPlatform; */
  NS_IMETHOD GetInternalAndReservedAttribute16IPlatform(PRUint32 *aInternalAndReservedAttribute16IPlatform) = 0;

  /* void InternalAndReservedMethod1IPlatform (); */
  NS_IMETHOD InternalAndReservedMethod1IPlatform(void) = 0;

  /* void InternalAndReservedMethod2IPlatform (); */
  NS_IMETHOD InternalAndReservedMethod2IPlatform(void) = 0;

  /* void InternalAndReservedMethod3IPlatform (); */
  NS_IMETHOD InternalAndReservedMethod3IPlatform(void) = 0;

  /* void InternalAndReservedMethod4IPlatform (); */
  NS_IMETHOD InternalAndReservedMethod4IPlatform(void) = 0;

  /* void InternalAndReservedMethod5IPlatform (); */
  NS_IMETHOD InternalAndReservedMethod5IPlatform(void) = 0;

  /* void InternalAndReservedMethod6IPlatform (); */
  NS_IMETHOD InternalAndReservedMethod6IPlatform(void) = 0;

  /* void InternalAndReservedMethod7IPlatform (); */
  NS_IMETHOD InternalAndReservedMethod7IPlatform(void) = 0;

  /* void InternalAndReservedMethod8IPlatform (); */
  NS_IMETHOD InternalAndReservedMethod8IPlatform(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IPLATFORM \
  NS_IMETHOD GetArchitecture(PlatformArchitecture_T *aArchitecture) NS_OVERRIDE; \
  NS_IMETHOD SetArchitecture(PlatformArchitecture_T aArchitecture) NS_OVERRIDE; \
  NS_IMETHOD GetProperties(IPlatformProperties * *aProperties) NS_OVERRIDE; \
  NS_IMETHOD GetX86(IPlatformX86 * *aX86) NS_OVERRIDE; \
  NS_IMETHOD GetARM(IPlatformARM * *aARM) NS_OVERRIDE; \
  NS_IMETHOD GetChipsetType(ChipsetType_T *aChipsetType) NS_OVERRIDE; \
  NS_IMETHOD SetChipsetType(ChipsetType_T aChipsetType) NS_OVERRIDE; \
  NS_IMETHOD GetIommuType(IommuType_T *aIommuType) NS_OVERRIDE; \
  NS_IMETHOD SetIommuType(IommuType_T aIommuType) NS_OVERRIDE; \
  NS_IMETHOD GetRTCUseUTC(PRBool *aRTCUseUTC) NS_OVERRIDE; \
  NS_IMETHOD SetRTCUseUTC(PRBool aRTCUseUTC) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IPlatform(PRUint32 *aInternalAndReservedAttribute1IPlatform) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IPlatform(PRUint32 *aInternalAndReservedAttribute2IPlatform) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IPlatform(PRUint32 *aInternalAndReservedAttribute3IPlatform) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IPlatform(PRUint32 *aInternalAndReservedAttribute4IPlatform) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IPlatform(PRUint32 *aInternalAndReservedAttribute5IPlatform) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IPlatform(PRUint32 *aInternalAndReservedAttribute6IPlatform) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IPlatform(PRUint32 *aInternalAndReservedAttribute7IPlatform) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IPlatform(PRUint32 *aInternalAndReservedAttribute8IPlatform) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute9IPlatform(PRUint32 *aInternalAndReservedAttribute9IPlatform) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute10IPlatform(PRUint32 *aInternalAndReservedAttribute10IPlatform) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute11IPlatform(PRUint32 *aInternalAndReservedAttribute11IPlatform) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute12IPlatform(PRUint32 *aInternalAndReservedAttribute12IPlatform) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute13IPlatform(PRUint32 *aInternalAndReservedAttribute13IPlatform) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute14IPlatform(PRUint32 *aInternalAndReservedAttribute14IPlatform) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute15IPlatform(PRUint32 *aInternalAndReservedAttribute15IPlatform) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute16IPlatform(PRUint32 *aInternalAndReservedAttribute16IPlatform) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IPlatform(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IPlatform(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IPlatform(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IPlatform(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod5IPlatform(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod6IPlatform(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod7IPlatform(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod8IPlatform(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IPLATFORM(_to) \
  NS_IMETHOD GetArchitecture(PlatformArchitecture_T *aArchitecture) { return _to GetArchitecture(aArchitecture); } \
  NS_IMETHOD SetArchitecture(PlatformArchitecture_T aArchitecture) { return _to SetArchitecture(aArchitecture); } \
  NS_IMETHOD GetProperties(IPlatformProperties * *aProperties) { return _to GetProperties(aProperties); } \
  NS_IMETHOD GetX86(IPlatformX86 * *aX86) { return _to GetX86(aX86); } \
  NS_IMETHOD GetARM(IPlatformARM * *aARM) { return _to GetARM(aARM); } \
  NS_IMETHOD GetChipsetType(ChipsetType_T *aChipsetType) { return _to GetChipsetType(aChipsetType); } \
  NS_IMETHOD SetChipsetType(ChipsetType_T aChipsetType) { return _to SetChipsetType(aChipsetType); } \
  NS_IMETHOD GetIommuType(IommuType_T *aIommuType) { return _to GetIommuType(aIommuType); } \
  NS_IMETHOD SetIommuType(IommuType_T aIommuType) { return _to SetIommuType(aIommuType); } \
  NS_IMETHOD GetRTCUseUTC(PRBool *aRTCUseUTC) { return _to GetRTCUseUTC(aRTCUseUTC); } \
  NS_IMETHOD SetRTCUseUTC(PRBool aRTCUseUTC) { return _to SetRTCUseUTC(aRTCUseUTC); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IPlatform(PRUint32 *aInternalAndReservedAttribute1IPlatform) { return _to GetInternalAndReservedAttribute1IPlatform(aInternalAndReservedAttribute1IPlatform); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IPlatform(PRUint32 *aInternalAndReservedAttribute2IPlatform) { return _to GetInternalAndReservedAttribute2IPlatform(aInternalAndReservedAttribute2IPlatform); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IPlatform(PRUint32 *aInternalAndReservedAttribute3IPlatform) { return _to GetInternalAndReservedAttribute3IPlatform(aInternalAndReservedAttribute3IPlatform); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IPlatform(PRUint32 *aInternalAndReservedAttribute4IPlatform) { return _to GetInternalAndReservedAttribute4IPlatform(aInternalAndReservedAttribute4IPlatform); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IPlatform(PRUint32 *aInternalAndReservedAttribute5IPlatform) { return _to GetInternalAndReservedAttribute5IPlatform(aInternalAndReservedAttribute5IPlatform); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IPlatform(PRUint32 *aInternalAndReservedAttribute6IPlatform) { return _to GetInternalAndReservedAttribute6IPlatform(aInternalAndReservedAttribute6IPlatform); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IPlatform(PRUint32 *aInternalAndReservedAttribute7IPlatform) { return _to GetInternalAndReservedAttribute7IPlatform(aInternalAndReservedAttribute7IPlatform); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IPlatform(PRUint32 *aInternalAndReservedAttribute8IPlatform) { return _to GetInternalAndReservedAttribute8IPlatform(aInternalAndReservedAttribute8IPlatform); } \
  NS_IMETHOD GetInternalAndReservedAttribute9IPlatform(PRUint32 *aInternalAndReservedAttribute9IPlatform) { return _to GetInternalAndReservedAttribute9IPlatform(aInternalAndReservedAttribute9IPlatform); } \
  NS_IMETHOD GetInternalAndReservedAttribute10IPlatform(PRUint32 *aInternalAndReservedAttribute10IPlatform) { return _to GetInternalAndReservedAttribute10IPlatform(aInternalAndReservedAttribute10IPlatform); } \
  NS_IMETHOD GetInternalAndReservedAttribute11IPlatform(PRUint32 *aInternalAndReservedAttribute11IPlatform) { return _to GetInternalAndReservedAttribute11IPlatform(aInternalAndReservedAttribute11IPlatform); } \
  NS_IMETHOD GetInternalAndReservedAttribute12IPlatform(PRUint32 *aInternalAndReservedAttribute12IPlatform) { return _to GetInternalAndReservedAttribute12IPlatform(aInternalAndReservedAttribute12IPlatform); } \
  NS_IMETHOD GetInternalAndReservedAttribute13IPlatform(PRUint32 *aInternalAndReservedAttribute13IPlatform) { return _to GetInternalAndReservedAttribute13IPlatform(aInternalAndReservedAttribute13IPlatform); } \
  NS_IMETHOD GetInternalAndReservedAttribute14IPlatform(PRUint32 *aInternalAndReservedAttribute14IPlatform) { return _to GetInternalAndReservedAttribute14IPlatform(aInternalAndReservedAttribute14IPlatform); } \
  NS_IMETHOD GetInternalAndReservedAttribute15IPlatform(PRUint32 *aInternalAndReservedAttribute15IPlatform) { return _to GetInternalAndReservedAttribute15IPlatform(aInternalAndReservedAttribute15IPlatform); } \
  NS_IMETHOD GetInternalAndReservedAttribute16IPlatform(PRUint32 *aInternalAndReservedAttribute16IPlatform) { return _to GetInternalAndReservedAttribute16IPlatform(aInternalAndReservedAttribute16IPlatform); } \
  NS_IMETHOD InternalAndReservedMethod1IPlatform(void) { return _to InternalAndReservedMethod1IPlatform(); } \
  NS_IMETHOD InternalAndReservedMethod2IPlatform(void) { return _to InternalAndReservedMethod2IPlatform(); } \
  NS_IMETHOD InternalAndReservedMethod3IPlatform(void) { return _to InternalAndReservedMethod3IPlatform(); } \
  NS_IMETHOD InternalAndReservedMethod4IPlatform(void) { return _to InternalAndReservedMethod4IPlatform(); } \
  NS_IMETHOD InternalAndReservedMethod5IPlatform(void) { return _to InternalAndReservedMethod5IPlatform(); } \
  NS_IMETHOD InternalAndReservedMethod6IPlatform(void) { return _to InternalAndReservedMethod6IPlatform(); } \
  NS_IMETHOD InternalAndReservedMethod7IPlatform(void) { return _to InternalAndReservedMethod7IPlatform(); } \
  NS_IMETHOD InternalAndReservedMethod8IPlatform(void) { return _to InternalAndReservedMethod8IPlatform(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IPLATFORM(_to) \
  NS_IMETHOD GetArchitecture(PlatformArchitecture_T *aArchitecture) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetArchitecture(aArchitecture); } \
  NS_IMETHOD SetArchitecture(PlatformArchitecture_T aArchitecture) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetArchitecture(aArchitecture); } \
  NS_IMETHOD GetProperties(IPlatformProperties * *aProperties) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProperties(aProperties); } \
  NS_IMETHOD GetX86(IPlatformX86 * *aX86) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetX86(aX86); } \
  NS_IMETHOD GetARM(IPlatformARM * *aARM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetARM(aARM); } \
  NS_IMETHOD GetChipsetType(ChipsetType_T *aChipsetType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetChipsetType(aChipsetType); } \
  NS_IMETHOD SetChipsetType(ChipsetType_T aChipsetType) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetChipsetType(aChipsetType); } \
  NS_IMETHOD GetIommuType(IommuType_T *aIommuType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIommuType(aIommuType); } \
  NS_IMETHOD SetIommuType(IommuType_T aIommuType) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIommuType(aIommuType); } \
  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 GetInternalAndReservedAttribute1IPlatform(PRUint32 *aInternalAndReservedAttribute1IPlatform) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IPlatform(aInternalAndReservedAttribute1IPlatform); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IPlatform(PRUint32 *aInternalAndReservedAttribute2IPlatform) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IPlatform(aInternalAndReservedAttribute2IPlatform); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IPlatform(PRUint32 *aInternalAndReservedAttribute3IPlatform) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IPlatform(aInternalAndReservedAttribute3IPlatform); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IPlatform(PRUint32 *aInternalAndReservedAttribute4IPlatform) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IPlatform(aInternalAndReservedAttribute4IPlatform); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IPlatform(PRUint32 *aInternalAndReservedAttribute5IPlatform) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IPlatform(aInternalAndReservedAttribute5IPlatform); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IPlatform(PRUint32 *aInternalAndReservedAttribute6IPlatform) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IPlatform(aInternalAndReservedAttribute6IPlatform); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IPlatform(PRUint32 *aInternalAndReservedAttribute7IPlatform) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IPlatform(aInternalAndReservedAttribute7IPlatform); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IPlatform(PRUint32 *aInternalAndReservedAttribute8IPlatform) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IPlatform(aInternalAndReservedAttribute8IPlatform); } \
  NS_IMETHOD GetInternalAndReservedAttribute9IPlatform(PRUint32 *aInternalAndReservedAttribute9IPlatform) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute9IPlatform(aInternalAndReservedAttribute9IPlatform); } \
  NS_IMETHOD GetInternalAndReservedAttribute10IPlatform(PRUint32 *aInternalAndReservedAttribute10IPlatform) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute10IPlatform(aInternalAndReservedAttribute10IPlatform); } \
  NS_IMETHOD GetInternalAndReservedAttribute11IPlatform(PRUint32 *aInternalAndReservedAttribute11IPlatform) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute11IPlatform(aInternalAndReservedAttribute11IPlatform); } \
  NS_IMETHOD GetInternalAndReservedAttribute12IPlatform(PRUint32 *aInternalAndReservedAttribute12IPlatform) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute12IPlatform(aInternalAndReservedAttribute12IPlatform); } \
  NS_IMETHOD GetInternalAndReservedAttribute13IPlatform(PRUint32 *aInternalAndReservedAttribute13IPlatform) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute13IPlatform(aInternalAndReservedAttribute13IPlatform); } \
  NS_IMETHOD GetInternalAndReservedAttribute14IPlatform(PRUint32 *aInternalAndReservedAttribute14IPlatform) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute14IPlatform(aInternalAndReservedAttribute14IPlatform); } \
  NS_IMETHOD GetInternalAndReservedAttribute15IPlatform(PRUint32 *aInternalAndReservedAttribute15IPlatform) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute15IPlatform(aInternalAndReservedAttribute15IPlatform); } \
  NS_IMETHOD GetInternalAndReservedAttribute16IPlatform(PRUint32 *aInternalAndReservedAttribute16IPlatform) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute16IPlatform(aInternalAndReservedAttribute16IPlatform); } \
  NS_IMETHOD InternalAndReservedMethod1IPlatform(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IPlatform(); } \
  NS_IMETHOD InternalAndReservedMethod2IPlatform(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IPlatform(); } \
  NS_IMETHOD InternalAndReservedMethod3IPlatform(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IPlatform(); } \
  NS_IMETHOD InternalAndReservedMethod4IPlatform(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IPlatform(); } \
  NS_IMETHOD InternalAndReservedMethod5IPlatform(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod5IPlatform(); } \
  NS_IMETHOD InternalAndReservedMethod6IPlatform(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod6IPlatform(); } \
  NS_IMETHOD InternalAndReservedMethod7IPlatform(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod7IPlatform(); } \
  NS_IMETHOD InternalAndReservedMethod8IPlatform(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod8IPlatform(); } 

#define COM_FORWARD_IPlatform_GETTER_Architecture_TO(smth) NS_IMETHOD GetArchitecture (PRUint32 * aArchitecture) { return smth GetArchitecture (aArchitecture); }
#define COM_FORWARD_IPlatform_GETTER_Architecture_TO_OBJ(obj) COM_FORWARD_IPlatform_GETTER_Architecture_TO ((obj)->)
#define COM_FORWARD_IPlatform_GETTER_Architecture_TO_BASE(base) COM_FORWARD_IPlatform_GETTER_Architecture_TO (base::)
#define COM_FORWARD_IPlatform_SETTER_Architecture_TO(smth) NS_IMETHOD SetArchitecture (PRUint32 aArchitecture) { return smth SetArchitecture (aArchitecture); }
#define COM_FORWARD_IPlatform_SETTER_Architecture_TO_OBJ(obj) COM_FORWARD_IPlatform_SETTER_Architecture_TO ((obj)->)
#define COM_FORWARD_IPlatform_SETTER_Architecture_TO_BASE(base) COM_FORWARD_IPlatform_SETTER_Architecture_TO (base::)
#define COM_FORWARD_IPlatform_GETTER_Properties_TO(smth) NS_IMETHOD GetProperties (IPlatformProperties * * aProperties) { return smth GetProperties (aProperties); }
#define COM_FORWARD_IPlatform_GETTER_Properties_TO_OBJ(obj) COM_FORWARD_IPlatform_GETTER_Properties_TO ((obj)->)
#define COM_FORWARD_IPlatform_GETTER_Properties_TO_BASE(base) COM_FORWARD_IPlatform_GETTER_Properties_TO (base::)
#define COM_FORWARD_IPlatform_GETTER_X86_TO(smth) NS_IMETHOD GetX86 (IPlatformX86 * * aX86) { return smth GetX86 (aX86); }
#define COM_FORWARD_IPlatform_GETTER_X86_TO_OBJ(obj) COM_FORWARD_IPlatform_GETTER_X86_TO ((obj)->)
#define COM_FORWARD_IPlatform_GETTER_X86_TO_BASE(base) COM_FORWARD_IPlatform_GETTER_X86_TO (base::)
#define COM_FORWARD_IPlatform_GETTER_ARM_TO(smth) NS_IMETHOD GetARM (IPlatformARM * * aARM) { return smth GetARM (aARM); }
#define COM_FORWARD_IPlatform_GETTER_ARM_TO_OBJ(obj) COM_FORWARD_IPlatform_GETTER_ARM_TO ((obj)->)
#define COM_FORWARD_IPlatform_GETTER_ARM_TO_BASE(base) COM_FORWARD_IPlatform_GETTER_ARM_TO (base::)
#define COM_FORWARD_IPlatform_GETTER_ChipsetType_TO(smth) NS_IMETHOD GetChipsetType (PRUint32 * aChipsetType) { return smth GetChipsetType (aChipsetType); }
#define COM_FORWARD_IPlatform_GETTER_ChipsetType_TO_OBJ(obj) COM_FORWARD_IPlatform_GETTER_ChipsetType_TO ((obj)->)
#define COM_FORWARD_IPlatform_GETTER_ChipsetType_TO_BASE(base) COM_FORWARD_IPlatform_GETTER_ChipsetType_TO (base::)
#define COM_FORWARD_IPlatform_SETTER_ChipsetType_TO(smth) NS_IMETHOD SetChipsetType (PRUint32 aChipsetType) { return smth SetChipsetType (aChipsetType); }
#define COM_FORWARD_IPlatform_SETTER_ChipsetType_TO_OBJ(obj) COM_FORWARD_IPlatform_SETTER_ChipsetType_TO ((obj)->)
#define COM_FORWARD_IPlatform_SETTER_ChipsetType_TO_BASE(base) COM_FORWARD_IPlatform_SETTER_ChipsetType_TO (base::)
#define COM_FORWARD_IPlatform_GETTER_IommuType_TO(smth) NS_IMETHOD GetIommuType (PRUint32 * aIommuType) { return smth GetIommuType (aIommuType); }
#define COM_FORWARD_IPlatform_GETTER_IommuType_TO_OBJ(obj) COM_FORWARD_IPlatform_GETTER_IommuType_TO ((obj)->)
#define COM_FORWARD_IPlatform_GETTER_IommuType_TO_BASE(base) COM_FORWARD_IPlatform_GETTER_IommuType_TO (base::)
#define COM_FORWARD_IPlatform_SETTER_IommuType_TO(smth) NS_IMETHOD SetIommuType (PRUint32 aIommuType) { return smth SetIommuType (aIommuType); }
#define COM_FORWARD_IPlatform_SETTER_IommuType_TO_OBJ(obj) COM_FORWARD_IPlatform_SETTER_IommuType_TO ((obj)->)
#define COM_FORWARD_IPlatform_SETTER_IommuType_TO_BASE(base) COM_FORWARD_IPlatform_SETTER_IommuType_TO (base::)
#define COM_FORWARD_IPlatform_GETTER_RTCUseUTC_TO(smth) NS_IMETHOD GetRTCUseUTC (PRBool * aRTCUseUTC) { return smth GetRTCUseUTC (aRTCUseUTC); }
#define COM_FORWARD_IPlatform_GETTER_RTCUseUTC_TO_OBJ(obj) COM_FORWARD_IPlatform_GETTER_RTCUseUTC_TO ((obj)->)
#define COM_FORWARD_IPlatform_GETTER_RTCUseUTC_TO_BASE(base) COM_FORWARD_IPlatform_GETTER_RTCUseUTC_TO (base::)
#define COM_FORWARD_IPlatform_SETTER_RTCUseUTC_TO(smth) NS_IMETHOD SetRTCUseUTC (PRBool aRTCUseUTC) { return smth SetRTCUseUTC (aRTCUseUTC); }
#define COM_FORWARD_IPlatform_SETTER_RTCUseUTC_TO_OBJ(obj) COM_FORWARD_IPlatform_SETTER_RTCUseUTC_TO ((obj)->)
#define COM_FORWARD_IPlatform_SETTER_RTCUseUTC_TO_BASE(base) COM_FORWARD_IPlatform_SETTER_RTCUseUTC_TO (base::)
#define COM_FORWARD_IPlatform_TO(smth) NS_FORWARD_IPLATFORM (smth)
#define COM_FORWARD_IPlatform_TO_OBJ(obj) COM_FORWARD_IPlatform_TO ((obj)->)
#define COM_FORWARD_IPlatform_TO_BASE(base) COM_FORWARD_IPlatform_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IPlatform;

/* starting interface:    IPlatformX86 */
#define IPLATFORMX86_IID_STR "5ada589f-09c9-4604-b700-9ab3a5572e3a"

#define IPLATFORMX86_IID \
  {0x5ada589f, 0x09c9, 0x4604, \
    { 0xb7, 0x00, 0x9a, 0xb3, 0xa5, 0x57, 0x2e, 0x3a }}

class NS_NO_VTABLE IPlatformX86 : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IPLATFORMX86_IID)

  /* attribute boolean HPETEnabled; */
  NS_IMETHOD GetHPETEnabled(PRBool *aHPETEnabled) = 0;
  NS_IMETHOD SetHPETEnabled(PRBool aHPETEnabled) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IPlatformX86; */
  NS_IMETHOD GetInternalAndReservedAttribute1IPlatformX86(PRUint32 *aInternalAndReservedAttribute1IPlatformX86) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IPlatformX86; */
  NS_IMETHOD GetInternalAndReservedAttribute2IPlatformX86(PRUint32 *aInternalAndReservedAttribute2IPlatformX86) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IPlatformX86; */
  NS_IMETHOD GetInternalAndReservedAttribute3IPlatformX86(PRUint32 *aInternalAndReservedAttribute3IPlatformX86) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IPlatformX86; */
  NS_IMETHOD GetInternalAndReservedAttribute4IPlatformX86(PRUint32 *aInternalAndReservedAttribute4IPlatformX86) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IPlatformX86; */
  NS_IMETHOD GetInternalAndReservedAttribute5IPlatformX86(PRUint32 *aInternalAndReservedAttribute5IPlatformX86) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IPlatformX86; */
  NS_IMETHOD GetInternalAndReservedAttribute6IPlatformX86(PRUint32 *aInternalAndReservedAttribute6IPlatformX86) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IPlatformX86; */
  NS_IMETHOD GetInternalAndReservedAttribute7IPlatformX86(PRUint32 *aInternalAndReservedAttribute7IPlatformX86) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IPlatformX86; */
  NS_IMETHOD GetInternalAndReservedAttribute8IPlatformX86(PRUint32 *aInternalAndReservedAttribute8IPlatformX86) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute9IPlatformX86; */
  NS_IMETHOD GetInternalAndReservedAttribute9IPlatformX86(PRUint32 *aInternalAndReservedAttribute9IPlatformX86) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute10IPlatformX86; */
  NS_IMETHOD GetInternalAndReservedAttribute10IPlatformX86(PRUint32 *aInternalAndReservedAttribute10IPlatformX86) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute11IPlatformX86; */
  NS_IMETHOD GetInternalAndReservedAttribute11IPlatformX86(PRUint32 *aInternalAndReservedAttribute11IPlatformX86) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute12IPlatformX86; */
  NS_IMETHOD GetInternalAndReservedAttribute12IPlatformX86(PRUint32 *aInternalAndReservedAttribute12IPlatformX86) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute13IPlatformX86; */
  NS_IMETHOD GetInternalAndReservedAttribute13IPlatformX86(PRUint32 *aInternalAndReservedAttribute13IPlatformX86) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute14IPlatformX86; */
  NS_IMETHOD GetInternalAndReservedAttribute14IPlatformX86(PRUint32 *aInternalAndReservedAttribute14IPlatformX86) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute15IPlatformX86; */
  NS_IMETHOD GetInternalAndReservedAttribute15IPlatformX86(PRUint32 *aInternalAndReservedAttribute15IPlatformX86) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute16IPlatformX86; */
  NS_IMETHOD GetInternalAndReservedAttribute16IPlatformX86(PRUint32 *aInternalAndReservedAttribute16IPlatformX86) = 0;

  /* void getCPUProperty (in CPUPropertyTypeX86_T property, [retval] out boolean value); */
  NS_IMETHOD GetCPUProperty(CPUPropertyTypeX86_T property, PRBool *value) = 0;

  /* void setCPUProperty (in CPUPropertyTypeX86_T property, in boolean value); */
  NS_IMETHOD SetCPUProperty(CPUPropertyTypeX86_T property, PRBool value) = 0;

  /* void getCPUIDLeafByOrdinal (in unsigned long ordinal, out unsigned long idx, out unsigned long idxSub, out unsigned long valEax, out unsigned long valEbx, out unsigned long valEcx, out unsigned long valEdx); */
  NS_IMETHOD GetCPUIDLeafByOrdinal(PRUint32 ordinal, PRUint32 *idx, PRUint32 *idxSub, PRUint32 *valEax, PRUint32 *valEbx, PRUint32 *valEcx, PRUint32 *valEdx) = 0;

  /* void getCPUIDLeaf (in unsigned long idx, in unsigned long idxSub, out unsigned long valEax, out unsigned long valEbx, out unsigned long valEcx, out unsigned long valEdx); */
  NS_IMETHOD GetCPUIDLeaf(PRUint32 idx, PRUint32 idxSub, PRUint32 *valEax, PRUint32 *valEbx, PRUint32 *valEcx, PRUint32 *valEdx) = 0;

  /* void setCPUIDLeaf (in unsigned long idx, in unsigned long idxSub, in unsigned long valEax, in unsigned long valEbx, in unsigned long valEcx, in unsigned long valEdx); */
  NS_IMETHOD SetCPUIDLeaf(PRUint32 idx, PRUint32 idxSub, PRUint32 valEax, PRUint32 valEbx, PRUint32 valEcx, PRUint32 valEdx) = 0;

  /* void removeCPUIDLeaf (in unsigned long idx, in unsigned long idxSub); */
  NS_IMETHOD RemoveCPUIDLeaf(PRUint32 idx, PRUint32 idxSub) = 0;

  /* void removeAllCPUIDLeaves (); */
  NS_IMETHOD RemoveAllCPUIDLeaves(void) = 0;

  /* void getHWVirtExProperty (in HWVirtExPropertyType_T property, [retval] out boolean value); */
  NS_IMETHOD GetHWVirtExProperty(HWVirtExPropertyType_T property, PRBool *value) = 0;

  /* void setHWVirtExProperty (in HWVirtExPropertyType_T property, in boolean value); */
  NS_IMETHOD SetHWVirtExProperty(HWVirtExPropertyType_T property, PRBool value) = 0;

  /* void InternalAndReservedMethod1IPlatformX86 (); */
  NS_IMETHOD InternalAndReservedMethod1IPlatformX86(void) = 0;

  /* void InternalAndReservedMethod2IPlatformX86 (); */
  NS_IMETHOD InternalAndReservedMethod2IPlatformX86(void) = 0;

  /* void InternalAndReservedMethod3IPlatformX86 (); */
  NS_IMETHOD InternalAndReservedMethod3IPlatformX86(void) = 0;

  /* void InternalAndReservedMethod4IPlatformX86 (); */
  NS_IMETHOD InternalAndReservedMethod4IPlatformX86(void) = 0;

  /* void InternalAndReservedMethod5IPlatformX86 (); */
  NS_IMETHOD InternalAndReservedMethod5IPlatformX86(void) = 0;

  /* void InternalAndReservedMethod6IPlatformX86 (); */
  NS_IMETHOD InternalAndReservedMethod6IPlatformX86(void) = 0;

  /* void InternalAndReservedMethod7IPlatformX86 (); */
  NS_IMETHOD InternalAndReservedMethod7IPlatformX86(void) = 0;

  /* void InternalAndReservedMethod8IPlatformX86 (); */
  NS_IMETHOD InternalAndReservedMethod8IPlatformX86(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IPLATFORMX86 \
  NS_IMETHOD GetHPETEnabled(PRBool *aHPETEnabled) NS_OVERRIDE; \
  NS_IMETHOD SetHPETEnabled(PRBool aHPETEnabled) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IPlatformX86(PRUint32 *aInternalAndReservedAttribute1IPlatformX86) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IPlatformX86(PRUint32 *aInternalAndReservedAttribute2IPlatformX86) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IPlatformX86(PRUint32 *aInternalAndReservedAttribute3IPlatformX86) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IPlatformX86(PRUint32 *aInternalAndReservedAttribute4IPlatformX86) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IPlatformX86(PRUint32 *aInternalAndReservedAttribute5IPlatformX86) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IPlatformX86(PRUint32 *aInternalAndReservedAttribute6IPlatformX86) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IPlatformX86(PRUint32 *aInternalAndReservedAttribute7IPlatformX86) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IPlatformX86(PRUint32 *aInternalAndReservedAttribute8IPlatformX86) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute9IPlatformX86(PRUint32 *aInternalAndReservedAttribute9IPlatformX86) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute10IPlatformX86(PRUint32 *aInternalAndReservedAttribute10IPlatformX86) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute11IPlatformX86(PRUint32 *aInternalAndReservedAttribute11IPlatformX86) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute12IPlatformX86(PRUint32 *aInternalAndReservedAttribute12IPlatformX86) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute13IPlatformX86(PRUint32 *aInternalAndReservedAttribute13IPlatformX86) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute14IPlatformX86(PRUint32 *aInternalAndReservedAttribute14IPlatformX86) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute15IPlatformX86(PRUint32 *aInternalAndReservedAttribute15IPlatformX86) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute16IPlatformX86(PRUint32 *aInternalAndReservedAttribute16IPlatformX86) NS_OVERRIDE; \
  NS_IMETHOD GetCPUProperty(CPUPropertyTypeX86_T property, PRBool *value) NS_OVERRIDE; \
  NS_IMETHOD SetCPUProperty(CPUPropertyTypeX86_T property, PRBool value) NS_OVERRIDE; \
  NS_IMETHOD GetCPUIDLeafByOrdinal(PRUint32 ordinal, PRUint32 *idx, PRUint32 *idxSub, PRUint32 *valEax, PRUint32 *valEbx, PRUint32 *valEcx, PRUint32 *valEdx) NS_OVERRIDE; \
  NS_IMETHOD GetCPUIDLeaf(PRUint32 idx, PRUint32 idxSub, PRUint32 *valEax, PRUint32 *valEbx, PRUint32 *valEcx, PRUint32 *valEdx) NS_OVERRIDE; \
  NS_IMETHOD SetCPUIDLeaf(PRUint32 idx, PRUint32 idxSub, PRUint32 valEax, PRUint32 valEbx, PRUint32 valEcx, PRUint32 valEdx) NS_OVERRIDE; \
  NS_IMETHOD RemoveCPUIDLeaf(PRUint32 idx, PRUint32 idxSub) NS_OVERRIDE; \
  NS_IMETHOD RemoveAllCPUIDLeaves(void) NS_OVERRIDE; \
  NS_IMETHOD GetHWVirtExProperty(HWVirtExPropertyType_T property, PRBool *value) NS_OVERRIDE; \
  NS_IMETHOD SetHWVirtExProperty(HWVirtExPropertyType_T property, PRBool value) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IPlatformX86(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IPlatformX86(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IPlatformX86(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IPlatformX86(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod5IPlatformX86(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod6IPlatformX86(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod7IPlatformX86(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod8IPlatformX86(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IPLATFORMX86(_to) \
  NS_IMETHOD GetHPETEnabled(PRBool *aHPETEnabled) { return _to GetHPETEnabled(aHPETEnabled); } \
  NS_IMETHOD SetHPETEnabled(PRBool aHPETEnabled) { return _to SetHPETEnabled(aHPETEnabled); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IPlatformX86(PRUint32 *aInternalAndReservedAttribute1IPlatformX86) { return _to GetInternalAndReservedAttribute1IPlatformX86(aInternalAndReservedAttribute1IPlatformX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IPlatformX86(PRUint32 *aInternalAndReservedAttribute2IPlatformX86) { return _to GetInternalAndReservedAttribute2IPlatformX86(aInternalAndReservedAttribute2IPlatformX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IPlatformX86(PRUint32 *aInternalAndReservedAttribute3IPlatformX86) { return _to GetInternalAndReservedAttribute3IPlatformX86(aInternalAndReservedAttribute3IPlatformX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IPlatformX86(PRUint32 *aInternalAndReservedAttribute4IPlatformX86) { return _to GetInternalAndReservedAttribute4IPlatformX86(aInternalAndReservedAttribute4IPlatformX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IPlatformX86(PRUint32 *aInternalAndReservedAttribute5IPlatformX86) { return _to GetInternalAndReservedAttribute5IPlatformX86(aInternalAndReservedAttribute5IPlatformX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IPlatformX86(PRUint32 *aInternalAndReservedAttribute6IPlatformX86) { return _to GetInternalAndReservedAttribute6IPlatformX86(aInternalAndReservedAttribute6IPlatformX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IPlatformX86(PRUint32 *aInternalAndReservedAttribute7IPlatformX86) { return _to GetInternalAndReservedAttribute7IPlatformX86(aInternalAndReservedAttribute7IPlatformX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IPlatformX86(PRUint32 *aInternalAndReservedAttribute8IPlatformX86) { return _to GetInternalAndReservedAttribute8IPlatformX86(aInternalAndReservedAttribute8IPlatformX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute9IPlatformX86(PRUint32 *aInternalAndReservedAttribute9IPlatformX86) { return _to GetInternalAndReservedAttribute9IPlatformX86(aInternalAndReservedAttribute9IPlatformX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute10IPlatformX86(PRUint32 *aInternalAndReservedAttribute10IPlatformX86) { return _to GetInternalAndReservedAttribute10IPlatformX86(aInternalAndReservedAttribute10IPlatformX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute11IPlatformX86(PRUint32 *aInternalAndReservedAttribute11IPlatformX86) { return _to GetInternalAndReservedAttribute11IPlatformX86(aInternalAndReservedAttribute11IPlatformX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute12IPlatformX86(PRUint32 *aInternalAndReservedAttribute12IPlatformX86) { return _to GetInternalAndReservedAttribute12IPlatformX86(aInternalAndReservedAttribute12IPlatformX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute13IPlatformX86(PRUint32 *aInternalAndReservedAttribute13IPlatformX86) { return _to GetInternalAndReservedAttribute13IPlatformX86(aInternalAndReservedAttribute13IPlatformX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute14IPlatformX86(PRUint32 *aInternalAndReservedAttribute14IPlatformX86) { return _to GetInternalAndReservedAttribute14IPlatformX86(aInternalAndReservedAttribute14IPlatformX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute15IPlatformX86(PRUint32 *aInternalAndReservedAttribute15IPlatformX86) { return _to GetInternalAndReservedAttribute15IPlatformX86(aInternalAndReservedAttribute15IPlatformX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute16IPlatformX86(PRUint32 *aInternalAndReservedAttribute16IPlatformX86) { return _to GetInternalAndReservedAttribute16IPlatformX86(aInternalAndReservedAttribute16IPlatformX86); } \
  NS_IMETHOD GetCPUProperty(CPUPropertyTypeX86_T property, PRBool *value) { return _to GetCPUProperty(property, value); } \
  NS_IMETHOD SetCPUProperty(CPUPropertyTypeX86_T property, PRBool value) { return _to SetCPUProperty(property, value); } \
  NS_IMETHOD GetCPUIDLeafByOrdinal(PRUint32 ordinal, PRUint32 *idx, PRUint32 *idxSub, PRUint32 *valEax, PRUint32 *valEbx, PRUint32 *valEcx, PRUint32 *valEdx) { return _to GetCPUIDLeafByOrdinal(ordinal, idx, idxSub, valEax, valEbx, valEcx, valEdx); } \
  NS_IMETHOD GetCPUIDLeaf(PRUint32 idx, PRUint32 idxSub, PRUint32 *valEax, PRUint32 *valEbx, PRUint32 *valEcx, PRUint32 *valEdx) { return _to GetCPUIDLeaf(idx, idxSub, valEax, valEbx, valEcx, valEdx); } \
  NS_IMETHOD SetCPUIDLeaf(PRUint32 idx, PRUint32 idxSub, PRUint32 valEax, PRUint32 valEbx, PRUint32 valEcx, PRUint32 valEdx) { return _to SetCPUIDLeaf(idx, idxSub, valEax, valEbx, valEcx, valEdx); } \
  NS_IMETHOD RemoveCPUIDLeaf(PRUint32 idx, PRUint32 idxSub) { return _to RemoveCPUIDLeaf(idx, idxSub); } \
  NS_IMETHOD RemoveAllCPUIDLeaves(void) { return _to RemoveAllCPUIDLeaves(); } \
  NS_IMETHOD GetHWVirtExProperty(HWVirtExPropertyType_T property, PRBool *value) { return _to GetHWVirtExProperty(property, value); } \
  NS_IMETHOD SetHWVirtExProperty(HWVirtExPropertyType_T property, PRBool value) { return _to SetHWVirtExProperty(property, value); } \
  NS_IMETHOD InternalAndReservedMethod1IPlatformX86(void) { return _to InternalAndReservedMethod1IPlatformX86(); } \
  NS_IMETHOD InternalAndReservedMethod2IPlatformX86(void) { return _to InternalAndReservedMethod2IPlatformX86(); } \
  NS_IMETHOD InternalAndReservedMethod3IPlatformX86(void) { return _to InternalAndReservedMethod3IPlatformX86(); } \
  NS_IMETHOD InternalAndReservedMethod4IPlatformX86(void) { return _to InternalAndReservedMethod4IPlatformX86(); } \
  NS_IMETHOD InternalAndReservedMethod5IPlatformX86(void) { return _to InternalAndReservedMethod5IPlatformX86(); } \
  NS_IMETHOD InternalAndReservedMethod6IPlatformX86(void) { return _to InternalAndReservedMethod6IPlatformX86(); } \
  NS_IMETHOD InternalAndReservedMethod7IPlatformX86(void) { return _to InternalAndReservedMethod7IPlatformX86(); } \
  NS_IMETHOD InternalAndReservedMethod8IPlatformX86(void) { return _to InternalAndReservedMethod8IPlatformX86(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IPLATFORMX86(_to) \
  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 GetInternalAndReservedAttribute1IPlatformX86(PRUint32 *aInternalAndReservedAttribute1IPlatformX86) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IPlatformX86(aInternalAndReservedAttribute1IPlatformX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IPlatformX86(PRUint32 *aInternalAndReservedAttribute2IPlatformX86) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IPlatformX86(aInternalAndReservedAttribute2IPlatformX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IPlatformX86(PRUint32 *aInternalAndReservedAttribute3IPlatformX86) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IPlatformX86(aInternalAndReservedAttribute3IPlatformX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IPlatformX86(PRUint32 *aInternalAndReservedAttribute4IPlatformX86) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IPlatformX86(aInternalAndReservedAttribute4IPlatformX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IPlatformX86(PRUint32 *aInternalAndReservedAttribute5IPlatformX86) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IPlatformX86(aInternalAndReservedAttribute5IPlatformX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IPlatformX86(PRUint32 *aInternalAndReservedAttribute6IPlatformX86) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IPlatformX86(aInternalAndReservedAttribute6IPlatformX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IPlatformX86(PRUint32 *aInternalAndReservedAttribute7IPlatformX86) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IPlatformX86(aInternalAndReservedAttribute7IPlatformX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IPlatformX86(PRUint32 *aInternalAndReservedAttribute8IPlatformX86) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IPlatformX86(aInternalAndReservedAttribute8IPlatformX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute9IPlatformX86(PRUint32 *aInternalAndReservedAttribute9IPlatformX86) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute9IPlatformX86(aInternalAndReservedAttribute9IPlatformX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute10IPlatformX86(PRUint32 *aInternalAndReservedAttribute10IPlatformX86) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute10IPlatformX86(aInternalAndReservedAttribute10IPlatformX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute11IPlatformX86(PRUint32 *aInternalAndReservedAttribute11IPlatformX86) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute11IPlatformX86(aInternalAndReservedAttribute11IPlatformX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute12IPlatformX86(PRUint32 *aInternalAndReservedAttribute12IPlatformX86) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute12IPlatformX86(aInternalAndReservedAttribute12IPlatformX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute13IPlatformX86(PRUint32 *aInternalAndReservedAttribute13IPlatformX86) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute13IPlatformX86(aInternalAndReservedAttribute13IPlatformX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute14IPlatformX86(PRUint32 *aInternalAndReservedAttribute14IPlatformX86) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute14IPlatformX86(aInternalAndReservedAttribute14IPlatformX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute15IPlatformX86(PRUint32 *aInternalAndReservedAttribute15IPlatformX86) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute15IPlatformX86(aInternalAndReservedAttribute15IPlatformX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute16IPlatformX86(PRUint32 *aInternalAndReservedAttribute16IPlatformX86) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute16IPlatformX86(aInternalAndReservedAttribute16IPlatformX86); } \
  NS_IMETHOD GetCPUProperty(CPUPropertyTypeX86_T property, PRBool *value) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCPUProperty(property, value); } \
  NS_IMETHOD SetCPUProperty(CPUPropertyTypeX86_T property, PRBool value) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCPUProperty(property, value); } \
  NS_IMETHOD GetCPUIDLeafByOrdinal(PRUint32 ordinal, PRUint32 *idx, PRUint32 *idxSub, PRUint32 *valEax, PRUint32 *valEbx, PRUint32 *valEcx, PRUint32 *valEdx) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCPUIDLeafByOrdinal(ordinal, idx, idxSub, valEax, valEbx, valEcx, valEdx); } \
  NS_IMETHOD GetCPUIDLeaf(PRUint32 idx, PRUint32 idxSub, PRUint32 *valEax, PRUint32 *valEbx, PRUint32 *valEcx, PRUint32 *valEdx) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCPUIDLeaf(idx, idxSub, valEax, valEbx, valEcx, valEdx); } \
  NS_IMETHOD SetCPUIDLeaf(PRUint32 idx, PRUint32 idxSub, PRUint32 valEax, PRUint32 valEbx, PRUint32 valEcx, PRUint32 valEdx) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCPUIDLeaf(idx, idxSub, valEax, valEbx, valEcx, valEdx); } \
  NS_IMETHOD RemoveCPUIDLeaf(PRUint32 idx, PRUint32 idxSub) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveCPUIDLeaf(idx, idxSub); } \
  NS_IMETHOD RemoveAllCPUIDLeaves(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveAllCPUIDLeaves(); } \
  NS_IMETHOD GetHWVirtExProperty(HWVirtExPropertyType_T property, PRBool *value) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHWVirtExProperty(property, value); } \
  NS_IMETHOD SetHWVirtExProperty(HWVirtExPropertyType_T property, PRBool value) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetHWVirtExProperty(property, value); } \
  NS_IMETHOD InternalAndReservedMethod1IPlatformX86(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IPlatformX86(); } \
  NS_IMETHOD InternalAndReservedMethod2IPlatformX86(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IPlatformX86(); } \
  NS_IMETHOD InternalAndReservedMethod3IPlatformX86(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IPlatformX86(); } \
  NS_IMETHOD InternalAndReservedMethod4IPlatformX86(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IPlatformX86(); } \
  NS_IMETHOD InternalAndReservedMethod5IPlatformX86(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod5IPlatformX86(); } \
  NS_IMETHOD InternalAndReservedMethod6IPlatformX86(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod6IPlatformX86(); } \
  NS_IMETHOD InternalAndReservedMethod7IPlatformX86(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod7IPlatformX86(); } \
  NS_IMETHOD InternalAndReservedMethod8IPlatformX86(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod8IPlatformX86(); } 

#define COM_FORWARD_IPlatformX86_GETTER_HPETEnabled_TO(smth) NS_IMETHOD GetHPETEnabled (PRBool * aHPETEnabled) { return smth GetHPETEnabled (aHPETEnabled); }
#define COM_FORWARD_IPlatformX86_GETTER_HPETEnabled_TO_OBJ(obj) COM_FORWARD_IPlatformX86_GETTER_HPETEnabled_TO ((obj)->)
#define COM_FORWARD_IPlatformX86_GETTER_HPETEnabled_TO_BASE(base) COM_FORWARD_IPlatformX86_GETTER_HPETEnabled_TO (base::)
#define COM_FORWARD_IPlatformX86_SETTER_HPETEnabled_TO(smth) NS_IMETHOD SetHPETEnabled (PRBool aHPETEnabled) { return smth SetHPETEnabled (aHPETEnabled); }
#define COM_FORWARD_IPlatformX86_SETTER_HPETEnabled_TO_OBJ(obj) COM_FORWARD_IPlatformX86_SETTER_HPETEnabled_TO ((obj)->)
#define COM_FORWARD_IPlatformX86_SETTER_HPETEnabled_TO_BASE(base) COM_FORWARD_IPlatformX86_SETTER_HPETEnabled_TO (base::)
#define COM_FORWARD_IPlatformX86_GetCPUProperty_TO(smth) NS_IMETHOD GetCPUProperty (PRUint32 aProperty, PRBool * aValue) { return smth GetCPUProperty (aProperty, aValue); }
#define COM_FORWARD_IPlatformX86_GetCPUProperty_TO_OBJ(obj) COM_FORWARD_IPlatformX86_GetCPUProperty_TO ((obj)->)
#define COM_FORWARD_IPlatformX86_GetCPUProperty_TO_BASE(base) COM_FORWARD_IPlatformX86_GetCPUProperty_TO (base::)
#define COM_FORWARD_IPlatformX86_SetCPUProperty_TO(smth) NS_IMETHOD SetCPUProperty (PRUint32 aProperty, PRBool aValue) { return smth SetCPUProperty (aProperty, aValue); }
#define COM_FORWARD_IPlatformX86_SetCPUProperty_TO_OBJ(obj) COM_FORWARD_IPlatformX86_SetCPUProperty_TO ((obj)->)
#define COM_FORWARD_IPlatformX86_SetCPUProperty_TO_BASE(base) COM_FORWARD_IPlatformX86_SetCPUProperty_TO (base::)
#define COM_FORWARD_IPlatformX86_GetCPUIDLeafByOrdinal_TO(smth) NS_IMETHOD GetCPUIDLeafByOrdinal (PRUint32 aOrdinal, PRUint32 * aIdx, PRUint32 * aIdxSub, PRUint32 * aValEax, PRUint32 * aValEbx, PRUint32 * aValEcx, PRUint32 * aValEdx) { return smth GetCPUIDLeafByOrdinal (aOrdinal, aIdx, aIdxSub, aValEax, aValEbx, aValEcx, aValEdx); }
#define COM_FORWARD_IPlatformX86_GetCPUIDLeafByOrdinal_TO_OBJ(obj) COM_FORWARD_IPlatformX86_GetCPUIDLeafByOrdinal_TO ((obj)->)
#define COM_FORWARD_IPlatformX86_GetCPUIDLeafByOrdinal_TO_BASE(base) COM_FORWARD_IPlatformX86_GetCPUIDLeafByOrdinal_TO (base::)
#define COM_FORWARD_IPlatformX86_GetCPUIDLeaf_TO(smth) NS_IMETHOD GetCPUIDLeaf (PRUint32 aIdx, PRUint32 aIdxSub, PRUint32 * aValEax, PRUint32 * aValEbx, PRUint32 * aValEcx, PRUint32 * aValEdx) { return smth GetCPUIDLeaf (aIdx, aIdxSub, aValEax, aValEbx, aValEcx, aValEdx); }
#define COM_FORWARD_IPlatformX86_GetCPUIDLeaf_TO_OBJ(obj) COM_FORWARD_IPlatformX86_GetCPUIDLeaf_TO ((obj)->)
#define COM_FORWARD_IPlatformX86_GetCPUIDLeaf_TO_BASE(base) COM_FORWARD_IPlatformX86_GetCPUIDLeaf_TO (base::)
#define COM_FORWARD_IPlatformX86_SetCPUIDLeaf_TO(smth) NS_IMETHOD SetCPUIDLeaf (PRUint32 aIdx, PRUint32 aIdxSub, PRUint32 aValEax, PRUint32 aValEbx, PRUint32 aValEcx, PRUint32 aValEdx) { return smth SetCPUIDLeaf (aIdx, aIdxSub, aValEax, aValEbx, aValEcx, aValEdx); }
#define COM_FORWARD_IPlatformX86_SetCPUIDLeaf_TO_OBJ(obj) COM_FORWARD_IPlatformX86_SetCPUIDLeaf_TO ((obj)->)
#define COM_FORWARD_IPlatformX86_SetCPUIDLeaf_TO_BASE(base) COM_FORWARD_IPlatformX86_SetCPUIDLeaf_TO (base::)
#define COM_FORWARD_IPlatformX86_RemoveCPUIDLeaf_TO(smth) NS_IMETHOD RemoveCPUIDLeaf (PRUint32 aIdx, PRUint32 aIdxSub) { return smth RemoveCPUIDLeaf (aIdx, aIdxSub); }
#define COM_FORWARD_IPlatformX86_RemoveCPUIDLeaf_TO_OBJ(obj) COM_FORWARD_IPlatformX86_RemoveCPUIDLeaf_TO ((obj)->)
#define COM_FORWARD_IPlatformX86_RemoveCPUIDLeaf_TO_BASE(base) COM_FORWARD_IPlatformX86_RemoveCPUIDLeaf_TO (base::)
#define COM_FORWARD_IPlatformX86_RemoveAllCPUIDLeaves_TO(smth) NS_IMETHOD RemoveAllCPUIDLeaves() { return smth RemoveAllCPUIDLeaves(); }
#define COM_FORWARD_IPlatformX86_RemoveAllCPUIDLeaves_TO_OBJ(obj) COM_FORWARD_IPlatformX86_RemoveAllCPUIDLeaves_TO ((obj)->)
#define COM_FORWARD_IPlatformX86_RemoveAllCPUIDLeaves_TO_BASE(base) COM_FORWARD_IPlatformX86_RemoveAllCPUIDLeaves_TO (base::)
#define COM_FORWARD_IPlatformX86_GetHWVirtExProperty_TO(smth) NS_IMETHOD GetHWVirtExProperty (PRUint32 aProperty, PRBool * aValue) { return smth GetHWVirtExProperty (aProperty, aValue); }
#define COM_FORWARD_IPlatformX86_GetHWVirtExProperty_TO_OBJ(obj) COM_FORWARD_IPlatformX86_GetHWVirtExProperty_TO ((obj)->)
#define COM_FORWARD_IPlatformX86_GetHWVirtExProperty_TO_BASE(base) COM_FORWARD_IPlatformX86_GetHWVirtExProperty_TO (base::)
#define COM_FORWARD_IPlatformX86_SetHWVirtExProperty_TO(smth) NS_IMETHOD SetHWVirtExProperty (PRUint32 aProperty, PRBool aValue) { return smth SetHWVirtExProperty (aProperty, aValue); }
#define COM_FORWARD_IPlatformX86_SetHWVirtExProperty_TO_OBJ(obj) COM_FORWARD_IPlatformX86_SetHWVirtExProperty_TO ((obj)->)
#define COM_FORWARD_IPlatformX86_SetHWVirtExProperty_TO_BASE(base) COM_FORWARD_IPlatformX86_SetHWVirtExProperty_TO (base::)
#define COM_FORWARD_IPlatformX86_TO(smth) NS_FORWARD_IPLATFORMX86 (smth)
#define COM_FORWARD_IPlatformX86_TO_OBJ(obj) COM_FORWARD_IPlatformX86_TO ((obj)->)
#define COM_FORWARD_IPlatformX86_TO_BASE(base) COM_FORWARD_IPlatformX86_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IPlatformX86;

/* starting interface:    IPlatformARM */
#define IPLATFORMARM_IID_STR "002c75fe-3316-4920-aece-7d21ce6f624b"

#define IPLATFORMARM_IID \
  {0x002c75fe, 0x3316, 0x4920, \
    { 0xae, 0xce, 0x7d, 0x21, 0xce, 0x6f, 0x62, 0x4b }}

class NS_NO_VTABLE IPlatformARM : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IPLATFORMARM_IID)

  /* readonly attribute unsigned long InternalAndReservedAttribute1IPlatformARM; */
  NS_IMETHOD GetInternalAndReservedAttribute1IPlatformARM(PRUint32 *aInternalAndReservedAttribute1IPlatformARM) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IPlatformARM; */
  NS_IMETHOD GetInternalAndReservedAttribute2IPlatformARM(PRUint32 *aInternalAndReservedAttribute2IPlatformARM) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IPlatformARM; */
  NS_IMETHOD GetInternalAndReservedAttribute3IPlatformARM(PRUint32 *aInternalAndReservedAttribute3IPlatformARM) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IPlatformARM; */
  NS_IMETHOD GetInternalAndReservedAttribute4IPlatformARM(PRUint32 *aInternalAndReservedAttribute4IPlatformARM) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IPlatformARM; */
  NS_IMETHOD GetInternalAndReservedAttribute5IPlatformARM(PRUint32 *aInternalAndReservedAttribute5IPlatformARM) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IPlatformARM; */
  NS_IMETHOD GetInternalAndReservedAttribute6IPlatformARM(PRUint32 *aInternalAndReservedAttribute6IPlatformARM) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IPlatformARM; */
  NS_IMETHOD GetInternalAndReservedAttribute7IPlatformARM(PRUint32 *aInternalAndReservedAttribute7IPlatformARM) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IPlatformARM; */
  NS_IMETHOD GetInternalAndReservedAttribute8IPlatformARM(PRUint32 *aInternalAndReservedAttribute8IPlatformARM) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute9IPlatformARM; */
  NS_IMETHOD GetInternalAndReservedAttribute9IPlatformARM(PRUint32 *aInternalAndReservedAttribute9IPlatformARM) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute10IPlatformARM; */
  NS_IMETHOD GetInternalAndReservedAttribute10IPlatformARM(PRUint32 *aInternalAndReservedAttribute10IPlatformARM) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute11IPlatformARM; */
  NS_IMETHOD GetInternalAndReservedAttribute11IPlatformARM(PRUint32 *aInternalAndReservedAttribute11IPlatformARM) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute12IPlatformARM; */
  NS_IMETHOD GetInternalAndReservedAttribute12IPlatformARM(PRUint32 *aInternalAndReservedAttribute12IPlatformARM) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute13IPlatformARM; */
  NS_IMETHOD GetInternalAndReservedAttribute13IPlatformARM(PRUint32 *aInternalAndReservedAttribute13IPlatformARM) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute14IPlatformARM; */
  NS_IMETHOD GetInternalAndReservedAttribute14IPlatformARM(PRUint32 *aInternalAndReservedAttribute14IPlatformARM) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute15IPlatformARM; */
  NS_IMETHOD GetInternalAndReservedAttribute15IPlatformARM(PRUint32 *aInternalAndReservedAttribute15IPlatformARM) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute16IPlatformARM; */
  NS_IMETHOD GetInternalAndReservedAttribute16IPlatformARM(PRUint32 *aInternalAndReservedAttribute16IPlatformARM) = 0;

  /* void getCPUProperty (in CPUPropertyTypeARM_T property, [retval] out boolean value); */
  NS_IMETHOD GetCPUProperty(CPUPropertyTypeARM_T property, PRBool *value) = 0;

  /* void setCPUProperty (in CPUPropertyTypeARM_T property, in boolean value); */
  NS_IMETHOD SetCPUProperty(CPUPropertyTypeARM_T property, PRBool value) = 0;

  /* void InternalAndReservedMethod1IPlatformARM (); */
  NS_IMETHOD InternalAndReservedMethod1IPlatformARM(void) = 0;

  /* void InternalAndReservedMethod2IPlatformARM (); */
  NS_IMETHOD InternalAndReservedMethod2IPlatformARM(void) = 0;

  /* void InternalAndReservedMethod3IPlatformARM (); */
  NS_IMETHOD InternalAndReservedMethod3IPlatformARM(void) = 0;

  /* void InternalAndReservedMethod4IPlatformARM (); */
  NS_IMETHOD InternalAndReservedMethod4IPlatformARM(void) = 0;

  /* void InternalAndReservedMethod5IPlatformARM (); */
  NS_IMETHOD InternalAndReservedMethod5IPlatformARM(void) = 0;

  /* void InternalAndReservedMethod6IPlatformARM (); */
  NS_IMETHOD InternalAndReservedMethod6IPlatformARM(void) = 0;

  /* void InternalAndReservedMethod7IPlatformARM (); */
  NS_IMETHOD InternalAndReservedMethod7IPlatformARM(void) = 0;

  /* void InternalAndReservedMethod8IPlatformARM (); */
  NS_IMETHOD InternalAndReservedMethod8IPlatformARM(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IPLATFORMARM \
  NS_IMETHOD GetInternalAndReservedAttribute1IPlatformARM(PRUint32 *aInternalAndReservedAttribute1IPlatformARM) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IPlatformARM(PRUint32 *aInternalAndReservedAttribute2IPlatformARM) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IPlatformARM(PRUint32 *aInternalAndReservedAttribute3IPlatformARM) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IPlatformARM(PRUint32 *aInternalAndReservedAttribute4IPlatformARM) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IPlatformARM(PRUint32 *aInternalAndReservedAttribute5IPlatformARM) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IPlatformARM(PRUint32 *aInternalAndReservedAttribute6IPlatformARM) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IPlatformARM(PRUint32 *aInternalAndReservedAttribute7IPlatformARM) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IPlatformARM(PRUint32 *aInternalAndReservedAttribute8IPlatformARM) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute9IPlatformARM(PRUint32 *aInternalAndReservedAttribute9IPlatformARM) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute10IPlatformARM(PRUint32 *aInternalAndReservedAttribute10IPlatformARM) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute11IPlatformARM(PRUint32 *aInternalAndReservedAttribute11IPlatformARM) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute12IPlatformARM(PRUint32 *aInternalAndReservedAttribute12IPlatformARM) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute13IPlatformARM(PRUint32 *aInternalAndReservedAttribute13IPlatformARM) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute14IPlatformARM(PRUint32 *aInternalAndReservedAttribute14IPlatformARM) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute15IPlatformARM(PRUint32 *aInternalAndReservedAttribute15IPlatformARM) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute16IPlatformARM(PRUint32 *aInternalAndReservedAttribute16IPlatformARM) NS_OVERRIDE; \
  NS_IMETHOD GetCPUProperty(CPUPropertyTypeARM_T property, PRBool *value) NS_OVERRIDE; \
  NS_IMETHOD SetCPUProperty(CPUPropertyTypeARM_T property, PRBool value) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IPlatformARM(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IPlatformARM(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IPlatformARM(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IPlatformARM(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod5IPlatformARM(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod6IPlatformARM(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod7IPlatformARM(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod8IPlatformARM(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IPLATFORMARM(_to) \
  NS_IMETHOD GetInternalAndReservedAttribute1IPlatformARM(PRUint32 *aInternalAndReservedAttribute1IPlatformARM) { return _to GetInternalAndReservedAttribute1IPlatformARM(aInternalAndReservedAttribute1IPlatformARM); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IPlatformARM(PRUint32 *aInternalAndReservedAttribute2IPlatformARM) { return _to GetInternalAndReservedAttribute2IPlatformARM(aInternalAndReservedAttribute2IPlatformARM); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IPlatformARM(PRUint32 *aInternalAndReservedAttribute3IPlatformARM) { return _to GetInternalAndReservedAttribute3IPlatformARM(aInternalAndReservedAttribute3IPlatformARM); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IPlatformARM(PRUint32 *aInternalAndReservedAttribute4IPlatformARM) { return _to GetInternalAndReservedAttribute4IPlatformARM(aInternalAndReservedAttribute4IPlatformARM); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IPlatformARM(PRUint32 *aInternalAndReservedAttribute5IPlatformARM) { return _to GetInternalAndReservedAttribute5IPlatformARM(aInternalAndReservedAttribute5IPlatformARM); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IPlatformARM(PRUint32 *aInternalAndReservedAttribute6IPlatformARM) { return _to GetInternalAndReservedAttribute6IPlatformARM(aInternalAndReservedAttribute6IPlatformARM); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IPlatformARM(PRUint32 *aInternalAndReservedAttribute7IPlatformARM) { return _to GetInternalAndReservedAttribute7IPlatformARM(aInternalAndReservedAttribute7IPlatformARM); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IPlatformARM(PRUint32 *aInternalAndReservedAttribute8IPlatformARM) { return _to GetInternalAndReservedAttribute8IPlatformARM(aInternalAndReservedAttribute8IPlatformARM); } \
  NS_IMETHOD GetInternalAndReservedAttribute9IPlatformARM(PRUint32 *aInternalAndReservedAttribute9IPlatformARM) { return _to GetInternalAndReservedAttribute9IPlatformARM(aInternalAndReservedAttribute9IPlatformARM); } \
  NS_IMETHOD GetInternalAndReservedAttribute10IPlatformARM(PRUint32 *aInternalAndReservedAttribute10IPlatformARM) { return _to GetInternalAndReservedAttribute10IPlatformARM(aInternalAndReservedAttribute10IPlatformARM); } \
  NS_IMETHOD GetInternalAndReservedAttribute11IPlatformARM(PRUint32 *aInternalAndReservedAttribute11IPlatformARM) { return _to GetInternalAndReservedAttribute11IPlatformARM(aInternalAndReservedAttribute11IPlatformARM); } \
  NS_IMETHOD GetInternalAndReservedAttribute12IPlatformARM(PRUint32 *aInternalAndReservedAttribute12IPlatformARM) { return _to GetInternalAndReservedAttribute12IPlatformARM(aInternalAndReservedAttribute12IPlatformARM); } \
  NS_IMETHOD GetInternalAndReservedAttribute13IPlatformARM(PRUint32 *aInternalAndReservedAttribute13IPlatformARM) { return _to GetInternalAndReservedAttribute13IPlatformARM(aInternalAndReservedAttribute13IPlatformARM); } \
  NS_IMETHOD GetInternalAndReservedAttribute14IPlatformARM(PRUint32 *aInternalAndReservedAttribute14IPlatformARM) { return _to GetInternalAndReservedAttribute14IPlatformARM(aInternalAndReservedAttribute14IPlatformARM); } \
  NS_IMETHOD GetInternalAndReservedAttribute15IPlatformARM(PRUint32 *aInternalAndReservedAttribute15IPlatformARM) { return _to GetInternalAndReservedAttribute15IPlatformARM(aInternalAndReservedAttribute15IPlatformARM); } \
  NS_IMETHOD GetInternalAndReservedAttribute16IPlatformARM(PRUint32 *aInternalAndReservedAttribute16IPlatformARM) { return _to GetInternalAndReservedAttribute16IPlatformARM(aInternalAndReservedAttribute16IPlatformARM); } \
  NS_IMETHOD GetCPUProperty(CPUPropertyTypeARM_T property, PRBool *value) { return _to GetCPUProperty(property, value); } \
  NS_IMETHOD SetCPUProperty(CPUPropertyTypeARM_T property, PRBool value) { return _to SetCPUProperty(property, value); } \
  NS_IMETHOD InternalAndReservedMethod1IPlatformARM(void) { return _to InternalAndReservedMethod1IPlatformARM(); } \
  NS_IMETHOD InternalAndReservedMethod2IPlatformARM(void) { return _to InternalAndReservedMethod2IPlatformARM(); } \
  NS_IMETHOD InternalAndReservedMethod3IPlatformARM(void) { return _to InternalAndReservedMethod3IPlatformARM(); } \
  NS_IMETHOD InternalAndReservedMethod4IPlatformARM(void) { return _to InternalAndReservedMethod4IPlatformARM(); } \
  NS_IMETHOD InternalAndReservedMethod5IPlatformARM(void) { return _to InternalAndReservedMethod5IPlatformARM(); } \
  NS_IMETHOD InternalAndReservedMethod6IPlatformARM(void) { return _to InternalAndReservedMethod6IPlatformARM(); } \
  NS_IMETHOD InternalAndReservedMethod7IPlatformARM(void) { return _to InternalAndReservedMethod7IPlatformARM(); } \
  NS_IMETHOD InternalAndReservedMethod8IPlatformARM(void) { return _to InternalAndReservedMethod8IPlatformARM(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IPLATFORMARM(_to) \
  NS_IMETHOD GetInternalAndReservedAttribute1IPlatformARM(PRUint32 *aInternalAndReservedAttribute1IPlatformARM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IPlatformARM(aInternalAndReservedAttribute1IPlatformARM); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IPlatformARM(PRUint32 *aInternalAndReservedAttribute2IPlatformARM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IPlatformARM(aInternalAndReservedAttribute2IPlatformARM); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IPlatformARM(PRUint32 *aInternalAndReservedAttribute3IPlatformARM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IPlatformARM(aInternalAndReservedAttribute3IPlatformARM); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IPlatformARM(PRUint32 *aInternalAndReservedAttribute4IPlatformARM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IPlatformARM(aInternalAndReservedAttribute4IPlatformARM); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IPlatformARM(PRUint32 *aInternalAndReservedAttribute5IPlatformARM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IPlatformARM(aInternalAndReservedAttribute5IPlatformARM); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IPlatformARM(PRUint32 *aInternalAndReservedAttribute6IPlatformARM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IPlatformARM(aInternalAndReservedAttribute6IPlatformARM); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IPlatformARM(PRUint32 *aInternalAndReservedAttribute7IPlatformARM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IPlatformARM(aInternalAndReservedAttribute7IPlatformARM); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IPlatformARM(PRUint32 *aInternalAndReservedAttribute8IPlatformARM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IPlatformARM(aInternalAndReservedAttribute8IPlatformARM); } \
  NS_IMETHOD GetInternalAndReservedAttribute9IPlatformARM(PRUint32 *aInternalAndReservedAttribute9IPlatformARM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute9IPlatformARM(aInternalAndReservedAttribute9IPlatformARM); } \
  NS_IMETHOD GetInternalAndReservedAttribute10IPlatformARM(PRUint32 *aInternalAndReservedAttribute10IPlatformARM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute10IPlatformARM(aInternalAndReservedAttribute10IPlatformARM); } \
  NS_IMETHOD GetInternalAndReservedAttribute11IPlatformARM(PRUint32 *aInternalAndReservedAttribute11IPlatformARM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute11IPlatformARM(aInternalAndReservedAttribute11IPlatformARM); } \
  NS_IMETHOD GetInternalAndReservedAttribute12IPlatformARM(PRUint32 *aInternalAndReservedAttribute12IPlatformARM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute12IPlatformARM(aInternalAndReservedAttribute12IPlatformARM); } \
  NS_IMETHOD GetInternalAndReservedAttribute13IPlatformARM(PRUint32 *aInternalAndReservedAttribute13IPlatformARM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute13IPlatformARM(aInternalAndReservedAttribute13IPlatformARM); } \
  NS_IMETHOD GetInternalAndReservedAttribute14IPlatformARM(PRUint32 *aInternalAndReservedAttribute14IPlatformARM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute14IPlatformARM(aInternalAndReservedAttribute14IPlatformARM); } \
  NS_IMETHOD GetInternalAndReservedAttribute15IPlatformARM(PRUint32 *aInternalAndReservedAttribute15IPlatformARM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute15IPlatformARM(aInternalAndReservedAttribute15IPlatformARM); } \
  NS_IMETHOD GetInternalAndReservedAttribute16IPlatformARM(PRUint32 *aInternalAndReservedAttribute16IPlatformARM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute16IPlatformARM(aInternalAndReservedAttribute16IPlatformARM); } \
  NS_IMETHOD GetCPUProperty(CPUPropertyTypeARM_T property, PRBool *value) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCPUProperty(property, value); } \
  NS_IMETHOD SetCPUProperty(CPUPropertyTypeARM_T property, PRBool value) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCPUProperty(property, value); } \
  NS_IMETHOD InternalAndReservedMethod1IPlatformARM(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IPlatformARM(); } \
  NS_IMETHOD InternalAndReservedMethod2IPlatformARM(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IPlatformARM(); } \
  NS_IMETHOD InternalAndReservedMethod3IPlatformARM(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IPlatformARM(); } \
  NS_IMETHOD InternalAndReservedMethod4IPlatformARM(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IPlatformARM(); } \
  NS_IMETHOD InternalAndReservedMethod5IPlatformARM(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod5IPlatformARM(); } \
  NS_IMETHOD InternalAndReservedMethod6IPlatformARM(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod6IPlatformARM(); } \
  NS_IMETHOD InternalAndReservedMethod7IPlatformARM(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod7IPlatformARM(); } \
  NS_IMETHOD InternalAndReservedMethod8IPlatformARM(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod8IPlatformARM(); } 

#define COM_FORWARD_IPlatformARM_GetCPUProperty_TO(smth) NS_IMETHOD GetCPUProperty (PRUint32 aProperty, PRBool * aValue) { return smth GetCPUProperty (aProperty, aValue); }
#define COM_FORWARD_IPlatformARM_GetCPUProperty_TO_OBJ(obj) COM_FORWARD_IPlatformARM_GetCPUProperty_TO ((obj)->)
#define COM_FORWARD_IPlatformARM_GetCPUProperty_TO_BASE(base) COM_FORWARD_IPlatformARM_GetCPUProperty_TO (base::)
#define COM_FORWARD_IPlatformARM_SetCPUProperty_TO(smth) NS_IMETHOD SetCPUProperty (PRUint32 aProperty, PRBool aValue) { return smth SetCPUProperty (aProperty, aValue); }
#define COM_FORWARD_IPlatformARM_SetCPUProperty_TO_OBJ(obj) COM_FORWARD_IPlatformARM_SetCPUProperty_TO ((obj)->)
#define COM_FORWARD_IPlatformARM_SetCPUProperty_TO_BASE(base) COM_FORWARD_IPlatformARM_SetCPUProperty_TO (base::)
#define COM_FORWARD_IPlatformARM_TO(smth) NS_FORWARD_IPLATFORMARM (smth)
#define COM_FORWARD_IPlatformARM_TO_OBJ(obj) COM_FORWARD_IPlatformARM_TO ((obj)->)
#define COM_FORWARD_IPlatformARM_TO_BASE(base) COM_FORWARD_IPlatformARM_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IPlatformARM;

/* starting interface:    IMachine */
#define IMACHINE_IID_STR "e36a5081-a82a-40bd-9e4e-42a44d6ce50f"

#define IMACHINE_IID \
  {0xe36a5081, 0xa82a, 0x40bd, \
    { 0x9e, 0x4e, 0x42, 0xa4, 0x4d, 0x6c, 0xe5, 0x0f }}

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;

  /* readonly attribute IGraphicsAdapter graphicsAdapter; */
  NS_IMETHOD GetGraphicsAdapter(IGraphicsAdapter * *aGraphicsAdapter) = 0;

  /* readonly attribute IPlatform platform; */
  NS_IMETHOD GetPlatform(IPlatform * *aPlatform) = 0;

  /* readonly attribute IFirmwareSettings firmwareSettings; */
  NS_IMETHOD GetFirmwareSettings(IFirmwareSettings * *aFirmwareSettings) = 0;

  /* readonly attribute ITrustedPlatformModule trustedPlatformModule; */
  NS_IMETHOD GetTrustedPlatformModule(ITrustedPlatformModule * *aTrustedPlatformModule) = 0;

  /* readonly attribute INvramStore nonVolatileStore; */
  NS_IMETHOD GetNonVolatileStore(INvramStore * *aNonVolatileStore) = 0;

  /* readonly attribute IRecordingSettings recordingSettings; */
  NS_IMETHOD GetRecordingSettings(IRecordingSettings * *aRecordingSettings) = 0;

  /* attribute PointingHIDType_T pointingHIDType; */
  NS_IMETHOD GetPointingHIDType(PointingHIDType_T *aPointingHIDType) = 0;
  NS_IMETHOD SetPointingHIDType(PointingHIDType_T aPointingHIDType) = 0;

  /* attribute KeyboardHIDType_T keyboardHIDType; */
  NS_IMETHOD GetKeyboardHIDType(KeyboardHIDType_T *aKeyboardHIDType) = 0;
  NS_IMETHOD SetKeyboardHIDType(KeyboardHIDType_T aKeyboardHIDType) = 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 IAudioSettings audioSettings; */
  NS_IMETHOD GetAudioSettings(IAudioSettings * *aAudioSettings) = 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 wstring settingsAuxFilePath; */
  NS_IMETHOD GetSettingsAuxFilePath(PRUnichar **aSettingsAuxFilePath) = 0;

  /* readonly attribute boolean settingsModified; */
  NS_IMETHOD GetSettingsModified(PRBool *aSettingsModified) = 0;

  /* readonly attribute SessionState_T sessionState; */
  NS_IMETHOD GetSessionState(SessionState_T *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 MachineState_T state; */
  NS_IMETHOD GetState(MachineState_T *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 ClipboardMode_T clipboardMode; */
  NS_IMETHOD GetClipboardMode(ClipboardMode_T *aClipboardMode) = 0;
  NS_IMETHOD SetClipboardMode(ClipboardMode_T aClipboardMode) = 0;

  /* attribute boolean clipboardFileTransfersEnabled; */
  NS_IMETHOD GetClipboardFileTransfersEnabled(PRBool *aClipboardFileTransfersEnabled) = 0;
  NS_IMETHOD SetClipboardFileTransfersEnabled(PRBool aClipboardFileTransfersEnabled) = 0;

  /* attribute DnDMode_T dnDMode; */
  NS_IMETHOD GetDnDMode(DnDMode_T *aDnDMode) = 0;
  NS_IMETHOD SetDnDMode(DnDMode_T 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 ParavirtProvider_T paravirtProvider; */
  NS_IMETHOD GetParavirtProvider(ParavirtProvider_T *aParavirtProvider) = 0;
  NS_IMETHOD SetParavirtProvider(ParavirtProvider_T aParavirtProvider) = 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 AutostopType_T autostopType; */
  NS_IMETHOD GetAutostopType(AutostopType_T *aAutostopType) = 0;
  NS_IMETHOD SetAutostopType(AutostopType_T 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 VMProcPriority_T VMProcessPriority; */
  NS_IMETHOD GetVMProcessPriority(VMProcPriority_T *aVMProcessPriority) = 0;
  NS_IMETHOD SetVMProcessPriority(VMProcPriority_T aVMProcessPriority) = 0;

  /* attribute VMExecutionEngine_T VMExecutionEngine; */
  NS_IMETHOD GetVMExecutionEngine(VMExecutionEngine_T *aVMExecutionEngine) = 0;
  NS_IMETHOD SetVMExecutionEngine(VMExecutionEngine_T aVMExecutionEngine) = 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 wstring stateKeyId; */
  NS_IMETHOD GetStateKeyId(PRUnichar **aStateKeyId) = 0;

  /* readonly attribute wstring stateKeyStore; */
  NS_IMETHOD GetStateKeyStore(PRUnichar **aStateKeyStore) = 0;

  /* readonly attribute wstring logKeyId; */
  NS_IMETHOD GetLogKeyId(PRUnichar **aLogKeyId) = 0;

  /* readonly attribute wstring logKeyStore; */
  NS_IMETHOD GetLogKeyStore(PRUnichar **aLogKeyStore) = 0;

  /* readonly attribute IGuestDebugControl guestDebugControl; */
  NS_IMETHOD GetGuestDebugControl(IGuestDebugControl * *aGuestDebugControl) = 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;

  /* readonly attribute unsigned long InternalAndReservedAttribute11IMachine; */
  NS_IMETHOD GetInternalAndReservedAttribute11IMachine(PRUint32 *aInternalAndReservedAttribute11IMachine) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute12IMachine; */
  NS_IMETHOD GetInternalAndReservedAttribute12IMachine(PRUint32 *aInternalAndReservedAttribute12IMachine) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute13IMachine; */
  NS_IMETHOD GetInternalAndReservedAttribute13IMachine(PRUint32 *aInternalAndReservedAttribute13IMachine) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute14IMachine; */
  NS_IMETHOD GetInternalAndReservedAttribute14IMachine(PRUint32 *aInternalAndReservedAttribute14IMachine) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute15IMachine; */
  NS_IMETHOD GetInternalAndReservedAttribute15IMachine(PRUint32 *aInternalAndReservedAttribute15IMachine) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute16IMachine; */
  NS_IMETHOD GetInternalAndReservedAttribute16IMachine(PRUint32 *aInternalAndReservedAttribute16IMachine) = 0;

  /* void lockMachine (in ISession session, in LockType_T lockType); */
  NS_IMETHOD LockMachine(ISession * session, LockType_T lockType) = 0;

  /* void launchVMProcess (in ISession session, in wstring name, in unsigned long environmentChangesSize, [array, size_is (environmentChangesSize)] in wstring environmentChanges, [retval] out IProgress progress); */
  NS_IMETHOD LaunchVMProcess(ISession * session, const PRUnichar *name, PRUint32 environmentChangesSize, const PRUnichar **environmentChanges, IProgress * *progress) = 0;

  /* void setBootOrder (in unsigned long position, in DeviceType_T device); */
  NS_IMETHOD SetBootOrder(PRUint32 position, DeviceType_T device) = 0;

  /* void getBootOrder (in unsigned long position, [retval] out DeviceType_T device); */
  NS_IMETHOD GetBootOrder(PRUint32 position, DeviceType_T *device) = 0;

  /* void attachDevice (in wstring name, in long controllerPort, in long device, in DeviceType_T type, in IMedium medium); */
  NS_IMETHOD AttachDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, DeviceType_T type, IMedium * medium) = 0;

  /* void attachDeviceWithoutMedium (in wstring name, in long controllerPort, in long device, in DeviceType_T type); */
  NS_IMETHOD AttachDeviceWithoutMedium(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, DeviceType_T 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 StorageBus_T connectionType, [retval] out IStorageController controller); */
  NS_IMETHOD AddStorageController(const PRUnichar *name, StorageBus_T 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 StorageBus_T connectionType, in unsigned long instance, [retval] out IStorageController storageController); */
  NS_IMETHOD GetStorageControllerByInstance(StorageBus_T 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 USBControllerType_T type, [retval] out IUSBController controller); */
  NS_IMETHOD AddUSBController(const PRUnichar *name, USBControllerType_T 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 USBControllerType_T type, [retval] out unsigned long controllers); */
  NS_IMETHOD GetUSBControllerCountByType(USBControllerType_T 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 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 CleanupMode_T cleanupMode, out unsigned long mediaSize, [array, size_is (mediaSize), retval] out IMedium media); */
  NS_IMETHOD Unregister(CleanupMode_T 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, in wstring autoMountPoint); */
  NS_IMETHOD CreateSharedFolder(const PRUnichar *name, const PRUnichar *hostPath, PRBool writable, PRBool automount, const PRUnichar *autoMountPoint) = 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 BitmapFormat_T 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, BitmapFormat_T 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 BitmapFormat_T bitmapFormats); */
  NS_IMETHOD QuerySavedScreenshotInfo(PRUint32 screenId, PRUint32 *width, PRUint32 *height, PRUint32 *bitmapFormatsSize, BitmapFormat_T **bitmapFormats) = 0;

  /* void readSavedScreenshotToArray (in unsigned long screenId, in BitmapFormat_T bitmapFormat, out unsigned long width, out unsigned long height, out unsigned long dataSize, [array, size_is (dataSize), retval] out octet data); */
  NS_IMETHOD ReadSavedScreenshotToArray(PRUint32 screenId, BitmapFormat_T 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 ParavirtProvider_T paravirtProvider); */
  NS_IMETHOD GetEffectiveParavirtProvider(ParavirtProvider_T *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 CloneMode_T mode, in unsigned long optionsSize, [array, size_is (optionsSize)] in CloneOptions_T options, [retval] out IProgress progress); */
  NS_IMETHOD CloneTo(IMachine * target, CloneMode_T mode, PRUint32 optionsSize, CloneOptions_T *options, IProgress * *progress) = 0;

  /* void moveTo (in wstring folder, in wstring type, [retval] out IProgress progress); */
  NS_IMETHOD MoveTo(const PRUnichar *folder, const PRUnichar *type, 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 changeEncryption (in wstring currentPassword, in wstring cipher, in wstring newPassword, in wstring newPasswordId, in boolean force, [retval] out IProgress progress); */
  NS_IMETHOD ChangeEncryption(const PRUnichar *currentPassword, const PRUnichar *cipher, const PRUnichar *newPassword, const PRUnichar *newPasswordId, PRBool force, IProgress * *progress) = 0;

  /* void getEncryptionSettings (out wstring cipher, out wstring passwordId); */
  NS_IMETHOD GetEncryptionSettings(PRUnichar **cipher, PRUnichar **passwordId) = 0;

  /* void checkEncryptionPassword (in wstring password); */
  NS_IMETHOD CheckEncryptionPassword(const PRUnichar *password) = 0;

  /* void addEncryptionPassword (in wstring id, in wstring password); */
  NS_IMETHOD AddEncryptionPassword(const PRUnichar *id, const PRUnichar *password) = 0;

  /* void addEncryptionPasswords (in unsigned long idsSize, [array, size_is (idsSize)] in wstring ids, in unsigned long passwordsSize, [array, size_is (passwordsSize)] in wstring passwords); */
  NS_IMETHOD AddEncryptionPasswords(PRUint32 idsSize, const PRUnichar **ids, PRUint32 passwordsSize, const PRUnichar **passwords) = 0;

  /* void removeEncryptionPassword (in wstring id); */
  NS_IMETHOD RemoveEncryptionPassword(const PRUnichar *id) = 0;

  /* void clearAllEncryptionPasswords (); */
  NS_IMETHOD ClearAllEncryptionPasswords(void) = 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_OVERRIDE; \
  NS_IMETHOD GetIcon(PRUint32 *iconSize, PRUint8 **icon) NS_OVERRIDE; \
  NS_IMETHOD SetIcon(PRUint32 iconSize, PRUint8 *icon) NS_OVERRIDE; \
  NS_IMETHOD GetAccessible(PRBool *aAccessible) NS_OVERRIDE; \
  NS_IMETHOD GetAccessError(IVirtualBoxErrorInfo * *aAccessError) NS_OVERRIDE; \
  NS_IMETHOD GetName(PRUnichar **aName) NS_OVERRIDE; \
  NS_IMETHOD SetName(const PRUnichar *aName) NS_OVERRIDE; \
  NS_IMETHOD GetDescription(PRUnichar **aDescription) NS_OVERRIDE; \
  NS_IMETHOD SetDescription(const PRUnichar *aDescription) NS_OVERRIDE; \
  NS_IMETHOD GetId(PRUnichar **aId) NS_OVERRIDE; \
  NS_IMETHOD GetGroups(PRUint32 *groupsSize, PRUnichar ***groups) NS_OVERRIDE; \
  NS_IMETHOD SetGroups(PRUint32 groupsSize, const PRUnichar **groups) NS_OVERRIDE; \
  NS_IMETHOD GetOSTypeId(PRUnichar **aOSTypeId) NS_OVERRIDE; \
  NS_IMETHOD SetOSTypeId(const PRUnichar *aOSTypeId) NS_OVERRIDE; \
  NS_IMETHOD GetHardwareVersion(PRUnichar **aHardwareVersion) NS_OVERRIDE; \
  NS_IMETHOD SetHardwareVersion(const PRUnichar *aHardwareVersion) NS_OVERRIDE; \
  NS_IMETHOD GetHardwareUUID(PRUnichar **aHardwareUUID) NS_OVERRIDE; \
  NS_IMETHOD SetHardwareUUID(const PRUnichar *aHardwareUUID) NS_OVERRIDE; \
  NS_IMETHOD GetCPUCount(PRUint32 *aCPUCount) NS_OVERRIDE; \
  NS_IMETHOD SetCPUCount(PRUint32 aCPUCount) NS_OVERRIDE; \
  NS_IMETHOD GetCPUHotPlugEnabled(PRBool *aCPUHotPlugEnabled) NS_OVERRIDE; \
  NS_IMETHOD SetCPUHotPlugEnabled(PRBool aCPUHotPlugEnabled) NS_OVERRIDE; \
  NS_IMETHOD GetCPUExecutionCap(PRUint32 *aCPUExecutionCap) NS_OVERRIDE; \
  NS_IMETHOD SetCPUExecutionCap(PRUint32 aCPUExecutionCap) NS_OVERRIDE; \
  NS_IMETHOD GetCPUIDPortabilityLevel(PRUint32 *aCPUIDPortabilityLevel) NS_OVERRIDE; \
  NS_IMETHOD SetCPUIDPortabilityLevel(PRUint32 aCPUIDPortabilityLevel) NS_OVERRIDE; \
  NS_IMETHOD GetMemorySize(PRUint32 *aMemorySize) NS_OVERRIDE; \
  NS_IMETHOD SetMemorySize(PRUint32 aMemorySize) NS_OVERRIDE; \
  NS_IMETHOD GetMemoryBalloonSize(PRUint32 *aMemoryBalloonSize) NS_OVERRIDE; \
  NS_IMETHOD SetMemoryBalloonSize(PRUint32 aMemoryBalloonSize) NS_OVERRIDE; \
  NS_IMETHOD GetPageFusionEnabled(PRBool *aPageFusionEnabled) NS_OVERRIDE; \
  NS_IMETHOD SetPageFusionEnabled(PRBool aPageFusionEnabled) NS_OVERRIDE; \
  NS_IMETHOD GetGraphicsAdapter(IGraphicsAdapter * *aGraphicsAdapter) NS_OVERRIDE; \
  NS_IMETHOD GetPlatform(IPlatform * *aPlatform) NS_OVERRIDE; \
  NS_IMETHOD GetFirmwareSettings(IFirmwareSettings * *aFirmwareSettings) NS_OVERRIDE; \
  NS_IMETHOD GetTrustedPlatformModule(ITrustedPlatformModule * *aTrustedPlatformModule) NS_OVERRIDE; \
  NS_IMETHOD GetNonVolatileStore(INvramStore * *aNonVolatileStore) NS_OVERRIDE; \
  NS_IMETHOD GetRecordingSettings(IRecordingSettings * *aRecordingSettings) NS_OVERRIDE; \
  NS_IMETHOD GetPointingHIDType(PointingHIDType_T *aPointingHIDType) NS_OVERRIDE; \
  NS_IMETHOD SetPointingHIDType(PointingHIDType_T aPointingHIDType) NS_OVERRIDE; \
  NS_IMETHOD GetKeyboardHIDType(KeyboardHIDType_T *aKeyboardHIDType) NS_OVERRIDE; \
  NS_IMETHOD SetKeyboardHIDType(KeyboardHIDType_T aKeyboardHIDType) NS_OVERRIDE; \
  NS_IMETHOD GetSnapshotFolder(PRUnichar **aSnapshotFolder) NS_OVERRIDE; \
  NS_IMETHOD SetSnapshotFolder(const PRUnichar *aSnapshotFolder) NS_OVERRIDE; \
  NS_IMETHOD GetVRDEServer(IVRDEServer * *aVRDEServer) NS_OVERRIDE; \
  NS_IMETHOD GetEmulatedUSBCardReaderEnabled(PRBool *aEmulatedUSBCardReaderEnabled) NS_OVERRIDE; \
  NS_IMETHOD SetEmulatedUSBCardReaderEnabled(PRBool aEmulatedUSBCardReaderEnabled) NS_OVERRIDE; \
  NS_IMETHOD GetMediumAttachments(PRUint32 *mediumAttachmentsSize, IMediumAttachment * **mediumAttachments) NS_OVERRIDE; \
  NS_IMETHOD GetUSBControllers(PRUint32 *USBControllersSize, IUSBController * **USBControllers) NS_OVERRIDE; \
  NS_IMETHOD GetUSBDeviceFilters(IUSBDeviceFilters * *aUSBDeviceFilters) NS_OVERRIDE; \
  NS_IMETHOD GetAudioSettings(IAudioSettings * *aAudioSettings) NS_OVERRIDE; \
  NS_IMETHOD GetStorageControllers(PRUint32 *storageControllersSize, IStorageController * **storageControllers) NS_OVERRIDE; \
  NS_IMETHOD GetSettingsFilePath(PRUnichar **aSettingsFilePath) NS_OVERRIDE; \
  NS_IMETHOD GetSettingsAuxFilePath(PRUnichar **aSettingsAuxFilePath) NS_OVERRIDE; \
  NS_IMETHOD GetSettingsModified(PRBool *aSettingsModified) NS_OVERRIDE; \
  NS_IMETHOD GetSessionState(SessionState_T *aSessionState) NS_OVERRIDE; \
  NS_IMETHOD GetSessionName(PRUnichar **aSessionName) NS_OVERRIDE; \
  NS_IMETHOD GetSessionPID(PRUint32 *aSessionPID) NS_OVERRIDE; \
  NS_IMETHOD GetState(MachineState_T *aState) NS_OVERRIDE; \
  NS_IMETHOD GetLastStateChange(PRInt64 *aLastStateChange) NS_OVERRIDE; \
  NS_IMETHOD GetStateFilePath(PRUnichar **aStateFilePath) NS_OVERRIDE; \
  NS_IMETHOD GetLogFolder(PRUnichar **aLogFolder) NS_OVERRIDE; \
  NS_IMETHOD GetCurrentSnapshot(ISnapshot * *aCurrentSnapshot) NS_OVERRIDE; \
  NS_IMETHOD GetSnapshotCount(PRUint32 *aSnapshotCount) NS_OVERRIDE; \
  NS_IMETHOD GetCurrentStateModified(PRBool *aCurrentStateModified) NS_OVERRIDE; \
  NS_IMETHOD GetSharedFolders(PRUint32 *sharedFoldersSize, ISharedFolder * **sharedFolders) NS_OVERRIDE; \
  NS_IMETHOD GetClipboardMode(ClipboardMode_T *aClipboardMode) NS_OVERRIDE; \
  NS_IMETHOD SetClipboardMode(ClipboardMode_T aClipboardMode) NS_OVERRIDE; \
  NS_IMETHOD GetClipboardFileTransfersEnabled(PRBool *aClipboardFileTransfersEnabled) NS_OVERRIDE; \
  NS_IMETHOD SetClipboardFileTransfersEnabled(PRBool aClipboardFileTransfersEnabled) NS_OVERRIDE; \
  NS_IMETHOD GetDnDMode(DnDMode_T *aDnDMode) NS_OVERRIDE; \
  NS_IMETHOD SetDnDMode(DnDMode_T aDnDMode) NS_OVERRIDE; \
  NS_IMETHOD GetTeleporterEnabled(PRBool *aTeleporterEnabled) NS_OVERRIDE; \
  NS_IMETHOD SetTeleporterEnabled(PRBool aTeleporterEnabled) NS_OVERRIDE; \
  NS_IMETHOD GetTeleporterPort(PRUint32 *aTeleporterPort) NS_OVERRIDE; \
  NS_IMETHOD SetTeleporterPort(PRUint32 aTeleporterPort) NS_OVERRIDE; \
  NS_IMETHOD GetTeleporterAddress(PRUnichar **aTeleporterAddress) NS_OVERRIDE; \
  NS_IMETHOD SetTeleporterAddress(const PRUnichar *aTeleporterAddress) NS_OVERRIDE; \
  NS_IMETHOD GetTeleporterPassword(PRUnichar **aTeleporterPassword) NS_OVERRIDE; \
  NS_IMETHOD SetTeleporterPassword(const PRUnichar *aTeleporterPassword) NS_OVERRIDE; \
  NS_IMETHOD GetParavirtProvider(ParavirtProvider_T *aParavirtProvider) NS_OVERRIDE; \
  NS_IMETHOD SetParavirtProvider(ParavirtProvider_T aParavirtProvider) NS_OVERRIDE; \
  NS_IMETHOD GetIOCacheEnabled(PRBool *aIOCacheEnabled) NS_OVERRIDE; \
  NS_IMETHOD SetIOCacheEnabled(PRBool aIOCacheEnabled) NS_OVERRIDE; \
  NS_IMETHOD GetIOCacheSize(PRUint32 *aIOCacheSize) NS_OVERRIDE; \
  NS_IMETHOD SetIOCacheSize(PRUint32 aIOCacheSize) NS_OVERRIDE; \
  NS_IMETHOD GetPCIDeviceAssignments(PRUint32 *PCIDeviceAssignmentsSize, IPCIDeviceAttachment * **PCIDeviceAssignments) NS_OVERRIDE; \
  NS_IMETHOD GetBandwidthControl(IBandwidthControl * *aBandwidthControl) NS_OVERRIDE; \
  NS_IMETHOD GetTracingEnabled(PRBool *aTracingEnabled) NS_OVERRIDE; \
  NS_IMETHOD SetTracingEnabled(PRBool aTracingEnabled) NS_OVERRIDE; \
  NS_IMETHOD GetTracingConfig(PRUnichar **aTracingConfig) NS_OVERRIDE; \
  NS_IMETHOD SetTracingConfig(const PRUnichar *aTracingConfig) NS_OVERRIDE; \
  NS_IMETHOD GetAllowTracingToAccessVM(PRBool *aAllowTracingToAccessVM) NS_OVERRIDE; \
  NS_IMETHOD SetAllowTracingToAccessVM(PRBool aAllowTracingToAccessVM) NS_OVERRIDE; \
  NS_IMETHOD GetAutostartEnabled(PRBool *aAutostartEnabled) NS_OVERRIDE; \
  NS_IMETHOD SetAutostartEnabled(PRBool aAutostartEnabled) NS_OVERRIDE; \
  NS_IMETHOD GetAutostartDelay(PRUint32 *aAutostartDelay) NS_OVERRIDE; \
  NS_IMETHOD SetAutostartDelay(PRUint32 aAutostartDelay) NS_OVERRIDE; \
  NS_IMETHOD GetAutostopType(AutostopType_T *aAutostopType) NS_OVERRIDE; \
  NS_IMETHOD SetAutostopType(AutostopType_T aAutostopType) NS_OVERRIDE; \
  NS_IMETHOD GetDefaultFrontend(PRUnichar **aDefaultFrontend) NS_OVERRIDE; \
  NS_IMETHOD SetDefaultFrontend(const PRUnichar *aDefaultFrontend) NS_OVERRIDE; \
  NS_IMETHOD GetUSBProxyAvailable(PRBool *aUSBProxyAvailable) NS_OVERRIDE; \
  NS_IMETHOD GetVMProcessPriority(VMProcPriority_T *aVMProcessPriority) NS_OVERRIDE; \
  NS_IMETHOD SetVMProcessPriority(VMProcPriority_T aVMProcessPriority) NS_OVERRIDE; \
  NS_IMETHOD GetVMExecutionEngine(VMExecutionEngine_T *aVMExecutionEngine) NS_OVERRIDE; \
  NS_IMETHOD SetVMExecutionEngine(VMExecutionEngine_T aVMExecutionEngine) NS_OVERRIDE; \
  NS_IMETHOD GetParavirtDebug(PRUnichar **aParavirtDebug) NS_OVERRIDE; \
  NS_IMETHOD SetParavirtDebug(const PRUnichar *aParavirtDebug) NS_OVERRIDE; \
  NS_IMETHOD GetCPUProfile(PRUnichar **aCPUProfile) NS_OVERRIDE; \
  NS_IMETHOD SetCPUProfile(const PRUnichar *aCPUProfile) NS_OVERRIDE; \
  NS_IMETHOD GetStateKeyId(PRUnichar **aStateKeyId) NS_OVERRIDE; \
  NS_IMETHOD GetStateKeyStore(PRUnichar **aStateKeyStore) NS_OVERRIDE; \
  NS_IMETHOD GetLogKeyId(PRUnichar **aLogKeyId) NS_OVERRIDE; \
  NS_IMETHOD GetLogKeyStore(PRUnichar **aLogKeyStore) NS_OVERRIDE; \
  NS_IMETHOD GetGuestDebugControl(IGuestDebugControl * *aGuestDebugControl) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IMachine(PRUint32 *aInternalAndReservedAttribute1IMachine) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IMachine(PRUint32 *aInternalAndReservedAttribute2IMachine) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IMachine(PRUint32 *aInternalAndReservedAttribute3IMachine) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IMachine(PRUint32 *aInternalAndReservedAttribute4IMachine) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IMachine(PRUint32 *aInternalAndReservedAttribute5IMachine) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IMachine(PRUint32 *aInternalAndReservedAttribute6IMachine) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IMachine(PRUint32 *aInternalAndReservedAttribute7IMachine) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IMachine(PRUint32 *aInternalAndReservedAttribute8IMachine) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute9IMachine(PRUint32 *aInternalAndReservedAttribute9IMachine) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute10IMachine(PRUint32 *aInternalAndReservedAttribute10IMachine) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute11IMachine(PRUint32 *aInternalAndReservedAttribute11IMachine) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute12IMachine(PRUint32 *aInternalAndReservedAttribute12IMachine) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute13IMachine(PRUint32 *aInternalAndReservedAttribute13IMachine) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute14IMachine(PRUint32 *aInternalAndReservedAttribute14IMachine) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute15IMachine(PRUint32 *aInternalAndReservedAttribute15IMachine) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute16IMachine(PRUint32 *aInternalAndReservedAttribute16IMachine) NS_OVERRIDE; \
  NS_IMETHOD LockMachine(ISession * session, LockType_T lockType) NS_OVERRIDE; \
  NS_IMETHOD LaunchVMProcess(ISession * session, const PRUnichar *name, PRUint32 environmentChangesSize, const PRUnichar **environmentChanges, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD SetBootOrder(PRUint32 position, DeviceType_T device) NS_OVERRIDE; \
  NS_IMETHOD GetBootOrder(PRUint32 position, DeviceType_T *device) NS_OVERRIDE; \
  NS_IMETHOD AttachDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, DeviceType_T type, IMedium * medium) NS_OVERRIDE; \
  NS_IMETHOD AttachDeviceWithoutMedium(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, DeviceType_T type) NS_OVERRIDE; \
  NS_IMETHOD DetachDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device) NS_OVERRIDE; \
  NS_IMETHOD PassthroughDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRBool passthrough) NS_OVERRIDE; \
  NS_IMETHOD TemporaryEjectDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRBool temporaryEject) NS_OVERRIDE; \
  NS_IMETHOD NonRotationalDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRBool nonRotational) NS_OVERRIDE; \
  NS_IMETHOD SetAutoDiscardForDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRBool discard) NS_OVERRIDE; \
  NS_IMETHOD SetHotPluggableForDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRBool hotPluggable) NS_OVERRIDE; \
  NS_IMETHOD SetBandwidthGroupForDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, IBandwidthGroup * bandwidthGroup) NS_OVERRIDE; \
  NS_IMETHOD SetNoBandwidthGroupForDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device) NS_OVERRIDE; \
  NS_IMETHOD UnmountMedium(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, PRBool force) NS_OVERRIDE; \
  NS_IMETHOD MountMedium(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, IMedium * medium, PRBool force) NS_OVERRIDE; \
  NS_IMETHOD GetMedium(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, IMedium * *medium) NS_OVERRIDE; \
  NS_IMETHOD GetMediumAttachmentsOfController(const PRUnichar *name, PRUint32 *mediumAttachmentsSize, IMediumAttachment * **mediumAttachments) NS_OVERRIDE; \
  NS_IMETHOD GetMediumAttachment(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, IMediumAttachment * *attachment) NS_OVERRIDE; \
  NS_IMETHOD AttachHostPCIDevice(PRInt32 hostAddress, PRInt32 desiredGuestAddress, PRBool tryToUnbind) NS_OVERRIDE; \
  NS_IMETHOD DetachHostPCIDevice(PRInt32 hostAddress) NS_OVERRIDE; \
  NS_IMETHOD GetNetworkAdapter(PRUint32 slot, INetworkAdapter * *adapter) NS_OVERRIDE; \
  NS_IMETHOD AddStorageController(const PRUnichar *name, StorageBus_T connectionType, IStorageController * *controller) NS_OVERRIDE; \
  NS_IMETHOD GetStorageControllerByName(const PRUnichar *name, IStorageController * *storageController) NS_OVERRIDE; \
  NS_IMETHOD GetStorageControllerByInstance(StorageBus_T connectionType, PRUint32 instance, IStorageController * *storageController) NS_OVERRIDE; \
  NS_IMETHOD RemoveStorageController(const PRUnichar *name) NS_OVERRIDE; \
  NS_IMETHOD SetStorageControllerBootable(const PRUnichar *name, PRBool bootable) NS_OVERRIDE; \
  NS_IMETHOD AddUSBController(const PRUnichar *name, USBControllerType_T type, IUSBController * *controller) NS_OVERRIDE; \
  NS_IMETHOD RemoveUSBController(const PRUnichar *name) NS_OVERRIDE; \
  NS_IMETHOD GetUSBControllerByName(const PRUnichar *name, IUSBController * *controller) NS_OVERRIDE; \
  NS_IMETHOD GetUSBControllerCountByType(USBControllerType_T type, PRUint32 *controllers) NS_OVERRIDE; \
  NS_IMETHOD GetSerialPort(PRUint32 slot, ISerialPort * *port) NS_OVERRIDE; \
  NS_IMETHOD GetParallelPort(PRUint32 slot, IParallelPort * *port) NS_OVERRIDE; \
  NS_IMETHOD GetExtraDataKeys(PRUint32 *keysSize, PRUnichar ***keys) NS_OVERRIDE; \
  NS_IMETHOD GetExtraData(const PRUnichar *key, PRUnichar **value) NS_OVERRIDE; \
  NS_IMETHOD SetExtraData(const PRUnichar *key, const PRUnichar *value) NS_OVERRIDE; \
  NS_IMETHOD SetSettingsFilePath(const PRUnichar *settingsFilePath, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD SaveSettings(void) NS_OVERRIDE; \
  NS_IMETHOD DiscardSettings(void) NS_OVERRIDE; \
  NS_IMETHOD Unregister(CleanupMode_T cleanupMode, PRUint32 *mediaSize, IMedium * **media) NS_OVERRIDE; \
  NS_IMETHOD DeleteConfig(PRUint32 mediaSize, IMedium * *media, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD ExportTo(IAppliance * appliance, const PRUnichar *location, IVirtualSystemDescription * *description) NS_OVERRIDE; \
  NS_IMETHOD FindSnapshot(const PRUnichar *nameOrId, ISnapshot * *snapshot) NS_OVERRIDE; \
  NS_IMETHOD CreateSharedFolder(const PRUnichar *name, const PRUnichar *hostPath, PRBool writable, PRBool automount, const PRUnichar *autoMountPoint) NS_OVERRIDE; \
  NS_IMETHOD RemoveSharedFolder(const PRUnichar *name) NS_OVERRIDE; \
  NS_IMETHOD CanShowConsoleWindow(PRBool *canShow) NS_OVERRIDE; \
  NS_IMETHOD ShowConsoleWindow(PRInt64 *winId) NS_OVERRIDE; \
  NS_IMETHOD GetGuestProperty(const PRUnichar *name, PRUnichar **value, PRInt64 *timestamp, PRUnichar **flags) NS_OVERRIDE; \
  NS_IMETHOD GetGuestPropertyValue(const PRUnichar *property, PRUnichar **value) NS_OVERRIDE; \
  NS_IMETHOD GetGuestPropertyTimestamp(const PRUnichar *property, PRInt64 *value) NS_OVERRIDE; \
  NS_IMETHOD SetGuestProperty(const PRUnichar *property, const PRUnichar *value, const PRUnichar *flags) NS_OVERRIDE; \
  NS_IMETHOD SetGuestPropertyValue(const PRUnichar *property, const PRUnichar *value) NS_OVERRIDE; \
  NS_IMETHOD DeleteGuestProperty(const PRUnichar *name) NS_OVERRIDE; \
  NS_IMETHOD EnumerateGuestProperties(const PRUnichar *patterns, PRUint32 *namesSize, PRUnichar ***names, PRUint32 *valuesSize, PRUnichar ***values, PRUint32 *timestampsSize, PRInt64 **timestamps, PRUint32 *flagsSize, PRUnichar ***flags) NS_OVERRIDE; \
  NS_IMETHOD QuerySavedGuestScreenInfo(PRUint32 screenId, PRUint32 *originX, PRUint32 *originY, PRUint32 *width, PRUint32 *height, PRBool *enabled) NS_OVERRIDE; \
  NS_IMETHOD ReadSavedThumbnailToArray(PRUint32 screenId, BitmapFormat_T bitmapFormat, PRUint32 *width, PRUint32 *height, PRUint32 *dataSize, PRUint8 **data) NS_OVERRIDE; \
  NS_IMETHOD QuerySavedScreenshotInfo(PRUint32 screenId, PRUint32 *width, PRUint32 *height, PRUint32 *bitmapFormatsSize, BitmapFormat_T **bitmapFormats) NS_OVERRIDE; \
  NS_IMETHOD ReadSavedScreenshotToArray(PRUint32 screenId, BitmapFormat_T bitmapFormat, PRUint32 *width, PRUint32 *height, PRUint32 *dataSize, PRUint8 **data) NS_OVERRIDE; \
  NS_IMETHOD HotPlugCPU(PRUint32 cpu) NS_OVERRIDE; \
  NS_IMETHOD HotUnplugCPU(PRUint32 cpu) NS_OVERRIDE; \
  NS_IMETHOD GetCPUStatus(PRUint32 cpu, PRBool *attached) NS_OVERRIDE; \
  NS_IMETHOD GetEffectiveParavirtProvider(ParavirtProvider_T *paravirtProvider) NS_OVERRIDE; \
  NS_IMETHOD QueryLogFilename(PRUint32 idx, PRUnichar **filename) NS_OVERRIDE; \
  NS_IMETHOD ReadLog(PRUint32 idx, PRInt64 offset, PRInt64 size, PRUint32 *dataSize, PRUint8 **data) NS_OVERRIDE; \
  NS_IMETHOD CloneTo(IMachine * target, CloneMode_T mode, PRUint32 optionsSize, CloneOptions_T *options, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD MoveTo(const PRUnichar *folder, const PRUnichar *type, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD SaveState(IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD AdoptSavedState(const PRUnichar *savedStateFile) NS_OVERRIDE; \
  NS_IMETHOD DiscardSavedState(PRBool fRemoveFile) NS_OVERRIDE; \
  NS_IMETHOD TakeSnapshot(const PRUnichar *name, const PRUnichar *description, PRBool pause, PRUnichar **id, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD DeleteSnapshot(const PRUnichar *id, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD DeleteSnapshotAndAllChildren(const PRUnichar *id, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD DeleteSnapshotRange(const PRUnichar *startId, const PRUnichar *endId, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD RestoreSnapshot(ISnapshot * snapshot, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD ApplyDefaults(const PRUnichar *flags) NS_OVERRIDE; \
  NS_IMETHOD ChangeEncryption(const PRUnichar *currentPassword, const PRUnichar *cipher, const PRUnichar *newPassword, const PRUnichar *newPasswordId, PRBool force, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD GetEncryptionSettings(PRUnichar **cipher, PRUnichar **passwordId) NS_OVERRIDE; \
  NS_IMETHOD CheckEncryptionPassword(const PRUnichar *password) NS_OVERRIDE; \
  NS_IMETHOD AddEncryptionPassword(const PRUnichar *id, const PRUnichar *password) NS_OVERRIDE; \
  NS_IMETHOD AddEncryptionPasswords(PRUint32 idsSize, const PRUnichar **ids, PRUint32 passwordsSize, const PRUnichar **passwords) NS_OVERRIDE; \
  NS_IMETHOD RemoveEncryptionPassword(const PRUnichar *id) NS_OVERRIDE; \
  NS_IMETHOD ClearAllEncryptionPasswords(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IMachine(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IMachine(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IMachine(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IMachine(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod5IMachine(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod6IMachine(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod7IMachine(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod8IMachine(void) NS_OVERRIDE; 

/* 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 GetGraphicsAdapter(IGraphicsAdapter * *aGraphicsAdapter) { return _to GetGraphicsAdapter(aGraphicsAdapter); } \
  NS_IMETHOD GetPlatform(IPlatform * *aPlatform) { return _to GetPlatform(aPlatform); } \
  NS_IMETHOD GetFirmwareSettings(IFirmwareSettings * *aFirmwareSettings) { return _to GetFirmwareSettings(aFirmwareSettings); } \
  NS_IMETHOD GetTrustedPlatformModule(ITrustedPlatformModule * *aTrustedPlatformModule) { return _to GetTrustedPlatformModule(aTrustedPlatformModule); } \
  NS_IMETHOD GetNonVolatileStore(INvramStore * *aNonVolatileStore) { return _to GetNonVolatileStore(aNonVolatileStore); } \
  NS_IMETHOD GetRecordingSettings(IRecordingSettings * *aRecordingSettings) { return _to GetRecordingSettings(aRecordingSettings); } \
  NS_IMETHOD GetPointingHIDType(PointingHIDType_T *aPointingHIDType) { return _to GetPointingHIDType(aPointingHIDType); } \
  NS_IMETHOD SetPointingHIDType(PointingHIDType_T aPointingHIDType) { return _to SetPointingHIDType(aPointingHIDType); } \
  NS_IMETHOD GetKeyboardHIDType(KeyboardHIDType_T *aKeyboardHIDType) { return _to GetKeyboardHIDType(aKeyboardHIDType); } \
  NS_IMETHOD SetKeyboardHIDType(KeyboardHIDType_T aKeyboardHIDType) { return _to SetKeyboardHIDType(aKeyboardHIDType); } \
  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 GetAudioSettings(IAudioSettings * *aAudioSettings) { return _to GetAudioSettings(aAudioSettings); } \
  NS_IMETHOD GetStorageControllers(PRUint32 *storageControllersSize, IStorageController * **storageControllers) { return _to GetStorageControllers(storageControllersSize, storageControllers); } \
  NS_IMETHOD GetSettingsFilePath(PRUnichar **aSettingsFilePath) { return _to GetSettingsFilePath(aSettingsFilePath); } \
  NS_IMETHOD GetSettingsAuxFilePath(PRUnichar **aSettingsAuxFilePath) { return _to GetSettingsAuxFilePath(aSettingsAuxFilePath); } \
  NS_IMETHOD GetSettingsModified(PRBool *aSettingsModified) { return _to GetSettingsModified(aSettingsModified); } \
  NS_IMETHOD GetSessionState(SessionState_T *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(MachineState_T *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(ClipboardMode_T *aClipboardMode) { return _to GetClipboardMode(aClipboardMode); } \
  NS_IMETHOD SetClipboardMode(ClipboardMode_T aClipboardMode) { return _to SetClipboardMode(aClipboardMode); } \
  NS_IMETHOD GetClipboardFileTransfersEnabled(PRBool *aClipboardFileTransfersEnabled) { return _to GetClipboardFileTransfersEnabled(aClipboardFileTransfersEnabled); } \
  NS_IMETHOD SetClipboardFileTransfersEnabled(PRBool aClipboardFileTransfersEnabled) { return _to SetClipboardFileTransfersEnabled(aClipboardFileTransfersEnabled); } \
  NS_IMETHOD GetDnDMode(DnDMode_T *aDnDMode) { return _to GetDnDMode(aDnDMode); } \
  NS_IMETHOD SetDnDMode(DnDMode_T 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(ParavirtProvider_T *aParavirtProvider) { return _to GetParavirtProvider(aParavirtProvider); } \
  NS_IMETHOD SetParavirtProvider(ParavirtProvider_T aParavirtProvider) { return _to SetParavirtProvider(aParavirtProvider); } \
  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(AutostopType_T *aAutostopType) { return _to GetAutostopType(aAutostopType); } \
  NS_IMETHOD SetAutostopType(AutostopType_T 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(VMProcPriority_T *aVMProcessPriority) { return _to GetVMProcessPriority(aVMProcessPriority); } \
  NS_IMETHOD SetVMProcessPriority(VMProcPriority_T aVMProcessPriority) { return _to SetVMProcessPriority(aVMProcessPriority); } \
  NS_IMETHOD GetVMExecutionEngine(VMExecutionEngine_T *aVMExecutionEngine) { return _to GetVMExecutionEngine(aVMExecutionEngine); } \
  NS_IMETHOD SetVMExecutionEngine(VMExecutionEngine_T aVMExecutionEngine) { return _to SetVMExecutionEngine(aVMExecutionEngine); } \
  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 GetStateKeyId(PRUnichar **aStateKeyId) { return _to GetStateKeyId(aStateKeyId); } \
  NS_IMETHOD GetStateKeyStore(PRUnichar **aStateKeyStore) { return _to GetStateKeyStore(aStateKeyStore); } \
  NS_IMETHOD GetLogKeyId(PRUnichar **aLogKeyId) { return _to GetLogKeyId(aLogKeyId); } \
  NS_IMETHOD GetLogKeyStore(PRUnichar **aLogKeyStore) { return _to GetLogKeyStore(aLogKeyStore); } \
  NS_IMETHOD GetGuestDebugControl(IGuestDebugControl * *aGuestDebugControl) { return _to GetGuestDebugControl(aGuestDebugControl); } \
  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 GetInternalAndReservedAttribute11IMachine(PRUint32 *aInternalAndReservedAttribute11IMachine) { return _to GetInternalAndReservedAttribute11IMachine(aInternalAndReservedAttribute11IMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute12IMachine(PRUint32 *aInternalAndReservedAttribute12IMachine) { return _to GetInternalAndReservedAttribute12IMachine(aInternalAndReservedAttribute12IMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute13IMachine(PRUint32 *aInternalAndReservedAttribute13IMachine) { return _to GetInternalAndReservedAttribute13IMachine(aInternalAndReservedAttribute13IMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute14IMachine(PRUint32 *aInternalAndReservedAttribute14IMachine) { return _to GetInternalAndReservedAttribute14IMachine(aInternalAndReservedAttribute14IMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute15IMachine(PRUint32 *aInternalAndReservedAttribute15IMachine) { return _to GetInternalAndReservedAttribute15IMachine(aInternalAndReservedAttribute15IMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute16IMachine(PRUint32 *aInternalAndReservedAttribute16IMachine) { return _to GetInternalAndReservedAttribute16IMachine(aInternalAndReservedAttribute16IMachine); } \
  NS_IMETHOD LockMachine(ISession * session, LockType_T lockType) { return _to LockMachine(session, lockType); } \
  NS_IMETHOD LaunchVMProcess(ISession * session, const PRUnichar *name, PRUint32 environmentChangesSize, const PRUnichar **environmentChanges, IProgress * *progress) { return _to LaunchVMProcess(session, name, environmentChangesSize, environmentChanges, progress); } \
  NS_IMETHOD SetBootOrder(PRUint32 position, DeviceType_T device) { return _to SetBootOrder(position, device); } \
  NS_IMETHOD GetBootOrder(PRUint32 position, DeviceType_T *device) { return _to GetBootOrder(position, device); } \
  NS_IMETHOD AttachDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, DeviceType_T type, IMedium * medium) { return _to AttachDevice(name, controllerPort, device, type, medium); } \
  NS_IMETHOD AttachDeviceWithoutMedium(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, DeviceType_T 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, StorageBus_T 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(StorageBus_T 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, USBControllerType_T 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(USBControllerType_T 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 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(CleanupMode_T 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, const PRUnichar *autoMountPoint) { return _to CreateSharedFolder(name, hostPath, writable, automount, autoMountPoint); } \
  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, BitmapFormat_T 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, BitmapFormat_T **bitmapFormats) { return _to QuerySavedScreenshotInfo(screenId, width, height, bitmapFormatsSize, bitmapFormats); } \
  NS_IMETHOD ReadSavedScreenshotToArray(PRUint32 screenId, BitmapFormat_T 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(ParavirtProvider_T *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, CloneMode_T mode, PRUint32 optionsSize, CloneOptions_T *options, IProgress * *progress) { return _to CloneTo(target, mode, optionsSize, options, progress); } \
  NS_IMETHOD MoveTo(const PRUnichar *folder, const PRUnichar *type, IProgress * *progress) { return _to MoveTo(folder, type, 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 ChangeEncryption(const PRUnichar *currentPassword, const PRUnichar *cipher, const PRUnichar *newPassword, const PRUnichar *newPasswordId, PRBool force, IProgress * *progress) { return _to ChangeEncryption(currentPassword, cipher, newPassword, newPasswordId, force, 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 AddEncryptionPassword(const PRUnichar *id, const PRUnichar *password) { return _to AddEncryptionPassword(id, password); } \
  NS_IMETHOD AddEncryptionPasswords(PRUint32 idsSize, const PRUnichar **ids, PRUint32 passwordsSize, const PRUnichar **passwords) { return _to AddEncryptionPasswords(idsSize, ids, passwordsSize, passwords); } \
  NS_IMETHOD RemoveEncryptionPassword(const PRUnichar *id) { return _to RemoveEncryptionPassword(id); } \
  NS_IMETHOD ClearAllEncryptionPasswords(void) { return _to ClearAllEncryptionPasswords(); } \
  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 GetGraphicsAdapter(IGraphicsAdapter * *aGraphicsAdapter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGraphicsAdapter(aGraphicsAdapter); } \
  NS_IMETHOD GetPlatform(IPlatform * *aPlatform) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPlatform(aPlatform); } \
  NS_IMETHOD GetFirmwareSettings(IFirmwareSettings * *aFirmwareSettings) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFirmwareSettings(aFirmwareSettings); } \
  NS_IMETHOD GetTrustedPlatformModule(ITrustedPlatformModule * *aTrustedPlatformModule) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTrustedPlatformModule(aTrustedPlatformModule); } \
  NS_IMETHOD GetNonVolatileStore(INvramStore * *aNonVolatileStore) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNonVolatileStore(aNonVolatileStore); } \
  NS_IMETHOD GetRecordingSettings(IRecordingSettings * *aRecordingSettings) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecordingSettings(aRecordingSettings); } \
  NS_IMETHOD GetPointingHIDType(PointingHIDType_T *aPointingHIDType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPointingHIDType(aPointingHIDType); } \
  NS_IMETHOD SetPointingHIDType(PointingHIDType_T aPointingHIDType) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPointingHIDType(aPointingHIDType); } \
  NS_IMETHOD GetKeyboardHIDType(KeyboardHIDType_T *aKeyboardHIDType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetKeyboardHIDType(aKeyboardHIDType); } \
  NS_IMETHOD SetKeyboardHIDType(KeyboardHIDType_T aKeyboardHIDType) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetKeyboardHIDType(aKeyboardHIDType); } \
  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 GetAudioSettings(IAudioSettings * *aAudioSettings) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAudioSettings(aAudioSettings); } \
  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 GetSettingsAuxFilePath(PRUnichar **aSettingsAuxFilePath) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSettingsAuxFilePath(aSettingsAuxFilePath); } \
  NS_IMETHOD GetSettingsModified(PRBool *aSettingsModified) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSettingsModified(aSettingsModified); } \
  NS_IMETHOD GetSessionState(SessionState_T *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(MachineState_T *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(ClipboardMode_T *aClipboardMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetClipboardMode(aClipboardMode); } \
  NS_IMETHOD SetClipboardMode(ClipboardMode_T aClipboardMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetClipboardMode(aClipboardMode); } \
  NS_IMETHOD GetClipboardFileTransfersEnabled(PRBool *aClipboardFileTransfersEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetClipboardFileTransfersEnabled(aClipboardFileTransfersEnabled); } \
  NS_IMETHOD SetClipboardFileTransfersEnabled(PRBool aClipboardFileTransfersEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetClipboardFileTransfersEnabled(aClipboardFileTransfersEnabled); } \
  NS_IMETHOD GetDnDMode(DnDMode_T *aDnDMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDnDMode(aDnDMode); } \
  NS_IMETHOD SetDnDMode(DnDMode_T 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(ParavirtProvider_T *aParavirtProvider) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetParavirtProvider(aParavirtProvider); } \
  NS_IMETHOD SetParavirtProvider(ParavirtProvider_T aParavirtProvider) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetParavirtProvider(aParavirtProvider); } \
  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(AutostopType_T *aAutostopType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAutostopType(aAutostopType); } \
  NS_IMETHOD SetAutostopType(AutostopType_T 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(VMProcPriority_T *aVMProcessPriority) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVMProcessPriority(aVMProcessPriority); } \
  NS_IMETHOD SetVMProcessPriority(VMProcPriority_T aVMProcessPriority) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetVMProcessPriority(aVMProcessPriority); } \
  NS_IMETHOD GetVMExecutionEngine(VMExecutionEngine_T *aVMExecutionEngine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVMExecutionEngine(aVMExecutionEngine); } \
  NS_IMETHOD SetVMExecutionEngine(VMExecutionEngine_T aVMExecutionEngine) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetVMExecutionEngine(aVMExecutionEngine); } \
  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 GetStateKeyId(PRUnichar **aStateKeyId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStateKeyId(aStateKeyId); } \
  NS_IMETHOD GetStateKeyStore(PRUnichar **aStateKeyStore) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStateKeyStore(aStateKeyStore); } \
  NS_IMETHOD GetLogKeyId(PRUnichar **aLogKeyId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLogKeyId(aLogKeyId); } \
  NS_IMETHOD GetLogKeyStore(PRUnichar **aLogKeyStore) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLogKeyStore(aLogKeyStore); } \
  NS_IMETHOD GetGuestDebugControl(IGuestDebugControl * *aGuestDebugControl) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGuestDebugControl(aGuestDebugControl); } \
  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 GetInternalAndReservedAttribute11IMachine(PRUint32 *aInternalAndReservedAttribute11IMachine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute11IMachine(aInternalAndReservedAttribute11IMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute12IMachine(PRUint32 *aInternalAndReservedAttribute12IMachine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute12IMachine(aInternalAndReservedAttribute12IMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute13IMachine(PRUint32 *aInternalAndReservedAttribute13IMachine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute13IMachine(aInternalAndReservedAttribute13IMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute14IMachine(PRUint32 *aInternalAndReservedAttribute14IMachine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute14IMachine(aInternalAndReservedAttribute14IMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute15IMachine(PRUint32 *aInternalAndReservedAttribute15IMachine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute15IMachine(aInternalAndReservedAttribute15IMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute16IMachine(PRUint32 *aInternalAndReservedAttribute16IMachine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute16IMachine(aInternalAndReservedAttribute16IMachine); } \
  NS_IMETHOD LockMachine(ISession * session, LockType_T lockType) { return !_to ? NS_ERROR_NULL_POINTER : _to->LockMachine(session, lockType); } \
  NS_IMETHOD LaunchVMProcess(ISession * session, const PRUnichar *name, PRUint32 environmentChangesSize, const PRUnichar **environmentChanges, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->LaunchVMProcess(session, name, environmentChangesSize, environmentChanges, progress); } \
  NS_IMETHOD SetBootOrder(PRUint32 position, DeviceType_T device) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetBootOrder(position, device); } \
  NS_IMETHOD GetBootOrder(PRUint32 position, DeviceType_T *device) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBootOrder(position, device); } \
  NS_IMETHOD AttachDevice(const PRUnichar *name, PRInt32 controllerPort, PRInt32 device, DeviceType_T 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, DeviceType_T 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, StorageBus_T 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(StorageBus_T 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, USBControllerType_T 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(USBControllerType_T 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 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(CleanupMode_T 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, const PRUnichar *autoMountPoint) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateSharedFolder(name, hostPath, writable, automount, autoMountPoint); } \
  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, BitmapFormat_T 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, BitmapFormat_T **bitmapFormats) { return !_to ? NS_ERROR_NULL_POINTER : _to->QuerySavedScreenshotInfo(screenId, width, height, bitmapFormatsSize, bitmapFormats); } \
  NS_IMETHOD ReadSavedScreenshotToArray(PRUint32 screenId, BitmapFormat_T 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(ParavirtProvider_T *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, CloneMode_T mode, PRUint32 optionsSize, CloneOptions_T *options, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->CloneTo(target, mode, optionsSize, options, progress); } \
  NS_IMETHOD MoveTo(const PRUnichar *folder, const PRUnichar *type, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->MoveTo(folder, type, 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 ChangeEncryption(const PRUnichar *currentPassword, const PRUnichar *cipher, const PRUnichar *newPassword, const PRUnichar *newPasswordId, PRBool force, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->ChangeEncryption(currentPassword, cipher, newPassword, newPasswordId, force, 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 AddEncryptionPassword(const PRUnichar *id, const PRUnichar *password) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddEncryptionPassword(id, password); } \
  NS_IMETHOD AddEncryptionPasswords(PRUint32 idsSize, const PRUnichar **ids, PRUint32 passwordsSize, const PRUnichar **passwords) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddEncryptionPasswords(idsSize, ids, passwordsSize, passwords); } \
  NS_IMETHOD RemoveEncryptionPassword(const PRUnichar *id) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveEncryptionPassword(id); } \
  NS_IMETHOD ClearAllEncryptionPasswords(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->ClearAllEncryptionPasswords(); } \
  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(); } 

#define COM_FORWARD_IMachine_GETTER_Parent_TO(smth) NS_IMETHOD GetParent (IVirtualBox * * aParent) { return smth GetParent (aParent); }
#define COM_FORWARD_IMachine_GETTER_Parent_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_Parent_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_Parent_TO_BASE(base) COM_FORWARD_IMachine_GETTER_Parent_TO (base::)
#define COM_FORWARD_IMachine_GETTER_Icon_TO(smth) NS_IMETHOD GetIcon (PRUint32 * aIconSize, PRUint8 * * aIcon) { return smth GetIcon (aIconSize, aIcon); }
#define COM_FORWARD_IMachine_GETTER_Icon_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_Icon_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_Icon_TO_BASE(base) COM_FORWARD_IMachine_GETTER_Icon_TO (base::)
#define COM_FORWARD_IMachine_SETTER_Icon_TO(smth) NS_IMETHOD SetIcon (PRUint32 aIconSize, PRUint8 * aIcon) { return smth SetIcon (aIcon); }
#define COM_FORWARD_IMachine_SETTER_Icon_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_Icon_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_Icon_TO_BASE(base) COM_FORWARD_IMachine_SETTER_Icon_TO (base::)
#define COM_FORWARD_IMachine_GETTER_Accessible_TO(smth) NS_IMETHOD GetAccessible (PRBool * aAccessible) { return smth GetAccessible (aAccessible); }
#define COM_FORWARD_IMachine_GETTER_Accessible_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_Accessible_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_Accessible_TO_BASE(base) COM_FORWARD_IMachine_GETTER_Accessible_TO (base::)
#define COM_FORWARD_IMachine_GETTER_AccessError_TO(smth) NS_IMETHOD GetAccessError (IVirtualBoxErrorInfo * * aAccessError) { return smth GetAccessError (aAccessError); }
#define COM_FORWARD_IMachine_GETTER_AccessError_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_AccessError_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_AccessError_TO_BASE(base) COM_FORWARD_IMachine_GETTER_AccessError_TO (base::)
#define COM_FORWARD_IMachine_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_IMachine_GETTER_Name_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_Name_TO_BASE(base) COM_FORWARD_IMachine_GETTER_Name_TO (base::)
#define COM_FORWARD_IMachine_SETTER_Name_TO(smth) NS_IMETHOD SetName (const PRUnichar * aName) { return smth SetName (aName); }
#define COM_FORWARD_IMachine_SETTER_Name_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_Name_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_Name_TO_BASE(base) COM_FORWARD_IMachine_SETTER_Name_TO (base::)
#define COM_FORWARD_IMachine_GETTER_Description_TO(smth) NS_IMETHOD GetDescription (PRUnichar * * aDescription) { return smth GetDescription (aDescription); }
#define COM_FORWARD_IMachine_GETTER_Description_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_Description_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_Description_TO_BASE(base) COM_FORWARD_IMachine_GETTER_Description_TO (base::)
#define COM_FORWARD_IMachine_SETTER_Description_TO(smth) NS_IMETHOD SetDescription (const PRUnichar * aDescription) { return smth SetDescription (aDescription); }
#define COM_FORWARD_IMachine_SETTER_Description_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_Description_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_Description_TO_BASE(base) COM_FORWARD_IMachine_SETTER_Description_TO (base::)
#define COM_FORWARD_IMachine_GETTER_Id_TO(smth) NS_IMETHOD GetId (PRUnichar * * aId) { return smth GetId (aId); }
#define COM_FORWARD_IMachine_GETTER_Id_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_Id_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_Id_TO_BASE(base) COM_FORWARD_IMachine_GETTER_Id_TO (base::)
#define COM_FORWARD_IMachine_GETTER_Groups_TO(smth) NS_IMETHOD GetGroups (PRUint32 * aGroupsSize, PRUnichar * * * aGroups) { return smth GetGroups (aGroupsSize, aGroups); }
#define COM_FORWARD_IMachine_GETTER_Groups_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_Groups_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_Groups_TO_BASE(base) COM_FORWARD_IMachine_GETTER_Groups_TO (base::)
#define COM_FORWARD_IMachine_SETTER_Groups_TO(smth) NS_IMETHOD SetGroups (PRUint32 aGroupsSize, PRUnichar * * aGroups) { return smth SetGroups (aGroups); }
#define COM_FORWARD_IMachine_SETTER_Groups_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_Groups_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_Groups_TO_BASE(base) COM_FORWARD_IMachine_SETTER_Groups_TO (base::)
#define COM_FORWARD_IMachine_GETTER_OSTypeId_TO(smth) NS_IMETHOD GetOSTypeId (PRUnichar * * aOSTypeId) { return smth GetOSTypeId (aOSTypeId); }
#define COM_FORWARD_IMachine_GETTER_OSTypeId_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_OSTypeId_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_OSTypeId_TO_BASE(base) COM_FORWARD_IMachine_GETTER_OSTypeId_TO (base::)
#define COM_FORWARD_IMachine_SETTER_OSTypeId_TO(smth) NS_IMETHOD SetOSTypeId (const PRUnichar * aOSTypeId) { return smth SetOSTypeId (aOSTypeId); }
#define COM_FORWARD_IMachine_SETTER_OSTypeId_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_OSTypeId_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_OSTypeId_TO_BASE(base) COM_FORWARD_IMachine_SETTER_OSTypeId_TO (base::)
#define COM_FORWARD_IMachine_GETTER_HardwareVersion_TO(smth) NS_IMETHOD GetHardwareVersion (PRUnichar * * aHardwareVersion) { return smth GetHardwareVersion (aHardwareVersion); }
#define COM_FORWARD_IMachine_GETTER_HardwareVersion_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_HardwareVersion_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_HardwareVersion_TO_BASE(base) COM_FORWARD_IMachine_GETTER_HardwareVersion_TO (base::)
#define COM_FORWARD_IMachine_SETTER_HardwareVersion_TO(smth) NS_IMETHOD SetHardwareVersion (const PRUnichar * aHardwareVersion) { return smth SetHardwareVersion (aHardwareVersion); }
#define COM_FORWARD_IMachine_SETTER_HardwareVersion_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_HardwareVersion_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_HardwareVersion_TO_BASE(base) COM_FORWARD_IMachine_SETTER_HardwareVersion_TO (base::)
#define COM_FORWARD_IMachine_GETTER_HardwareUUID_TO(smth) NS_IMETHOD GetHardwareUUID (PRUnichar * * aHardwareUUID) { return smth GetHardwareUUID (aHardwareUUID); }
#define COM_FORWARD_IMachine_GETTER_HardwareUUID_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_HardwareUUID_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_HardwareUUID_TO_BASE(base) COM_FORWARD_IMachine_GETTER_HardwareUUID_TO (base::)
#define COM_FORWARD_IMachine_SETTER_HardwareUUID_TO(smth) NS_IMETHOD SetHardwareUUID (PRUnichar * aHardwareUUID) { return smth SetHardwareUUID (aHardwareUUID); }
#define COM_FORWARD_IMachine_SETTER_HardwareUUID_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_HardwareUUID_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_HardwareUUID_TO_BASE(base) COM_FORWARD_IMachine_SETTER_HardwareUUID_TO (base::)
#define COM_FORWARD_IMachine_GETTER_CPUCount_TO(smth) NS_IMETHOD GetCPUCount (PRUint32 * aCPUCount) { return smth GetCPUCount (aCPUCount); }
#define COM_FORWARD_IMachine_GETTER_CPUCount_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_CPUCount_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_CPUCount_TO_BASE(base) COM_FORWARD_IMachine_GETTER_CPUCount_TO (base::)
#define COM_FORWARD_IMachine_SETTER_CPUCount_TO(smth) NS_IMETHOD SetCPUCount (PRUint32 aCPUCount) { return smth SetCPUCount (aCPUCount); }
#define COM_FORWARD_IMachine_SETTER_CPUCount_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_CPUCount_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_CPUCount_TO_BASE(base) COM_FORWARD_IMachine_SETTER_CPUCount_TO (base::)
#define COM_FORWARD_IMachine_GETTER_CPUHotPlugEnabled_TO(smth) NS_IMETHOD GetCPUHotPlugEnabled (PRBool * aCPUHotPlugEnabled) { return smth GetCPUHotPlugEnabled (aCPUHotPlugEnabled); }
#define COM_FORWARD_IMachine_GETTER_CPUHotPlugEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_CPUHotPlugEnabled_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_CPUHotPlugEnabled_TO_BASE(base) COM_FORWARD_IMachine_GETTER_CPUHotPlugEnabled_TO (base::)
#define COM_FORWARD_IMachine_SETTER_CPUHotPlugEnabled_TO(smth) NS_IMETHOD SetCPUHotPlugEnabled (PRBool aCPUHotPlugEnabled) { return smth SetCPUHotPlugEnabled (aCPUHotPlugEnabled); }
#define COM_FORWARD_IMachine_SETTER_CPUHotPlugEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_CPUHotPlugEnabled_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_CPUHotPlugEnabled_TO_BASE(base) COM_FORWARD_IMachine_SETTER_CPUHotPlugEnabled_TO (base::)
#define COM_FORWARD_IMachine_GETTER_CPUExecutionCap_TO(smth) NS_IMETHOD GetCPUExecutionCap (PRUint32 * aCPUExecutionCap) { return smth GetCPUExecutionCap (aCPUExecutionCap); }
#define COM_FORWARD_IMachine_GETTER_CPUExecutionCap_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_CPUExecutionCap_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_CPUExecutionCap_TO_BASE(base) COM_FORWARD_IMachine_GETTER_CPUExecutionCap_TO (base::)
#define COM_FORWARD_IMachine_SETTER_CPUExecutionCap_TO(smth) NS_IMETHOD SetCPUExecutionCap (PRUint32 aCPUExecutionCap) { return smth SetCPUExecutionCap (aCPUExecutionCap); }
#define COM_FORWARD_IMachine_SETTER_CPUExecutionCap_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_CPUExecutionCap_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_CPUExecutionCap_TO_BASE(base) COM_FORWARD_IMachine_SETTER_CPUExecutionCap_TO (base::)
#define COM_FORWARD_IMachine_GETTER_CPUIDPortabilityLevel_TO(smth) NS_IMETHOD GetCPUIDPortabilityLevel (PRUint32 * aCPUIDPortabilityLevel) { return smth GetCPUIDPortabilityLevel (aCPUIDPortabilityLevel); }
#define COM_FORWARD_IMachine_GETTER_CPUIDPortabilityLevel_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_CPUIDPortabilityLevel_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_CPUIDPortabilityLevel_TO_BASE(base) COM_FORWARD_IMachine_GETTER_CPUIDPortabilityLevel_TO (base::)
#define COM_FORWARD_IMachine_SETTER_CPUIDPortabilityLevel_TO(smth) NS_IMETHOD SetCPUIDPortabilityLevel (PRUint32 aCPUIDPortabilityLevel) { return smth SetCPUIDPortabilityLevel (aCPUIDPortabilityLevel); }
#define COM_FORWARD_IMachine_SETTER_CPUIDPortabilityLevel_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_CPUIDPortabilityLevel_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_CPUIDPortabilityLevel_TO_BASE(base) COM_FORWARD_IMachine_SETTER_CPUIDPortabilityLevel_TO (base::)
#define COM_FORWARD_IMachine_GETTER_MemorySize_TO(smth) NS_IMETHOD GetMemorySize (PRUint32 * aMemorySize) { return smth GetMemorySize (aMemorySize); }
#define COM_FORWARD_IMachine_GETTER_MemorySize_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_MemorySize_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_MemorySize_TO_BASE(base) COM_FORWARD_IMachine_GETTER_MemorySize_TO (base::)
#define COM_FORWARD_IMachine_SETTER_MemorySize_TO(smth) NS_IMETHOD SetMemorySize (PRUint32 aMemorySize) { return smth SetMemorySize (aMemorySize); }
#define COM_FORWARD_IMachine_SETTER_MemorySize_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_MemorySize_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_MemorySize_TO_BASE(base) COM_FORWARD_IMachine_SETTER_MemorySize_TO (base::)
#define COM_FORWARD_IMachine_GETTER_MemoryBalloonSize_TO(smth) NS_IMETHOD GetMemoryBalloonSize (PRUint32 * aMemoryBalloonSize) { return smth GetMemoryBalloonSize (aMemoryBalloonSize); }
#define COM_FORWARD_IMachine_GETTER_MemoryBalloonSize_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_MemoryBalloonSize_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_MemoryBalloonSize_TO_BASE(base) COM_FORWARD_IMachine_GETTER_MemoryBalloonSize_TO (base::)
#define COM_FORWARD_IMachine_SETTER_MemoryBalloonSize_TO(smth) NS_IMETHOD SetMemoryBalloonSize (PRUint32 aMemoryBalloonSize) { return smth SetMemoryBalloonSize (aMemoryBalloonSize); }
#define COM_FORWARD_IMachine_SETTER_MemoryBalloonSize_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_MemoryBalloonSize_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_MemoryBalloonSize_TO_BASE(base) COM_FORWARD_IMachine_SETTER_MemoryBalloonSize_TO (base::)
#define COM_FORWARD_IMachine_GETTER_PageFusionEnabled_TO(smth) NS_IMETHOD GetPageFusionEnabled (PRBool * aPageFusionEnabled) { return smth GetPageFusionEnabled (aPageFusionEnabled); }
#define COM_FORWARD_IMachine_GETTER_PageFusionEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_PageFusionEnabled_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_PageFusionEnabled_TO_BASE(base) COM_FORWARD_IMachine_GETTER_PageFusionEnabled_TO (base::)
#define COM_FORWARD_IMachine_SETTER_PageFusionEnabled_TO(smth) NS_IMETHOD SetPageFusionEnabled (PRBool aPageFusionEnabled) { return smth SetPageFusionEnabled (aPageFusionEnabled); }
#define COM_FORWARD_IMachine_SETTER_PageFusionEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_PageFusionEnabled_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_PageFusionEnabled_TO_BASE(base) COM_FORWARD_IMachine_SETTER_PageFusionEnabled_TO (base::)
#define COM_FORWARD_IMachine_GETTER_GraphicsAdapter_TO(smth) NS_IMETHOD GetGraphicsAdapter (IGraphicsAdapter * * aGraphicsAdapter) { return smth GetGraphicsAdapter (aGraphicsAdapter); }
#define COM_FORWARD_IMachine_GETTER_GraphicsAdapter_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_GraphicsAdapter_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_GraphicsAdapter_TO_BASE(base) COM_FORWARD_IMachine_GETTER_GraphicsAdapter_TO (base::)
#define COM_FORWARD_IMachine_GETTER_Platform_TO(smth) NS_IMETHOD GetPlatform (IPlatform * * aPlatform) { return smth GetPlatform (aPlatform); }
#define COM_FORWARD_IMachine_GETTER_Platform_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_Platform_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_Platform_TO_BASE(base) COM_FORWARD_IMachine_GETTER_Platform_TO (base::)
#define COM_FORWARD_IMachine_GETTER_FirmwareSettings_TO(smth) NS_IMETHOD GetFirmwareSettings (IFirmwareSettings * * aFirmwareSettings) { return smth GetFirmwareSettings (aFirmwareSettings); }
#define COM_FORWARD_IMachine_GETTER_FirmwareSettings_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_FirmwareSettings_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_FirmwareSettings_TO_BASE(base) COM_FORWARD_IMachine_GETTER_FirmwareSettings_TO (base::)
#define COM_FORWARD_IMachine_GETTER_TrustedPlatformModule_TO(smth) NS_IMETHOD GetTrustedPlatformModule (ITrustedPlatformModule * * aTrustedPlatformModule) { return smth GetTrustedPlatformModule (aTrustedPlatformModule); }
#define COM_FORWARD_IMachine_GETTER_TrustedPlatformModule_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_TrustedPlatformModule_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_TrustedPlatformModule_TO_BASE(base) COM_FORWARD_IMachine_GETTER_TrustedPlatformModule_TO (base::)
#define COM_FORWARD_IMachine_GETTER_NonVolatileStore_TO(smth) NS_IMETHOD GetNonVolatileStore (INvramStore * * aNonVolatileStore) { return smth GetNonVolatileStore (aNonVolatileStore); }
#define COM_FORWARD_IMachine_GETTER_NonVolatileStore_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_NonVolatileStore_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_NonVolatileStore_TO_BASE(base) COM_FORWARD_IMachine_GETTER_NonVolatileStore_TO (base::)
#define COM_FORWARD_IMachine_GETTER_RecordingSettings_TO(smth) NS_IMETHOD GetRecordingSettings (IRecordingSettings * * aRecordingSettings) { return smth GetRecordingSettings (aRecordingSettings); }
#define COM_FORWARD_IMachine_GETTER_RecordingSettings_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_RecordingSettings_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_RecordingSettings_TO_BASE(base) COM_FORWARD_IMachine_GETTER_RecordingSettings_TO (base::)
#define COM_FORWARD_IMachine_GETTER_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_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_AudioSettings_TO(smth) NS_IMETHOD GetAudioSettings (IAudioSettings * * aAudioSettings) { return smth GetAudioSettings (aAudioSettings); }
#define COM_FORWARD_IMachine_GETTER_AudioSettings_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_AudioSettings_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_AudioSettings_TO_BASE(base) COM_FORWARD_IMachine_GETTER_AudioSettings_TO (base::)
#define COM_FORWARD_IMachine_GETTER_StorageControllers_TO(smth) NS_IMETHOD GetStorageControllers (PRUint32 * aStorageControllersSize, IStorageController * * * aStorageControllers) { return smth GetStorageControllers (aStorageControllersSize, aStorageControllers); }
#define COM_FORWARD_IMachine_GETTER_StorageControllers_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_StorageControllers_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_StorageControllers_TO_BASE(base) COM_FORWARD_IMachine_GETTER_StorageControllers_TO (base::)
#define COM_FORWARD_IMachine_GETTER_SettingsFilePath_TO(smth) NS_IMETHOD GetSettingsFilePath (PRUnichar * * aSettingsFilePath) { return smth GetSettingsFilePath (aSettingsFilePath); }
#define COM_FORWARD_IMachine_GETTER_SettingsFilePath_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_SettingsFilePath_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_SettingsFilePath_TO_BASE(base) COM_FORWARD_IMachine_GETTER_SettingsFilePath_TO (base::)
#define COM_FORWARD_IMachine_GETTER_SettingsAuxFilePath_TO(smth) NS_IMETHOD GetSettingsAuxFilePath (PRUnichar * * aSettingsAuxFilePath) { return smth GetSettingsAuxFilePath (aSettingsAuxFilePath); }
#define COM_FORWARD_IMachine_GETTER_SettingsAuxFilePath_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_SettingsAuxFilePath_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_SettingsAuxFilePath_TO_BASE(base) COM_FORWARD_IMachine_GETTER_SettingsAuxFilePath_TO (base::)
#define COM_FORWARD_IMachine_GETTER_SettingsModified_TO(smth) NS_IMETHOD GetSettingsModified (PRBool * aSettingsModified) { return smth GetSettingsModified (aSettingsModified); }
#define COM_FORWARD_IMachine_GETTER_SettingsModified_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_SettingsModified_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_SettingsModified_TO_BASE(base) COM_FORWARD_IMachine_GETTER_SettingsModified_TO (base::)
#define COM_FORWARD_IMachine_GETTER_SessionState_TO(smth) NS_IMETHOD GetSessionState (PRUint32 * aSessionState) { return smth GetSessionState (aSessionState); }
#define COM_FORWARD_IMachine_GETTER_SessionState_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_SessionState_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_SessionState_TO_BASE(base) COM_FORWARD_IMachine_GETTER_SessionState_TO (base::)
#define COM_FORWARD_IMachine_GETTER_SessionName_TO(smth) NS_IMETHOD GetSessionName (PRUnichar * * aSessionName) { return smth GetSessionName (aSessionName); }
#define COM_FORWARD_IMachine_GETTER_SessionName_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_SessionName_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_SessionName_TO_BASE(base) COM_FORWARD_IMachine_GETTER_SessionName_TO (base::)
#define COM_FORWARD_IMachine_GETTER_SessionPID_TO(smth) NS_IMETHOD GetSessionPID (PRUint32 * aSessionPID) { return smth GetSessionPID (aSessionPID); }
#define COM_FORWARD_IMachine_GETTER_SessionPID_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_SessionPID_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_SessionPID_TO_BASE(base) COM_FORWARD_IMachine_GETTER_SessionPID_TO (base::)
#define COM_FORWARD_IMachine_GETTER_State_TO(smth) NS_IMETHOD GetState (PRUint32 * aState) { return smth GetState (aState); }
#define COM_FORWARD_IMachine_GETTER_State_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_State_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_State_TO_BASE(base) COM_FORWARD_IMachine_GETTER_State_TO (base::)
#define COM_FORWARD_IMachine_GETTER_LastStateChange_TO(smth) NS_IMETHOD GetLastStateChange (PRInt64 * aLastStateChange) { return smth GetLastStateChange (aLastStateChange); }
#define COM_FORWARD_IMachine_GETTER_LastStateChange_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_LastStateChange_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_LastStateChange_TO_BASE(base) COM_FORWARD_IMachine_GETTER_LastStateChange_TO (base::)
#define COM_FORWARD_IMachine_GETTER_StateFilePath_TO(smth) NS_IMETHOD GetStateFilePath (PRUnichar * * aStateFilePath) { return smth GetStateFilePath (aStateFilePath); }
#define COM_FORWARD_IMachine_GETTER_StateFilePath_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_StateFilePath_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_StateFilePath_TO_BASE(base) COM_FORWARD_IMachine_GETTER_StateFilePath_TO (base::)
#define COM_FORWARD_IMachine_GETTER_LogFolder_TO(smth) NS_IMETHOD GetLogFolder (PRUnichar * * aLogFolder) { return smth GetLogFolder (aLogFolder); }
#define COM_FORWARD_IMachine_GETTER_LogFolder_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_LogFolder_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_LogFolder_TO_BASE(base) COM_FORWARD_IMachine_GETTER_LogFolder_TO (base::)
#define COM_FORWARD_IMachine_GETTER_CurrentSnapshot_TO(smth) NS_IMETHOD GetCurrentSnapshot (ISnapshot * * aCurrentSnapshot) { return smth GetCurrentSnapshot (aCurrentSnapshot); }
#define COM_FORWARD_IMachine_GETTER_CurrentSnapshot_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_CurrentSnapshot_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_CurrentSnapshot_TO_BASE(base) COM_FORWARD_IMachine_GETTER_CurrentSnapshot_TO (base::)
#define COM_FORWARD_IMachine_GETTER_SnapshotCount_TO(smth) NS_IMETHOD GetSnapshotCount (PRUint32 * aSnapshotCount) { return smth GetSnapshotCount (aSnapshotCount); }
#define COM_FORWARD_IMachine_GETTER_SnapshotCount_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_SnapshotCount_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_SnapshotCount_TO_BASE(base) COM_FORWARD_IMachine_GETTER_SnapshotCount_TO (base::)
#define COM_FORWARD_IMachine_GETTER_CurrentStateModified_TO(smth) NS_IMETHOD GetCurrentStateModified (PRBool * aCurrentStateModified) { return smth GetCurrentStateModified (aCurrentStateModified); }
#define COM_FORWARD_IMachine_GETTER_CurrentStateModified_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_CurrentStateModified_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_CurrentStateModified_TO_BASE(base) COM_FORWARD_IMachine_GETTER_CurrentStateModified_TO (base::)
#define COM_FORWARD_IMachine_GETTER_SharedFolders_TO(smth) NS_IMETHOD GetSharedFolders (PRUint32 * aSharedFoldersSize, ISharedFolder * * * aSharedFolders) { return smth GetSharedFolders (aSharedFoldersSize, aSharedFolders); }
#define COM_FORWARD_IMachine_GETTER_SharedFolders_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_SharedFolders_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_SharedFolders_TO_BASE(base) COM_FORWARD_IMachine_GETTER_SharedFolders_TO (base::)
#define COM_FORWARD_IMachine_GETTER_ClipboardMode_TO(smth) NS_IMETHOD GetClipboardMode (PRUint32 * aClipboardMode) { return smth GetClipboardMode (aClipboardMode); }
#define COM_FORWARD_IMachine_GETTER_ClipboardMode_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_ClipboardMode_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_ClipboardMode_TO_BASE(base) COM_FORWARD_IMachine_GETTER_ClipboardMode_TO (base::)
#define COM_FORWARD_IMachine_SETTER_ClipboardMode_TO(smth) NS_IMETHOD SetClipboardMode (PRUint32 aClipboardMode) { return smth SetClipboardMode (aClipboardMode); }
#define COM_FORWARD_IMachine_SETTER_ClipboardMode_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_ClipboardMode_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_ClipboardMode_TO_BASE(base) COM_FORWARD_IMachine_SETTER_ClipboardMode_TO (base::)
#define COM_FORWARD_IMachine_GETTER_ClipboardFileTransfersEnabled_TO(smth) NS_IMETHOD GetClipboardFileTransfersEnabled (PRBool * aClipboardFileTransfersEnabled) { return smth GetClipboardFileTransfersEnabled (aClipboardFileTransfersEnabled); }
#define COM_FORWARD_IMachine_GETTER_ClipboardFileTransfersEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_ClipboardFileTransfersEnabled_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_ClipboardFileTransfersEnabled_TO_BASE(base) COM_FORWARD_IMachine_GETTER_ClipboardFileTransfersEnabled_TO (base::)
#define COM_FORWARD_IMachine_SETTER_ClipboardFileTransfersEnabled_TO(smth) NS_IMETHOD SetClipboardFileTransfersEnabled (PRBool aClipboardFileTransfersEnabled) { return smth SetClipboardFileTransfersEnabled (aClipboardFileTransfersEnabled); }
#define COM_FORWARD_IMachine_SETTER_ClipboardFileTransfersEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_ClipboardFileTransfersEnabled_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_ClipboardFileTransfersEnabled_TO_BASE(base) COM_FORWARD_IMachine_SETTER_ClipboardFileTransfersEnabled_TO (base::)
#define COM_FORWARD_IMachine_GETTER_DnDMode_TO(smth) NS_IMETHOD GetDnDMode (PRUint32 * aDnDMode) { return smth GetDnDMode (aDnDMode); }
#define COM_FORWARD_IMachine_GETTER_DnDMode_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_DnDMode_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_DnDMode_TO_BASE(base) COM_FORWARD_IMachine_GETTER_DnDMode_TO (base::)
#define COM_FORWARD_IMachine_SETTER_DnDMode_TO(smth) NS_IMETHOD SetDnDMode (PRUint32 aDnDMode) { return smth SetDnDMode (aDnDMode); }
#define COM_FORWARD_IMachine_SETTER_DnDMode_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_DnDMode_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_DnDMode_TO_BASE(base) COM_FORWARD_IMachine_SETTER_DnDMode_TO (base::)
#define COM_FORWARD_IMachine_GETTER_TeleporterEnabled_TO(smth) NS_IMETHOD GetTeleporterEnabled (PRBool * aTeleporterEnabled) { return smth GetTeleporterEnabled (aTeleporterEnabled); }
#define COM_FORWARD_IMachine_GETTER_TeleporterEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_TeleporterEnabled_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_TeleporterEnabled_TO_BASE(base) COM_FORWARD_IMachine_GETTER_TeleporterEnabled_TO (base::)
#define COM_FORWARD_IMachine_SETTER_TeleporterEnabled_TO(smth) NS_IMETHOD SetTeleporterEnabled (PRBool aTeleporterEnabled) { return smth SetTeleporterEnabled (aTeleporterEnabled); }
#define COM_FORWARD_IMachine_SETTER_TeleporterEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_TeleporterEnabled_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_TeleporterEnabled_TO_BASE(base) COM_FORWARD_IMachine_SETTER_TeleporterEnabled_TO (base::)
#define COM_FORWARD_IMachine_GETTER_TeleporterPort_TO(smth) NS_IMETHOD GetTeleporterPort (PRUint32 * aTeleporterPort) { return smth GetTeleporterPort (aTeleporterPort); }
#define COM_FORWARD_IMachine_GETTER_TeleporterPort_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_TeleporterPort_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_TeleporterPort_TO_BASE(base) COM_FORWARD_IMachine_GETTER_TeleporterPort_TO (base::)
#define COM_FORWARD_IMachine_SETTER_TeleporterPort_TO(smth) NS_IMETHOD SetTeleporterPort (PRUint32 aTeleporterPort) { return smth SetTeleporterPort (aTeleporterPort); }
#define COM_FORWARD_IMachine_SETTER_TeleporterPort_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_TeleporterPort_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_TeleporterPort_TO_BASE(base) COM_FORWARD_IMachine_SETTER_TeleporterPort_TO (base::)
#define COM_FORWARD_IMachine_GETTER_TeleporterAddress_TO(smth) NS_IMETHOD GetTeleporterAddress (PRUnichar * * aTeleporterAddress) { return smth GetTeleporterAddress (aTeleporterAddress); }
#define COM_FORWARD_IMachine_GETTER_TeleporterAddress_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_TeleporterAddress_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_TeleporterAddress_TO_BASE(base) COM_FORWARD_IMachine_GETTER_TeleporterAddress_TO (base::)
#define COM_FORWARD_IMachine_SETTER_TeleporterAddress_TO(smth) NS_IMETHOD SetTeleporterAddress (const PRUnichar * aTeleporterAddress) { return smth SetTeleporterAddress (aTeleporterAddress); }
#define COM_FORWARD_IMachine_SETTER_TeleporterAddress_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_TeleporterAddress_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_TeleporterAddress_TO_BASE(base) COM_FORWARD_IMachine_SETTER_TeleporterAddress_TO (base::)
#define COM_FORWARD_IMachine_GETTER_TeleporterPassword_TO(smth) NS_IMETHOD GetTeleporterPassword (PRUnichar * * aTeleporterPassword) { return smth GetTeleporterPassword (aTeleporterPassword); }
#define COM_FORWARD_IMachine_GETTER_TeleporterPassword_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_TeleporterPassword_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_TeleporterPassword_TO_BASE(base) COM_FORWARD_IMachine_GETTER_TeleporterPassword_TO (base::)
#define COM_FORWARD_IMachine_SETTER_TeleporterPassword_TO(smth) NS_IMETHOD SetTeleporterPassword (const PRUnichar * aTeleporterPassword) { return smth SetTeleporterPassword (aTeleporterPassword); }
#define COM_FORWARD_IMachine_SETTER_TeleporterPassword_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_TeleporterPassword_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_TeleporterPassword_TO_BASE(base) COM_FORWARD_IMachine_SETTER_TeleporterPassword_TO (base::)
#define COM_FORWARD_IMachine_GETTER_ParavirtProvider_TO(smth) NS_IMETHOD GetParavirtProvider (PRUint32 * aParavirtProvider) { return smth GetParavirtProvider (aParavirtProvider); }
#define COM_FORWARD_IMachine_GETTER_ParavirtProvider_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_ParavirtProvider_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_ParavirtProvider_TO_BASE(base) COM_FORWARD_IMachine_GETTER_ParavirtProvider_TO (base::)
#define COM_FORWARD_IMachine_SETTER_ParavirtProvider_TO(smth) NS_IMETHOD SetParavirtProvider (PRUint32 aParavirtProvider) { return smth SetParavirtProvider (aParavirtProvider); }
#define COM_FORWARD_IMachine_SETTER_ParavirtProvider_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_ParavirtProvider_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_ParavirtProvider_TO_BASE(base) COM_FORWARD_IMachine_SETTER_ParavirtProvider_TO (base::)
#define COM_FORWARD_IMachine_GETTER_IOCacheEnabled_TO(smth) NS_IMETHOD GetIOCacheEnabled (PRBool * aIOCacheEnabled) { return smth GetIOCacheEnabled (aIOCacheEnabled); }
#define COM_FORWARD_IMachine_GETTER_IOCacheEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_IOCacheEnabled_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_IOCacheEnabled_TO_BASE(base) COM_FORWARD_IMachine_GETTER_IOCacheEnabled_TO (base::)
#define COM_FORWARD_IMachine_SETTER_IOCacheEnabled_TO(smth) NS_IMETHOD SetIOCacheEnabled (PRBool aIOCacheEnabled) { return smth SetIOCacheEnabled (aIOCacheEnabled); }
#define COM_FORWARD_IMachine_SETTER_IOCacheEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_IOCacheEnabled_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_IOCacheEnabled_TO_BASE(base) COM_FORWARD_IMachine_SETTER_IOCacheEnabled_TO (base::)
#define COM_FORWARD_IMachine_GETTER_IOCacheSize_TO(smth) NS_IMETHOD GetIOCacheSize (PRUint32 * aIOCacheSize) { return smth GetIOCacheSize (aIOCacheSize); }
#define COM_FORWARD_IMachine_GETTER_IOCacheSize_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_IOCacheSize_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_IOCacheSize_TO_BASE(base) COM_FORWARD_IMachine_GETTER_IOCacheSize_TO (base::)
#define COM_FORWARD_IMachine_SETTER_IOCacheSize_TO(smth) NS_IMETHOD SetIOCacheSize (PRUint32 aIOCacheSize) { return smth SetIOCacheSize (aIOCacheSize); }
#define COM_FORWARD_IMachine_SETTER_IOCacheSize_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_IOCacheSize_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_IOCacheSize_TO_BASE(base) COM_FORWARD_IMachine_SETTER_IOCacheSize_TO (base::)
#define COM_FORWARD_IMachine_GETTER_PCIDeviceAssignments_TO(smth) NS_IMETHOD GetPCIDeviceAssignments (PRUint32 * aPCIDeviceAssignmentsSize, IPCIDeviceAttachment * * * aPCIDeviceAssignments) { return smth GetPCIDeviceAssignments (aPCIDeviceAssignmentsSize, aPCIDeviceAssignments); }
#define COM_FORWARD_IMachine_GETTER_PCIDeviceAssignments_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_PCIDeviceAssignments_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_PCIDeviceAssignments_TO_BASE(base) COM_FORWARD_IMachine_GETTER_PCIDeviceAssignments_TO (base::)
#define COM_FORWARD_IMachine_GETTER_BandwidthControl_TO(smth) NS_IMETHOD GetBandwidthControl (IBandwidthControl * * aBandwidthControl) { return smth GetBandwidthControl (aBandwidthControl); }
#define COM_FORWARD_IMachine_GETTER_BandwidthControl_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_BandwidthControl_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_BandwidthControl_TO_BASE(base) COM_FORWARD_IMachine_GETTER_BandwidthControl_TO (base::)
#define COM_FORWARD_IMachine_GETTER_TracingEnabled_TO(smth) NS_IMETHOD GetTracingEnabled (PRBool * aTracingEnabled) { return smth GetTracingEnabled (aTracingEnabled); }
#define COM_FORWARD_IMachine_GETTER_TracingEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_TracingEnabled_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_TracingEnabled_TO_BASE(base) COM_FORWARD_IMachine_GETTER_TracingEnabled_TO (base::)
#define COM_FORWARD_IMachine_SETTER_TracingEnabled_TO(smth) NS_IMETHOD SetTracingEnabled (PRBool aTracingEnabled) { return smth SetTracingEnabled (aTracingEnabled); }
#define COM_FORWARD_IMachine_SETTER_TracingEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_TracingEnabled_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_TracingEnabled_TO_BASE(base) COM_FORWARD_IMachine_SETTER_TracingEnabled_TO (base::)
#define COM_FORWARD_IMachine_GETTER_TracingConfig_TO(smth) NS_IMETHOD GetTracingConfig (PRUnichar * * aTracingConfig) { return smth GetTracingConfig (aTracingConfig); }
#define COM_FORWARD_IMachine_GETTER_TracingConfig_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_TracingConfig_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_TracingConfig_TO_BASE(base) COM_FORWARD_IMachine_GETTER_TracingConfig_TO (base::)
#define COM_FORWARD_IMachine_SETTER_TracingConfig_TO(smth) NS_IMETHOD SetTracingConfig (const PRUnichar * aTracingConfig) { return smth SetTracingConfig (aTracingConfig); }
#define COM_FORWARD_IMachine_SETTER_TracingConfig_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_TracingConfig_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_TracingConfig_TO_BASE(base) COM_FORWARD_IMachine_SETTER_TracingConfig_TO (base::)
#define COM_FORWARD_IMachine_GETTER_AllowTracingToAccessVM_TO(smth) NS_IMETHOD GetAllowTracingToAccessVM (PRBool * aAllowTracingToAccessVM) { return smth GetAllowTracingToAccessVM (aAllowTracingToAccessVM); }
#define COM_FORWARD_IMachine_GETTER_AllowTracingToAccessVM_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_AllowTracingToAccessVM_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_AllowTracingToAccessVM_TO_BASE(base) COM_FORWARD_IMachine_GETTER_AllowTracingToAccessVM_TO (base::)
#define COM_FORWARD_IMachine_SETTER_AllowTracingToAccessVM_TO(smth) NS_IMETHOD SetAllowTracingToAccessVM (PRBool aAllowTracingToAccessVM) { return smth SetAllowTracingToAccessVM (aAllowTracingToAccessVM); }
#define COM_FORWARD_IMachine_SETTER_AllowTracingToAccessVM_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_AllowTracingToAccessVM_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_AllowTracingToAccessVM_TO_BASE(base) COM_FORWARD_IMachine_SETTER_AllowTracingToAccessVM_TO (base::)
#define COM_FORWARD_IMachine_GETTER_AutostartEnabled_TO(smth) NS_IMETHOD GetAutostartEnabled (PRBool * aAutostartEnabled) { return smth GetAutostartEnabled (aAutostartEnabled); }
#define COM_FORWARD_IMachine_GETTER_AutostartEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_AutostartEnabled_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_AutostartEnabled_TO_BASE(base) COM_FORWARD_IMachine_GETTER_AutostartEnabled_TO (base::)
#define COM_FORWARD_IMachine_SETTER_AutostartEnabled_TO(smth) NS_IMETHOD SetAutostartEnabled (PRBool aAutostartEnabled) { return smth SetAutostartEnabled (aAutostartEnabled); }
#define COM_FORWARD_IMachine_SETTER_AutostartEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_AutostartEnabled_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_AutostartEnabled_TO_BASE(base) COM_FORWARD_IMachine_SETTER_AutostartEnabled_TO (base::)
#define COM_FORWARD_IMachine_GETTER_AutostartDelay_TO(smth) NS_IMETHOD GetAutostartDelay (PRUint32 * aAutostartDelay) { return smth GetAutostartDelay (aAutostartDelay); }
#define COM_FORWARD_IMachine_GETTER_AutostartDelay_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_AutostartDelay_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_AutostartDelay_TO_BASE(base) COM_FORWARD_IMachine_GETTER_AutostartDelay_TO (base::)
#define COM_FORWARD_IMachine_SETTER_AutostartDelay_TO(smth) NS_IMETHOD SetAutostartDelay (PRUint32 aAutostartDelay) { return smth SetAutostartDelay (aAutostartDelay); }
#define COM_FORWARD_IMachine_SETTER_AutostartDelay_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_AutostartDelay_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_AutostartDelay_TO_BASE(base) COM_FORWARD_IMachine_SETTER_AutostartDelay_TO (base::)
#define COM_FORWARD_IMachine_GETTER_AutostopType_TO(smth) NS_IMETHOD GetAutostopType (PRUint32 * aAutostopType) { return smth GetAutostopType (aAutostopType); }
#define COM_FORWARD_IMachine_GETTER_AutostopType_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_AutostopType_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_AutostopType_TO_BASE(base) COM_FORWARD_IMachine_GETTER_AutostopType_TO (base::)
#define COM_FORWARD_IMachine_SETTER_AutostopType_TO(smth) NS_IMETHOD SetAutostopType (PRUint32 aAutostopType) { return smth SetAutostopType (aAutostopType); }
#define COM_FORWARD_IMachine_SETTER_AutostopType_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_AutostopType_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_AutostopType_TO_BASE(base) COM_FORWARD_IMachine_SETTER_AutostopType_TO (base::)
#define COM_FORWARD_IMachine_GETTER_DefaultFrontend_TO(smth) NS_IMETHOD GetDefaultFrontend (PRUnichar * * aDefaultFrontend) { return smth GetDefaultFrontend (aDefaultFrontend); }
#define COM_FORWARD_IMachine_GETTER_DefaultFrontend_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_DefaultFrontend_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_DefaultFrontend_TO_BASE(base) COM_FORWARD_IMachine_GETTER_DefaultFrontend_TO (base::)
#define COM_FORWARD_IMachine_SETTER_DefaultFrontend_TO(smth) NS_IMETHOD SetDefaultFrontend (const PRUnichar * aDefaultFrontend) { return smth SetDefaultFrontend (aDefaultFrontend); }
#define COM_FORWARD_IMachine_SETTER_DefaultFrontend_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_DefaultFrontend_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_DefaultFrontend_TO_BASE(base) COM_FORWARD_IMachine_SETTER_DefaultFrontend_TO (base::)
#define COM_FORWARD_IMachine_GETTER_USBProxyAvailable_TO(smth) NS_IMETHOD GetUSBProxyAvailable (PRBool * aUSBProxyAvailable) { return smth GetUSBProxyAvailable (aUSBProxyAvailable); }
#define COM_FORWARD_IMachine_GETTER_USBProxyAvailable_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_USBProxyAvailable_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_USBProxyAvailable_TO_BASE(base) COM_FORWARD_IMachine_GETTER_USBProxyAvailable_TO (base::)
#define COM_FORWARD_IMachine_GETTER_VMProcessPriority_TO(smth) NS_IMETHOD GetVMProcessPriority (PRUint32 * aVMProcessPriority) { return smth GetVMProcessPriority (aVMProcessPriority); }
#define COM_FORWARD_IMachine_GETTER_VMProcessPriority_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_VMProcessPriority_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_VMProcessPriority_TO_BASE(base) COM_FORWARD_IMachine_GETTER_VMProcessPriority_TO (base::)
#define COM_FORWARD_IMachine_SETTER_VMProcessPriority_TO(smth) NS_IMETHOD SetVMProcessPriority (PRUint32 aVMProcessPriority) { return smth SetVMProcessPriority (aVMProcessPriority); }
#define COM_FORWARD_IMachine_SETTER_VMProcessPriority_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_VMProcessPriority_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_VMProcessPriority_TO_BASE(base) COM_FORWARD_IMachine_SETTER_VMProcessPriority_TO (base::)
#define COM_FORWARD_IMachine_GETTER_VMExecutionEngine_TO(smth) NS_IMETHOD GetVMExecutionEngine (PRUint32 * aVMExecutionEngine) { return smth GetVMExecutionEngine (aVMExecutionEngine); }
#define COM_FORWARD_IMachine_GETTER_VMExecutionEngine_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_VMExecutionEngine_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_VMExecutionEngine_TO_BASE(base) COM_FORWARD_IMachine_GETTER_VMExecutionEngine_TO (base::)
#define COM_FORWARD_IMachine_SETTER_VMExecutionEngine_TO(smth) NS_IMETHOD SetVMExecutionEngine (PRUint32 aVMExecutionEngine) { return smth SetVMExecutionEngine (aVMExecutionEngine); }
#define COM_FORWARD_IMachine_SETTER_VMExecutionEngine_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_VMExecutionEngine_TO ((obj)->)
#define COM_FORWARD_IMachine_SETTER_VMExecutionEngine_TO_BASE(base) COM_FORWARD_IMachine_SETTER_VMExecutionEngine_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_GETTER_StateKeyId_TO(smth) NS_IMETHOD GetStateKeyId (PRUnichar * * aStateKeyId) { return smth GetStateKeyId (aStateKeyId); }
#define COM_FORWARD_IMachine_GETTER_StateKeyId_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_StateKeyId_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_StateKeyId_TO_BASE(base) COM_FORWARD_IMachine_GETTER_StateKeyId_TO (base::)
#define COM_FORWARD_IMachine_GETTER_StateKeyStore_TO(smth) NS_IMETHOD GetStateKeyStore (PRUnichar * * aStateKeyStore) { return smth GetStateKeyStore (aStateKeyStore); }
#define COM_FORWARD_IMachine_GETTER_StateKeyStore_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_StateKeyStore_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_StateKeyStore_TO_BASE(base) COM_FORWARD_IMachine_GETTER_StateKeyStore_TO (base::)
#define COM_FORWARD_IMachine_GETTER_LogKeyId_TO(smth) NS_IMETHOD GetLogKeyId (PRUnichar * * aLogKeyId) { return smth GetLogKeyId (aLogKeyId); }
#define COM_FORWARD_IMachine_GETTER_LogKeyId_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_LogKeyId_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_LogKeyId_TO_BASE(base) COM_FORWARD_IMachine_GETTER_LogKeyId_TO (base::)
#define COM_FORWARD_IMachine_GETTER_LogKeyStore_TO(smth) NS_IMETHOD GetLogKeyStore (PRUnichar * * aLogKeyStore) { return smth GetLogKeyStore (aLogKeyStore); }
#define COM_FORWARD_IMachine_GETTER_LogKeyStore_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_LogKeyStore_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_LogKeyStore_TO_BASE(base) COM_FORWARD_IMachine_GETTER_LogKeyStore_TO (base::)
#define COM_FORWARD_IMachine_GETTER_GuestDebugControl_TO(smth) NS_IMETHOD GetGuestDebugControl (IGuestDebugControl * * aGuestDebugControl) { return smth GetGuestDebugControl (aGuestDebugControl); }
#define COM_FORWARD_IMachine_GETTER_GuestDebugControl_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_GuestDebugControl_TO ((obj)->)
#define COM_FORWARD_IMachine_GETTER_GuestDebugControl_TO_BASE(base) COM_FORWARD_IMachine_GETTER_GuestDebugControl_TO (base::)
#define COM_FORWARD_IMachine_LockMachine_TO(smth) NS_IMETHOD LockMachine (ISession * aSession, PRUint32 aLockType) { return smth LockMachine (aSession, aLockType); }
#define COM_FORWARD_IMachine_LockMachine_TO_OBJ(obj) COM_FORWARD_IMachine_LockMachine_TO ((obj)->)
#define COM_FORWARD_IMachine_LockMachine_TO_BASE(base) COM_FORWARD_IMachine_LockMachine_TO (base::)
#define COM_FORWARD_IMachine_LaunchVMProcess_TO(smth) NS_IMETHOD LaunchVMProcess (ISession * aSession, PRUnichar * aName, PRUint32 aEnvironmentChangesSize, PRUnichar * * aEnvironmentChanges, IProgress * * aProgress) { return smth LaunchVMProcess (aSession, aName, aEnvironmentChangesSize+++, aEnvironmentChanges, aProgress); }
#define COM_FORWARD_IMachine_LaunchVMProcess_TO_OBJ(obj) COM_FORWARD_IMachine_LaunchVMProcess_TO ((obj)->)
#define COM_FORWARD_IMachine_LaunchVMProcess_TO_BASE(base) COM_FORWARD_IMachine_LaunchVMProcess_TO (base::)
#define COM_FORWARD_IMachine_SetBootOrder_TO(smth) NS_IMETHOD SetBootOrder (PRUint32 aPosition, PRUint32 aDevice) { return smth SetBootOrder (aPosition, aDevice); }
#define COM_FORWARD_IMachine_SetBootOrder_TO_OBJ(obj) COM_FORWARD_IMachine_SetBootOrder_TO ((obj)->)
#define COM_FORWARD_IMachine_SetBootOrder_TO_BASE(base) COM_FORWARD_IMachine_SetBootOrder_TO (base::)
#define COM_FORWARD_IMachine_GetBootOrder_TO(smth) NS_IMETHOD GetBootOrder (PRUint32 aPosition, PRUint32 * aDevice) { return smth GetBootOrder (aPosition, aDevice); }
#define COM_FORWARD_IMachine_GetBootOrder_TO_OBJ(obj) COM_FORWARD_IMachine_GetBootOrder_TO ((obj)->)
#define COM_FORWARD_IMachine_GetBootOrder_TO_BASE(base) COM_FORWARD_IMachine_GetBootOrder_TO (base::)
#define COM_FORWARD_IMachine_AttachDevice_TO(smth) NS_IMETHOD AttachDevice (PRUnichar * aName, PRInt32 aControllerPort, PRInt32 aDevice, PRUint32 aType, IMedium * aMedium) { return smth AttachDevice (aName, aControllerPort, aDevice, aType, aMedium); }
#define COM_FORWARD_IMachine_AttachDevice_TO_OBJ(obj) COM_FORWARD_IMachine_AttachDevice_TO ((obj)->)
#define COM_FORWARD_IMachine_AttachDevice_TO_BASE(base) COM_FORWARD_IMachine_AttachDevice_TO (base::)
#define COM_FORWARD_IMachine_AttachDeviceWithoutMedium_TO(smth) NS_IMETHOD AttachDeviceWithoutMedium (PRUnichar * aName, PRInt32 aControllerPort, PRInt32 aDevice, PRUint32 aType) { return smth AttachDeviceWithoutMedium (aName, aControllerPort, aDevice, aType); }
#define COM_FORWARD_IMachine_AttachDeviceWithoutMedium_TO_OBJ(obj) COM_FORWARD_IMachine_AttachDeviceWithoutMedium_TO ((obj)->)
#define COM_FORWARD_IMachine_AttachDeviceWithoutMedium_TO_BASE(base) COM_FORWARD_IMachine_AttachDeviceWithoutMedium_TO (base::)
#define COM_FORWARD_IMachine_DetachDevice_TO(smth) NS_IMETHOD DetachDevice (PRUnichar * aName, PRInt32 aControllerPort, PRInt32 aDevice) { return smth DetachDevice (aName, aControllerPort, aDevice); }
#define COM_FORWARD_IMachine_DetachDevice_TO_OBJ(obj) COM_FORWARD_IMachine_DetachDevice_TO ((obj)->)
#define COM_FORWARD_IMachine_DetachDevice_TO_BASE(base) COM_FORWARD_IMachine_DetachDevice_TO (base::)
#define COM_FORWARD_IMachine_PassthroughDevice_TO(smth) NS_IMETHOD PassthroughDevice (PRUnichar * aName, PRInt32 aControllerPort, PRInt32 aDevice, PRBool aPassthrough) { return smth PassthroughDevice (aName, aControllerPort, aDevice, aPassthrough); }
#define COM_FORWARD_IMachine_PassthroughDevice_TO_OBJ(obj) COM_FORWARD_IMachine_PassthroughDevice_TO ((obj)->)
#define COM_FORWARD_IMachine_PassthroughDevice_TO_BASE(base) COM_FORWARD_IMachine_PassthroughDevice_TO (base::)
#define COM_FORWARD_IMachine_TemporaryEjectDevice_TO(smth) NS_IMETHOD TemporaryEjectDevice (PRUnichar * aName, PRInt32 aControllerPort, PRInt32 aDevice, PRBool aTemporaryEject) { return smth TemporaryEjectDevice (aName, aControllerPort, aDevice, aTemporaryEject); }
#define COM_FORWARD_IMachine_TemporaryEjectDevice_TO_OBJ(obj) COM_FORWARD_IMachine_TemporaryEjectDevice_TO ((obj)->)
#define COM_FORWARD_IMachine_TemporaryEjectDevice_TO_BASE(base) COM_FORWARD_IMachine_TemporaryEjectDevice_TO (base::)
#define COM_FORWARD_IMachine_NonRotationalDevice_TO(smth) NS_IMETHOD NonRotationalDevice (PRUnichar * aName, PRInt32 aControllerPort, PRInt32 aDevice, PRBool aNonRotational) { return smth NonRotationalDevice (aName, aControllerPort, aDevice, aNonRotational); }
#define COM_FORWARD_IMachine_NonRotationalDevice_TO_OBJ(obj) COM_FORWARD_IMachine_NonRotationalDevice_TO ((obj)->)
#define COM_FORWARD_IMachine_NonRotationalDevice_TO_BASE(base) COM_FORWARD_IMachine_NonRotationalDevice_TO (base::)
#define COM_FORWARD_IMachine_SetAutoDiscardForDevice_TO(smth) NS_IMETHOD SetAutoDiscardForDevice (PRUnichar * aName, PRInt32 aControllerPort, PRInt32 aDevice, PRBool aDiscard) { return smth SetAutoDiscardForDevice (aName, aControllerPort, aDevice, aDiscard); }
#define COM_FORWARD_IMachine_SetAutoDiscardForDevice_TO_OBJ(obj) COM_FORWARD_IMachine_SetAutoDiscardForDevice_TO ((obj)->)
#define COM_FORWARD_IMachine_SetAutoDiscardForDevice_TO_BASE(base) COM_FORWARD_IMachine_SetAutoDiscardForDevice_TO (base::)
#define COM_FORWARD_IMachine_SetHotPluggableForDevice_TO(smth) NS_IMETHOD SetHotPluggableForDevice (PRUnichar * aName, PRInt32 aControllerPort, PRInt32 aDevice, PRBool aHotPluggable) { return smth SetHotPluggableForDevice (aName, aControllerPort, aDevice, aHotPluggable); }
#define COM_FORWARD_IMachine_SetHotPluggableForDevice_TO_OBJ(obj) COM_FORWARD_IMachine_SetHotPluggableForDevice_TO ((obj)->)
#define COM_FORWARD_IMachine_SetHotPluggableForDevice_TO_BASE(base) COM_FORWARD_IMachine_SetHotPluggableForDevice_TO (base::)
#define COM_FORWARD_IMachine_SetBandwidthGroupForDevice_TO(smth) NS_IMETHOD SetBandwidthGroupForDevice (PRUnichar * aName, PRInt32 aControllerPort, PRInt32 aDevice, IBandwidthGroup * aBandwidthGroup) { return smth SetBandwidthGroupForDevice (aName, aControllerPort, aDevice, aBandwidthGroup); }
#define COM_FORWARD_IMachine_SetBandwidthGroupForDevice_TO_OBJ(obj) COM_FORWARD_IMachine_SetBandwidthGroupForDevice_TO ((obj)->)
#define COM_FORWARD_IMachine_SetBandwidthGroupForDevice_TO_BASE(base) COM_FORWARD_IMachine_SetBandwidthGroupForDevice_TO (base::)
#define COM_FORWARD_IMachine_SetNoBandwidthGroupForDevice_TO(smth) NS_IMETHOD SetNoBandwidthGroupForDevice (PRUnichar * aName, PRInt32 aControllerPort, PRInt32 aDevice) { return smth SetNoBandwidthGroupForDevice (aName, aControllerPort, aDevice); }
#define COM_FORWARD_IMachine_SetNoBandwidthGroupForDevice_TO_OBJ(obj) COM_FORWARD_IMachine_SetNoBandwidthGroupForDevice_TO ((obj)->)
#define COM_FORWARD_IMachine_SetNoBandwidthGroupForDevice_TO_BASE(base) COM_FORWARD_IMachine_SetNoBandwidthGroupForDevice_TO (base::)
#define COM_FORWARD_IMachine_UnmountMedium_TO(smth) NS_IMETHOD UnmountMedium (PRUnichar * aName, PRInt32 aControllerPort, PRInt32 aDevice, PRBool aForce) { return smth UnmountMedium (aName, aControllerPort, aDevice, aForce); }
#define COM_FORWARD_IMachine_UnmountMedium_TO_OBJ(obj) COM_FORWARD_IMachine_UnmountMedium_TO ((obj)->)
#define COM_FORWARD_IMachine_UnmountMedium_TO_BASE(base) COM_FORWARD_IMachine_UnmountMedium_TO (base::)
#define COM_FORWARD_IMachine_MountMedium_TO(smth) NS_IMETHOD MountMedium (PRUnichar * aName, PRInt32 aControllerPort, PRInt32 aDevice, IMedium * aMedium, PRBool aForce) { return smth MountMedium (aName, aControllerPort, aDevice, aMedium, aForce); }
#define COM_FORWARD_IMachine_MountMedium_TO_OBJ(obj) COM_FORWARD_IMachine_MountMedium_TO ((obj)->)
#define COM_FORWARD_IMachine_MountMedium_TO_BASE(base) COM_FORWARD_IMachine_MountMedium_TO (base::)
#define COM_FORWARD_IMachine_GetMedium_TO(smth) NS_IMETHOD GetMedium (PRUnichar * aName, PRInt32 aControllerPort, PRInt32 aDevice, IMedium * * aMedium) { return smth GetMedium (aName, aControllerPort, aDevice, aMedium); }
#define COM_FORWARD_IMachine_GetMedium_TO_OBJ(obj) COM_FORWARD_IMachine_GetMedium_TO ((obj)->)
#define COM_FORWARD_IMachine_GetMedium_TO_BASE(base) COM_FORWARD_IMachine_GetMedium_TO (base::)
#define COM_FORWARD_IMachine_GetMediumAttachmentsOfController_TO(smth) NS_IMETHOD GetMediumAttachmentsOfController (PRUnichar * aName, PRUint32 * aMediumAttachmentsSize, IMediumAttachment * * * aMediumAttachments) { return smth GetMediumAttachmentsOfController (aName, aMediumAttachmentsSize, aMediumAttachments); }
#define COM_FORWARD_IMachine_GetMediumAttachmentsOfController_TO_OBJ(obj) COM_FORWARD_IMachine_GetMediumAttachmentsOfController_TO ((obj)->)
#define COM_FORWARD_IMachine_GetMediumAttachmentsOfController_TO_BASE(base) COM_FORWARD_IMachine_GetMediumAttachmentsOfController_TO (base::)
#define COM_FORWARD_IMachine_GetMediumAttachment_TO(smth) NS_IMETHOD GetMediumAttachment (PRUnichar * aName, PRInt32 aControllerPort, PRInt32 aDevice, IMediumAttachment * * aAttachment) { return smth GetMediumAttachment (aName, aControllerPort, aDevice, aAttachment); }
#define COM_FORWARD_IMachine_GetMediumAttachment_TO_OBJ(obj) COM_FORWARD_IMachine_GetMediumAttachment_TO ((obj)->)
#define COM_FORWARD_IMachine_GetMediumAttachment_TO_BASE(base) COM_FORWARD_IMachine_GetMediumAttachment_TO (base::)
#define COM_FORWARD_IMachine_AttachHostPCIDevice_TO(smth) NS_IMETHOD AttachHostPCIDevice (PRInt32 aHostAddress, PRInt32 aDesiredGuestAddress, PRBool aTryToUnbind) { return smth AttachHostPCIDevice (aHostAddress, aDesiredGuestAddress, aTryToUnbind); }
#define COM_FORWARD_IMachine_AttachHostPCIDevice_TO_OBJ(obj) COM_FORWARD_IMachine_AttachHostPCIDevice_TO ((obj)->)
#define COM_FORWARD_IMachine_AttachHostPCIDevice_TO_BASE(base) COM_FORWARD_IMachine_AttachHostPCIDevice_TO (base::)
#define COM_FORWARD_IMachine_DetachHostPCIDevice_TO(smth) NS_IMETHOD DetachHostPCIDevice (PRInt32 aHostAddress) { return smth DetachHostPCIDevice (aHostAddress); }
#define COM_FORWARD_IMachine_DetachHostPCIDevice_TO_OBJ(obj) COM_FORWARD_IMachine_DetachHostPCIDevice_TO ((obj)->)
#define COM_FORWARD_IMachine_DetachHostPCIDevice_TO_BASE(base) COM_FORWARD_IMachine_DetachHostPCIDevice_TO (base::)
#define COM_FORWARD_IMachine_GetNetworkAdapter_TO(smth) NS_IMETHOD GetNetworkAdapter (PRUint32 aSlot, INetworkAdapter * * aAdapter) { return smth GetNetworkAdapter (aSlot, aAdapter); }
#define COM_FORWARD_IMachine_GetNetworkAdapter_TO_OBJ(obj) COM_FORWARD_IMachine_GetNetworkAdapter_TO ((obj)->)
#define COM_FORWARD_IMachine_GetNetworkAdapter_TO_BASE(base) COM_FORWARD_IMachine_GetNetworkAdapter_TO (base::)
#define COM_FORWARD_IMachine_AddStorageController_TO(smth) NS_IMETHOD AddStorageController (PRUnichar * aName, PRUint32 aConnectionType, IStorageController * * aController) { return smth AddStorageController (aName, aConnectionType, aController); }
#define COM_FORWARD_IMachine_AddStorageController_TO_OBJ(obj) COM_FORWARD_IMachine_AddStorageController_TO ((obj)->)
#define COM_FORWARD_IMachine_AddStorageController_TO_BASE(base) COM_FORWARD_IMachine_AddStorageController_TO (base::)
#define COM_FORWARD_IMachine_GetStorageControllerByName_TO(smth) NS_IMETHOD GetStorageControllerByName (PRUnichar * aName, IStorageController * * aStorageController) { return smth GetStorageControllerByName (aName, aStorageController); }
#define COM_FORWARD_IMachine_GetStorageControllerByName_TO_OBJ(obj) COM_FORWARD_IMachine_GetStorageControllerByName_TO ((obj)->)
#define COM_FORWARD_IMachine_GetStorageControllerByName_TO_BASE(base) COM_FORWARD_IMachine_GetStorageControllerByName_TO (base::)
#define COM_FORWARD_IMachine_GetStorageControllerByInstance_TO(smth) NS_IMETHOD GetStorageControllerByInstance (PRUint32 aConnectionType, PRUint32 aInstance, IStorageController * * aStorageController) { return smth GetStorageControllerByInstance (aConnectionType, aInstance, aStorageController); }
#define COM_FORWARD_IMachine_GetStorageControllerByInstance_TO_OBJ(obj) COM_FORWARD_IMachine_GetStorageControllerByInstance_TO ((obj)->)
#define COM_FORWARD_IMachine_GetStorageControllerByInstance_TO_BASE(base) COM_FORWARD_IMachine_GetStorageControllerByInstance_TO (base::)
#define COM_FORWARD_IMachine_RemoveStorageController_TO(smth) NS_IMETHOD RemoveStorageController (PRUnichar * aName) { return smth RemoveStorageController (aName); }
#define COM_FORWARD_IMachine_RemoveStorageController_TO_OBJ(obj) COM_FORWARD_IMachine_RemoveStorageController_TO ((obj)->)
#define COM_FORWARD_IMachine_RemoveStorageController_TO_BASE(base) COM_FORWARD_IMachine_RemoveStorageController_TO (base::)
#define COM_FORWARD_IMachine_SetStorageControllerBootable_TO(smth) NS_IMETHOD SetStorageControllerBootable (PRUnichar * aName, PRBool aBootable) { return smth SetStorageControllerBootable (aName, aBootable); }
#define COM_FORWARD_IMachine_SetStorageControllerBootable_TO_OBJ(obj) COM_FORWARD_IMachine_SetStorageControllerBootable_TO ((obj)->)
#define COM_FORWARD_IMachine_SetStorageControllerBootable_TO_BASE(base) COM_FORWARD_IMachine_SetStorageControllerBootable_TO (base::)
#define COM_FORWARD_IMachine_AddUSBController_TO(smth) NS_IMETHOD AddUSBController (PRUnichar * aName, PRUint32 aType, IUSBController * * aController) { return smth AddUSBController (aName, aType, aController); }
#define COM_FORWARD_IMachine_AddUSBController_TO_OBJ(obj) COM_FORWARD_IMachine_AddUSBController_TO ((obj)->)
#define COM_FORWARD_IMachine_AddUSBController_TO_BASE(base) COM_FORWARD_IMachine_AddUSBController_TO (base::)
#define COM_FORWARD_IMachine_RemoveUSBController_TO(smth) NS_IMETHOD RemoveUSBController (PRUnichar * aName) { return smth RemoveUSBController (aName); }
#define COM_FORWARD_IMachine_RemoveUSBController_TO_OBJ(obj) COM_FORWARD_IMachine_RemoveUSBController_TO ((obj)->)
#define COM_FORWARD_IMachine_RemoveUSBController_TO_BASE(base) COM_FORWARD_IMachine_RemoveUSBController_TO (base::)
#define COM_FORWARD_IMachine_GetUSBControllerByName_TO(smth) NS_IMETHOD GetUSBControllerByName (PRUnichar * aName, IUSBController * * aController) { return smth GetUSBControllerByName (aName, aController); }
#define COM_FORWARD_IMachine_GetUSBControllerByName_TO_OBJ(obj) COM_FORWARD_IMachine_GetUSBControllerByName_TO ((obj)->)
#define COM_FORWARD_IMachine_GetUSBControllerByName_TO_BASE(base) COM_FORWARD_IMachine_GetUSBControllerByName_TO (base::)
#define COM_FORWARD_IMachine_GetUSBControllerCountByType_TO(smth) NS_IMETHOD GetUSBControllerCountByType (PRUint32 aType, PRUint32 * aControllers) { return smth GetUSBControllerCountByType (aType, aControllers); }
#define COM_FORWARD_IMachine_GetUSBControllerCountByType_TO_OBJ(obj) COM_FORWARD_IMachine_GetUSBControllerCountByType_TO ((obj)->)
#define COM_FORWARD_IMachine_GetUSBControllerCountByType_TO_BASE(base) COM_FORWARD_IMachine_GetUSBControllerCountByType_TO (base::)
#define COM_FORWARD_IMachine_GetSerialPort_TO(smth) NS_IMETHOD GetSerialPort (PRUint32 aSlot, ISerialPort * * aPort) { return smth GetSerialPort (aSlot, aPort); }
#define COM_FORWARD_IMachine_GetSerialPort_TO_OBJ(obj) COM_FORWARD_IMachine_GetSerialPort_TO ((obj)->)
#define COM_FORWARD_IMachine_GetSerialPort_TO_BASE(base) COM_FORWARD_IMachine_GetSerialPort_TO (base::)
#define COM_FORWARD_IMachine_GetParallelPort_TO(smth) NS_IMETHOD GetParallelPort (PRUint32 aSlot, IParallelPort * * aPort) { return smth GetParallelPort (aSlot, aPort); }
#define COM_FORWARD_IMachine_GetParallelPort_TO_OBJ(obj) COM_FORWARD_IMachine_GetParallelPort_TO ((obj)->)
#define COM_FORWARD_IMachine_GetParallelPort_TO_BASE(base) COM_FORWARD_IMachine_GetParallelPort_TO (base::)
#define COM_FORWARD_IMachine_GetExtraDataKeys_TO(smth) NS_IMETHOD GetExtraDataKeys (PRUint32 * aKeysSize, PRUnichar * * * aKeys) { return smth GetExtraDataKeys (aKeysSize, aKeys); }
#define COM_FORWARD_IMachine_GetExtraDataKeys_TO_OBJ(obj) COM_FORWARD_IMachine_GetExtraDataKeys_TO ((obj)->)
#define COM_FORWARD_IMachine_GetExtraDataKeys_TO_BASE(base) COM_FORWARD_IMachine_GetExtraDataKeys_TO (base::)
#define COM_FORWARD_IMachine_GetExtraData_TO(smth) NS_IMETHOD GetExtraData (PRUnichar * aKey, PRUnichar * * aValue) { return smth GetExtraData (aKey, aValue); }
#define COM_FORWARD_IMachine_GetExtraData_TO_OBJ(obj) COM_FORWARD_IMachine_GetExtraData_TO ((obj)->)
#define COM_FORWARD_IMachine_GetExtraData_TO_BASE(base) COM_FORWARD_IMachine_GetExtraData_TO (base::)
#define COM_FORWARD_IMachine_SetExtraData_TO(smth) NS_IMETHOD SetExtraData (PRUnichar * aKey, PRUnichar * aValue) { return smth SetExtraData (aKey, aValue); }
#define COM_FORWARD_IMachine_SetExtraData_TO_OBJ(obj) COM_FORWARD_IMachine_SetExtraData_TO ((obj)->)
#define COM_FORWARD_IMachine_SetExtraData_TO_BASE(base) COM_FORWARD_IMachine_SetExtraData_TO (base::)
#define COM_FORWARD_IMachine_SetSettingsFilePath_TO(smth) NS_IMETHOD SetSettingsFilePath (PRUnichar * aSettingsFilePath, IProgress * * aProgress) { return smth SetSettingsFilePath (aSettingsFilePath, aProgress); }
#define COM_FORWARD_IMachine_SetSettingsFilePath_TO_OBJ(obj) COM_FORWARD_IMachine_SetSettingsFilePath_TO ((obj)->)
#define COM_FORWARD_IMachine_SetSettingsFilePath_TO_BASE(base) COM_FORWARD_IMachine_SetSettingsFilePath_TO (base::)
#define COM_FORWARD_IMachine_SaveSettings_TO(smth) NS_IMETHOD SaveSettings() { return smth SaveSettings(); }
#define COM_FORWARD_IMachine_SaveSettings_TO_OBJ(obj) COM_FORWARD_IMachine_SaveSettings_TO ((obj)->)
#define COM_FORWARD_IMachine_SaveSettings_TO_BASE(base) COM_FORWARD_IMachine_SaveSettings_TO (base::)
#define COM_FORWARD_IMachine_DiscardSettings_TO(smth) NS_IMETHOD DiscardSettings() { return smth DiscardSettings(); }
#define COM_FORWARD_IMachine_DiscardSettings_TO_OBJ(obj) COM_FORWARD_IMachine_DiscardSettings_TO ((obj)->)
#define COM_FORWARD_IMachine_DiscardSettings_TO_BASE(base) COM_FORWARD_IMachine_DiscardSettings_TO (base::)
#define COM_FORWARD_IMachine_Unregister_TO(smth) NS_IMETHOD Unregister (PRUint32 aCleanupMode, PRUint32 * aMediaSize, IMedium * * * aMedia) { return smth Unregister (aCleanupMode, aMediaSize, aMedia); }
#define COM_FORWARD_IMachine_Unregister_TO_OBJ(obj) COM_FORWARD_IMachine_Unregister_TO ((obj)->)
#define COM_FORWARD_IMachine_Unregister_TO_BASE(base) COM_FORWARD_IMachine_Unregister_TO (base::)
#define COM_FORWARD_IMachine_DeleteConfig_TO(smth) NS_IMETHOD DeleteConfig (PRUint32 aMediaSize, IMedium * * aMedia, IProgress * * aProgress) { return smth DeleteConfig (aMediaSize+++, aMedia, aProgress); }
#define COM_FORWARD_IMachine_DeleteConfig_TO_OBJ(obj) COM_FORWARD_IMachine_DeleteConfig_TO ((obj)->)
#define COM_FORWARD_IMachine_DeleteConfig_TO_BASE(base) COM_FORWARD_IMachine_DeleteConfig_TO (base::)
#define COM_FORWARD_IMachine_ExportTo_TO(smth) NS_IMETHOD ExportTo (IAppliance * aAppliance, PRUnichar * aLocation, IVirtualSystemDescription * * aDescription) { return smth ExportTo (aAppliance, aLocation, aDescription); }
#define COM_FORWARD_IMachine_ExportTo_TO_OBJ(obj) COM_FORWARD_IMachine_ExportTo_TO ((obj)->)
#define COM_FORWARD_IMachine_ExportTo_TO_BASE(base) COM_FORWARD_IMachine_ExportTo_TO (base::)
#define COM_FORWARD_IMachine_FindSnapshot_TO(smth) NS_IMETHOD FindSnapshot (PRUnichar * aNameOrId, ISnapshot * * aSnapshot) { return smth FindSnapshot (aNameOrId, aSnapshot); }
#define COM_FORWARD_IMachine_FindSnapshot_TO_OBJ(obj) COM_FORWARD_IMachine_FindSnapshot_TO ((obj)->)
#define COM_FORWARD_IMachine_FindSnapshot_TO_BASE(base) COM_FORWARD_IMachine_FindSnapshot_TO (base::)
#define COM_FORWARD_IMachine_CreateSharedFolder_TO(smth) NS_IMETHOD CreateSharedFolder (PRUnichar * aName, PRUnichar * aHostPath, PRBool aWritable, PRBool aAutomount, PRUnichar * aAutoMountPoint) { return smth CreateSharedFolder (aName, aHostPath, aWritable, aAutomount, aAutoMountPoint); }
#define COM_FORWARD_IMachine_CreateSharedFolder_TO_OBJ(obj) COM_FORWARD_IMachine_CreateSharedFolder_TO ((obj)->)
#define COM_FORWARD_IMachine_CreateSharedFolder_TO_BASE(base) COM_FORWARD_IMachine_CreateSharedFolder_TO (base::)
#define COM_FORWARD_IMachine_RemoveSharedFolder_TO(smth) NS_IMETHOD RemoveSharedFolder (PRUnichar * aName) { return smth RemoveSharedFolder (aName); }
#define COM_FORWARD_IMachine_RemoveSharedFolder_TO_OBJ(obj) COM_FORWARD_IMachine_RemoveSharedFolder_TO ((obj)->)
#define COM_FORWARD_IMachine_RemoveSharedFolder_TO_BASE(base) COM_FORWARD_IMachine_RemoveSharedFolder_TO (base::)
#define COM_FORWARD_IMachine_CanShowConsoleWindow_TO(smth) NS_IMETHOD CanShowConsoleWindow (PRBool * aCanShow) { return smth CanShowConsoleWindow (aCanShow); }
#define COM_FORWARD_IMachine_CanShowConsoleWindow_TO_OBJ(obj) COM_FORWARD_IMachine_CanShowConsoleWindow_TO ((obj)->)
#define COM_FORWARD_IMachine_CanShowConsoleWindow_TO_BASE(base) COM_FORWARD_IMachine_CanShowConsoleWindow_TO (base::)
#define COM_FORWARD_IMachine_ShowConsoleWindow_TO(smth) NS_IMETHOD ShowConsoleWindow (PRInt64 * aWinId) { return smth ShowConsoleWindow (aWinId); }
#define COM_FORWARD_IMachine_ShowConsoleWindow_TO_OBJ(obj) COM_FORWARD_IMachine_ShowConsoleWindow_TO ((obj)->)
#define COM_FORWARD_IMachine_ShowConsoleWindow_TO_BASE(base) COM_FORWARD_IMachine_ShowConsoleWindow_TO (base::)
#define COM_FORWARD_IMachine_GetGuestProperty_TO(smth) NS_IMETHOD GetGuestProperty (PRUnichar * aName, PRUnichar * * aValue, PRInt64 * aTimestamp, PRUnichar * * aFlags) { return smth GetGuestProperty (aName, aValue, aTimestamp, aFlags); }
#define COM_FORWARD_IMachine_GetGuestProperty_TO_OBJ(obj) COM_FORWARD_IMachine_GetGuestProperty_TO ((obj)->)
#define COM_FORWARD_IMachine_GetGuestProperty_TO_BASE(base) COM_FORWARD_IMachine_GetGuestProperty_TO (base::)
#define COM_FORWARD_IMachine_GetGuestPropertyValue_TO(smth) NS_IMETHOD GetGuestPropertyValue (PRUnichar * aProperty, PRUnichar * * aValue) { return smth GetGuestPropertyValue (aProperty, aValue); }
#define COM_FORWARD_IMachine_GetGuestPropertyValue_TO_OBJ(obj) COM_FORWARD_IMachine_GetGuestPropertyValue_TO ((obj)->)
#define COM_FORWARD_IMachine_GetGuestPropertyValue_TO_BASE(base) COM_FORWARD_IMachine_GetGuestPropertyValue_TO (base::)
#define COM_FORWARD_IMachine_GetGuestPropertyTimestamp_TO(smth) NS_IMETHOD GetGuestPropertyTimestamp (PRUnichar * aProperty, PRInt64 * aValue) { return smth GetGuestPropertyTimestamp (aProperty, aValue); }
#define COM_FORWARD_IMachine_GetGuestPropertyTimestamp_TO_OBJ(obj) COM_FORWARD_IMachine_GetGuestPropertyTimestamp_TO ((obj)->)
#define COM_FORWARD_IMachine_GetGuestPropertyTimestamp_TO_BASE(base) COM_FORWARD_IMachine_GetGuestPropertyTimestamp_TO (base::)
#define COM_FORWARD_IMachine_SetGuestProperty_TO(smth) NS_IMETHOD SetGuestProperty (PRUnichar * aProperty, PRUnichar * aValue, PRUnichar * aFlags) { return smth SetGuestProperty (aProperty, aValue, aFlags); }
#define COM_FORWARD_IMachine_SetGuestProperty_TO_OBJ(obj) COM_FORWARD_IMachine_SetGuestProperty_TO ((obj)->)
#define COM_FORWARD_IMachine_SetGuestProperty_TO_BASE(base) COM_FORWARD_IMachine_SetGuestProperty_TO (base::)
#define COM_FORWARD_IMachine_SetGuestPropertyValue_TO(smth) NS_IMETHOD SetGuestPropertyValue (PRUnichar * aProperty, PRUnichar * aValue) { return smth SetGuestPropertyValue (aProperty, aValue); }
#define COM_FORWARD_IMachine_SetGuestPropertyValue_TO_OBJ(obj) COM_FORWARD_IMachine_SetGuestPropertyValue_TO ((obj)->)
#define COM_FORWARD_IMachine_SetGuestPropertyValue_TO_BASE(base) COM_FORWARD_IMachine_SetGuestPropertyValue_TO (base::)
#define COM_FORWARD_IMachine_DeleteGuestProperty_TO(smth) NS_IMETHOD DeleteGuestProperty (PRUnichar * aName) { return smth DeleteGuestProperty (aName); }
#define COM_FORWARD_IMachine_DeleteGuestProperty_TO_OBJ(obj) COM_FORWARD_IMachine_DeleteGuestProperty_TO ((obj)->)
#define COM_FORWARD_IMachine_DeleteGuestProperty_TO_BASE(base) COM_FORWARD_IMachine_DeleteGuestProperty_TO (base::)
#define COM_FORWARD_IMachine_EnumerateGuestProperties_TO(smth) NS_IMETHOD EnumerateGuestProperties (PRUnichar * aPatterns, PRUint32 * aNamesSize, PRUnichar * * * aNames, PRUint32 * aValuesSize, PRUnichar * * * aValues, PRUint32 * aTimestampsSize, PRInt64 * * aTimestamps, PRUint32 * aFlagsSize, PRUnichar * * * aFlags) { return smth EnumerateGuestProperties (aPatterns, aNamesSize+++, aNames, aValuesSize+++, aValues, aTimestampsSize+++, aTimestamps, aFlagsSize, aFlags); }
#define COM_FORWARD_IMachine_EnumerateGuestProperties_TO_OBJ(obj) COM_FORWARD_IMachine_EnumerateGuestProperties_TO ((obj)->)
#define COM_FORWARD_IMachine_EnumerateGuestProperties_TO_BASE(base) COM_FORWARD_IMachine_EnumerateGuestProperties_TO (base::)
#define COM_FORWARD_IMachine_QuerySavedGuestScreenInfo_TO(smth) NS_IMETHOD QuerySavedGuestScreenInfo (PRUint32 aScreenId, PRUint32 * aOriginX, PRUint32 * aOriginY, PRUint32 * aWidth, PRUint32 * aHeight, PRBool * aEnabled) { return smth QuerySavedGuestScreenInfo (aScreenId, aOriginX, aOriginY, aWidth, aHeight, aEnabled); }
#define COM_FORWARD_IMachine_QuerySavedGuestScreenInfo_TO_OBJ(obj) COM_FORWARD_IMachine_QuerySavedGuestScreenInfo_TO ((obj)->)
#define COM_FORWARD_IMachine_QuerySavedGuestScreenInfo_TO_BASE(base) COM_FORWARD_IMachine_QuerySavedGuestScreenInfo_TO (base::)
#define COM_FORWARD_IMachine_ReadSavedThumbnailToArray_TO(smth) NS_IMETHOD ReadSavedThumbnailToArray (PRUint32 aScreenId, PRUint32 aBitmapFormat, PRUint32 * aWidth, PRUint32 * aHeight, PRUint32 * aDataSize, PRUint8 * * aData) { return smth ReadSavedThumbnailToArray (aScreenId, aBitmapFormat, aWidth, aHeight, aDataSize, aData); }
#define COM_FORWARD_IMachine_ReadSavedThumbnailToArray_TO_OBJ(obj) COM_FORWARD_IMachine_ReadSavedThumbnailToArray_TO ((obj)->)
#define COM_FORWARD_IMachine_ReadSavedThumbnailToArray_TO_BASE(base) COM_FORWARD_IMachine_ReadSavedThumbnailToArray_TO (base::)
#define COM_FORWARD_IMachine_QuerySavedScreenshotInfo_TO(smth) NS_IMETHOD QuerySavedScreenshotInfo (PRUint32 aScreenId, PRUint32 * aWidth, PRUint32 * aHeight, PRUint32 * aBitmapFormatsSize, PRUint32 * * aBitmapFormats) { return smth QuerySavedScreenshotInfo (aScreenId, aWidth, aHeight, aBitmapFormatsSize, aBitmapFormats); }
#define COM_FORWARD_IMachine_QuerySavedScreenshotInfo_TO_OBJ(obj) COM_FORWARD_IMachine_QuerySavedScreenshotInfo_TO ((obj)->)
#define COM_FORWARD_IMachine_QuerySavedScreenshotInfo_TO_BASE(base) COM_FORWARD_IMachine_QuerySavedScreenshotInfo_TO (base::)
#define COM_FORWARD_IMachine_ReadSavedScreenshotToArray_TO(smth) NS_IMETHOD ReadSavedScreenshotToArray (PRUint32 aScreenId, PRUint32 aBitmapFormat, PRUint32 * aWidth, PRUint32 * aHeight, PRUint32 * aDataSize, PRUint8 * * aData) { return smth ReadSavedScreenshotToArray (aScreenId, aBitmapFormat, aWidth, aHeight, aDataSize, aData); }
#define COM_FORWARD_IMachine_ReadSavedScreenshotToArray_TO_OBJ(obj) COM_FORWARD_IMachine_ReadSavedScreenshotToArray_TO ((obj)->)
#define COM_FORWARD_IMachine_ReadSavedScreenshotToArray_TO_BASE(base) COM_FORWARD_IMachine_ReadSavedScreenshotToArray_TO (base::)
#define COM_FORWARD_IMachine_HotPlugCPU_TO(smth) NS_IMETHOD HotPlugCPU (PRUint32 aCpu) { return smth HotPlugCPU (aCpu); }
#define COM_FORWARD_IMachine_HotPlugCPU_TO_OBJ(obj) COM_FORWARD_IMachine_HotPlugCPU_TO ((obj)->)
#define COM_FORWARD_IMachine_HotPlugCPU_TO_BASE(base) COM_FORWARD_IMachine_HotPlugCPU_TO (base::)
#define COM_FORWARD_IMachine_HotUnplugCPU_TO(smth) NS_IMETHOD HotUnplugCPU (PRUint32 aCpu) { return smth HotUnplugCPU (aCpu); }
#define COM_FORWARD_IMachine_HotUnplugCPU_TO_OBJ(obj) COM_FORWARD_IMachine_HotUnplugCPU_TO ((obj)->)
#define COM_FORWARD_IMachine_HotUnplugCPU_TO_BASE(base) COM_FORWARD_IMachine_HotUnplugCPU_TO (base::)
#define COM_FORWARD_IMachine_GetCPUStatus_TO(smth) NS_IMETHOD GetCPUStatus (PRUint32 aCpu, PRBool * aAttached) { return smth GetCPUStatus (aCpu, aAttached); }
#define COM_FORWARD_IMachine_GetCPUStatus_TO_OBJ(obj) COM_FORWARD_IMachine_GetCPUStatus_TO ((obj)->)
#define COM_FORWARD_IMachine_GetCPUStatus_TO_BASE(base) COM_FORWARD_IMachine_GetCPUStatus_TO (base::)
#define COM_FORWARD_IMachine_GetEffectiveParavirtProvider_TO(smth) NS_IMETHOD GetEffectiveParavirtProvider (PRUint32 * aParavirtProvider) { return smth GetEffectiveParavirtProvider (aParavirtProvider); }
#define COM_FORWARD_IMachine_GetEffectiveParavirtProvider_TO_OBJ(obj) COM_FORWARD_IMachine_GetEffectiveParavirtProvider_TO ((obj)->)
#define COM_FORWARD_IMachine_GetEffectiveParavirtProvider_TO_BASE(base) COM_FORWARD_IMachine_GetEffectiveParavirtProvider_TO (base::)
#define COM_FORWARD_IMachine_QueryLogFilename_TO(smth) NS_IMETHOD QueryLogFilename (PRUint32 aIdx, PRUnichar * * aFilename) { return smth QueryLogFilename (aIdx, aFilename); }
#define COM_FORWARD_IMachine_QueryLogFilename_TO_OBJ(obj) COM_FORWARD_IMachine_QueryLogFilename_TO ((obj)->)
#define COM_FORWARD_IMachine_QueryLogFilename_TO_BASE(base) COM_FORWARD_IMachine_QueryLogFilename_TO (base::)
#define COM_FORWARD_IMachine_ReadLog_TO(smth) NS_IMETHOD ReadLog (PRUint32 aIdx, PRInt64 aOffset, PRInt64 aSize, PRUint32 * aDataSize, PRUint8 * * aData) { return smth ReadLog (aIdx, aOffset, aSize, aDataSize, aData); }
#define COM_FORWARD_IMachine_ReadLog_TO_OBJ(obj) COM_FORWARD_IMachine_ReadLog_TO ((obj)->)
#define COM_FORWARD_IMachine_ReadLog_TO_BASE(base) COM_FORWARD_IMachine_ReadLog_TO (base::)
#define COM_FORWARD_IMachine_CloneTo_TO(smth) NS_IMETHOD CloneTo (IMachine * aTarget, PRUint32 aMode, PRUint32 aOptionsSize, PRUint32 * aOptions, IProgress * * aProgress) { return smth CloneTo (aTarget, aMode, aOptionsSize+++, aOptions, aProgress); }
#define COM_FORWARD_IMachine_CloneTo_TO_OBJ(obj) COM_FORWARD_IMachine_CloneTo_TO ((obj)->)
#define COM_FORWARD_IMachine_CloneTo_TO_BASE(base) COM_FORWARD_IMachine_CloneTo_TO (base::)
#define COM_FORWARD_IMachine_MoveTo_TO(smth) NS_IMETHOD MoveTo (PRUnichar * aFolder, PRUnichar * aType, IProgress * * aProgress) { return smth MoveTo (aFolder, aType, aProgress); }
#define COM_FORWARD_IMachine_MoveTo_TO_OBJ(obj) COM_FORWARD_IMachine_MoveTo_TO ((obj)->)
#define COM_FORWARD_IMachine_MoveTo_TO_BASE(base) COM_FORWARD_IMachine_MoveTo_TO (base::)
#define COM_FORWARD_IMachine_SaveState_TO(smth) NS_IMETHOD SaveState (IProgress * * aProgress) { return smth SaveState (aProgress); }
#define COM_FORWARD_IMachine_SaveState_TO_OBJ(obj) COM_FORWARD_IMachine_SaveState_TO ((obj)->)
#define COM_FORWARD_IMachine_SaveState_TO_BASE(base) COM_FORWARD_IMachine_SaveState_TO (base::)
#define COM_FORWARD_IMachine_AdoptSavedState_TO(smth) NS_IMETHOD AdoptSavedState (PRUnichar * aSavedStateFile) { return smth AdoptSavedState (aSavedStateFile); }
#define COM_FORWARD_IMachine_AdoptSavedState_TO_OBJ(obj) COM_FORWARD_IMachine_AdoptSavedState_TO ((obj)->)
#define COM_FORWARD_IMachine_AdoptSavedState_TO_BASE(base) COM_FORWARD_IMachine_AdoptSavedState_TO (base::)
#define COM_FORWARD_IMachine_DiscardSavedState_TO(smth) NS_IMETHOD DiscardSavedState (PRBool aFRemoveFile) { return smth DiscardSavedState (aFRemoveFile); }
#define COM_FORWARD_IMachine_DiscardSavedState_TO_OBJ(obj) COM_FORWARD_IMachine_DiscardSavedState_TO ((obj)->)
#define COM_FORWARD_IMachine_DiscardSavedState_TO_BASE(base) COM_FORWARD_IMachine_DiscardSavedState_TO (base::)
#define COM_FORWARD_IMachine_TakeSnapshot_TO(smth) NS_IMETHOD TakeSnapshot (PRUnichar * aName, PRUnichar * aDescription, PRBool aPause, PRUnichar * * aId, IProgress * * aProgress) { return smth TakeSnapshot (aName, aDescription, aPause, aId, aProgress); }
#define COM_FORWARD_IMachine_TakeSnapshot_TO_OBJ(obj) COM_FORWARD_IMachine_TakeSnapshot_TO ((obj)->)
#define COM_FORWARD_IMachine_TakeSnapshot_TO_BASE(base) COM_FORWARD_IMachine_TakeSnapshot_TO (base::)
#define COM_FORWARD_IMachine_DeleteSnapshot_TO(smth) NS_IMETHOD DeleteSnapshot (PRUnichar * aId, IProgress * * aProgress) { return smth DeleteSnapshot (aId, aProgress); }
#define COM_FORWARD_IMachine_DeleteSnapshot_TO_OBJ(obj) COM_FORWARD_IMachine_DeleteSnapshot_TO ((obj)->)
#define COM_FORWARD_IMachine_DeleteSnapshot_TO_BASE(base) COM_FORWARD_IMachine_DeleteSnapshot_TO (base::)
#define COM_FORWARD_IMachine_DeleteSnapshotAndAllChildren_TO(smth) NS_IMETHOD DeleteSnapshotAndAllChildren (PRUnichar * aId, IProgress * * aProgress) { return smth DeleteSnapshotAndAllChildren (aId, aProgress); }
#define COM_FORWARD_IMachine_DeleteSnapshotAndAllChildren_TO_OBJ(obj) COM_FORWARD_IMachine_DeleteSnapshotAndAllChildren_TO ((obj)->)
#define COM_FORWARD_IMachine_DeleteSnapshotAndAllChildren_TO_BASE(base) COM_FORWARD_IMachine_DeleteSnapshotAndAllChildren_TO (base::)
#define COM_FORWARD_IMachine_DeleteSnapshotRange_TO(smth) NS_IMETHOD DeleteSnapshotRange (PRUnichar * aStartId, PRUnichar * aEndId, IProgress * * aProgress) { return smth DeleteSnapshotRange (aStartId, aEndId, aProgress); }
#define COM_FORWARD_IMachine_DeleteSnapshotRange_TO_OBJ(obj) COM_FORWARD_IMachine_DeleteSnapshotRange_TO ((obj)->)
#define COM_FORWARD_IMachine_DeleteSnapshotRange_TO_BASE(base) COM_FORWARD_IMachine_DeleteSnapshotRange_TO (base::)
#define COM_FORWARD_IMachine_RestoreSnapshot_TO(smth) NS_IMETHOD RestoreSnapshot (ISnapshot * aSnapshot, IProgress * * aProgress) { return smth RestoreSnapshot (aSnapshot, aProgress); }
#define COM_FORWARD_IMachine_RestoreSnapshot_TO_OBJ(obj) COM_FORWARD_IMachine_RestoreSnapshot_TO ((obj)->)
#define COM_FORWARD_IMachine_RestoreSnapshot_TO_BASE(base) COM_FORWARD_IMachine_RestoreSnapshot_TO (base::)
#define COM_FORWARD_IMachine_ApplyDefaults_TO(smth) NS_IMETHOD ApplyDefaults (PRUnichar * aFlags) { return smth ApplyDefaults (aFlags); }
#define COM_FORWARD_IMachine_ApplyDefaults_TO_OBJ(obj) COM_FORWARD_IMachine_ApplyDefaults_TO ((obj)->)
#define COM_FORWARD_IMachine_ApplyDefaults_TO_BASE(base) COM_FORWARD_IMachine_ApplyDefaults_TO (base::)
#define COM_FORWARD_IMachine_ChangeEncryption_TO(smth) NS_IMETHOD ChangeEncryption (PRUnichar * aCurrentPassword, PRUnichar * aCipher, PRUnichar * aNewPassword, PRUnichar * aNewPasswordId, PRBool aForce, IProgress * * aProgress) { return smth ChangeEncryption (aCurrentPassword, aCipher, aNewPassword, aNewPasswordId, aForce, aProgress); }
#define COM_FORWARD_IMachine_ChangeEncryption_TO_OBJ(obj) COM_FORWARD_IMachine_ChangeEncryption_TO ((obj)->)
#define COM_FORWARD_IMachine_ChangeEncryption_TO_BASE(base) COM_FORWARD_IMachine_ChangeEncryption_TO (base::)
#define COM_FORWARD_IMachine_GetEncryptionSettings_TO(smth) NS_IMETHOD GetEncryptionSettings (PRUnichar * * aCipher, PRUnichar * * aPasswordId) { return smth GetEncryptionSettings (aCipher, aPasswordId); }
#define COM_FORWARD_IMachine_GetEncryptionSettings_TO_OBJ(obj) COM_FORWARD_IMachine_GetEncryptionSettings_TO ((obj)->)
#define COM_FORWARD_IMachine_GetEncryptionSettings_TO_BASE(base) COM_FORWARD_IMachine_GetEncryptionSettings_TO (base::)
#define COM_FORWARD_IMachine_CheckEncryptionPassword_TO(smth) NS_IMETHOD CheckEncryptionPassword (PRUnichar * aPassword) { return smth CheckEncryptionPassword (aPassword); }
#define COM_FORWARD_IMachine_CheckEncryptionPassword_TO_OBJ(obj) COM_FORWARD_IMachine_CheckEncryptionPassword_TO ((obj)->)
#define COM_FORWARD_IMachine_CheckEncryptionPassword_TO_BASE(base) COM_FORWARD_IMachine_CheckEncryptionPassword_TO (base::)
#define COM_FORWARD_IMachine_AddEncryptionPassword_TO(smth) NS_IMETHOD AddEncryptionPassword (PRUnichar * aId, PRUnichar * aPassword) { return smth AddEncryptionPassword (aId, aPassword); }
#define COM_FORWARD_IMachine_AddEncryptionPassword_TO_OBJ(obj) COM_FORWARD_IMachine_AddEncryptionPassword_TO ((obj)->)
#define COM_FORWARD_IMachine_AddEncryptionPassword_TO_BASE(base) COM_FORWARD_IMachine_AddEncryptionPassword_TO (base::)
#define COM_FORWARD_IMachine_AddEncryptionPasswords_TO(smth) NS_IMETHOD AddEncryptionPasswords (PRUint32 aIdsSize, PRUnichar * * aIds, PRUint32 aPasswordsSize, PRUnichar * * aPasswords) { return smth AddEncryptionPasswords (aIdsSize+++, aIds, aPasswordsSize, aPasswords); }
#define COM_FORWARD_IMachine_AddEncryptionPasswords_TO_OBJ(obj) COM_FORWARD_IMachine_AddEncryptionPasswords_TO ((obj)->)
#define COM_FORWARD_IMachine_AddEncryptionPasswords_TO_BASE(base) COM_FORWARD_IMachine_AddEncryptionPasswords_TO (base::)
#define COM_FORWARD_IMachine_RemoveEncryptionPassword_TO(smth) NS_IMETHOD RemoveEncryptionPassword (PRUnichar * aId) { return smth RemoveEncryptionPassword (aId); }
#define COM_FORWARD_IMachine_RemoveEncryptionPassword_TO_OBJ(obj) COM_FORWARD_IMachine_RemoveEncryptionPassword_TO ((obj)->)
#define COM_FORWARD_IMachine_RemoveEncryptionPassword_TO_BASE(base) COM_FORWARD_IMachine_RemoveEncryptionPassword_TO (base::)
#define COM_FORWARD_IMachine_ClearAllEncryptionPasswords_TO(smth) NS_IMETHOD ClearAllEncryptionPasswords() { return smth ClearAllEncryptionPasswords(); }
#define COM_FORWARD_IMachine_ClearAllEncryptionPasswords_TO_OBJ(obj) COM_FORWARD_IMachine_ClearAllEncryptionPasswords_TO ((obj)->)
#define COM_FORWARD_IMachine_ClearAllEncryptionPasswords_TO_BASE(base) COM_FORWARD_IMachine_ClearAllEncryptionPasswords_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_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IEmulatedUSB(PRUint32 *aInternalAndReservedAttribute1IEmulatedUSB) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IEmulatedUSB(PRUint32 *aInternalAndReservedAttribute2IEmulatedUSB) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IEmulatedUSB(PRUint32 *aInternalAndReservedAttribute3IEmulatedUSB) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IEmulatedUSB(PRUint32 *aInternalAndReservedAttribute4IEmulatedUSB) NS_OVERRIDE; \
  NS_IMETHOD WebcamAttach(const PRUnichar *path, const PRUnichar *settings) NS_OVERRIDE; \
  NS_IMETHOD WebcamDetach(const PRUnichar *path) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IEmulatedUSB(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IEmulatedUSB(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IEmulatedUSB(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IEmulatedUSB(void) NS_OVERRIDE; 

/* 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(); } 

#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_OVERRIDE; \
  NS_IMETHOD GetPort(PRInt32 *aPort) NS_OVERRIDE; \
  NS_IMETHOD GetNumberOfClients(PRUint32 *aNumberOfClients) NS_OVERRIDE; \
  NS_IMETHOD GetBeginTime(PRInt64 *aBeginTime) NS_OVERRIDE; \
  NS_IMETHOD GetEndTime(PRInt64 *aEndTime) NS_OVERRIDE; \
  NS_IMETHOD GetBytesSent(PRInt64 *aBytesSent) NS_OVERRIDE; \
  NS_IMETHOD GetBytesSentTotal(PRInt64 *aBytesSentTotal) NS_OVERRIDE; \
  NS_IMETHOD GetBytesReceived(PRInt64 *aBytesReceived) NS_OVERRIDE; \
  NS_IMETHOD GetBytesReceivedTotal(PRInt64 *aBytesReceivedTotal) NS_OVERRIDE; \
  NS_IMETHOD GetUser(PRUnichar **aUser) NS_OVERRIDE; \
  NS_IMETHOD GetDomain(PRUnichar **aDomain) NS_OVERRIDE; \
  NS_IMETHOD GetClientName(PRUnichar **aClientName) NS_OVERRIDE; \
  NS_IMETHOD GetClientIP(PRUnichar **aClientIP) NS_OVERRIDE; \
  NS_IMETHOD GetClientVersion(PRUint32 *aClientVersion) NS_OVERRIDE; \
  NS_IMETHOD GetEncryptionStyle(PRUint32 *aEncryptionStyle) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute1IVRDEServerInfo) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute2IVRDEServerInfo) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute3IVRDEServerInfo) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute4IVRDEServerInfo) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute5IVRDEServerInfo) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute6IVRDEServerInfo) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute7IVRDEServerInfo) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IVRDEServerInfo(PRUint32 *aInternalAndReservedAttribute8IVRDEServerInfo) NS_OVERRIDE; 

/* 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); } 

#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 "6ac83d89-6ee7-4e33-8ae6-b257b2e81be8"

#define ICONSOLE_IID \
  {0x6ac83d89, 0x6ee7, 0x4e33, \
    { 0x8a, 0xe6, 0xb2, 0x57, 0xb2, 0xe8, 0x1b, 0xe8 }}

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 MachineState_T state; */
  NS_IMETHOD GetState(MachineState_T *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 DeviceType_T type, out unsigned long activitySize, [array, size_is (activitySize), retval] out DeviceActivity_T activity); */
  NS_IMETHOD GetDeviceActivity(PRUint32 typeSize, DeviceType_T *type, PRUint32 *activitySize, DeviceActivity_T **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, in wstring autoMountPoint); */
  NS_IMETHOD CreateSharedFolder(const PRUnichar *name, const PRUnichar *hostPath, PRBool writable, PRBool automount, const PRUnichar *autoMountPoint) = 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 addEncryptionPassword (in wstring id, in wstring password, in boolean clearOnSuspend); */
  NS_IMETHOD AddEncryptionPassword(const PRUnichar *id, const PRUnichar *password, PRBool clearOnSuspend) = 0;

  /* void addEncryptionPasswords (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 AddEncryptionPasswords(PRUint32 idsSize, const PRUnichar **ids, PRUint32 passwordsSize, const PRUnichar **passwords, PRBool clearOnSuspend) = 0;

  /* void removeEncryptionPassword (in wstring id); */
  NS_IMETHOD RemoveEncryptionPassword(const PRUnichar *id) = 0;

  /* void clearAllEncryptionPasswords (); */
  NS_IMETHOD ClearAllEncryptionPasswords(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_OVERRIDE; \
  NS_IMETHOD GetState(MachineState_T *aState) NS_OVERRIDE; \
  NS_IMETHOD GetGuest(IGuest * *aGuest) NS_OVERRIDE; \
  NS_IMETHOD GetKeyboard(IKeyboard * *aKeyboard) NS_OVERRIDE; \
  NS_IMETHOD GetMouse(IMouse * *aMouse) NS_OVERRIDE; \
  NS_IMETHOD GetDisplay(IDisplay * *aDisplay) NS_OVERRIDE; \
  NS_IMETHOD GetDebugger(IMachineDebugger * *aDebugger) NS_OVERRIDE; \
  NS_IMETHOD GetUSBDevices(PRUint32 *USBDevicesSize, IUSBDevice * **USBDevices) NS_OVERRIDE; \
  NS_IMETHOD GetRemoteUSBDevices(PRUint32 *remoteUSBDevicesSize, IHostUSBDevice * **remoteUSBDevices) NS_OVERRIDE; \
  NS_IMETHOD GetSharedFolders(PRUint32 *sharedFoldersSize, ISharedFolder * **sharedFolders) NS_OVERRIDE; \
  NS_IMETHOD GetVRDEServerInfo(IVRDEServerInfo * *aVRDEServerInfo) NS_OVERRIDE; \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) NS_OVERRIDE; \
  NS_IMETHOD GetAttachedPCIDevices(PRUint32 *attachedPCIDevicesSize, IPCIDeviceAttachment * **attachedPCIDevices) NS_OVERRIDE; \
  NS_IMETHOD GetUseHostClipboard(PRBool *aUseHostClipboard) NS_OVERRIDE; \
  NS_IMETHOD SetUseHostClipboard(PRBool aUseHostClipboard) NS_OVERRIDE; \
  NS_IMETHOD GetEmulatedUSB(IEmulatedUSB * *aEmulatedUSB) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IConsole(PRUint32 *aInternalAndReservedAttribute1IConsole) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IConsole(PRUint32 *aInternalAndReservedAttribute2IConsole) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IConsole(PRUint32 *aInternalAndReservedAttribute3IConsole) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IConsole(PRUint32 *aInternalAndReservedAttribute4IConsole) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IConsole(PRUint32 *aInternalAndReservedAttribute5IConsole) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IConsole(PRUint32 *aInternalAndReservedAttribute6IConsole) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IConsole(PRUint32 *aInternalAndReservedAttribute7IConsole) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IConsole(PRUint32 *aInternalAndReservedAttribute8IConsole) NS_OVERRIDE; \
  NS_IMETHOD PowerUp(IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD PowerUpPaused(IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD PowerDown(IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD Reset(void) NS_OVERRIDE; \
  NS_IMETHOD Pause(void) NS_OVERRIDE; \
  NS_IMETHOD Resume(void) NS_OVERRIDE; \
  NS_IMETHOD PowerButton(void) NS_OVERRIDE; \
  NS_IMETHOD SleepButton(void) NS_OVERRIDE; \
  NS_IMETHOD GetPowerButtonHandled(PRBool *handled) NS_OVERRIDE; \
  NS_IMETHOD GetGuestEnteredACPIMode(PRBool *entered) NS_OVERRIDE; \
  NS_IMETHOD GetDeviceActivity(PRUint32 typeSize, DeviceType_T *type, PRUint32 *activitySize, DeviceActivity_T **activity) NS_OVERRIDE; \
  NS_IMETHOD AttachUSBDevice(const PRUnichar *id, const PRUnichar *captureFilename) NS_OVERRIDE; \
  NS_IMETHOD DetachUSBDevice(const PRUnichar *id, IUSBDevice * *device) NS_OVERRIDE; \
  NS_IMETHOD FindUSBDeviceByAddress(const PRUnichar *name, IUSBDevice * *device) NS_OVERRIDE; \
  NS_IMETHOD FindUSBDeviceById(const PRUnichar *id, IUSBDevice * *device) NS_OVERRIDE; \
  NS_IMETHOD CreateSharedFolder(const PRUnichar *name, const PRUnichar *hostPath, PRBool writable, PRBool automount, const PRUnichar *autoMountPoint) NS_OVERRIDE; \
  NS_IMETHOD RemoveSharedFolder(const PRUnichar *name) NS_OVERRIDE; \
  NS_IMETHOD Teleport(const PRUnichar *hostname, PRUint32 tcpport, const PRUnichar *password, PRUint32 maxDowntime, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD AddEncryptionPassword(const PRUnichar *id, const PRUnichar *password, PRBool clearOnSuspend) NS_OVERRIDE; \
  NS_IMETHOD AddEncryptionPasswords(PRUint32 idsSize, const PRUnichar **ids, PRUint32 passwordsSize, const PRUnichar **passwords, PRBool clearOnSuspend) NS_OVERRIDE; \
  NS_IMETHOD RemoveEncryptionPassword(const PRUnichar *id) NS_OVERRIDE; \
  NS_IMETHOD ClearAllEncryptionPasswords(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IConsole(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IConsole(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IConsole(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IConsole(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod5IConsole(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod6IConsole(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod7IConsole(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod8IConsole(void) NS_OVERRIDE; 

/* 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(MachineState_T *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, DeviceType_T *type, PRUint32 *activitySize, DeviceActivity_T **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, const PRUnichar *autoMountPoint) { return _to CreateSharedFolder(name, hostPath, writable, automount, autoMountPoint); } \
  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 AddEncryptionPassword(const PRUnichar *id, const PRUnichar *password, PRBool clearOnSuspend) { return _to AddEncryptionPassword(id, password, clearOnSuspend); } \
  NS_IMETHOD AddEncryptionPasswords(PRUint32 idsSize, const PRUnichar **ids, PRUint32 passwordsSize, const PRUnichar **passwords, PRBool clearOnSuspend) { return _to AddEncryptionPasswords(idsSize, ids, passwordsSize, passwords, clearOnSuspend); } \
  NS_IMETHOD RemoveEncryptionPassword(const PRUnichar *id) { return _to RemoveEncryptionPassword(id); } \
  NS_IMETHOD ClearAllEncryptionPasswords(void) { return _to ClearAllEncryptionPasswords(); } \
  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(MachineState_T *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, DeviceType_T *type, PRUint32 *activitySize, DeviceActivity_T **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, const PRUnichar *autoMountPoint) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateSharedFolder(name, hostPath, writable, automount, autoMountPoint); } \
  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 AddEncryptionPassword(const PRUnichar *id, const PRUnichar *password, PRBool clearOnSuspend) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddEncryptionPassword(id, password, clearOnSuspend); } \
  NS_IMETHOD AddEncryptionPasswords(PRUint32 idsSize, const PRUnichar **ids, PRUint32 passwordsSize, const PRUnichar **passwords, PRBool clearOnSuspend) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddEncryptionPasswords(idsSize, ids, passwordsSize, passwords, clearOnSuspend); } \
  NS_IMETHOD RemoveEncryptionPassword(const PRUnichar *id) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveEncryptionPassword(id); } \
  NS_IMETHOD ClearAllEncryptionPasswords(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->ClearAllEncryptionPasswords(); } \
  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(); } 

#define COM_FORWARD_IConsole_GETTER_Machine_TO(smth) NS_IMETHOD GetMachine (IMachine * * aMachine) { return smth GetMachine (aMachine); }
#define COM_FORWARD_IConsole_GETTER_Machine_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_Machine_TO ((obj)->)
#define COM_FORWARD_IConsole_GETTER_Machine_TO_BASE(base) COM_FORWARD_IConsole_GETTER_Machine_TO (base::)
#define COM_FORWARD_IConsole_GETTER_State_TO(smth) NS_IMETHOD GetState (PRUint32 * aState) { return smth GetState (aState); }
#define COM_FORWARD_IConsole_GETTER_State_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_State_TO ((obj)->)
#define COM_FORWARD_IConsole_GETTER_State_TO_BASE(base) COM_FORWARD_IConsole_GETTER_State_TO (base::)
#define COM_FORWARD_IConsole_GETTER_Guest_TO(smth) NS_IMETHOD GetGuest (IGuest * * aGuest) { return smth GetGuest (aGuest); }
#define COM_FORWARD_IConsole_GETTER_Guest_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_Guest_TO ((obj)->)
#define COM_FORWARD_IConsole_GETTER_Guest_TO_BASE(base) COM_FORWARD_IConsole_GETTER_Guest_TO (base::)
#define COM_FORWARD_IConsole_GETTER_Keyboard_TO(smth) NS_IMETHOD GetKeyboard (IKeyboard * * aKeyboard) { return smth GetKeyboard (aKeyboard); }
#define COM_FORWARD_IConsole_GETTER_Keyboard_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_Keyboard_TO ((obj)->)
#define COM_FORWARD_IConsole_GETTER_Keyboard_TO_BASE(base) COM_FORWARD_IConsole_GETTER_Keyboard_TO (base::)
#define COM_FORWARD_IConsole_GETTER_Mouse_TO(smth) NS_IMETHOD GetMouse (IMouse * * aMouse) { return smth GetMouse (aMouse); }
#define COM_FORWARD_IConsole_GETTER_Mouse_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_Mouse_TO ((obj)->)
#define COM_FORWARD_IConsole_GETTER_Mouse_TO_BASE(base) COM_FORWARD_IConsole_GETTER_Mouse_TO (base::)
#define COM_FORWARD_IConsole_GETTER_Display_TO(smth) NS_IMETHOD GetDisplay (IDisplay * * aDisplay) { return smth GetDisplay (aDisplay); }
#define COM_FORWARD_IConsole_GETTER_Display_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_Display_TO ((obj)->)
#define COM_FORWARD_IConsole_GETTER_Display_TO_BASE(base) COM_FORWARD_IConsole_GETTER_Display_TO (base::)
#define COM_FORWARD_IConsole_GETTER_Debugger_TO(smth) NS_IMETHOD GetDebugger (IMachineDebugger * * aDebugger) { return smth GetDebugger (aDebugger); }
#define COM_FORWARD_IConsole_GETTER_Debugger_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_Debugger_TO ((obj)->)
#define COM_FORWARD_IConsole_GETTER_Debugger_TO_BASE(base) COM_FORWARD_IConsole_GETTER_Debugger_TO (base::)
#define COM_FORWARD_IConsole_GETTER_USBDevices_TO(smth) NS_IMETHOD GetUSBDevices (PRUint32 * aUSBDevicesSize, IUSBDevice * * * aUSBDevices) { return smth GetUSBDevices (aUSBDevicesSize, aUSBDevices); }
#define COM_FORWARD_IConsole_GETTER_USBDevices_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_USBDevices_TO ((obj)->)
#define COM_FORWARD_IConsole_GETTER_USBDevices_TO_BASE(base) COM_FORWARD_IConsole_GETTER_USBDevices_TO (base::)
#define COM_FORWARD_IConsole_GETTER_RemoteUSBDevices_TO(smth) NS_IMETHOD GetRemoteUSBDevices (PRUint32 * aRemoteUSBDevicesSize, IHostUSBDevice * * * aRemoteUSBDevices) { return smth GetRemoteUSBDevices (aRemoteUSBDevicesSize, aRemoteUSBDevices); }
#define COM_FORWARD_IConsole_GETTER_RemoteUSBDevices_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_RemoteUSBDevices_TO ((obj)->)
#define COM_FORWARD_IConsole_GETTER_RemoteUSBDevices_TO_BASE(base) COM_FORWARD_IConsole_GETTER_RemoteUSBDevices_TO (base::)
#define COM_FORWARD_IConsole_GETTER_SharedFolders_TO(smth) NS_IMETHOD GetSharedFolders (PRUint32 * aSharedFoldersSize, ISharedFolder * * * aSharedFolders) { return smth GetSharedFolders (aSharedFoldersSize, aSharedFolders); }
#define COM_FORWARD_IConsole_GETTER_SharedFolders_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_SharedFolders_TO ((obj)->)
#define COM_FORWARD_IConsole_GETTER_SharedFolders_TO_BASE(base) COM_FORWARD_IConsole_GETTER_SharedFolders_TO (base::)
#define COM_FORWARD_IConsole_GETTER_VRDEServerInfo_TO(smth) NS_IMETHOD GetVRDEServerInfo (IVRDEServerInfo * * aVRDEServerInfo) { return smth GetVRDEServerInfo (aVRDEServerInfo); }
#define COM_FORWARD_IConsole_GETTER_VRDEServerInfo_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_VRDEServerInfo_TO ((obj)->)
#define COM_FORWARD_IConsole_GETTER_VRDEServerInfo_TO_BASE(base) COM_FORWARD_IConsole_GETTER_VRDEServerInfo_TO (base::)
#define COM_FORWARD_IConsole_GETTER_EventSource_TO(smth) NS_IMETHOD GetEventSource (IEventSource * * aEventSource) { return smth GetEventSource (aEventSource); }
#define COM_FORWARD_IConsole_GETTER_EventSource_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_EventSource_TO ((obj)->)
#define COM_FORWARD_IConsole_GETTER_EventSource_TO_BASE(base) COM_FORWARD_IConsole_GETTER_EventSource_TO (base::)
#define COM_FORWARD_IConsole_GETTER_AttachedPCIDevices_TO(smth) NS_IMETHOD GetAttachedPCIDevices (PRUint32 * aAttachedPCIDevicesSize, IPCIDeviceAttachment * * * aAttachedPCIDevices) { return smth GetAttachedPCIDevices (aAttachedPCIDevicesSize, aAttachedPCIDevices); }
#define COM_FORWARD_IConsole_GETTER_AttachedPCIDevices_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_AttachedPCIDevices_TO ((obj)->)
#define COM_FORWARD_IConsole_GETTER_AttachedPCIDevices_TO_BASE(base) COM_FORWARD_IConsole_GETTER_AttachedPCIDevices_TO (base::)
#define COM_FORWARD_IConsole_GETTER_UseHostClipboard_TO(smth) NS_IMETHOD GetUseHostClipboard (PRBool * aUseHostClipboard) { return smth GetUseHostClipboard (aUseHostClipboard); }
#define COM_FORWARD_IConsole_GETTER_UseHostClipboard_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_UseHostClipboard_TO ((obj)->)
#define COM_FORWARD_IConsole_GETTER_UseHostClipboard_TO_BASE(base) COM_FORWARD_IConsole_GETTER_UseHostClipboard_TO (base::)
#define COM_FORWARD_IConsole_SETTER_UseHostClipboard_TO(smth) NS_IMETHOD SetUseHostClipboard (PRBool aUseHostClipboard) { return smth SetUseHostClipboard (aUseHostClipboard); }
#define COM_FORWARD_IConsole_SETTER_UseHostClipboard_TO_OBJ(obj) COM_FORWARD_IConsole_SETTER_UseHostClipboard_TO ((obj)->)
#define COM_FORWARD_IConsole_SETTER_UseHostClipboard_TO_BASE(base) COM_FORWARD_IConsole_SETTER_UseHostClipboard_TO (base::)
#define COM_FORWARD_IConsole_GETTER_EmulatedUSB_TO(smth) NS_IMETHOD GetEmulatedUSB (IEmulatedUSB * * aEmulatedUSB) { return smth GetEmulatedUSB (aEmulatedUSB); }
#define COM_FORWARD_IConsole_GETTER_EmulatedUSB_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_EmulatedUSB_TO ((obj)->)
#define COM_FORWARD_IConsole_GETTER_EmulatedUSB_TO_BASE(base) COM_FORWARD_IConsole_GETTER_EmulatedUSB_TO (base::)
#define COM_FORWARD_IConsole_PowerUp_TO(smth) NS_IMETHOD PowerUp (IProgress * * aProgress) { return smth PowerUp (aProgress); }
#define COM_FORWARD_IConsole_PowerUp_TO_OBJ(obj) COM_FORWARD_IConsole_PowerUp_TO ((obj)->)
#define COM_FORWARD_IConsole_PowerUp_TO_BASE(base) COM_FORWARD_IConsole_PowerUp_TO (base::)
#define COM_FORWARD_IConsole_PowerUpPaused_TO(smth) NS_IMETHOD PowerUpPaused (IProgress * * aProgress) { return smth PowerUpPaused (aProgress); }
#define COM_FORWARD_IConsole_PowerUpPaused_TO_OBJ(obj) COM_FORWARD_IConsole_PowerUpPaused_TO ((obj)->)
#define COM_FORWARD_IConsole_PowerUpPaused_TO_BASE(base) COM_FORWARD_IConsole_PowerUpPaused_TO (base::)
#define COM_FORWARD_IConsole_PowerDown_TO(smth) NS_IMETHOD PowerDown (IProgress * * aProgress) { return smth PowerDown (aProgress); }
#define COM_FORWARD_IConsole_PowerDown_TO_OBJ(obj) COM_FORWARD_IConsole_PowerDown_TO ((obj)->)
#define COM_FORWARD_IConsole_PowerDown_TO_BASE(base) COM_FORWARD_IConsole_PowerDown_TO (base::)
#define COM_FORWARD_IConsole_Reset_TO(smth) NS_IMETHOD Reset() { return smth Reset(); }
#define COM_FORWARD_IConsole_Reset_TO_OBJ(obj) COM_FORWARD_IConsole_Reset_TO ((obj)->)
#define COM_FORWARD_IConsole_Reset_TO_BASE(base) COM_FORWARD_IConsole_Reset_TO (base::)
#define COM_FORWARD_IConsole_Pause_TO(smth) NS_IMETHOD Pause() { return smth Pause(); }
#define COM_FORWARD_IConsole_Pause_TO_OBJ(obj) COM_FORWARD_IConsole_Pause_TO ((obj)->)
#define COM_FORWARD_IConsole_Pause_TO_BASE(base) COM_FORWARD_IConsole_Pause_TO (base::)
#define COM_FORWARD_IConsole_Resume_TO(smth) NS_IMETHOD Resume() { return smth Resume(); }
#define COM_FORWARD_IConsole_Resume_TO_OBJ(obj) COM_FORWARD_IConsole_Resume_TO ((obj)->)
#define COM_FORWARD_IConsole_Resume_TO_BASE(base) COM_FORWARD_IConsole_Resume_TO (base::)
#define COM_FORWARD_IConsole_PowerButton_TO(smth) NS_IMETHOD PowerButton() { return smth PowerButton(); }
#define COM_FORWARD_IConsole_PowerButton_TO_OBJ(obj) COM_FORWARD_IConsole_PowerButton_TO ((obj)->)
#define COM_FORWARD_IConsole_PowerButton_TO_BASE(base) COM_FORWARD_IConsole_PowerButton_TO (base::)
#define COM_FORWARD_IConsole_SleepButton_TO(smth) NS_IMETHOD SleepButton() { return smth SleepButton(); }
#define COM_FORWARD_IConsole_SleepButton_TO_OBJ(obj) COM_FORWARD_IConsole_SleepButton_TO ((obj)->)
#define COM_FORWARD_IConsole_SleepButton_TO_BASE(base) COM_FORWARD_IConsole_SleepButton_TO (base::)
#define COM_FORWARD_IConsole_GetPowerButtonHandled_TO(smth) NS_IMETHOD GetPowerButtonHandled (PRBool * aHandled) { return smth GetPowerButtonHandled (aHandled); }
#define COM_FORWARD_IConsole_GetPowerButtonHandled_TO_OBJ(obj) COM_FORWARD_IConsole_GetPowerButtonHandled_TO ((obj)->)
#define COM_FORWARD_IConsole_GetPowerButtonHandled_TO_BASE(base) COM_FORWARD_IConsole_GetPowerButtonHandled_TO (base::)
#define COM_FORWARD_IConsole_GetGuestEnteredACPIMode_TO(smth) NS_IMETHOD GetGuestEnteredACPIMode (PRBool * aEntered) { return smth GetGuestEnteredACPIMode (aEntered); }
#define COM_FORWARD_IConsole_GetGuestEnteredACPIMode_TO_OBJ(obj) COM_FORWARD_IConsole_GetGuestEnteredACPIMode_TO ((obj)->)
#define COM_FORWARD_IConsole_GetGuestEnteredACPIMode_TO_BASE(base) COM_FORWARD_IConsole_GetGuestEnteredACPIMode_TO (base::)
#define COM_FORWARD_IConsole_GetDeviceActivity_TO(smth) NS_IMETHOD GetDeviceActivity (PRUint32 aTypeSize, PRUint32 * aType, PRUint32 * aActivitySize, PRUint32 * * aActivity) { return smth GetDeviceActivity (aTypeSize+++, aType, aActivitySize, aActivity); }
#define COM_FORWARD_IConsole_GetDeviceActivity_TO_OBJ(obj) COM_FORWARD_IConsole_GetDeviceActivity_TO ((obj)->)
#define COM_FORWARD_IConsole_GetDeviceActivity_TO_BASE(base) COM_FORWARD_IConsole_GetDeviceActivity_TO (base::)
#define COM_FORWARD_IConsole_AttachUSBDevice_TO(smth) NS_IMETHOD AttachUSBDevice (PRUnichar * aId, PRUnichar * aCaptureFilename) { return smth AttachUSBDevice (aId, aCaptureFilename); }
#define COM_FORWARD_IConsole_AttachUSBDevice_TO_OBJ(obj) COM_FORWARD_IConsole_AttachUSBDevice_TO ((obj)->)
#define COM_FORWARD_IConsole_AttachUSBDevice_TO_BASE(base) COM_FORWARD_IConsole_AttachUSBDevice_TO (base::)
#define COM_FORWARD_IConsole_DetachUSBDevice_TO(smth) NS_IMETHOD DetachUSBDevice (PRUnichar * aId, IUSBDevice * * aDevice) { return smth DetachUSBDevice (aId, aDevice); }
#define COM_FORWARD_IConsole_DetachUSBDevice_TO_OBJ(obj) COM_FORWARD_IConsole_DetachUSBDevice_TO ((obj)->)
#define COM_FORWARD_IConsole_DetachUSBDevice_TO_BASE(base) COM_FORWARD_IConsole_DetachUSBDevice_TO (base::)
#define COM_FORWARD_IConsole_FindUSBDeviceByAddress_TO(smth) NS_IMETHOD FindUSBDeviceByAddress (PRUnichar * aName, IUSBDevice * * aDevice) { return smth FindUSBDeviceByAddress (aName, aDevice); }
#define COM_FORWARD_IConsole_FindUSBDeviceByAddress_TO_OBJ(obj) COM_FORWARD_IConsole_FindUSBDeviceByAddress_TO ((obj)->)
#define COM_FORWARD_IConsole_FindUSBDeviceByAddress_TO_BASE(base) COM_FORWARD_IConsole_FindUSBDeviceByAddress_TO (base::)
#define COM_FORWARD_IConsole_FindUSBDeviceById_TO(smth) NS_IMETHOD FindUSBDeviceById (PRUnichar * aId, IUSBDevice * * aDevice) { return smth FindUSBDeviceById (aId, aDevice); }
#define COM_FORWARD_IConsole_FindUSBDeviceById_TO_OBJ(obj) COM_FORWARD_IConsole_FindUSBDeviceById_TO ((obj)->)
#define COM_FORWARD_IConsole_FindUSBDeviceById_TO_BASE(base) COM_FORWARD_IConsole_FindUSBDeviceById_TO (base::)
#define COM_FORWARD_IConsole_CreateSharedFolder_TO(smth) NS_IMETHOD CreateSharedFolder (PRUnichar * aName, PRUnichar * aHostPath, PRBool aWritable, PRBool aAutomount, PRUnichar * aAutoMountPoint) { return smth CreateSharedFolder (aName, aHostPath, aWritable, aAutomount, aAutoMountPoint); }
#define COM_FORWARD_IConsole_CreateSharedFolder_TO_OBJ(obj) COM_FORWARD_IConsole_CreateSharedFolder_TO ((obj)->)
#define COM_FORWARD_IConsole_CreateSharedFolder_TO_BASE(base) COM_FORWARD_IConsole_CreateSharedFolder_TO (base::)
#define COM_FORWARD_IConsole_RemoveSharedFolder_TO(smth) NS_IMETHOD RemoveSharedFolder (PRUnichar * aName) { return smth RemoveSharedFolder (aName); }
#define COM_FORWARD_IConsole_RemoveSharedFolder_TO_OBJ(obj) COM_FORWARD_IConsole_RemoveSharedFolder_TO ((obj)->)
#define COM_FORWARD_IConsole_RemoveSharedFolder_TO_BASE(base) COM_FORWARD_IConsole_RemoveSharedFolder_TO (base::)
#define COM_FORWARD_IConsole_Teleport_TO(smth) NS_IMETHOD Teleport (PRUnichar * aHostname, PRUint32 aTcpport, PRUnichar * aPassword, PRUint32 aMaxDowntime, IProgress * * aProgress) { return smth Teleport (aHostname, aTcpport, aPassword, aMaxDowntime, aProgress); }
#define COM_FORWARD_IConsole_Teleport_TO_OBJ(obj) COM_FORWARD_IConsole_Teleport_TO ((obj)->)
#define COM_FORWARD_IConsole_Teleport_TO_BASE(base) COM_FORWARD_IConsole_Teleport_TO (base::)
#define COM_FORWARD_IConsole_AddEncryptionPassword_TO(smth) NS_IMETHOD AddEncryptionPassword (PRUnichar * aId, PRUnichar * aPassword, PRBool aClearOnSuspend) { return smth AddEncryptionPassword (aId, aPassword, aClearOnSuspend); }
#define COM_FORWARD_IConsole_AddEncryptionPassword_TO_OBJ(obj) COM_FORWARD_IConsole_AddEncryptionPassword_TO ((obj)->)
#define COM_FORWARD_IConsole_AddEncryptionPassword_TO_BASE(base) COM_FORWARD_IConsole_AddEncryptionPassword_TO (base::)
#define COM_FORWARD_IConsole_AddEncryptionPasswords_TO(smth) NS_IMETHOD AddEncryptionPasswords (PRUint32 aIdsSize, PRUnichar * * aIds, PRUint32 aPasswordsSize, PRUnichar * * aPasswords, PRBool aClearOnSuspend) { return smth AddEncryptionPasswords (aIdsSize+++, aIds, aPasswordsSize+++, aPasswords, aClearOnSuspend); }
#define COM_FORWARD_IConsole_AddEncryptionPasswords_TO_OBJ(obj) COM_FORWARD_IConsole_AddEncryptionPasswords_TO ((obj)->)
#define COM_FORWARD_IConsole_AddEncryptionPasswords_TO_BASE(base) COM_FORWARD_IConsole_AddEncryptionPasswords_TO (base::)
#define COM_FORWARD_IConsole_RemoveEncryptionPassword_TO(smth) NS_IMETHOD RemoveEncryptionPassword (PRUnichar * aId) { return smth RemoveEncryptionPassword (aId); }
#define COM_FORWARD_IConsole_RemoveEncryptionPassword_TO_OBJ(obj) COM_FORWARD_IConsole_RemoveEncryptionPassword_TO ((obj)->)
#define COM_FORWARD_IConsole_RemoveEncryptionPassword_TO_BASE(base) COM_FORWARD_IConsole_RemoveEncryptionPassword_TO (base::)
#define COM_FORWARD_IConsole_ClearAllEncryptionPasswords_TO(smth) NS_IMETHOD ClearAllEncryptionPasswords() { return smth ClearAllEncryptionPasswords(); }
#define COM_FORWARD_IConsole_ClearAllEncryptionPasswords_TO_OBJ(obj) COM_FORWARD_IConsole_ClearAllEncryptionPasswords_TO ((obj)->)
#define COM_FORWARD_IConsole_ClearAllEncryptionPasswords_TO_BASE(base) COM_FORWARD_IConsole_ClearAllEncryptionPasswords_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 HostNetworkInterfaceMediumType_T mediumType; */
  NS_IMETHOD GetMediumType(HostNetworkInterfaceMediumType_T *aMediumType) = 0;

  /* readonly attribute HostNetworkInterfaceStatus_T status; */
  NS_IMETHOD GetStatus(HostNetworkInterfaceStatus_T *aStatus) = 0;

  /* readonly attribute HostNetworkInterfaceType_T interfaceType; */
  NS_IMETHOD GetInterfaceType(HostNetworkInterfaceType_T *aInterfaceType) = 0;

  /* readonly attribute boolean wireless; */
  NS_IMETHOD GetWireless(PRBool *aWireless) = 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_OVERRIDE; \
  NS_IMETHOD GetShortName(PRUnichar **aShortName) NS_OVERRIDE; \
  NS_IMETHOD GetId(PRUnichar **aId) NS_OVERRIDE; \
  NS_IMETHOD GetNetworkName(PRUnichar **aNetworkName) NS_OVERRIDE; \
  NS_IMETHOD GetDHCPEnabled(PRBool *aDHCPEnabled) NS_OVERRIDE; \
  NS_IMETHOD GetIPAddress(PRUnichar **aIPAddress) NS_OVERRIDE; \
  NS_IMETHOD GetNetworkMask(PRUnichar **aNetworkMask) NS_OVERRIDE; \
  NS_IMETHOD GetIPV6Supported(PRBool *aIPV6Supported) NS_OVERRIDE; \
  NS_IMETHOD GetIPV6Address(PRUnichar **aIPV6Address) NS_OVERRIDE; \
  NS_IMETHOD GetIPV6NetworkMaskPrefixLength(PRUint32 *aIPV6NetworkMaskPrefixLength) NS_OVERRIDE; \
  NS_IMETHOD GetHardwareAddress(PRUnichar **aHardwareAddress) NS_OVERRIDE; \
  NS_IMETHOD GetMediumType(HostNetworkInterfaceMediumType_T *aMediumType) NS_OVERRIDE; \
  NS_IMETHOD GetStatus(HostNetworkInterfaceStatus_T *aStatus) NS_OVERRIDE; \
  NS_IMETHOD GetInterfaceType(HostNetworkInterfaceType_T *aInterfaceType) NS_OVERRIDE; \
  NS_IMETHOD GetWireless(PRBool *aWireless) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IHostNetworkInterface(PRUint32 *aInternalAndReservedAttribute1IHostNetworkInterface) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IHostNetworkInterface(PRUint32 *aInternalAndReservedAttribute2IHostNetworkInterface) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IHostNetworkInterface(PRUint32 *aInternalAndReservedAttribute3IHostNetworkInterface) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IHostNetworkInterface(PRUint32 *aInternalAndReservedAttribute4IHostNetworkInterface) NS_OVERRIDE; \
  NS_IMETHOD EnableStaticIPConfig(const PRUnichar *IPAddress, const PRUnichar *networkMask) NS_OVERRIDE; \
  NS_IMETHOD EnableStaticIPConfigV6(const PRUnichar *IPV6Address, PRUint32 IPV6NetworkMaskPrefixLength) NS_OVERRIDE; \
  NS_IMETHOD EnableDynamicIPConfig(void) NS_OVERRIDE; \
  NS_IMETHOD DHCPRediscover(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IHostNetworkInterface(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IHostNetworkInterface(void) NS_OVERRIDE; 

/* 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(HostNetworkInterfaceMediumType_T *aMediumType) { return _to GetMediumType(aMediumType); } \
  NS_IMETHOD GetStatus(HostNetworkInterfaceStatus_T *aStatus) { return _to GetStatus(aStatus); } \
  NS_IMETHOD GetInterfaceType(HostNetworkInterfaceType_T *aInterfaceType) { return _to GetInterfaceType(aInterfaceType); } \
  NS_IMETHOD GetWireless(PRBool *aWireless) { return _to GetWireless(aWireless); } \
  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(HostNetworkInterfaceMediumType_T *aMediumType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMediumType(aMediumType); } \
  NS_IMETHOD GetStatus(HostNetworkInterfaceStatus_T *aStatus) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStatus(aStatus); } \
  NS_IMETHOD GetInterfaceType(HostNetworkInterfaceType_T *aInterfaceType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInterfaceType(aInterfaceType); } \
  NS_IMETHOD GetWireless(PRBool *aWireless) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetWireless(aWireless); } \
  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(); } 

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

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IHostNetworkInterface;

/* 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_OVERRIDE; \
  NS_IMETHOD GetPath(PRUnichar **aPath) NS_OVERRIDE; \
  NS_IMETHOD GetAlias(PRUnichar **aAlias) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IHostVideoInputDevice(PRUint32 *aInternalAndReservedAttribute1IHostVideoInputDevice) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IHostVideoInputDevice(PRUint32 *aInternalAndReservedAttribute2IHostVideoInputDevice) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IHostVideoInputDevice(PRUint32 *aInternalAndReservedAttribute3IHostVideoInputDevice) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IHostVideoInputDevice(PRUint32 *aInternalAndReservedAttribute4IHostVideoInputDevice) NS_OVERRIDE; 

/* 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); } 

#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:    IUpdateAgent */
#define IUPDATEAGENT_IID_STR "c4b1b5f4-8cdf-4923-9ef6-b92476a84109"

#define IUPDATEAGENT_IID \
  {0xc4b1b5f4, 0x8cdf, 0x4923, \
    { 0x9e, 0xf6, 0xb9, 0x24, 0x76, 0xa8, 0x41, 0x09 }}

class NS_NO_VTABLE IUpdateAgent : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IUPDATEAGENT_IID)

  /* readonly attribute wstring name; */
  NS_IMETHOD GetName(PRUnichar **aName) = 0;

  /* readonly attribute IEventSource eventSource; */
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) = 0;

  /* readonly attribute unsigned long order; */
  NS_IMETHOD GetOrder(PRUint32 *aOrder) = 0;

  /* void getDependsOn (out unsigned long dependsOnSize, [array, size_is (dependsOnSize), retval] out wstring dependsOn); */
  NS_IMETHOD GetDependsOn(PRUint32 *dependsOnSize, PRUnichar ***dependsOn) = 0;

  /* readonly attribute wstring version; */
  NS_IMETHOD GetVersion(PRUnichar **aVersion) = 0;

  /* readonly attribute wstring downloadUrl; */
  NS_IMETHOD GetDownloadUrl(PRUnichar **aDownloadUrl) = 0;

  /* readonly attribute wstring webUrl; */
  NS_IMETHOD GetWebUrl(PRUnichar **aWebUrl) = 0;

  /* readonly attribute wstring releaseNotes; */
  NS_IMETHOD GetReleaseNotes(PRUnichar **aReleaseNotes) = 0;

  /* attribute boolean enabled; */
  NS_IMETHOD GetEnabled(PRBool *aEnabled) = 0;
  NS_IMETHOD SetEnabled(PRBool aEnabled) = 0;

  /* readonly attribute boolean hidden; */
  NS_IMETHOD GetHidden(PRBool *aHidden) = 0;

  /* readonly attribute UpdateState_T state; */
  NS_IMETHOD GetState(UpdateState_T *aState) = 0;

  /* attribute unsigned long checkFrequency; */
  NS_IMETHOD GetCheckFrequency(PRUint32 *aCheckFrequency) = 0;
  NS_IMETHOD SetCheckFrequency(PRUint32 aCheckFrequency) = 0;

  /* attribute UpdateChannel_T channel; */
  NS_IMETHOD GetChannel(UpdateChannel_T *aChannel) = 0;
  NS_IMETHOD SetChannel(UpdateChannel_T aChannel) = 0;

  /* attribute wstring repositoryURL; */
  NS_IMETHOD GetRepositoryURL(PRUnichar **aRepositoryURL) = 0;
  NS_IMETHOD SetRepositoryURL(const PRUnichar *aRepositoryURL) = 0;

  /* readonly attribute wstring lastCheckDate; */
  NS_IMETHOD GetLastCheckDate(PRUnichar **aLastCheckDate) = 0;

  /* readonly attribute unsigned long checkCount; */
  NS_IMETHOD GetCheckCount(PRUint32 *aCheckCount) = 0;

  /* readonly attribute boolean isCheckNeeded; */
  NS_IMETHOD GetIsCheckNeeded(PRBool *aIsCheckNeeded) = 0;

  /* void getSupportedChannels (out unsigned long supportedChannelsSize, [array, size_is (supportedChannelsSize), retval] out UpdateChannel_T supportedChannels); */
  NS_IMETHOD GetSupportedChannels(PRUint32 *supportedChannelsSize, UpdateChannel_T **supportedChannels) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IUpdateAgent; */
  NS_IMETHOD GetInternalAndReservedAttribute1IUpdateAgent(PRUint32 *aInternalAndReservedAttribute1IUpdateAgent) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IUpdateAgent; */
  NS_IMETHOD GetInternalAndReservedAttribute2IUpdateAgent(PRUint32 *aInternalAndReservedAttribute2IUpdateAgent) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IUpdateAgent; */
  NS_IMETHOD GetInternalAndReservedAttribute3IUpdateAgent(PRUint32 *aInternalAndReservedAttribute3IUpdateAgent) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IUpdateAgent; */
  NS_IMETHOD GetInternalAndReservedAttribute4IUpdateAgent(PRUint32 *aInternalAndReservedAttribute4IUpdateAgent) = 0;

  /* void checkFor ([retval] out IProgress progress); */
  NS_IMETHOD CheckFor(IProgress * *progress) = 0;

  /* void download ([retval] out IProgress progress); */
  NS_IMETHOD Download(IProgress * *progress) = 0;

  /* void install ([retval] out IProgress progress); */
  NS_IMETHOD Install(IProgress * *progress) = 0;

  /* void rollback (); */
  NS_IMETHOD Rollback(void) = 0;

  /* void InternalAndReservedMethod1IUpdateAgent (); */
  NS_IMETHOD InternalAndReservedMethod1IUpdateAgent(void) = 0;

  /* void InternalAndReservedMethod2IUpdateAgent (); */
  NS_IMETHOD InternalAndReservedMethod2IUpdateAgent(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IUPDATEAGENT \
  NS_IMETHOD GetName(PRUnichar **aName) NS_OVERRIDE; \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) NS_OVERRIDE; \
  NS_IMETHOD GetOrder(PRUint32 *aOrder) NS_OVERRIDE; \
  NS_IMETHOD GetDependsOn(PRUint32 *dependsOnSize, PRUnichar ***dependsOn) NS_OVERRIDE; \
  NS_IMETHOD GetVersion(PRUnichar **aVersion) NS_OVERRIDE; \
  NS_IMETHOD GetDownloadUrl(PRUnichar **aDownloadUrl) NS_OVERRIDE; \
  NS_IMETHOD GetWebUrl(PRUnichar **aWebUrl) NS_OVERRIDE; \
  NS_IMETHOD GetReleaseNotes(PRUnichar **aReleaseNotes) NS_OVERRIDE; \
  NS_IMETHOD GetEnabled(PRBool *aEnabled) NS_OVERRIDE; \
  NS_IMETHOD SetEnabled(PRBool aEnabled) NS_OVERRIDE; \
  NS_IMETHOD GetHidden(PRBool *aHidden) NS_OVERRIDE; \
  NS_IMETHOD GetState(UpdateState_T *aState) NS_OVERRIDE; \
  NS_IMETHOD GetCheckFrequency(PRUint32 *aCheckFrequency) NS_OVERRIDE; \
  NS_IMETHOD SetCheckFrequency(PRUint32 aCheckFrequency) NS_OVERRIDE; \
  NS_IMETHOD GetChannel(UpdateChannel_T *aChannel) NS_OVERRIDE; \
  NS_IMETHOD SetChannel(UpdateChannel_T aChannel) NS_OVERRIDE; \
  NS_IMETHOD GetRepositoryURL(PRUnichar **aRepositoryURL) NS_OVERRIDE; \
  NS_IMETHOD SetRepositoryURL(const PRUnichar *aRepositoryURL) NS_OVERRIDE; \
  NS_IMETHOD GetLastCheckDate(PRUnichar **aLastCheckDate) NS_OVERRIDE; \
  NS_IMETHOD GetCheckCount(PRUint32 *aCheckCount) NS_OVERRIDE; \
  NS_IMETHOD GetIsCheckNeeded(PRBool *aIsCheckNeeded) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedChannels(PRUint32 *supportedChannelsSize, UpdateChannel_T **supportedChannels) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IUpdateAgent(PRUint32 *aInternalAndReservedAttribute1IUpdateAgent) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IUpdateAgent(PRUint32 *aInternalAndReservedAttribute2IUpdateAgent) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IUpdateAgent(PRUint32 *aInternalAndReservedAttribute3IUpdateAgent) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IUpdateAgent(PRUint32 *aInternalAndReservedAttribute4IUpdateAgent) NS_OVERRIDE; \
  NS_IMETHOD CheckFor(IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD Download(IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD Install(IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD Rollback(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IUpdateAgent(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IUpdateAgent(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IUPDATEAGENT(_to) \
  NS_IMETHOD GetName(PRUnichar **aName) { return _to GetName(aName); } \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) { return _to GetEventSource(aEventSource); } \
  NS_IMETHOD GetOrder(PRUint32 *aOrder) { return _to GetOrder(aOrder); } \
  NS_IMETHOD GetDependsOn(PRUint32 *dependsOnSize, PRUnichar ***dependsOn) { return _to GetDependsOn(dependsOnSize, dependsOn); } \
  NS_IMETHOD GetVersion(PRUnichar **aVersion) { return _to GetVersion(aVersion); } \
  NS_IMETHOD GetDownloadUrl(PRUnichar **aDownloadUrl) { return _to GetDownloadUrl(aDownloadUrl); } \
  NS_IMETHOD GetWebUrl(PRUnichar **aWebUrl) { return _to GetWebUrl(aWebUrl); } \
  NS_IMETHOD GetReleaseNotes(PRUnichar **aReleaseNotes) { return _to GetReleaseNotes(aReleaseNotes); } \
  NS_IMETHOD GetEnabled(PRBool *aEnabled) { return _to GetEnabled(aEnabled); } \
  NS_IMETHOD SetEnabled(PRBool aEnabled) { return _to SetEnabled(aEnabled); } \
  NS_IMETHOD GetHidden(PRBool *aHidden) { return _to GetHidden(aHidden); } \
  NS_IMETHOD GetState(UpdateState_T *aState) { return _to GetState(aState); } \
  NS_IMETHOD GetCheckFrequency(PRUint32 *aCheckFrequency) { return _to GetCheckFrequency(aCheckFrequency); } \
  NS_IMETHOD SetCheckFrequency(PRUint32 aCheckFrequency) { return _to SetCheckFrequency(aCheckFrequency); } \
  NS_IMETHOD GetChannel(UpdateChannel_T *aChannel) { return _to GetChannel(aChannel); } \
  NS_IMETHOD SetChannel(UpdateChannel_T aChannel) { return _to SetChannel(aChannel); } \
  NS_IMETHOD GetRepositoryURL(PRUnichar **aRepositoryURL) { return _to GetRepositoryURL(aRepositoryURL); } \
  NS_IMETHOD SetRepositoryURL(const PRUnichar *aRepositoryURL) { return _to SetRepositoryURL(aRepositoryURL); } \
  NS_IMETHOD GetLastCheckDate(PRUnichar **aLastCheckDate) { return _to GetLastCheckDate(aLastCheckDate); } \
  NS_IMETHOD GetCheckCount(PRUint32 *aCheckCount) { return _to GetCheckCount(aCheckCount); } \
  NS_IMETHOD GetIsCheckNeeded(PRBool *aIsCheckNeeded) { return _to GetIsCheckNeeded(aIsCheckNeeded); } \
  NS_IMETHOD GetSupportedChannels(PRUint32 *supportedChannelsSize, UpdateChannel_T **supportedChannels) { return _to GetSupportedChannels(supportedChannelsSize, supportedChannels); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IUpdateAgent(PRUint32 *aInternalAndReservedAttribute1IUpdateAgent) { return _to GetInternalAndReservedAttribute1IUpdateAgent(aInternalAndReservedAttribute1IUpdateAgent); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IUpdateAgent(PRUint32 *aInternalAndReservedAttribute2IUpdateAgent) { return _to GetInternalAndReservedAttribute2IUpdateAgent(aInternalAndReservedAttribute2IUpdateAgent); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IUpdateAgent(PRUint32 *aInternalAndReservedAttribute3IUpdateAgent) { return _to GetInternalAndReservedAttribute3IUpdateAgent(aInternalAndReservedAttribute3IUpdateAgent); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IUpdateAgent(PRUint32 *aInternalAndReservedAttribute4IUpdateAgent) { return _to GetInternalAndReservedAttribute4IUpdateAgent(aInternalAndReservedAttribute4IUpdateAgent); } \
  NS_IMETHOD CheckFor(IProgress * *progress) { return _to CheckFor(progress); } \
  NS_IMETHOD Download(IProgress * *progress) { return _to Download(progress); } \
  NS_IMETHOD Install(IProgress * *progress) { return _to Install(progress); } \
  NS_IMETHOD Rollback(void) { return _to Rollback(); } \
  NS_IMETHOD InternalAndReservedMethod1IUpdateAgent(void) { return _to InternalAndReservedMethod1IUpdateAgent(); } \
  NS_IMETHOD InternalAndReservedMethod2IUpdateAgent(void) { return _to InternalAndReservedMethod2IUpdateAgent(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IUPDATEAGENT(_to) \
  NS_IMETHOD GetName(PRUnichar **aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEventSource(aEventSource); } \
  NS_IMETHOD GetOrder(PRUint32 *aOrder) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOrder(aOrder); } \
  NS_IMETHOD GetDependsOn(PRUint32 *dependsOnSize, PRUnichar ***dependsOn) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDependsOn(dependsOnSize, dependsOn); } \
  NS_IMETHOD GetVersion(PRUnichar **aVersion) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVersion(aVersion); } \
  NS_IMETHOD GetDownloadUrl(PRUnichar **aDownloadUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDownloadUrl(aDownloadUrl); } \
  NS_IMETHOD GetWebUrl(PRUnichar **aWebUrl) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetWebUrl(aWebUrl); } \
  NS_IMETHOD GetReleaseNotes(PRUnichar **aReleaseNotes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetReleaseNotes(aReleaseNotes); } \
  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 GetHidden(PRBool *aHidden) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHidden(aHidden); } \
  NS_IMETHOD GetState(UpdateState_T *aState) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetState(aState); } \
  NS_IMETHOD GetCheckFrequency(PRUint32 *aCheckFrequency) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCheckFrequency(aCheckFrequency); } \
  NS_IMETHOD SetCheckFrequency(PRUint32 aCheckFrequency) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCheckFrequency(aCheckFrequency); } \
  NS_IMETHOD GetChannel(UpdateChannel_T *aChannel) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetChannel(aChannel); } \
  NS_IMETHOD SetChannel(UpdateChannel_T aChannel) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetChannel(aChannel); } \
  NS_IMETHOD GetRepositoryURL(PRUnichar **aRepositoryURL) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRepositoryURL(aRepositoryURL); } \
  NS_IMETHOD SetRepositoryURL(const PRUnichar *aRepositoryURL) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetRepositoryURL(aRepositoryURL); } \
  NS_IMETHOD GetLastCheckDate(PRUnichar **aLastCheckDate) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLastCheckDate(aLastCheckDate); } \
  NS_IMETHOD GetCheckCount(PRUint32 *aCheckCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCheckCount(aCheckCount); } \
  NS_IMETHOD GetIsCheckNeeded(PRBool *aIsCheckNeeded) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsCheckNeeded(aIsCheckNeeded); } \
  NS_IMETHOD GetSupportedChannels(PRUint32 *supportedChannelsSize, UpdateChannel_T **supportedChannels) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedChannels(supportedChannelsSize, supportedChannels); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IUpdateAgent(PRUint32 *aInternalAndReservedAttribute1IUpdateAgent) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IUpdateAgent(aInternalAndReservedAttribute1IUpdateAgent); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IUpdateAgent(PRUint32 *aInternalAndReservedAttribute2IUpdateAgent) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IUpdateAgent(aInternalAndReservedAttribute2IUpdateAgent); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IUpdateAgent(PRUint32 *aInternalAndReservedAttribute3IUpdateAgent) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IUpdateAgent(aInternalAndReservedAttribute3IUpdateAgent); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IUpdateAgent(PRUint32 *aInternalAndReservedAttribute4IUpdateAgent) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IUpdateAgent(aInternalAndReservedAttribute4IUpdateAgent); } \
  NS_IMETHOD CheckFor(IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->CheckFor(progress); } \
  NS_IMETHOD Download(IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->Download(progress); } \
  NS_IMETHOD Install(IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->Install(progress); } \
  NS_IMETHOD Rollback(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Rollback(); } \
  NS_IMETHOD InternalAndReservedMethod1IUpdateAgent(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IUpdateAgent(); } \
  NS_IMETHOD InternalAndReservedMethod2IUpdateAgent(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IUpdateAgent(); } 

#define COM_FORWARD_IUpdateAgent_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_IUpdateAgent_GETTER_Name_TO_OBJ(obj) COM_FORWARD_IUpdateAgent_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_IUpdateAgent_GETTER_Name_TO_BASE(base) COM_FORWARD_IUpdateAgent_GETTER_Name_TO (base::)
#define COM_FORWARD_IUpdateAgent_GETTER_EventSource_TO(smth) NS_IMETHOD GetEventSource (IEventSource * * aEventSource) { return smth GetEventSource (aEventSource); }
#define COM_FORWARD_IUpdateAgent_GETTER_EventSource_TO_OBJ(obj) COM_FORWARD_IUpdateAgent_GETTER_EventSource_TO ((obj)->)
#define COM_FORWARD_IUpdateAgent_GETTER_EventSource_TO_BASE(base) COM_FORWARD_IUpdateAgent_GETTER_EventSource_TO (base::)
#define COM_FORWARD_IUpdateAgent_GETTER_Order_TO(smth) NS_IMETHOD GetOrder (PRUint32 * aOrder) { return smth GetOrder (aOrder); }
#define COM_FORWARD_IUpdateAgent_GETTER_Order_TO_OBJ(obj) COM_FORWARD_IUpdateAgent_GETTER_Order_TO ((obj)->)
#define COM_FORWARD_IUpdateAgent_GETTER_Order_TO_BASE(base) COM_FORWARD_IUpdateAgent_GETTER_Order_TO (base::)
#define COM_FORWARD_IUpdateAgent_GETTER_DependsOn_TO(smth) NS_IMETHOD GetDependsOn (PRUint32 * aDependsOnSize, PRUnichar * * * aDependsOn) { return smth GetDependsOn (aDependsOnSize, aDependsOn); }
#define COM_FORWARD_IUpdateAgent_GETTER_DependsOn_TO_OBJ(obj) COM_FORWARD_IUpdateAgent_GETTER_DependsOn_TO ((obj)->)
#define COM_FORWARD_IUpdateAgent_GETTER_DependsOn_TO_BASE(base) COM_FORWARD_IUpdateAgent_GETTER_DependsOn_TO (base::)
#define COM_FORWARD_IUpdateAgent_GETTER_Version_TO(smth) NS_IMETHOD GetVersion (PRUnichar * * aVersion) { return smth GetVersion (aVersion); }
#define COM_FORWARD_IUpdateAgent_GETTER_Version_TO_OBJ(obj) COM_FORWARD_IUpdateAgent_GETTER_Version_TO ((obj)->)
#define COM_FORWARD_IUpdateAgent_GETTER_Version_TO_BASE(base) COM_FORWARD_IUpdateAgent_GETTER_Version_TO (base::)
#define COM_FORWARD_IUpdateAgent_GETTER_DownloadUrl_TO(smth) NS_IMETHOD GetDownloadUrl (PRUnichar * * aDownloadUrl) { return smth GetDownloadUrl (aDownloadUrl); }
#define COM_FORWARD_IUpdateAgent_GETTER_DownloadUrl_TO_OBJ(obj) COM_FORWARD_IUpdateAgent_GETTER_DownloadUrl_TO ((obj)->)
#define COM_FORWARD_IUpdateAgent_GETTER_DownloadUrl_TO_BASE(base) COM_FORWARD_IUpdateAgent_GETTER_DownloadUrl_TO (base::)
#define COM_FORWARD_IUpdateAgent_GETTER_WebUrl_TO(smth) NS_IMETHOD GetWebUrl (PRUnichar * * aWebUrl) { return smth GetWebUrl (aWebUrl); }
#define COM_FORWARD_IUpdateAgent_GETTER_WebUrl_TO_OBJ(obj) COM_FORWARD_IUpdateAgent_GETTER_WebUrl_TO ((obj)->)
#define COM_FORWARD_IUpdateAgent_GETTER_WebUrl_TO_BASE(base) COM_FORWARD_IUpdateAgent_GETTER_WebUrl_TO (base::)
#define COM_FORWARD_IUpdateAgent_GETTER_ReleaseNotes_TO(smth) NS_IMETHOD GetReleaseNotes (PRUnichar * * aReleaseNotes) { return smth GetReleaseNotes (aReleaseNotes); }
#define COM_FORWARD_IUpdateAgent_GETTER_ReleaseNotes_TO_OBJ(obj) COM_FORWARD_IUpdateAgent_GETTER_ReleaseNotes_TO ((obj)->)
#define COM_FORWARD_IUpdateAgent_GETTER_ReleaseNotes_TO_BASE(base) COM_FORWARD_IUpdateAgent_GETTER_ReleaseNotes_TO (base::)
#define COM_FORWARD_IUpdateAgent_GETTER_Enabled_TO(smth) NS_IMETHOD GetEnabled (PRBool * aEnabled) { return smth GetEnabled (aEnabled); }
#define COM_FORWARD_IUpdateAgent_GETTER_Enabled_TO_OBJ(obj) COM_FORWARD_IUpdateAgent_GETTER_Enabled_TO ((obj)->)
#define COM_FORWARD_IUpdateAgent_GETTER_Enabled_TO_BASE(base) COM_FORWARD_IUpdateAgent_GETTER_Enabled_TO (base::)
#define COM_FORWARD_IUpdateAgent_SETTER_Enabled_TO(smth) NS_IMETHOD SetEnabled (PRBool aEnabled) { return smth SetEnabled (aEnabled); }
#define COM_FORWARD_IUpdateAgent_SETTER_Enabled_TO_OBJ(obj) COM_FORWARD_IUpdateAgent_SETTER_Enabled_TO ((obj)->)
#define COM_FORWARD_IUpdateAgent_SETTER_Enabled_TO_BASE(base) COM_FORWARD_IUpdateAgent_SETTER_Enabled_TO (base::)
#define COM_FORWARD_IUpdateAgent_GETTER_Hidden_TO(smth) NS_IMETHOD GetHidden (PRBool * aHidden) { return smth GetHidden (aHidden); }
#define COM_FORWARD_IUpdateAgent_GETTER_Hidden_TO_OBJ(obj) COM_FORWARD_IUpdateAgent_GETTER_Hidden_TO ((obj)->)
#define COM_FORWARD_IUpdateAgent_GETTER_Hidden_TO_BASE(base) COM_FORWARD_IUpdateAgent_GETTER_Hidden_TO (base::)
#define COM_FORWARD_IUpdateAgent_GETTER_State_TO(smth) NS_IMETHOD GetState (PRUint32 * aState) { return smth GetState (aState); }
#define COM_FORWARD_IUpdateAgent_GETTER_State_TO_OBJ(obj) COM_FORWARD_IUpdateAgent_GETTER_State_TO ((obj)->)
#define COM_FORWARD_IUpdateAgent_GETTER_State_TO_BASE(base) COM_FORWARD_IUpdateAgent_GETTER_State_TO (base::)
#define COM_FORWARD_IUpdateAgent_GETTER_CheckFrequency_TO(smth) NS_IMETHOD GetCheckFrequency (PRUint32 * aCheckFrequency) { return smth GetCheckFrequency (aCheckFrequency); }
#define COM_FORWARD_IUpdateAgent_GETTER_CheckFrequency_TO_OBJ(obj) COM_FORWARD_IUpdateAgent_GETTER_CheckFrequency_TO ((obj)->)
#define COM_FORWARD_IUpdateAgent_GETTER_CheckFrequency_TO_BASE(base) COM_FORWARD_IUpdateAgent_GETTER_CheckFrequency_TO (base::)
#define COM_FORWARD_IUpdateAgent_SETTER_CheckFrequency_TO(smth) NS_IMETHOD SetCheckFrequency (PRUint32 aCheckFrequency) { return smth SetCheckFrequency (aCheckFrequency); }
#define COM_FORWARD_IUpdateAgent_SETTER_CheckFrequency_TO_OBJ(obj) COM_FORWARD_IUpdateAgent_SETTER_CheckFrequency_TO ((obj)->)
#define COM_FORWARD_IUpdateAgent_SETTER_CheckFrequency_TO_BASE(base) COM_FORWARD_IUpdateAgent_SETTER_CheckFrequency_TO (base::)
#define COM_FORWARD_IUpdateAgent_GETTER_Channel_TO(smth) NS_IMETHOD GetChannel (PRUint32 * aChannel) { return smth GetChannel (aChannel); }
#define COM_FORWARD_IUpdateAgent_GETTER_Channel_TO_OBJ(obj) COM_FORWARD_IUpdateAgent_GETTER_Channel_TO ((obj)->)
#define COM_FORWARD_IUpdateAgent_GETTER_Channel_TO_BASE(base) COM_FORWARD_IUpdateAgent_GETTER_Channel_TO (base::)
#define COM_FORWARD_IUpdateAgent_SETTER_Channel_TO(smth) NS_IMETHOD SetChannel (PRUint32 aChannel) { return smth SetChannel (aChannel); }
#define COM_FORWARD_IUpdateAgent_SETTER_Channel_TO_OBJ(obj) COM_FORWARD_IUpdateAgent_SETTER_Channel_TO ((obj)->)
#define COM_FORWARD_IUpdateAgent_SETTER_Channel_TO_BASE(base) COM_FORWARD_IUpdateAgent_SETTER_Channel_TO (base::)
#define COM_FORWARD_IUpdateAgent_GETTER_RepositoryURL_TO(smth) NS_IMETHOD GetRepositoryURL (PRUnichar * * aRepositoryURL) { return smth GetRepositoryURL (aRepositoryURL); }
#define COM_FORWARD_IUpdateAgent_GETTER_RepositoryURL_TO_OBJ(obj) COM_FORWARD_IUpdateAgent_GETTER_RepositoryURL_TO ((obj)->)
#define COM_FORWARD_IUpdateAgent_GETTER_RepositoryURL_TO_BASE(base) COM_FORWARD_IUpdateAgent_GETTER_RepositoryURL_TO (base::)
#define COM_FORWARD_IUpdateAgent_SETTER_RepositoryURL_TO(smth) NS_IMETHOD SetRepositoryURL (const PRUnichar * aRepositoryURL) { return smth SetRepositoryURL (aRepositoryURL); }
#define COM_FORWARD_IUpdateAgent_SETTER_RepositoryURL_TO_OBJ(obj) COM_FORWARD_IUpdateAgent_SETTER_RepositoryURL_TO ((obj)->)
#define COM_FORWARD_IUpdateAgent_SETTER_RepositoryURL_TO_BASE(base) COM_FORWARD_IUpdateAgent_SETTER_RepositoryURL_TO (base::)
#define COM_FORWARD_IUpdateAgent_GETTER_LastCheckDate_TO(smth) NS_IMETHOD GetLastCheckDate (PRUnichar * * aLastCheckDate) { return smth GetLastCheckDate (aLastCheckDate); }
#define COM_FORWARD_IUpdateAgent_GETTER_LastCheckDate_TO_OBJ(obj) COM_FORWARD_IUpdateAgent_GETTER_LastCheckDate_TO ((obj)->)
#define COM_FORWARD_IUpdateAgent_GETTER_LastCheckDate_TO_BASE(base) COM_FORWARD_IUpdateAgent_GETTER_LastCheckDate_TO (base::)
#define COM_FORWARD_IUpdateAgent_GETTER_CheckCount_TO(smth) NS_IMETHOD GetCheckCount (PRUint32 * aCheckCount) { return smth GetCheckCount (aCheckCount); }
#define COM_FORWARD_IUpdateAgent_GETTER_CheckCount_TO_OBJ(obj) COM_FORWARD_IUpdateAgent_GETTER_CheckCount_TO ((obj)->)
#define COM_FORWARD_IUpdateAgent_GETTER_CheckCount_TO_BASE(base) COM_FORWARD_IUpdateAgent_GETTER_CheckCount_TO (base::)
#define COM_FORWARD_IUpdateAgent_GETTER_IsCheckNeeded_TO(smth) NS_IMETHOD GetIsCheckNeeded (PRBool * aIsCheckNeeded) { return smth GetIsCheckNeeded (aIsCheckNeeded); }
#define COM_FORWARD_IUpdateAgent_GETTER_IsCheckNeeded_TO_OBJ(obj) COM_FORWARD_IUpdateAgent_GETTER_IsCheckNeeded_TO ((obj)->)
#define COM_FORWARD_IUpdateAgent_GETTER_IsCheckNeeded_TO_BASE(base) COM_FORWARD_IUpdateAgent_GETTER_IsCheckNeeded_TO (base::)
#define COM_FORWARD_IUpdateAgent_GETTER_SupportedChannels_TO(smth) NS_IMETHOD GetSupportedChannels (PRUint32 * aSupportedChannelsSize, PRUint32 * * aSupportedChannels) { return smth GetSupportedChannels (aSupportedChannelsSize, aSupportedChannels); }
#define COM_FORWARD_IUpdateAgent_GETTER_SupportedChannels_TO_OBJ(obj) COM_FORWARD_IUpdateAgent_GETTER_SupportedChannels_TO ((obj)->)
#define COM_FORWARD_IUpdateAgent_GETTER_SupportedChannels_TO_BASE(base) COM_FORWARD_IUpdateAgent_GETTER_SupportedChannels_TO (base::)
#define COM_FORWARD_IUpdateAgent_CheckFor_TO(smth) NS_IMETHOD CheckFor (IProgress * * aProgress) { return smth CheckFor (aProgress); }
#define COM_FORWARD_IUpdateAgent_CheckFor_TO_OBJ(obj) COM_FORWARD_IUpdateAgent_CheckFor_TO ((obj)->)
#define COM_FORWARD_IUpdateAgent_CheckFor_TO_BASE(base) COM_FORWARD_IUpdateAgent_CheckFor_TO (base::)
#define COM_FORWARD_IUpdateAgent_Download_TO(smth) NS_IMETHOD Download (IProgress * * aProgress) { return smth Download (aProgress); }
#define COM_FORWARD_IUpdateAgent_Download_TO_OBJ(obj) COM_FORWARD_IUpdateAgent_Download_TO ((obj)->)
#define COM_FORWARD_IUpdateAgent_Download_TO_BASE(base) COM_FORWARD_IUpdateAgent_Download_TO (base::)
#define COM_FORWARD_IUpdateAgent_Install_TO(smth) NS_IMETHOD Install (IProgress * * aProgress) { return smth Install (aProgress); }
#define COM_FORWARD_IUpdateAgent_Install_TO_OBJ(obj) COM_FORWARD_IUpdateAgent_Install_TO ((obj)->)
#define COM_FORWARD_IUpdateAgent_Install_TO_BASE(base) COM_FORWARD_IUpdateAgent_Install_TO (base::)
#define COM_FORWARD_IUpdateAgent_Rollback_TO(smth) NS_IMETHOD Rollback() { return smth Rollback(); }
#define COM_FORWARD_IUpdateAgent_Rollback_TO_OBJ(obj) COM_FORWARD_IUpdateAgent_Rollback_TO ((obj)->)
#define COM_FORWARD_IUpdateAgent_Rollback_TO_BASE(base) COM_FORWARD_IUpdateAgent_Rollback_TO (base::)
#define COM_FORWARD_IUpdateAgent_TO(smth) NS_FORWARD_IUPDATEAGENT (smth)
#define COM_FORWARD_IUpdateAgent_TO_OBJ(obj) COM_FORWARD_IUpdateAgent_TO ((obj)->)
#define COM_FORWARD_IUpdateAgent_TO_BASE(base) COM_FORWARD_IUpdateAgent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IUpdateAgent;

/* starting interface:    IHostUpdateAgent */
#define IHOSTUPDATEAGENT_IID_STR "d782dba7-cd4f-4ace-951a-58321c23e258"

#define IHOSTUPDATEAGENT_IID \
  {0xd782dba7, 0xcd4f, 0x4ace, \
    { 0x95, 0x1a, 0x58, 0x32, 0x1c, 0x23, 0xe2, 0x58 }}

class NS_NO_VTABLE IHostUpdateAgent : public IUpdateAgent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IHOSTUPDATEAGENT_IID)

  /* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IHostUpdateAgent; */
  NS_IMETHOD GetInternalAndReservedAttribute1IHostUpdateAgent(PRUint32 *aInternalAndReservedAttribute1IHostUpdateAgent) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IHostUpdateAgent; */
  NS_IMETHOD GetInternalAndReservedAttribute2IHostUpdateAgent(PRUint32 *aInternalAndReservedAttribute2IHostUpdateAgent) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IHostUpdateAgent; */
  NS_IMETHOD GetInternalAndReservedAttribute3IHostUpdateAgent(PRUint32 *aInternalAndReservedAttribute3IHostUpdateAgent) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IHostUpdateAgent; */
  NS_IMETHOD GetInternalAndReservedAttribute4IHostUpdateAgent(PRUint32 *aInternalAndReservedAttribute4IHostUpdateAgent) = 0;

  /* void InternalAndReservedMethod1IHostUpdateAgent (); */
  NS_IMETHOD InternalAndReservedMethod1IHostUpdateAgent(void) = 0;

  /* void InternalAndReservedMethod2IHostUpdateAgent (); */
  NS_IMETHOD InternalAndReservedMethod2IHostUpdateAgent(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IHOSTUPDATEAGENT \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IHostUpdateAgent(PRUint32 *aInternalAndReservedAttribute1IHostUpdateAgent) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IHostUpdateAgent(PRUint32 *aInternalAndReservedAttribute2IHostUpdateAgent) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IHostUpdateAgent(PRUint32 *aInternalAndReservedAttribute3IHostUpdateAgent) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IHostUpdateAgent(PRUint32 *aInternalAndReservedAttribute4IHostUpdateAgent) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IHostUpdateAgent(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IHostUpdateAgent(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IHOSTUPDATEAGENT(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return _to GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IHostUpdateAgent(PRUint32 *aInternalAndReservedAttribute1IHostUpdateAgent) { return _to GetInternalAndReservedAttribute1IHostUpdateAgent(aInternalAndReservedAttribute1IHostUpdateAgent); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IHostUpdateAgent(PRUint32 *aInternalAndReservedAttribute2IHostUpdateAgent) { return _to GetInternalAndReservedAttribute2IHostUpdateAgent(aInternalAndReservedAttribute2IHostUpdateAgent); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IHostUpdateAgent(PRUint32 *aInternalAndReservedAttribute3IHostUpdateAgent) { return _to GetInternalAndReservedAttribute3IHostUpdateAgent(aInternalAndReservedAttribute3IHostUpdateAgent); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IHostUpdateAgent(PRUint32 *aInternalAndReservedAttribute4IHostUpdateAgent) { return _to GetInternalAndReservedAttribute4IHostUpdateAgent(aInternalAndReservedAttribute4IHostUpdateAgent); } \
  NS_IMETHOD InternalAndReservedMethod1IHostUpdateAgent(void) { return _to InternalAndReservedMethod1IHostUpdateAgent(); } \
  NS_IMETHOD InternalAndReservedMethod2IHostUpdateAgent(void) { return _to InternalAndReservedMethod2IHostUpdateAgent(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IHOSTUPDATEAGENT(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IHostUpdateAgent(PRUint32 *aInternalAndReservedAttribute1IHostUpdateAgent) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IHostUpdateAgent(aInternalAndReservedAttribute1IHostUpdateAgent); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IHostUpdateAgent(PRUint32 *aInternalAndReservedAttribute2IHostUpdateAgent) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IHostUpdateAgent(aInternalAndReservedAttribute2IHostUpdateAgent); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IHostUpdateAgent(PRUint32 *aInternalAndReservedAttribute3IHostUpdateAgent) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IHostUpdateAgent(aInternalAndReservedAttribute3IHostUpdateAgent); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IHostUpdateAgent(PRUint32 *aInternalAndReservedAttribute4IHostUpdateAgent) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IHostUpdateAgent(aInternalAndReservedAttribute4IHostUpdateAgent); } \
  NS_IMETHOD InternalAndReservedMethod1IHostUpdateAgent(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IHostUpdateAgent(); } \
  NS_IMETHOD InternalAndReservedMethod2IHostUpdateAgent(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IHostUpdateAgent(); } 

#define COM_FORWARD_IHostUpdateAgent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO(smth) NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces (PRBool * aMidlDoesNotLikeEmptyInterfaces) { return smth GetMidlDoesNotLikeEmptyInterfaces (aMidlDoesNotLikeEmptyInterfaces); }
#define COM_FORWARD_IHostUpdateAgent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_OBJ(obj) COM_FORWARD_IHostUpdateAgent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO ((obj)->)
#define COM_FORWARD_IHostUpdateAgent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_BASE(base) COM_FORWARD_IHostUpdateAgent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO (base::)
#define COM_FORWARD_IHostUpdateAgent_TO(smth) NS_FORWARD_IHOSTUPDATEAGENT (smth)
#define COM_FORWARD_IHostUpdateAgent_TO_OBJ(obj) COM_FORWARD_IHostUpdateAgent_TO ((obj)->)
#define COM_FORWARD_IHostUpdateAgent_TO_BASE(base) COM_FORWARD_IHostUpdateAgent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IHostUpdateAgent;

/* starting interface:    IHostDrivePartition */
#define IHOSTDRIVEPARTITION_IID_STR "4f529a14-ace3-407c-9c49-066e8e8027f0"

#define IHOSTDRIVEPARTITION_IID \
  {0x4f529a14, 0xace3, 0x407c, \
    { 0x9c, 0x49, 0x06, 0x6e, 0x8e, 0x80, 0x27, 0xf0 }}

class NS_NO_VTABLE IHostDrivePartition : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IHOSTDRIVEPARTITION_IID)

  /* readonly attribute unsigned long number; */
  NS_IMETHOD GetNumber(PRUint32 *aNumber) = 0;

  /* readonly attribute long long size; */
  NS_IMETHOD GetSize(PRInt64 *aSize) = 0;

  /* readonly attribute long long start; */
  NS_IMETHOD GetStart(PRInt64 *aStart) = 0;

  /* readonly attribute PartitionType_T type; */
  NS_IMETHOD GetType(PartitionType_T *aType) = 0;

  /* readonly attribute boolean active; */
  NS_IMETHOD GetActive(PRBool *aActive) = 0;

  /* readonly attribute unsigned long typeMBR; */
  NS_IMETHOD GetTypeMBR(PRUint32 *aTypeMBR) = 0;

  /* readonly attribute unsigned long startCylinder; */
  NS_IMETHOD GetStartCylinder(PRUint32 *aStartCylinder) = 0;

  /* readonly attribute unsigned long startHead; */
  NS_IMETHOD GetStartHead(PRUint32 *aStartHead) = 0;

  /* readonly attribute unsigned long startSector; */
  NS_IMETHOD GetStartSector(PRUint32 *aStartSector) = 0;

  /* readonly attribute unsigned long endCylinder; */
  NS_IMETHOD GetEndCylinder(PRUint32 *aEndCylinder) = 0;

  /* readonly attribute unsigned long endHead; */
  NS_IMETHOD GetEndHead(PRUint32 *aEndHead) = 0;

  /* readonly attribute unsigned long endSector; */
  NS_IMETHOD GetEndSector(PRUint32 *aEndSector) = 0;

  /* readonly attribute wstring typeUuid; */
  NS_IMETHOD GetTypeUuid(PRUnichar **aTypeUuid) = 0;

  /* readonly attribute wstring uuid; */
  NS_IMETHOD GetUuid(PRUnichar **aUuid) = 0;

  /* readonly attribute wstring name; */
  NS_IMETHOD GetName(PRUnichar **aName) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IHOSTDRIVEPARTITION \
  NS_IMETHOD GetNumber(PRUint32 *aNumber) NS_OVERRIDE; \
  NS_IMETHOD GetSize(PRInt64 *aSize) NS_OVERRIDE; \
  NS_IMETHOD GetStart(PRInt64 *aStart) NS_OVERRIDE; \
  NS_IMETHOD GetType(PartitionType_T *aType) NS_OVERRIDE; \
  NS_IMETHOD GetActive(PRBool *aActive) NS_OVERRIDE; \
  NS_IMETHOD GetTypeMBR(PRUint32 *aTypeMBR) NS_OVERRIDE; \
  NS_IMETHOD GetStartCylinder(PRUint32 *aStartCylinder) NS_OVERRIDE; \
  NS_IMETHOD GetStartHead(PRUint32 *aStartHead) NS_OVERRIDE; \
  NS_IMETHOD GetStartSector(PRUint32 *aStartSector) NS_OVERRIDE; \
  NS_IMETHOD GetEndCylinder(PRUint32 *aEndCylinder) NS_OVERRIDE; \
  NS_IMETHOD GetEndHead(PRUint32 *aEndHead) NS_OVERRIDE; \
  NS_IMETHOD GetEndSector(PRUint32 *aEndSector) NS_OVERRIDE; \
  NS_IMETHOD GetTypeUuid(PRUnichar **aTypeUuid) NS_OVERRIDE; \
  NS_IMETHOD GetUuid(PRUnichar **aUuid) NS_OVERRIDE; \
  NS_IMETHOD GetName(PRUnichar **aName) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IHOSTDRIVEPARTITION(_to) \
  NS_IMETHOD GetNumber(PRUint32 *aNumber) { return _to GetNumber(aNumber); } \
  NS_IMETHOD GetSize(PRInt64 *aSize) { return _to GetSize(aSize); } \
  NS_IMETHOD GetStart(PRInt64 *aStart) { return _to GetStart(aStart); } \
  NS_IMETHOD GetType(PartitionType_T *aType) { return _to GetType(aType); } \
  NS_IMETHOD GetActive(PRBool *aActive) { return _to GetActive(aActive); } \
  NS_IMETHOD GetTypeMBR(PRUint32 *aTypeMBR) { return _to GetTypeMBR(aTypeMBR); } \
  NS_IMETHOD GetStartCylinder(PRUint32 *aStartCylinder) { return _to GetStartCylinder(aStartCylinder); } \
  NS_IMETHOD GetStartHead(PRUint32 *aStartHead) { return _to GetStartHead(aStartHead); } \
  NS_IMETHOD GetStartSector(PRUint32 *aStartSector) { return _to GetStartSector(aStartSector); } \
  NS_IMETHOD GetEndCylinder(PRUint32 *aEndCylinder) { return _to GetEndCylinder(aEndCylinder); } \
  NS_IMETHOD GetEndHead(PRUint32 *aEndHead) { return _to GetEndHead(aEndHead); } \
  NS_IMETHOD GetEndSector(PRUint32 *aEndSector) { return _to GetEndSector(aEndSector); } \
  NS_IMETHOD GetTypeUuid(PRUnichar **aTypeUuid) { return _to GetTypeUuid(aTypeUuid); } \
  NS_IMETHOD GetUuid(PRUnichar **aUuid) { return _to GetUuid(aUuid); } \
  NS_IMETHOD GetName(PRUnichar **aName) { return _to GetName(aName); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IHOSTDRIVEPARTITION(_to) \
  NS_IMETHOD GetNumber(PRUint32 *aNumber) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNumber(aNumber); } \
  NS_IMETHOD GetSize(PRInt64 *aSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSize(aSize); } \
  NS_IMETHOD GetStart(PRInt64 *aStart) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStart(aStart); } \
  NS_IMETHOD GetType(PartitionType_T *aType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetType(aType); } \
  NS_IMETHOD GetActive(PRBool *aActive) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetActive(aActive); } \
  NS_IMETHOD GetTypeMBR(PRUint32 *aTypeMBR) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTypeMBR(aTypeMBR); } \
  NS_IMETHOD GetStartCylinder(PRUint32 *aStartCylinder) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStartCylinder(aStartCylinder); } \
  NS_IMETHOD GetStartHead(PRUint32 *aStartHead) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStartHead(aStartHead); } \
  NS_IMETHOD GetStartSector(PRUint32 *aStartSector) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStartSector(aStartSector); } \
  NS_IMETHOD GetEndCylinder(PRUint32 *aEndCylinder) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEndCylinder(aEndCylinder); } \
  NS_IMETHOD GetEndHead(PRUint32 *aEndHead) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEndHead(aEndHead); } \
  NS_IMETHOD GetEndSector(PRUint32 *aEndSector) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEndSector(aEndSector); } \
  NS_IMETHOD GetTypeUuid(PRUnichar **aTypeUuid) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTypeUuid(aTypeUuid); } \
  NS_IMETHOD GetUuid(PRUnichar **aUuid) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUuid(aUuid); } \
  NS_IMETHOD GetName(PRUnichar **aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } 

#define COM_FORWARD_IHostDrivePartition_GETTER_Number_TO(smth) NS_IMETHOD GetNumber (PRUint32 * aNumber) { return smth GetNumber (aNumber); }
#define COM_FORWARD_IHostDrivePartition_GETTER_Number_TO_OBJ(obj) COM_FORWARD_IHostDrivePartition_GETTER_Number_TO ((obj)->)
#define COM_FORWARD_IHostDrivePartition_GETTER_Number_TO_BASE(base) COM_FORWARD_IHostDrivePartition_GETTER_Number_TO (base::)
#define COM_FORWARD_IHostDrivePartition_GETTER_Size_TO(smth) NS_IMETHOD GetSize (PRInt64 * aSize) { return smth GetSize (aSize); }
#define COM_FORWARD_IHostDrivePartition_GETTER_Size_TO_OBJ(obj) COM_FORWARD_IHostDrivePartition_GETTER_Size_TO ((obj)->)
#define COM_FORWARD_IHostDrivePartition_GETTER_Size_TO_BASE(base) COM_FORWARD_IHostDrivePartition_GETTER_Size_TO (base::)
#define COM_FORWARD_IHostDrivePartition_GETTER_Start_TO(smth) NS_IMETHOD GetStart (PRInt64 * aStart) { return smth GetStart (aStart); }
#define COM_FORWARD_IHostDrivePartition_GETTER_Start_TO_OBJ(obj) COM_FORWARD_IHostDrivePartition_GETTER_Start_TO ((obj)->)
#define COM_FORWARD_IHostDrivePartition_GETTER_Start_TO_BASE(base) COM_FORWARD_IHostDrivePartition_GETTER_Start_TO (base::)
#define COM_FORWARD_IHostDrivePartition_GETTER_Type_TO(smth) NS_IMETHOD GetType (PRUint32 * aType) { return smth GetType (aType); }
#define COM_FORWARD_IHostDrivePartition_GETTER_Type_TO_OBJ(obj) COM_FORWARD_IHostDrivePartition_GETTER_Type_TO ((obj)->)
#define COM_FORWARD_IHostDrivePartition_GETTER_Type_TO_BASE(base) COM_FORWARD_IHostDrivePartition_GETTER_Type_TO (base::)
#define COM_FORWARD_IHostDrivePartition_GETTER_Active_TO(smth) NS_IMETHOD GetActive (PRBool * aActive) { return smth GetActive (aActive); }
#define COM_FORWARD_IHostDrivePartition_GETTER_Active_TO_OBJ(obj) COM_FORWARD_IHostDrivePartition_GETTER_Active_TO ((obj)->)
#define COM_FORWARD_IHostDrivePartition_GETTER_Active_TO_BASE(base) COM_FORWARD_IHostDrivePartition_GETTER_Active_TO (base::)
#define COM_FORWARD_IHostDrivePartition_GETTER_TypeMBR_TO(smth) NS_IMETHOD GetTypeMBR (PRUint32 * aTypeMBR) { return smth GetTypeMBR (aTypeMBR); }
#define COM_FORWARD_IHostDrivePartition_GETTER_TypeMBR_TO_OBJ(obj) COM_FORWARD_IHostDrivePartition_GETTER_TypeMBR_TO ((obj)->)
#define COM_FORWARD_IHostDrivePartition_GETTER_TypeMBR_TO_BASE(base) COM_FORWARD_IHostDrivePartition_GETTER_TypeMBR_TO (base::)
#define COM_FORWARD_IHostDrivePartition_GETTER_StartCylinder_TO(smth) NS_IMETHOD GetStartCylinder (PRUint32 * aStartCylinder) { return smth GetStartCylinder (aStartCylinder); }
#define COM_FORWARD_IHostDrivePartition_GETTER_StartCylinder_TO_OBJ(obj) COM_FORWARD_IHostDrivePartition_GETTER_StartCylinder_TO ((obj)->)
#define COM_FORWARD_IHostDrivePartition_GETTER_StartCylinder_TO_BASE(base) COM_FORWARD_IHostDrivePartition_GETTER_StartCylinder_TO (base::)
#define COM_FORWARD_IHostDrivePartition_GETTER_StartHead_TO(smth) NS_IMETHOD GetStartHead (PRUint32 * aStartHead) { return smth GetStartHead (aStartHead); }
#define COM_FORWARD_IHostDrivePartition_GETTER_StartHead_TO_OBJ(obj) COM_FORWARD_IHostDrivePartition_GETTER_StartHead_TO ((obj)->)
#define COM_FORWARD_IHostDrivePartition_GETTER_StartHead_TO_BASE(base) COM_FORWARD_IHostDrivePartition_GETTER_StartHead_TO (base::)
#define COM_FORWARD_IHostDrivePartition_GETTER_StartSector_TO(smth) NS_IMETHOD GetStartSector (PRUint32 * aStartSector) { return smth GetStartSector (aStartSector); }
#define COM_FORWARD_IHostDrivePartition_GETTER_StartSector_TO_OBJ(obj) COM_FORWARD_IHostDrivePartition_GETTER_StartSector_TO ((obj)->)
#define COM_FORWARD_IHostDrivePartition_GETTER_StartSector_TO_BASE(base) COM_FORWARD_IHostDrivePartition_GETTER_StartSector_TO (base::)
#define COM_FORWARD_IHostDrivePartition_GETTER_EndCylinder_TO(smth) NS_IMETHOD GetEndCylinder (PRUint32 * aEndCylinder) { return smth GetEndCylinder (aEndCylinder); }
#define COM_FORWARD_IHostDrivePartition_GETTER_EndCylinder_TO_OBJ(obj) COM_FORWARD_IHostDrivePartition_GETTER_EndCylinder_TO ((obj)->)
#define COM_FORWARD_IHostDrivePartition_GETTER_EndCylinder_TO_BASE(base) COM_FORWARD_IHostDrivePartition_GETTER_EndCylinder_TO (base::)
#define COM_FORWARD_IHostDrivePartition_GETTER_EndHead_TO(smth) NS_IMETHOD GetEndHead (PRUint32 * aEndHead) { return smth GetEndHead (aEndHead); }
#define COM_FORWARD_IHostDrivePartition_GETTER_EndHead_TO_OBJ(obj) COM_FORWARD_IHostDrivePartition_GETTER_EndHead_TO ((obj)->)
#define COM_FORWARD_IHostDrivePartition_GETTER_EndHead_TO_BASE(base) COM_FORWARD_IHostDrivePartition_GETTER_EndHead_TO (base::)
#define COM_FORWARD_IHostDrivePartition_GETTER_EndSector_TO(smth) NS_IMETHOD GetEndSector (PRUint32 * aEndSector) { return smth GetEndSector (aEndSector); }
#define COM_FORWARD_IHostDrivePartition_GETTER_EndSector_TO_OBJ(obj) COM_FORWARD_IHostDrivePartition_GETTER_EndSector_TO ((obj)->)
#define COM_FORWARD_IHostDrivePartition_GETTER_EndSector_TO_BASE(base) COM_FORWARD_IHostDrivePartition_GETTER_EndSector_TO (base::)
#define COM_FORWARD_IHostDrivePartition_GETTER_TypeUuid_TO(smth) NS_IMETHOD GetTypeUuid (PRUnichar * * aTypeUuid) { return smth GetTypeUuid (aTypeUuid); }
#define COM_FORWARD_IHostDrivePartition_GETTER_TypeUuid_TO_OBJ(obj) COM_FORWARD_IHostDrivePartition_GETTER_TypeUuid_TO ((obj)->)
#define COM_FORWARD_IHostDrivePartition_GETTER_TypeUuid_TO_BASE(base) COM_FORWARD_IHostDrivePartition_GETTER_TypeUuid_TO (base::)
#define COM_FORWARD_IHostDrivePartition_GETTER_Uuid_TO(smth) NS_IMETHOD GetUuid (PRUnichar * * aUuid) { return smth GetUuid (aUuid); }
#define COM_FORWARD_IHostDrivePartition_GETTER_Uuid_TO_OBJ(obj) COM_FORWARD_IHostDrivePartition_GETTER_Uuid_TO ((obj)->)
#define COM_FORWARD_IHostDrivePartition_GETTER_Uuid_TO_BASE(base) COM_FORWARD_IHostDrivePartition_GETTER_Uuid_TO (base::)
#define COM_FORWARD_IHostDrivePartition_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_IHostDrivePartition_GETTER_Name_TO_OBJ(obj) COM_FORWARD_IHostDrivePartition_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_IHostDrivePartition_GETTER_Name_TO_BASE(base) COM_FORWARD_IHostDrivePartition_GETTER_Name_TO (base::)
#define COM_FORWARD_IHostDrivePartition_TO(smth) NS_FORWARD_IHOSTDRIVEPARTITION (smth)
#define COM_FORWARD_IHostDrivePartition_TO_OBJ(obj) COM_FORWARD_IHostDrivePartition_TO ((obj)->)
#define COM_FORWARD_IHostDrivePartition_TO_BASE(base) COM_FORWARD_IHostDrivePartition_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IHostDrivePartition;

/* starting interface:    IHostDrive */
#define IHOSTDRIVE_IID_STR "70e2e0c3-332c-4d72-b822-2db16e2cb31b"

#define IHOSTDRIVE_IID \
  {0x70e2e0c3, 0x332c, 0x4d72, \
    { 0xb8, 0x22, 0x2d, 0xb1, 0x6e, 0x2c, 0xb3, 0x1b }}

class NS_NO_VTABLE IHostDrive : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IHOSTDRIVE_IID)

  /* readonly attribute wstring drivePath; */
  NS_IMETHOD GetDrivePath(PRUnichar **aDrivePath) = 0;

  /* readonly attribute PartitioningType_T partitioningType; */
  NS_IMETHOD GetPartitioningType(PartitioningType_T *aPartitioningType) = 0;

  /* readonly attribute wstring uuid; */
  NS_IMETHOD GetUuid(PRUnichar **aUuid) = 0;

  /* readonly attribute unsigned long sectorSize; */
  NS_IMETHOD GetSectorSize(PRUint32 *aSectorSize) = 0;

  /* readonly attribute long long size; */
  NS_IMETHOD GetSize(PRInt64 *aSize) = 0;

  /* readonly attribute wstring model; */
  NS_IMETHOD GetModel(PRUnichar **aModel) = 0;

  /* void getPartitions (out unsigned long partitionsSize, [array, size_is (partitionsSize), retval] out IHostDrivePartition partitions); */
  NS_IMETHOD GetPartitions(PRUint32 *partitionsSize, IHostDrivePartition * **partitions) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IHOSTDRIVE \
  NS_IMETHOD GetDrivePath(PRUnichar **aDrivePath) NS_OVERRIDE; \
  NS_IMETHOD GetPartitioningType(PartitioningType_T *aPartitioningType) NS_OVERRIDE; \
  NS_IMETHOD GetUuid(PRUnichar **aUuid) NS_OVERRIDE; \
  NS_IMETHOD GetSectorSize(PRUint32 *aSectorSize) NS_OVERRIDE; \
  NS_IMETHOD GetSize(PRInt64 *aSize) NS_OVERRIDE; \
  NS_IMETHOD GetModel(PRUnichar **aModel) NS_OVERRIDE; \
  NS_IMETHOD GetPartitions(PRUint32 *partitionsSize, IHostDrivePartition * **partitions) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IHOSTDRIVE(_to) \
  NS_IMETHOD GetDrivePath(PRUnichar **aDrivePath) { return _to GetDrivePath(aDrivePath); } \
  NS_IMETHOD GetPartitioningType(PartitioningType_T *aPartitioningType) { return _to GetPartitioningType(aPartitioningType); } \
  NS_IMETHOD GetUuid(PRUnichar **aUuid) { return _to GetUuid(aUuid); } \
  NS_IMETHOD GetSectorSize(PRUint32 *aSectorSize) { return _to GetSectorSize(aSectorSize); } \
  NS_IMETHOD GetSize(PRInt64 *aSize) { return _to GetSize(aSize); } \
  NS_IMETHOD GetModel(PRUnichar **aModel) { return _to GetModel(aModel); } \
  NS_IMETHOD GetPartitions(PRUint32 *partitionsSize, IHostDrivePartition * **partitions) { return _to GetPartitions(partitionsSize, partitions); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IHOSTDRIVE(_to) \
  NS_IMETHOD GetDrivePath(PRUnichar **aDrivePath) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDrivePath(aDrivePath); } \
  NS_IMETHOD GetPartitioningType(PartitioningType_T *aPartitioningType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPartitioningType(aPartitioningType); } \
  NS_IMETHOD GetUuid(PRUnichar **aUuid) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUuid(aUuid); } \
  NS_IMETHOD GetSectorSize(PRUint32 *aSectorSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSectorSize(aSectorSize); } \
  NS_IMETHOD GetSize(PRInt64 *aSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSize(aSize); } \
  NS_IMETHOD GetModel(PRUnichar **aModel) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetModel(aModel); } \
  NS_IMETHOD GetPartitions(PRUint32 *partitionsSize, IHostDrivePartition * **partitions) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPartitions(partitionsSize, partitions); } 

#define COM_FORWARD_IHostDrive_GETTER_DrivePath_TO(smth) NS_IMETHOD GetDrivePath (PRUnichar * * aDrivePath) { return smth GetDrivePath (aDrivePath); }
#define COM_FORWARD_IHostDrive_GETTER_DrivePath_TO_OBJ(obj) COM_FORWARD_IHostDrive_GETTER_DrivePath_TO ((obj)->)
#define COM_FORWARD_IHostDrive_GETTER_DrivePath_TO_BASE(base) COM_FORWARD_IHostDrive_GETTER_DrivePath_TO (base::)
#define COM_FORWARD_IHostDrive_GETTER_PartitioningType_TO(smth) NS_IMETHOD GetPartitioningType (PRUint32 * aPartitioningType) { return smth GetPartitioningType (aPartitioningType); }
#define COM_FORWARD_IHostDrive_GETTER_PartitioningType_TO_OBJ(obj) COM_FORWARD_IHostDrive_GETTER_PartitioningType_TO ((obj)->)
#define COM_FORWARD_IHostDrive_GETTER_PartitioningType_TO_BASE(base) COM_FORWARD_IHostDrive_GETTER_PartitioningType_TO (base::)
#define COM_FORWARD_IHostDrive_GETTER_Uuid_TO(smth) NS_IMETHOD GetUuid (PRUnichar * * aUuid) { return smth GetUuid (aUuid); }
#define COM_FORWARD_IHostDrive_GETTER_Uuid_TO_OBJ(obj) COM_FORWARD_IHostDrive_GETTER_Uuid_TO ((obj)->)
#define COM_FORWARD_IHostDrive_GETTER_Uuid_TO_BASE(base) COM_FORWARD_IHostDrive_GETTER_Uuid_TO (base::)
#define COM_FORWARD_IHostDrive_GETTER_SectorSize_TO(smth) NS_IMETHOD GetSectorSize (PRUint32 * aSectorSize) { return smth GetSectorSize (aSectorSize); }
#define COM_FORWARD_IHostDrive_GETTER_SectorSize_TO_OBJ(obj) COM_FORWARD_IHostDrive_GETTER_SectorSize_TO ((obj)->)
#define COM_FORWARD_IHostDrive_GETTER_SectorSize_TO_BASE(base) COM_FORWARD_IHostDrive_GETTER_SectorSize_TO (base::)
#define COM_FORWARD_IHostDrive_GETTER_Size_TO(smth) NS_IMETHOD GetSize (PRInt64 * aSize) { return smth GetSize (aSize); }
#define COM_FORWARD_IHostDrive_GETTER_Size_TO_OBJ(obj) COM_FORWARD_IHostDrive_GETTER_Size_TO ((obj)->)
#define COM_FORWARD_IHostDrive_GETTER_Size_TO_BASE(base) COM_FORWARD_IHostDrive_GETTER_Size_TO (base::)
#define COM_FORWARD_IHostDrive_GETTER_Model_TO(smth) NS_IMETHOD GetModel (PRUnichar * * aModel) { return smth GetModel (aModel); }
#define COM_FORWARD_IHostDrive_GETTER_Model_TO_OBJ(obj) COM_FORWARD_IHostDrive_GETTER_Model_TO ((obj)->)
#define COM_FORWARD_IHostDrive_GETTER_Model_TO_BASE(base) COM_FORWARD_IHostDrive_GETTER_Model_TO (base::)
#define COM_FORWARD_IHostDrive_GETTER_Partitions_TO(smth) NS_IMETHOD GetPartitions (PRUint32 * aPartitionsSize, IHostDrivePartition * * * aPartitions) { return smth GetPartitions (aPartitionsSize, aPartitions); }
#define COM_FORWARD_IHostDrive_GETTER_Partitions_TO_OBJ(obj) COM_FORWARD_IHostDrive_GETTER_Partitions_TO ((obj)->)
#define COM_FORWARD_IHostDrive_GETTER_Partitions_TO_BASE(base) COM_FORWARD_IHostDrive_GETTER_Partitions_TO (base::)
#define COM_FORWARD_IHostDrive_TO(smth) NS_FORWARD_IHOSTDRIVE (smth)
#define COM_FORWARD_IHostDrive_TO_OBJ(obj) COM_FORWARD_IHostDrive_TO ((obj)->)
#define COM_FORWARD_IHostDrive_TO_BASE(base) COM_FORWARD_IHostDrive_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IHostDrive;

/* starting interface:    IHostX86 */
#define IHOSTX86_IID_STR "50c97996-9cf8-417f-bd79-1e0471367cd3"

#define IHOSTX86_IID \
  {0x50c97996, 0x9cf8, 0x417f, \
    { 0xbd, 0x79, 0x1e, 0x04, 0x71, 0x36, 0x7c, 0xd3 }}

class NS_NO_VTABLE IHostX86 : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IHOSTX86_IID)

  /* readonly attribute unsigned long InternalAndReservedAttribute1IHostX86; */
  NS_IMETHOD GetInternalAndReservedAttribute1IHostX86(PRUint32 *aInternalAndReservedAttribute1IHostX86) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IHostX86; */
  NS_IMETHOD GetInternalAndReservedAttribute2IHostX86(PRUint32 *aInternalAndReservedAttribute2IHostX86) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IHostX86; */
  NS_IMETHOD GetInternalAndReservedAttribute3IHostX86(PRUint32 *aInternalAndReservedAttribute3IHostX86) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IHostX86; */
  NS_IMETHOD GetInternalAndReservedAttribute4IHostX86(PRUint32 *aInternalAndReservedAttribute4IHostX86) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IHostX86; */
  NS_IMETHOD GetInternalAndReservedAttribute5IHostX86(PRUint32 *aInternalAndReservedAttribute5IHostX86) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IHostX86; */
  NS_IMETHOD GetInternalAndReservedAttribute6IHostX86(PRUint32 *aInternalAndReservedAttribute6IHostX86) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IHostX86; */
  NS_IMETHOD GetInternalAndReservedAttribute7IHostX86(PRUint32 *aInternalAndReservedAttribute7IHostX86) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IHostX86; */
  NS_IMETHOD GetInternalAndReservedAttribute8IHostX86(PRUint32 *aInternalAndReservedAttribute8IHostX86) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute9IHostX86; */
  NS_IMETHOD GetInternalAndReservedAttribute9IHostX86(PRUint32 *aInternalAndReservedAttribute9IHostX86) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute10IHostX86; */
  NS_IMETHOD GetInternalAndReservedAttribute10IHostX86(PRUint32 *aInternalAndReservedAttribute10IHostX86) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute11IHostX86; */
  NS_IMETHOD GetInternalAndReservedAttribute11IHostX86(PRUint32 *aInternalAndReservedAttribute11IHostX86) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute12IHostX86; */
  NS_IMETHOD GetInternalAndReservedAttribute12IHostX86(PRUint32 *aInternalAndReservedAttribute12IHostX86) = 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 InternalAndReservedMethod1IHostX86 (); */
  NS_IMETHOD InternalAndReservedMethod1IHostX86(void) = 0;

  /* void InternalAndReservedMethod2IHostX86 (); */
  NS_IMETHOD InternalAndReservedMethod2IHostX86(void) = 0;

  /* void InternalAndReservedMethod3IHostX86 (); */
  NS_IMETHOD InternalAndReservedMethod3IHostX86(void) = 0;

  /* void InternalAndReservedMethod4IHostX86 (); */
  NS_IMETHOD InternalAndReservedMethod4IHostX86(void) = 0;

  /* void InternalAndReservedMethod5IHostX86 (); */
  NS_IMETHOD InternalAndReservedMethod5IHostX86(void) = 0;

  /* void InternalAndReservedMethod6IHostX86 (); */
  NS_IMETHOD InternalAndReservedMethod6IHostX86(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IHOSTX86 \
  NS_IMETHOD GetInternalAndReservedAttribute1IHostX86(PRUint32 *aInternalAndReservedAttribute1IHostX86) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IHostX86(PRUint32 *aInternalAndReservedAttribute2IHostX86) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IHostX86(PRUint32 *aInternalAndReservedAttribute3IHostX86) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IHostX86(PRUint32 *aInternalAndReservedAttribute4IHostX86) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IHostX86(PRUint32 *aInternalAndReservedAttribute5IHostX86) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IHostX86(PRUint32 *aInternalAndReservedAttribute6IHostX86) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IHostX86(PRUint32 *aInternalAndReservedAttribute7IHostX86) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IHostX86(PRUint32 *aInternalAndReservedAttribute8IHostX86) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute9IHostX86(PRUint32 *aInternalAndReservedAttribute9IHostX86) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute10IHostX86(PRUint32 *aInternalAndReservedAttribute10IHostX86) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute11IHostX86(PRUint32 *aInternalAndReservedAttribute11IHostX86) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute12IHostX86(PRUint32 *aInternalAndReservedAttribute12IHostX86) NS_OVERRIDE; \
  NS_IMETHOD GetProcessorCPUIDLeaf(PRUint32 cpuId, PRUint32 leaf, PRUint32 subLeaf, PRUint32 *valEax, PRUint32 *valEbx, PRUint32 *valEcx, PRUint32 *valEdx) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IHostX86(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IHostX86(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IHostX86(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IHostX86(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod5IHostX86(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod6IHostX86(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IHOSTX86(_to) \
  NS_IMETHOD GetInternalAndReservedAttribute1IHostX86(PRUint32 *aInternalAndReservedAttribute1IHostX86) { return _to GetInternalAndReservedAttribute1IHostX86(aInternalAndReservedAttribute1IHostX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IHostX86(PRUint32 *aInternalAndReservedAttribute2IHostX86) { return _to GetInternalAndReservedAttribute2IHostX86(aInternalAndReservedAttribute2IHostX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IHostX86(PRUint32 *aInternalAndReservedAttribute3IHostX86) { return _to GetInternalAndReservedAttribute3IHostX86(aInternalAndReservedAttribute3IHostX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IHostX86(PRUint32 *aInternalAndReservedAttribute4IHostX86) { return _to GetInternalAndReservedAttribute4IHostX86(aInternalAndReservedAttribute4IHostX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IHostX86(PRUint32 *aInternalAndReservedAttribute5IHostX86) { return _to GetInternalAndReservedAttribute5IHostX86(aInternalAndReservedAttribute5IHostX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IHostX86(PRUint32 *aInternalAndReservedAttribute6IHostX86) { return _to GetInternalAndReservedAttribute6IHostX86(aInternalAndReservedAttribute6IHostX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IHostX86(PRUint32 *aInternalAndReservedAttribute7IHostX86) { return _to GetInternalAndReservedAttribute7IHostX86(aInternalAndReservedAttribute7IHostX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IHostX86(PRUint32 *aInternalAndReservedAttribute8IHostX86) { return _to GetInternalAndReservedAttribute8IHostX86(aInternalAndReservedAttribute8IHostX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute9IHostX86(PRUint32 *aInternalAndReservedAttribute9IHostX86) { return _to GetInternalAndReservedAttribute9IHostX86(aInternalAndReservedAttribute9IHostX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute10IHostX86(PRUint32 *aInternalAndReservedAttribute10IHostX86) { return _to GetInternalAndReservedAttribute10IHostX86(aInternalAndReservedAttribute10IHostX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute11IHostX86(PRUint32 *aInternalAndReservedAttribute11IHostX86) { return _to GetInternalAndReservedAttribute11IHostX86(aInternalAndReservedAttribute11IHostX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute12IHostX86(PRUint32 *aInternalAndReservedAttribute12IHostX86) { return _to GetInternalAndReservedAttribute12IHostX86(aInternalAndReservedAttribute12IHostX86); } \
  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 InternalAndReservedMethod1IHostX86(void) { return _to InternalAndReservedMethod1IHostX86(); } \
  NS_IMETHOD InternalAndReservedMethod2IHostX86(void) { return _to InternalAndReservedMethod2IHostX86(); } \
  NS_IMETHOD InternalAndReservedMethod3IHostX86(void) { return _to InternalAndReservedMethod3IHostX86(); } \
  NS_IMETHOD InternalAndReservedMethod4IHostX86(void) { return _to InternalAndReservedMethod4IHostX86(); } \
  NS_IMETHOD InternalAndReservedMethod5IHostX86(void) { return _to InternalAndReservedMethod5IHostX86(); } \
  NS_IMETHOD InternalAndReservedMethod6IHostX86(void) { return _to InternalAndReservedMethod6IHostX86(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IHOSTX86(_to) \
  NS_IMETHOD GetInternalAndReservedAttribute1IHostX86(PRUint32 *aInternalAndReservedAttribute1IHostX86) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IHostX86(aInternalAndReservedAttribute1IHostX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IHostX86(PRUint32 *aInternalAndReservedAttribute2IHostX86) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IHostX86(aInternalAndReservedAttribute2IHostX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IHostX86(PRUint32 *aInternalAndReservedAttribute3IHostX86) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IHostX86(aInternalAndReservedAttribute3IHostX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IHostX86(PRUint32 *aInternalAndReservedAttribute4IHostX86) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IHostX86(aInternalAndReservedAttribute4IHostX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IHostX86(PRUint32 *aInternalAndReservedAttribute5IHostX86) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IHostX86(aInternalAndReservedAttribute5IHostX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IHostX86(PRUint32 *aInternalAndReservedAttribute6IHostX86) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IHostX86(aInternalAndReservedAttribute6IHostX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IHostX86(PRUint32 *aInternalAndReservedAttribute7IHostX86) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IHostX86(aInternalAndReservedAttribute7IHostX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IHostX86(PRUint32 *aInternalAndReservedAttribute8IHostX86) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IHostX86(aInternalAndReservedAttribute8IHostX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute9IHostX86(PRUint32 *aInternalAndReservedAttribute9IHostX86) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute9IHostX86(aInternalAndReservedAttribute9IHostX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute10IHostX86(PRUint32 *aInternalAndReservedAttribute10IHostX86) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute10IHostX86(aInternalAndReservedAttribute10IHostX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute11IHostX86(PRUint32 *aInternalAndReservedAttribute11IHostX86) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute11IHostX86(aInternalAndReservedAttribute11IHostX86); } \
  NS_IMETHOD GetInternalAndReservedAttribute12IHostX86(PRUint32 *aInternalAndReservedAttribute12IHostX86) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute12IHostX86(aInternalAndReservedAttribute12IHostX86); } \
  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 InternalAndReservedMethod1IHostX86(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IHostX86(); } \
  NS_IMETHOD InternalAndReservedMethod2IHostX86(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IHostX86(); } \
  NS_IMETHOD InternalAndReservedMethod3IHostX86(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IHostX86(); } \
  NS_IMETHOD InternalAndReservedMethod4IHostX86(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IHostX86(); } \
  NS_IMETHOD InternalAndReservedMethod5IHostX86(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod5IHostX86(); } \
  NS_IMETHOD InternalAndReservedMethod6IHostX86(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod6IHostX86(); } 

#define COM_FORWARD_IHostX86_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_IHostX86_GetProcessorCPUIDLeaf_TO_OBJ(obj) COM_FORWARD_IHostX86_GetProcessorCPUIDLeaf_TO ((obj)->)
#define COM_FORWARD_IHostX86_GetProcessorCPUIDLeaf_TO_BASE(base) COM_FORWARD_IHostX86_GetProcessorCPUIDLeaf_TO (base::)
#define COM_FORWARD_IHostX86_TO(smth) NS_FORWARD_IHOSTX86 (smth)
#define COM_FORWARD_IHostX86_TO_OBJ(obj) COM_FORWARD_IHostX86_TO ((obj)->)
#define COM_FORWARD_IHostX86_TO_BASE(base) COM_FORWARD_IHostX86_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IHostX86;

/* starting interface:    IHost */
#define IHOST_IID_STR "d5dcece0-b202-4416-a138-03502784cc07"

#define IHOST_IID \
  {0xd5dcece0, 0xb202, 0x4416, \
    { 0xa1, 0x38, 0x03, 0x50, 0x27, 0x84, 0xcc, 0x07 }}

class NS_NO_VTABLE IHost : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IHOST_IID)

  /* readonly attribute PlatformArchitecture_T architecture; */
  NS_IMETHOD GetArchitecture(PlatformArchitecture_T *aArchitecture) = 0;

  /* readonly attribute IHostX86 x86; */
  NS_IMETHOD GetX86(IHostX86 * *aX86) = 0;

  /* 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 getAudioDevices (out unsigned long audioDevicesSize, [array, size_is (audioDevicesSize), retval] out IHostAudioDevice audioDevices); */
  NS_IMETHOD GetAudioDevices(PRUint32 *audioDevicesSize, IHostAudioDevice * **audioDevices) = 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;

  /* void getHostDrives (out unsigned long hostDrivesSize, [array, size_is (hostDrivesSize), retval] out IHostDrive hostDrives); */
  NS_IMETHOD GetHostDrives(PRUint32 *hostDrivesSize, IHostDrive * **hostDrives) = 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;

  /* void getVideoInputDevices (out unsigned long videoInputDevicesSize, [array, size_is (videoInputDevicesSize), retval] out IHostVideoInputDevice videoInputDevices); */
  NS_IMETHOD GetVideoInputDevices(PRUint32 *videoInputDevicesSize, IHostVideoInputDevice * **videoInputDevices) = 0;

  /* readonly attribute IUpdateAgent updateHost; */
  NS_IMETHOD GetUpdateHost(IUpdateAgent * *aUpdateHost) = 0;

  /* readonly attribute IUpdateAgent updateExtPack; */
  NS_IMETHOD GetUpdateExtPack(IUpdateAgent * *aUpdateExtPack) = 0;

  /* readonly attribute IUpdateAgent updateGuestAdditions; */
  NS_IMETHOD GetUpdateGuestAdditions(IUpdateAgent * *aUpdateGuestAdditions) = 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 ProcessorFeature_T feature, [retval] out boolean supported); */
  NS_IMETHOD GetProcessorFeature(ProcessorFeature_T feature, PRBool *supported) = 0;

  /* void getProcessorDescription (in unsigned long cpuId, [retval] out wstring description); */
  NS_IMETHOD GetProcessorDescription(PRUint32 cpuId, PRUnichar **description) = 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 HostNetworkInterfaceType_T type, out unsigned long networkInterfacesSize, [array, size_is (networkInterfacesSize), retval] out IHostNetworkInterface networkInterfaces); */
  NS_IMETHOD FindHostNetworkInterfacesOfType(HostNetworkInterfaceType_T 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;

  /* void isExecutionEngineSupported (in CPUArchitecture_T cpuArchitecture, in VMExecutionEngine_T executionEngine, [retval] out boolean isSupported); */
  NS_IMETHOD IsExecutionEngineSupported(CPUArchitecture_T cpuArchitecture, VMExecutionEngine_T executionEngine, PRBool *isSupported) = 0;

  /* void InternalAndReservedMethod1IHost (); */
  NS_IMETHOD InternalAndReservedMethod1IHost(void) = 0;

  /* void InternalAndReservedMethod2IHost (); */
  NS_IMETHOD InternalAndReservedMethod2IHost(void) = 0;

  /* void InternalAndReservedMethod3IHost (); */
  NS_IMETHOD InternalAndReservedMethod3IHost(void) = 0;

  /* void InternalAndReservedMethod4IHost (); */
  NS_IMETHOD InternalAndReservedMethod4IHost(void) = 0;

  /* void InternalAndReservedMethod5IHost (); */
  NS_IMETHOD InternalAndReservedMethod5IHost(void) = 0;

  /* void InternalAndReservedMethod6IHost (); */
  NS_IMETHOD InternalAndReservedMethod6IHost(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IHOST \
  NS_IMETHOD GetArchitecture(PlatformArchitecture_T *aArchitecture) NS_OVERRIDE; \
  NS_IMETHOD GetX86(IHostX86 * *aX86) NS_OVERRIDE; \
  NS_IMETHOD GetDVDDrives(PRUint32 *DVDDrivesSize, IMedium * **DVDDrives) NS_OVERRIDE; \
  NS_IMETHOD GetFloppyDrives(PRUint32 *floppyDrivesSize, IMedium * **floppyDrives) NS_OVERRIDE; \
  NS_IMETHOD GetAudioDevices(PRUint32 *audioDevicesSize, IHostAudioDevice * **audioDevices) NS_OVERRIDE; \
  NS_IMETHOD GetUSBDevices(PRUint32 *USBDevicesSize, IHostUSBDevice * **USBDevices) NS_OVERRIDE; \
  NS_IMETHOD GetUSBDeviceFilters(PRUint32 *USBDeviceFiltersSize, IHostUSBDeviceFilter * **USBDeviceFilters) NS_OVERRIDE; \
  NS_IMETHOD GetNetworkInterfaces(PRUint32 *networkInterfacesSize, IHostNetworkInterface * **networkInterfaces) NS_OVERRIDE; \
  NS_IMETHOD GetNameServers(PRUint32 *nameServersSize, PRUnichar ***nameServers) NS_OVERRIDE; \
  NS_IMETHOD GetDomainName(PRUnichar **aDomainName) NS_OVERRIDE; \
  NS_IMETHOD GetSearchStrings(PRUint32 *searchStringsSize, PRUnichar ***searchStrings) NS_OVERRIDE; \
  NS_IMETHOD GetProcessorCount(PRUint32 *aProcessorCount) NS_OVERRIDE; \
  NS_IMETHOD GetProcessorOnlineCount(PRUint32 *aProcessorOnlineCount) NS_OVERRIDE; \
  NS_IMETHOD GetProcessorCoreCount(PRUint32 *aProcessorCoreCount) NS_OVERRIDE; \
  NS_IMETHOD GetProcessorOnlineCoreCount(PRUint32 *aProcessorOnlineCoreCount) NS_OVERRIDE; \
  NS_IMETHOD GetHostDrives(PRUint32 *hostDrivesSize, IHostDrive * **hostDrives) NS_OVERRIDE; \
  NS_IMETHOD GetMemorySize(PRUint32 *aMemorySize) NS_OVERRIDE; \
  NS_IMETHOD GetMemoryAvailable(PRUint32 *aMemoryAvailable) NS_OVERRIDE; \
  NS_IMETHOD GetOperatingSystem(PRUnichar **aOperatingSystem) NS_OVERRIDE; \
  NS_IMETHOD GetOSVersion(PRUnichar **aOSVersion) NS_OVERRIDE; \
  NS_IMETHOD GetUTCTime(PRInt64 *aUTCTime) NS_OVERRIDE; \
  NS_IMETHOD GetVideoInputDevices(PRUint32 *videoInputDevicesSize, IHostVideoInputDevice * **videoInputDevices) NS_OVERRIDE; \
  NS_IMETHOD GetUpdateHost(IUpdateAgent * *aUpdateHost) NS_OVERRIDE; \
  NS_IMETHOD GetUpdateExtPack(IUpdateAgent * *aUpdateExtPack) NS_OVERRIDE; \
  NS_IMETHOD GetUpdateGuestAdditions(IUpdateAgent * *aUpdateGuestAdditions) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IHost(PRUint32 *aInternalAndReservedAttribute1IHost) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IHost(PRUint32 *aInternalAndReservedAttribute2IHost) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IHost(PRUint32 *aInternalAndReservedAttribute3IHost) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IHost(PRUint32 *aInternalAndReservedAttribute4IHost) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IHost(PRUint32 *aInternalAndReservedAttribute5IHost) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IHost(PRUint32 *aInternalAndReservedAttribute6IHost) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IHost(PRUint32 *aInternalAndReservedAttribute7IHost) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IHost(PRUint32 *aInternalAndReservedAttribute8IHost) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute9IHost(PRUint32 *aInternalAndReservedAttribute9IHost) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute10IHost(PRUint32 *aInternalAndReservedAttribute10IHost) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute11IHost(PRUint32 *aInternalAndReservedAttribute11IHost) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute12IHost(PRUint32 *aInternalAndReservedAttribute12IHost) NS_OVERRIDE; \
  NS_IMETHOD GetProcessorSpeed(PRUint32 cpuId, PRUint32 *speed) NS_OVERRIDE; \
  NS_IMETHOD GetProcessorFeature(ProcessorFeature_T feature, PRBool *supported) NS_OVERRIDE; \
  NS_IMETHOD GetProcessorDescription(PRUint32 cpuId, PRUnichar **description) NS_OVERRIDE; \
  NS_IMETHOD CreateHostOnlyNetworkInterface(IHostNetworkInterface * *hostInterface, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD RemoveHostOnlyNetworkInterface(const PRUnichar *id, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD CreateUSBDeviceFilter(const PRUnichar *name, IHostUSBDeviceFilter * *filter) NS_OVERRIDE; \
  NS_IMETHOD InsertUSBDeviceFilter(PRUint32 position, IHostUSBDeviceFilter * filter) NS_OVERRIDE; \
  NS_IMETHOD RemoveUSBDeviceFilter(PRUint32 position) NS_OVERRIDE; \
  NS_IMETHOD FindHostDVDDrive(const PRUnichar *name, IMedium * *drive) NS_OVERRIDE; \
  NS_IMETHOD FindHostFloppyDrive(const PRUnichar *name, IMedium * *drive) NS_OVERRIDE; \
  NS_IMETHOD FindHostNetworkInterfaceByName(const PRUnichar *name, IHostNetworkInterface * *networkInterface) NS_OVERRIDE; \
  NS_IMETHOD FindHostNetworkInterfaceById(const PRUnichar *id, IHostNetworkInterface * *networkInterface) NS_OVERRIDE; \
  NS_IMETHOD FindHostNetworkInterfacesOfType(HostNetworkInterfaceType_T type, PRUint32 *networkInterfacesSize, IHostNetworkInterface * **networkInterfaces) NS_OVERRIDE; \
  NS_IMETHOD FindUSBDeviceById(const PRUnichar *id, IHostUSBDevice * *device) NS_OVERRIDE; \
  NS_IMETHOD FindUSBDeviceByAddress(const PRUnichar *name, IHostUSBDevice * *device) NS_OVERRIDE; \
  NS_IMETHOD GenerateMACAddress(PRUnichar **address) NS_OVERRIDE; \
  NS_IMETHOD AddUSBDeviceSource(const PRUnichar *backend, const PRUnichar *id, const PRUnichar *address, PRUint32 propertyNamesSize, const PRUnichar **propertyNames, PRUint32 propertyValuesSize, const PRUnichar **propertyValues) NS_OVERRIDE; \
  NS_IMETHOD RemoveUSBDeviceSource(const PRUnichar *id) NS_OVERRIDE; \
  NS_IMETHOD IsExecutionEngineSupported(CPUArchitecture_T cpuArchitecture, VMExecutionEngine_T executionEngine, PRBool *isSupported) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IHost(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IHost(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IHost(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IHost(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod5IHost(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod6IHost(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IHOST(_to) \
  NS_IMETHOD GetArchitecture(PlatformArchitecture_T *aArchitecture) { return _to GetArchitecture(aArchitecture); } \
  NS_IMETHOD GetX86(IHostX86 * *aX86) { return _to GetX86(aX86); } \
  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 GetAudioDevices(PRUint32 *audioDevicesSize, IHostAudioDevice * **audioDevices) { return _to GetAudioDevices(audioDevicesSize, audioDevices); } \
  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 GetHostDrives(PRUint32 *hostDrivesSize, IHostDrive * **hostDrives) { return _to GetHostDrives(hostDrivesSize, hostDrives); } \
  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 GetVideoInputDevices(PRUint32 *videoInputDevicesSize, IHostVideoInputDevice * **videoInputDevices) { return _to GetVideoInputDevices(videoInputDevicesSize, videoInputDevices); } \
  NS_IMETHOD GetUpdateHost(IUpdateAgent * *aUpdateHost) { return _to GetUpdateHost(aUpdateHost); } \
  NS_IMETHOD GetUpdateExtPack(IUpdateAgent * *aUpdateExtPack) { return _to GetUpdateExtPack(aUpdateExtPack); } \
  NS_IMETHOD GetUpdateGuestAdditions(IUpdateAgent * *aUpdateGuestAdditions) { return _to GetUpdateGuestAdditions(aUpdateGuestAdditions); } \
  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(ProcessorFeature_T feature, PRBool *supported) { return _to GetProcessorFeature(feature, supported); } \
  NS_IMETHOD GetProcessorDescription(PRUint32 cpuId, PRUnichar **description) { return _to GetProcessorDescription(cpuId, description); } \
  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(HostNetworkInterfaceType_T 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); } \
  NS_IMETHOD IsExecutionEngineSupported(CPUArchitecture_T cpuArchitecture, VMExecutionEngine_T executionEngine, PRBool *isSupported) { return _to IsExecutionEngineSupported(cpuArchitecture, executionEngine, isSupported); } \
  NS_IMETHOD InternalAndReservedMethod1IHost(void) { return _to InternalAndReservedMethod1IHost(); } \
  NS_IMETHOD InternalAndReservedMethod2IHost(void) { return _to InternalAndReservedMethod2IHost(); } \
  NS_IMETHOD InternalAndReservedMethod3IHost(void) { return _to InternalAndReservedMethod3IHost(); } \
  NS_IMETHOD InternalAndReservedMethod4IHost(void) { return _to InternalAndReservedMethod4IHost(); } \
  NS_IMETHOD InternalAndReservedMethod5IHost(void) { return _to InternalAndReservedMethod5IHost(); } \
  NS_IMETHOD InternalAndReservedMethod6IHost(void) { return _to InternalAndReservedMethod6IHost(); } 

/* 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 GetArchitecture(PlatformArchitecture_T *aArchitecture) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetArchitecture(aArchitecture); } \
  NS_IMETHOD GetX86(IHostX86 * *aX86) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetX86(aX86); } \
  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 GetAudioDevices(PRUint32 *audioDevicesSize, IHostAudioDevice * **audioDevices) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAudioDevices(audioDevicesSize, audioDevices); } \
  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 GetHostDrives(PRUint32 *hostDrivesSize, IHostDrive * **hostDrives) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHostDrives(hostDrivesSize, hostDrives); } \
  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 GetVideoInputDevices(PRUint32 *videoInputDevicesSize, IHostVideoInputDevice * **videoInputDevices) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVideoInputDevices(videoInputDevicesSize, videoInputDevices); } \
  NS_IMETHOD GetUpdateHost(IUpdateAgent * *aUpdateHost) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUpdateHost(aUpdateHost); } \
  NS_IMETHOD GetUpdateExtPack(IUpdateAgent * *aUpdateExtPack) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUpdateExtPack(aUpdateExtPack); } \
  NS_IMETHOD GetUpdateGuestAdditions(IUpdateAgent * *aUpdateGuestAdditions) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUpdateGuestAdditions(aUpdateGuestAdditions); } \
  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(ProcessorFeature_T 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 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(HostNetworkInterfaceType_T 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); } \
  NS_IMETHOD IsExecutionEngineSupported(CPUArchitecture_T cpuArchitecture, VMExecutionEngine_T executionEngine, PRBool *isSupported) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsExecutionEngineSupported(cpuArchitecture, executionEngine, isSupported); } \
  NS_IMETHOD InternalAndReservedMethod1IHost(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IHost(); } \
  NS_IMETHOD InternalAndReservedMethod2IHost(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IHost(); } \
  NS_IMETHOD InternalAndReservedMethod3IHost(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IHost(); } \
  NS_IMETHOD InternalAndReservedMethod4IHost(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IHost(); } \
  NS_IMETHOD InternalAndReservedMethod5IHost(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod5IHost(); } \
  NS_IMETHOD InternalAndReservedMethod6IHost(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod6IHost(); } 

#define COM_FORWARD_IHost_GETTER_Architecture_TO(smth) NS_IMETHOD GetArchitecture (PRUint32 * aArchitecture) { return smth GetArchitecture (aArchitecture); }
#define COM_FORWARD_IHost_GETTER_Architecture_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_Architecture_TO ((obj)->)
#define COM_FORWARD_IHost_GETTER_Architecture_TO_BASE(base) COM_FORWARD_IHost_GETTER_Architecture_TO (base::)
#define COM_FORWARD_IHost_GETTER_X86_TO(smth) NS_IMETHOD GetX86 (IHostX86 * * aX86) { return smth GetX86 (aX86); }
#define COM_FORWARD_IHost_GETTER_X86_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_X86_TO ((obj)->)
#define COM_FORWARD_IHost_GETTER_X86_TO_BASE(base) COM_FORWARD_IHost_GETTER_X86_TO (base::)
#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_AudioDevices_TO(smth) NS_IMETHOD GetAudioDevices (PRUint32 * aAudioDevicesSize, IHostAudioDevice * * * aAudioDevices) { return smth GetAudioDevices (aAudioDevicesSize, aAudioDevices); }
#define COM_FORWARD_IHost_GETTER_AudioDevices_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_AudioDevices_TO ((obj)->)
#define COM_FORWARD_IHost_GETTER_AudioDevices_TO_BASE(base) COM_FORWARD_IHost_GETTER_AudioDevices_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_HostDrives_TO(smth) NS_IMETHOD GetHostDrives (PRUint32 * aHostDrivesSize, IHostDrive * * * aHostDrives) { return smth GetHostDrives (aHostDrivesSize, aHostDrives); }
#define COM_FORWARD_IHost_GETTER_HostDrives_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_HostDrives_TO ((obj)->)
#define COM_FORWARD_IHost_GETTER_HostDrives_TO_BASE(base) COM_FORWARD_IHost_GETTER_HostDrives_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_VideoInputDevices_TO(smth) NS_IMETHOD GetVideoInputDevices (PRUint32 * aVideoInputDevicesSize, IHostVideoInputDevice * * * aVideoInputDevices) { return smth GetVideoInputDevices (aVideoInputDevicesSize, aVideoInputDevices); }
#define COM_FORWARD_IHost_GETTER_VideoInputDevices_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_VideoInputDevices_TO ((obj)->)
#define COM_FORWARD_IHost_GETTER_VideoInputDevices_TO_BASE(base) COM_FORWARD_IHost_GETTER_VideoInputDevices_TO (base::)
#define COM_FORWARD_IHost_GETTER_UpdateHost_TO(smth) NS_IMETHOD GetUpdateHost (IUpdateAgent * * aUpdateHost) { return smth GetUpdateHost (aUpdateHost); }
#define COM_FORWARD_IHost_GETTER_UpdateHost_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_UpdateHost_TO ((obj)->)
#define COM_FORWARD_IHost_GETTER_UpdateHost_TO_BASE(base) COM_FORWARD_IHost_GETTER_UpdateHost_TO (base::)
#define COM_FORWARD_IHost_GETTER_UpdateExtPack_TO(smth) NS_IMETHOD GetUpdateExtPack (IUpdateAgent * * aUpdateExtPack) { return smth GetUpdateExtPack (aUpdateExtPack); }
#define COM_FORWARD_IHost_GETTER_UpdateExtPack_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_UpdateExtPack_TO ((obj)->)
#define COM_FORWARD_IHost_GETTER_UpdateExtPack_TO_BASE(base) COM_FORWARD_IHost_GETTER_UpdateExtPack_TO (base::)
#define COM_FORWARD_IHost_GETTER_UpdateGuestAdditions_TO(smth) NS_IMETHOD GetUpdateGuestAdditions (IUpdateAgent * * aUpdateGuestAdditions) { return smth GetUpdateGuestAdditions (aUpdateGuestAdditions); }
#define COM_FORWARD_IHost_GETTER_UpdateGuestAdditions_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_UpdateGuestAdditions_TO ((obj)->)
#define COM_FORWARD_IHost_GETTER_UpdateGuestAdditions_TO_BASE(base) COM_FORWARD_IHost_GETTER_UpdateGuestAdditions_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_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_IsExecutionEngineSupported_TO(smth) NS_IMETHOD IsExecutionEngineSupported (PRUint32 aCpuArchitecture, PRUint32 aExecutionEngine, PRBool * aIsSupported) { return smth IsExecutionEngineSupported (aCpuArchitecture, aExecutionEngine, aIsSupported); }
#define COM_FORWARD_IHost_IsExecutionEngineSupported_TO_OBJ(obj) COM_FORWARD_IHost_IsExecutionEngineSupported_TO ((obj)->)
#define COM_FORWARD_IHost_IsExecutionEngineSupported_TO_BASE(base) COM_FORWARD_IHost_IsExecutionEngineSupported_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:    ICPUProfile */
#define ICPUPROFILE_IID_STR "b7fda727-7a08-46ee-8dd8-f8d7308b519c"

#define ICPUPROFILE_IID \
  {0xb7fda727, 0x7a08, 0x46ee, \
    { 0x8d, 0xd8, 0xf8, 0xd7, 0x30, 0x8b, 0x51, 0x9c }}

class NS_NO_VTABLE ICPUProfile : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ICPUPROFILE_IID)

  /* readonly attribute wstring name; */
  NS_IMETHOD GetName(PRUnichar **aName) = 0;

  /* readonly attribute wstring fullName; */
  NS_IMETHOD GetFullName(PRUnichar **aFullName) = 0;

  /* readonly attribute CPUArchitecture_T architecture; */
  NS_IMETHOD GetArchitecture(CPUArchitecture_T *aArchitecture) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1ICPUProfile; */
  NS_IMETHOD GetInternalAndReservedAttribute1ICPUProfile(PRUint32 *aInternalAndReservedAttribute1ICPUProfile) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2ICPUProfile; */
  NS_IMETHOD GetInternalAndReservedAttribute2ICPUProfile(PRUint32 *aInternalAndReservedAttribute2ICPUProfile) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3ICPUProfile; */
  NS_IMETHOD GetInternalAndReservedAttribute3ICPUProfile(PRUint32 *aInternalAndReservedAttribute3ICPUProfile) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4ICPUProfile; */
  NS_IMETHOD GetInternalAndReservedAttribute4ICPUProfile(PRUint32 *aInternalAndReservedAttribute4ICPUProfile) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5ICPUProfile; */
  NS_IMETHOD GetInternalAndReservedAttribute5ICPUProfile(PRUint32 *aInternalAndReservedAttribute5ICPUProfile) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6ICPUProfile; */
  NS_IMETHOD GetInternalAndReservedAttribute6ICPUProfile(PRUint32 *aInternalAndReservedAttribute6ICPUProfile) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7ICPUProfile; */
  NS_IMETHOD GetInternalAndReservedAttribute7ICPUProfile(PRUint32 *aInternalAndReservedAttribute7ICPUProfile) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8ICPUProfile; */
  NS_IMETHOD GetInternalAndReservedAttribute8ICPUProfile(PRUint32 *aInternalAndReservedAttribute8ICPUProfile) = 0;

  /* void InternalAndReservedMethod1ICPUProfile (); */
  NS_IMETHOD InternalAndReservedMethod1ICPUProfile(void) = 0;

  /* void InternalAndReservedMethod2ICPUProfile (); */
  NS_IMETHOD InternalAndReservedMethod2ICPUProfile(void) = 0;

  /* void InternalAndReservedMethod3ICPUProfile (); */
  NS_IMETHOD InternalAndReservedMethod3ICPUProfile(void) = 0;

  /* void InternalAndReservedMethod4ICPUProfile (); */
  NS_IMETHOD InternalAndReservedMethod4ICPUProfile(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ICPUPROFILE \
  NS_IMETHOD GetName(PRUnichar **aName) NS_OVERRIDE; \
  NS_IMETHOD GetFullName(PRUnichar **aFullName) NS_OVERRIDE; \
  NS_IMETHOD GetArchitecture(CPUArchitecture_T *aArchitecture) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1ICPUProfile(PRUint32 *aInternalAndReservedAttribute1ICPUProfile) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2ICPUProfile(PRUint32 *aInternalAndReservedAttribute2ICPUProfile) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3ICPUProfile(PRUint32 *aInternalAndReservedAttribute3ICPUProfile) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4ICPUProfile(PRUint32 *aInternalAndReservedAttribute4ICPUProfile) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5ICPUProfile(PRUint32 *aInternalAndReservedAttribute5ICPUProfile) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6ICPUProfile(PRUint32 *aInternalAndReservedAttribute6ICPUProfile) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7ICPUProfile(PRUint32 *aInternalAndReservedAttribute7ICPUProfile) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8ICPUProfile(PRUint32 *aInternalAndReservedAttribute8ICPUProfile) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1ICPUProfile(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2ICPUProfile(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3ICPUProfile(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4ICPUProfile(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ICPUPROFILE(_to) \
  NS_IMETHOD GetName(PRUnichar **aName) { return _to GetName(aName); } \
  NS_IMETHOD GetFullName(PRUnichar **aFullName) { return _to GetFullName(aFullName); } \
  NS_IMETHOD GetArchitecture(CPUArchitecture_T *aArchitecture) { return _to GetArchitecture(aArchitecture); } \
  NS_IMETHOD GetInternalAndReservedAttribute1ICPUProfile(PRUint32 *aInternalAndReservedAttribute1ICPUProfile) { return _to GetInternalAndReservedAttribute1ICPUProfile(aInternalAndReservedAttribute1ICPUProfile); } \
  NS_IMETHOD GetInternalAndReservedAttribute2ICPUProfile(PRUint32 *aInternalAndReservedAttribute2ICPUProfile) { return _to GetInternalAndReservedAttribute2ICPUProfile(aInternalAndReservedAttribute2ICPUProfile); } \
  NS_IMETHOD GetInternalAndReservedAttribute3ICPUProfile(PRUint32 *aInternalAndReservedAttribute3ICPUProfile) { return _to GetInternalAndReservedAttribute3ICPUProfile(aInternalAndReservedAttribute3ICPUProfile); } \
  NS_IMETHOD GetInternalAndReservedAttribute4ICPUProfile(PRUint32 *aInternalAndReservedAttribute4ICPUProfile) { return _to GetInternalAndReservedAttribute4ICPUProfile(aInternalAndReservedAttribute4ICPUProfile); } \
  NS_IMETHOD GetInternalAndReservedAttribute5ICPUProfile(PRUint32 *aInternalAndReservedAttribute5ICPUProfile) { return _to GetInternalAndReservedAttribute5ICPUProfile(aInternalAndReservedAttribute5ICPUProfile); } \
  NS_IMETHOD GetInternalAndReservedAttribute6ICPUProfile(PRUint32 *aInternalAndReservedAttribute6ICPUProfile) { return _to GetInternalAndReservedAttribute6ICPUProfile(aInternalAndReservedAttribute6ICPUProfile); } \
  NS_IMETHOD GetInternalAndReservedAttribute7ICPUProfile(PRUint32 *aInternalAndReservedAttribute7ICPUProfile) { return _to GetInternalAndReservedAttribute7ICPUProfile(aInternalAndReservedAttribute7ICPUProfile); } \
  NS_IMETHOD GetInternalAndReservedAttribute8ICPUProfile(PRUint32 *aInternalAndReservedAttribute8ICPUProfile) { return _to GetInternalAndReservedAttribute8ICPUProfile(aInternalAndReservedAttribute8ICPUProfile); } \
  NS_IMETHOD InternalAndReservedMethod1ICPUProfile(void) { return _to InternalAndReservedMethod1ICPUProfile(); } \
  NS_IMETHOD InternalAndReservedMethod2ICPUProfile(void) { return _to InternalAndReservedMethod2ICPUProfile(); } \
  NS_IMETHOD InternalAndReservedMethod3ICPUProfile(void) { return _to InternalAndReservedMethod3ICPUProfile(); } \
  NS_IMETHOD InternalAndReservedMethod4ICPUProfile(void) { return _to InternalAndReservedMethod4ICPUProfile(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ICPUPROFILE(_to) \
  NS_IMETHOD GetName(PRUnichar **aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
  NS_IMETHOD GetFullName(PRUnichar **aFullName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFullName(aFullName); } \
  NS_IMETHOD GetArchitecture(CPUArchitecture_T *aArchitecture) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetArchitecture(aArchitecture); } \
  NS_IMETHOD GetInternalAndReservedAttribute1ICPUProfile(PRUint32 *aInternalAndReservedAttribute1ICPUProfile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1ICPUProfile(aInternalAndReservedAttribute1ICPUProfile); } \
  NS_IMETHOD GetInternalAndReservedAttribute2ICPUProfile(PRUint32 *aInternalAndReservedAttribute2ICPUProfile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2ICPUProfile(aInternalAndReservedAttribute2ICPUProfile); } \
  NS_IMETHOD GetInternalAndReservedAttribute3ICPUProfile(PRUint32 *aInternalAndReservedAttribute3ICPUProfile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3ICPUProfile(aInternalAndReservedAttribute3ICPUProfile); } \
  NS_IMETHOD GetInternalAndReservedAttribute4ICPUProfile(PRUint32 *aInternalAndReservedAttribute4ICPUProfile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4ICPUProfile(aInternalAndReservedAttribute4ICPUProfile); } \
  NS_IMETHOD GetInternalAndReservedAttribute5ICPUProfile(PRUint32 *aInternalAndReservedAttribute5ICPUProfile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5ICPUProfile(aInternalAndReservedAttribute5ICPUProfile); } \
  NS_IMETHOD GetInternalAndReservedAttribute6ICPUProfile(PRUint32 *aInternalAndReservedAttribute6ICPUProfile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6ICPUProfile(aInternalAndReservedAttribute6ICPUProfile); } \
  NS_IMETHOD GetInternalAndReservedAttribute7ICPUProfile(PRUint32 *aInternalAndReservedAttribute7ICPUProfile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7ICPUProfile(aInternalAndReservedAttribute7ICPUProfile); } \
  NS_IMETHOD GetInternalAndReservedAttribute8ICPUProfile(PRUint32 *aInternalAndReservedAttribute8ICPUProfile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8ICPUProfile(aInternalAndReservedAttribute8ICPUProfile); } \
  NS_IMETHOD InternalAndReservedMethod1ICPUProfile(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1ICPUProfile(); } \
  NS_IMETHOD InternalAndReservedMethod2ICPUProfile(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2ICPUProfile(); } \
  NS_IMETHOD InternalAndReservedMethod3ICPUProfile(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3ICPUProfile(); } \
  NS_IMETHOD InternalAndReservedMethod4ICPUProfile(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4ICPUProfile(); } 

#define COM_FORWARD_ICPUProfile_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_ICPUProfile_GETTER_Name_TO_OBJ(obj) COM_FORWARD_ICPUProfile_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_ICPUProfile_GETTER_Name_TO_BASE(base) COM_FORWARD_ICPUProfile_GETTER_Name_TO (base::)
#define COM_FORWARD_ICPUProfile_GETTER_FullName_TO(smth) NS_IMETHOD GetFullName (PRUnichar * * aFullName) { return smth GetFullName (aFullName); }
#define COM_FORWARD_ICPUProfile_GETTER_FullName_TO_OBJ(obj) COM_FORWARD_ICPUProfile_GETTER_FullName_TO ((obj)->)
#define COM_FORWARD_ICPUProfile_GETTER_FullName_TO_BASE(base) COM_FORWARD_ICPUProfile_GETTER_FullName_TO (base::)
#define COM_FORWARD_ICPUProfile_GETTER_Architecture_TO(smth) NS_IMETHOD GetArchitecture (PRUint32 * aArchitecture) { return smth GetArchitecture (aArchitecture); }
#define COM_FORWARD_ICPUProfile_GETTER_Architecture_TO_OBJ(obj) COM_FORWARD_ICPUProfile_GETTER_Architecture_TO ((obj)->)
#define COM_FORWARD_ICPUProfile_GETTER_Architecture_TO_BASE(base) COM_FORWARD_ICPUProfile_GETTER_Architecture_TO (base::)
#define COM_FORWARD_ICPUProfile_TO(smth) NS_FORWARD_ICPUPROFILE (smth)
#define COM_FORWARD_ICPUProfile_TO_OBJ(obj) COM_FORWARD_ICPUProfile_TO ((obj)->)
#define COM_FORWARD_ICPUProfile_TO_BASE(base) COM_FORWARD_ICPUProfile_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ICPUProfile;

/* starting interface:    IPlatformProperties */
#define IPLATFORMPROPERTIES_IID_STR "5bae19d0-ca40-4ca2-a485-c8065190bbe5"

#define IPLATFORMPROPERTIES_IID \
  {0x5bae19d0, 0xca40, 0x4ca2, \
    { 0xa4, 0x85, 0xc8, 0x06, 0x51, 0x90, 0xbb, 0xe5 }}

class NS_NO_VTABLE IPlatformProperties : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IPLATFORMPROPERTIES_IID)

  /* 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;

  /* 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;

  /* void getSupportedParavirtProviders (out unsigned long supportedParavirtProvidersSize, [array, size_is (supportedParavirtProvidersSize), retval] out ParavirtProvider_T supportedParavirtProviders); */
  NS_IMETHOD GetSupportedParavirtProviders(PRUint32 *supportedParavirtProvidersSize, ParavirtProvider_T **supportedParavirtProviders) = 0;

  /* void getSupportedFirmwareTypes (out unsigned long supportedFirmwareTypesSize, [array, size_is (supportedFirmwareTypesSize), retval] out FirmwareType_T supportedFirmwareTypes); */
  NS_IMETHOD GetSupportedFirmwareTypes(PRUint32 *supportedFirmwareTypesSize, FirmwareType_T **supportedFirmwareTypes) = 0;

  /* void getSupportedGuestOSTypes (out unsigned long supportedGuestOSTypesSize, [array, size_is (supportedGuestOSTypesSize), retval] out IGuestOSType supportedGuestOSTypes); */
  NS_IMETHOD GetSupportedGuestOSTypes(PRUint32 *supportedGuestOSTypesSize, IGuestOSType * **supportedGuestOSTypes) = 0;

  /* void getSupportedGfxControllerTypes (out unsigned long supportedGfxControllerTypesSize, [array, size_is (supportedGfxControllerTypesSize), retval] out GraphicsControllerType_T supportedGfxControllerTypes); */
  NS_IMETHOD GetSupportedGfxControllerTypes(PRUint32 *supportedGfxControllerTypesSize, GraphicsControllerType_T **supportedGfxControllerTypes) = 0;

  /* void getSupportedNetAdpPromiscModePols (out unsigned long supportedNetAdpPromiscModePolsSize, [array, size_is (supportedNetAdpPromiscModePolsSize), retval] out NetworkAdapterPromiscModePolicy_T supportedNetAdpPromiscModePols); */
  NS_IMETHOD GetSupportedNetAdpPromiscModePols(PRUint32 *supportedNetAdpPromiscModePolsSize, NetworkAdapterPromiscModePolicy_T **supportedNetAdpPromiscModePols) = 0;

  /* void getSupportedNetworkAdapterTypes (out unsigned long supportedNetworkAdapterTypesSize, [array, size_is (supportedNetworkAdapterTypesSize), retval] out NetworkAdapterType_T supportedNetworkAdapterTypes); */
  NS_IMETHOD GetSupportedNetworkAdapterTypes(PRUint32 *supportedNetworkAdapterTypesSize, NetworkAdapterType_T **supportedNetworkAdapterTypes) = 0;

  /* void getSupportedUartTypes (out unsigned long supportedUartTypesSize, [array, size_is (supportedUartTypesSize), retval] out UartType_T supportedUartTypes); */
  NS_IMETHOD GetSupportedUartTypes(PRUint32 *supportedUartTypesSize, UartType_T **supportedUartTypes) = 0;

  /* void getSupportedUSBControllerTypes (out unsigned long supportedUSBControllerTypesSize, [array, size_is (supportedUSBControllerTypesSize), retval] out USBControllerType_T supportedUSBControllerTypes); */
  NS_IMETHOD GetSupportedUSBControllerTypes(PRUint32 *supportedUSBControllerTypesSize, USBControllerType_T **supportedUSBControllerTypes) = 0;

  /* void getSupportedAudioControllerTypes (out unsigned long supportedAudioControllerTypesSize, [array, size_is (supportedAudioControllerTypesSize), retval] out AudioControllerType_T supportedAudioControllerTypes); */
  NS_IMETHOD GetSupportedAudioControllerTypes(PRUint32 *supportedAudioControllerTypesSize, AudioControllerType_T **supportedAudioControllerTypes) = 0;

  /* void getSupportedBootDevices (out unsigned long supportedBootDevicesSize, [array, size_is (supportedBootDevicesSize), retval] out DeviceType_T supportedBootDevices); */
  NS_IMETHOD GetSupportedBootDevices(PRUint32 *supportedBootDevicesSize, DeviceType_T **supportedBootDevices) = 0;

  /* void getSupportedStorageBuses (out unsigned long supportedStorageBusesSize, [array, size_is (supportedStorageBusesSize), retval] out StorageBus_T supportedStorageBuses); */
  NS_IMETHOD GetSupportedStorageBuses(PRUint32 *supportedStorageBusesSize, StorageBus_T **supportedStorageBuses) = 0;

  /* void getSupportedStorageControllerTypes (out unsigned long supportedStorageControllerTypesSize, [array, size_is (supportedStorageControllerTypesSize), retval] out StorageControllerType_T supportedStorageControllerTypes); */
  NS_IMETHOD GetSupportedStorageControllerTypes(PRUint32 *supportedStorageControllerTypesSize, StorageControllerType_T **supportedStorageControllerTypes) = 0;

  /* void getSupportedChipsetTypes (out unsigned long supportedChipsetTypesSize, [array, size_is (supportedChipsetTypesSize), retval] out ChipsetType_T supportedChipsetTypes); */
  NS_IMETHOD GetSupportedChipsetTypes(PRUint32 *supportedChipsetTypesSize, ChipsetType_T **supportedChipsetTypes) = 0;

  /* void getSupportedIommuTypes (out unsigned long supportedIommuTypesSize, [array, size_is (supportedIommuTypesSize), retval] out IommuType_T supportedIommuTypes); */
  NS_IMETHOD GetSupportedIommuTypes(PRUint32 *supportedIommuTypesSize, IommuType_T **supportedIommuTypes) = 0;

  /* void getSupportedTpmTypes (out unsigned long supportedTpmTypesSize, [array, size_is (supportedTpmTypesSize), retval] out TpmType_T supportedTpmTypes); */
  NS_IMETHOD GetSupportedTpmTypes(PRUint32 *supportedTpmTypesSize, TpmType_T **supportedTpmTypes) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IPlatformProperties; */
  NS_IMETHOD GetInternalAndReservedAttribute1IPlatformProperties(PRUint32 *aInternalAndReservedAttribute1IPlatformProperties) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IPlatformProperties; */
  NS_IMETHOD GetInternalAndReservedAttribute2IPlatformProperties(PRUint32 *aInternalAndReservedAttribute2IPlatformProperties) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IPlatformProperties; */
  NS_IMETHOD GetInternalAndReservedAttribute3IPlatformProperties(PRUint32 *aInternalAndReservedAttribute3IPlatformProperties) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IPlatformProperties; */
  NS_IMETHOD GetInternalAndReservedAttribute4IPlatformProperties(PRUint32 *aInternalAndReservedAttribute4IPlatformProperties) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IPlatformProperties; */
  NS_IMETHOD GetInternalAndReservedAttribute5IPlatformProperties(PRUint32 *aInternalAndReservedAttribute5IPlatformProperties) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IPlatformProperties; */
  NS_IMETHOD GetInternalAndReservedAttribute6IPlatformProperties(PRUint32 *aInternalAndReservedAttribute6IPlatformProperties) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IPlatformProperties; */
  NS_IMETHOD GetInternalAndReservedAttribute7IPlatformProperties(PRUint32 *aInternalAndReservedAttribute7IPlatformProperties) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IPlatformProperties; */
  NS_IMETHOD GetInternalAndReservedAttribute8IPlatformProperties(PRUint32 *aInternalAndReservedAttribute8IPlatformProperties) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute9IPlatformProperties; */
  NS_IMETHOD GetInternalAndReservedAttribute9IPlatformProperties(PRUint32 *aInternalAndReservedAttribute9IPlatformProperties) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute10IPlatformProperties; */
  NS_IMETHOD GetInternalAndReservedAttribute10IPlatformProperties(PRUint32 *aInternalAndReservedAttribute10IPlatformProperties) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute11IPlatformProperties; */
  NS_IMETHOD GetInternalAndReservedAttribute11IPlatformProperties(PRUint32 *aInternalAndReservedAttribute11IPlatformProperties) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute12IPlatformProperties; */
  NS_IMETHOD GetInternalAndReservedAttribute12IPlatformProperties(PRUint32 *aInternalAndReservedAttribute12IPlatformProperties) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute13IPlatformProperties; */
  NS_IMETHOD GetInternalAndReservedAttribute13IPlatformProperties(PRUint32 *aInternalAndReservedAttribute13IPlatformProperties) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute14IPlatformProperties; */
  NS_IMETHOD GetInternalAndReservedAttribute14IPlatformProperties(PRUint32 *aInternalAndReservedAttribute14IPlatformProperties) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute15IPlatformProperties; */
  NS_IMETHOD GetInternalAndReservedAttribute15IPlatformProperties(PRUint32 *aInternalAndReservedAttribute15IPlatformProperties) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute16IPlatformProperties; */
  NS_IMETHOD GetInternalAndReservedAttribute16IPlatformProperties(PRUint32 *aInternalAndReservedAttribute16IPlatformProperties) = 0;

  /* void getMaxNetworkAdapters (in ChipsetType_T chipset, [retval] out unsigned long maxNetworkAdapters); */
  NS_IMETHOD GetMaxNetworkAdapters(ChipsetType_T chipset, PRUint32 *maxNetworkAdapters) = 0;

  /* void getMaxNetworkAdaptersOfType (in ChipsetType_T chipset, in NetworkAttachmentType_T type, [retval] out unsigned long maxNetworkAdapters); */
  NS_IMETHOD GetMaxNetworkAdaptersOfType(ChipsetType_T chipset, NetworkAttachmentType_T type, PRUint32 *maxNetworkAdapters) = 0;

  /* void getMaxDevicesPerPortForStorageBus (in StorageBus_T bus, [retval] out unsigned long maxDevicesPerPort); */
  NS_IMETHOD GetMaxDevicesPerPortForStorageBus(StorageBus_T bus, PRUint32 *maxDevicesPerPort) = 0;

  /* void getMinPortCountForStorageBus (in StorageBus_T bus, [retval] out unsigned long minPortCount); */
  NS_IMETHOD GetMinPortCountForStorageBus(StorageBus_T bus, PRUint32 *minPortCount) = 0;

  /* void getMaxPortCountForStorageBus (in StorageBus_T bus, [retval] out unsigned long maxPortCount); */
  NS_IMETHOD GetMaxPortCountForStorageBus(StorageBus_T bus, PRUint32 *maxPortCount) = 0;

  /* void getMaxInstancesOfStorageBus (in ChipsetType_T chipset, in StorageBus_T bus, [retval] out unsigned long maxInstances); */
  NS_IMETHOD GetMaxInstancesOfStorageBus(ChipsetType_T chipset, StorageBus_T bus, PRUint32 *maxInstances) = 0;

  /* void getSupportedVRAMRange (in GraphicsControllerType_T graphicsControllerType, in boolean accelerate3DEnabled, out unsigned long minMB, out unsigned long maxMB, [retval] out unsigned long strideSizeMB); */
  NS_IMETHOD GetSupportedVRAMRange(GraphicsControllerType_T graphicsControllerType, PRBool accelerate3DEnabled, PRUint32 *minMB, PRUint32 *maxMB, PRUint32 *strideSizeMB) = 0;

  /* void getSupportedGfxFeaturesForType (in GraphicsControllerType_T graphicsControllerType, out unsigned long supportedControllerFeaturesSize, [array, size_is (supportedControllerFeaturesSize), retval] out GraphicsFeature_T supportedControllerFeatures); */
  NS_IMETHOD GetSupportedGfxFeaturesForType(GraphicsControllerType_T graphicsControllerType, PRUint32 *supportedControllerFeaturesSize, GraphicsFeature_T **supportedControllerFeatures) = 0;

  /* void getDeviceTypesForStorageBus (in StorageBus_T bus, out unsigned long deviceTypesSize, [array, size_is (deviceTypesSize), retval] out DeviceType_T deviceTypes); */
  NS_IMETHOD GetDeviceTypesForStorageBus(StorageBus_T bus, PRUint32 *deviceTypesSize, DeviceType_T **deviceTypes) = 0;

  /* void getStorageBusForControllerType (in StorageControllerType_T storageControllerType, [retval] out StorageBus_T storageBus); */
  NS_IMETHOD GetStorageBusForControllerType(StorageControllerType_T storageControllerType, StorageBus_T *storageBus) = 0;

  /* void getStorageControllerTypesForBus (in StorageBus_T storageBus, out unsigned long storageControllerTypeSize, [array, size_is (storageControllerTypeSize), retval] out StorageControllerType_T storageControllerType); */
  NS_IMETHOD GetStorageControllerTypesForBus(StorageBus_T storageBus, PRUint32 *storageControllerTypeSize, StorageControllerType_T **storageControllerType) = 0;

  /* void getStorageControllerHotplugCapable (in StorageControllerType_T controllerType, [retval] out boolean hotplugCapable); */
  NS_IMETHOD GetStorageControllerHotplugCapable(StorageControllerType_T controllerType, PRBool *hotplugCapable) = 0;

  /* void getMaxInstancesOfUSBControllerType (in ChipsetType_T chipset, in USBControllerType_T type, [retval] out unsigned long maxInstances); */
  NS_IMETHOD GetMaxInstancesOfUSBControllerType(ChipsetType_T chipset, USBControllerType_T type, PRUint32 *maxInstances) = 0;

  /* void getMinGuestRAM (in FirmwareType_T firmware, [retval] out unsigned long minMegabytes); */
  NS_IMETHOD GetMinGuestRAM(FirmwareType_T firmware, PRUint32 *minMegabytes) = 0;

  /* void InternalAndReservedMethod1IPlatformProperties (); */
  NS_IMETHOD InternalAndReservedMethod1IPlatformProperties(void) = 0;

  /* void InternalAndReservedMethod2IPlatformProperties (); */
  NS_IMETHOD InternalAndReservedMethod2IPlatformProperties(void) = 0;

  /* void InternalAndReservedMethod3IPlatformProperties (); */
  NS_IMETHOD InternalAndReservedMethod3IPlatformProperties(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IPLATFORMPROPERTIES \
  NS_IMETHOD GetRawModeSupported(PRBool *aRawModeSupported) NS_OVERRIDE; \
  NS_IMETHOD GetExclusiveHwVirt(PRBool *aExclusiveHwVirt) NS_OVERRIDE; \
  NS_IMETHOD SetExclusiveHwVirt(PRBool aExclusiveHwVirt) NS_OVERRIDE; \
  NS_IMETHOD GetSerialPortCount(PRUint32 *aSerialPortCount) NS_OVERRIDE; \
  NS_IMETHOD GetParallelPortCount(PRUint32 *aParallelPortCount) NS_OVERRIDE; \
  NS_IMETHOD GetMaxBootPosition(PRUint32 *aMaxBootPosition) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedParavirtProviders(PRUint32 *supportedParavirtProvidersSize, ParavirtProvider_T **supportedParavirtProviders) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedFirmwareTypes(PRUint32 *supportedFirmwareTypesSize, FirmwareType_T **supportedFirmwareTypes) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedGuestOSTypes(PRUint32 *supportedGuestOSTypesSize, IGuestOSType * **supportedGuestOSTypes) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedGfxControllerTypes(PRUint32 *supportedGfxControllerTypesSize, GraphicsControllerType_T **supportedGfxControllerTypes) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedNetAdpPromiscModePols(PRUint32 *supportedNetAdpPromiscModePolsSize, NetworkAdapterPromiscModePolicy_T **supportedNetAdpPromiscModePols) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedNetworkAdapterTypes(PRUint32 *supportedNetworkAdapterTypesSize, NetworkAdapterType_T **supportedNetworkAdapterTypes) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedUartTypes(PRUint32 *supportedUartTypesSize, UartType_T **supportedUartTypes) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedUSBControllerTypes(PRUint32 *supportedUSBControllerTypesSize, USBControllerType_T **supportedUSBControllerTypes) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedAudioControllerTypes(PRUint32 *supportedAudioControllerTypesSize, AudioControllerType_T **supportedAudioControllerTypes) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedBootDevices(PRUint32 *supportedBootDevicesSize, DeviceType_T **supportedBootDevices) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedStorageBuses(PRUint32 *supportedStorageBusesSize, StorageBus_T **supportedStorageBuses) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedStorageControllerTypes(PRUint32 *supportedStorageControllerTypesSize, StorageControllerType_T **supportedStorageControllerTypes) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedChipsetTypes(PRUint32 *supportedChipsetTypesSize, ChipsetType_T **supportedChipsetTypes) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedIommuTypes(PRUint32 *supportedIommuTypesSize, IommuType_T **supportedIommuTypes) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedTpmTypes(PRUint32 *supportedTpmTypesSize, TpmType_T **supportedTpmTypes) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IPlatformProperties(PRUint32 *aInternalAndReservedAttribute1IPlatformProperties) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IPlatformProperties(PRUint32 *aInternalAndReservedAttribute2IPlatformProperties) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IPlatformProperties(PRUint32 *aInternalAndReservedAttribute3IPlatformProperties) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IPlatformProperties(PRUint32 *aInternalAndReservedAttribute4IPlatformProperties) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IPlatformProperties(PRUint32 *aInternalAndReservedAttribute5IPlatformProperties) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IPlatformProperties(PRUint32 *aInternalAndReservedAttribute6IPlatformProperties) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IPlatformProperties(PRUint32 *aInternalAndReservedAttribute7IPlatformProperties) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IPlatformProperties(PRUint32 *aInternalAndReservedAttribute8IPlatformProperties) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute9IPlatformProperties(PRUint32 *aInternalAndReservedAttribute9IPlatformProperties) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute10IPlatformProperties(PRUint32 *aInternalAndReservedAttribute10IPlatformProperties) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute11IPlatformProperties(PRUint32 *aInternalAndReservedAttribute11IPlatformProperties) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute12IPlatformProperties(PRUint32 *aInternalAndReservedAttribute12IPlatformProperties) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute13IPlatformProperties(PRUint32 *aInternalAndReservedAttribute13IPlatformProperties) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute14IPlatformProperties(PRUint32 *aInternalAndReservedAttribute14IPlatformProperties) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute15IPlatformProperties(PRUint32 *aInternalAndReservedAttribute15IPlatformProperties) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute16IPlatformProperties(PRUint32 *aInternalAndReservedAttribute16IPlatformProperties) NS_OVERRIDE; \
  NS_IMETHOD GetMaxNetworkAdapters(ChipsetType_T chipset, PRUint32 *maxNetworkAdapters) NS_OVERRIDE; \
  NS_IMETHOD GetMaxNetworkAdaptersOfType(ChipsetType_T chipset, NetworkAttachmentType_T type, PRUint32 *maxNetworkAdapters) NS_OVERRIDE; \
  NS_IMETHOD GetMaxDevicesPerPortForStorageBus(StorageBus_T bus, PRUint32 *maxDevicesPerPort) NS_OVERRIDE; \
  NS_IMETHOD GetMinPortCountForStorageBus(StorageBus_T bus, PRUint32 *minPortCount) NS_OVERRIDE; \
  NS_IMETHOD GetMaxPortCountForStorageBus(StorageBus_T bus, PRUint32 *maxPortCount) NS_OVERRIDE; \
  NS_IMETHOD GetMaxInstancesOfStorageBus(ChipsetType_T chipset, StorageBus_T bus, PRUint32 *maxInstances) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedVRAMRange(GraphicsControllerType_T graphicsControllerType, PRBool accelerate3DEnabled, PRUint32 *minMB, PRUint32 *maxMB, PRUint32 *strideSizeMB) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedGfxFeaturesForType(GraphicsControllerType_T graphicsControllerType, PRUint32 *supportedControllerFeaturesSize, GraphicsFeature_T **supportedControllerFeatures) NS_OVERRIDE; \
  NS_IMETHOD GetDeviceTypesForStorageBus(StorageBus_T bus, PRUint32 *deviceTypesSize, DeviceType_T **deviceTypes) NS_OVERRIDE; \
  NS_IMETHOD GetStorageBusForControllerType(StorageControllerType_T storageControllerType, StorageBus_T *storageBus) NS_OVERRIDE; \
  NS_IMETHOD GetStorageControllerTypesForBus(StorageBus_T storageBus, PRUint32 *storageControllerTypeSize, StorageControllerType_T **storageControllerType) NS_OVERRIDE; \
  NS_IMETHOD GetStorageControllerHotplugCapable(StorageControllerType_T controllerType, PRBool *hotplugCapable) NS_OVERRIDE; \
  NS_IMETHOD GetMaxInstancesOfUSBControllerType(ChipsetType_T chipset, USBControllerType_T type, PRUint32 *maxInstances) NS_OVERRIDE; \
  NS_IMETHOD GetMinGuestRAM(FirmwareType_T firmware, PRUint32 *minMegabytes) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IPlatformProperties(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IPlatformProperties(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IPlatformProperties(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IPLATFORMPROPERTIES(_to) \
  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 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 GetSupportedParavirtProviders(PRUint32 *supportedParavirtProvidersSize, ParavirtProvider_T **supportedParavirtProviders) { return _to GetSupportedParavirtProviders(supportedParavirtProvidersSize, supportedParavirtProviders); } \
  NS_IMETHOD GetSupportedFirmwareTypes(PRUint32 *supportedFirmwareTypesSize, FirmwareType_T **supportedFirmwareTypes) { return _to GetSupportedFirmwareTypes(supportedFirmwareTypesSize, supportedFirmwareTypes); } \
  NS_IMETHOD GetSupportedGuestOSTypes(PRUint32 *supportedGuestOSTypesSize, IGuestOSType * **supportedGuestOSTypes) { return _to GetSupportedGuestOSTypes(supportedGuestOSTypesSize, supportedGuestOSTypes); } \
  NS_IMETHOD GetSupportedGfxControllerTypes(PRUint32 *supportedGfxControllerTypesSize, GraphicsControllerType_T **supportedGfxControllerTypes) { return _to GetSupportedGfxControllerTypes(supportedGfxControllerTypesSize, supportedGfxControllerTypes); } \
  NS_IMETHOD GetSupportedNetAdpPromiscModePols(PRUint32 *supportedNetAdpPromiscModePolsSize, NetworkAdapterPromiscModePolicy_T **supportedNetAdpPromiscModePols) { return _to GetSupportedNetAdpPromiscModePols(supportedNetAdpPromiscModePolsSize, supportedNetAdpPromiscModePols); } \
  NS_IMETHOD GetSupportedNetworkAdapterTypes(PRUint32 *supportedNetworkAdapterTypesSize, NetworkAdapterType_T **supportedNetworkAdapterTypes) { return _to GetSupportedNetworkAdapterTypes(supportedNetworkAdapterTypesSize, supportedNetworkAdapterTypes); } \
  NS_IMETHOD GetSupportedUartTypes(PRUint32 *supportedUartTypesSize, UartType_T **supportedUartTypes) { return _to GetSupportedUartTypes(supportedUartTypesSize, supportedUartTypes); } \
  NS_IMETHOD GetSupportedUSBControllerTypes(PRUint32 *supportedUSBControllerTypesSize, USBControllerType_T **supportedUSBControllerTypes) { return _to GetSupportedUSBControllerTypes(supportedUSBControllerTypesSize, supportedUSBControllerTypes); } \
  NS_IMETHOD GetSupportedAudioControllerTypes(PRUint32 *supportedAudioControllerTypesSize, AudioControllerType_T **supportedAudioControllerTypes) { return _to GetSupportedAudioControllerTypes(supportedAudioControllerTypesSize, supportedAudioControllerTypes); } \
  NS_IMETHOD GetSupportedBootDevices(PRUint32 *supportedBootDevicesSize, DeviceType_T **supportedBootDevices) { return _to GetSupportedBootDevices(supportedBootDevicesSize, supportedBootDevices); } \
  NS_IMETHOD GetSupportedStorageBuses(PRUint32 *supportedStorageBusesSize, StorageBus_T **supportedStorageBuses) { return _to GetSupportedStorageBuses(supportedStorageBusesSize, supportedStorageBuses); } \
  NS_IMETHOD GetSupportedStorageControllerTypes(PRUint32 *supportedStorageControllerTypesSize, StorageControllerType_T **supportedStorageControllerTypes) { return _to GetSupportedStorageControllerTypes(supportedStorageControllerTypesSize, supportedStorageControllerTypes); } \
  NS_IMETHOD GetSupportedChipsetTypes(PRUint32 *supportedChipsetTypesSize, ChipsetType_T **supportedChipsetTypes) { return _to GetSupportedChipsetTypes(supportedChipsetTypesSize, supportedChipsetTypes); } \
  NS_IMETHOD GetSupportedIommuTypes(PRUint32 *supportedIommuTypesSize, IommuType_T **supportedIommuTypes) { return _to GetSupportedIommuTypes(supportedIommuTypesSize, supportedIommuTypes); } \
  NS_IMETHOD GetSupportedTpmTypes(PRUint32 *supportedTpmTypesSize, TpmType_T **supportedTpmTypes) { return _to GetSupportedTpmTypes(supportedTpmTypesSize, supportedTpmTypes); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IPlatformProperties(PRUint32 *aInternalAndReservedAttribute1IPlatformProperties) { return _to GetInternalAndReservedAttribute1IPlatformProperties(aInternalAndReservedAttribute1IPlatformProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IPlatformProperties(PRUint32 *aInternalAndReservedAttribute2IPlatformProperties) { return _to GetInternalAndReservedAttribute2IPlatformProperties(aInternalAndReservedAttribute2IPlatformProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IPlatformProperties(PRUint32 *aInternalAndReservedAttribute3IPlatformProperties) { return _to GetInternalAndReservedAttribute3IPlatformProperties(aInternalAndReservedAttribute3IPlatformProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IPlatformProperties(PRUint32 *aInternalAndReservedAttribute4IPlatformProperties) { return _to GetInternalAndReservedAttribute4IPlatformProperties(aInternalAndReservedAttribute4IPlatformProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IPlatformProperties(PRUint32 *aInternalAndReservedAttribute5IPlatformProperties) { return _to GetInternalAndReservedAttribute5IPlatformProperties(aInternalAndReservedAttribute5IPlatformProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IPlatformProperties(PRUint32 *aInternalAndReservedAttribute6IPlatformProperties) { return _to GetInternalAndReservedAttribute6IPlatformProperties(aInternalAndReservedAttribute6IPlatformProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IPlatformProperties(PRUint32 *aInternalAndReservedAttribute7IPlatformProperties) { return _to GetInternalAndReservedAttribute7IPlatformProperties(aInternalAndReservedAttribute7IPlatformProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IPlatformProperties(PRUint32 *aInternalAndReservedAttribute8IPlatformProperties) { return _to GetInternalAndReservedAttribute8IPlatformProperties(aInternalAndReservedAttribute8IPlatformProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute9IPlatformProperties(PRUint32 *aInternalAndReservedAttribute9IPlatformProperties) { return _to GetInternalAndReservedAttribute9IPlatformProperties(aInternalAndReservedAttribute9IPlatformProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute10IPlatformProperties(PRUint32 *aInternalAndReservedAttribute10IPlatformProperties) { return _to GetInternalAndReservedAttribute10IPlatformProperties(aInternalAndReservedAttribute10IPlatformProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute11IPlatformProperties(PRUint32 *aInternalAndReservedAttribute11IPlatformProperties) { return _to GetInternalAndReservedAttribute11IPlatformProperties(aInternalAndReservedAttribute11IPlatformProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute12IPlatformProperties(PRUint32 *aInternalAndReservedAttribute12IPlatformProperties) { return _to GetInternalAndReservedAttribute12IPlatformProperties(aInternalAndReservedAttribute12IPlatformProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute13IPlatformProperties(PRUint32 *aInternalAndReservedAttribute13IPlatformProperties) { return _to GetInternalAndReservedAttribute13IPlatformProperties(aInternalAndReservedAttribute13IPlatformProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute14IPlatformProperties(PRUint32 *aInternalAndReservedAttribute14IPlatformProperties) { return _to GetInternalAndReservedAttribute14IPlatformProperties(aInternalAndReservedAttribute14IPlatformProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute15IPlatformProperties(PRUint32 *aInternalAndReservedAttribute15IPlatformProperties) { return _to GetInternalAndReservedAttribute15IPlatformProperties(aInternalAndReservedAttribute15IPlatformProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute16IPlatformProperties(PRUint32 *aInternalAndReservedAttribute16IPlatformProperties) { return _to GetInternalAndReservedAttribute16IPlatformProperties(aInternalAndReservedAttribute16IPlatformProperties); } \
  NS_IMETHOD GetMaxNetworkAdapters(ChipsetType_T chipset, PRUint32 *maxNetworkAdapters) { return _to GetMaxNetworkAdapters(chipset, maxNetworkAdapters); } \
  NS_IMETHOD GetMaxNetworkAdaptersOfType(ChipsetType_T chipset, NetworkAttachmentType_T type, PRUint32 *maxNetworkAdapters) { return _to GetMaxNetworkAdaptersOfType(chipset, type, maxNetworkAdapters); } \
  NS_IMETHOD GetMaxDevicesPerPortForStorageBus(StorageBus_T bus, PRUint32 *maxDevicesPerPort) { return _to GetMaxDevicesPerPortForStorageBus(bus, maxDevicesPerPort); } \
  NS_IMETHOD GetMinPortCountForStorageBus(StorageBus_T bus, PRUint32 *minPortCount) { return _to GetMinPortCountForStorageBus(bus, minPortCount); } \
  NS_IMETHOD GetMaxPortCountForStorageBus(StorageBus_T bus, PRUint32 *maxPortCount) { return _to GetMaxPortCountForStorageBus(bus, maxPortCount); } \
  NS_IMETHOD GetMaxInstancesOfStorageBus(ChipsetType_T chipset, StorageBus_T bus, PRUint32 *maxInstances) { return _to GetMaxInstancesOfStorageBus(chipset, bus, maxInstances); } \
  NS_IMETHOD GetSupportedVRAMRange(GraphicsControllerType_T graphicsControllerType, PRBool accelerate3DEnabled, PRUint32 *minMB, PRUint32 *maxMB, PRUint32 *strideSizeMB) { return _to GetSupportedVRAMRange(graphicsControllerType, accelerate3DEnabled, minMB, maxMB, strideSizeMB); } \
  NS_IMETHOD GetSupportedGfxFeaturesForType(GraphicsControllerType_T graphicsControllerType, PRUint32 *supportedControllerFeaturesSize, GraphicsFeature_T **supportedControllerFeatures) { return _to GetSupportedGfxFeaturesForType(graphicsControllerType, supportedControllerFeaturesSize, supportedControllerFeatures); } \
  NS_IMETHOD GetDeviceTypesForStorageBus(StorageBus_T bus, PRUint32 *deviceTypesSize, DeviceType_T **deviceTypes) { return _to GetDeviceTypesForStorageBus(bus, deviceTypesSize, deviceTypes); } \
  NS_IMETHOD GetStorageBusForControllerType(StorageControllerType_T storageControllerType, StorageBus_T *storageBus) { return _to GetStorageBusForControllerType(storageControllerType, storageBus); } \
  NS_IMETHOD GetStorageControllerTypesForBus(StorageBus_T storageBus, PRUint32 *storageControllerTypeSize, StorageControllerType_T **storageControllerType) { return _to GetStorageControllerTypesForBus(storageBus, storageControllerTypeSize, storageControllerType); } \
  NS_IMETHOD GetStorageControllerHotplugCapable(StorageControllerType_T controllerType, PRBool *hotplugCapable) { return _to GetStorageControllerHotplugCapable(controllerType, hotplugCapable); } \
  NS_IMETHOD GetMaxInstancesOfUSBControllerType(ChipsetType_T chipset, USBControllerType_T type, PRUint32 *maxInstances) { return _to GetMaxInstancesOfUSBControllerType(chipset, type, maxInstances); } \
  NS_IMETHOD GetMinGuestRAM(FirmwareType_T firmware, PRUint32 *minMegabytes) { return _to GetMinGuestRAM(firmware, minMegabytes); } \
  NS_IMETHOD InternalAndReservedMethod1IPlatformProperties(void) { return _to InternalAndReservedMethod1IPlatformProperties(); } \
  NS_IMETHOD InternalAndReservedMethod2IPlatformProperties(void) { return _to InternalAndReservedMethod2IPlatformProperties(); } \
  NS_IMETHOD InternalAndReservedMethod3IPlatformProperties(void) { return _to InternalAndReservedMethod3IPlatformProperties(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IPLATFORMPROPERTIES(_to) \
  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 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 GetSupportedParavirtProviders(PRUint32 *supportedParavirtProvidersSize, ParavirtProvider_T **supportedParavirtProviders) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedParavirtProviders(supportedParavirtProvidersSize, supportedParavirtProviders); } \
  NS_IMETHOD GetSupportedFirmwareTypes(PRUint32 *supportedFirmwareTypesSize, FirmwareType_T **supportedFirmwareTypes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedFirmwareTypes(supportedFirmwareTypesSize, supportedFirmwareTypes); } \
  NS_IMETHOD GetSupportedGuestOSTypes(PRUint32 *supportedGuestOSTypesSize, IGuestOSType * **supportedGuestOSTypes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedGuestOSTypes(supportedGuestOSTypesSize, supportedGuestOSTypes); } \
  NS_IMETHOD GetSupportedGfxControllerTypes(PRUint32 *supportedGfxControllerTypesSize, GraphicsControllerType_T **supportedGfxControllerTypes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedGfxControllerTypes(supportedGfxControllerTypesSize, supportedGfxControllerTypes); } \
  NS_IMETHOD GetSupportedNetAdpPromiscModePols(PRUint32 *supportedNetAdpPromiscModePolsSize, NetworkAdapterPromiscModePolicy_T **supportedNetAdpPromiscModePols) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedNetAdpPromiscModePols(supportedNetAdpPromiscModePolsSize, supportedNetAdpPromiscModePols); } \
  NS_IMETHOD GetSupportedNetworkAdapterTypes(PRUint32 *supportedNetworkAdapterTypesSize, NetworkAdapterType_T **supportedNetworkAdapterTypes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedNetworkAdapterTypes(supportedNetworkAdapterTypesSize, supportedNetworkAdapterTypes); } \
  NS_IMETHOD GetSupportedUartTypes(PRUint32 *supportedUartTypesSize, UartType_T **supportedUartTypes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedUartTypes(supportedUartTypesSize, supportedUartTypes); } \
  NS_IMETHOD GetSupportedUSBControllerTypes(PRUint32 *supportedUSBControllerTypesSize, USBControllerType_T **supportedUSBControllerTypes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedUSBControllerTypes(supportedUSBControllerTypesSize, supportedUSBControllerTypes); } \
  NS_IMETHOD GetSupportedAudioControllerTypes(PRUint32 *supportedAudioControllerTypesSize, AudioControllerType_T **supportedAudioControllerTypes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedAudioControllerTypes(supportedAudioControllerTypesSize, supportedAudioControllerTypes); } \
  NS_IMETHOD GetSupportedBootDevices(PRUint32 *supportedBootDevicesSize, DeviceType_T **supportedBootDevices) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedBootDevices(supportedBootDevicesSize, supportedBootDevices); } \
  NS_IMETHOD GetSupportedStorageBuses(PRUint32 *supportedStorageBusesSize, StorageBus_T **supportedStorageBuses) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedStorageBuses(supportedStorageBusesSize, supportedStorageBuses); } \
  NS_IMETHOD GetSupportedStorageControllerTypes(PRUint32 *supportedStorageControllerTypesSize, StorageControllerType_T **supportedStorageControllerTypes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedStorageControllerTypes(supportedStorageControllerTypesSize, supportedStorageControllerTypes); } \
  NS_IMETHOD GetSupportedChipsetTypes(PRUint32 *supportedChipsetTypesSize, ChipsetType_T **supportedChipsetTypes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedChipsetTypes(supportedChipsetTypesSize, supportedChipsetTypes); } \
  NS_IMETHOD GetSupportedIommuTypes(PRUint32 *supportedIommuTypesSize, IommuType_T **supportedIommuTypes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedIommuTypes(supportedIommuTypesSize, supportedIommuTypes); } \
  NS_IMETHOD GetSupportedTpmTypes(PRUint32 *supportedTpmTypesSize, TpmType_T **supportedTpmTypes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedTpmTypes(supportedTpmTypesSize, supportedTpmTypes); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IPlatformProperties(PRUint32 *aInternalAndReservedAttribute1IPlatformProperties) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IPlatformProperties(aInternalAndReservedAttribute1IPlatformProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IPlatformProperties(PRUint32 *aInternalAndReservedAttribute2IPlatformProperties) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IPlatformProperties(aInternalAndReservedAttribute2IPlatformProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IPlatformProperties(PRUint32 *aInternalAndReservedAttribute3IPlatformProperties) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IPlatformProperties(aInternalAndReservedAttribute3IPlatformProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IPlatformProperties(PRUint32 *aInternalAndReservedAttribute4IPlatformProperties) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IPlatformProperties(aInternalAndReservedAttribute4IPlatformProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IPlatformProperties(PRUint32 *aInternalAndReservedAttribute5IPlatformProperties) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IPlatformProperties(aInternalAndReservedAttribute5IPlatformProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IPlatformProperties(PRUint32 *aInternalAndReservedAttribute6IPlatformProperties) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IPlatformProperties(aInternalAndReservedAttribute6IPlatformProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IPlatformProperties(PRUint32 *aInternalAndReservedAttribute7IPlatformProperties) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IPlatformProperties(aInternalAndReservedAttribute7IPlatformProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IPlatformProperties(PRUint32 *aInternalAndReservedAttribute8IPlatformProperties) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IPlatformProperties(aInternalAndReservedAttribute8IPlatformProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute9IPlatformProperties(PRUint32 *aInternalAndReservedAttribute9IPlatformProperties) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute9IPlatformProperties(aInternalAndReservedAttribute9IPlatformProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute10IPlatformProperties(PRUint32 *aInternalAndReservedAttribute10IPlatformProperties) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute10IPlatformProperties(aInternalAndReservedAttribute10IPlatformProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute11IPlatformProperties(PRUint32 *aInternalAndReservedAttribute11IPlatformProperties) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute11IPlatformProperties(aInternalAndReservedAttribute11IPlatformProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute12IPlatformProperties(PRUint32 *aInternalAndReservedAttribute12IPlatformProperties) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute12IPlatformProperties(aInternalAndReservedAttribute12IPlatformProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute13IPlatformProperties(PRUint32 *aInternalAndReservedAttribute13IPlatformProperties) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute13IPlatformProperties(aInternalAndReservedAttribute13IPlatformProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute14IPlatformProperties(PRUint32 *aInternalAndReservedAttribute14IPlatformProperties) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute14IPlatformProperties(aInternalAndReservedAttribute14IPlatformProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute15IPlatformProperties(PRUint32 *aInternalAndReservedAttribute15IPlatformProperties) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute15IPlatformProperties(aInternalAndReservedAttribute15IPlatformProperties); } \
  NS_IMETHOD GetInternalAndReservedAttribute16IPlatformProperties(PRUint32 *aInternalAndReservedAttribute16IPlatformProperties) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute16IPlatformProperties(aInternalAndReservedAttribute16IPlatformProperties); } \
  NS_IMETHOD GetMaxNetworkAdapters(ChipsetType_T chipset, PRUint32 *maxNetworkAdapters) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMaxNetworkAdapters(chipset, maxNetworkAdapters); } \
  NS_IMETHOD GetMaxNetworkAdaptersOfType(ChipsetType_T chipset, NetworkAttachmentType_T type, PRUint32 *maxNetworkAdapters) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMaxNetworkAdaptersOfType(chipset, type, maxNetworkAdapters); } \
  NS_IMETHOD GetMaxDevicesPerPortForStorageBus(StorageBus_T bus, PRUint32 *maxDevicesPerPort) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMaxDevicesPerPortForStorageBus(bus, maxDevicesPerPort); } \
  NS_IMETHOD GetMinPortCountForStorageBus(StorageBus_T bus, PRUint32 *minPortCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMinPortCountForStorageBus(bus, minPortCount); } \
  NS_IMETHOD GetMaxPortCountForStorageBus(StorageBus_T bus, PRUint32 *maxPortCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMaxPortCountForStorageBus(bus, maxPortCount); } \
  NS_IMETHOD GetMaxInstancesOfStorageBus(ChipsetType_T chipset, StorageBus_T bus, PRUint32 *maxInstances) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMaxInstancesOfStorageBus(chipset, bus, maxInstances); } \
  NS_IMETHOD GetSupportedVRAMRange(GraphicsControllerType_T graphicsControllerType, PRBool accelerate3DEnabled, PRUint32 *minMB, PRUint32 *maxMB, PRUint32 *strideSizeMB) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedVRAMRange(graphicsControllerType, accelerate3DEnabled, minMB, maxMB, strideSizeMB); } \
  NS_IMETHOD GetSupportedGfxFeaturesForType(GraphicsControllerType_T graphicsControllerType, PRUint32 *supportedControllerFeaturesSize, GraphicsFeature_T **supportedControllerFeatures) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedGfxFeaturesForType(graphicsControllerType, supportedControllerFeaturesSize, supportedControllerFeatures); } \
  NS_IMETHOD GetDeviceTypesForStorageBus(StorageBus_T bus, PRUint32 *deviceTypesSize, DeviceType_T **deviceTypes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDeviceTypesForStorageBus(bus, deviceTypesSize, deviceTypes); } \
  NS_IMETHOD GetStorageBusForControllerType(StorageControllerType_T storageControllerType, StorageBus_T *storageBus) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStorageBusForControllerType(storageControllerType, storageBus); } \
  NS_IMETHOD GetStorageControllerTypesForBus(StorageBus_T storageBus, PRUint32 *storageControllerTypeSize, StorageControllerType_T **storageControllerType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStorageControllerTypesForBus(storageBus, storageControllerTypeSize, storageControllerType); } \
  NS_IMETHOD GetStorageControllerHotplugCapable(StorageControllerType_T controllerType, PRBool *hotplugCapable) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStorageControllerHotplugCapable(controllerType, hotplugCapable); } \
  NS_IMETHOD GetMaxInstancesOfUSBControllerType(ChipsetType_T chipset, USBControllerType_T type, PRUint32 *maxInstances) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMaxInstancesOfUSBControllerType(chipset, type, maxInstances); } \
  NS_IMETHOD GetMinGuestRAM(FirmwareType_T firmware, PRUint32 *minMegabytes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMinGuestRAM(firmware, minMegabytes); } \
  NS_IMETHOD InternalAndReservedMethod1IPlatformProperties(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IPlatformProperties(); } \
  NS_IMETHOD InternalAndReservedMethod2IPlatformProperties(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IPlatformProperties(); } \
  NS_IMETHOD InternalAndReservedMethod3IPlatformProperties(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IPlatformProperties(); } 

#define COM_FORWARD_IPlatformProperties_GETTER_RawModeSupported_TO(smth) NS_IMETHOD GetRawModeSupported (PRBool * aRawModeSupported) { return smth GetRawModeSupported (aRawModeSupported); }
#define COM_FORWARD_IPlatformProperties_GETTER_RawModeSupported_TO_OBJ(obj) COM_FORWARD_IPlatformProperties_GETTER_RawModeSupported_TO ((obj)->)
#define COM_FORWARD_IPlatformProperties_GETTER_RawModeSupported_TO_BASE(base) COM_FORWARD_IPlatformProperties_GETTER_RawModeSupported_TO (base::)
#define COM_FORWARD_IPlatformProperties_GETTER_ExclusiveHwVirt_TO(smth) NS_IMETHOD GetExclusiveHwVirt (PRBool * aExclusiveHwVirt) { return smth GetExclusiveHwVirt (aExclusiveHwVirt); }
#define COM_FORWARD_IPlatformProperties_GETTER_ExclusiveHwVirt_TO_OBJ(obj) COM_FORWARD_IPlatformProperties_GETTER_ExclusiveHwVirt_TO ((obj)->)
#define COM_FORWARD_IPlatformProperties_GETTER_ExclusiveHwVirt_TO_BASE(base) COM_FORWARD_IPlatformProperties_GETTER_ExclusiveHwVirt_TO (base::)
#define COM_FORWARD_IPlatformProperties_SETTER_ExclusiveHwVirt_TO(smth) NS_IMETHOD SetExclusiveHwVirt (PRBool aExclusiveHwVirt) { return smth SetExclusiveHwVirt (aExclusiveHwVirt); }
#define COM_FORWARD_IPlatformProperties_SETTER_ExclusiveHwVirt_TO_OBJ(obj) COM_FORWARD_IPlatformProperties_SETTER_ExclusiveHwVirt_TO ((obj)->)
#define COM_FORWARD_IPlatformProperties_SETTER_ExclusiveHwVirt_TO_BASE(base) COM_FORWARD_IPlatformProperties_SETTER_ExclusiveHwVirt_TO (base::)
#define COM_FORWARD_IPlatformProperties_GETTER_SerialPortCount_TO(smth) NS_IMETHOD GetSerialPortCount (PRUint32 * aSerialPortCount) { return smth GetSerialPortCount (aSerialPortCount); }
#define COM_FORWARD_IPlatformProperties_GETTER_SerialPortCount_TO_OBJ(obj) COM_FORWARD_IPlatformProperties_GETTER_SerialPortCount_TO ((obj)->)
#define COM_FORWARD_IPlatformProperties_GETTER_SerialPortCount_TO_BASE(base) COM_FORWARD_IPlatformProperties_GETTER_SerialPortCount_TO (base::)
#define COM_FORWARD_IPlatformProperties_GETTER_ParallelPortCount_TO(smth) NS_IMETHOD GetParallelPortCount (PRUint32 * aParallelPortCount) { return smth GetParallelPortCount (aParallelPortCount); }
#define COM_FORWARD_IPlatformProperties_GETTER_ParallelPortCount_TO_OBJ(obj) COM_FORWARD_IPlatformProperties_GETTER_ParallelPortCount_TO ((obj)->)
#define COM_FORWARD_IPlatformProperties_GETTER_ParallelPortCount_TO_BASE(base) COM_FORWARD_IPlatformProperties_GETTER_ParallelPortCount_TO (base::)
#define COM_FORWARD_IPlatformProperties_GETTER_MaxBootPosition_TO(smth) NS_IMETHOD GetMaxBootPosition (PRUint32 * aMaxBootPosition) { return smth GetMaxBootPosition (aMaxBootPosition); }
#define COM_FORWARD_IPlatformProperties_GETTER_MaxBootPosition_TO_OBJ(obj) COM_FORWARD_IPlatformProperties_GETTER_MaxBootPosition_TO ((obj)->)
#define COM_FORWARD_IPlatformProperties_GETTER_MaxBootPosition_TO_BASE(base) COM_FORWARD_IPlatformProperties_GETTER_MaxBootPosition_TO (base::)
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedParavirtProviders_TO(smth) NS_IMETHOD GetSupportedParavirtProviders (PRUint32 * aSupportedParavirtProvidersSize, PRUint32 * * aSupportedParavirtProviders) { return smth GetSupportedParavirtProviders (aSupportedParavirtProvidersSize, aSupportedParavirtProviders); }
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedParavirtProviders_TO_OBJ(obj) COM_FORWARD_IPlatformProperties_GETTER_SupportedParavirtProviders_TO ((obj)->)
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedParavirtProviders_TO_BASE(base) COM_FORWARD_IPlatformProperties_GETTER_SupportedParavirtProviders_TO (base::)
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedFirmwareTypes_TO(smth) NS_IMETHOD GetSupportedFirmwareTypes (PRUint32 * aSupportedFirmwareTypesSize, PRUint32 * * aSupportedFirmwareTypes) { return smth GetSupportedFirmwareTypes (aSupportedFirmwareTypesSize, aSupportedFirmwareTypes); }
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedFirmwareTypes_TO_OBJ(obj) COM_FORWARD_IPlatformProperties_GETTER_SupportedFirmwareTypes_TO ((obj)->)
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedFirmwareTypes_TO_BASE(base) COM_FORWARD_IPlatformProperties_GETTER_SupportedFirmwareTypes_TO (base::)
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedGuestOSTypes_TO(smth) NS_IMETHOD GetSupportedGuestOSTypes (PRUint32 * aSupportedGuestOSTypesSize, IGuestOSType * * * aSupportedGuestOSTypes) { return smth GetSupportedGuestOSTypes (aSupportedGuestOSTypesSize, aSupportedGuestOSTypes); }
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedGuestOSTypes_TO_OBJ(obj) COM_FORWARD_IPlatformProperties_GETTER_SupportedGuestOSTypes_TO ((obj)->)
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedGuestOSTypes_TO_BASE(base) COM_FORWARD_IPlatformProperties_GETTER_SupportedGuestOSTypes_TO (base::)
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedGfxControllerTypes_TO(smth) NS_IMETHOD GetSupportedGfxControllerTypes (PRUint32 * aSupportedGfxControllerTypesSize, PRUint32 * * aSupportedGfxControllerTypes) { return smth GetSupportedGfxControllerTypes (aSupportedGfxControllerTypesSize, aSupportedGfxControllerTypes); }
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedGfxControllerTypes_TO_OBJ(obj) COM_FORWARD_IPlatformProperties_GETTER_SupportedGfxControllerTypes_TO ((obj)->)
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedGfxControllerTypes_TO_BASE(base) COM_FORWARD_IPlatformProperties_GETTER_SupportedGfxControllerTypes_TO (base::)
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedNetAdpPromiscModePols_TO(smth) NS_IMETHOD GetSupportedNetAdpPromiscModePols (PRUint32 * aSupportedNetAdpPromiscModePolsSize, PRUint32 * * aSupportedNetAdpPromiscModePols) { return smth GetSupportedNetAdpPromiscModePols (aSupportedNetAdpPromiscModePolsSize, aSupportedNetAdpPromiscModePols); }
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedNetAdpPromiscModePols_TO_OBJ(obj) COM_FORWARD_IPlatformProperties_GETTER_SupportedNetAdpPromiscModePols_TO ((obj)->)
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedNetAdpPromiscModePols_TO_BASE(base) COM_FORWARD_IPlatformProperties_GETTER_SupportedNetAdpPromiscModePols_TO (base::)
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedNetworkAdapterTypes_TO(smth) NS_IMETHOD GetSupportedNetworkAdapterTypes (PRUint32 * aSupportedNetworkAdapterTypesSize, PRUint32 * * aSupportedNetworkAdapterTypes) { return smth GetSupportedNetworkAdapterTypes (aSupportedNetworkAdapterTypesSize, aSupportedNetworkAdapterTypes); }
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedNetworkAdapterTypes_TO_OBJ(obj) COM_FORWARD_IPlatformProperties_GETTER_SupportedNetworkAdapterTypes_TO ((obj)->)
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedNetworkAdapterTypes_TO_BASE(base) COM_FORWARD_IPlatformProperties_GETTER_SupportedNetworkAdapterTypes_TO (base::)
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedUartTypes_TO(smth) NS_IMETHOD GetSupportedUartTypes (PRUint32 * aSupportedUartTypesSize, PRUint32 * * aSupportedUartTypes) { return smth GetSupportedUartTypes (aSupportedUartTypesSize, aSupportedUartTypes); }
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedUartTypes_TO_OBJ(obj) COM_FORWARD_IPlatformProperties_GETTER_SupportedUartTypes_TO ((obj)->)
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedUartTypes_TO_BASE(base) COM_FORWARD_IPlatformProperties_GETTER_SupportedUartTypes_TO (base::)
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedUSBControllerTypes_TO(smth) NS_IMETHOD GetSupportedUSBControllerTypes (PRUint32 * aSupportedUSBControllerTypesSize, PRUint32 * * aSupportedUSBControllerTypes) { return smth GetSupportedUSBControllerTypes (aSupportedUSBControllerTypesSize, aSupportedUSBControllerTypes); }
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedUSBControllerTypes_TO_OBJ(obj) COM_FORWARD_IPlatformProperties_GETTER_SupportedUSBControllerTypes_TO ((obj)->)
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedUSBControllerTypes_TO_BASE(base) COM_FORWARD_IPlatformProperties_GETTER_SupportedUSBControllerTypes_TO (base::)
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedAudioControllerTypes_TO(smth) NS_IMETHOD GetSupportedAudioControllerTypes (PRUint32 * aSupportedAudioControllerTypesSize, PRUint32 * * aSupportedAudioControllerTypes) { return smth GetSupportedAudioControllerTypes (aSupportedAudioControllerTypesSize, aSupportedAudioControllerTypes); }
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedAudioControllerTypes_TO_OBJ(obj) COM_FORWARD_IPlatformProperties_GETTER_SupportedAudioControllerTypes_TO ((obj)->)
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedAudioControllerTypes_TO_BASE(base) COM_FORWARD_IPlatformProperties_GETTER_SupportedAudioControllerTypes_TO (base::)
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedBootDevices_TO(smth) NS_IMETHOD GetSupportedBootDevices (PRUint32 * aSupportedBootDevicesSize, PRUint32 * * aSupportedBootDevices) { return smth GetSupportedBootDevices (aSupportedBootDevicesSize, aSupportedBootDevices); }
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedBootDevices_TO_OBJ(obj) COM_FORWARD_IPlatformProperties_GETTER_SupportedBootDevices_TO ((obj)->)
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedBootDevices_TO_BASE(base) COM_FORWARD_IPlatformProperties_GETTER_SupportedBootDevices_TO (base::)
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedStorageBuses_TO(smth) NS_IMETHOD GetSupportedStorageBuses (PRUint32 * aSupportedStorageBusesSize, PRUint32 * * aSupportedStorageBuses) { return smth GetSupportedStorageBuses (aSupportedStorageBusesSize, aSupportedStorageBuses); }
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedStorageBuses_TO_OBJ(obj) COM_FORWARD_IPlatformProperties_GETTER_SupportedStorageBuses_TO ((obj)->)
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedStorageBuses_TO_BASE(base) COM_FORWARD_IPlatformProperties_GETTER_SupportedStorageBuses_TO (base::)
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedStorageControllerTypes_TO(smth) NS_IMETHOD GetSupportedStorageControllerTypes (PRUint32 * aSupportedStorageControllerTypesSize, PRUint32 * * aSupportedStorageControllerTypes) { return smth GetSupportedStorageControllerTypes (aSupportedStorageControllerTypesSize, aSupportedStorageControllerTypes); }
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedStorageControllerTypes_TO_OBJ(obj) COM_FORWARD_IPlatformProperties_GETTER_SupportedStorageControllerTypes_TO ((obj)->)
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedStorageControllerTypes_TO_BASE(base) COM_FORWARD_IPlatformProperties_GETTER_SupportedStorageControllerTypes_TO (base::)
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedChipsetTypes_TO(smth) NS_IMETHOD GetSupportedChipsetTypes (PRUint32 * aSupportedChipsetTypesSize, PRUint32 * * aSupportedChipsetTypes) { return smth GetSupportedChipsetTypes (aSupportedChipsetTypesSize, aSupportedChipsetTypes); }
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedChipsetTypes_TO_OBJ(obj) COM_FORWARD_IPlatformProperties_GETTER_SupportedChipsetTypes_TO ((obj)->)
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedChipsetTypes_TO_BASE(base) COM_FORWARD_IPlatformProperties_GETTER_SupportedChipsetTypes_TO (base::)
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedIommuTypes_TO(smth) NS_IMETHOD GetSupportedIommuTypes (PRUint32 * aSupportedIommuTypesSize, PRUint32 * * aSupportedIommuTypes) { return smth GetSupportedIommuTypes (aSupportedIommuTypesSize, aSupportedIommuTypes); }
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedIommuTypes_TO_OBJ(obj) COM_FORWARD_IPlatformProperties_GETTER_SupportedIommuTypes_TO ((obj)->)
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedIommuTypes_TO_BASE(base) COM_FORWARD_IPlatformProperties_GETTER_SupportedIommuTypes_TO (base::)
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedTpmTypes_TO(smth) NS_IMETHOD GetSupportedTpmTypes (PRUint32 * aSupportedTpmTypesSize, PRUint32 * * aSupportedTpmTypes) { return smth GetSupportedTpmTypes (aSupportedTpmTypesSize, aSupportedTpmTypes); }
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedTpmTypes_TO_OBJ(obj) COM_FORWARD_IPlatformProperties_GETTER_SupportedTpmTypes_TO ((obj)->)
#define COM_FORWARD_IPlatformProperties_GETTER_SupportedTpmTypes_TO_BASE(base) COM_FORWARD_IPlatformProperties_GETTER_SupportedTpmTypes_TO (base::)
#define COM_FORWARD_IPlatformProperties_GetMaxNetworkAdapters_TO(smth) NS_IMETHOD GetMaxNetworkAdapters (PRUint32 aChipset, PRUint32 * aMaxNetworkAdapters) { return smth GetMaxNetworkAdapters (aChipset, aMaxNetworkAdapters); }
#define COM_FORWARD_IPlatformProperties_GetMaxNetworkAdapters_TO_OBJ(obj) COM_FORWARD_IPlatformProperties_GetMaxNetworkAdapters_TO ((obj)->)
#define COM_FORWARD_IPlatformProperties_GetMaxNetworkAdapters_TO_BASE(base) COM_FORWARD_IPlatformProperties_GetMaxNetworkAdapters_TO (base::)
#define COM_FORWARD_IPlatformProperties_GetMaxNetworkAdaptersOfType_TO(smth) NS_IMETHOD GetMaxNetworkAdaptersOfType (PRUint32 aChipset, PRUint32 aType, PRUint32 * aMaxNetworkAdapters) { return smth GetMaxNetworkAdaptersOfType (aChipset, aType, aMaxNetworkAdapters); }
#define COM_FORWARD_IPlatformProperties_GetMaxNetworkAdaptersOfType_TO_OBJ(obj) COM_FORWARD_IPlatformProperties_GetMaxNetworkAdaptersOfType_TO ((obj)->)
#define COM_FORWARD_IPlatformProperties_GetMaxNetworkAdaptersOfType_TO_BASE(base) COM_FORWARD_IPlatformProperties_GetMaxNetworkAdaptersOfType_TO (base::)
#define COM_FORWARD_IPlatformProperties_GetMaxDevicesPerPortForStorageBus_TO(smth) NS_IMETHOD GetMaxDevicesPerPortForStorageBus (PRUint32 aBus, PRUint32 * aMaxDevicesPerPort) { return smth GetMaxDevicesPerPortForStorageBus (aBus, aMaxDevicesPerPort); }
#define COM_FORWARD_IPlatformProperties_GetMaxDevicesPerPortForStorageBus_TO_OBJ(obj) COM_FORWARD_IPlatformProperties_GetMaxDevicesPerPortForStorageBus_TO ((obj)->)
#define COM_FORWARD_IPlatformProperties_GetMaxDevicesPerPortForStorageBus_TO_BASE(base) COM_FORWARD_IPlatformProperties_GetMaxDevicesPerPortForStorageBus_TO (base::)
#define COM_FORWARD_IPlatformProperties_GetMinPortCountForStorageBus_TO(smth) NS_IMETHOD GetMinPortCountForStorageBus (PRUint32 aBus, PRUint32 * aMinPortCount) { return smth GetMinPortCountForStorageBus (aBus, aMinPortCount); }
#define COM_FORWARD_IPlatformProperties_GetMinPortCountForStorageBus_TO_OBJ(obj) COM_FORWARD_IPlatformProperties_GetMinPortCountForStorageBus_TO ((obj)->)
#define COM_FORWARD_IPlatformProperties_GetMinPortCountForStorageBus_TO_BASE(base) COM_FORWARD_IPlatformProperties_GetMinPortCountForStorageBus_TO (base::)
#define COM_FORWARD_IPlatformProperties_GetMaxPortCountForStorageBus_TO(smth) NS_IMETHOD GetMaxPortCountForStorageBus (PRUint32 aBus, PRUint32 * aMaxPortCount) { return smth GetMaxPortCountForStorageBus (aBus, aMaxPortCount); }
#define COM_FORWARD_IPlatformProperties_GetMaxPortCountForStorageBus_TO_OBJ(obj) COM_FORWARD_IPlatformProperties_GetMaxPortCountForStorageBus_TO ((obj)->)
#define COM_FORWARD_IPlatformProperties_GetMaxPortCountForStorageBus_TO_BASE(base) COM_FORWARD_IPlatformProperties_GetMaxPortCountForStorageBus_TO (base::)
#define COM_FORWARD_IPlatformProperties_GetMaxInstancesOfStorageBus_TO(smth) NS_IMETHOD GetMaxInstancesOfStorageBus (PRUint32 aChipset, PRUint32 aBus, PRUint32 * aMaxInstances) { return smth GetMaxInstancesOfStorageBus (aChipset, aBus, aMaxInstances); }
#define COM_FORWARD_IPlatformProperties_GetMaxInstancesOfStorageBus_TO_OBJ(obj) COM_FORWARD_IPlatformProperties_GetMaxInstancesOfStorageBus_TO ((obj)->)
#define COM_FORWARD_IPlatformProperties_GetMaxInstancesOfStorageBus_TO_BASE(base) COM_FORWARD_IPlatformProperties_GetMaxInstancesOfStorageBus_TO (base::)
#define COM_FORWARD_IPlatformProperties_GetSupportedVRAMRange_TO(smth) NS_IMETHOD GetSupportedVRAMRange (PRUint32 aGraphicsControllerType, PRBool aAccelerate3DEnabled, PRUint32 * aMinMB, PRUint32 * aMaxMB, PRUint32 * aStrideSizeMB) { return smth GetSupportedVRAMRange (aGraphicsControllerType, aAccelerate3DEnabled, aMinMB, aMaxMB, aStrideSizeMB); }
#define COM_FORWARD_IPlatformProperties_GetSupportedVRAMRange_TO_OBJ(obj) COM_FORWARD_IPlatformProperties_GetSupportedVRAMRange_TO ((obj)->)
#define COM_FORWARD_IPlatformProperties_GetSupportedVRAMRange_TO_BASE(base) COM_FORWARD_IPlatformProperties_GetSupportedVRAMRange_TO (base::)
#define COM_FORWARD_IPlatformProperties_GetSupportedGfxFeaturesForType_TO(smth) NS_IMETHOD GetSupportedGfxFeaturesForType (PRUint32 aGraphicsControllerType, PRUint32 * aSupportedControllerFeaturesSize, PRUint32 * * aSupportedControllerFeatures) { return smth GetSupportedGfxFeaturesForType (aGraphicsControllerType, aSupportedControllerFeaturesSize, aSupportedControllerFeatures); }
#define COM_FORWARD_IPlatformProperties_GetSupportedGfxFeaturesForType_TO_OBJ(obj) COM_FORWARD_IPlatformProperties_GetSupportedGfxFeaturesForType_TO ((obj)->)
#define COM_FORWARD_IPlatformProperties_GetSupportedGfxFeaturesForType_TO_BASE(base) COM_FORWARD_IPlatformProperties_GetSupportedGfxFeaturesForType_TO (base::)
#define COM_FORWARD_IPlatformProperties_GetDeviceTypesForStorageBus_TO(smth) NS_IMETHOD GetDeviceTypesForStorageBus (PRUint32 aBus, PRUint32 * aDeviceTypesSize, PRUint32 * * aDeviceTypes) { return smth GetDeviceTypesForStorageBus (aBus, aDeviceTypesSize, aDeviceTypes); }
#define COM_FORWARD_IPlatformProperties_GetDeviceTypesForStorageBus_TO_OBJ(obj) COM_FORWARD_IPlatformProperties_GetDeviceTypesForStorageBus_TO ((obj)->)
#define COM_FORWARD_IPlatformProperties_GetDeviceTypesForStorageBus_TO_BASE(base) COM_FORWARD_IPlatformProperties_GetDeviceTypesForStorageBus_TO (base::)
#define COM_FORWARD_IPlatformProperties_GetStorageBusForControllerType_TO(smth) NS_IMETHOD GetStorageBusForControllerType (PRUint32 aStorageControllerType, PRUint32 * aStorageBus) { return smth GetStorageBusForControllerType (aStorageControllerType, aStorageBus); }
#define COM_FORWARD_IPlatformProperties_GetStorageBusForControllerType_TO_OBJ(obj) COM_FORWARD_IPlatformProperties_GetStorageBusForControllerType_TO ((obj)->)
#define COM_FORWARD_IPlatformProperties_GetStorageBusForControllerType_TO_BASE(base) COM_FORWARD_IPlatformProperties_GetStorageBusForControllerType_TO (base::)
#define COM_FORWARD_IPlatformProperties_GetStorageControllerTypesForBus_TO(smth) NS_IMETHOD GetStorageControllerTypesForBus (PRUint32 aStorageBus, PRUint32 * aStorageControllerTypeSize, PRUint32 * * aStorageControllerType) { return smth GetStorageControllerTypesForBus (aStorageBus, aStorageControllerTypeSize, aStorageControllerType); }
#define COM_FORWARD_IPlatformProperties_GetStorageControllerTypesForBus_TO_OBJ(obj) COM_FORWARD_IPlatformProperties_GetStorageControllerTypesForBus_TO ((obj)->)
#define COM_FORWARD_IPlatformProperties_GetStorageControllerTypesForBus_TO_BASE(base) COM_FORWARD_IPlatformProperties_GetStorageControllerTypesForBus_TO (base::)
#define COM_FORWARD_IPlatformProperties_GetStorageControllerHotplugCapable_TO(smth) NS_IMETHOD GetStorageControllerHotplugCapable (PRUint32 aControllerType, PRBool * aHotplugCapable) { return smth GetStorageControllerHotplugCapable (aControllerType, aHotplugCapable); }
#define COM_FORWARD_IPlatformProperties_GetStorageControllerHotplugCapable_TO_OBJ(obj) COM_FORWARD_IPlatformProperties_GetStorageControllerHotplugCapable_TO ((obj)->)
#define COM_FORWARD_IPlatformProperties_GetStorageControllerHotplugCapable_TO_BASE(base) COM_FORWARD_IPlatformProperties_GetStorageControllerHotplugCapable_TO (base::)
#define COM_FORWARD_IPlatformProperties_GetMaxInstancesOfUSBControllerType_TO(smth) NS_IMETHOD GetMaxInstancesOfUSBControllerType (PRUint32 aChipset, PRUint32 aType, PRUint32 * aMaxInstances) { return smth GetMaxInstancesOfUSBControllerType (aChipset, aType, aMaxInstances); }
#define COM_FORWARD_IPlatformProperties_GetMaxInstancesOfUSBControllerType_TO_OBJ(obj) COM_FORWARD_IPlatformProperties_GetMaxInstancesOfUSBControllerType_TO ((obj)->)
#define COM_FORWARD_IPlatformProperties_GetMaxInstancesOfUSBControllerType_TO_BASE(base) COM_FORWARD_IPlatformProperties_GetMaxInstancesOfUSBControllerType_TO (base::)
#define COM_FORWARD_IPlatformProperties_GetMinGuestRAM_TO(smth) NS_IMETHOD GetMinGuestRAM (PRUint32 aFirmware, PRUint32 * aMinMegabytes) { return smth GetMinGuestRAM (aFirmware, aMinMegabytes); }
#define COM_FORWARD_IPlatformProperties_GetMinGuestRAM_TO_OBJ(obj) COM_FORWARD_IPlatformProperties_GetMinGuestRAM_TO ((obj)->)
#define COM_FORWARD_IPlatformProperties_GetMinGuestRAM_TO_BASE(base) COM_FORWARD_IPlatformProperties_GetMinGuestRAM_TO (base::)
#define COM_FORWARD_IPlatformProperties_TO(smth) NS_FORWARD_IPLATFORMPROPERTIES (smth)
#define COM_FORWARD_IPlatformProperties_TO_OBJ(obj) COM_FORWARD_IPlatformProperties_TO ((obj)->)
#define COM_FORWARD_IPlatformProperties_TO_BASE(base) COM_FORWARD_IPlatformProperties_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IPlatformProperties;

/* starting interface:    ISystemProperties */
#define ISYSTEMPROPERTIES_IID_STR "925084b0-625f-422f-a67d-0ede1880a56c"

#define ISYSTEMPROPERTIES_IID \
  {0x925084b0, 0x625f, 0x422f, \
    { 0xa6, 0x7d, 0x0e, 0xde, 0x18, 0x80, 0xa5, 0x6c }}

class NS_NO_VTABLE ISystemProperties : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ISYSTEMPROPERTIES_IID)

  /* readonly attribute IPlatformProperties platform; */
  NS_IMETHOD GetPlatform(IPlatformProperties * *aPlatform) = 0;

  /* 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;

  /* 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 wstring defaultCryptoExtPack; */
  NS_IMETHOD GetDefaultCryptoExtPack(PRUnichar **aDefaultCryptoExtPack) = 0;
  NS_IMETHOD SetDefaultCryptoExtPack(const PRUnichar *aDefaultCryptoExtPack) = 0;

  /* attribute unsigned long logHistoryCount; */
  NS_IMETHOD GetLogHistoryCount(PRUint32 *aLogHistoryCount) = 0;
  NS_IMETHOD SetLogHistoryCount(PRUint32 aLogHistoryCount) = 0;

  /* readonly attribute AudioDriverType_T defaultAudioDriver; */
  NS_IMETHOD GetDefaultAudioDriver(AudioDriverType_T *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 BitmapFormat_T screenShotFormats); */
  NS_IMETHOD GetScreenShotFormats(PRUint32 *screenShotFormatsSize, BitmapFormat_T **screenShotFormats) = 0;

  /* attribute ProxyMode_T proxyMode; */
  NS_IMETHOD GetProxyMode(ProxyMode_T *aProxyMode) = 0;
  NS_IMETHOD SetProxyMode(ProxyMode_T aProxyMode) = 0;

  /* attribute wstring proxyURL; */
  NS_IMETHOD GetProxyURL(PRUnichar **aProxyURL) = 0;
  NS_IMETHOD SetProxyURL(const PRUnichar *aProxyURL) = 0;

  /* void getSupportedPlatformArchitectures (out unsigned long supportedPlatformArchitecturesSize, [array, size_is (supportedPlatformArchitecturesSize), retval] out PlatformArchitecture_T supportedPlatformArchitectures); */
  NS_IMETHOD GetSupportedPlatformArchitectures(PRUint32 *supportedPlatformArchitecturesSize, PlatformArchitecture_T **supportedPlatformArchitectures) = 0;

  /* void getSupportedClipboardModes (out unsigned long supportedClipboardModesSize, [array, size_is (supportedClipboardModesSize), retval] out ClipboardMode_T supportedClipboardModes); */
  NS_IMETHOD GetSupportedClipboardModes(PRUint32 *supportedClipboardModesSize, ClipboardMode_T **supportedClipboardModes) = 0;

  /* void getSupportedDnDModes (out unsigned long supportedDnDModesSize, [array, size_is (supportedDnDModesSize), retval] out DnDMode_T supportedDnDModes); */
  NS_IMETHOD GetSupportedDnDModes(PRUint32 *supportedDnDModesSize, DnDMode_T **supportedDnDModes) = 0;

  /* void getSupportedPointingHIDTypes (out unsigned long supportedPointingHIDTypesSize, [array, size_is (supportedPointingHIDTypesSize), retval] out PointingHIDType_T supportedPointingHIDTypes); */
  NS_IMETHOD GetSupportedPointingHIDTypes(PRUint32 *supportedPointingHIDTypesSize, PointingHIDType_T **supportedPointingHIDTypes) = 0;

  /* void getSupportedKeyboardHIDTypes (out unsigned long supportedKeyboardHIDTypesSize, [array, size_is (supportedKeyboardHIDTypesSize), retval] out KeyboardHIDType_T supportedKeyboardHIDTypes); */
  NS_IMETHOD GetSupportedKeyboardHIDTypes(PRUint32 *supportedKeyboardHIDTypesSize, KeyboardHIDType_T **supportedKeyboardHIDTypes) = 0;

  /* void getSupportedVFSTypes (out unsigned long supportedVFSTypesSize, [array, size_is (supportedVFSTypesSize), retval] out VFSType_T supportedVFSTypes); */
  NS_IMETHOD GetSupportedVFSTypes(PRUint32 *supportedVFSTypesSize, VFSType_T **supportedVFSTypes) = 0;

  /* void getSupportedImportOptions (out unsigned long supportedImportOptionsSize, [array, size_is (supportedImportOptionsSize), retval] out ImportOptions_T supportedImportOptions); */
  NS_IMETHOD GetSupportedImportOptions(PRUint32 *supportedImportOptionsSize, ImportOptions_T **supportedImportOptions) = 0;

  /* void getSupportedExportOptions (out unsigned long supportedExportOptionsSize, [array, size_is (supportedExportOptionsSize), retval] out ExportOptions_T supportedExportOptions); */
  NS_IMETHOD GetSupportedExportOptions(PRUint32 *supportedExportOptionsSize, ExportOptions_T **supportedExportOptions) = 0;

  /* void getSupportedGraphicsFeatures (out unsigned long supportedGraphicsFeaturesSize, [array, size_is (supportedGraphicsFeaturesSize), retval] out GraphicsFeature_T supportedGraphicsFeatures); */
  NS_IMETHOD GetSupportedGraphicsFeatures(PRUint32 *supportedGraphicsFeaturesSize, GraphicsFeature_T **supportedGraphicsFeatures) = 0;

  /* void getSupportedRecordingFeatures (out unsigned long supportedRecordingFeaturesSize, [array, size_is (supportedRecordingFeaturesSize), retval] out RecordingFeature_T supportedRecordingFeatures); */
  NS_IMETHOD GetSupportedRecordingFeatures(PRUint32 *supportedRecordingFeaturesSize, RecordingFeature_T **supportedRecordingFeatures) = 0;

  /* void getSupportedRecordingAudioCodecs (out unsigned long supportedRecordingAudioCodecsSize, [array, size_is (supportedRecordingAudioCodecsSize), retval] out RecordingAudioCodec_T supportedRecordingAudioCodecs); */
  NS_IMETHOD GetSupportedRecordingAudioCodecs(PRUint32 *supportedRecordingAudioCodecsSize, RecordingAudioCodec_T **supportedRecordingAudioCodecs) = 0;

  /* void getSupportedRecordingVideoCodecs (out unsigned long supportedRecordingVideoCodecsSize, [array, size_is (supportedRecordingVideoCodecsSize), retval] out RecordingVideoCodec_T supportedRecordingVideoCodecs); */
  NS_IMETHOD GetSupportedRecordingVideoCodecs(PRUint32 *supportedRecordingVideoCodecsSize, RecordingVideoCodec_T **supportedRecordingVideoCodecs) = 0;

  /* void getSupportedRecordingVSModes (out unsigned long supportedRecordingVSModesSize, [array, size_is (supportedRecordingVSModesSize), retval] out RecordingVideoScalingMode_T supportedRecordingVSModes); */
  NS_IMETHOD GetSupportedRecordingVSModes(PRUint32 *supportedRecordingVSModesSize, RecordingVideoScalingMode_T **supportedRecordingVSModes) = 0;

  /* void getSupportedRecordingARCModes (out unsigned long supportedRecordingARCModesSize, [array, size_is (supportedRecordingARCModesSize), retval] out RecordingRateControlMode_T supportedRecordingARCModes); */
  NS_IMETHOD GetSupportedRecordingARCModes(PRUint32 *supportedRecordingARCModesSize, RecordingRateControlMode_T **supportedRecordingARCModes) = 0;

  /* void getSupportedRecordingVRCModes (out unsigned long supportedRecordingVRCModesSize, [array, size_is (supportedRecordingVRCModesSize), retval] out RecordingRateControlMode_T supportedRecordingVRCModes); */
  NS_IMETHOD GetSupportedRecordingVRCModes(PRUint32 *supportedRecordingVRCModesSize, RecordingRateControlMode_T **supportedRecordingVRCModes) = 0;

  /* void getSupportedCloneOptions (out unsigned long supportedCloneOptionsSize, [array, size_is (supportedCloneOptionsSize), retval] out CloneOptions_T supportedCloneOptions); */
  NS_IMETHOD GetSupportedCloneOptions(PRUint32 *supportedCloneOptionsSize, CloneOptions_T **supportedCloneOptions) = 0;

  /* void getSupportedAutostopTypes (out unsigned long supportedAutostopTypesSize, [array, size_is (supportedAutostopTypesSize), retval] out AutostopType_T supportedAutostopTypes); */
  NS_IMETHOD GetSupportedAutostopTypes(PRUint32 *supportedAutostopTypesSize, AutostopType_T **supportedAutostopTypes) = 0;

  /* void getSupportedVMProcPriorities (out unsigned long supportedVMProcPrioritiesSize, [array, size_is (supportedVMProcPrioritiesSize), retval] out VMProcPriority_T supportedVMProcPriorities); */
  NS_IMETHOD GetSupportedVMProcPriorities(PRUint32 *supportedVMProcPrioritiesSize, VMProcPriority_T **supportedVMProcPriorities) = 0;

  /* void getSupportedNetworkAttachmentTypes (out unsigned long supportedNetworkAttachmentTypesSize, [array, size_is (supportedNetworkAttachmentTypesSize), retval] out NetworkAttachmentType_T supportedNetworkAttachmentTypes); */
  NS_IMETHOD GetSupportedNetworkAttachmentTypes(PRUint32 *supportedNetworkAttachmentTypesSize, NetworkAttachmentType_T **supportedNetworkAttachmentTypes) = 0;

  /* void getSupportedPortModes (out unsigned long supportedPortModesSize, [array, size_is (supportedPortModesSize), retval] out PortMode_T supportedPortModes); */
  NS_IMETHOD GetSupportedPortModes(PRUint32 *supportedPortModesSize, PortMode_T **supportedPortModes) = 0;

  /* void getSupportedAudioDriverTypes (out unsigned long supportedAudioDriverTypesSize, [array, size_is (supportedAudioDriverTypesSize), retval] out AudioDriverType_T supportedAudioDriverTypes); */
  NS_IMETHOD GetSupportedAudioDriverTypes(PRUint32 *supportedAudioDriverTypesSize, AudioDriverType_T **supportedAudioDriverTypes) = 0;

  /* attribute wstring languageId; */
  NS_IMETHOD GetLanguageId(PRUnichar **aLanguageId) = 0;
  NS_IMETHOD SetLanguageId(const PRUnichar *aLanguageId) = 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 getDefaultIoCacheSettingForStorageController (in StorageControllerType_T controllerType, [retval] out boolean enabled); */
  NS_IMETHOD GetDefaultIoCacheSettingForStorageController(StorageControllerType_T controllerType, PRBool *enabled) = 0;

  /* void getCPUProfiles (in CPUArchitecture_T architecture, in wstring namePattern, out unsigned long profilesSize, [array, size_is (profilesSize), retval] out ICPUProfile profiles); */
  NS_IMETHOD GetCPUProfiles(CPUArchitecture_T architecture, const PRUnichar *namePattern, PRUint32 *profilesSize, ICPUProfile * **profiles) = 0;

  /* void getExecutionEnginesForVmCpuArchitecture (in CPUArchitecture_T cpuArchitecture, out unsigned long executionEngineSize, [array, size_is (executionEngineSize), retval] out VMExecutionEngine_T executionEngine); */
  NS_IMETHOD GetExecutionEnginesForVmCpuArchitecture(CPUArchitecture_T cpuArchitecture, PRUint32 *executionEngineSize, VMExecutionEngine_T **executionEngine) = 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 GetPlatform(IPlatformProperties * *aPlatform) NS_OVERRIDE; \
  NS_IMETHOD GetMinGuestRAM(PRUint32 *aMinGuestRAM) NS_OVERRIDE; \
  NS_IMETHOD GetMaxGuestRAM(PRUint32 *aMaxGuestRAM) NS_OVERRIDE; \
  NS_IMETHOD GetMinGuestVRAM(PRUint32 *aMinGuestVRAM) NS_OVERRIDE; \
  NS_IMETHOD GetMaxGuestVRAM(PRUint32 *aMaxGuestVRAM) NS_OVERRIDE; \
  NS_IMETHOD GetMinGuestCPUCount(PRUint32 *aMinGuestCPUCount) NS_OVERRIDE; \
  NS_IMETHOD GetMaxGuestCPUCount(PRUint32 *aMaxGuestCPUCount) NS_OVERRIDE; \
  NS_IMETHOD GetMaxGuestMonitors(PRUint32 *aMaxGuestMonitors) NS_OVERRIDE; \
  NS_IMETHOD GetInfoVDSize(PRInt64 *aInfoVDSize) NS_OVERRIDE; \
  NS_IMETHOD GetDefaultMachineFolder(PRUnichar **aDefaultMachineFolder) NS_OVERRIDE; \
  NS_IMETHOD SetDefaultMachineFolder(const PRUnichar *aDefaultMachineFolder) NS_OVERRIDE; \
  NS_IMETHOD GetLoggingLevel(PRUnichar **aLoggingLevel) NS_OVERRIDE; \
  NS_IMETHOD SetLoggingLevel(const PRUnichar *aLoggingLevel) NS_OVERRIDE; \
  NS_IMETHOD GetMediumFormats(PRUint32 *mediumFormatsSize, IMediumFormat * **mediumFormats) NS_OVERRIDE; \
  NS_IMETHOD GetDefaultHardDiskFormat(PRUnichar **aDefaultHardDiskFormat) NS_OVERRIDE; \
  NS_IMETHOD SetDefaultHardDiskFormat(const PRUnichar *aDefaultHardDiskFormat) NS_OVERRIDE; \
  NS_IMETHOD GetFreeDiskSpaceWarning(PRInt64 *aFreeDiskSpaceWarning) NS_OVERRIDE; \
  NS_IMETHOD SetFreeDiskSpaceWarning(PRInt64 aFreeDiskSpaceWarning) NS_OVERRIDE; \
  NS_IMETHOD GetFreeDiskSpacePercentWarning(PRUint32 *aFreeDiskSpacePercentWarning) NS_OVERRIDE; \
  NS_IMETHOD SetFreeDiskSpacePercentWarning(PRUint32 aFreeDiskSpacePercentWarning) NS_OVERRIDE; \
  NS_IMETHOD GetFreeDiskSpaceError(PRInt64 *aFreeDiskSpaceError) NS_OVERRIDE; \
  NS_IMETHOD SetFreeDiskSpaceError(PRInt64 aFreeDiskSpaceError) NS_OVERRIDE; \
  NS_IMETHOD GetFreeDiskSpacePercentError(PRUint32 *aFreeDiskSpacePercentError) NS_OVERRIDE; \
  NS_IMETHOD SetFreeDiskSpacePercentError(PRUint32 aFreeDiskSpacePercentError) NS_OVERRIDE; \
  NS_IMETHOD GetVRDEAuthLibrary(PRUnichar **aVRDEAuthLibrary) NS_OVERRIDE; \
  NS_IMETHOD SetVRDEAuthLibrary(const PRUnichar *aVRDEAuthLibrary) NS_OVERRIDE; \
  NS_IMETHOD GetWebServiceAuthLibrary(PRUnichar **aWebServiceAuthLibrary) NS_OVERRIDE; \
  NS_IMETHOD SetWebServiceAuthLibrary(const PRUnichar *aWebServiceAuthLibrary) NS_OVERRIDE; \
  NS_IMETHOD GetDefaultVRDEExtPack(PRUnichar **aDefaultVRDEExtPack) NS_OVERRIDE; \
  NS_IMETHOD SetDefaultVRDEExtPack(const PRUnichar *aDefaultVRDEExtPack) NS_OVERRIDE; \
  NS_IMETHOD GetDefaultCryptoExtPack(PRUnichar **aDefaultCryptoExtPack) NS_OVERRIDE; \
  NS_IMETHOD SetDefaultCryptoExtPack(const PRUnichar *aDefaultCryptoExtPack) NS_OVERRIDE; \
  NS_IMETHOD GetLogHistoryCount(PRUint32 *aLogHistoryCount) NS_OVERRIDE; \
  NS_IMETHOD SetLogHistoryCount(PRUint32 aLogHistoryCount) NS_OVERRIDE; \
  NS_IMETHOD GetDefaultAudioDriver(AudioDriverType_T *aDefaultAudioDriver) NS_OVERRIDE; \
  NS_IMETHOD GetAutostartDatabasePath(PRUnichar **aAutostartDatabasePath) NS_OVERRIDE; \
  NS_IMETHOD SetAutostartDatabasePath(const PRUnichar *aAutostartDatabasePath) NS_OVERRIDE; \
  NS_IMETHOD GetDefaultAdditionsISO(PRUnichar **aDefaultAdditionsISO) NS_OVERRIDE; \
  NS_IMETHOD SetDefaultAdditionsISO(const PRUnichar *aDefaultAdditionsISO) NS_OVERRIDE; \
  NS_IMETHOD GetDefaultFrontend(PRUnichar **aDefaultFrontend) NS_OVERRIDE; \
  NS_IMETHOD SetDefaultFrontend(const PRUnichar *aDefaultFrontend) NS_OVERRIDE; \
  NS_IMETHOD GetScreenShotFormats(PRUint32 *screenShotFormatsSize, BitmapFormat_T **screenShotFormats) NS_OVERRIDE; \
  NS_IMETHOD GetProxyMode(ProxyMode_T *aProxyMode) NS_OVERRIDE; \
  NS_IMETHOD SetProxyMode(ProxyMode_T aProxyMode) NS_OVERRIDE; \
  NS_IMETHOD GetProxyURL(PRUnichar **aProxyURL) NS_OVERRIDE; \
  NS_IMETHOD SetProxyURL(const PRUnichar *aProxyURL) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedPlatformArchitectures(PRUint32 *supportedPlatformArchitecturesSize, PlatformArchitecture_T **supportedPlatformArchitectures) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedClipboardModes(PRUint32 *supportedClipboardModesSize, ClipboardMode_T **supportedClipboardModes) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedDnDModes(PRUint32 *supportedDnDModesSize, DnDMode_T **supportedDnDModes) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedPointingHIDTypes(PRUint32 *supportedPointingHIDTypesSize, PointingHIDType_T **supportedPointingHIDTypes) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedKeyboardHIDTypes(PRUint32 *supportedKeyboardHIDTypesSize, KeyboardHIDType_T **supportedKeyboardHIDTypes) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedVFSTypes(PRUint32 *supportedVFSTypesSize, VFSType_T **supportedVFSTypes) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedImportOptions(PRUint32 *supportedImportOptionsSize, ImportOptions_T **supportedImportOptions) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedExportOptions(PRUint32 *supportedExportOptionsSize, ExportOptions_T **supportedExportOptions) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedGraphicsFeatures(PRUint32 *supportedGraphicsFeaturesSize, GraphicsFeature_T **supportedGraphicsFeatures) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedRecordingFeatures(PRUint32 *supportedRecordingFeaturesSize, RecordingFeature_T **supportedRecordingFeatures) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedRecordingAudioCodecs(PRUint32 *supportedRecordingAudioCodecsSize, RecordingAudioCodec_T **supportedRecordingAudioCodecs) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedRecordingVideoCodecs(PRUint32 *supportedRecordingVideoCodecsSize, RecordingVideoCodec_T **supportedRecordingVideoCodecs) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedRecordingVSModes(PRUint32 *supportedRecordingVSModesSize, RecordingVideoScalingMode_T **supportedRecordingVSModes) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedRecordingARCModes(PRUint32 *supportedRecordingARCModesSize, RecordingRateControlMode_T **supportedRecordingARCModes) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedRecordingVRCModes(PRUint32 *supportedRecordingVRCModesSize, RecordingRateControlMode_T **supportedRecordingVRCModes) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedCloneOptions(PRUint32 *supportedCloneOptionsSize, CloneOptions_T **supportedCloneOptions) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedAutostopTypes(PRUint32 *supportedAutostopTypesSize, AutostopType_T **supportedAutostopTypes) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedVMProcPriorities(PRUint32 *supportedVMProcPrioritiesSize, VMProcPriority_T **supportedVMProcPriorities) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedNetworkAttachmentTypes(PRUint32 *supportedNetworkAttachmentTypesSize, NetworkAttachmentType_T **supportedNetworkAttachmentTypes) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedPortModes(PRUint32 *supportedPortModesSize, PortMode_T **supportedPortModes) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedAudioDriverTypes(PRUint32 *supportedAudioDriverTypesSize, AudioDriverType_T **supportedAudioDriverTypes) NS_OVERRIDE; \
  NS_IMETHOD GetLanguageId(PRUnichar **aLanguageId) NS_OVERRIDE; \
  NS_IMETHOD SetLanguageId(const PRUnichar *aLanguageId) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1ISystemProperties(PRUint32 *aInternalAndReservedAttribute1ISystemProperties) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2ISystemProperties(PRUint32 *aInternalAndReservedAttribute2ISystemProperties) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3ISystemProperties(PRUint32 *aInternalAndReservedAttribute3ISystemProperties) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4ISystemProperties(PRUint32 *aInternalAndReservedAttribute4ISystemProperties) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5ISystemProperties(PRUint32 *aInternalAndReservedAttribute5ISystemProperties) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6ISystemProperties(PRUint32 *aInternalAndReservedAttribute6ISystemProperties) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7ISystemProperties(PRUint32 *aInternalAndReservedAttribute7ISystemProperties) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8ISystemProperties(PRUint32 *aInternalAndReservedAttribute8ISystemProperties) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute9ISystemProperties(PRUint32 *aInternalAndReservedAttribute9ISystemProperties) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute10ISystemProperties(PRUint32 *aInternalAndReservedAttribute10ISystemProperties) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute11ISystemProperties(PRUint32 *aInternalAndReservedAttribute11ISystemProperties) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute12ISystemProperties(PRUint32 *aInternalAndReservedAttribute12ISystemProperties) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute13ISystemProperties(PRUint32 *aInternalAndReservedAttribute13ISystemProperties) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute14ISystemProperties(PRUint32 *aInternalAndReservedAttribute14ISystemProperties) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute15ISystemProperties(PRUint32 *aInternalAndReservedAttribute15ISystemProperties) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute16ISystemProperties(PRUint32 *aInternalAndReservedAttribute16ISystemProperties) NS_OVERRIDE; \
  NS_IMETHOD GetDefaultIoCacheSettingForStorageController(StorageControllerType_T controllerType, PRBool *enabled) NS_OVERRIDE; \
  NS_IMETHOD GetCPUProfiles(CPUArchitecture_T architecture, const PRUnichar *namePattern, PRUint32 *profilesSize, ICPUProfile * **profiles) NS_OVERRIDE; \
  NS_IMETHOD GetExecutionEnginesForVmCpuArchitecture(CPUArchitecture_T cpuArchitecture, PRUint32 *executionEngineSize, VMExecutionEngine_T **executionEngine) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1ISystemProperties(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2ISystemProperties(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3ISystemProperties(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4ISystemProperties(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ISYSTEMPROPERTIES(_to) \
  NS_IMETHOD GetPlatform(IPlatformProperties * *aPlatform) { return _to GetPlatform(aPlatform); } \
  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 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 GetDefaultCryptoExtPack(PRUnichar **aDefaultCryptoExtPack) { return _to GetDefaultCryptoExtPack(aDefaultCryptoExtPack); } \
  NS_IMETHOD SetDefaultCryptoExtPack(const PRUnichar *aDefaultCryptoExtPack) { return _to SetDefaultCryptoExtPack(aDefaultCryptoExtPack); } \
  NS_IMETHOD GetLogHistoryCount(PRUint32 *aLogHistoryCount) { return _to GetLogHistoryCount(aLogHistoryCount); } \
  NS_IMETHOD SetLogHistoryCount(PRUint32 aLogHistoryCount) { return _to SetLogHistoryCount(aLogHistoryCount); } \
  NS_IMETHOD GetDefaultAudioDriver(AudioDriverType_T *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, BitmapFormat_T **screenShotFormats) { return _to GetScreenShotFormats(screenShotFormatsSize, screenShotFormats); } \
  NS_IMETHOD GetProxyMode(ProxyMode_T *aProxyMode) { return _to GetProxyMode(aProxyMode); } \
  NS_IMETHOD SetProxyMode(ProxyMode_T aProxyMode) { return _to SetProxyMode(aProxyMode); } \
  NS_IMETHOD GetProxyURL(PRUnichar **aProxyURL) { return _to GetProxyURL(aProxyURL); } \
  NS_IMETHOD SetProxyURL(const PRUnichar *aProxyURL) { return _to SetProxyURL(aProxyURL); } \
  NS_IMETHOD GetSupportedPlatformArchitectures(PRUint32 *supportedPlatformArchitecturesSize, PlatformArchitecture_T **supportedPlatformArchitectures) { return _to GetSupportedPlatformArchitectures(supportedPlatformArchitecturesSize, supportedPlatformArchitectures); } \
  NS_IMETHOD GetSupportedClipboardModes(PRUint32 *supportedClipboardModesSize, ClipboardMode_T **supportedClipboardModes) { return _to GetSupportedClipboardModes(supportedClipboardModesSize, supportedClipboardModes); } \
  NS_IMETHOD GetSupportedDnDModes(PRUint32 *supportedDnDModesSize, DnDMode_T **supportedDnDModes) { return _to GetSupportedDnDModes(supportedDnDModesSize, supportedDnDModes); } \
  NS_IMETHOD GetSupportedPointingHIDTypes(PRUint32 *supportedPointingHIDTypesSize, PointingHIDType_T **supportedPointingHIDTypes) { return _to GetSupportedPointingHIDTypes(supportedPointingHIDTypesSize, supportedPointingHIDTypes); } \
  NS_IMETHOD GetSupportedKeyboardHIDTypes(PRUint32 *supportedKeyboardHIDTypesSize, KeyboardHIDType_T **supportedKeyboardHIDTypes) { return _to GetSupportedKeyboardHIDTypes(supportedKeyboardHIDTypesSize, supportedKeyboardHIDTypes); } \
  NS_IMETHOD GetSupportedVFSTypes(PRUint32 *supportedVFSTypesSize, VFSType_T **supportedVFSTypes) { return _to GetSupportedVFSTypes(supportedVFSTypesSize, supportedVFSTypes); } \
  NS_IMETHOD GetSupportedImportOptions(PRUint32 *supportedImportOptionsSize, ImportOptions_T **supportedImportOptions) { return _to GetSupportedImportOptions(supportedImportOptionsSize, supportedImportOptions); } \
  NS_IMETHOD GetSupportedExportOptions(PRUint32 *supportedExportOptionsSize, ExportOptions_T **supportedExportOptions) { return _to GetSupportedExportOptions(supportedExportOptionsSize, supportedExportOptions); } \
  NS_IMETHOD GetSupportedGraphicsFeatures(PRUint32 *supportedGraphicsFeaturesSize, GraphicsFeature_T **supportedGraphicsFeatures) { return _to GetSupportedGraphicsFeatures(supportedGraphicsFeaturesSize, supportedGraphicsFeatures); } \
  NS_IMETHOD GetSupportedRecordingFeatures(PRUint32 *supportedRecordingFeaturesSize, RecordingFeature_T **supportedRecordingFeatures) { return _to GetSupportedRecordingFeatures(supportedRecordingFeaturesSize, supportedRecordingFeatures); } \
  NS_IMETHOD GetSupportedRecordingAudioCodecs(PRUint32 *supportedRecordingAudioCodecsSize, RecordingAudioCodec_T **supportedRecordingAudioCodecs) { return _to GetSupportedRecordingAudioCodecs(supportedRecordingAudioCodecsSize, supportedRecordingAudioCodecs); } \
  NS_IMETHOD GetSupportedRecordingVideoCodecs(PRUint32 *supportedRecordingVideoCodecsSize, RecordingVideoCodec_T **supportedRecordingVideoCodecs) { return _to GetSupportedRecordingVideoCodecs(supportedRecordingVideoCodecsSize, supportedRecordingVideoCodecs); } \
  NS_IMETHOD GetSupportedRecordingVSModes(PRUint32 *supportedRecordingVSModesSize, RecordingVideoScalingMode_T **supportedRecordingVSModes) { return _to GetSupportedRecordingVSModes(supportedRecordingVSModesSize, supportedRecordingVSModes); } \
  NS_IMETHOD GetSupportedRecordingARCModes(PRUint32 *supportedRecordingARCModesSize, RecordingRateControlMode_T **supportedRecordingARCModes) { return _to GetSupportedRecordingARCModes(supportedRecordingARCModesSize, supportedRecordingARCModes); } \
  NS_IMETHOD GetSupportedRecordingVRCModes(PRUint32 *supportedRecordingVRCModesSize, RecordingRateControlMode_T **supportedRecordingVRCModes) { return _to GetSupportedRecordingVRCModes(supportedRecordingVRCModesSize, supportedRecordingVRCModes); } \
  NS_IMETHOD GetSupportedCloneOptions(PRUint32 *supportedCloneOptionsSize, CloneOptions_T **supportedCloneOptions) { return _to GetSupportedCloneOptions(supportedCloneOptionsSize, supportedCloneOptions); } \
  NS_IMETHOD GetSupportedAutostopTypes(PRUint32 *supportedAutostopTypesSize, AutostopType_T **supportedAutostopTypes) { return _to GetSupportedAutostopTypes(supportedAutostopTypesSize, supportedAutostopTypes); } \
  NS_IMETHOD GetSupportedVMProcPriorities(PRUint32 *supportedVMProcPrioritiesSize, VMProcPriority_T **supportedVMProcPriorities) { return _to GetSupportedVMProcPriorities(supportedVMProcPrioritiesSize, supportedVMProcPriorities); } \
  NS_IMETHOD GetSupportedNetworkAttachmentTypes(PRUint32 *supportedNetworkAttachmentTypesSize, NetworkAttachmentType_T **supportedNetworkAttachmentTypes) { return _to GetSupportedNetworkAttachmentTypes(supportedNetworkAttachmentTypesSize, supportedNetworkAttachmentTypes); } \
  NS_IMETHOD GetSupportedPortModes(PRUint32 *supportedPortModesSize, PortMode_T **supportedPortModes) { return _to GetSupportedPortModes(supportedPortModesSize, supportedPortModes); } \
  NS_IMETHOD GetSupportedAudioDriverTypes(PRUint32 *supportedAudioDriverTypesSize, AudioDriverType_T **supportedAudioDriverTypes) { return _to GetSupportedAudioDriverTypes(supportedAudioDriverTypesSize, supportedAudioDriverTypes); } \
  NS_IMETHOD GetLanguageId(PRUnichar **aLanguageId) { return _to GetLanguageId(aLanguageId); } \
  NS_IMETHOD SetLanguageId(const PRUnichar *aLanguageId) { return _to SetLanguageId(aLanguageId); } \
  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 GetDefaultIoCacheSettingForStorageController(StorageControllerType_T controllerType, PRBool *enabled) { return _to GetDefaultIoCacheSettingForStorageController(controllerType, enabled); } \
  NS_IMETHOD GetCPUProfiles(CPUArchitecture_T architecture, const PRUnichar *namePattern, PRUint32 *profilesSize, ICPUProfile * **profiles) { return _to GetCPUProfiles(architecture, namePattern, profilesSize, profiles); } \
  NS_IMETHOD GetExecutionEnginesForVmCpuArchitecture(CPUArchitecture_T cpuArchitecture, PRUint32 *executionEngineSize, VMExecutionEngine_T **executionEngine) { return _to GetExecutionEnginesForVmCpuArchitecture(cpuArchitecture, executionEngineSize, executionEngine); } \
  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 GetPlatform(IPlatformProperties * *aPlatform) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPlatform(aPlatform); } \
  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 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 GetDefaultCryptoExtPack(PRUnichar **aDefaultCryptoExtPack) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDefaultCryptoExtPack(aDefaultCryptoExtPack); } \
  NS_IMETHOD SetDefaultCryptoExtPack(const PRUnichar *aDefaultCryptoExtPack) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDefaultCryptoExtPack(aDefaultCryptoExtPack); } \
  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(AudioDriverType_T *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, BitmapFormat_T **screenShotFormats) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetScreenShotFormats(screenShotFormatsSize, screenShotFormats); } \
  NS_IMETHOD GetProxyMode(ProxyMode_T *aProxyMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProxyMode(aProxyMode); } \
  NS_IMETHOD SetProxyMode(ProxyMode_T aProxyMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetProxyMode(aProxyMode); } \
  NS_IMETHOD GetProxyURL(PRUnichar **aProxyURL) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProxyURL(aProxyURL); } \
  NS_IMETHOD SetProxyURL(const PRUnichar *aProxyURL) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetProxyURL(aProxyURL); } \
  NS_IMETHOD GetSupportedPlatformArchitectures(PRUint32 *supportedPlatformArchitecturesSize, PlatformArchitecture_T **supportedPlatformArchitectures) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedPlatformArchitectures(supportedPlatformArchitecturesSize, supportedPlatformArchitectures); } \
  NS_IMETHOD GetSupportedClipboardModes(PRUint32 *supportedClipboardModesSize, ClipboardMode_T **supportedClipboardModes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedClipboardModes(supportedClipboardModesSize, supportedClipboardModes); } \
  NS_IMETHOD GetSupportedDnDModes(PRUint32 *supportedDnDModesSize, DnDMode_T **supportedDnDModes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedDnDModes(supportedDnDModesSize, supportedDnDModes); } \
  NS_IMETHOD GetSupportedPointingHIDTypes(PRUint32 *supportedPointingHIDTypesSize, PointingHIDType_T **supportedPointingHIDTypes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedPointingHIDTypes(supportedPointingHIDTypesSize, supportedPointingHIDTypes); } \
  NS_IMETHOD GetSupportedKeyboardHIDTypes(PRUint32 *supportedKeyboardHIDTypesSize, KeyboardHIDType_T **supportedKeyboardHIDTypes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedKeyboardHIDTypes(supportedKeyboardHIDTypesSize, supportedKeyboardHIDTypes); } \
  NS_IMETHOD GetSupportedVFSTypes(PRUint32 *supportedVFSTypesSize, VFSType_T **supportedVFSTypes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedVFSTypes(supportedVFSTypesSize, supportedVFSTypes); } \
  NS_IMETHOD GetSupportedImportOptions(PRUint32 *supportedImportOptionsSize, ImportOptions_T **supportedImportOptions) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedImportOptions(supportedImportOptionsSize, supportedImportOptions); } \
  NS_IMETHOD GetSupportedExportOptions(PRUint32 *supportedExportOptionsSize, ExportOptions_T **supportedExportOptions) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedExportOptions(supportedExportOptionsSize, supportedExportOptions); } \
  NS_IMETHOD GetSupportedGraphicsFeatures(PRUint32 *supportedGraphicsFeaturesSize, GraphicsFeature_T **supportedGraphicsFeatures) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedGraphicsFeatures(supportedGraphicsFeaturesSize, supportedGraphicsFeatures); } \
  NS_IMETHOD GetSupportedRecordingFeatures(PRUint32 *supportedRecordingFeaturesSize, RecordingFeature_T **supportedRecordingFeatures) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedRecordingFeatures(supportedRecordingFeaturesSize, supportedRecordingFeatures); } \
  NS_IMETHOD GetSupportedRecordingAudioCodecs(PRUint32 *supportedRecordingAudioCodecsSize, RecordingAudioCodec_T **supportedRecordingAudioCodecs) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedRecordingAudioCodecs(supportedRecordingAudioCodecsSize, supportedRecordingAudioCodecs); } \
  NS_IMETHOD GetSupportedRecordingVideoCodecs(PRUint32 *supportedRecordingVideoCodecsSize, RecordingVideoCodec_T **supportedRecordingVideoCodecs) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedRecordingVideoCodecs(supportedRecordingVideoCodecsSize, supportedRecordingVideoCodecs); } \
  NS_IMETHOD GetSupportedRecordingVSModes(PRUint32 *supportedRecordingVSModesSize, RecordingVideoScalingMode_T **supportedRecordingVSModes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedRecordingVSModes(supportedRecordingVSModesSize, supportedRecordingVSModes); } \
  NS_IMETHOD GetSupportedRecordingARCModes(PRUint32 *supportedRecordingARCModesSize, RecordingRateControlMode_T **supportedRecordingARCModes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedRecordingARCModes(supportedRecordingARCModesSize, supportedRecordingARCModes); } \
  NS_IMETHOD GetSupportedRecordingVRCModes(PRUint32 *supportedRecordingVRCModesSize, RecordingRateControlMode_T **supportedRecordingVRCModes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedRecordingVRCModes(supportedRecordingVRCModesSize, supportedRecordingVRCModes); } \
  NS_IMETHOD GetSupportedCloneOptions(PRUint32 *supportedCloneOptionsSize, CloneOptions_T **supportedCloneOptions) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedCloneOptions(supportedCloneOptionsSize, supportedCloneOptions); } \
  NS_IMETHOD GetSupportedAutostopTypes(PRUint32 *supportedAutostopTypesSize, AutostopType_T **supportedAutostopTypes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedAutostopTypes(supportedAutostopTypesSize, supportedAutostopTypes); } \
  NS_IMETHOD GetSupportedVMProcPriorities(PRUint32 *supportedVMProcPrioritiesSize, VMProcPriority_T **supportedVMProcPriorities) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedVMProcPriorities(supportedVMProcPrioritiesSize, supportedVMProcPriorities); } \
  NS_IMETHOD GetSupportedNetworkAttachmentTypes(PRUint32 *supportedNetworkAttachmentTypesSize, NetworkAttachmentType_T **supportedNetworkAttachmentTypes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedNetworkAttachmentTypes(supportedNetworkAttachmentTypesSize, supportedNetworkAttachmentTypes); } \
  NS_IMETHOD GetSupportedPortModes(PRUint32 *supportedPortModesSize, PortMode_T **supportedPortModes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedPortModes(supportedPortModesSize, supportedPortModes); } \
  NS_IMETHOD GetSupportedAudioDriverTypes(PRUint32 *supportedAudioDriverTypesSize, AudioDriverType_T **supportedAudioDriverTypes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedAudioDriverTypes(supportedAudioDriverTypesSize, supportedAudioDriverTypes); } \
  NS_IMETHOD GetLanguageId(PRUnichar **aLanguageId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLanguageId(aLanguageId); } \
  NS_IMETHOD SetLanguageId(const PRUnichar *aLanguageId) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLanguageId(aLanguageId); } \
  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 GetDefaultIoCacheSettingForStorageController(StorageControllerType_T controllerType, PRBool *enabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDefaultIoCacheSettingForStorageController(controllerType, enabled); } \
  NS_IMETHOD GetCPUProfiles(CPUArchitecture_T architecture, const PRUnichar *namePattern, PRUint32 *profilesSize, ICPUProfile * **profiles) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCPUProfiles(architecture, namePattern, profilesSize, profiles); } \
  NS_IMETHOD GetExecutionEnginesForVmCpuArchitecture(CPUArchitecture_T cpuArchitecture, PRUint32 *executionEngineSize, VMExecutionEngine_T **executionEngine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetExecutionEnginesForVmCpuArchitecture(cpuArchitecture, executionEngineSize, executionEngine); } \
  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(); } 

#define COM_FORWARD_ISystemProperties_GETTER_Platform_TO(smth) NS_IMETHOD GetPlatform (IPlatformProperties * * aPlatform) { return smth GetPlatform (aPlatform); }
#define COM_FORWARD_ISystemProperties_GETTER_Platform_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_Platform_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_Platform_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_Platform_TO (base::)
#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_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_DefaultCryptoExtPack_TO(smth) NS_IMETHOD GetDefaultCryptoExtPack (PRUnichar * * aDefaultCryptoExtPack) { return smth GetDefaultCryptoExtPack (aDefaultCryptoExtPack); }
#define COM_FORWARD_ISystemProperties_GETTER_DefaultCryptoExtPack_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_DefaultCryptoExtPack_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_DefaultCryptoExtPack_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_DefaultCryptoExtPack_TO (base::)
#define COM_FORWARD_ISystemProperties_SETTER_DefaultCryptoExtPack_TO(smth) NS_IMETHOD SetDefaultCryptoExtPack (const PRUnichar * aDefaultCryptoExtPack) { return smth SetDefaultCryptoExtPack (aDefaultCryptoExtPack); }
#define COM_FORWARD_ISystemProperties_SETTER_DefaultCryptoExtPack_TO_OBJ(obj) COM_FORWARD_ISystemProperties_SETTER_DefaultCryptoExtPack_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_SETTER_DefaultCryptoExtPack_TO_BASE(base) COM_FORWARD_ISystemProperties_SETTER_DefaultCryptoExtPack_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_LogHistoryCount_TO(smth) NS_IMETHOD GetLogHistoryCount (PRUint32 * aLogHistoryCount) { return smth GetLogHistoryCount (aLogHistoryCount); }
#define COM_FORWARD_ISystemProperties_GETTER_LogHistoryCount_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_LogHistoryCount_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_LogHistoryCount_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_LogHistoryCount_TO (base::)
#define COM_FORWARD_ISystemProperties_SETTER_LogHistoryCount_TO(smth) NS_IMETHOD SetLogHistoryCount (PRUint32 aLogHistoryCount) { return smth SetLogHistoryCount (aLogHistoryCount); }
#define COM_FORWARD_ISystemProperties_SETTER_LogHistoryCount_TO_OBJ(obj) COM_FORWARD_ISystemProperties_SETTER_LogHistoryCount_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_SETTER_LogHistoryCount_TO_BASE(base) COM_FORWARD_ISystemProperties_SETTER_LogHistoryCount_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_DefaultAudioDriver_TO(smth) NS_IMETHOD GetDefaultAudioDriver (PRUint32 * aDefaultAudioDriver) { return smth GetDefaultAudioDriver (aDefaultAudioDriver); }
#define COM_FORWARD_ISystemProperties_GETTER_DefaultAudioDriver_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_DefaultAudioDriver_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_DefaultAudioDriver_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_DefaultAudioDriver_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_AutostartDatabasePath_TO(smth) NS_IMETHOD GetAutostartDatabasePath (PRUnichar * * aAutostartDatabasePath) { return smth GetAutostartDatabasePath (aAutostartDatabasePath); }
#define COM_FORWARD_ISystemProperties_GETTER_AutostartDatabasePath_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_AutostartDatabasePath_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_AutostartDatabasePath_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_AutostartDatabasePath_TO (base::)
#define COM_FORWARD_ISystemProperties_SETTER_AutostartDatabasePath_TO(smth) NS_IMETHOD SetAutostartDatabasePath (const PRUnichar * aAutostartDatabasePath) { return smth SetAutostartDatabasePath (aAutostartDatabasePath); }
#define COM_FORWARD_ISystemProperties_SETTER_AutostartDatabasePath_TO_OBJ(obj) COM_FORWARD_ISystemProperties_SETTER_AutostartDatabasePath_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_SETTER_AutostartDatabasePath_TO_BASE(base) COM_FORWARD_ISystemProperties_SETTER_AutostartDatabasePath_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_DefaultAdditionsISO_TO(smth) NS_IMETHOD GetDefaultAdditionsISO (PRUnichar * * aDefaultAdditionsISO) { return smth GetDefaultAdditionsISO (aDefaultAdditionsISO); }
#define COM_FORWARD_ISystemProperties_GETTER_DefaultAdditionsISO_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_DefaultAdditionsISO_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_DefaultAdditionsISO_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_DefaultAdditionsISO_TO (base::)
#define COM_FORWARD_ISystemProperties_SETTER_DefaultAdditionsISO_TO(smth) NS_IMETHOD SetDefaultAdditionsISO (const PRUnichar * aDefaultAdditionsISO) { return smth SetDefaultAdditionsISO (aDefaultAdditionsISO); }
#define COM_FORWARD_ISystemProperties_SETTER_DefaultAdditionsISO_TO_OBJ(obj) COM_FORWARD_ISystemProperties_SETTER_DefaultAdditionsISO_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_SETTER_DefaultAdditionsISO_TO_BASE(base) COM_FORWARD_ISystemProperties_SETTER_DefaultAdditionsISO_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_DefaultFrontend_TO(smth) NS_IMETHOD GetDefaultFrontend (PRUnichar * * aDefaultFrontend) { return smth GetDefaultFrontend (aDefaultFrontend); }
#define COM_FORWARD_ISystemProperties_GETTER_DefaultFrontend_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_DefaultFrontend_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_DefaultFrontend_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_DefaultFrontend_TO (base::)
#define COM_FORWARD_ISystemProperties_SETTER_DefaultFrontend_TO(smth) NS_IMETHOD SetDefaultFrontend (const PRUnichar * aDefaultFrontend) { return smth SetDefaultFrontend (aDefaultFrontend); }
#define COM_FORWARD_ISystemProperties_SETTER_DefaultFrontend_TO_OBJ(obj) COM_FORWARD_ISystemProperties_SETTER_DefaultFrontend_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_SETTER_DefaultFrontend_TO_BASE(base) COM_FORWARD_ISystemProperties_SETTER_DefaultFrontend_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_ScreenShotFormats_TO(smth) NS_IMETHOD GetScreenShotFormats (PRUint32 * aScreenShotFormatsSize, PRUint32 * * aScreenShotFormats) { return smth GetScreenShotFormats (aScreenShotFormatsSize, aScreenShotFormats); }
#define COM_FORWARD_ISystemProperties_GETTER_ScreenShotFormats_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_ScreenShotFormats_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_ScreenShotFormats_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_ScreenShotFormats_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_ProxyMode_TO(smth) NS_IMETHOD GetProxyMode (PRUint32 * aProxyMode) { return smth GetProxyMode (aProxyMode); }
#define COM_FORWARD_ISystemProperties_GETTER_ProxyMode_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_ProxyMode_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_ProxyMode_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_ProxyMode_TO (base::)
#define COM_FORWARD_ISystemProperties_SETTER_ProxyMode_TO(smth) NS_IMETHOD SetProxyMode (PRUint32 aProxyMode) { return smth SetProxyMode (aProxyMode); }
#define COM_FORWARD_ISystemProperties_SETTER_ProxyMode_TO_OBJ(obj) COM_FORWARD_ISystemProperties_SETTER_ProxyMode_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_SETTER_ProxyMode_TO_BASE(base) COM_FORWARD_ISystemProperties_SETTER_ProxyMode_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_ProxyURL_TO(smth) NS_IMETHOD GetProxyURL (PRUnichar * * aProxyURL) { return smth GetProxyURL (aProxyURL); }
#define COM_FORWARD_ISystemProperties_GETTER_ProxyURL_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_ProxyURL_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_ProxyURL_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_ProxyURL_TO (base::)
#define COM_FORWARD_ISystemProperties_SETTER_ProxyURL_TO(smth) NS_IMETHOD SetProxyURL (const PRUnichar * aProxyURL) { return smth SetProxyURL (aProxyURL); }
#define COM_FORWARD_ISystemProperties_SETTER_ProxyURL_TO_OBJ(obj) COM_FORWARD_ISystemProperties_SETTER_ProxyURL_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_SETTER_ProxyURL_TO_BASE(base) COM_FORWARD_ISystemProperties_SETTER_ProxyURL_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedPlatformArchitectures_TO(smth) NS_IMETHOD GetSupportedPlatformArchitectures (PRUint32 * aSupportedPlatformArchitecturesSize, PRUint32 * * aSupportedPlatformArchitectures) { return smth GetSupportedPlatformArchitectures (aSupportedPlatformArchitecturesSize, aSupportedPlatformArchitectures); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedPlatformArchitectures_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedPlatformArchitectures_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedPlatformArchitectures_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedPlatformArchitectures_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedClipboardModes_TO(smth) NS_IMETHOD GetSupportedClipboardModes (PRUint32 * aSupportedClipboardModesSize, PRUint32 * * aSupportedClipboardModes) { return smth GetSupportedClipboardModes (aSupportedClipboardModesSize, aSupportedClipboardModes); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedClipboardModes_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedClipboardModes_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedClipboardModes_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedClipboardModes_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedDnDModes_TO(smth) NS_IMETHOD GetSupportedDnDModes (PRUint32 * aSupportedDnDModesSize, PRUint32 * * aSupportedDnDModes) { return smth GetSupportedDnDModes (aSupportedDnDModesSize, aSupportedDnDModes); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedDnDModes_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedDnDModes_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedDnDModes_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedDnDModes_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedPointingHIDTypes_TO(smth) NS_IMETHOD GetSupportedPointingHIDTypes (PRUint32 * aSupportedPointingHIDTypesSize, PRUint32 * * aSupportedPointingHIDTypes) { return smth GetSupportedPointingHIDTypes (aSupportedPointingHIDTypesSize, aSupportedPointingHIDTypes); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedPointingHIDTypes_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedPointingHIDTypes_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedPointingHIDTypes_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedPointingHIDTypes_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedKeyboardHIDTypes_TO(smth) NS_IMETHOD GetSupportedKeyboardHIDTypes (PRUint32 * aSupportedKeyboardHIDTypesSize, PRUint32 * * aSupportedKeyboardHIDTypes) { return smth GetSupportedKeyboardHIDTypes (aSupportedKeyboardHIDTypesSize, aSupportedKeyboardHIDTypes); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedKeyboardHIDTypes_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedKeyboardHIDTypes_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedKeyboardHIDTypes_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedKeyboardHIDTypes_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedVFSTypes_TO(smth) NS_IMETHOD GetSupportedVFSTypes (PRUint32 * aSupportedVFSTypesSize, PRUint32 * * aSupportedVFSTypes) { return smth GetSupportedVFSTypes (aSupportedVFSTypesSize, aSupportedVFSTypes); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedVFSTypes_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedVFSTypes_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedVFSTypes_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedVFSTypes_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedImportOptions_TO(smth) NS_IMETHOD GetSupportedImportOptions (PRUint32 * aSupportedImportOptionsSize, PRUint32 * * aSupportedImportOptions) { return smth GetSupportedImportOptions (aSupportedImportOptionsSize, aSupportedImportOptions); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedImportOptions_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedImportOptions_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedImportOptions_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedImportOptions_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedExportOptions_TO(smth) NS_IMETHOD GetSupportedExportOptions (PRUint32 * aSupportedExportOptionsSize, PRUint32 * * aSupportedExportOptions) { return smth GetSupportedExportOptions (aSupportedExportOptionsSize, aSupportedExportOptions); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedExportOptions_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedExportOptions_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedExportOptions_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedExportOptions_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedGraphicsFeatures_TO(smth) NS_IMETHOD GetSupportedGraphicsFeatures (PRUint32 * aSupportedGraphicsFeaturesSize, PRUint32 * * aSupportedGraphicsFeatures) { return smth GetSupportedGraphicsFeatures (aSupportedGraphicsFeaturesSize, aSupportedGraphicsFeatures); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedGraphicsFeatures_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedGraphicsFeatures_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedGraphicsFeatures_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedGraphicsFeatures_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingFeatures_TO(smth) NS_IMETHOD GetSupportedRecordingFeatures (PRUint32 * aSupportedRecordingFeaturesSize, PRUint32 * * aSupportedRecordingFeatures) { return smth GetSupportedRecordingFeatures (aSupportedRecordingFeaturesSize, aSupportedRecordingFeatures); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingFeatures_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingFeatures_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingFeatures_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingFeatures_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingAudioCodecs_TO(smth) NS_IMETHOD GetSupportedRecordingAudioCodecs (PRUint32 * aSupportedRecordingAudioCodecsSize, PRUint32 * * aSupportedRecordingAudioCodecs) { return smth GetSupportedRecordingAudioCodecs (aSupportedRecordingAudioCodecsSize, aSupportedRecordingAudioCodecs); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingAudioCodecs_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingAudioCodecs_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingAudioCodecs_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingAudioCodecs_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingVideoCodecs_TO(smth) NS_IMETHOD GetSupportedRecordingVideoCodecs (PRUint32 * aSupportedRecordingVideoCodecsSize, PRUint32 * * aSupportedRecordingVideoCodecs) { return smth GetSupportedRecordingVideoCodecs (aSupportedRecordingVideoCodecsSize, aSupportedRecordingVideoCodecs); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingVideoCodecs_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingVideoCodecs_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingVideoCodecs_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingVideoCodecs_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingVSModes_TO(smth) NS_IMETHOD GetSupportedRecordingVSModes (PRUint32 * aSupportedRecordingVSModesSize, PRUint32 * * aSupportedRecordingVSModes) { return smth GetSupportedRecordingVSModes (aSupportedRecordingVSModesSize, aSupportedRecordingVSModes); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingVSModes_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingVSModes_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingVSModes_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingVSModes_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingARCModes_TO(smth) NS_IMETHOD GetSupportedRecordingARCModes (PRUint32 * aSupportedRecordingARCModesSize, PRUint32 * * aSupportedRecordingARCModes) { return smth GetSupportedRecordingARCModes (aSupportedRecordingARCModesSize, aSupportedRecordingARCModes); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingARCModes_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingARCModes_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingARCModes_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingARCModes_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingVRCModes_TO(smth) NS_IMETHOD GetSupportedRecordingVRCModes (PRUint32 * aSupportedRecordingVRCModesSize, PRUint32 * * aSupportedRecordingVRCModes) { return smth GetSupportedRecordingVRCModes (aSupportedRecordingVRCModesSize, aSupportedRecordingVRCModes); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingVRCModes_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingVRCModes_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingVRCModes_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedRecordingVRCModes_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedCloneOptions_TO(smth) NS_IMETHOD GetSupportedCloneOptions (PRUint32 * aSupportedCloneOptionsSize, PRUint32 * * aSupportedCloneOptions) { return smth GetSupportedCloneOptions (aSupportedCloneOptionsSize, aSupportedCloneOptions); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedCloneOptions_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedCloneOptions_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedCloneOptions_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedCloneOptions_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedAutostopTypes_TO(smth) NS_IMETHOD GetSupportedAutostopTypes (PRUint32 * aSupportedAutostopTypesSize, PRUint32 * * aSupportedAutostopTypes) { return smth GetSupportedAutostopTypes (aSupportedAutostopTypesSize, aSupportedAutostopTypes); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedAutostopTypes_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedAutostopTypes_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedAutostopTypes_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedAutostopTypes_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedVMProcPriorities_TO(smth) NS_IMETHOD GetSupportedVMProcPriorities (PRUint32 * aSupportedVMProcPrioritiesSize, PRUint32 * * aSupportedVMProcPriorities) { return smth GetSupportedVMProcPriorities (aSupportedVMProcPrioritiesSize, aSupportedVMProcPriorities); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedVMProcPriorities_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedVMProcPriorities_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedVMProcPriorities_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedVMProcPriorities_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedNetworkAttachmentTypes_TO(smth) NS_IMETHOD GetSupportedNetworkAttachmentTypes (PRUint32 * aSupportedNetworkAttachmentTypesSize, PRUint32 * * aSupportedNetworkAttachmentTypes) { return smth GetSupportedNetworkAttachmentTypes (aSupportedNetworkAttachmentTypesSize, aSupportedNetworkAttachmentTypes); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedNetworkAttachmentTypes_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedNetworkAttachmentTypes_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedNetworkAttachmentTypes_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedNetworkAttachmentTypes_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedPortModes_TO(smth) NS_IMETHOD GetSupportedPortModes (PRUint32 * aSupportedPortModesSize, PRUint32 * * aSupportedPortModes) { return smth GetSupportedPortModes (aSupportedPortModesSize, aSupportedPortModes); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedPortModes_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedPortModes_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedPortModes_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedPortModes_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedAudioDriverTypes_TO(smth) NS_IMETHOD GetSupportedAudioDriverTypes (PRUint32 * aSupportedAudioDriverTypesSize, PRUint32 * * aSupportedAudioDriverTypes) { return smth GetSupportedAudioDriverTypes (aSupportedAudioDriverTypesSize, aSupportedAudioDriverTypes); }
#define COM_FORWARD_ISystemProperties_GETTER_SupportedAudioDriverTypes_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SupportedAudioDriverTypes_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_SupportedAudioDriverTypes_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SupportedAudioDriverTypes_TO (base::)
#define COM_FORWARD_ISystemProperties_GETTER_LanguageId_TO(smth) NS_IMETHOD GetLanguageId (PRUnichar * * aLanguageId) { return smth GetLanguageId (aLanguageId); }
#define COM_FORWARD_ISystemProperties_GETTER_LanguageId_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_LanguageId_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GETTER_LanguageId_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_LanguageId_TO (base::)
#define COM_FORWARD_ISystemProperties_SETTER_LanguageId_TO(smth) NS_IMETHOD SetLanguageId (const PRUnichar * aLanguageId) { return smth SetLanguageId (aLanguageId); }
#define COM_FORWARD_ISystemProperties_SETTER_LanguageId_TO_OBJ(obj) COM_FORWARD_ISystemProperties_SETTER_LanguageId_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_SETTER_LanguageId_TO_BASE(base) COM_FORWARD_ISystemProperties_SETTER_LanguageId_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_GetCPUProfiles_TO(smth) NS_IMETHOD GetCPUProfiles (PRUint32 aArchitecture, PRUnichar * aNamePattern, PRUint32 * aProfilesSize, ICPUProfile * * * aProfiles) { return smth GetCPUProfiles (aArchitecture, aNamePattern, aProfilesSize, aProfiles); }
#define COM_FORWARD_ISystemProperties_GetCPUProfiles_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GetCPUProfiles_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GetCPUProfiles_TO_BASE(base) COM_FORWARD_ISystemProperties_GetCPUProfiles_TO (base::)
#define COM_FORWARD_ISystemProperties_GetExecutionEnginesForVmCpuArchitecture_TO(smth) NS_IMETHOD GetExecutionEnginesForVmCpuArchitecture (PRUint32 aCpuArchitecture, PRUint32 * aExecutionEngineSize, PRUint32 * * aExecutionEngine) { return smth GetExecutionEnginesForVmCpuArchitecture (aCpuArchitecture, aExecutionEngineSize, aExecutionEngine); }
#define COM_FORWARD_ISystemProperties_GetExecutionEnginesForVmCpuArchitecture_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GetExecutionEnginesForVmCpuArchitecture_TO ((obj)->)
#define COM_FORWARD_ISystemProperties_GetExecutionEnginesForVmCpuArchitecture_TO_BASE(base) COM_FORWARD_ISystemProperties_GetExecutionEnginesForVmCpuArchitecture_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 "c6e30023-751e-487d-9bd1-595c22b104ba"

#define IGUESTOSTYPE_IID \
  {0xc6e30023, 0x751e, 0x487d, \
    { 0x9b, 0xd1, 0x59, 0x5c, 0x22, 0xb1, 0x04, 0xba }}

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 subtype; */
  NS_IMETHOD GetSubtype(PRUnichar **aSubtype) = 0;

  /* readonly attribute wstring description; */
  NS_IMETHOD GetDescription(PRUnichar **aDescription) = 0;

  /* readonly attribute boolean is64Bit; */
  NS_IMETHOD GetIs64Bit(PRBool *aIs64Bit) = 0;

  /* readonly attribute PlatformArchitecture_T platformArchitecture; */
  NS_IMETHOD GetPlatformArchitecture(PlatformArchitecture_T *aPlatformArchitecture) = 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 GraphicsControllerType_T recommendedGraphicsController; */
  NS_IMETHOD GetRecommendedGraphicsController(GraphicsControllerType_T *aRecommendedGraphicsController) = 0;

  /* readonly attribute unsigned long recommendedVRAM; */
  NS_IMETHOD GetRecommendedVRAM(PRUint32 *aRecommendedVRAM) = 0;

  /* readonly attribute boolean recommended3DAcceleration; */
  NS_IMETHOD GetRecommended3DAcceleration(PRBool *aRecommended3DAcceleration) = 0;

  /* readonly attribute long long recommendedHDD; */
  NS_IMETHOD GetRecommendedHDD(PRInt64 *aRecommendedHDD) = 0;

  /* readonly attribute NetworkAdapterType_T adapterType; */
  NS_IMETHOD GetAdapterType(NetworkAdapterType_T *aAdapterType) = 0;

  /* readonly attribute boolean recommendedPAE; */
  NS_IMETHOD GetRecommendedPAE(PRBool *aRecommendedPAE) = 0;

  /* readonly attribute StorageControllerType_T recommendedDVDStorageController; */
  NS_IMETHOD GetRecommendedDVDStorageController(StorageControllerType_T *aRecommendedDVDStorageController) = 0;

  /* readonly attribute StorageBus_T recommendedDVDStorageBus; */
  NS_IMETHOD GetRecommendedDVDStorageBus(StorageBus_T *aRecommendedDVDStorageBus) = 0;

  /* readonly attribute StorageControllerType_T recommendedHDStorageController; */
  NS_IMETHOD GetRecommendedHDStorageController(StorageControllerType_T *aRecommendedHDStorageController) = 0;

  /* readonly attribute StorageBus_T recommendedHDStorageBus; */
  NS_IMETHOD GetRecommendedHDStorageBus(StorageBus_T *aRecommendedHDStorageBus) = 0;

  /* readonly attribute FirmwareType_T recommendedFirmware; */
  NS_IMETHOD GetRecommendedFirmware(FirmwareType_T *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 ChipsetType_T recommendedChipset; */
  NS_IMETHOD GetRecommendedChipset(ChipsetType_T *aRecommendedChipset) = 0;

  /* readonly attribute IommuType_T recommendedIommuType; */
  NS_IMETHOD GetRecommendedIommuType(IommuType_T *aRecommendedIommuType) = 0;

  /* readonly attribute AudioControllerType_T recommendedAudioController; */
  NS_IMETHOD GetRecommendedAudioController(AudioControllerType_T *aRecommendedAudioController) = 0;

  /* readonly attribute AudioCodecType_T recommendedAudioCodec; */
  NS_IMETHOD GetRecommendedAudioCodec(AudioCodecType_T *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 boolean recommendedX2APIC; */
  NS_IMETHOD GetRecommendedX2APIC(PRBool *aRecommendedX2APIC) = 0;

  /* readonly attribute unsigned long recommendedCPUCount; */
  NS_IMETHOD GetRecommendedCPUCount(PRUint32 *aRecommendedCPUCount) = 0;

  /* readonly attribute TpmType_T recommendedTpmType; */
  NS_IMETHOD GetRecommendedTpmType(TpmType_T *aRecommendedTpmType) = 0;

  /* readonly attribute boolean recommendedSecureBoot; */
  NS_IMETHOD GetRecommendedSecureBoot(PRBool *aRecommendedSecureBoot) = 0;

  /* readonly attribute boolean recommendedWDDMGraphics; */
  NS_IMETHOD GetRecommendedWDDMGraphics(PRBool *aRecommendedWDDMGraphics) = 0;

  /* readonly attribute wstring guestAdditionsInstallPackageName; */
  NS_IMETHOD GetGuestAdditionsInstallPackageName(PRUnichar **aGuestAdditionsInstallPackageName) = 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;

  /* readonly attribute unsigned long InternalAndReservedAttribute16IGuestOSType; */
  NS_IMETHOD GetInternalAndReservedAttribute16IGuestOSType(PRUint32 *aInternalAndReservedAttribute16IGuestOSType) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTOSTYPE \
  NS_IMETHOD GetFamilyId(PRUnichar **aFamilyId) NS_OVERRIDE; \
  NS_IMETHOD GetFamilyDescription(PRUnichar **aFamilyDescription) NS_OVERRIDE; \
  NS_IMETHOD GetId(PRUnichar **aId) NS_OVERRIDE; \
  NS_IMETHOD GetSubtype(PRUnichar **aSubtype) NS_OVERRIDE; \
  NS_IMETHOD GetDescription(PRUnichar **aDescription) NS_OVERRIDE; \
  NS_IMETHOD GetIs64Bit(PRBool *aIs64Bit) NS_OVERRIDE; \
  NS_IMETHOD GetPlatformArchitecture(PlatformArchitecture_T *aPlatformArchitecture) NS_OVERRIDE; \
  NS_IMETHOD GetRecommendedIOAPIC(PRBool *aRecommendedIOAPIC) NS_OVERRIDE; \
  NS_IMETHOD GetRecommendedVirtEx(PRBool *aRecommendedVirtEx) NS_OVERRIDE; \
  NS_IMETHOD GetRecommendedRAM(PRUint32 *aRecommendedRAM) NS_OVERRIDE; \
  NS_IMETHOD GetRecommendedGraphicsController(GraphicsControllerType_T *aRecommendedGraphicsController) NS_OVERRIDE; \
  NS_IMETHOD GetRecommendedVRAM(PRUint32 *aRecommendedVRAM) NS_OVERRIDE; \
  NS_IMETHOD GetRecommended3DAcceleration(PRBool *aRecommended3DAcceleration) NS_OVERRIDE; \
  NS_IMETHOD GetRecommendedHDD(PRInt64 *aRecommendedHDD) NS_OVERRIDE; \
  NS_IMETHOD GetAdapterType(NetworkAdapterType_T *aAdapterType) NS_OVERRIDE; \
  NS_IMETHOD GetRecommendedPAE(PRBool *aRecommendedPAE) NS_OVERRIDE; \
  NS_IMETHOD GetRecommendedDVDStorageController(StorageControllerType_T *aRecommendedDVDStorageController) NS_OVERRIDE; \
  NS_IMETHOD GetRecommendedDVDStorageBus(StorageBus_T *aRecommendedDVDStorageBus) NS_OVERRIDE; \
  NS_IMETHOD GetRecommendedHDStorageController(StorageControllerType_T *aRecommendedHDStorageController) NS_OVERRIDE; \
  NS_IMETHOD GetRecommendedHDStorageBus(StorageBus_T *aRecommendedHDStorageBus) NS_OVERRIDE; \
  NS_IMETHOD GetRecommendedFirmware(FirmwareType_T *aRecommendedFirmware) NS_OVERRIDE; \
  NS_IMETHOD GetRecommendedUSBHID(PRBool *aRecommendedUSBHID) NS_OVERRIDE; \
  NS_IMETHOD GetRecommendedHPET(PRBool *aRecommendedHPET) NS_OVERRIDE; \
  NS_IMETHOD GetRecommendedUSBTablet(PRBool *aRecommendedUSBTablet) NS_OVERRIDE; \
  NS_IMETHOD GetRecommendedRTCUseUTC(PRBool *aRecommendedRTCUseUTC) NS_OVERRIDE; \
  NS_IMETHOD GetRecommendedChipset(ChipsetType_T *aRecommendedChipset) NS_OVERRIDE; \
  NS_IMETHOD GetRecommendedIommuType(IommuType_T *aRecommendedIommuType) NS_OVERRIDE; \
  NS_IMETHOD GetRecommendedAudioController(AudioControllerType_T *aRecommendedAudioController) NS_OVERRIDE; \
  NS_IMETHOD GetRecommendedAudioCodec(AudioCodecType_T *aRecommendedAudioCodec) NS_OVERRIDE; \
  NS_IMETHOD GetRecommendedFloppy(PRBool *aRecommendedFloppy) NS_OVERRIDE; \
  NS_IMETHOD GetRecommendedUSB(PRBool *aRecommendedUSB) NS_OVERRIDE; \
  NS_IMETHOD GetRecommendedUSB3(PRBool *aRecommendedUSB3) NS_OVERRIDE; \
  NS_IMETHOD GetRecommendedTFReset(PRBool *aRecommendedTFReset) NS_OVERRIDE; \
  NS_IMETHOD GetRecommendedX2APIC(PRBool *aRecommendedX2APIC) NS_OVERRIDE; \
  NS_IMETHOD GetRecommendedCPUCount(PRUint32 *aRecommendedCPUCount) NS_OVERRIDE; \
  NS_IMETHOD GetRecommendedTpmType(TpmType_T *aRecommendedTpmType) NS_OVERRIDE; \
  NS_IMETHOD GetRecommendedSecureBoot(PRBool *aRecommendedSecureBoot) NS_OVERRIDE; \
  NS_IMETHOD GetRecommendedWDDMGraphics(PRBool *aRecommendedWDDMGraphics) NS_OVERRIDE; \
  NS_IMETHOD GetGuestAdditionsInstallPackageName(PRUnichar **aGuestAdditionsInstallPackageName) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IGuestOSType(PRUint32 *aInternalAndReservedAttribute1IGuestOSType) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IGuestOSType(PRUint32 *aInternalAndReservedAttribute2IGuestOSType) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IGuestOSType(PRUint32 *aInternalAndReservedAttribute3IGuestOSType) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IGuestOSType(PRUint32 *aInternalAndReservedAttribute4IGuestOSType) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IGuestOSType(PRUint32 *aInternalAndReservedAttribute5IGuestOSType) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IGuestOSType(PRUint32 *aInternalAndReservedAttribute6IGuestOSType) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IGuestOSType(PRUint32 *aInternalAndReservedAttribute7IGuestOSType) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IGuestOSType(PRUint32 *aInternalAndReservedAttribute8IGuestOSType) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute9IGuestOSType(PRUint32 *aInternalAndReservedAttribute9IGuestOSType) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute10IGuestOSType(PRUint32 *aInternalAndReservedAttribute10IGuestOSType) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute11IGuestOSType(PRUint32 *aInternalAndReservedAttribute11IGuestOSType) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute12IGuestOSType(PRUint32 *aInternalAndReservedAttribute12IGuestOSType) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute13IGuestOSType(PRUint32 *aInternalAndReservedAttribute13IGuestOSType) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute14IGuestOSType(PRUint32 *aInternalAndReservedAttribute14IGuestOSType) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute15IGuestOSType(PRUint32 *aInternalAndReservedAttribute15IGuestOSType) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute16IGuestOSType(PRUint32 *aInternalAndReservedAttribute16IGuestOSType) NS_OVERRIDE; 

/* 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 GetSubtype(PRUnichar **aSubtype) { return _to GetSubtype(aSubtype); } \
  NS_IMETHOD GetDescription(PRUnichar **aDescription) { return _to GetDescription(aDescription); } \
  NS_IMETHOD GetIs64Bit(PRBool *aIs64Bit) { return _to GetIs64Bit(aIs64Bit); } \
  NS_IMETHOD GetPlatformArchitecture(PlatformArchitecture_T *aPlatformArchitecture) { return _to GetPlatformArchitecture(aPlatformArchitecture); } \
  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 GetRecommendedGraphicsController(GraphicsControllerType_T *aRecommendedGraphicsController) { return _to GetRecommendedGraphicsController(aRecommendedGraphicsController); } \
  NS_IMETHOD GetRecommendedVRAM(PRUint32 *aRecommendedVRAM) { return _to GetRecommendedVRAM(aRecommendedVRAM); } \
  NS_IMETHOD GetRecommended3DAcceleration(PRBool *aRecommended3DAcceleration) { return _to GetRecommended3DAcceleration(aRecommended3DAcceleration); } \
  NS_IMETHOD GetRecommendedHDD(PRInt64 *aRecommendedHDD) { return _to GetRecommendedHDD(aRecommendedHDD); } \
  NS_IMETHOD GetAdapterType(NetworkAdapterType_T *aAdapterType) { return _to GetAdapterType(aAdapterType); } \
  NS_IMETHOD GetRecommendedPAE(PRBool *aRecommendedPAE) { return _to GetRecommendedPAE(aRecommendedPAE); } \
  NS_IMETHOD GetRecommendedDVDStorageController(StorageControllerType_T *aRecommendedDVDStorageController) { return _to GetRecommendedDVDStorageController(aRecommendedDVDStorageController); } \
  NS_IMETHOD GetRecommendedDVDStorageBus(StorageBus_T *aRecommendedDVDStorageBus) { return _to GetRecommendedDVDStorageBus(aRecommendedDVDStorageBus); } \
  NS_IMETHOD GetRecommendedHDStorageController(StorageControllerType_T *aRecommendedHDStorageController) { return _to GetRecommendedHDStorageController(aRecommendedHDStorageController); } \
  NS_IMETHOD GetRecommendedHDStorageBus(StorageBus_T *aRecommendedHDStorageBus) { return _to GetRecommendedHDStorageBus(aRecommendedHDStorageBus); } \
  NS_IMETHOD GetRecommendedFirmware(FirmwareType_T *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(ChipsetType_T *aRecommendedChipset) { return _to GetRecommendedChipset(aRecommendedChipset); } \
  NS_IMETHOD GetRecommendedIommuType(IommuType_T *aRecommendedIommuType) { return _to GetRecommendedIommuType(aRecommendedIommuType); } \
  NS_IMETHOD GetRecommendedAudioController(AudioControllerType_T *aRecommendedAudioController) { return _to GetRecommendedAudioController(aRecommendedAudioController); } \
  NS_IMETHOD GetRecommendedAudioCodec(AudioCodecType_T *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 GetRecommendedX2APIC(PRBool *aRecommendedX2APIC) { return _to GetRecommendedX2APIC(aRecommendedX2APIC); } \
  NS_IMETHOD GetRecommendedCPUCount(PRUint32 *aRecommendedCPUCount) { return _to GetRecommendedCPUCount(aRecommendedCPUCount); } \
  NS_IMETHOD GetRecommendedTpmType(TpmType_T *aRecommendedTpmType) { return _to GetRecommendedTpmType(aRecommendedTpmType); } \
  NS_IMETHOD GetRecommendedSecureBoot(PRBool *aRecommendedSecureBoot) { return _to GetRecommendedSecureBoot(aRecommendedSecureBoot); } \
  NS_IMETHOD GetRecommendedWDDMGraphics(PRBool *aRecommendedWDDMGraphics) { return _to GetRecommendedWDDMGraphics(aRecommendedWDDMGraphics); } \
  NS_IMETHOD GetGuestAdditionsInstallPackageName(PRUnichar **aGuestAdditionsInstallPackageName) { return _to GetGuestAdditionsInstallPackageName(aGuestAdditionsInstallPackageName); } \
  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); } \
  NS_IMETHOD GetInternalAndReservedAttribute16IGuestOSType(PRUint32 *aInternalAndReservedAttribute16IGuestOSType) { return _to GetInternalAndReservedAttribute16IGuestOSType(aInternalAndReservedAttribute16IGuestOSType); } 

/* 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 GetSubtype(PRUnichar **aSubtype) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSubtype(aSubtype); } \
  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 GetPlatformArchitecture(PlatformArchitecture_T *aPlatformArchitecture) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPlatformArchitecture(aPlatformArchitecture); } \
  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 GetRecommendedGraphicsController(GraphicsControllerType_T *aRecommendedGraphicsController) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecommendedGraphicsController(aRecommendedGraphicsController); } \
  NS_IMETHOD GetRecommendedVRAM(PRUint32 *aRecommendedVRAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecommendedVRAM(aRecommendedVRAM); } \
  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(NetworkAdapterType_T *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(StorageControllerType_T *aRecommendedDVDStorageController) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecommendedDVDStorageController(aRecommendedDVDStorageController); } \
  NS_IMETHOD GetRecommendedDVDStorageBus(StorageBus_T *aRecommendedDVDStorageBus) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecommendedDVDStorageBus(aRecommendedDVDStorageBus); } \
  NS_IMETHOD GetRecommendedHDStorageController(StorageControllerType_T *aRecommendedHDStorageController) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecommendedHDStorageController(aRecommendedHDStorageController); } \
  NS_IMETHOD GetRecommendedHDStorageBus(StorageBus_T *aRecommendedHDStorageBus) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecommendedHDStorageBus(aRecommendedHDStorageBus); } \
  NS_IMETHOD GetRecommendedFirmware(FirmwareType_T *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(ChipsetType_T *aRecommendedChipset) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecommendedChipset(aRecommendedChipset); } \
  NS_IMETHOD GetRecommendedIommuType(IommuType_T *aRecommendedIommuType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecommendedIommuType(aRecommendedIommuType); } \
  NS_IMETHOD GetRecommendedAudioController(AudioControllerType_T *aRecommendedAudioController) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecommendedAudioController(aRecommendedAudioController); } \
  NS_IMETHOD GetRecommendedAudioCodec(AudioCodecType_T *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 GetRecommendedX2APIC(PRBool *aRecommendedX2APIC) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecommendedX2APIC(aRecommendedX2APIC); } \
  NS_IMETHOD GetRecommendedCPUCount(PRUint32 *aRecommendedCPUCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecommendedCPUCount(aRecommendedCPUCount); } \
  NS_IMETHOD GetRecommendedTpmType(TpmType_T *aRecommendedTpmType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecommendedTpmType(aRecommendedTpmType); } \
  NS_IMETHOD GetRecommendedSecureBoot(PRBool *aRecommendedSecureBoot) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecommendedSecureBoot(aRecommendedSecureBoot); } \
  NS_IMETHOD GetRecommendedWDDMGraphics(PRBool *aRecommendedWDDMGraphics) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecommendedWDDMGraphics(aRecommendedWDDMGraphics); } \
  NS_IMETHOD GetGuestAdditionsInstallPackageName(PRUnichar **aGuestAdditionsInstallPackageName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGuestAdditionsInstallPackageName(aGuestAdditionsInstallPackageName); } \
  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); } \
  NS_IMETHOD GetInternalAndReservedAttribute16IGuestOSType(PRUint32 *aInternalAndReservedAttribute16IGuestOSType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute16IGuestOSType(aInternalAndReservedAttribute16IGuestOSType); } 

#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_Subtype_TO(smth) NS_IMETHOD GetSubtype (PRUnichar * * aSubtype) { return smth GetSubtype (aSubtype); }
#define COM_FORWARD_IGuestOSType_GETTER_Subtype_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_Subtype_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_Subtype_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_Subtype_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_PlatformArchitecture_TO(smth) NS_IMETHOD GetPlatformArchitecture (PRUint32 * aPlatformArchitecture) { return smth GetPlatformArchitecture (aPlatformArchitecture); }
#define COM_FORWARD_IGuestOSType_GETTER_PlatformArchitecture_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_PlatformArchitecture_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_PlatformArchitecture_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_PlatformArchitecture_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedIOAPIC_TO(smth) NS_IMETHOD GetRecommendedIOAPIC (PRBool * aRecommendedIOAPIC) { return smth GetRecommendedIOAPIC (aRecommendedIOAPIC); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedIOAPIC_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedIOAPIC_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedIOAPIC_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedIOAPIC_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedVirtEx_TO(smth) NS_IMETHOD GetRecommendedVirtEx (PRBool * aRecommendedVirtEx) { return smth GetRecommendedVirtEx (aRecommendedVirtEx); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedVirtEx_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedVirtEx_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedVirtEx_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedVirtEx_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedRAM_TO(smth) NS_IMETHOD GetRecommendedRAM (PRUint32 * aRecommendedRAM) { return smth GetRecommendedRAM (aRecommendedRAM); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedRAM_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedRAM_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedRAM_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedRAM_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedGraphicsController_TO(smth) NS_IMETHOD GetRecommendedGraphicsController (PRUint32 * aRecommendedGraphicsController) { return smth GetRecommendedGraphicsController (aRecommendedGraphicsController); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedGraphicsController_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedGraphicsController_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedGraphicsController_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedGraphicsController_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedVRAM_TO(smth) NS_IMETHOD GetRecommendedVRAM (PRUint32 * aRecommendedVRAM) { return smth GetRecommendedVRAM (aRecommendedVRAM); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedVRAM_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedVRAM_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedVRAM_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedVRAM_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_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_RecommendedIommuType_TO(smth) NS_IMETHOD GetRecommendedIommuType (PRUint32 * aRecommendedIommuType) { return smth GetRecommendedIommuType (aRecommendedIommuType); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedIommuType_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedIommuType_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedIommuType_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedIommuType_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedAudioController_TO(smth) NS_IMETHOD GetRecommendedAudioController (PRUint32 * aRecommendedAudioController) { return smth GetRecommendedAudioController (aRecommendedAudioController); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedAudioController_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedAudioController_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedAudioController_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedAudioController_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedAudioCodec_TO(smth) NS_IMETHOD GetRecommendedAudioCodec (PRUint32 * aRecommendedAudioCodec) { return smth GetRecommendedAudioCodec (aRecommendedAudioCodec); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedAudioCodec_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedAudioCodec_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedAudioCodec_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedAudioCodec_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedFloppy_TO(smth) NS_IMETHOD GetRecommendedFloppy (PRBool * aRecommendedFloppy) { return smth GetRecommendedFloppy (aRecommendedFloppy); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedFloppy_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedFloppy_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedFloppy_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedFloppy_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedUSB_TO(smth) NS_IMETHOD GetRecommendedUSB (PRBool * aRecommendedUSB) { return smth GetRecommendedUSB (aRecommendedUSB); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedUSB_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedUSB_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedUSB_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedUSB_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedUSB3_TO(smth) NS_IMETHOD GetRecommendedUSB3 (PRBool * aRecommendedUSB3) { return smth GetRecommendedUSB3 (aRecommendedUSB3); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedUSB3_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedUSB3_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedUSB3_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedUSB3_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedTFReset_TO(smth) NS_IMETHOD GetRecommendedTFReset (PRBool * aRecommendedTFReset) { return smth GetRecommendedTFReset (aRecommendedTFReset); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedTFReset_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedTFReset_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedTFReset_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedTFReset_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedX2APIC_TO(smth) NS_IMETHOD GetRecommendedX2APIC (PRBool * aRecommendedX2APIC) { return smth GetRecommendedX2APIC (aRecommendedX2APIC); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedX2APIC_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedX2APIC_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedX2APIC_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedX2APIC_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedCPUCount_TO(smth) NS_IMETHOD GetRecommendedCPUCount (PRUint32 * aRecommendedCPUCount) { return smth GetRecommendedCPUCount (aRecommendedCPUCount); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedCPUCount_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedCPUCount_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedCPUCount_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedCPUCount_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedTpmType_TO(smth) NS_IMETHOD GetRecommendedTpmType (PRUint32 * aRecommendedTpmType) { return smth GetRecommendedTpmType (aRecommendedTpmType); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedTpmType_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedTpmType_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedTpmType_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedTpmType_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedSecureBoot_TO(smth) NS_IMETHOD GetRecommendedSecureBoot (PRBool * aRecommendedSecureBoot) { return smth GetRecommendedSecureBoot (aRecommendedSecureBoot); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedSecureBoot_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedSecureBoot_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedSecureBoot_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedSecureBoot_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedWDDMGraphics_TO(smth) NS_IMETHOD GetRecommendedWDDMGraphics (PRBool * aRecommendedWDDMGraphics) { return smth GetRecommendedWDDMGraphics (aRecommendedWDDMGraphics); }
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedWDDMGraphics_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedWDDMGraphics_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_RecommendedWDDMGraphics_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedWDDMGraphics_TO (base::)
#define COM_FORWARD_IGuestOSType_GETTER_GuestAdditionsInstallPackageName_TO(smth) NS_IMETHOD GetGuestAdditionsInstallPackageName (PRUnichar * * aGuestAdditionsInstallPackageName) { return smth GetGuestAdditionsInstallPackageName (aGuestAdditionsInstallPackageName); }
#define COM_FORWARD_IGuestOSType_GETTER_GuestAdditionsInstallPackageName_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_GuestAdditionsInstallPackageName_TO ((obj)->)
#define COM_FORWARD_IGuestOSType_GETTER_GuestAdditionsInstallPackageName_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_GuestAdditionsInstallPackageName_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 AdditionsFacilityClass_T classType; */
  NS_IMETHOD GetClassType(AdditionsFacilityClass_T *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 AdditionsFacilityStatus_T status; */
  NS_IMETHOD GetStatus(AdditionsFacilityStatus_T *aStatus) = 0;

  /* readonly attribute AdditionsFacilityType_T type; */
  NS_IMETHOD GetType(AdditionsFacilityType_T *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(AdditionsFacilityClass_T *aClassType) NS_OVERRIDE; \
  NS_IMETHOD GetLastUpdated(PRInt64 *aLastUpdated) NS_OVERRIDE; \
  NS_IMETHOD GetName(PRUnichar **aName) NS_OVERRIDE; \
  NS_IMETHOD GetStatus(AdditionsFacilityStatus_T *aStatus) NS_OVERRIDE; \
  NS_IMETHOD GetType(AdditionsFacilityType_T *aType) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IAdditionsFacility(PRUint32 *aInternalAndReservedAttribute1IAdditionsFacility) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IAdditionsFacility(PRUint32 *aInternalAndReservedAttribute2IAdditionsFacility) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IADDITIONSFACILITY(_to) \
  NS_IMETHOD GetClassType(AdditionsFacilityClass_T *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(AdditionsFacilityStatus_T *aStatus) { return _to GetStatus(aStatus); } \
  NS_IMETHOD GetType(AdditionsFacilityType_T *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(AdditionsFacilityClass_T *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(AdditionsFacilityStatus_T *aStatus) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStatus(aStatus); } \
  NS_IMETHOD GetType(AdditionsFacilityType_T *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); } 

#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 "00727a73-000a-4c4a-006d-e7d300351186"

#define IDNDBASE_IID \
  {0x00727a73, 0x000a, 0x4c4a, \
    { 0x00, 0x6d, 0xe7, 0xd3, 0x00, 0x35, 0x11, 0x86 }}

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 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_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IDnDBase(PRUint32 *aInternalAndReservedAttribute1IDnDBase) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IDnDBase(PRUint32 *aInternalAndReservedAttribute2IDnDBase) NS_OVERRIDE; \
  NS_IMETHOD IsFormatSupported(const PRUnichar *format, PRBool *supported) NS_OVERRIDE; \
  NS_IMETHOD AddFormats(PRUint32 formatsSize, const PRUnichar **formats) NS_OVERRIDE; \
  NS_IMETHOD RemoveFormats(PRUint32 formatsSize, const PRUnichar **formats) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IDnDBase(void) NS_OVERRIDE; 

/* 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 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 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(); } 

#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_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 DnDAction_T allowedActions, [retval] out DnDAction_T defaultAction); */
  NS_IMETHOD DragIsPending(PRUint32 screenId, PRUint32 *formatsSize, PRUnichar ***formats, PRUint32 *allowedActionsSize, DnDAction_T **allowedActions, DnDAction_T *defaultAction) = 0;

  /* void drop (in wstring format, in DnDAction_T action, [retval] out IProgress progress); */
  NS_IMETHOD Drop(const PRUnichar *format, DnDAction_T 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_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IDnDSource(PRUint32 *aInternalAndReservedAttribute2IDnDSource) NS_OVERRIDE; \
  NS_IMETHOD DragIsPending(PRUint32 screenId, PRUint32 *formatsSize, PRUnichar ***formats, PRUint32 *allowedActionsSize, DnDAction_T **allowedActions, DnDAction_T *defaultAction) NS_OVERRIDE; \
  NS_IMETHOD Drop(const PRUnichar *format, DnDAction_T action, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD ReceiveData(PRUint32 *dataSize, PRUint8 **data) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IDnDSource(void) NS_OVERRIDE; 

/* 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, DnDAction_T **allowedActions, DnDAction_T *defaultAction) { return _to DragIsPending(screenId, formatsSize, formats, allowedActionsSize, allowedActions, defaultAction); } \
  NS_IMETHOD Drop(const PRUnichar *format, DnDAction_T 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, DnDAction_T **allowedActions, DnDAction_T *defaultAction) { return !_to ? NS_ERROR_NULL_POINTER : _to->DragIsPending(screenId, formatsSize, formats, allowedActionsSize, allowedActions, defaultAction); } \
  NS_IMETHOD Drop(const PRUnichar *format, DnDAction_T 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(); } 

#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) NS_OVERRIDE; 

/* 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); } 

#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 DnDAction_T defaultAction, in unsigned long allowedActionsSize, [array, size_is (allowedActionsSize)] in DnDAction_T allowedActions, in unsigned long formatsSize, [array, size_is (formatsSize)] in wstring formats, [retval] out DnDAction_T resultAction); */
  NS_IMETHOD Enter(PRUint32 screenId, PRUint32 y, PRUint32 x, DnDAction_T defaultAction, PRUint32 allowedActionsSize, DnDAction_T *allowedActions, PRUint32 formatsSize, const PRUnichar **formats, DnDAction_T *resultAction) = 0;

  /* void move (in unsigned long screenId, in unsigned long x, in unsigned long y, in DnDAction_T defaultAction, in unsigned long allowedActionsSize, [array, size_is (allowedActionsSize)] in DnDAction_T allowedActions, in unsigned long formatsSize, [array, size_is (formatsSize)] in wstring formats, [retval] out DnDAction_T resultAction); */
  NS_IMETHOD Move(PRUint32 screenId, PRUint32 x, PRUint32 y, DnDAction_T defaultAction, PRUint32 allowedActionsSize, DnDAction_T *allowedActions, PRUint32 formatsSize, const PRUnichar **formats, DnDAction_T *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 DnDAction_T defaultAction, in unsigned long allowedActionsSize, [array, size_is (allowedActionsSize)] in DnDAction_T allowedActions, in unsigned long formatsSize, [array, size_is (formatsSize)] in wstring formats, out wstring format, [retval] out DnDAction_T resultAction); */
  NS_IMETHOD Drop(PRUint32 screenId, PRUint32 x, PRUint32 y, DnDAction_T defaultAction, PRUint32 allowedActionsSize, DnDAction_T *allowedActions, PRUint32 formatsSize, const PRUnichar **formats, PRUnichar **format, DnDAction_T *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_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IDnDTarget(PRUint32 *aInternalAndReservedAttribute2IDnDTarget) NS_OVERRIDE; \
  NS_IMETHOD Enter(PRUint32 screenId, PRUint32 y, PRUint32 x, DnDAction_T defaultAction, PRUint32 allowedActionsSize, DnDAction_T *allowedActions, PRUint32 formatsSize, const PRUnichar **formats, DnDAction_T *resultAction) NS_OVERRIDE; \
  NS_IMETHOD Move(PRUint32 screenId, PRUint32 x, PRUint32 y, DnDAction_T defaultAction, PRUint32 allowedActionsSize, DnDAction_T *allowedActions, PRUint32 formatsSize, const PRUnichar **formats, DnDAction_T *resultAction) NS_OVERRIDE; \
  NS_IMETHOD Leave(PRUint32 screenId) NS_OVERRIDE; \
  NS_IMETHOD Drop(PRUint32 screenId, PRUint32 x, PRUint32 y, DnDAction_T defaultAction, PRUint32 allowedActionsSize, DnDAction_T *allowedActions, PRUint32 formatsSize, const PRUnichar **formats, PRUnichar **format, DnDAction_T *resultAction) NS_OVERRIDE; \
  NS_IMETHOD SendData(PRUint32 screenId, const PRUnichar *format, PRUint32 dataSize, PRUint8 *data, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD Cancel(PRBool *veto) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IDnDTarget(void) NS_OVERRIDE; 

/* 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, DnDAction_T defaultAction, PRUint32 allowedActionsSize, DnDAction_T *allowedActions, PRUint32 formatsSize, const PRUnichar **formats, DnDAction_T *resultAction) { return _to Enter(screenId, y, x, defaultAction, allowedActionsSize, allowedActions, formatsSize, formats, resultAction); } \
  NS_IMETHOD Move(PRUint32 screenId, PRUint32 x, PRUint32 y, DnDAction_T defaultAction, PRUint32 allowedActionsSize, DnDAction_T *allowedActions, PRUint32 formatsSize, const PRUnichar **formats, DnDAction_T *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, DnDAction_T defaultAction, PRUint32 allowedActionsSize, DnDAction_T *allowedActions, PRUint32 formatsSize, const PRUnichar **formats, PRUnichar **format, DnDAction_T *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, DnDAction_T defaultAction, PRUint32 allowedActionsSize, DnDAction_T *allowedActions, PRUint32 formatsSize, const PRUnichar **formats, DnDAction_T *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, DnDAction_T defaultAction, PRUint32 allowedActionsSize, DnDAction_T *allowedActions, PRUint32 formatsSize, const PRUnichar **formats, DnDAction_T *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, DnDAction_T defaultAction, PRUint32 allowedActionsSize, DnDAction_T *allowedActions, PRUint32 formatsSize, const PRUnichar **formats, PRUnichar **format, DnDAction_T *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(); } 

#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) NS_OVERRIDE; 

/* 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); } 

#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 "8b2b6773-8b5a-4cd2-95f8-38faf73913e1"

#define IGUESTSESSION_IID \
  {0x8b2b6773, 0x8b5a, 0x4cd2, \
    { 0x95, 0xf8, 0x38, 0xfa, 0xf7, 0x39, 0x13, 0xe1 }}

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 GuestSessionStatus_T status; */
  NS_IMETHOD GetStatus(GuestSessionStatus_T *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 PathStyle_T pathStyle; */
  NS_IMETHOD GetPathStyle(PathStyle_T *aPathStyle) = 0;

  /* attribute wstring currentDirectory; */
  NS_IMETHOD GetCurrentDirectory(PRUnichar **aCurrentDirectory) = 0;
  NS_IMETHOD SetCurrentDirectory(const PRUnichar *aCurrentDirectory) = 0;

  /* readonly attribute wstring userHome; */
  NS_IMETHOD GetUserHome(PRUnichar **aUserHome) = 0;

  /* readonly attribute wstring userDocuments; */
  NS_IMETHOD GetUserDocuments(PRUnichar **aUserDocuments) = 0;

  /* void getMountPoints (out unsigned long mountPointsSize, [array, size_is (mountPointsSize), retval] out wstring mountPoints); */
  NS_IMETHOD GetMountPoints(PRUint32 *mountPointsSize, PRUnichar ***mountPoints) = 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;

  /* readonly attribute unsigned long InternalAndReservedAttribute9IGuestSession; */
  NS_IMETHOD GetInternalAndReservedAttribute9IGuestSession(PRUint32 *aInternalAndReservedAttribute9IGuestSession) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute10IGuestSession; */
  NS_IMETHOD GetInternalAndReservedAttribute10IGuestSession(PRUint32 *aInternalAndReservedAttribute10IGuestSession) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute11IGuestSession; */
  NS_IMETHOD GetInternalAndReservedAttribute11IGuestSession(PRUint32 *aInternalAndReservedAttribute11IGuestSession) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute12IGuestSession; */
  NS_IMETHOD GetInternalAndReservedAttribute12IGuestSession(PRUint32 *aInternalAndReservedAttribute12IGuestSession) = 0;

  /* void close (); */
  NS_IMETHOD Close(void) = 0;

  /* void copyFromGuest (in unsigned long sourcesSize, [array, size_is (sourcesSize)] in wstring sources, in unsigned long filtersSize, [array, size_is (filtersSize)] in wstring filters, in unsigned long flagsSize, [array, size_is (flagsSize)] in wstring flags, in wstring destination, [retval] out IProgress progress); */
  NS_IMETHOD CopyFromGuest(PRUint32 sourcesSize, const PRUnichar **sources, PRUint32 filtersSize, const PRUnichar **filters, PRUint32 flagsSize, const PRUnichar **flags, const PRUnichar *destination, IProgress * *progress) = 0;

  /* void copyToGuest (in unsigned long sourcesSize, [array, size_is (sourcesSize)] in wstring sources, in unsigned long filtersSize, [array, size_is (filtersSize)] in wstring filters, in unsigned long flagsSize, [array, size_is (flagsSize)] in wstring flags, in wstring destination, [retval] out IProgress progress); */
  NS_IMETHOD CopyToGuest(PRUint32 sourcesSize, const PRUnichar **sources, PRUint32 filtersSize, const PRUnichar **filters, PRUint32 flagsSize, const PRUnichar **flags, const PRUnichar *destination, IProgress * *progress) = 0;

  /* void directoryCopy (in wstring source, in wstring destination, in unsigned long flagsSize, [array, size_is (flagsSize)] in DirectoryCopyFlag_T flags, [retval] out IProgress progress); */
  NS_IMETHOD DirectoryCopy(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, DirectoryCopyFlag_T *flags, IProgress * *progress) = 0;

  /* void directoryCopyFromGuest (in wstring source, in wstring destination, in unsigned long flagsSize, [array, size_is (flagsSize)] in DirectoryCopyFlag_T flags, [retval] out IProgress progress); */
  NS_IMETHOD DirectoryCopyFromGuest(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, DirectoryCopyFlag_T *flags, IProgress * *progress) = 0;

  /* void directoryCopyToGuest (in wstring source, in wstring destination, in unsigned long flagsSize, [array, size_is (flagsSize)] in DirectoryCopyFlag_T flags, [retval] out IProgress progress); */
  NS_IMETHOD DirectoryCopyToGuest(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, DirectoryCopyFlag_T *flags, IProgress * *progress) = 0;

  /* void directoryCreate (in wstring path, in unsigned long mode, in unsigned long flagsSize, [array, size_is (flagsSize)] in DirectoryCreateFlag_T flags); */
  NS_IMETHOD DirectoryCreate(const PRUnichar *path, PRUint32 mode, PRUint32 flagsSize, DirectoryCreateFlag_T *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 DirectoryOpenFlag_T flags, [retval] out IGuestDirectory directory); */
  NS_IMETHOD DirectoryOpen(const PRUnichar *path, const PRUnichar *filter, PRUint32 flagsSize, DirectoryOpenFlag_T *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 DirectoryRemoveRecFlag_T flags, [retval] out IProgress progress); */
  NS_IMETHOD DirectoryRemoveRecursive(const PRUnichar *path, PRUint32 flagsSize, DirectoryRemoveRecFlag_T *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 FileCopyFlag_T flags, [retval] out IProgress progress); */
  NS_IMETHOD FileCopy(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, FileCopyFlag_T *flags, IProgress * *progress) = 0;

  /* void fileCopyFromGuest (in wstring source, in wstring destination, in unsigned long flagsSize, [array, size_is (flagsSize)] in FileCopyFlag_T flags, [retval] out IProgress progress); */
  NS_IMETHOD FileCopyFromGuest(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, FileCopyFlag_T *flags, IProgress * *progress) = 0;

  /* void fileCopyToGuest (in wstring source, in wstring destination, in unsigned long flagsSize, [array, size_is (flagsSize)] in FileCopyFlag_T flags, [retval] out IProgress progress); */
  NS_IMETHOD FileCopyToGuest(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, FileCopyFlag_T *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 FileAccessMode_T accessMode, in FileOpenAction_T openAction, in unsigned long creationMode, [retval] out IGuestFile file); */
  NS_IMETHOD FileOpen(const PRUnichar *path, FileAccessMode_T accessMode, FileOpenAction_T openAction, PRUint32 creationMode, IGuestFile * *file) = 0;

  /* void fileOpenEx (in wstring path, in FileAccessMode_T accessMode, in FileOpenAction_T openAction, in FileSharingMode_T sharingMode, in unsigned long creationMode, in unsigned long flagsSize, [array, size_is (flagsSize)] in FileOpenExFlag_T flags, [retval] out IGuestFile file); */
  NS_IMETHOD FileOpenEx(const PRUnichar *path, FileAccessMode_T accessMode, FileOpenAction_T openAction, FileSharingMode_T sharingMode, PRUint32 creationMode, PRUint32 flagsSize, FileOpenExFlag_T *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 fsObjRemoveArray (in unsigned long pathSize, [array, size_is (pathSize)] in wstring path, [retval] out IProgress progress); */
  NS_IMETHOD FsObjRemoveArray(PRUint32 pathSize, const PRUnichar **path, IProgress * *progress) = 0;

  /* void fsObjRename (in wstring oldPath, in wstring newPath, in unsigned long flagsSize, [array, size_is (flagsSize)] in FsObjRenameFlag_T flags); */
  NS_IMETHOD FsObjRename(const PRUnichar *oldPath, const PRUnichar *newPath, PRUint32 flagsSize, FsObjRenameFlag_T *flags) = 0;

  /* void fsObjMove (in wstring source, in wstring destination, in unsigned long flagsSize, [array, size_is (flagsSize)] in FsObjMoveFlag_T flags, [retval] out IProgress progress); */
  NS_IMETHOD FsObjMove(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, FsObjMoveFlag_T *flags, IProgress * *progress) = 0;

  /* void fsObjMoveArray (in unsigned long sourceSize, [array, size_is (sourceSize)] in wstring source, in wstring destination, in unsigned long flagsSize, [array, size_is (flagsSize)] in FsObjMoveFlag_T flags, [retval] out IProgress progress); */
  NS_IMETHOD FsObjMoveArray(PRUint32 sourceSize, const PRUnichar **source, const PRUnichar *destination, PRUint32 flagsSize, FsObjMoveFlag_T *flags, IProgress * *progress) = 0;

  /* void fsObjCopyArray (in unsigned long sourceSize, [array, size_is (sourceSize)] in wstring source, in wstring destination, in unsigned long flagsSize, [array, size_is (flagsSize)] in FileCopyFlag_T flags, [retval] out IProgress progress); */
  NS_IMETHOD FsObjCopyArray(PRUint32 sourceSize, const PRUnichar **source, const PRUnichar *destination, PRUint32 flagsSize, FileCopyFlag_T *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 fsQueryFreeSpace (in wstring path, [retval] out long long freeSpace); */
  NS_IMETHOD FsQueryFreeSpace(const PRUnichar *path, PRInt64 *freeSpace) = 0;

  /* void fsQueryInfo (in wstring path, [retval] out IGuestFsInfo info); */
  NS_IMETHOD FsQueryInfo(const PRUnichar *path, IGuestFsInfo * *info) = 0;

  /* void processCreate (in wstring executable, in unsigned long argumentsSize, [array, size_is (argumentsSize)] in wstring arguments, in wstring cwd, in unsigned long environmentChangesSize, [array, size_is (environmentChangesSize)] in wstring environmentChanges, in unsigned long flagsSize, [array, size_is (flagsSize)] in ProcessCreateFlag_T flags, in unsigned long timeoutMS, [retval] out IGuestProcess guestProcess); */
  NS_IMETHOD ProcessCreate(const PRUnichar *executable, PRUint32 argumentsSize, const PRUnichar **arguments, const PRUnichar *cwd, PRUint32 environmentChangesSize, const PRUnichar **environmentChanges, PRUint32 flagsSize, ProcessCreateFlag_T *flags, PRUint32 timeoutMS, IGuestProcess * *guestProcess) = 0;

  /* void processCreateEx (in wstring executable, in unsigned long argumentsSize, [array, size_is (argumentsSize)] in wstring arguments, in wstring cwd, in unsigned long environmentChangesSize, [array, size_is (environmentChangesSize)] in wstring environmentChanges, in unsigned long flagsSize, [array, size_is (flagsSize)] in ProcessCreateFlag_T flags, in unsigned long timeoutMS, in ProcessPriority_T priority, in unsigned long affinitySize, [array, size_is (affinitySize)] in long affinity, [retval] out IGuestProcess guestProcess); */
  NS_IMETHOD ProcessCreateEx(const PRUnichar *executable, PRUint32 argumentsSize, const PRUnichar **arguments, const PRUnichar *cwd, PRUint32 environmentChangesSize, const PRUnichar **environmentChanges, PRUint32 flagsSize, ProcessCreateFlag_T *flags, PRUint32 timeoutMS, ProcessPriority_T 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 SymlinkType_T type); */
  NS_IMETHOD SymlinkCreate(const PRUnichar *symlink, const PRUnichar *target, SymlinkType_T 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 SymlinkReadFlag_T flags, [retval] out wstring target); */
  NS_IMETHOD SymlinkRead(const PRUnichar *symlink, PRUint32 flagsSize, SymlinkReadFlag_T *flags, PRUnichar **target) = 0;

  /* void waitFor (in unsigned long waitFor, in unsigned long timeoutMS, [retval] out GuestSessionWaitResult_T reason); */
  NS_IMETHOD WaitFor(PRUint32 waitFor, PRUint32 timeoutMS, GuestSessionWaitResult_T *reason) = 0;

  /* void waitForArray (in unsigned long waitForSize, [array, size_is (waitForSize)] in GuestSessionWaitForFlag_T waitFor, in unsigned long timeoutMS, [retval] out GuestSessionWaitResult_T reason); */
  NS_IMETHOD WaitForArray(PRUint32 waitForSize, GuestSessionWaitForFlag_T *waitFor, PRUint32 timeoutMS, GuestSessionWaitResult_T *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_OVERRIDE; \
  NS_IMETHOD GetDomain(PRUnichar **aDomain) NS_OVERRIDE; \
  NS_IMETHOD GetName(PRUnichar **aName) NS_OVERRIDE; \
  NS_IMETHOD GetId(PRUint32 *aId) NS_OVERRIDE; \
  NS_IMETHOD GetTimeout(PRUint32 *aTimeout) NS_OVERRIDE; \
  NS_IMETHOD SetTimeout(PRUint32 aTimeout) NS_OVERRIDE; \
  NS_IMETHOD GetProtocolVersion(PRUint32 *aProtocolVersion) NS_OVERRIDE; \
  NS_IMETHOD GetStatus(GuestSessionStatus_T *aStatus) NS_OVERRIDE; \
  NS_IMETHOD GetEnvironmentChanges(PRUint32 *environmentChangesSize, PRUnichar ***environmentChanges) NS_OVERRIDE; \
  NS_IMETHOD SetEnvironmentChanges(PRUint32 environmentChangesSize, const PRUnichar **environmentChanges) NS_OVERRIDE; \
  NS_IMETHOD GetEnvironmentBase(PRUint32 *environmentBaseSize, PRUnichar ***environmentBase) NS_OVERRIDE; \
  NS_IMETHOD GetProcesses(PRUint32 *processesSize, IGuestProcess * **processes) NS_OVERRIDE; \
  NS_IMETHOD GetPathStyle(PathStyle_T *aPathStyle) NS_OVERRIDE; \
  NS_IMETHOD GetCurrentDirectory(PRUnichar **aCurrentDirectory) NS_OVERRIDE; \
  NS_IMETHOD SetCurrentDirectory(const PRUnichar *aCurrentDirectory) NS_OVERRIDE; \
  NS_IMETHOD GetUserHome(PRUnichar **aUserHome) NS_OVERRIDE; \
  NS_IMETHOD GetUserDocuments(PRUnichar **aUserDocuments) NS_OVERRIDE; \
  NS_IMETHOD GetMountPoints(PRUint32 *mountPointsSize, PRUnichar ***mountPoints) NS_OVERRIDE; \
  NS_IMETHOD GetDirectories(PRUint32 *directoriesSize, IGuestDirectory * **directories) NS_OVERRIDE; \
  NS_IMETHOD GetFiles(PRUint32 *filesSize, IGuestFile * **files) NS_OVERRIDE; \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IGuestSession(PRUint32 *aInternalAndReservedAttribute1IGuestSession) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IGuestSession(PRUint32 *aInternalAndReservedAttribute2IGuestSession) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IGuestSession(PRUint32 *aInternalAndReservedAttribute3IGuestSession) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IGuestSession(PRUint32 *aInternalAndReservedAttribute4IGuestSession) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IGuestSession(PRUint32 *aInternalAndReservedAttribute5IGuestSession) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IGuestSession(PRUint32 *aInternalAndReservedAttribute6IGuestSession) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IGuestSession(PRUint32 *aInternalAndReservedAttribute7IGuestSession) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IGuestSession(PRUint32 *aInternalAndReservedAttribute8IGuestSession) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute9IGuestSession(PRUint32 *aInternalAndReservedAttribute9IGuestSession) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute10IGuestSession(PRUint32 *aInternalAndReservedAttribute10IGuestSession) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute11IGuestSession(PRUint32 *aInternalAndReservedAttribute11IGuestSession) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute12IGuestSession(PRUint32 *aInternalAndReservedAttribute12IGuestSession) NS_OVERRIDE; \
  NS_IMETHOD Close(void) NS_OVERRIDE; \
  NS_IMETHOD CopyFromGuest(PRUint32 sourcesSize, const PRUnichar **sources, PRUint32 filtersSize, const PRUnichar **filters, PRUint32 flagsSize, const PRUnichar **flags, const PRUnichar *destination, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD CopyToGuest(PRUint32 sourcesSize, const PRUnichar **sources, PRUint32 filtersSize, const PRUnichar **filters, PRUint32 flagsSize, const PRUnichar **flags, const PRUnichar *destination, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD DirectoryCopy(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, DirectoryCopyFlag_T *flags, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD DirectoryCopyFromGuest(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, DirectoryCopyFlag_T *flags, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD DirectoryCopyToGuest(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, DirectoryCopyFlag_T *flags, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD DirectoryCreate(const PRUnichar *path, PRUint32 mode, PRUint32 flagsSize, DirectoryCreateFlag_T *flags) NS_OVERRIDE; \
  NS_IMETHOD DirectoryCreateTemp(const PRUnichar *templateName, PRUint32 mode, const PRUnichar *path, PRBool secure, PRUnichar **directory) NS_OVERRIDE; \
  NS_IMETHOD DirectoryExists(const PRUnichar *path, PRBool followSymlinks, PRBool *exists) NS_OVERRIDE; \
  NS_IMETHOD DirectoryOpen(const PRUnichar *path, const PRUnichar *filter, PRUint32 flagsSize, DirectoryOpenFlag_T *flags, IGuestDirectory * *directory) NS_OVERRIDE; \
  NS_IMETHOD DirectoryRemove(const PRUnichar *path) NS_OVERRIDE; \
  NS_IMETHOD DirectoryRemoveRecursive(const PRUnichar *path, PRUint32 flagsSize, DirectoryRemoveRecFlag_T *flags, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD EnvironmentScheduleSet(const PRUnichar *name, const PRUnichar *value) NS_OVERRIDE; \
  NS_IMETHOD EnvironmentScheduleUnset(const PRUnichar *name) NS_OVERRIDE; \
  NS_IMETHOD EnvironmentGetBaseVariable(const PRUnichar *name, PRUnichar **value) NS_OVERRIDE; \
  NS_IMETHOD EnvironmentDoesBaseVariableExist(const PRUnichar *name, PRBool *exists) NS_OVERRIDE; \
  NS_IMETHOD FileCopy(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, FileCopyFlag_T *flags, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD FileCopyFromGuest(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, FileCopyFlag_T *flags, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD FileCopyToGuest(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, FileCopyFlag_T *flags, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD FileCreateTemp(const PRUnichar *templateName, PRUint32 mode, const PRUnichar *path, PRBool secure, IGuestFile * *file) NS_OVERRIDE; \
  NS_IMETHOD FileExists(const PRUnichar *path, PRBool followSymlinks, PRBool *exists) NS_OVERRIDE; \
  NS_IMETHOD FileOpen(const PRUnichar *path, FileAccessMode_T accessMode, FileOpenAction_T openAction, PRUint32 creationMode, IGuestFile * *file) NS_OVERRIDE; \
  NS_IMETHOD FileOpenEx(const PRUnichar *path, FileAccessMode_T accessMode, FileOpenAction_T openAction, FileSharingMode_T sharingMode, PRUint32 creationMode, PRUint32 flagsSize, FileOpenExFlag_T *flags, IGuestFile * *file) NS_OVERRIDE; \
  NS_IMETHOD FileQuerySize(const PRUnichar *path, PRBool followSymlinks, PRInt64 *size) NS_OVERRIDE; \
  NS_IMETHOD FsObjExists(const PRUnichar *path, PRBool followSymlinks, PRBool *exists) NS_OVERRIDE; \
  NS_IMETHOD FsObjQueryInfo(const PRUnichar *path, PRBool followSymlinks, IGuestFsObjInfo * *info) NS_OVERRIDE; \
  NS_IMETHOD FsObjRemove(const PRUnichar *path) NS_OVERRIDE; \
  NS_IMETHOD FsObjRemoveArray(PRUint32 pathSize, const PRUnichar **path, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD FsObjRename(const PRUnichar *oldPath, const PRUnichar *newPath, PRUint32 flagsSize, FsObjRenameFlag_T *flags) NS_OVERRIDE; \
  NS_IMETHOD FsObjMove(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, FsObjMoveFlag_T *flags, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD FsObjMoveArray(PRUint32 sourceSize, const PRUnichar **source, const PRUnichar *destination, PRUint32 flagsSize, FsObjMoveFlag_T *flags, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD FsObjCopyArray(PRUint32 sourceSize, const PRUnichar **source, const PRUnichar *destination, PRUint32 flagsSize, FileCopyFlag_T *flags, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD FsObjSetACL(const PRUnichar *path, PRBool followSymlinks, const PRUnichar *acl, PRUint32 mode) NS_OVERRIDE; \
  NS_IMETHOD FsQueryFreeSpace(const PRUnichar *path, PRInt64 *freeSpace) NS_OVERRIDE; \
  NS_IMETHOD FsQueryInfo(const PRUnichar *path, IGuestFsInfo * *info) NS_OVERRIDE; \
  NS_IMETHOD ProcessCreate(const PRUnichar *executable, PRUint32 argumentsSize, const PRUnichar **arguments, const PRUnichar *cwd, PRUint32 environmentChangesSize, const PRUnichar **environmentChanges, PRUint32 flagsSize, ProcessCreateFlag_T *flags, PRUint32 timeoutMS, IGuestProcess * *guestProcess) NS_OVERRIDE; \
  NS_IMETHOD ProcessCreateEx(const PRUnichar *executable, PRUint32 argumentsSize, const PRUnichar **arguments, const PRUnichar *cwd, PRUint32 environmentChangesSize, const PRUnichar **environmentChanges, PRUint32 flagsSize, ProcessCreateFlag_T *flags, PRUint32 timeoutMS, ProcessPriority_T priority, PRUint32 affinitySize, PRInt32 *affinity, IGuestProcess * *guestProcess) NS_OVERRIDE; \
  NS_IMETHOD ProcessGet(PRUint32 pid, IGuestProcess * *guestProcess) NS_OVERRIDE; \
  NS_IMETHOD SymlinkCreate(const PRUnichar *symlink, const PRUnichar *target, SymlinkType_T type) NS_OVERRIDE; \
  NS_IMETHOD SymlinkExists(const PRUnichar *symlink, PRBool *exists) NS_OVERRIDE; \
  NS_IMETHOD SymlinkRead(const PRUnichar *symlink, PRUint32 flagsSize, SymlinkReadFlag_T *flags, PRUnichar **target) NS_OVERRIDE; \
  NS_IMETHOD WaitFor(PRUint32 waitFor, PRUint32 timeoutMS, GuestSessionWaitResult_T *reason) NS_OVERRIDE; \
  NS_IMETHOD WaitForArray(PRUint32 waitForSize, GuestSessionWaitForFlag_T *waitFor, PRUint32 timeoutMS, GuestSessionWaitResult_T *reason) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IGuestSession(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IGuestSession(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IGuestSession(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IGuestSession(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod5IGuestSession(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod6IGuestSession(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod7IGuestSession(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod8IGuestSession(void) NS_OVERRIDE; 

/* 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(GuestSessionStatus_T *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(PathStyle_T *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 GetUserHome(PRUnichar **aUserHome) { return _to GetUserHome(aUserHome); } \
  NS_IMETHOD GetUserDocuments(PRUnichar **aUserDocuments) { return _to GetUserDocuments(aUserDocuments); } \
  NS_IMETHOD GetMountPoints(PRUint32 *mountPointsSize, PRUnichar ***mountPoints) { return _to GetMountPoints(mountPointsSize, mountPoints); } \
  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 GetInternalAndReservedAttribute9IGuestSession(PRUint32 *aInternalAndReservedAttribute9IGuestSession) { return _to GetInternalAndReservedAttribute9IGuestSession(aInternalAndReservedAttribute9IGuestSession); } \
  NS_IMETHOD GetInternalAndReservedAttribute10IGuestSession(PRUint32 *aInternalAndReservedAttribute10IGuestSession) { return _to GetInternalAndReservedAttribute10IGuestSession(aInternalAndReservedAttribute10IGuestSession); } \
  NS_IMETHOD GetInternalAndReservedAttribute11IGuestSession(PRUint32 *aInternalAndReservedAttribute11IGuestSession) { return _to GetInternalAndReservedAttribute11IGuestSession(aInternalAndReservedAttribute11IGuestSession); } \
  NS_IMETHOD GetInternalAndReservedAttribute12IGuestSession(PRUint32 *aInternalAndReservedAttribute12IGuestSession) { return _to GetInternalAndReservedAttribute12IGuestSession(aInternalAndReservedAttribute12IGuestSession); } \
  NS_IMETHOD Close(void) { return _to Close(); } \
  NS_IMETHOD CopyFromGuest(PRUint32 sourcesSize, const PRUnichar **sources, PRUint32 filtersSize, const PRUnichar **filters, PRUint32 flagsSize, const PRUnichar **flags, const PRUnichar *destination, IProgress * *progress) { return _to CopyFromGuest(sourcesSize, sources, filtersSize, filters, flagsSize, flags, destination, progress); } \
  NS_IMETHOD CopyToGuest(PRUint32 sourcesSize, const PRUnichar **sources, PRUint32 filtersSize, const PRUnichar **filters, PRUint32 flagsSize, const PRUnichar **flags, const PRUnichar *destination, IProgress * *progress) { return _to CopyToGuest(sourcesSize, sources, filtersSize, filters, flagsSize, flags, destination, progress); } \
  NS_IMETHOD DirectoryCopy(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, DirectoryCopyFlag_T *flags, IProgress * *progress) { return _to DirectoryCopy(source, destination, flagsSize, flags, progress); } \
  NS_IMETHOD DirectoryCopyFromGuest(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, DirectoryCopyFlag_T *flags, IProgress * *progress) { return _to DirectoryCopyFromGuest(source, destination, flagsSize, flags, progress); } \
  NS_IMETHOD DirectoryCopyToGuest(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, DirectoryCopyFlag_T *flags, IProgress * *progress) { return _to DirectoryCopyToGuest(source, destination, flagsSize, flags, progress); } \
  NS_IMETHOD DirectoryCreate(const PRUnichar *path, PRUint32 mode, PRUint32 flagsSize, DirectoryCreateFlag_T *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, DirectoryOpenFlag_T *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, DirectoryRemoveRecFlag_T *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, FileCopyFlag_T *flags, IProgress * *progress) { return _to FileCopy(source, destination, flagsSize, flags, progress); } \
  NS_IMETHOD FileCopyFromGuest(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, FileCopyFlag_T *flags, IProgress * *progress) { return _to FileCopyFromGuest(source, destination, flagsSize, flags, progress); } \
  NS_IMETHOD FileCopyToGuest(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, FileCopyFlag_T *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, FileAccessMode_T accessMode, FileOpenAction_T openAction, PRUint32 creationMode, IGuestFile * *file) { return _to FileOpen(path, accessMode, openAction, creationMode, file); } \
  NS_IMETHOD FileOpenEx(const PRUnichar *path, FileAccessMode_T accessMode, FileOpenAction_T openAction, FileSharingMode_T sharingMode, PRUint32 creationMode, PRUint32 flagsSize, FileOpenExFlag_T *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 FsObjRemoveArray(PRUint32 pathSize, const PRUnichar **path, IProgress * *progress) { return _to FsObjRemoveArray(pathSize, path, progress); } \
  NS_IMETHOD FsObjRename(const PRUnichar *oldPath, const PRUnichar *newPath, PRUint32 flagsSize, FsObjRenameFlag_T *flags) { return _to FsObjRename(oldPath, newPath, flagsSize, flags); } \
  NS_IMETHOD FsObjMove(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, FsObjMoveFlag_T *flags, IProgress * *progress) { return _to FsObjMove(source, destination, flagsSize, flags, progress); } \
  NS_IMETHOD FsObjMoveArray(PRUint32 sourceSize, const PRUnichar **source, const PRUnichar *destination, PRUint32 flagsSize, FsObjMoveFlag_T *flags, IProgress * *progress) { return _to FsObjMoveArray(sourceSize, source, destination, flagsSize, flags, progress); } \
  NS_IMETHOD FsObjCopyArray(PRUint32 sourceSize, const PRUnichar **source, const PRUnichar *destination, PRUint32 flagsSize, FileCopyFlag_T *flags, IProgress * *progress) { return _to FsObjCopyArray(sourceSize, 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 FsQueryFreeSpace(const PRUnichar *path, PRInt64 *freeSpace) { return _to FsQueryFreeSpace(path, freeSpace); } \
  NS_IMETHOD FsQueryInfo(const PRUnichar *path, IGuestFsInfo * *info) { return _to FsQueryInfo(path, info); } \
  NS_IMETHOD ProcessCreate(const PRUnichar *executable, PRUint32 argumentsSize, const PRUnichar **arguments, const PRUnichar *cwd, PRUint32 environmentChangesSize, const PRUnichar **environmentChanges, PRUint32 flagsSize, ProcessCreateFlag_T *flags, PRUint32 timeoutMS, IGuestProcess * *guestProcess) { return _to ProcessCreate(executable, argumentsSize, arguments, cwd, environmentChangesSize, environmentChanges, flagsSize, flags, timeoutMS, guestProcess); } \
  NS_IMETHOD ProcessCreateEx(const PRUnichar *executable, PRUint32 argumentsSize, const PRUnichar **arguments, const PRUnichar *cwd, PRUint32 environmentChangesSize, const PRUnichar **environmentChanges, PRUint32 flagsSize, ProcessCreateFlag_T *flags, PRUint32 timeoutMS, ProcessPriority_T priority, PRUint32 affinitySize, PRInt32 *affinity, IGuestProcess * *guestProcess) { return _to ProcessCreateEx(executable, argumentsSize, arguments, cwd, 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, SymlinkType_T 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, SymlinkReadFlag_T *flags, PRUnichar **target) { return _to SymlinkRead(symlink, flagsSize, flags, target); } \
  NS_IMETHOD WaitFor(PRUint32 waitFor, PRUint32 timeoutMS, GuestSessionWaitResult_T *reason) { return _to WaitFor(waitFor, timeoutMS, reason); } \
  NS_IMETHOD WaitForArray(PRUint32 waitForSize, GuestSessionWaitForFlag_T *waitFor, PRUint32 timeoutMS, GuestSessionWaitResult_T *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(GuestSessionStatus_T *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(PathStyle_T *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 GetUserHome(PRUnichar **aUserHome) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUserHome(aUserHome); } \
  NS_IMETHOD GetUserDocuments(PRUnichar **aUserDocuments) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUserDocuments(aUserDocuments); } \
  NS_IMETHOD GetMountPoints(PRUint32 *mountPointsSize, PRUnichar ***mountPoints) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMountPoints(mountPointsSize, mountPoints); } \
  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 GetInternalAndReservedAttribute9IGuestSession(PRUint32 *aInternalAndReservedAttribute9IGuestSession) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute9IGuestSession(aInternalAndReservedAttribute9IGuestSession); } \
  NS_IMETHOD GetInternalAndReservedAttribute10IGuestSession(PRUint32 *aInternalAndReservedAttribute10IGuestSession) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute10IGuestSession(aInternalAndReservedAttribute10IGuestSession); } \
  NS_IMETHOD GetInternalAndReservedAttribute11IGuestSession(PRUint32 *aInternalAndReservedAttribute11IGuestSession) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute11IGuestSession(aInternalAndReservedAttribute11IGuestSession); } \
  NS_IMETHOD GetInternalAndReservedAttribute12IGuestSession(PRUint32 *aInternalAndReservedAttribute12IGuestSession) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute12IGuestSession(aInternalAndReservedAttribute12IGuestSession); } \
  NS_IMETHOD Close(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Close(); } \
  NS_IMETHOD CopyFromGuest(PRUint32 sourcesSize, const PRUnichar **sources, PRUint32 filtersSize, const PRUnichar **filters, PRUint32 flagsSize, const PRUnichar **flags, const PRUnichar *destination, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->CopyFromGuest(sourcesSize, sources, filtersSize, filters, flagsSize, flags, destination, progress); } \
  NS_IMETHOD CopyToGuest(PRUint32 sourcesSize, const PRUnichar **sources, PRUint32 filtersSize, const PRUnichar **filters, PRUint32 flagsSize, const PRUnichar **flags, const PRUnichar *destination, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->CopyToGuest(sourcesSize, sources, filtersSize, filters, flagsSize, flags, destination, progress); } \
  NS_IMETHOD DirectoryCopy(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, DirectoryCopyFlag_T *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, DirectoryCopyFlag_T *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, DirectoryCopyFlag_T *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, DirectoryCreateFlag_T *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, DirectoryOpenFlag_T *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, DirectoryRemoveRecFlag_T *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, FileCopyFlag_T *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, FileCopyFlag_T *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, FileCopyFlag_T *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, FileAccessMode_T accessMode, FileOpenAction_T openAction, PRUint32 creationMode, IGuestFile * *file) { return !_to ? NS_ERROR_NULL_POINTER : _to->FileOpen(path, accessMode, openAction, creationMode, file); } \
  NS_IMETHOD FileOpenEx(const PRUnichar *path, FileAccessMode_T accessMode, FileOpenAction_T openAction, FileSharingMode_T sharingMode, PRUint32 creationMode, PRUint32 flagsSize, FileOpenExFlag_T *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 FsObjRemoveArray(PRUint32 pathSize, const PRUnichar **path, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->FsObjRemoveArray(pathSize, path, progress); } \
  NS_IMETHOD FsObjRename(const PRUnichar *oldPath, const PRUnichar *newPath, PRUint32 flagsSize, FsObjRenameFlag_T *flags) { return !_to ? NS_ERROR_NULL_POINTER : _to->FsObjRename(oldPath, newPath, flagsSize, flags); } \
  NS_IMETHOD FsObjMove(const PRUnichar *source, const PRUnichar *destination, PRUint32 flagsSize, FsObjMoveFlag_T *flags, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->FsObjMove(source, destination, flagsSize, flags, progress); } \
  NS_IMETHOD FsObjMoveArray(PRUint32 sourceSize, const PRUnichar **source, const PRUnichar *destination, PRUint32 flagsSize, FsObjMoveFlag_T *flags, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->FsObjMoveArray(sourceSize, source, destination, flagsSize, flags, progress); } \
  NS_IMETHOD FsObjCopyArray(PRUint32 sourceSize, const PRUnichar **source, const PRUnichar *destination, PRUint32 flagsSize, FileCopyFlag_T *flags, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->FsObjCopyArray(sourceSize, 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 FsQueryFreeSpace(const PRUnichar *path, PRInt64 *freeSpace) { return !_to ? NS_ERROR_NULL_POINTER : _to->FsQueryFreeSpace(path, freeSpace); } \
  NS_IMETHOD FsQueryInfo(const PRUnichar *path, IGuestFsInfo * *info) { return !_to ? NS_ERROR_NULL_POINTER : _to->FsQueryInfo(path, info); } \
  NS_IMETHOD ProcessCreate(const PRUnichar *executable, PRUint32 argumentsSize, const PRUnichar **arguments, const PRUnichar *cwd, PRUint32 environmentChangesSize, const PRUnichar **environmentChanges, PRUint32 flagsSize, ProcessCreateFlag_T *flags, PRUint32 timeoutMS, IGuestProcess * *guestProcess) { return !_to ? NS_ERROR_NULL_POINTER : _to->ProcessCreate(executable, argumentsSize, arguments, cwd, environmentChangesSize, environmentChanges, flagsSize, flags, timeoutMS, guestProcess); } \
  NS_IMETHOD ProcessCreateEx(const PRUnichar *executable, PRUint32 argumentsSize, const PRUnichar **arguments, const PRUnichar *cwd, PRUint32 environmentChangesSize, const PRUnichar **environmentChanges, PRUint32 flagsSize, ProcessCreateFlag_T *flags, PRUint32 timeoutMS, ProcessPriority_T priority, PRUint32 affinitySize, PRInt32 *affinity, IGuestProcess * *guestProcess) { return !_to ? NS_ERROR_NULL_POINTER : _to->ProcessCreateEx(executable, argumentsSize, arguments, cwd, 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, SymlinkType_T 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, SymlinkReadFlag_T *flags, PRUnichar **target) { return !_to ? NS_ERROR_NULL_POINTER : _to->SymlinkRead(symlink, flagsSize, flags, target); } \
  NS_IMETHOD WaitFor(PRUint32 waitFor, PRUint32 timeoutMS, GuestSessionWaitResult_T *reason) { return !_to ? NS_ERROR_NULL_POINTER : _to->WaitFor(waitFor, timeoutMS, reason); } \
  NS_IMETHOD WaitForArray(PRUint32 waitForSize, GuestSessionWaitForFlag_T *waitFor, PRUint32 timeoutMS, GuestSessionWaitResult_T *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(); } 

#define COM_FORWARD_IGuestSession_GETTER_User_TO(smth) NS_IMETHOD GetUser (PRUnichar * * aUser) { return smth GetUser (aUser); }
#define COM_FORWARD_IGuestSession_GETTER_User_TO_OBJ(obj) COM_FORWARD_IGuestSession_GETTER_User_TO ((obj)->)
#define COM_FORWARD_IGuestSession_GETTER_User_TO_BASE(base) COM_FORWARD_IGuestSession_GETTER_User_TO (base::)
#define COM_FORWARD_IGuestSession_GETTER_Domain_TO(smth) NS_IMETHOD GetDomain (PRUnichar * * aDomain) { return smth GetDomain (aDomain); }
#define COM_FORWARD_IGuestSession_GETTER_Domain_TO_OBJ(obj) COM_FORWARD_IGuestSession_GETTER_Domain_TO ((obj)->)
#define COM_FORWARD_IGuestSession_GETTER_Domain_TO_BASE(base) COM_FORWARD_IGuestSession_GETTER_Domain_TO (base::)
#define COM_FORWARD_IGuestSession_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_IGuestSession_GETTER_Name_TO_OBJ(obj) COM_FORWARD_IGuestSession_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_IGuestSession_GETTER_Name_TO_BASE(base) COM_FORWARD_IGuestSession_GETTER_Name_TO (base::)
#define COM_FORWARD_IGuestSession_GETTER_Id_TO(smth) NS_IMETHOD GetId (PRUint32 * aId) { return smth GetId (aId); }
#define COM_FORWARD_IGuestSession_GETTER_Id_TO_OBJ(obj) COM_FORWARD_IGuestSession_GETTER_Id_TO ((obj)->)
#define COM_FORWARD_IGuestSession_GETTER_Id_TO_BASE(base) COM_FORWARD_IGuestSession_GETTER_Id_TO (base::)
#define COM_FORWARD_IGuestSession_GETTER_Timeout_TO(smth) NS_IMETHOD GetTimeout (PRUint32 * aTimeout) { return smth GetTimeout (aTimeout); }
#define COM_FORWARD_IGuestSession_GETTER_Timeout_TO_OBJ(obj) COM_FORWARD_IGuestSession_GETTER_Timeout_TO ((obj)->)
#define COM_FORWARD_IGuestSession_GETTER_Timeout_TO_BASE(base) COM_FORWARD_IGuestSession_GETTER_Timeout_TO (base::)
#define COM_FORWARD_IGuestSession_SETTER_Timeout_TO(smth) NS_IMETHOD SetTimeout (PRUint32 aTimeout) { return smth SetTimeout (aTimeout); }
#define COM_FORWARD_IGuestSession_SETTER_Timeout_TO_OBJ(obj) COM_FORWARD_IGuestSession_SETTER_Timeout_TO ((obj)->)
#define COM_FORWARD_IGuestSession_SETTER_Timeout_TO_BASE(base) COM_FORWARD_IGuestSession_SETTER_Timeout_TO (base::)
#define COM_FORWARD_IGuestSession_GETTER_ProtocolVersion_TO(smth) NS_IMETHOD GetProtocolVersion (PRUint32 * aProtocolVersion) { return smth GetProtocolVersion (aProtocolVersion); }
#define COM_FORWARD_IGuestSession_GETTER_ProtocolVersion_TO_OBJ(obj) COM_FORWARD_IGuestSession_GETTER_ProtocolVersion_TO ((obj)->)
#define COM_FORWARD_IGuestSession_GETTER_ProtocolVersion_TO_BASE(base) COM_FORWARD_IGuestSession_GETTER_ProtocolVersion_TO (base::)
#define COM_FORWARD_IGuestSession_GETTER_Status_TO(smth) NS_IMETHOD GetStatus (PRUint32 * aStatus) { return smth GetStatus (aStatus); }
#define COM_FORWARD_IGuestSession_GETTER_Status_TO_OBJ(obj) COM_FORWARD_IGuestSession_GETTER_Status_TO ((obj)->)
#define COM_FORWARD_IGuestSession_GETTER_Status_TO_BASE(base) COM_FORWARD_IGuestSession_GETTER_Status_TO (base::)
#define COM_FORWARD_IGuestSession_GETTER_EnvironmentChanges_TO(smth) NS_IMETHOD GetEnvironmentChanges (PRUint32 * aEnvironmentChangesSize, PRUnichar * * * aEnvironmentChanges) { return smth GetEnvironmentChanges (aEnvironmentChangesSize, aEnvironmentChanges); }
#define COM_FORWARD_IGuestSession_GETTER_EnvironmentChanges_TO_OBJ(obj) COM_FORWARD_IGuestSession_GETTER_EnvironmentChanges_TO ((obj)->)
#define COM_FORWARD_IGuestSession_GETTER_EnvironmentChanges_TO_BASE(base) COM_FORWARD_IGuestSession_GETTER_EnvironmentChanges_TO (base::)
#define COM_FORWARD_IGuestSession_SETTER_EnvironmentChanges_TO(smth) NS_IMETHOD SetEnvironmentChanges (PRUint32 aEnvironmentChangesSize, PRUnichar * * aEnvironmentChanges) { return smth SetEnvironmentChanges (aEnvironmentChanges); }
#define COM_FORWARD_IGuestSession_SETTER_EnvironmentChanges_TO_OBJ(obj) COM_FORWARD_IGuestSession_SETTER_EnvironmentChanges_TO ((obj)->)
#define COM_FORWARD_IGuestSession_SETTER_EnvironmentChanges_TO_BASE(base) COM_FORWARD_IGuestSession_SETTER_EnvironmentChanges_TO (base::)
#define COM_FORWARD_IGuestSession_GETTER_EnvironmentBase_TO(smth) NS_IMETHOD GetEnvironmentBase (PRUint32 * aEnvironmentBaseSize, PRUnichar * * * aEnvironmentBase) { return smth GetEnvironmentBase (aEnvironmentBaseSize, aEnvironmentBase); }
#define COM_FORWARD_IGuestSession_GETTER_EnvironmentBase_TO_OBJ(obj) COM_FORWARD_IGuestSession_GETTER_EnvironmentBase_TO ((obj)->)
#define COM_FORWARD_IGuestSession_GETTER_EnvironmentBase_TO_BASE(base) COM_FORWARD_IGuestSession_GETTER_EnvironmentBase_TO (base::)
#define COM_FORWARD_IGuestSession_GETTER_Processes_TO(smth) NS_IMETHOD GetProcesses (PRUint32 * aProcessesSize, IGuestProcess * * * aProcesses) { return smth GetProcesses (aProcessesSize, aProcesses); }
#define COM_FORWARD_IGuestSession_GETTER_Processes_TO_OBJ(obj) COM_FORWARD_IGuestSession_GETTER_Processes_TO ((obj)->)
#define COM_FORWARD_IGuestSession_GETTER_Processes_TO_BASE(base) COM_FORWARD_IGuestSession_GETTER_Processes_TO (base::)
#define COM_FORWARD_IGuestSession_GETTER_PathStyle_TO(smth) NS_IMETHOD GetPathStyle (PRUint32 * aPathStyle) { return smth GetPathStyle (aPathStyle); }
#define COM_FORWARD_IGuestSession_GETTER_PathStyle_TO_OBJ(obj) COM_FORWARD_IGuestSession_GETTER_PathStyle_TO ((obj)->)
#define COM_FORWARD_IGuestSession_GETTER_PathStyle_TO_BASE(base) COM_FORWARD_IGuestSession_GETTER_PathStyle_TO (base::)
#define COM_FORWARD_IGuestSession_GETTER_CurrentDirectory_TO(smth) NS_IMETHOD GetCurrentDirectory (PRUnichar * * aCurrentDirectory) { return smth GetCurrentDirectory (aCurrentDirectory); }
#define COM_FORWARD_IGuestSession_GETTER_CurrentDirectory_TO_OBJ(obj) COM_FORWARD_IGuestSession_GETTER_CurrentDirectory_TO ((obj)->)
#define COM_FORWARD_IGuestSession_GETTER_CurrentDirectory_TO_BASE(base) COM_FORWARD_IGuestSession_GETTER_CurrentDirectory_TO (base::)
#define COM_FORWARD_IGuestSession_SETTER_CurrentDirectory_TO(smth) NS_IMETHOD SetCurrentDirectory (const PRUnichar * aCurrentDirectory) { return smth SetCurrentDirectory (aCurrentDirectory); }
#define COM_FORWARD_IGuestSession_SETTER_CurrentDirectory_TO_OBJ(obj) COM_FORWARD_IGuestSession_SETTER_CurrentDirectory_TO ((obj)->)
#define COM_FORWARD_IGuestSession_SETTER_CurrentDirectory_TO_BASE(base) COM_FORWARD_IGuestSession_SETTER_CurrentDirectory_TO (base::)
#define COM_FORWARD_IGuestSession_GETTER_UserHome_TO(smth) NS_IMETHOD GetUserHome (PRUnichar * * aUserHome) { return smth GetUserHome (aUserHome); }
#define COM_FORWARD_IGuestSession_GETTER_UserHome_TO_OBJ(obj) COM_FORWARD_IGuestSession_GETTER_UserHome_TO ((obj)->)
#define COM_FORWARD_IGuestSession_GETTER_UserHome_TO_BASE(base) COM_FORWARD_IGuestSession_GETTER_UserHome_TO (base::)
#define COM_FORWARD_IGuestSession_GETTER_UserDocuments_TO(smth) NS_IMETHOD GetUserDocuments (PRUnichar * * aUserDocuments) { return smth GetUserDocuments (aUserDocuments); }
#define COM_FORWARD_IGuestSession_GETTER_UserDocuments_TO_OBJ(obj) COM_FORWARD_IGuestSession_GETTER_UserDocuments_TO ((obj)->)
#define COM_FORWARD_IGuestSession_GETTER_UserDocuments_TO_BASE(base) COM_FORWARD_IGuestSession_GETTER_UserDocuments_TO (base::)
#define COM_FORWARD_IGuestSession_GETTER_MountPoints_TO(smth) NS_IMETHOD GetMountPoints (PRUint32 * aMountPointsSize, PRUnichar * * * aMountPoints) { return smth GetMountPoints (aMountPointsSize, aMountPoints); }
#define COM_FORWARD_IGuestSession_GETTER_MountPoints_TO_OBJ(obj) COM_FORWARD_IGuestSession_GETTER_MountPoints_TO ((obj)->)
#define COM_FORWARD_IGuestSession_GETTER_MountPoints_TO_BASE(base) COM_FORWARD_IGuestSession_GETTER_MountPoints_TO (base::)
#define COM_FORWARD_IGuestSession_GETTER_Directories_TO(smth) NS_IMETHOD GetDirectories (PRUint32 * aDirectoriesSize, IGuestDirectory * * * aDirectories) { return smth GetDirectories (aDirectoriesSize, aDirectories); }
#define COM_FORWARD_IGuestSession_GETTER_Directories_TO_OBJ(obj) COM_FORWARD_IGuestSession_GETTER_Directories_TO ((obj)->)
#define COM_FORWARD_IGuestSession_GETTER_Directories_TO_BASE(base) COM_FORWARD_IGuestSession_GETTER_Directories_TO (base::)
#define COM_FORWARD_IGuestSession_GETTER_Files_TO(smth) NS_IMETHOD GetFiles (PRUint32 * aFilesSize, IGuestFile * * * aFiles) { return smth GetFiles (aFilesSize, aFiles); }
#define COM_FORWARD_IGuestSession_GETTER_Files_TO_OBJ(obj) COM_FORWARD_IGuestSession_GETTER_Files_TO ((obj)->)
#define COM_FORWARD_IGuestSession_GETTER_Files_TO_BASE(base) COM_FORWARD_IGuestSession_GETTER_Files_TO (base::)
#define COM_FORWARD_IGuestSession_GETTER_EventSource_TO(smth) NS_IMETHOD GetEventSource (IEventSource * * aEventSource) { return smth GetEventSource (aEventSource); }
#define COM_FORWARD_IGuestSession_GETTER_EventSource_TO_OBJ(obj) COM_FORWARD_IGuestSession_GETTER_EventSource_TO ((obj)->)
#define COM_FORWARD_IGuestSession_GETTER_EventSource_TO_BASE(base) COM_FORWARD_IGuestSession_GETTER_EventSource_TO (base::)
#define COM_FORWARD_IGuestSession_Close_TO(smth) NS_IMETHOD Close() { return smth Close(); }
#define COM_FORWARD_IGuestSession_Close_TO_OBJ(obj) COM_FORWARD_IGuestSession_Close_TO ((obj)->)
#define COM_FORWARD_IGuestSession_Close_TO_BASE(base) COM_FORWARD_IGuestSession_Close_TO (base::)
#define COM_FORWARD_IGuestSession_CopyFromGuest_TO(smth) NS_IMETHOD CopyFromGuest (PRUint32 aSourcesSize, PRUnichar * * aSources, PRUint32 aFiltersSize, PRUnichar * * aFilters, PRUint32 aFlagsSize, PRUnichar * * aFlags, PRUnichar * aDestination, IProgress * * aProgress) { return smth CopyFromGuest (aSourcesSize+++, aSources, aFiltersSize+++, aFilters, aFlagsSize+++, aFlags, aDestination, aProgress); }
#define COM_FORWARD_IGuestSession_CopyFromGuest_TO_OBJ(obj) COM_FORWARD_IGuestSession_CopyFromGuest_TO ((obj)->)
#define COM_FORWARD_IGuestSession_CopyFromGuest_TO_BASE(base) COM_FORWARD_IGuestSession_CopyFromGuest_TO (base::)
#define COM_FORWARD_IGuestSession_CopyToGuest_TO(smth) NS_IMETHOD CopyToGuest (PRUint32 aSourcesSize, PRUnichar * * aSources, PRUint32 aFiltersSize, PRUnichar * * aFilters, PRUint32 aFlagsSize, PRUnichar * * aFlags, PRUnichar * aDestination, IProgress * * aProgress) { return smth CopyToGuest (aSourcesSize+++, aSources, aFiltersSize+++, aFilters, aFlagsSize+++, aFlags, aDestination, aProgress); }
#define COM_FORWARD_IGuestSession_CopyToGuest_TO_OBJ(obj) COM_FORWARD_IGuestSession_CopyToGuest_TO ((obj)->)
#define COM_FORWARD_IGuestSession_CopyToGuest_TO_BASE(base) COM_FORWARD_IGuestSession_CopyToGuest_TO (base::)
#define COM_FORWARD_IGuestSession_DirectoryCopy_TO(smth) NS_IMETHOD DirectoryCopy (PRUnichar * aSource, PRUnichar * aDestination, PRUint32 aFlagsSize, PRUint32 * aFlags, IProgress * * aProgress) { return smth DirectoryCopy (aSource, aDestination, aFlagsSize+++, aFlags, aProgress); }
#define COM_FORWARD_IGuestSession_DirectoryCopy_TO_OBJ(obj) COM_FORWARD_IGuestSession_DirectoryCopy_TO ((obj)->)
#define COM_FORWARD_IGuestSession_DirectoryCopy_TO_BASE(base) COM_FORWARD_IGuestSession_DirectoryCopy_TO (base::)
#define COM_FORWARD_IGuestSession_DirectoryCopyFromGuest_TO(smth) NS_IMETHOD DirectoryCopyFromGuest (PRUnichar * aSource, PRUnichar * aDestination, PRUint32 aFlagsSize, PRUint32 * aFlags, IProgress * * aProgress) { return smth DirectoryCopyFromGuest (aSource, aDestination, aFlagsSize+++, aFlags, aProgress); }
#define COM_FORWARD_IGuestSession_DirectoryCopyFromGuest_TO_OBJ(obj) COM_FORWARD_IGuestSession_DirectoryCopyFromGuest_TO ((obj)->)
#define COM_FORWARD_IGuestSession_DirectoryCopyFromGuest_TO_BASE(base) COM_FORWARD_IGuestSession_DirectoryCopyFromGuest_TO (base::)
#define COM_FORWARD_IGuestSession_DirectoryCopyToGuest_TO(smth) NS_IMETHOD DirectoryCopyToGuest (PRUnichar * aSource, PRUnichar * aDestination, PRUint32 aFlagsSize, PRUint32 * aFlags, IProgress * * aProgress) { return smth DirectoryCopyToGuest (aSource, aDestination, aFlagsSize+++, aFlags, aProgress); }
#define COM_FORWARD_IGuestSession_DirectoryCopyToGuest_TO_OBJ(obj) COM_FORWARD_IGuestSession_DirectoryCopyToGuest_TO ((obj)->)
#define COM_FORWARD_IGuestSession_DirectoryCopyToGuest_TO_BASE(base) COM_FORWARD_IGuestSession_DirectoryCopyToGuest_TO (base::)
#define COM_FORWARD_IGuestSession_DirectoryCreate_TO(smth) NS_IMETHOD DirectoryCreate (PRUnichar * aPath, PRUint32 aMode, PRUint32 aFlagsSize, PRUint32 * aFlags) { return smth DirectoryCreate (aPath, aMode, aFlagsSize, aFlags); }
#define COM_FORWARD_IGuestSession_DirectoryCreate_TO_OBJ(obj) COM_FORWARD_IGuestSession_DirectoryCreate_TO ((obj)->)
#define COM_FORWARD_IGuestSession_DirectoryCreate_TO_BASE(base) COM_FORWARD_IGuestSession_DirectoryCreate_TO (base::)
#define COM_FORWARD_IGuestSession_DirectoryCreateTemp_TO(smth) NS_IMETHOD DirectoryCreateTemp (PRUnichar * aTemplateName, PRUint32 aMode, PRUnichar * aPath, PRBool aSecure, PRUnichar * * aDirectory) { return smth DirectoryCreateTemp (aTemplateName, aMode, aPath, aSecure, aDirectory); }
#define COM_FORWARD_IGuestSession_DirectoryCreateTemp_TO_OBJ(obj) COM_FORWARD_IGuestSession_DirectoryCreateTemp_TO ((obj)->)
#define COM_FORWARD_IGuestSession_DirectoryCreateTemp_TO_BASE(base) COM_FORWARD_IGuestSession_DirectoryCreateTemp_TO (base::)
#define COM_FORWARD_IGuestSession_DirectoryExists_TO(smth) NS_IMETHOD DirectoryExists (PRUnichar * aPath, PRBool aFollowSymlinks, PRBool * aExists) { return smth DirectoryExists (aPath, aFollowSymlinks, aExists); }
#define COM_FORWARD_IGuestSession_DirectoryExists_TO_OBJ(obj) COM_FORWARD_IGuestSession_DirectoryExists_TO ((obj)->)
#define COM_FORWARD_IGuestSession_DirectoryExists_TO_BASE(base) COM_FORWARD_IGuestSession_DirectoryExists_TO (base::)
#define COM_FORWARD_IGuestSession_DirectoryOpen_TO(smth) NS_IMETHOD DirectoryOpen (PRUnichar * aPath, PRUnichar * aFilter, PRUint32 aFlagsSize, PRUint32 * aFlags, IGuestDirectory * * aDirectory) { return smth DirectoryOpen (aPath, aFilter, aFlagsSize+++, aFlags, aDirectory); }
#define COM_FORWARD_IGuestSession_DirectoryOpen_TO_OBJ(obj) COM_FORWARD_IGuestSession_DirectoryOpen_TO ((obj)->)
#define COM_FORWARD_IGuestSession_DirectoryOpen_TO_BASE(base) COM_FORWARD_IGuestSession_DirectoryOpen_TO (base::)
#define COM_FORWARD_IGuestSession_DirectoryRemove_TO(smth) NS_IMETHOD DirectoryRemove (PRUnichar * aPath) { return smth DirectoryRemove (aPath); }
#define COM_FORWARD_IGuestSession_DirectoryRemove_TO_OBJ(obj) COM_FORWARD_IGuestSession_DirectoryRemove_TO ((obj)->)
#define COM_FORWARD_IGuestSession_DirectoryRemove_TO_BASE(base) COM_FORWARD_IGuestSession_DirectoryRemove_TO (base::)
#define COM_FORWARD_IGuestSession_DirectoryRemoveRecursive_TO(smth) NS_IMETHOD DirectoryRemoveRecursive (PRUnichar * aPath, PRUint32 aFlagsSize, PRUint32 * aFlags, IProgress * * aProgress) { return smth DirectoryRemoveRecursive (aPath, aFlagsSize+++, aFlags, aProgress); }
#define COM_FORWARD_IGuestSession_DirectoryRemoveRecursive_TO_OBJ(obj) COM_FORWARD_IGuestSession_DirectoryRemoveRecursive_TO ((obj)->)
#define COM_FORWARD_IGuestSession_DirectoryRemoveRecursive_TO_BASE(base) COM_FORWARD_IGuestSession_DirectoryRemoveRecursive_TO (base::)
#define COM_FORWARD_IGuestSession_EnvironmentScheduleSet_TO(smth) NS_IMETHOD EnvironmentScheduleSet (PRUnichar * aName, PRUnichar * aValue) { return smth EnvironmentScheduleSet (aName, aValue); }
#define COM_FORWARD_IGuestSession_EnvironmentScheduleSet_TO_OBJ(obj) COM_FORWARD_IGuestSession_EnvironmentScheduleSet_TO ((obj)->)
#define COM_FORWARD_IGuestSession_EnvironmentScheduleSet_TO_BASE(base) COM_FORWARD_IGuestSession_EnvironmentScheduleSet_TO (base::)
#define COM_FORWARD_IGuestSession_EnvironmentScheduleUnset_TO(smth) NS_IMETHOD EnvironmentScheduleUnset (PRUnichar * aName) { return smth EnvironmentScheduleUnset (aName); }
#define COM_FORWARD_IGuestSession_EnvironmentScheduleUnset_TO_OBJ(obj) COM_FORWARD_IGuestSession_EnvironmentScheduleUnset_TO ((obj)->)
#define COM_FORWARD_IGuestSession_EnvironmentScheduleUnset_TO_BASE(base) COM_FORWARD_IGuestSession_EnvironmentScheduleUnset_TO (base::)
#define COM_FORWARD_IGuestSession_EnvironmentGetBaseVariable_TO(smth) NS_IMETHOD EnvironmentGetBaseVariable (PRUnichar * aName, PRUnichar * * aValue) { return smth EnvironmentGetBaseVariable (aName, aValue); }
#define COM_FORWARD_IGuestSession_EnvironmentGetBaseVariable_TO_OBJ(obj) COM_FORWARD_IGuestSession_EnvironmentGetBaseVariable_TO ((obj)->)
#define COM_FORWARD_IGuestSession_EnvironmentGetBaseVariable_TO_BASE(base) COM_FORWARD_IGuestSession_EnvironmentGetBaseVariable_TO (base::)
#define COM_FORWARD_IGuestSession_EnvironmentDoesBaseVariableExist_TO(smth) NS_IMETHOD EnvironmentDoesBaseVariableExist (PRUnichar * aName, PRBool * aExists) { return smth EnvironmentDoesBaseVariableExist (aName, aExists); }
#define COM_FORWARD_IGuestSession_EnvironmentDoesBaseVariableExist_TO_OBJ(obj) COM_FORWARD_IGuestSession_EnvironmentDoesBaseVariableExist_TO ((obj)->)
#define COM_FORWARD_IGuestSession_EnvironmentDoesBaseVariableExist_TO_BASE(base) COM_FORWARD_IGuestSession_EnvironmentDoesBaseVariableExist_TO (base::)
#define COM_FORWARD_IGuestSession_FileCopy_TO(smth) NS_IMETHOD FileCopy (PRUnichar * aSource, PRUnichar * aDestination, PRUint32 aFlagsSize, PRUint32 * aFlags, IProgress * * aProgress) { return smth FileCopy (aSource, aDestination, aFlagsSize+++, aFlags, aProgress); }
#define COM_FORWARD_IGuestSession_FileCopy_TO_OBJ(obj) COM_FORWARD_IGuestSession_FileCopy_TO ((obj)->)
#define COM_FORWARD_IGuestSession_FileCopy_TO_BASE(base) COM_FORWARD_IGuestSession_FileCopy_TO (base::)
#define COM_FORWARD_IGuestSession_FileCopyFromGuest_TO(smth) NS_IMETHOD FileCopyFromGuest (PRUnichar * aSource, PRUnichar * aDestination, PRUint32 aFlagsSize, PRUint32 * aFlags, IProgress * * aProgress) { return smth FileCopyFromGuest (aSource, aDestination, aFlagsSize+++, aFlags, aProgress); }
#define COM_FORWARD_IGuestSession_FileCopyFromGuest_TO_OBJ(obj) COM_FORWARD_IGuestSession_FileCopyFromGuest_TO ((obj)->)
#define COM_FORWARD_IGuestSession_FileCopyFromGuest_TO_BASE(base) COM_FORWARD_IGuestSession_FileCopyFromGuest_TO (base::)
#define COM_FORWARD_IGuestSession_FileCopyToGuest_TO(smth) NS_IMETHOD FileCopyToGuest (PRUnichar * aSource, PRUnichar * aDestination, PRUint32 aFlagsSize, PRUint32 * aFlags, IProgress * * aProgress) { return smth FileCopyToGuest (aSource, aDestination, aFlagsSize+++, aFlags, aProgress); }
#define COM_FORWARD_IGuestSession_FileCopyToGuest_TO_OBJ(obj) COM_FORWARD_IGuestSession_FileCopyToGuest_TO ((obj)->)
#define COM_FORWARD_IGuestSession_FileCopyToGuest_TO_BASE(base) COM_FORWARD_IGuestSession_FileCopyToGuest_TO (base::)
#define COM_FORWARD_IGuestSession_FileCreateTemp_TO(smth) NS_IMETHOD FileCreateTemp (PRUnichar * aTemplateName, PRUint32 aMode, PRUnichar * aPath, PRBool aSecure, IGuestFile * * aFile) { return smth FileCreateTemp (aTemplateName, aMode, aPath, aSecure, aFile); }
#define COM_FORWARD_IGuestSession_FileCreateTemp_TO_OBJ(obj) COM_FORWARD_IGuestSession_FileCreateTemp_TO ((obj)->)
#define COM_FORWARD_IGuestSession_FileCreateTemp_TO_BASE(base) COM_FORWARD_IGuestSession_FileCreateTemp_TO (base::)
#define COM_FORWARD_IGuestSession_FileExists_TO(smth) NS_IMETHOD FileExists (PRUnichar * aPath, PRBool aFollowSymlinks, PRBool * aExists) { return smth FileExists (aPath, aFollowSymlinks, aExists); }
#define COM_FORWARD_IGuestSession_FileExists_TO_OBJ(obj) COM_FORWARD_IGuestSession_FileExists_TO ((obj)->)
#define COM_FORWARD_IGuestSession_FileExists_TO_BASE(base) COM_FORWARD_IGuestSession_FileExists_TO (base::)
#define COM_FORWARD_IGuestSession_FileOpen_TO(smth) NS_IMETHOD FileOpen (PRUnichar * aPath, PRUint32 aAccessMode, PRUint32 aOpenAction, PRUint32 aCreationMode, IGuestFile * * aFile) { return smth FileOpen (aPath, aAccessMode, aOpenAction, aCreationMode, aFile); }
#define COM_FORWARD_IGuestSession_FileOpen_TO_OBJ(obj) COM_FORWARD_IGuestSession_FileOpen_TO ((obj)->)
#define COM_FORWARD_IGuestSession_FileOpen_TO_BASE(base) COM_FORWARD_IGuestSession_FileOpen_TO (base::)
#define COM_FORWARD_IGuestSession_FileOpenEx_TO(smth) NS_IMETHOD FileOpenEx (PRUnichar * aPath, PRUint32 aAccessMode, PRUint32 aOpenAction, PRUint32 aSharingMode, PRUint32 aCreationMode, PRUint32 aFlagsSize, PRUint32 * aFlags, IGuestFile * * aFile) { return smth FileOpenEx (aPath, aAccessMode, aOpenAction, aSharingMode, aCreationMode, aFlagsSize+++, aFlags, aFile); }
#define COM_FORWARD_IGuestSession_FileOpenEx_TO_OBJ(obj) COM_FORWARD_IGuestSession_FileOpenEx_TO ((obj)->)
#define COM_FORWARD_IGuestSession_FileOpenEx_TO_BASE(base) COM_FORWARD_IGuestSession_FileOpenEx_TO (base::)
#define COM_FORWARD_IGuestSession_FileQuerySize_TO(smth) NS_IMETHOD FileQuerySize (PRUnichar * aPath, PRBool aFollowSymlinks, PRInt64 * aSize) { return smth FileQuerySize (aPath, aFollowSymlinks, aSize); }
#define COM_FORWARD_IGuestSession_FileQuerySize_TO_OBJ(obj) COM_FORWARD_IGuestSession_FileQuerySize_TO ((obj)->)
#define COM_FORWARD_IGuestSession_FileQuerySize_TO_BASE(base) COM_FORWARD_IGuestSession_FileQuerySize_TO (base::)
#define COM_FORWARD_IGuestSession_FsObjExists_TO(smth) NS_IMETHOD FsObjExists (PRUnichar * aPath, PRBool aFollowSymlinks, PRBool * aExists) { return smth FsObjExists (aPath, aFollowSymlinks, aExists); }
#define COM_FORWARD_IGuestSession_FsObjExists_TO_OBJ(obj) COM_FORWARD_IGuestSession_FsObjExists_TO ((obj)->)
#define COM_FORWARD_IGuestSession_FsObjExists_TO_BASE(base) COM_FORWARD_IGuestSession_FsObjExists_TO (base::)
#define COM_FORWARD_IGuestSession_FsObjQueryInfo_TO(smth) NS_IMETHOD FsObjQueryInfo (PRUnichar * aPath, PRBool aFollowSymlinks, IGuestFsObjInfo * * aInfo) { return smth FsObjQueryInfo (aPath, aFollowSymlinks, aInfo); }
#define COM_FORWARD_IGuestSession_FsObjQueryInfo_TO_OBJ(obj) COM_FORWARD_IGuestSession_FsObjQueryInfo_TO ((obj)->)
#define COM_FORWARD_IGuestSession_FsObjQueryInfo_TO_BASE(base) COM_FORWARD_IGuestSession_FsObjQueryInfo_TO (base::)
#define COM_FORWARD_IGuestSession_FsObjRemove_TO(smth) NS_IMETHOD FsObjRemove (PRUnichar * aPath) { return smth FsObjRemove (aPath); }
#define COM_FORWARD_IGuestSession_FsObjRemove_TO_OBJ(obj) COM_FORWARD_IGuestSession_FsObjRemove_TO ((obj)->)
#define COM_FORWARD_IGuestSession_FsObjRemove_TO_BASE(base) COM_FORWARD_IGuestSession_FsObjRemove_TO (base::)
#define COM_FORWARD_IGuestSession_FsObjRemoveArray_TO(smth) NS_IMETHOD FsObjRemoveArray (PRUint32 aPathSize, PRUnichar * * aPath, IProgress * * aProgress) { return smth FsObjRemoveArray (aPathSize+++, aPath, aProgress); }
#define COM_FORWARD_IGuestSession_FsObjRemoveArray_TO_OBJ(obj) COM_FORWARD_IGuestSession_FsObjRemoveArray_TO ((obj)->)
#define COM_FORWARD_IGuestSession_FsObjRemoveArray_TO_BASE(base) COM_FORWARD_IGuestSession_FsObjRemoveArray_TO (base::)
#define COM_FORWARD_IGuestSession_FsObjRename_TO(smth) NS_IMETHOD FsObjRename (PRUnichar * aOldPath, PRUnichar * aNewPath, PRUint32 aFlagsSize, PRUint32 * aFlags) { return smth FsObjRename (aOldPath, aNewPath, aFlagsSize, aFlags); }
#define COM_FORWARD_IGuestSession_FsObjRename_TO_OBJ(obj) COM_FORWARD_IGuestSession_FsObjRename_TO ((obj)->)
#define COM_FORWARD_IGuestSession_FsObjRename_TO_BASE(base) COM_FORWARD_IGuestSession_FsObjRename_TO (base::)
#define COM_FORWARD_IGuestSession_FsObjMove_TO(smth) NS_IMETHOD FsObjMove (PRUnichar * aSource, PRUnichar * aDestination, PRUint32 aFlagsSize, PRUint32 * aFlags, IProgress * * aProgress) { return smth FsObjMove (aSource, aDestination, aFlagsSize+++, aFlags, aProgress); }
#define COM_FORWARD_IGuestSession_FsObjMove_TO_OBJ(obj) COM_FORWARD_IGuestSession_FsObjMove_TO ((obj)->)
#define COM_FORWARD_IGuestSession_FsObjMove_TO_BASE(base) COM_FORWARD_IGuestSession_FsObjMove_TO (base::)
#define COM_FORWARD_IGuestSession_FsObjMoveArray_TO(smth) NS_IMETHOD FsObjMoveArray (PRUint32 aSourceSize, PRUnichar * * aSource, PRUnichar * aDestination, PRUint32 aFlagsSize, PRUint32 * aFlags, IProgress * * aProgress) { return smth FsObjMoveArray (aSourceSize+++, aSource, aDestination, aFlagsSize+++, aFlags, aProgress); }
#define COM_FORWARD_IGuestSession_FsObjMoveArray_TO_OBJ(obj) COM_FORWARD_IGuestSession_FsObjMoveArray_TO ((obj)->)
#define COM_FORWARD_IGuestSession_FsObjMoveArray_TO_BASE(base) COM_FORWARD_IGuestSession_FsObjMoveArray_TO (base::)
#define COM_FORWARD_IGuestSession_FsObjCopyArray_TO(smth) NS_IMETHOD FsObjCopyArray (PRUint32 aSourceSize, PRUnichar * * aSource, PRUnichar * aDestination, PRUint32 aFlagsSize, PRUint32 * aFlags, IProgress * * aProgress) { return smth FsObjCopyArray (aSourceSize+++, aSource, aDestination, aFlagsSize+++, aFlags, aProgress); }
#define COM_FORWARD_IGuestSession_FsObjCopyArray_TO_OBJ(obj) COM_FORWARD_IGuestSession_FsObjCopyArray_TO ((obj)->)
#define COM_FORWARD_IGuestSession_FsObjCopyArray_TO_BASE(base) COM_FORWARD_IGuestSession_FsObjCopyArray_TO (base::)
#define COM_FORWARD_IGuestSession_FsObjSetACL_TO(smth) NS_IMETHOD FsObjSetACL (PRUnichar * aPath, PRBool aFollowSymlinks, PRUnichar * aAcl, PRUint32 aMode) { return smth FsObjSetACL (aPath, aFollowSymlinks, aAcl, aMode); }
#define COM_FORWARD_IGuestSession_FsObjSetACL_TO_OBJ(obj) COM_FORWARD_IGuestSession_FsObjSetACL_TO ((obj)->)
#define COM_FORWARD_IGuestSession_FsObjSetACL_TO_BASE(base) COM_FORWARD_IGuestSession_FsObjSetACL_TO (base::)
#define COM_FORWARD_IGuestSession_FsQueryFreeSpace_TO(smth) NS_IMETHOD FsQueryFreeSpace (PRUnichar * aPath, PRInt64 * aFreeSpace) { return smth FsQueryFreeSpace (aPath, aFreeSpace); }
#define COM_FORWARD_IGuestSession_FsQueryFreeSpace_TO_OBJ(obj) COM_FORWARD_IGuestSession_FsQueryFreeSpace_TO ((obj)->)
#define COM_FORWARD_IGuestSession_FsQueryFreeSpace_TO_BASE(base) COM_FORWARD_IGuestSession_FsQueryFreeSpace_TO (base::)
#define COM_FORWARD_IGuestSession_FsQueryInfo_TO(smth) NS_IMETHOD FsQueryInfo (PRUnichar * aPath, IGuestFsInfo * * aInfo) { return smth FsQueryInfo (aPath, aInfo); }
#define COM_FORWARD_IGuestSession_FsQueryInfo_TO_OBJ(obj) COM_FORWARD_IGuestSession_FsQueryInfo_TO ((obj)->)
#define COM_FORWARD_IGuestSession_FsQueryInfo_TO_BASE(base) COM_FORWARD_IGuestSession_FsQueryInfo_TO (base::)
#define COM_FORWARD_IGuestSession_ProcessCreate_TO(smth) NS_IMETHOD ProcessCreate (PRUnichar * aExecutable, PRUint32 aArgumentsSize, PRUnichar * * aArguments, PRUnichar * aCwd, PRUint32 aEnvironmentChangesSize, PRUnichar * * aEnvironmentChanges, PRUint32 aFlagsSize, PRUint32 * aFlags, PRUint32 aTimeoutMS, IGuestProcess * * aGuestProcess) { return smth ProcessCreate (aExecutable, aArgumentsSize+++, aArguments, aCwd, 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, PRUnichar * aCwd, PRUint32 aEnvironmentChangesSize, PRUnichar * * aEnvironmentChanges, PRUint32 aFlagsSize, PRUint32 * aFlags, PRUint32 aTimeoutMS, PRUint32 aPriority, PRUint32 aAffinitySize, PRInt32 * aAffinity, IGuestProcess * * aGuestProcess) { return smth ProcessCreateEx (aExecutable, aArgumentsSize+++, aArguments, aCwd, 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 "bc68370c-8a02-45f3-a07d-a67aa72756aa"

#define IPROCESS_IID \
  {0xbc68370c, 0x8a02, 0x45f3, \
    { 0xa0, 0x7d, 0xa6, 0x7a, 0xa7, 0x27, 0x56, 0xaa }}

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 ProcessStatus_T status; */
  NS_IMETHOD GetStatus(ProcessStatus_T *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;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IProcess; */
  NS_IMETHOD GetInternalAndReservedAttribute5IProcess(PRUint32 *aInternalAndReservedAttribute5IProcess) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IProcess; */
  NS_IMETHOD GetInternalAndReservedAttribute6IProcess(PRUint32 *aInternalAndReservedAttribute6IProcess) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IProcess; */
  NS_IMETHOD GetInternalAndReservedAttribute7IProcess(PRUint32 *aInternalAndReservedAttribute7IProcess) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IProcess; */
  NS_IMETHOD GetInternalAndReservedAttribute8IProcess(PRUint32 *aInternalAndReservedAttribute8IProcess) = 0;

  /* void waitFor (in unsigned long waitFor, in unsigned long timeoutMS, [retval] out ProcessWaitResult_T reason); */
  NS_IMETHOD WaitFor(PRUint32 waitFor, PRUint32 timeoutMS, ProcessWaitResult_T *reason) = 0;

  /* void waitForArray (in unsigned long waitForSize, [array, size_is (waitForSize)] in ProcessWaitForFlag_T waitFor, in unsigned long timeoutMS, [retval] out ProcessWaitResult_T reason); */
  NS_IMETHOD WaitForArray(PRUint32 waitForSize, ProcessWaitForFlag_T *waitFor, PRUint32 timeoutMS, ProcessWaitResult_T *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 ProcessInputFlag_T 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, ProcessInputFlag_T *flags, PRUint32 dataSize, PRUint8 *data, PRUint32 timeoutMS, PRUint32 *written) = 0;

  /* void terminate (); */
  NS_IMETHOD Terminate(void) = 0;

  /* void InternalAndReservedMethod1IProcess (); */
  NS_IMETHOD InternalAndReservedMethod1IProcess(void) = 0;

  /* void InternalAndReservedMethod2IProcess (); */
  NS_IMETHOD InternalAndReservedMethod2IProcess(void) = 0;

  /* void InternalAndReservedMethod3IProcess (); */
  NS_IMETHOD InternalAndReservedMethod3IProcess(void) = 0;

  /* void InternalAndReservedMethod4IProcess (); */
  NS_IMETHOD InternalAndReservedMethod4IProcess(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IPROCESS \
  NS_IMETHOD GetArguments(PRUint32 *argumentsSize, PRUnichar ***arguments) NS_OVERRIDE; \
  NS_IMETHOD GetEnvironment(PRUint32 *environmentSize, PRUnichar ***environment) NS_OVERRIDE; \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) NS_OVERRIDE; \
  NS_IMETHOD GetExecutablePath(PRUnichar **aExecutablePath) NS_OVERRIDE; \
  NS_IMETHOD GetExitCode(PRInt32 *aExitCode) NS_OVERRIDE; \
  NS_IMETHOD GetName(PRUnichar **aName) NS_OVERRIDE; \
  NS_IMETHOD GetPID(PRUint32 *aPID) NS_OVERRIDE; \
  NS_IMETHOD GetStatus(ProcessStatus_T *aStatus) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IProcess(PRUint32 *aInternalAndReservedAttribute1IProcess) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IProcess(PRUint32 *aInternalAndReservedAttribute2IProcess) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IProcess(PRUint32 *aInternalAndReservedAttribute3IProcess) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IProcess(PRUint32 *aInternalAndReservedAttribute4IProcess) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IProcess(PRUint32 *aInternalAndReservedAttribute5IProcess) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IProcess(PRUint32 *aInternalAndReservedAttribute6IProcess) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IProcess(PRUint32 *aInternalAndReservedAttribute7IProcess) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IProcess(PRUint32 *aInternalAndReservedAttribute8IProcess) NS_OVERRIDE; \
  NS_IMETHOD WaitFor(PRUint32 waitFor, PRUint32 timeoutMS, ProcessWaitResult_T *reason) NS_OVERRIDE; \
  NS_IMETHOD WaitForArray(PRUint32 waitForSize, ProcessWaitForFlag_T *waitFor, PRUint32 timeoutMS, ProcessWaitResult_T *reason) NS_OVERRIDE; \
  NS_IMETHOD Read(PRUint32 handle, PRUint32 toRead, PRUint32 timeoutMS, PRUint32 *dataSize, PRUint8 **data) NS_OVERRIDE; \
  NS_IMETHOD Write(PRUint32 handle, PRUint32 flags, PRUint32 dataSize, PRUint8 *data, PRUint32 timeoutMS, PRUint32 *written) NS_OVERRIDE; \
  NS_IMETHOD WriteArray(PRUint32 handle, PRUint32 flagsSize, ProcessInputFlag_T *flags, PRUint32 dataSize, PRUint8 *data, PRUint32 timeoutMS, PRUint32 *written) NS_OVERRIDE; \
  NS_IMETHOD Terminate(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IProcess(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IProcess(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IProcess(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IProcess(void) NS_OVERRIDE; 

/* 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(ProcessStatus_T *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 GetInternalAndReservedAttribute5IProcess(PRUint32 *aInternalAndReservedAttribute5IProcess) { return _to GetInternalAndReservedAttribute5IProcess(aInternalAndReservedAttribute5IProcess); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IProcess(PRUint32 *aInternalAndReservedAttribute6IProcess) { return _to GetInternalAndReservedAttribute6IProcess(aInternalAndReservedAttribute6IProcess); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IProcess(PRUint32 *aInternalAndReservedAttribute7IProcess) { return _to GetInternalAndReservedAttribute7IProcess(aInternalAndReservedAttribute7IProcess); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IProcess(PRUint32 *aInternalAndReservedAttribute8IProcess) { return _to GetInternalAndReservedAttribute8IProcess(aInternalAndReservedAttribute8IProcess); } \
  NS_IMETHOD WaitFor(PRUint32 waitFor, PRUint32 timeoutMS, ProcessWaitResult_T *reason) { return _to WaitFor(waitFor, timeoutMS, reason); } \
  NS_IMETHOD WaitForArray(PRUint32 waitForSize, ProcessWaitForFlag_T *waitFor, PRUint32 timeoutMS, ProcessWaitResult_T *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, ProcessInputFlag_T *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(); } \
  NS_IMETHOD InternalAndReservedMethod2IProcess(void) { return _to InternalAndReservedMethod2IProcess(); } \
  NS_IMETHOD InternalAndReservedMethod3IProcess(void) { return _to InternalAndReservedMethod3IProcess(); } \
  NS_IMETHOD InternalAndReservedMethod4IProcess(void) { return _to InternalAndReservedMethod4IProcess(); } 

/* 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(ProcessStatus_T *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 GetInternalAndReservedAttribute5IProcess(PRUint32 *aInternalAndReservedAttribute5IProcess) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IProcess(aInternalAndReservedAttribute5IProcess); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IProcess(PRUint32 *aInternalAndReservedAttribute6IProcess) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IProcess(aInternalAndReservedAttribute6IProcess); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IProcess(PRUint32 *aInternalAndReservedAttribute7IProcess) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IProcess(aInternalAndReservedAttribute7IProcess); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IProcess(PRUint32 *aInternalAndReservedAttribute8IProcess) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IProcess(aInternalAndReservedAttribute8IProcess); } \
  NS_IMETHOD WaitFor(PRUint32 waitFor, PRUint32 timeoutMS, ProcessWaitResult_T *reason) { return !_to ? NS_ERROR_NULL_POINTER : _to->WaitFor(waitFor, timeoutMS, reason); } \
  NS_IMETHOD WaitForArray(PRUint32 waitForSize, ProcessWaitForFlag_T *waitFor, PRUint32 timeoutMS, ProcessWaitResult_T *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, ProcessInputFlag_T *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(); } \
  NS_IMETHOD InternalAndReservedMethod2IProcess(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IProcess(); } \
  NS_IMETHOD InternalAndReservedMethod3IProcess(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IProcess(); } \
  NS_IMETHOD InternalAndReservedMethod4IProcess(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IProcess(); } 

#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) NS_OVERRIDE; 

/* 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); } 

#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 "a508e094-bf24-4eca-80c6-467766a1e4c0"

#define IDIRECTORY_IID \
  {0xa508e094, 0xbf24, 0x4eca, \
    { 0x80, 0xc6, 0x46, 0x77, 0x66, 0xa1, 0xe4, 0xc0 }}

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 IEventSource eventSource; */
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) = 0;

  /* readonly attribute wstring filter; */
  NS_IMETHOD GetFilter(PRUnichar **aFilter) = 0;

  /* readonly attribute unsigned long id; */
  NS_IMETHOD GetId(PRUint32 *aId) = 0;

  /* readonly attribute DirectoryStatus_T status; */
  NS_IMETHOD GetStatus(DirectoryStatus_T *aStatus) = 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;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IDirectory; */
  NS_IMETHOD GetInternalAndReservedAttribute5IDirectory(PRUint32 *aInternalAndReservedAttribute5IDirectory) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IDirectory; */
  NS_IMETHOD GetInternalAndReservedAttribute6IDirectory(PRUint32 *aInternalAndReservedAttribute6IDirectory) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IDirectory; */
  NS_IMETHOD GetInternalAndReservedAttribute7IDirectory(PRUint32 *aInternalAndReservedAttribute7IDirectory) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IDirectory; */
  NS_IMETHOD GetInternalAndReservedAttribute8IDirectory(PRUint32 *aInternalAndReservedAttribute8IDirectory) = 0;

  /* void close (); */
  NS_IMETHOD Close(void) = 0;

  /* void list (in unsigned long maxEntries, out unsigned long objInfoSize, [array, size_is (objInfoSize), retval] out IFsObjInfo objInfo); */
  NS_IMETHOD List(PRUint32 maxEntries, PRUint32 *objInfoSize, IFsObjInfo * **objInfo) = 0;

  /* void read ([retval] out IFsObjInfo objInfo); */
  NS_IMETHOD Read(IFsObjInfo * *objInfo) = 0;

  /* void rewind (); */
  NS_IMETHOD Rewind(void) = 0;

  /* void InternalAndReservedMethod1IDirectory (); */
  NS_IMETHOD InternalAndReservedMethod1IDirectory(void) = 0;

  /* void InternalAndReservedMethod2IDirectory (); */
  NS_IMETHOD InternalAndReservedMethod2IDirectory(void) = 0;

  /* void InternalAndReservedMethod3IDirectory (); */
  NS_IMETHOD InternalAndReservedMethod3IDirectory(void) = 0;

  /* void InternalAndReservedMethod4IDirectory (); */
  NS_IMETHOD InternalAndReservedMethod4IDirectory(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IDIRECTORY \
  NS_IMETHOD GetDirectoryName(PRUnichar **aDirectoryName) NS_OVERRIDE; \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) NS_OVERRIDE; \
  NS_IMETHOD GetFilter(PRUnichar **aFilter) NS_OVERRIDE; \
  NS_IMETHOD GetId(PRUint32 *aId) NS_OVERRIDE; \
  NS_IMETHOD GetStatus(DirectoryStatus_T *aStatus) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IDirectory(PRUint32 *aInternalAndReservedAttribute1IDirectory) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IDirectory(PRUint32 *aInternalAndReservedAttribute2IDirectory) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IDirectory(PRUint32 *aInternalAndReservedAttribute3IDirectory) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IDirectory(PRUint32 *aInternalAndReservedAttribute4IDirectory) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IDirectory(PRUint32 *aInternalAndReservedAttribute5IDirectory) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IDirectory(PRUint32 *aInternalAndReservedAttribute6IDirectory) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IDirectory(PRUint32 *aInternalAndReservedAttribute7IDirectory) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IDirectory(PRUint32 *aInternalAndReservedAttribute8IDirectory) NS_OVERRIDE; \
  NS_IMETHOD Close(void) NS_OVERRIDE; \
  NS_IMETHOD List(PRUint32 maxEntries, PRUint32 *objInfoSize, IFsObjInfo * **objInfo) NS_OVERRIDE; \
  NS_IMETHOD Read(IFsObjInfo * *objInfo) NS_OVERRIDE; \
  NS_IMETHOD Rewind(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IDirectory(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IDirectory(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IDirectory(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IDirectory(void) NS_OVERRIDE; 

/* 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 GetEventSource(IEventSource * *aEventSource) { return _to GetEventSource(aEventSource); } \
  NS_IMETHOD GetFilter(PRUnichar **aFilter) { return _to GetFilter(aFilter); } \
  NS_IMETHOD GetId(PRUint32 *aId) { return _to GetId(aId); } \
  NS_IMETHOD GetStatus(DirectoryStatus_T *aStatus) { return _to GetStatus(aStatus); } \
  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 GetInternalAndReservedAttribute5IDirectory(PRUint32 *aInternalAndReservedAttribute5IDirectory) { return _to GetInternalAndReservedAttribute5IDirectory(aInternalAndReservedAttribute5IDirectory); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IDirectory(PRUint32 *aInternalAndReservedAttribute6IDirectory) { return _to GetInternalAndReservedAttribute6IDirectory(aInternalAndReservedAttribute6IDirectory); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IDirectory(PRUint32 *aInternalAndReservedAttribute7IDirectory) { return _to GetInternalAndReservedAttribute7IDirectory(aInternalAndReservedAttribute7IDirectory); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IDirectory(PRUint32 *aInternalAndReservedAttribute8IDirectory) { return _to GetInternalAndReservedAttribute8IDirectory(aInternalAndReservedAttribute8IDirectory); } \
  NS_IMETHOD Close(void) { return _to Close(); } \
  NS_IMETHOD List(PRUint32 maxEntries, PRUint32 *objInfoSize, IFsObjInfo * **objInfo) { return _to List(maxEntries, objInfoSize, objInfo); } \
  NS_IMETHOD Read(IFsObjInfo * *objInfo) { return _to Read(objInfo); } \
  NS_IMETHOD Rewind(void) { return _to Rewind(); } \
  NS_IMETHOD InternalAndReservedMethod1IDirectory(void) { return _to InternalAndReservedMethod1IDirectory(); } \
  NS_IMETHOD InternalAndReservedMethod2IDirectory(void) { return _to InternalAndReservedMethod2IDirectory(); } \
  NS_IMETHOD InternalAndReservedMethod3IDirectory(void) { return _to InternalAndReservedMethod3IDirectory(); } \
  NS_IMETHOD InternalAndReservedMethod4IDirectory(void) { return _to InternalAndReservedMethod4IDirectory(); } 

/* 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 GetEventSource(IEventSource * *aEventSource) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEventSource(aEventSource); } \
  NS_IMETHOD GetFilter(PRUnichar **aFilter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFilter(aFilter); } \
  NS_IMETHOD GetId(PRUint32 *aId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetId(aId); } \
  NS_IMETHOD GetStatus(DirectoryStatus_T *aStatus) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStatus(aStatus); } \
  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 GetInternalAndReservedAttribute5IDirectory(PRUint32 *aInternalAndReservedAttribute5IDirectory) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IDirectory(aInternalAndReservedAttribute5IDirectory); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IDirectory(PRUint32 *aInternalAndReservedAttribute6IDirectory) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IDirectory(aInternalAndReservedAttribute6IDirectory); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IDirectory(PRUint32 *aInternalAndReservedAttribute7IDirectory) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IDirectory(aInternalAndReservedAttribute7IDirectory); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IDirectory(PRUint32 *aInternalAndReservedAttribute8IDirectory) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IDirectory(aInternalAndReservedAttribute8IDirectory); } \
  NS_IMETHOD Close(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Close(); } \
  NS_IMETHOD List(PRUint32 maxEntries, PRUint32 *objInfoSize, IFsObjInfo * **objInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->List(maxEntries, objInfoSize, objInfo); } \
  NS_IMETHOD Read(IFsObjInfo * *objInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->Read(objInfo); } \
  NS_IMETHOD Rewind(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Rewind(); } \
  NS_IMETHOD InternalAndReservedMethod1IDirectory(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IDirectory(); } \
  NS_IMETHOD InternalAndReservedMethod2IDirectory(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IDirectory(); } \
  NS_IMETHOD InternalAndReservedMethod3IDirectory(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IDirectory(); } \
  NS_IMETHOD InternalAndReservedMethod4IDirectory(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IDirectory(); } 

#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_EventSource_TO(smth) NS_IMETHOD GetEventSource (IEventSource * * aEventSource) { return smth GetEventSource (aEventSource); }
#define COM_FORWARD_IDirectory_GETTER_EventSource_TO_OBJ(obj) COM_FORWARD_IDirectory_GETTER_EventSource_TO ((obj)->)
#define COM_FORWARD_IDirectory_GETTER_EventSource_TO_BASE(base) COM_FORWARD_IDirectory_GETTER_EventSource_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_GETTER_Id_TO(smth) NS_IMETHOD GetId (PRUint32 * aId) { return smth GetId (aId); }
#define COM_FORWARD_IDirectory_GETTER_Id_TO_OBJ(obj) COM_FORWARD_IDirectory_GETTER_Id_TO ((obj)->)
#define COM_FORWARD_IDirectory_GETTER_Id_TO_BASE(base) COM_FORWARD_IDirectory_GETTER_Id_TO (base::)
#define COM_FORWARD_IDirectory_GETTER_Status_TO(smth) NS_IMETHOD GetStatus (PRUint32 * aStatus) { return smth GetStatus (aStatus); }
#define COM_FORWARD_IDirectory_GETTER_Status_TO_OBJ(obj) COM_FORWARD_IDirectory_GETTER_Status_TO ((obj)->)
#define COM_FORWARD_IDirectory_GETTER_Status_TO_BASE(base) COM_FORWARD_IDirectory_GETTER_Status_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_List_TO(smth) NS_IMETHOD List (PRUint32 aMaxEntries, PRUint32 * aObjInfoSize, IFsObjInfo * * * aObjInfo) { return smth List (aMaxEntries, aObjInfoSize, aObjInfo); }
#define COM_FORWARD_IDirectory_List_TO_OBJ(obj) COM_FORWARD_IDirectory_List_TO ((obj)->)
#define COM_FORWARD_IDirectory_List_TO_BASE(base) COM_FORWARD_IDirectory_List_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_Rewind_TO(smth) NS_IMETHOD Rewind() { return smth Rewind(); }
#define COM_FORWARD_IDirectory_Rewind_TO_OBJ(obj) COM_FORWARD_IDirectory_Rewind_TO ((obj)->)
#define COM_FORWARD_IDirectory_Rewind_TO_BASE(base) COM_FORWARD_IDirectory_Rewind_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) NS_OVERRIDE; 

/* 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); } 

#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 "59a235ac-2f1a-4d6c-81fc-e3fa843f49ae"

#define IFILE_IID \
  {0x59a235ac, 0x2f1a, 0x4d6c, \
    { 0x81, 0xfc, 0xe3, 0xfa, 0x84, 0x3f, 0x49, 0xae }}

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 FileStatus_T status; */
  NS_IMETHOD GetStatus(FileStatus_T *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 FileOpenAction_T openAction; */
  NS_IMETHOD GetOpenAction(FileOpenAction_T *aOpenAction) = 0;

  /* readonly attribute FileAccessMode_T accessMode; */
  NS_IMETHOD GetAccessMode(FileAccessMode_T *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;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IFile; */
  NS_IMETHOD GetInternalAndReservedAttribute5IFile(PRUint32 *aInternalAndReservedAttribute5IFile) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IFile; */
  NS_IMETHOD GetInternalAndReservedAttribute6IFile(PRUint32 *aInternalAndReservedAttribute6IFile) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IFile; */
  NS_IMETHOD GetInternalAndReservedAttribute7IFile(PRUint32 *aInternalAndReservedAttribute7IFile) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IFile; */
  NS_IMETHOD GetInternalAndReservedAttribute8IFile(PRUint32 *aInternalAndReservedAttribute8IFile) = 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 FileSeekOrigin_T whence, [retval] out long long newOffset); */
  NS_IMETHOD Seek(PRInt64 offset, FileSeekOrigin_T 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_OVERRIDE; \
  NS_IMETHOD GetId(PRUint32 *aId) NS_OVERRIDE; \
  NS_IMETHOD GetInitialSize(PRInt64 *aInitialSize) NS_OVERRIDE; \
  NS_IMETHOD GetOffset(PRInt64 *aOffset) NS_OVERRIDE; \
  NS_IMETHOD GetStatus(FileStatus_T *aStatus) NS_OVERRIDE; \
  NS_IMETHOD GetFilename(PRUnichar **aFilename) NS_OVERRIDE; \
  NS_IMETHOD GetCreationMode(PRUint32 *aCreationMode) NS_OVERRIDE; \
  NS_IMETHOD GetOpenAction(FileOpenAction_T *aOpenAction) NS_OVERRIDE; \
  NS_IMETHOD GetAccessMode(FileAccessMode_T *aAccessMode) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IFile(PRUint32 *aInternalAndReservedAttribute1IFile) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IFile(PRUint32 *aInternalAndReservedAttribute2IFile) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IFile(PRUint32 *aInternalAndReservedAttribute3IFile) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IFile(PRUint32 *aInternalAndReservedAttribute4IFile) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IFile(PRUint32 *aInternalAndReservedAttribute5IFile) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IFile(PRUint32 *aInternalAndReservedAttribute6IFile) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IFile(PRUint32 *aInternalAndReservedAttribute7IFile) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IFile(PRUint32 *aInternalAndReservedAttribute8IFile) NS_OVERRIDE; \
  NS_IMETHOD Close(void) NS_OVERRIDE; \
  NS_IMETHOD QueryInfo(IFsObjInfo * *objInfo) NS_OVERRIDE; \
  NS_IMETHOD QuerySize(PRInt64 *size) NS_OVERRIDE; \
  NS_IMETHOD Read(PRUint32 toRead, PRUint32 timeoutMS, PRUint32 *dataSize, PRUint8 **data) NS_OVERRIDE; \
  NS_IMETHOD ReadAt(PRInt64 offset, PRUint32 toRead, PRUint32 timeoutMS, PRUint32 *dataSize, PRUint8 **data) NS_OVERRIDE; \
  NS_IMETHOD Seek(PRInt64 offset, FileSeekOrigin_T whence, PRInt64 *newOffset) NS_OVERRIDE; \
  NS_IMETHOD SetACL(const PRUnichar *acl, PRUint32 mode) NS_OVERRIDE; \
  NS_IMETHOD SetSize(PRInt64 size) NS_OVERRIDE; \
  NS_IMETHOD Write(PRUint32 dataSize, PRUint8 *data, PRUint32 timeoutMS, PRUint32 *written) NS_OVERRIDE; \
  NS_IMETHOD WriteAt(PRInt64 offset, PRUint32 dataSize, PRUint8 *data, PRUint32 timeoutMS, PRUint32 *written) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IFile(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IFile(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IFile(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IFile(void) NS_OVERRIDE; 

/* 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(FileStatus_T *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(FileOpenAction_T *aOpenAction) { return _to GetOpenAction(aOpenAction); } \
  NS_IMETHOD GetAccessMode(FileAccessMode_T *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 GetInternalAndReservedAttribute5IFile(PRUint32 *aInternalAndReservedAttribute5IFile) { return _to GetInternalAndReservedAttribute5IFile(aInternalAndReservedAttribute5IFile); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IFile(PRUint32 *aInternalAndReservedAttribute6IFile) { return _to GetInternalAndReservedAttribute6IFile(aInternalAndReservedAttribute6IFile); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IFile(PRUint32 *aInternalAndReservedAttribute7IFile) { return _to GetInternalAndReservedAttribute7IFile(aInternalAndReservedAttribute7IFile); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IFile(PRUint32 *aInternalAndReservedAttribute8IFile) { return _to GetInternalAndReservedAttribute8IFile(aInternalAndReservedAttribute8IFile); } \
  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, FileSeekOrigin_T 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(FileStatus_T *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(FileOpenAction_T *aOpenAction) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOpenAction(aOpenAction); } \
  NS_IMETHOD GetAccessMode(FileAccessMode_T *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 GetInternalAndReservedAttribute5IFile(PRUint32 *aInternalAndReservedAttribute5IFile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IFile(aInternalAndReservedAttribute5IFile); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IFile(PRUint32 *aInternalAndReservedAttribute6IFile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IFile(aInternalAndReservedAttribute6IFile); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IFile(PRUint32 *aInternalAndReservedAttribute7IFile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IFile(aInternalAndReservedAttribute7IFile); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IFile(PRUint32 *aInternalAndReservedAttribute8IFile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IFile(aInternalAndReservedAttribute8IFile); } \
  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, FileSeekOrigin_T 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(); } 

#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) NS_OVERRIDE; 

/* 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); } 

#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:    IFsInfo */
#define IFSINFO_IID_STR "3db2ab1a-6cf7-42f1-8bf5-e1c0553e0b30"

#define IFSINFO_IID \
  {0x3db2ab1a, 0x6cf7, 0x42f1, \
    { 0x8b, 0xf5, 0xe1, 0xc0, 0x55, 0x3e, 0x0b, 0x30 }}

class NS_NO_VTABLE IFsInfo : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IFSINFO_IID)

  /* readonly attribute long long freeSize; */
  NS_IMETHOD GetFreeSize(PRInt64 *aFreeSize) = 0;

  /* readonly attribute long long totalSize; */
  NS_IMETHOD GetTotalSize(PRInt64 *aTotalSize) = 0;

  /* readonly attribute unsigned long blockSize; */
  NS_IMETHOD GetBlockSize(PRUint32 *aBlockSize) = 0;

  /* readonly attribute unsigned long sectorSize; */
  NS_IMETHOD GetSectorSize(PRUint32 *aSectorSize) = 0;

  /* readonly attribute unsigned long serialNumber; */
  NS_IMETHOD GetSerialNumber(PRUint32 *aSerialNumber) = 0;

  /* readonly attribute boolean isRemote; */
  NS_IMETHOD GetIsRemote(PRBool *aIsRemote) = 0;

  /* readonly attribute boolean isCaseSensitive; */
  NS_IMETHOD GetIsCaseSensitive(PRBool *aIsCaseSensitive) = 0;

  /* readonly attribute boolean isReadOnly; */
  NS_IMETHOD GetIsReadOnly(PRBool *aIsReadOnly) = 0;

  /* readonly attribute boolean isCompressed; */
  NS_IMETHOD GetIsCompressed(PRBool *aIsCompressed) = 0;

  /* readonly attribute boolean supportsFileCompression; */
  NS_IMETHOD GetSupportsFileCompression(PRBool *aSupportsFileCompression) = 0;

  /* readonly attribute unsigned long maxComponent; */
  NS_IMETHOD GetMaxComponent(PRUint32 *aMaxComponent) = 0;

  /* readonly attribute wstring type; */
  NS_IMETHOD GetType(PRUnichar **aType) = 0;

  /* readonly attribute wstring label; */
  NS_IMETHOD GetLabel(PRUnichar **aLabel) = 0;

  /* readonly attribute wstring mountPoint; */
  NS_IMETHOD GetMountPoint(PRUnichar **aMountPoint) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IFsInfo; */
  NS_IMETHOD GetInternalAndReservedAttribute1IFsInfo(PRUint32 *aInternalAndReservedAttribute1IFsInfo) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IFsInfo; */
  NS_IMETHOD GetInternalAndReservedAttribute2IFsInfo(PRUint32 *aInternalAndReservedAttribute2IFsInfo) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IFsInfo; */
  NS_IMETHOD GetInternalAndReservedAttribute3IFsInfo(PRUint32 *aInternalAndReservedAttribute3IFsInfo) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IFsInfo; */
  NS_IMETHOD GetInternalAndReservedAttribute4IFsInfo(PRUint32 *aInternalAndReservedAttribute4IFsInfo) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IFsInfo; */
  NS_IMETHOD GetInternalAndReservedAttribute5IFsInfo(PRUint32 *aInternalAndReservedAttribute5IFsInfo) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IFsInfo; */
  NS_IMETHOD GetInternalAndReservedAttribute6IFsInfo(PRUint32 *aInternalAndReservedAttribute6IFsInfo) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IFsInfo; */
  NS_IMETHOD GetInternalAndReservedAttribute7IFsInfo(PRUint32 *aInternalAndReservedAttribute7IFsInfo) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IFsInfo; */
  NS_IMETHOD GetInternalAndReservedAttribute8IFsInfo(PRUint32 *aInternalAndReservedAttribute8IFsInfo) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IFSINFO \
  NS_IMETHOD GetFreeSize(PRInt64 *aFreeSize) NS_OVERRIDE; \
  NS_IMETHOD GetTotalSize(PRInt64 *aTotalSize) NS_OVERRIDE; \
  NS_IMETHOD GetBlockSize(PRUint32 *aBlockSize) NS_OVERRIDE; \
  NS_IMETHOD GetSectorSize(PRUint32 *aSectorSize) NS_OVERRIDE; \
  NS_IMETHOD GetSerialNumber(PRUint32 *aSerialNumber) NS_OVERRIDE; \
  NS_IMETHOD GetIsRemote(PRBool *aIsRemote) NS_OVERRIDE; \
  NS_IMETHOD GetIsCaseSensitive(PRBool *aIsCaseSensitive) NS_OVERRIDE; \
  NS_IMETHOD GetIsReadOnly(PRBool *aIsReadOnly) NS_OVERRIDE; \
  NS_IMETHOD GetIsCompressed(PRBool *aIsCompressed) NS_OVERRIDE; \
  NS_IMETHOD GetSupportsFileCompression(PRBool *aSupportsFileCompression) NS_OVERRIDE; \
  NS_IMETHOD GetMaxComponent(PRUint32 *aMaxComponent) NS_OVERRIDE; \
  NS_IMETHOD GetType(PRUnichar **aType) NS_OVERRIDE; \
  NS_IMETHOD GetLabel(PRUnichar **aLabel) NS_OVERRIDE; \
  NS_IMETHOD GetMountPoint(PRUnichar **aMountPoint) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IFsInfo(PRUint32 *aInternalAndReservedAttribute1IFsInfo) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IFsInfo(PRUint32 *aInternalAndReservedAttribute2IFsInfo) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IFsInfo(PRUint32 *aInternalAndReservedAttribute3IFsInfo) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IFsInfo(PRUint32 *aInternalAndReservedAttribute4IFsInfo) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IFsInfo(PRUint32 *aInternalAndReservedAttribute5IFsInfo) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IFsInfo(PRUint32 *aInternalAndReservedAttribute6IFsInfo) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IFsInfo(PRUint32 *aInternalAndReservedAttribute7IFsInfo) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IFsInfo(PRUint32 *aInternalAndReservedAttribute8IFsInfo) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IFSINFO(_to) \
  NS_IMETHOD GetFreeSize(PRInt64 *aFreeSize) { return _to GetFreeSize(aFreeSize); } \
  NS_IMETHOD GetTotalSize(PRInt64 *aTotalSize) { return _to GetTotalSize(aTotalSize); } \
  NS_IMETHOD GetBlockSize(PRUint32 *aBlockSize) { return _to GetBlockSize(aBlockSize); } \
  NS_IMETHOD GetSectorSize(PRUint32 *aSectorSize) { return _to GetSectorSize(aSectorSize); } \
  NS_IMETHOD GetSerialNumber(PRUint32 *aSerialNumber) { return _to GetSerialNumber(aSerialNumber); } \
  NS_IMETHOD GetIsRemote(PRBool *aIsRemote) { return _to GetIsRemote(aIsRemote); } \
  NS_IMETHOD GetIsCaseSensitive(PRBool *aIsCaseSensitive) { return _to GetIsCaseSensitive(aIsCaseSensitive); } \
  NS_IMETHOD GetIsReadOnly(PRBool *aIsReadOnly) { return _to GetIsReadOnly(aIsReadOnly); } \
  NS_IMETHOD GetIsCompressed(PRBool *aIsCompressed) { return _to GetIsCompressed(aIsCompressed); } \
  NS_IMETHOD GetSupportsFileCompression(PRBool *aSupportsFileCompression) { return _to GetSupportsFileCompression(aSupportsFileCompression); } \
  NS_IMETHOD GetMaxComponent(PRUint32 *aMaxComponent) { return _to GetMaxComponent(aMaxComponent); } \
  NS_IMETHOD GetType(PRUnichar **aType) { return _to GetType(aType); } \
  NS_IMETHOD GetLabel(PRUnichar **aLabel) { return _to GetLabel(aLabel); } \
  NS_IMETHOD GetMountPoint(PRUnichar **aMountPoint) { return _to GetMountPoint(aMountPoint); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IFsInfo(PRUint32 *aInternalAndReservedAttribute1IFsInfo) { return _to GetInternalAndReservedAttribute1IFsInfo(aInternalAndReservedAttribute1IFsInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IFsInfo(PRUint32 *aInternalAndReservedAttribute2IFsInfo) { return _to GetInternalAndReservedAttribute2IFsInfo(aInternalAndReservedAttribute2IFsInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IFsInfo(PRUint32 *aInternalAndReservedAttribute3IFsInfo) { return _to GetInternalAndReservedAttribute3IFsInfo(aInternalAndReservedAttribute3IFsInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IFsInfo(PRUint32 *aInternalAndReservedAttribute4IFsInfo) { return _to GetInternalAndReservedAttribute4IFsInfo(aInternalAndReservedAttribute4IFsInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IFsInfo(PRUint32 *aInternalAndReservedAttribute5IFsInfo) { return _to GetInternalAndReservedAttribute5IFsInfo(aInternalAndReservedAttribute5IFsInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IFsInfo(PRUint32 *aInternalAndReservedAttribute6IFsInfo) { return _to GetInternalAndReservedAttribute6IFsInfo(aInternalAndReservedAttribute6IFsInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IFsInfo(PRUint32 *aInternalAndReservedAttribute7IFsInfo) { return _to GetInternalAndReservedAttribute7IFsInfo(aInternalAndReservedAttribute7IFsInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IFsInfo(PRUint32 *aInternalAndReservedAttribute8IFsInfo) { return _to GetInternalAndReservedAttribute8IFsInfo(aInternalAndReservedAttribute8IFsInfo); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IFSINFO(_to) \
  NS_IMETHOD GetFreeSize(PRInt64 *aFreeSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFreeSize(aFreeSize); } \
  NS_IMETHOD GetTotalSize(PRInt64 *aTotalSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTotalSize(aTotalSize); } \
  NS_IMETHOD GetBlockSize(PRUint32 *aBlockSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBlockSize(aBlockSize); } \
  NS_IMETHOD GetSectorSize(PRUint32 *aSectorSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSectorSize(aSectorSize); } \
  NS_IMETHOD GetSerialNumber(PRUint32 *aSerialNumber) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSerialNumber(aSerialNumber); } \
  NS_IMETHOD GetIsRemote(PRBool *aIsRemote) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsRemote(aIsRemote); } \
  NS_IMETHOD GetIsCaseSensitive(PRBool *aIsCaseSensitive) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsCaseSensitive(aIsCaseSensitive); } \
  NS_IMETHOD GetIsReadOnly(PRBool *aIsReadOnly) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsReadOnly(aIsReadOnly); } \
  NS_IMETHOD GetIsCompressed(PRBool *aIsCompressed) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsCompressed(aIsCompressed); } \
  NS_IMETHOD GetSupportsFileCompression(PRBool *aSupportsFileCompression) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportsFileCompression(aSupportsFileCompression); } \
  NS_IMETHOD GetMaxComponent(PRUint32 *aMaxComponent) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMaxComponent(aMaxComponent); } \
  NS_IMETHOD GetType(PRUnichar **aType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetType(aType); } \
  NS_IMETHOD GetLabel(PRUnichar **aLabel) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLabel(aLabel); } \
  NS_IMETHOD GetMountPoint(PRUnichar **aMountPoint) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMountPoint(aMountPoint); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IFsInfo(PRUint32 *aInternalAndReservedAttribute1IFsInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IFsInfo(aInternalAndReservedAttribute1IFsInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IFsInfo(PRUint32 *aInternalAndReservedAttribute2IFsInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IFsInfo(aInternalAndReservedAttribute2IFsInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IFsInfo(PRUint32 *aInternalAndReservedAttribute3IFsInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IFsInfo(aInternalAndReservedAttribute3IFsInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IFsInfo(PRUint32 *aInternalAndReservedAttribute4IFsInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IFsInfo(aInternalAndReservedAttribute4IFsInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IFsInfo(PRUint32 *aInternalAndReservedAttribute5IFsInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IFsInfo(aInternalAndReservedAttribute5IFsInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IFsInfo(PRUint32 *aInternalAndReservedAttribute6IFsInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IFsInfo(aInternalAndReservedAttribute6IFsInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IFsInfo(PRUint32 *aInternalAndReservedAttribute7IFsInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IFsInfo(aInternalAndReservedAttribute7IFsInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IFsInfo(PRUint32 *aInternalAndReservedAttribute8IFsInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IFsInfo(aInternalAndReservedAttribute8IFsInfo); } 

#define COM_FORWARD_IFsInfo_GETTER_FreeSize_TO(smth) NS_IMETHOD GetFreeSize (PRInt64 * aFreeSize) { return smth GetFreeSize (aFreeSize); }
#define COM_FORWARD_IFsInfo_GETTER_FreeSize_TO_OBJ(obj) COM_FORWARD_IFsInfo_GETTER_FreeSize_TO ((obj)->)
#define COM_FORWARD_IFsInfo_GETTER_FreeSize_TO_BASE(base) COM_FORWARD_IFsInfo_GETTER_FreeSize_TO (base::)
#define COM_FORWARD_IFsInfo_GETTER_TotalSize_TO(smth) NS_IMETHOD GetTotalSize (PRInt64 * aTotalSize) { return smth GetTotalSize (aTotalSize); }
#define COM_FORWARD_IFsInfo_GETTER_TotalSize_TO_OBJ(obj) COM_FORWARD_IFsInfo_GETTER_TotalSize_TO ((obj)->)
#define COM_FORWARD_IFsInfo_GETTER_TotalSize_TO_BASE(base) COM_FORWARD_IFsInfo_GETTER_TotalSize_TO (base::)
#define COM_FORWARD_IFsInfo_GETTER_BlockSize_TO(smth) NS_IMETHOD GetBlockSize (PRUint32 * aBlockSize) { return smth GetBlockSize (aBlockSize); }
#define COM_FORWARD_IFsInfo_GETTER_BlockSize_TO_OBJ(obj) COM_FORWARD_IFsInfo_GETTER_BlockSize_TO ((obj)->)
#define COM_FORWARD_IFsInfo_GETTER_BlockSize_TO_BASE(base) COM_FORWARD_IFsInfo_GETTER_BlockSize_TO (base::)
#define COM_FORWARD_IFsInfo_GETTER_SectorSize_TO(smth) NS_IMETHOD GetSectorSize (PRUint32 * aSectorSize) { return smth GetSectorSize (aSectorSize); }
#define COM_FORWARD_IFsInfo_GETTER_SectorSize_TO_OBJ(obj) COM_FORWARD_IFsInfo_GETTER_SectorSize_TO ((obj)->)
#define COM_FORWARD_IFsInfo_GETTER_SectorSize_TO_BASE(base) COM_FORWARD_IFsInfo_GETTER_SectorSize_TO (base::)
#define COM_FORWARD_IFsInfo_GETTER_SerialNumber_TO(smth) NS_IMETHOD GetSerialNumber (PRUint32 * aSerialNumber) { return smth GetSerialNumber (aSerialNumber); }
#define COM_FORWARD_IFsInfo_GETTER_SerialNumber_TO_OBJ(obj) COM_FORWARD_IFsInfo_GETTER_SerialNumber_TO ((obj)->)
#define COM_FORWARD_IFsInfo_GETTER_SerialNumber_TO_BASE(base) COM_FORWARD_IFsInfo_GETTER_SerialNumber_TO (base::)
#define COM_FORWARD_IFsInfo_GETTER_IsRemote_TO(smth) NS_IMETHOD GetIsRemote (PRBool * aIsRemote) { return smth GetIsRemote (aIsRemote); }
#define COM_FORWARD_IFsInfo_GETTER_IsRemote_TO_OBJ(obj) COM_FORWARD_IFsInfo_GETTER_IsRemote_TO ((obj)->)
#define COM_FORWARD_IFsInfo_GETTER_IsRemote_TO_BASE(base) COM_FORWARD_IFsInfo_GETTER_IsRemote_TO (base::)
#define COM_FORWARD_IFsInfo_GETTER_IsCaseSensitive_TO(smth) NS_IMETHOD GetIsCaseSensitive (PRBool * aIsCaseSensitive) { return smth GetIsCaseSensitive (aIsCaseSensitive); }
#define COM_FORWARD_IFsInfo_GETTER_IsCaseSensitive_TO_OBJ(obj) COM_FORWARD_IFsInfo_GETTER_IsCaseSensitive_TO ((obj)->)
#define COM_FORWARD_IFsInfo_GETTER_IsCaseSensitive_TO_BASE(base) COM_FORWARD_IFsInfo_GETTER_IsCaseSensitive_TO (base::)
#define COM_FORWARD_IFsInfo_GETTER_IsReadOnly_TO(smth) NS_IMETHOD GetIsReadOnly (PRBool * aIsReadOnly) { return smth GetIsReadOnly (aIsReadOnly); }
#define COM_FORWARD_IFsInfo_GETTER_IsReadOnly_TO_OBJ(obj) COM_FORWARD_IFsInfo_GETTER_IsReadOnly_TO ((obj)->)
#define COM_FORWARD_IFsInfo_GETTER_IsReadOnly_TO_BASE(base) COM_FORWARD_IFsInfo_GETTER_IsReadOnly_TO (base::)
#define COM_FORWARD_IFsInfo_GETTER_IsCompressed_TO(smth) NS_IMETHOD GetIsCompressed (PRBool * aIsCompressed) { return smth GetIsCompressed (aIsCompressed); }
#define COM_FORWARD_IFsInfo_GETTER_IsCompressed_TO_OBJ(obj) COM_FORWARD_IFsInfo_GETTER_IsCompressed_TO ((obj)->)
#define COM_FORWARD_IFsInfo_GETTER_IsCompressed_TO_BASE(base) COM_FORWARD_IFsInfo_GETTER_IsCompressed_TO (base::)
#define COM_FORWARD_IFsInfo_GETTER_SupportsFileCompression_TO(smth) NS_IMETHOD GetSupportsFileCompression (PRBool * aSupportsFileCompression) { return smth GetSupportsFileCompression (aSupportsFileCompression); }
#define COM_FORWARD_IFsInfo_GETTER_SupportsFileCompression_TO_OBJ(obj) COM_FORWARD_IFsInfo_GETTER_SupportsFileCompression_TO ((obj)->)
#define COM_FORWARD_IFsInfo_GETTER_SupportsFileCompression_TO_BASE(base) COM_FORWARD_IFsInfo_GETTER_SupportsFileCompression_TO (base::)
#define COM_FORWARD_IFsInfo_GETTER_MaxComponent_TO(smth) NS_IMETHOD GetMaxComponent (PRUint32 * aMaxComponent) { return smth GetMaxComponent (aMaxComponent); }
#define COM_FORWARD_IFsInfo_GETTER_MaxComponent_TO_OBJ(obj) COM_FORWARD_IFsInfo_GETTER_MaxComponent_TO ((obj)->)
#define COM_FORWARD_IFsInfo_GETTER_MaxComponent_TO_BASE(base) COM_FORWARD_IFsInfo_GETTER_MaxComponent_TO (base::)
#define COM_FORWARD_IFsInfo_GETTER_Type_TO(smth) NS_IMETHOD GetType (PRUnichar * * aType) { return smth GetType (aType); }
#define COM_FORWARD_IFsInfo_GETTER_Type_TO_OBJ(obj) COM_FORWARD_IFsInfo_GETTER_Type_TO ((obj)->)
#define COM_FORWARD_IFsInfo_GETTER_Type_TO_BASE(base) COM_FORWARD_IFsInfo_GETTER_Type_TO (base::)
#define COM_FORWARD_IFsInfo_GETTER_Label_TO(smth) NS_IMETHOD GetLabel (PRUnichar * * aLabel) { return smth GetLabel (aLabel); }
#define COM_FORWARD_IFsInfo_GETTER_Label_TO_OBJ(obj) COM_FORWARD_IFsInfo_GETTER_Label_TO ((obj)->)
#define COM_FORWARD_IFsInfo_GETTER_Label_TO_BASE(base) COM_FORWARD_IFsInfo_GETTER_Label_TO (base::)
#define COM_FORWARD_IFsInfo_GETTER_MountPoint_TO(smth) NS_IMETHOD GetMountPoint (PRUnichar * * aMountPoint) { return smth GetMountPoint (aMountPoint); }
#define COM_FORWARD_IFsInfo_GETTER_MountPoint_TO_OBJ(obj) COM_FORWARD_IFsInfo_GETTER_MountPoint_TO ((obj)->)
#define COM_FORWARD_IFsInfo_GETTER_MountPoint_TO_BASE(base) COM_FORWARD_IFsInfo_GETTER_MountPoint_TO (base::)
#define COM_FORWARD_IFsInfo_TO(smth) NS_FORWARD_IFSINFO (smth)
#define COM_FORWARD_IFsInfo_TO_OBJ(obj) COM_FORWARD_IFsInfo_TO ((obj)->)
#define COM_FORWARD_IFsInfo_TO_BASE(base) COM_FORWARD_IFsInfo_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IFsInfo;

/* starting interface:    IFsObjInfo */
#define IFSOBJINFO_IID_STR "081fc833-c6fa-430e-6020-6a505d086387"

#define IFSOBJINFO_IID \
  {0x081fc833, 0xc6fa, 0x430e, \
    { 0x60, 0x20, 0x6a, 0x50, 0x5d, 0x08, 0x63, 0x87 }}

class NS_NO_VTABLE IFsObjInfo : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IFSOBJINFO_IID)

  /* readonly attribute wstring name; */
  NS_IMETHOD GetName(PRUnichar **aName) = 0;

  /* readonly attribute FsObjType_T type; */
  NS_IMETHOD GetType(FsObjType_T *aType) = 0;

  /* readonly attribute wstring fileAttributes; */
  NS_IMETHOD GetFileAttributes(PRUnichar **aFileAttributes) = 0;

  /* readonly attribute long long objectSize; */
  NS_IMETHOD GetObjectSize(PRInt64 *aObjectSize) = 0;

  /* readonly attribute long long allocatedSize; */
  NS_IMETHOD GetAllocatedSize(PRInt64 *aAllocatedSize) = 0;

  /* readonly attribute long long accessTime; */
  NS_IMETHOD GetAccessTime(PRInt64 *aAccessTime) = 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 long long modificationTime; */
  NS_IMETHOD GetModificationTime(PRInt64 *aModificationTime) = 0;

  /* readonly attribute long UID; */
  NS_IMETHOD GetUID(PRInt32 *aUID) = 0;

  /* readonly attribute wstring userName; */
  NS_IMETHOD GetUserName(PRUnichar **aUserName) = 0;

  /* readonly attribute long GID; */
  NS_IMETHOD GetGID(PRInt32 *aGID) = 0;

  /* readonly attribute wstring groupName; */
  NS_IMETHOD GetGroupName(PRUnichar **aGroupName) = 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 unsigned long hardLinks; */
  NS_IMETHOD GetHardLinks(PRUint32 *aHardLinks) = 0;

  /* readonly attribute unsigned long deviceNumber; */
  NS_IMETHOD GetDeviceNumber(PRUint32 *aDeviceNumber) = 0;

  /* readonly attribute unsigned long generationId; */
  NS_IMETHOD GetGenerationId(PRUint32 *aGenerationId) = 0;

  /* readonly attribute unsigned long userFlags; */
  NS_IMETHOD GetUserFlags(PRUint32 *aUserFlags) = 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;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IFsObjInfo; */
  NS_IMETHOD GetInternalAndReservedAttribute5IFsObjInfo(PRUint32 *aInternalAndReservedAttribute5IFsObjInfo) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IFsObjInfo; */
  NS_IMETHOD GetInternalAndReservedAttribute6IFsObjInfo(PRUint32 *aInternalAndReservedAttribute6IFsObjInfo) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IFsObjInfo; */
  NS_IMETHOD GetInternalAndReservedAttribute7IFsObjInfo(PRUint32 *aInternalAndReservedAttribute7IFsObjInfo) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IFsObjInfo; */
  NS_IMETHOD GetInternalAndReservedAttribute8IFsObjInfo(PRUint32 *aInternalAndReservedAttribute8IFsObjInfo) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IFSOBJINFO \
  NS_IMETHOD GetName(PRUnichar **aName) NS_OVERRIDE; \
  NS_IMETHOD GetType(FsObjType_T *aType) NS_OVERRIDE; \
  NS_IMETHOD GetFileAttributes(PRUnichar **aFileAttributes) NS_OVERRIDE; \
  NS_IMETHOD GetObjectSize(PRInt64 *aObjectSize) NS_OVERRIDE; \
  NS_IMETHOD GetAllocatedSize(PRInt64 *aAllocatedSize) NS_OVERRIDE; \
  NS_IMETHOD GetAccessTime(PRInt64 *aAccessTime) NS_OVERRIDE; \
  NS_IMETHOD GetBirthTime(PRInt64 *aBirthTime) NS_OVERRIDE; \
  NS_IMETHOD GetChangeTime(PRInt64 *aChangeTime) NS_OVERRIDE; \
  NS_IMETHOD GetModificationTime(PRInt64 *aModificationTime) NS_OVERRIDE; \
  NS_IMETHOD GetUID(PRInt32 *aUID) NS_OVERRIDE; \
  NS_IMETHOD GetUserName(PRUnichar **aUserName) NS_OVERRIDE; \
  NS_IMETHOD GetGID(PRInt32 *aGID) NS_OVERRIDE; \
  NS_IMETHOD GetGroupName(PRUnichar **aGroupName) NS_OVERRIDE; \
  NS_IMETHOD GetNodeId(PRInt64 *aNodeId) NS_OVERRIDE; \
  NS_IMETHOD GetNodeIdDevice(PRUint32 *aNodeIdDevice) NS_OVERRIDE; \
  NS_IMETHOD GetHardLinks(PRUint32 *aHardLinks) NS_OVERRIDE; \
  NS_IMETHOD GetDeviceNumber(PRUint32 *aDeviceNumber) NS_OVERRIDE; \
  NS_IMETHOD GetGenerationId(PRUint32 *aGenerationId) NS_OVERRIDE; \
  NS_IMETHOD GetUserFlags(PRUint32 *aUserFlags) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IFsObjInfo(PRUint32 *aInternalAndReservedAttribute1IFsObjInfo) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IFsObjInfo(PRUint32 *aInternalAndReservedAttribute2IFsObjInfo) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IFsObjInfo(PRUint32 *aInternalAndReservedAttribute3IFsObjInfo) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IFsObjInfo(PRUint32 *aInternalAndReservedAttribute4IFsObjInfo) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IFsObjInfo(PRUint32 *aInternalAndReservedAttribute5IFsObjInfo) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IFsObjInfo(PRUint32 *aInternalAndReservedAttribute6IFsObjInfo) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IFsObjInfo(PRUint32 *aInternalAndReservedAttribute7IFsObjInfo) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IFsObjInfo(PRUint32 *aInternalAndReservedAttribute8IFsObjInfo) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IFSOBJINFO(_to) \
  NS_IMETHOD GetName(PRUnichar **aName) { return _to GetName(aName); } \
  NS_IMETHOD GetType(FsObjType_T *aType) { return _to GetType(aType); } \
  NS_IMETHOD GetFileAttributes(PRUnichar **aFileAttributes) { return _to GetFileAttributes(aFileAttributes); } \
  NS_IMETHOD GetObjectSize(PRInt64 *aObjectSize) { return _to GetObjectSize(aObjectSize); } \
  NS_IMETHOD GetAllocatedSize(PRInt64 *aAllocatedSize) { return _to GetAllocatedSize(aAllocatedSize); } \
  NS_IMETHOD GetAccessTime(PRInt64 *aAccessTime) { return _to GetAccessTime(aAccessTime); } \
  NS_IMETHOD GetBirthTime(PRInt64 *aBirthTime) { return _to GetBirthTime(aBirthTime); } \
  NS_IMETHOD GetChangeTime(PRInt64 *aChangeTime) { return _to GetChangeTime(aChangeTime); } \
  NS_IMETHOD GetModificationTime(PRInt64 *aModificationTime) { return _to GetModificationTime(aModificationTime); } \
  NS_IMETHOD GetUID(PRInt32 *aUID) { return _to GetUID(aUID); } \
  NS_IMETHOD GetUserName(PRUnichar **aUserName) { return _to GetUserName(aUserName); } \
  NS_IMETHOD GetGID(PRInt32 *aGID) { return _to GetGID(aGID); } \
  NS_IMETHOD GetGroupName(PRUnichar **aGroupName) { return _to GetGroupName(aGroupName); } \
  NS_IMETHOD GetNodeId(PRInt64 *aNodeId) { return _to GetNodeId(aNodeId); } \
  NS_IMETHOD GetNodeIdDevice(PRUint32 *aNodeIdDevice) { return _to GetNodeIdDevice(aNodeIdDevice); } \
  NS_IMETHOD GetHardLinks(PRUint32 *aHardLinks) { return _to GetHardLinks(aHardLinks); } \
  NS_IMETHOD GetDeviceNumber(PRUint32 *aDeviceNumber) { return _to GetDeviceNumber(aDeviceNumber); } \
  NS_IMETHOD GetGenerationId(PRUint32 *aGenerationId) { return _to GetGenerationId(aGenerationId); } \
  NS_IMETHOD GetUserFlags(PRUint32 *aUserFlags) { return _to GetUserFlags(aUserFlags); } \
  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); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IFsObjInfo(PRUint32 *aInternalAndReservedAttribute5IFsObjInfo) { return _to GetInternalAndReservedAttribute5IFsObjInfo(aInternalAndReservedAttribute5IFsObjInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IFsObjInfo(PRUint32 *aInternalAndReservedAttribute6IFsObjInfo) { return _to GetInternalAndReservedAttribute6IFsObjInfo(aInternalAndReservedAttribute6IFsObjInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IFsObjInfo(PRUint32 *aInternalAndReservedAttribute7IFsObjInfo) { return _to GetInternalAndReservedAttribute7IFsObjInfo(aInternalAndReservedAttribute7IFsObjInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IFsObjInfo(PRUint32 *aInternalAndReservedAttribute8IFsObjInfo) { return _to GetInternalAndReservedAttribute8IFsObjInfo(aInternalAndReservedAttribute8IFsObjInfo); } 

/* 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 GetName(PRUnichar **aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
  NS_IMETHOD GetType(FsObjType_T *aType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetType(aType); } \
  NS_IMETHOD GetFileAttributes(PRUnichar **aFileAttributes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFileAttributes(aFileAttributes); } \
  NS_IMETHOD GetObjectSize(PRInt64 *aObjectSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetObjectSize(aObjectSize); } \
  NS_IMETHOD GetAllocatedSize(PRInt64 *aAllocatedSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAllocatedSize(aAllocatedSize); } \
  NS_IMETHOD GetAccessTime(PRInt64 *aAccessTime) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAccessTime(aAccessTime); } \
  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 GetModificationTime(PRInt64 *aModificationTime) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetModificationTime(aModificationTime); } \
  NS_IMETHOD GetUID(PRInt32 *aUID) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUID(aUID); } \
  NS_IMETHOD GetUserName(PRUnichar **aUserName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUserName(aUserName); } \
  NS_IMETHOD GetGID(PRInt32 *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 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 GetHardLinks(PRUint32 *aHardLinks) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHardLinks(aHardLinks); } \
  NS_IMETHOD GetDeviceNumber(PRUint32 *aDeviceNumber) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDeviceNumber(aDeviceNumber); } \
  NS_IMETHOD GetGenerationId(PRUint32 *aGenerationId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGenerationId(aGenerationId); } \
  NS_IMETHOD GetUserFlags(PRUint32 *aUserFlags) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUserFlags(aUserFlags); } \
  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); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IFsObjInfo(PRUint32 *aInternalAndReservedAttribute5IFsObjInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IFsObjInfo(aInternalAndReservedAttribute5IFsObjInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IFsObjInfo(PRUint32 *aInternalAndReservedAttribute6IFsObjInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IFsObjInfo(aInternalAndReservedAttribute6IFsObjInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IFsObjInfo(PRUint32 *aInternalAndReservedAttribute7IFsObjInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IFsObjInfo(aInternalAndReservedAttribute7IFsObjInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IFsObjInfo(PRUint32 *aInternalAndReservedAttribute8IFsObjInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IFsObjInfo(aInternalAndReservedAttribute8IFsObjInfo); } 

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

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IFsObjInfo;

/* starting interface:    IGuestFsInfo */
#define IGUESTFSINFO_IID_STR "726eaca9-091e-41b4-bca6-355efe864107"

#define IGUESTFSINFO_IID \
  {0x726eaca9, 0x091e, 0x41b4, \
    { 0xbc, 0xa6, 0x35, 0x5e, 0xfe, 0x86, 0x41, 0x07 }}

class NS_NO_VTABLE IGuestFsInfo : public IFsInfo {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTFSINFO_IID)

  /* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTFSINFO \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTFSINFO(_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_IGUESTFSINFO(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

#define COM_FORWARD_IGuestFsInfo_GETTER_MidlDoesNotLikeEmptyInterfaces_TO(smth) NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces (PRBool * aMidlDoesNotLikeEmptyInterfaces) { return smth GetMidlDoesNotLikeEmptyInterfaces (aMidlDoesNotLikeEmptyInterfaces); }
#define COM_FORWARD_IGuestFsInfo_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_OBJ(obj) COM_FORWARD_IGuestFsInfo_GETTER_MidlDoesNotLikeEmptyInterfaces_TO ((obj)->)
#define COM_FORWARD_IGuestFsInfo_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_BASE(base) COM_FORWARD_IGuestFsInfo_GETTER_MidlDoesNotLikeEmptyInterfaces_TO (base::)
#define COM_FORWARD_IGuestFsInfo_TO(smth) NS_FORWARD_IGUESTFSINFO (smth)
#define COM_FORWARD_IGuestFsInfo_TO_OBJ(obj) COM_FORWARD_IGuestFsInfo_TO ((obj)->)
#define COM_FORWARD_IGuestFsInfo_TO_BASE(base) COM_FORWARD_IGuestFsInfo_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestFsInfo;

/* 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) NS_OVERRIDE; 

/* 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); } 

#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 "00892186-a4af-4627-b21f-fc561ce4473c"

#define IGUEST_IID \
  {0x00892186, 0xa4af, 0x4627, \
    { 0xb2, 0x1f, 0xfc, 0x56, 0x1c, 0xe4, 0x47, 0x3c }}

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 AdditionsRunLevelType_T additionsRunLevel; */
  NS_IMETHOD GetAdditionsRunLevel(AdditionsRunLevelType_T *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 AdditionsFacilityType_T facility, out long long timestamp, [retval] out AdditionsFacilityStatus_T status); */
  NS_IMETHOD GetFacilityStatus(AdditionsFacilityType_T facility, PRInt64 *timestamp, AdditionsFacilityStatus_T *status) = 0;

  /* void getAdditionsStatus (in AdditionsRunLevelType_T level, [retval] out boolean active); */
  NS_IMETHOD GetAdditionsStatus(AdditionsRunLevelType_T 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 shutdown (in unsigned long flagsSize, [array, size_is (flagsSize)] in GuestShutdownFlag_T flags); */
  NS_IMETHOD Shutdown(PRUint32 flagsSize, GuestShutdownFlag_T *flags) = 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 AdditionsUpdateFlag_T flags, [retval] out IProgress progress); */
  NS_IMETHOD UpdateGuestAdditions(const PRUnichar *source, PRUint32 argumentsSize, const PRUnichar **arguments, PRUint32 flagsSize, AdditionsUpdateFlag_T *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_OVERRIDE; \
  NS_IMETHOD GetAdditionsRunLevel(AdditionsRunLevelType_T *aAdditionsRunLevel) NS_OVERRIDE; \
  NS_IMETHOD GetAdditionsVersion(PRUnichar **aAdditionsVersion) NS_OVERRIDE; \
  NS_IMETHOD GetAdditionsRevision(PRUint32 *aAdditionsRevision) NS_OVERRIDE; \
  NS_IMETHOD GetDnDSource(IGuestDnDSource * *aDnDSource) NS_OVERRIDE; \
  NS_IMETHOD GetDnDTarget(IGuestDnDTarget * *aDnDTarget) NS_OVERRIDE; \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) NS_OVERRIDE; \
  NS_IMETHOD GetFacilities(PRUint32 *facilitiesSize, IAdditionsFacility * **facilities) NS_OVERRIDE; \
  NS_IMETHOD GetSessions(PRUint32 *sessionsSize, IGuestSession * **sessions) NS_OVERRIDE; \
  NS_IMETHOD GetMemoryBalloonSize(PRUint32 *aMemoryBalloonSize) NS_OVERRIDE; \
  NS_IMETHOD SetMemoryBalloonSize(PRUint32 aMemoryBalloonSize) NS_OVERRIDE; \
  NS_IMETHOD GetStatisticsUpdateInterval(PRUint32 *aStatisticsUpdateInterval) NS_OVERRIDE; \
  NS_IMETHOD SetStatisticsUpdateInterval(PRUint32 aStatisticsUpdateInterval) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IGuest(PRUint32 *aInternalAndReservedAttribute1IGuest) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IGuest(PRUint32 *aInternalAndReservedAttribute2IGuest) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IGuest(PRUint32 *aInternalAndReservedAttribute3IGuest) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IGuest(PRUint32 *aInternalAndReservedAttribute4IGuest) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IGuest(PRUint32 *aInternalAndReservedAttribute5IGuest) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IGuest(PRUint32 *aInternalAndReservedAttribute6IGuest) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IGuest(PRUint32 *aInternalAndReservedAttribute7IGuest) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IGuest(PRUint32 *aInternalAndReservedAttribute8IGuest) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute9IGuest(PRUint32 *aInternalAndReservedAttribute9IGuest) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute10IGuest(PRUint32 *aInternalAndReservedAttribute10IGuest) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute11IGuest(PRUint32 *aInternalAndReservedAttribute11IGuest) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute12IGuest(PRUint32 *aInternalAndReservedAttribute12IGuest) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute13IGuest(PRUint32 *aInternalAndReservedAttribute13IGuest) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute14IGuest(PRUint32 *aInternalAndReservedAttribute14IGuest) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute15IGuest(PRUint32 *aInternalAndReservedAttribute15IGuest) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute16IGuest(PRUint32 *aInternalAndReservedAttribute16IGuest) NS_OVERRIDE; \
  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_OVERRIDE; \
  NS_IMETHOD GetFacilityStatus(AdditionsFacilityType_T facility, PRInt64 *timestamp, AdditionsFacilityStatus_T *status) NS_OVERRIDE; \
  NS_IMETHOD GetAdditionsStatus(AdditionsRunLevelType_T level, PRBool *active) NS_OVERRIDE; \
  NS_IMETHOD SetCredentials(const PRUnichar *userName, const PRUnichar *password, const PRUnichar *domain, PRBool allowInteractiveLogon) NS_OVERRIDE; \
  NS_IMETHOD CreateSession(const PRUnichar *user, const PRUnichar *password, const PRUnichar *domain, const PRUnichar *sessionName, IGuestSession * *guestSession) NS_OVERRIDE; \
  NS_IMETHOD FindSession(const PRUnichar *sessionName, PRUint32 *sessionsSize, IGuestSession * **sessions) NS_OVERRIDE; \
  NS_IMETHOD Shutdown(PRUint32 flagsSize, GuestShutdownFlag_T *flags) NS_OVERRIDE; \
  NS_IMETHOD UpdateGuestAdditions(const PRUnichar *source, PRUint32 argumentsSize, const PRUnichar **arguments, PRUint32 flagsSize, AdditionsUpdateFlag_T *flags, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IGuest(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IGuest(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IGuest(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IGuest(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod5IGuest(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod6IGuest(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod7IGuest(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod8IGuest(void) NS_OVERRIDE; 

/* 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(AdditionsRunLevelType_T *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(AdditionsFacilityType_T facility, PRInt64 *timestamp, AdditionsFacilityStatus_T *status) { return _to GetFacilityStatus(facility, timestamp, status); } \
  NS_IMETHOD GetAdditionsStatus(AdditionsRunLevelType_T 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 Shutdown(PRUint32 flagsSize, GuestShutdownFlag_T *flags) { return _to Shutdown(flagsSize, flags); } \
  NS_IMETHOD UpdateGuestAdditions(const PRUnichar *source, PRUint32 argumentsSize, const PRUnichar **arguments, PRUint32 flagsSize, AdditionsUpdateFlag_T *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(AdditionsRunLevelType_T *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(AdditionsFacilityType_T facility, PRInt64 *timestamp, AdditionsFacilityStatus_T *status) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFacilityStatus(facility, timestamp, status); } \
  NS_IMETHOD GetAdditionsStatus(AdditionsRunLevelType_T 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 Shutdown(PRUint32 flagsSize, GuestShutdownFlag_T *flags) { return !_to ? NS_ERROR_NULL_POINTER : _to->Shutdown(flagsSize, flags); } \
  NS_IMETHOD UpdateGuestAdditions(const PRUnichar *source, PRUint32 argumentsSize, const PRUnichar **arguments, PRUint32 flagsSize, AdditionsUpdateFlag_T *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(); } 

#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_Shutdown_TO(smth) NS_IMETHOD Shutdown (PRUint32 aFlagsSize, PRUint32 * aFlags) { return smth Shutdown (aFlagsSize, aFlags); }
#define COM_FORWARD_IGuest_Shutdown_TO_OBJ(obj) COM_FORWARD_IGuest_Shutdown_TO ((obj)->)
#define COM_FORWARD_IGuest_Shutdown_TO_BASE(base) COM_FORWARD_IGuest_Shutdown_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 "d7b98d2b-30e8-447e-99cb-e31becae6ae4"

#define IPROGRESS_IID \
  {0xd7b98d2b, 0x30e8, 0x447e, \
    { 0x99, 0xcb, 0xe3, 0x1b, 0xec, 0xae, 0x6a, 0xe4 }}

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 IEventSource eventSource; */
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IProgress; */
  NS_IMETHOD GetInternalAndReservedAttribute1IProgress(PRUint32 *aInternalAndReservedAttribute1IProgress) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IProgress; */
  NS_IMETHOD GetInternalAndReservedAttribute2IProgress(PRUint32 *aInternalAndReservedAttribute2IProgress) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IProgress; */
  NS_IMETHOD GetInternalAndReservedAttribute3IProgress(PRUint32 *aInternalAndReservedAttribute3IProgress) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IProgress; */
  NS_IMETHOD GetInternalAndReservedAttribute4IProgress(PRUint32 *aInternalAndReservedAttribute4IProgress) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IProgress; */
  NS_IMETHOD GetInternalAndReservedAttribute5IProgress(PRUint32 *aInternalAndReservedAttribute5IProgress) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IProgress; */
  NS_IMETHOD GetInternalAndReservedAttribute6IProgress(PRUint32 *aInternalAndReservedAttribute6IProgress) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IProgress; */
  NS_IMETHOD GetInternalAndReservedAttribute7IProgress(PRUint32 *aInternalAndReservedAttribute7IProgress) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IProgress; */
  NS_IMETHOD GetInternalAndReservedAttribute8IProgress(PRUint32 *aInternalAndReservedAttribute8IProgress) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute9IProgress; */
  NS_IMETHOD GetInternalAndReservedAttribute9IProgress(PRUint32 *aInternalAndReservedAttribute9IProgress) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute10IProgress; */
  NS_IMETHOD GetInternalAndReservedAttribute10IProgress(PRUint32 *aInternalAndReservedAttribute10IProgress) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute11IProgress; */
  NS_IMETHOD GetInternalAndReservedAttribute11IProgress(PRUint32 *aInternalAndReservedAttribute11IProgress) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute12IProgress; */
  NS_IMETHOD GetInternalAndReservedAttribute12IProgress(PRUint32 *aInternalAndReservedAttribute12IProgress) = 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 cancel (); */
  NS_IMETHOD Cancel(void) = 0;

  /* void InternalAndReservedMethod1IProgress (); */
  NS_IMETHOD InternalAndReservedMethod1IProgress(void) = 0;

  /* void InternalAndReservedMethod2IProgress (); */
  NS_IMETHOD InternalAndReservedMethod2IProgress(void) = 0;

  /* void InternalAndReservedMethod3IProgress (); */
  NS_IMETHOD InternalAndReservedMethod3IProgress(void) = 0;

  /* void InternalAndReservedMethod4IProgress (); */
  NS_IMETHOD InternalAndReservedMethod4IProgress(void) = 0;

  /* void InternalAndReservedMethod5IProgress (); */
  NS_IMETHOD InternalAndReservedMethod5IProgress(void) = 0;

  /* void InternalAndReservedMethod6IProgress (); */
  NS_IMETHOD InternalAndReservedMethod6IProgress(void) = 0;

  /* void InternalAndReservedMethod7IProgress (); */
  NS_IMETHOD InternalAndReservedMethod7IProgress(void) = 0;

  /* void InternalAndReservedMethod8IProgress (); */
  NS_IMETHOD InternalAndReservedMethod8IProgress(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IPROGRESS \
  NS_IMETHOD GetId(PRUnichar **aId) NS_OVERRIDE; \
  NS_IMETHOD GetDescription(PRUnichar **aDescription) NS_OVERRIDE; \
  NS_IMETHOD GetInitiator(nsISupports * *aInitiator) NS_OVERRIDE; \
  NS_IMETHOD GetCancelable(PRBool *aCancelable) NS_OVERRIDE; \
  NS_IMETHOD GetPercent(PRUint32 *aPercent) NS_OVERRIDE; \
  NS_IMETHOD GetTimeRemaining(PRInt32 *aTimeRemaining) NS_OVERRIDE; \
  NS_IMETHOD GetCompleted(PRBool *aCompleted) NS_OVERRIDE; \
  NS_IMETHOD GetCanceled(PRBool *aCanceled) NS_OVERRIDE; \
  NS_IMETHOD GetResultCode(PRInt32 *aResultCode) NS_OVERRIDE; \
  NS_IMETHOD GetErrorInfo(IVirtualBoxErrorInfo * *aErrorInfo) NS_OVERRIDE; \
  NS_IMETHOD GetOperationCount(PRUint32 *aOperationCount) NS_OVERRIDE; \
  NS_IMETHOD GetOperation(PRUint32 *aOperation) NS_OVERRIDE; \
  NS_IMETHOD GetOperationDescription(PRUnichar **aOperationDescription) NS_OVERRIDE; \
  NS_IMETHOD GetOperationPercent(PRUint32 *aOperationPercent) NS_OVERRIDE; \
  NS_IMETHOD GetOperationWeight(PRUint32 *aOperationWeight) NS_OVERRIDE; \
  NS_IMETHOD GetTimeout(PRUint32 *aTimeout) NS_OVERRIDE; \
  NS_IMETHOD SetTimeout(PRUint32 aTimeout) NS_OVERRIDE; \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IProgress(PRUint32 *aInternalAndReservedAttribute1IProgress) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IProgress(PRUint32 *aInternalAndReservedAttribute2IProgress) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IProgress(PRUint32 *aInternalAndReservedAttribute3IProgress) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IProgress(PRUint32 *aInternalAndReservedAttribute4IProgress) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IProgress(PRUint32 *aInternalAndReservedAttribute5IProgress) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IProgress(PRUint32 *aInternalAndReservedAttribute6IProgress) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IProgress(PRUint32 *aInternalAndReservedAttribute7IProgress) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IProgress(PRUint32 *aInternalAndReservedAttribute8IProgress) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute9IProgress(PRUint32 *aInternalAndReservedAttribute9IProgress) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute10IProgress(PRUint32 *aInternalAndReservedAttribute10IProgress) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute11IProgress(PRUint32 *aInternalAndReservedAttribute11IProgress) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute12IProgress(PRUint32 *aInternalAndReservedAttribute12IProgress) NS_OVERRIDE; \
  NS_IMETHOD WaitForCompletion(PRInt32 timeout) NS_OVERRIDE; \
  NS_IMETHOD WaitForOperationCompletion(PRUint32 operation, PRInt32 timeout) NS_OVERRIDE; \
  NS_IMETHOD Cancel(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IProgress(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IProgress(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IProgress(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IProgress(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod5IProgress(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod6IProgress(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod7IProgress(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod8IProgress(void) NS_OVERRIDE; 

/* 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 GetEventSource(IEventSource * *aEventSource) { return _to GetEventSource(aEventSource); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IProgress(PRUint32 *aInternalAndReservedAttribute1IProgress) { return _to GetInternalAndReservedAttribute1IProgress(aInternalAndReservedAttribute1IProgress); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IProgress(PRUint32 *aInternalAndReservedAttribute2IProgress) { return _to GetInternalAndReservedAttribute2IProgress(aInternalAndReservedAttribute2IProgress); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IProgress(PRUint32 *aInternalAndReservedAttribute3IProgress) { return _to GetInternalAndReservedAttribute3IProgress(aInternalAndReservedAttribute3IProgress); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IProgress(PRUint32 *aInternalAndReservedAttribute4IProgress) { return _to GetInternalAndReservedAttribute4IProgress(aInternalAndReservedAttribute4IProgress); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IProgress(PRUint32 *aInternalAndReservedAttribute5IProgress) { return _to GetInternalAndReservedAttribute5IProgress(aInternalAndReservedAttribute5IProgress); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IProgress(PRUint32 *aInternalAndReservedAttribute6IProgress) { return _to GetInternalAndReservedAttribute6IProgress(aInternalAndReservedAttribute6IProgress); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IProgress(PRUint32 *aInternalAndReservedAttribute7IProgress) { return _to GetInternalAndReservedAttribute7IProgress(aInternalAndReservedAttribute7IProgress); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IProgress(PRUint32 *aInternalAndReservedAttribute8IProgress) { return _to GetInternalAndReservedAttribute8IProgress(aInternalAndReservedAttribute8IProgress); } \
  NS_IMETHOD GetInternalAndReservedAttribute9IProgress(PRUint32 *aInternalAndReservedAttribute9IProgress) { return _to GetInternalAndReservedAttribute9IProgress(aInternalAndReservedAttribute9IProgress); } \
  NS_IMETHOD GetInternalAndReservedAttribute10IProgress(PRUint32 *aInternalAndReservedAttribute10IProgress) { return _to GetInternalAndReservedAttribute10IProgress(aInternalAndReservedAttribute10IProgress); } \
  NS_IMETHOD GetInternalAndReservedAttribute11IProgress(PRUint32 *aInternalAndReservedAttribute11IProgress) { return _to GetInternalAndReservedAttribute11IProgress(aInternalAndReservedAttribute11IProgress); } \
  NS_IMETHOD GetInternalAndReservedAttribute12IProgress(PRUint32 *aInternalAndReservedAttribute12IProgress) { return _to GetInternalAndReservedAttribute12IProgress(aInternalAndReservedAttribute12IProgress); } \
  NS_IMETHOD WaitForCompletion(PRInt32 timeout) { return _to WaitForCompletion(timeout); } \
  NS_IMETHOD WaitForOperationCompletion(PRUint32 operation, PRInt32 timeout) { return _to WaitForOperationCompletion(operation, timeout); } \
  NS_IMETHOD Cancel(void) { return _to Cancel(); } \
  NS_IMETHOD InternalAndReservedMethod1IProgress(void) { return _to InternalAndReservedMethod1IProgress(); } \
  NS_IMETHOD InternalAndReservedMethod2IProgress(void) { return _to InternalAndReservedMethod2IProgress(); } \
  NS_IMETHOD InternalAndReservedMethod3IProgress(void) { return _to InternalAndReservedMethod3IProgress(); } \
  NS_IMETHOD InternalAndReservedMethod4IProgress(void) { return _to InternalAndReservedMethod4IProgress(); } \
  NS_IMETHOD InternalAndReservedMethod5IProgress(void) { return _to InternalAndReservedMethod5IProgress(); } \
  NS_IMETHOD InternalAndReservedMethod6IProgress(void) { return _to InternalAndReservedMethod6IProgress(); } \
  NS_IMETHOD InternalAndReservedMethod7IProgress(void) { return _to InternalAndReservedMethod7IProgress(); } \
  NS_IMETHOD InternalAndReservedMethod8IProgress(void) { return _to InternalAndReservedMethod8IProgress(); } 

/* 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 GetEventSource(IEventSource * *aEventSource) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEventSource(aEventSource); } \
  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 GetInternalAndReservedAttribute3IProgress(PRUint32 *aInternalAndReservedAttribute3IProgress) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IProgress(aInternalAndReservedAttribute3IProgress); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IProgress(PRUint32 *aInternalAndReservedAttribute4IProgress) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IProgress(aInternalAndReservedAttribute4IProgress); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IProgress(PRUint32 *aInternalAndReservedAttribute5IProgress) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IProgress(aInternalAndReservedAttribute5IProgress); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IProgress(PRUint32 *aInternalAndReservedAttribute6IProgress) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IProgress(aInternalAndReservedAttribute6IProgress); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IProgress(PRUint32 *aInternalAndReservedAttribute7IProgress) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IProgress(aInternalAndReservedAttribute7IProgress); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IProgress(PRUint32 *aInternalAndReservedAttribute8IProgress) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IProgress(aInternalAndReservedAttribute8IProgress); } \
  NS_IMETHOD GetInternalAndReservedAttribute9IProgress(PRUint32 *aInternalAndReservedAttribute9IProgress) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute9IProgress(aInternalAndReservedAttribute9IProgress); } \
  NS_IMETHOD GetInternalAndReservedAttribute10IProgress(PRUint32 *aInternalAndReservedAttribute10IProgress) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute10IProgress(aInternalAndReservedAttribute10IProgress); } \
  NS_IMETHOD GetInternalAndReservedAttribute11IProgress(PRUint32 *aInternalAndReservedAttribute11IProgress) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute11IProgress(aInternalAndReservedAttribute11IProgress); } \
  NS_IMETHOD GetInternalAndReservedAttribute12IProgress(PRUint32 *aInternalAndReservedAttribute12IProgress) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute12IProgress(aInternalAndReservedAttribute12IProgress); } \
  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 Cancel(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Cancel(); } \
  NS_IMETHOD InternalAndReservedMethod1IProgress(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IProgress(); } \
  NS_IMETHOD InternalAndReservedMethod2IProgress(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IProgress(); } \
  NS_IMETHOD InternalAndReservedMethod3IProgress(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IProgress(); } \
  NS_IMETHOD InternalAndReservedMethod4IProgress(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IProgress(); } \
  NS_IMETHOD InternalAndReservedMethod5IProgress(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod5IProgress(); } \
  NS_IMETHOD InternalAndReservedMethod6IProgress(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod6IProgress(); } \
  NS_IMETHOD InternalAndReservedMethod7IProgress(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod7IProgress(); } \
  NS_IMETHOD InternalAndReservedMethod8IProgress(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod8IProgress(); } 

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

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IProgress;

/* starting interface:    IInternalProgressControl */
#define IINTERNALPROGRESSCONTROL_IID_STR "41a033b8-cc87-4f6e-a0e9-47bb7f2d4be5"

#define IINTERNALPROGRESSCONTROL_IID \
  {0x41a033b8, 0xcc87, 0x4f6e, \
    { 0xa0, 0xe9, 0x47, 0xbb, 0x7f, 0x2d, 0x4b, 0xe5 }}

class NS_NO_VTABLE IInternalProgressControl : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IINTERNALPROGRESSCONTROL_IID)

  /* readonly attribute unsigned long InternalAndReservedAttribute1IInternalProgressControl; */
  NS_IMETHOD GetInternalAndReservedAttribute1IInternalProgressControl(PRUint32 *aInternalAndReservedAttribute1IInternalProgressControl) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IInternalProgressControl; */
  NS_IMETHOD GetInternalAndReservedAttribute2IInternalProgressControl(PRUint32 *aInternalAndReservedAttribute2IInternalProgressControl) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IInternalProgressControl; */
  NS_IMETHOD GetInternalAndReservedAttribute3IInternalProgressControl(PRUint32 *aInternalAndReservedAttribute3IInternalProgressControl) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IInternalProgressControl; */
  NS_IMETHOD GetInternalAndReservedAttribute4IInternalProgressControl(PRUint32 *aInternalAndReservedAttribute4IInternalProgressControl) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IInternalProgressControl; */
  NS_IMETHOD GetInternalAndReservedAttribute5IInternalProgressControl(PRUint32 *aInternalAndReservedAttribute5IInternalProgressControl) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IInternalProgressControl; */
  NS_IMETHOD GetInternalAndReservedAttribute6IInternalProgressControl(PRUint32 *aInternalAndReservedAttribute6IInternalProgressControl) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IInternalProgressControl; */
  NS_IMETHOD GetInternalAndReservedAttribute7IInternalProgressControl(PRUint32 *aInternalAndReservedAttribute7IInternalProgressControl) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IInternalProgressControl; */
  NS_IMETHOD GetInternalAndReservedAttribute8IInternalProgressControl(PRUint32 *aInternalAndReservedAttribute8IInternalProgressControl) = 0;

  /* void setCurrentOperationProgress (in unsigned long percent); */
  NS_IMETHOD SetCurrentOperationProgress(PRUint32 percent) = 0;

  /* void waitForOtherProgressCompletion (in IProgress progressOther, in unsigned long timeoutMS); */
  NS_IMETHOD WaitForOtherProgressCompletion(IProgress * progressOther, PRUint32 timeoutMS) = 0;

  /* void setNextOperation (in wstring nextOperationDescription, in unsigned long nextOperationsWeight); */
  NS_IMETHOD SetNextOperation(const PRUnichar *nextOperationDescription, PRUint32 nextOperationsWeight) = 0;

  /* void notifyPointOfNoReturn (); */
  NS_IMETHOD NotifyPointOfNoReturn(void) = 0;

  /* void notifyComplete (in long resultCode, in IVirtualBoxErrorInfo errorInfo); */
  NS_IMETHOD NotifyComplete(PRInt32 resultCode, IVirtualBoxErrorInfo * errorInfo) = 0;

  /* void InternalAndReservedMethod1IInternalProgressControl (); */
  NS_IMETHOD InternalAndReservedMethod1IInternalProgressControl(void) = 0;

  /* void InternalAndReservedMethod2IInternalProgressControl (); */
  NS_IMETHOD InternalAndReservedMethod2IInternalProgressControl(void) = 0;

  /* void InternalAndReservedMethod3IInternalProgressControl (); */
  NS_IMETHOD InternalAndReservedMethod3IInternalProgressControl(void) = 0;

  /* void InternalAndReservedMethod4IInternalProgressControl (); */
  NS_IMETHOD InternalAndReservedMethod4IInternalProgressControl(void) = 0;

  /* void InternalAndReservedMethod5IInternalProgressControl (); */
  NS_IMETHOD InternalAndReservedMethod5IInternalProgressControl(void) = 0;

  /* void InternalAndReservedMethod6IInternalProgressControl (); */
  NS_IMETHOD InternalAndReservedMethod6IInternalProgressControl(void) = 0;

  /* void InternalAndReservedMethod7IInternalProgressControl (); */
  NS_IMETHOD InternalAndReservedMethod7IInternalProgressControl(void) = 0;

  /* void InternalAndReservedMethod8IInternalProgressControl (); */
  NS_IMETHOD InternalAndReservedMethod8IInternalProgressControl(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IINTERNALPROGRESSCONTROL \
  NS_IMETHOD GetInternalAndReservedAttribute1IInternalProgressControl(PRUint32 *aInternalAndReservedAttribute1IInternalProgressControl) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IInternalProgressControl(PRUint32 *aInternalAndReservedAttribute2IInternalProgressControl) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IInternalProgressControl(PRUint32 *aInternalAndReservedAttribute3IInternalProgressControl) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IInternalProgressControl(PRUint32 *aInternalAndReservedAttribute4IInternalProgressControl) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IInternalProgressControl(PRUint32 *aInternalAndReservedAttribute5IInternalProgressControl) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IInternalProgressControl(PRUint32 *aInternalAndReservedAttribute6IInternalProgressControl) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IInternalProgressControl(PRUint32 *aInternalAndReservedAttribute7IInternalProgressControl) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IInternalProgressControl(PRUint32 *aInternalAndReservedAttribute8IInternalProgressControl) NS_OVERRIDE; \
  NS_IMETHOD SetCurrentOperationProgress(PRUint32 percent) NS_OVERRIDE; \
  NS_IMETHOD WaitForOtherProgressCompletion(IProgress * progressOther, PRUint32 timeoutMS) NS_OVERRIDE; \
  NS_IMETHOD SetNextOperation(const PRUnichar *nextOperationDescription, PRUint32 nextOperationsWeight) NS_OVERRIDE; \
  NS_IMETHOD NotifyPointOfNoReturn(void) NS_OVERRIDE; \
  NS_IMETHOD NotifyComplete(PRInt32 resultCode, IVirtualBoxErrorInfo * errorInfo) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IInternalProgressControl(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IInternalProgressControl(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IInternalProgressControl(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IInternalProgressControl(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod5IInternalProgressControl(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod6IInternalProgressControl(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod7IInternalProgressControl(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod8IInternalProgressControl(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IINTERNALPROGRESSCONTROL(_to) \
  NS_IMETHOD GetInternalAndReservedAttribute1IInternalProgressControl(PRUint32 *aInternalAndReservedAttribute1IInternalProgressControl) { return _to GetInternalAndReservedAttribute1IInternalProgressControl(aInternalAndReservedAttribute1IInternalProgressControl); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IInternalProgressControl(PRUint32 *aInternalAndReservedAttribute2IInternalProgressControl) { return _to GetInternalAndReservedAttribute2IInternalProgressControl(aInternalAndReservedAttribute2IInternalProgressControl); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IInternalProgressControl(PRUint32 *aInternalAndReservedAttribute3IInternalProgressControl) { return _to GetInternalAndReservedAttribute3IInternalProgressControl(aInternalAndReservedAttribute3IInternalProgressControl); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IInternalProgressControl(PRUint32 *aInternalAndReservedAttribute4IInternalProgressControl) { return _to GetInternalAndReservedAttribute4IInternalProgressControl(aInternalAndReservedAttribute4IInternalProgressControl); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IInternalProgressControl(PRUint32 *aInternalAndReservedAttribute5IInternalProgressControl) { return _to GetInternalAndReservedAttribute5IInternalProgressControl(aInternalAndReservedAttribute5IInternalProgressControl); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IInternalProgressControl(PRUint32 *aInternalAndReservedAttribute6IInternalProgressControl) { return _to GetInternalAndReservedAttribute6IInternalProgressControl(aInternalAndReservedAttribute6IInternalProgressControl); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IInternalProgressControl(PRUint32 *aInternalAndReservedAttribute7IInternalProgressControl) { return _to GetInternalAndReservedAttribute7IInternalProgressControl(aInternalAndReservedAttribute7IInternalProgressControl); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IInternalProgressControl(PRUint32 *aInternalAndReservedAttribute8IInternalProgressControl) { return _to GetInternalAndReservedAttribute8IInternalProgressControl(aInternalAndReservedAttribute8IInternalProgressControl); } \
  NS_IMETHOD SetCurrentOperationProgress(PRUint32 percent) { return _to SetCurrentOperationProgress(percent); } \
  NS_IMETHOD WaitForOtherProgressCompletion(IProgress * progressOther, PRUint32 timeoutMS) { return _to WaitForOtherProgressCompletion(progressOther, timeoutMS); } \
  NS_IMETHOD SetNextOperation(const PRUnichar *nextOperationDescription, PRUint32 nextOperationsWeight) { return _to SetNextOperation(nextOperationDescription, nextOperationsWeight); } \
  NS_IMETHOD NotifyPointOfNoReturn(void) { return _to NotifyPointOfNoReturn(); } \
  NS_IMETHOD NotifyComplete(PRInt32 resultCode, IVirtualBoxErrorInfo * errorInfo) { return _to NotifyComplete(resultCode, errorInfo); } \
  NS_IMETHOD InternalAndReservedMethod1IInternalProgressControl(void) { return _to InternalAndReservedMethod1IInternalProgressControl(); } \
  NS_IMETHOD InternalAndReservedMethod2IInternalProgressControl(void) { return _to InternalAndReservedMethod2IInternalProgressControl(); } \
  NS_IMETHOD InternalAndReservedMethod3IInternalProgressControl(void) { return _to InternalAndReservedMethod3IInternalProgressControl(); } \
  NS_IMETHOD InternalAndReservedMethod4IInternalProgressControl(void) { return _to InternalAndReservedMethod4IInternalProgressControl(); } \
  NS_IMETHOD InternalAndReservedMethod5IInternalProgressControl(void) { return _to InternalAndReservedMethod5IInternalProgressControl(); } \
  NS_IMETHOD InternalAndReservedMethod6IInternalProgressControl(void) { return _to InternalAndReservedMethod6IInternalProgressControl(); } \
  NS_IMETHOD InternalAndReservedMethod7IInternalProgressControl(void) { return _to InternalAndReservedMethod7IInternalProgressControl(); } \
  NS_IMETHOD InternalAndReservedMethod8IInternalProgressControl(void) { return _to InternalAndReservedMethod8IInternalProgressControl(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IINTERNALPROGRESSCONTROL(_to) \
  NS_IMETHOD GetInternalAndReservedAttribute1IInternalProgressControl(PRUint32 *aInternalAndReservedAttribute1IInternalProgressControl) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IInternalProgressControl(aInternalAndReservedAttribute1IInternalProgressControl); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IInternalProgressControl(PRUint32 *aInternalAndReservedAttribute2IInternalProgressControl) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IInternalProgressControl(aInternalAndReservedAttribute2IInternalProgressControl); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IInternalProgressControl(PRUint32 *aInternalAndReservedAttribute3IInternalProgressControl) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IInternalProgressControl(aInternalAndReservedAttribute3IInternalProgressControl); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IInternalProgressControl(PRUint32 *aInternalAndReservedAttribute4IInternalProgressControl) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IInternalProgressControl(aInternalAndReservedAttribute4IInternalProgressControl); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IInternalProgressControl(PRUint32 *aInternalAndReservedAttribute5IInternalProgressControl) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IInternalProgressControl(aInternalAndReservedAttribute5IInternalProgressControl); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IInternalProgressControl(PRUint32 *aInternalAndReservedAttribute6IInternalProgressControl) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IInternalProgressControl(aInternalAndReservedAttribute6IInternalProgressControl); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IInternalProgressControl(PRUint32 *aInternalAndReservedAttribute7IInternalProgressControl) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IInternalProgressControl(aInternalAndReservedAttribute7IInternalProgressControl); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IInternalProgressControl(PRUint32 *aInternalAndReservedAttribute8IInternalProgressControl) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IInternalProgressControl(aInternalAndReservedAttribute8IInternalProgressControl); } \
  NS_IMETHOD SetCurrentOperationProgress(PRUint32 percent) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCurrentOperationProgress(percent); } \
  NS_IMETHOD WaitForOtherProgressCompletion(IProgress * progressOther, PRUint32 timeoutMS) { return !_to ? NS_ERROR_NULL_POINTER : _to->WaitForOtherProgressCompletion(progressOther, timeoutMS); } \
  NS_IMETHOD SetNextOperation(const PRUnichar *nextOperationDescription, PRUint32 nextOperationsWeight) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetNextOperation(nextOperationDescription, nextOperationsWeight); } \
  NS_IMETHOD NotifyPointOfNoReturn(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyPointOfNoReturn(); } \
  NS_IMETHOD NotifyComplete(PRInt32 resultCode, IVirtualBoxErrorInfo * errorInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyComplete(resultCode, errorInfo); } \
  NS_IMETHOD InternalAndReservedMethod1IInternalProgressControl(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IInternalProgressControl(); } \
  NS_IMETHOD InternalAndReservedMethod2IInternalProgressControl(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IInternalProgressControl(); } \
  NS_IMETHOD InternalAndReservedMethod3IInternalProgressControl(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IInternalProgressControl(); } \
  NS_IMETHOD InternalAndReservedMethod4IInternalProgressControl(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IInternalProgressControl(); } \
  NS_IMETHOD InternalAndReservedMethod5IInternalProgressControl(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod5IInternalProgressControl(); } \
  NS_IMETHOD InternalAndReservedMethod6IInternalProgressControl(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod6IInternalProgressControl(); } \
  NS_IMETHOD InternalAndReservedMethod7IInternalProgressControl(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod7IInternalProgressControl(); } \
  NS_IMETHOD InternalAndReservedMethod8IInternalProgressControl(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod8IInternalProgressControl(); } 

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

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IInternalProgressControl;

/* starting interface:    ISnapshot */
#define ISNAPSHOT_IID_STR "6cc49055-dad4-4496-85cf-3f76bcb3b5fa"

#define ISNAPSHOT_IID \
  {0x6cc49055, 0xdad4, 0x4496, \
    { 0x85, 0xcf, 0x3f, 0x76, 0xbc, 0xb3, 0xb5, 0xfa }}

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 childrenCount; */
  NS_IMETHOD GetChildrenCount(PRUint32 *aChildrenCount) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1ISnapshot; */
  NS_IMETHOD GetInternalAndReservedAttribute1ISnapshot(PRUint32 *aInternalAndReservedAttribute1ISnapshot) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2ISnapshot; */
  NS_IMETHOD GetInternalAndReservedAttribute2ISnapshot(PRUint32 *aInternalAndReservedAttribute2ISnapshot) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3ISnapshot; */
  NS_IMETHOD GetInternalAndReservedAttribute3ISnapshot(PRUint32 *aInternalAndReservedAttribute3ISnapshot) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4ISnapshot; */
  NS_IMETHOD GetInternalAndReservedAttribute4ISnapshot(PRUint32 *aInternalAndReservedAttribute4ISnapshot) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5ISnapshot; */
  NS_IMETHOD GetInternalAndReservedAttribute5ISnapshot(PRUint32 *aInternalAndReservedAttribute5ISnapshot) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6ISnapshot; */
  NS_IMETHOD GetInternalAndReservedAttribute6ISnapshot(PRUint32 *aInternalAndReservedAttribute6ISnapshot) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7ISnapshot; */
  NS_IMETHOD GetInternalAndReservedAttribute7ISnapshot(PRUint32 *aInternalAndReservedAttribute7ISnapshot) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8ISnapshot; */
  NS_IMETHOD GetInternalAndReservedAttribute8ISnapshot(PRUint32 *aInternalAndReservedAttribute8ISnapshot) = 0;

  /* void InternalAndReservedMethod1ISnapshot (); */
  NS_IMETHOD InternalAndReservedMethod1ISnapshot(void) = 0;

  /* void InternalAndReservedMethod2ISnapshot (); */
  NS_IMETHOD InternalAndReservedMethod2ISnapshot(void) = 0;

  /* void InternalAndReservedMethod3ISnapshot (); */
  NS_IMETHOD InternalAndReservedMethod3ISnapshot(void) = 0;

  /* void InternalAndReservedMethod4ISnapshot (); */
  NS_IMETHOD InternalAndReservedMethod4ISnapshot(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ISNAPSHOT \
  NS_IMETHOD GetId(PRUnichar **aId) NS_OVERRIDE; \
  NS_IMETHOD GetName(PRUnichar **aName) NS_OVERRIDE; \
  NS_IMETHOD SetName(const PRUnichar *aName) NS_OVERRIDE; \
  NS_IMETHOD GetDescription(PRUnichar **aDescription) NS_OVERRIDE; \
  NS_IMETHOD SetDescription(const PRUnichar *aDescription) NS_OVERRIDE; \
  NS_IMETHOD GetTimeStamp(PRInt64 *aTimeStamp) NS_OVERRIDE; \
  NS_IMETHOD GetOnline(PRBool *aOnline) NS_OVERRIDE; \
  NS_IMETHOD GetMachine(IMachine * *aMachine) NS_OVERRIDE; \
  NS_IMETHOD GetParent(ISnapshot * *aParent) NS_OVERRIDE; \
  NS_IMETHOD GetChildren(PRUint32 *childrenSize, ISnapshot * **children) NS_OVERRIDE; \
  NS_IMETHOD GetChildrenCount(PRUint32 *aChildrenCount) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1ISnapshot(PRUint32 *aInternalAndReservedAttribute1ISnapshot) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2ISnapshot(PRUint32 *aInternalAndReservedAttribute2ISnapshot) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3ISnapshot(PRUint32 *aInternalAndReservedAttribute3ISnapshot) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4ISnapshot(PRUint32 *aInternalAndReservedAttribute4ISnapshot) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5ISnapshot(PRUint32 *aInternalAndReservedAttribute5ISnapshot) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6ISnapshot(PRUint32 *aInternalAndReservedAttribute6ISnapshot) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7ISnapshot(PRUint32 *aInternalAndReservedAttribute7ISnapshot) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8ISnapshot(PRUint32 *aInternalAndReservedAttribute8ISnapshot) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1ISnapshot(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2ISnapshot(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3ISnapshot(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4ISnapshot(void) NS_OVERRIDE; 

/* 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 GetChildrenCount(PRUint32 *aChildrenCount) { return _to GetChildrenCount(aChildrenCount); } \
  NS_IMETHOD GetInternalAndReservedAttribute1ISnapshot(PRUint32 *aInternalAndReservedAttribute1ISnapshot) { return _to GetInternalAndReservedAttribute1ISnapshot(aInternalAndReservedAttribute1ISnapshot); } \
  NS_IMETHOD GetInternalAndReservedAttribute2ISnapshot(PRUint32 *aInternalAndReservedAttribute2ISnapshot) { return _to GetInternalAndReservedAttribute2ISnapshot(aInternalAndReservedAttribute2ISnapshot); } \
  NS_IMETHOD GetInternalAndReservedAttribute3ISnapshot(PRUint32 *aInternalAndReservedAttribute3ISnapshot) { return _to GetInternalAndReservedAttribute3ISnapshot(aInternalAndReservedAttribute3ISnapshot); } \
  NS_IMETHOD GetInternalAndReservedAttribute4ISnapshot(PRUint32 *aInternalAndReservedAttribute4ISnapshot) { return _to GetInternalAndReservedAttribute4ISnapshot(aInternalAndReservedAttribute4ISnapshot); } \
  NS_IMETHOD GetInternalAndReservedAttribute5ISnapshot(PRUint32 *aInternalAndReservedAttribute5ISnapshot) { return _to GetInternalAndReservedAttribute5ISnapshot(aInternalAndReservedAttribute5ISnapshot); } \
  NS_IMETHOD GetInternalAndReservedAttribute6ISnapshot(PRUint32 *aInternalAndReservedAttribute6ISnapshot) { return _to GetInternalAndReservedAttribute6ISnapshot(aInternalAndReservedAttribute6ISnapshot); } \
  NS_IMETHOD GetInternalAndReservedAttribute7ISnapshot(PRUint32 *aInternalAndReservedAttribute7ISnapshot) { return _to GetInternalAndReservedAttribute7ISnapshot(aInternalAndReservedAttribute7ISnapshot); } \
  NS_IMETHOD GetInternalAndReservedAttribute8ISnapshot(PRUint32 *aInternalAndReservedAttribute8ISnapshot) { return _to GetInternalAndReservedAttribute8ISnapshot(aInternalAndReservedAttribute8ISnapshot); } \
  NS_IMETHOD InternalAndReservedMethod1ISnapshot(void) { return _to InternalAndReservedMethod1ISnapshot(); } \
  NS_IMETHOD InternalAndReservedMethod2ISnapshot(void) { return _to InternalAndReservedMethod2ISnapshot(); } \
  NS_IMETHOD InternalAndReservedMethod3ISnapshot(void) { return _to InternalAndReservedMethod3ISnapshot(); } \
  NS_IMETHOD InternalAndReservedMethod4ISnapshot(void) { return _to InternalAndReservedMethod4ISnapshot(); } 

/* 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 GetChildrenCount(PRUint32 *aChildrenCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetChildrenCount(aChildrenCount); } \
  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 GetInternalAndReservedAttribute3ISnapshot(PRUint32 *aInternalAndReservedAttribute3ISnapshot) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3ISnapshot(aInternalAndReservedAttribute3ISnapshot); } \
  NS_IMETHOD GetInternalAndReservedAttribute4ISnapshot(PRUint32 *aInternalAndReservedAttribute4ISnapshot) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4ISnapshot(aInternalAndReservedAttribute4ISnapshot); } \
  NS_IMETHOD GetInternalAndReservedAttribute5ISnapshot(PRUint32 *aInternalAndReservedAttribute5ISnapshot) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5ISnapshot(aInternalAndReservedAttribute5ISnapshot); } \
  NS_IMETHOD GetInternalAndReservedAttribute6ISnapshot(PRUint32 *aInternalAndReservedAttribute6ISnapshot) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6ISnapshot(aInternalAndReservedAttribute6ISnapshot); } \
  NS_IMETHOD GetInternalAndReservedAttribute7ISnapshot(PRUint32 *aInternalAndReservedAttribute7ISnapshot) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7ISnapshot(aInternalAndReservedAttribute7ISnapshot); } \
  NS_IMETHOD GetInternalAndReservedAttribute8ISnapshot(PRUint32 *aInternalAndReservedAttribute8ISnapshot) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8ISnapshot(aInternalAndReservedAttribute8ISnapshot); } \
  NS_IMETHOD InternalAndReservedMethod1ISnapshot(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1ISnapshot(); } \
  NS_IMETHOD InternalAndReservedMethod2ISnapshot(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2ISnapshot(); } \
  NS_IMETHOD InternalAndReservedMethod3ISnapshot(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3ISnapshot(); } \
  NS_IMETHOD InternalAndReservedMethod4ISnapshot(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4ISnapshot(); } 

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

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ISnapshot;

/* starting interface:    IMediumAttachment */
#define IMEDIUMATTACHMENT_IID_STR "8d095cb0-0126-43e0-b05d-326e74abb356"

#define IMEDIUMATTACHMENT_IID \
  {0x8d095cb0, 0x0126, 0x43e0, \
    { 0xb0, 0x5d, 0x32, 0x6e, 0x74, 0xab, 0xb3, 0x56 }}

class NS_NO_VTABLE IMediumAttachment : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IMEDIUMATTACHMENT_IID)

  /* readonly attribute IMachine machine; */
  NS_IMETHOD GetMachine(IMachine * *aMachine) = 0;

  /* 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 DeviceType_T type; */
  NS_IMETHOD GetType(DeviceType_T *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;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IMediumAttachment; */
  NS_IMETHOD GetInternalAndReservedAttribute5IMediumAttachment(PRUint32 *aInternalAndReservedAttribute5IMediumAttachment) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IMediumAttachment; */
  NS_IMETHOD GetInternalAndReservedAttribute6IMediumAttachment(PRUint32 *aInternalAndReservedAttribute6IMediumAttachment) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IMediumAttachment; */
  NS_IMETHOD GetInternalAndReservedAttribute7IMediumAttachment(PRUint32 *aInternalAndReservedAttribute7IMediumAttachment) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IMediumAttachment; */
  NS_IMETHOD GetInternalAndReservedAttribute8IMediumAttachment(PRUint32 *aInternalAndReservedAttribute8IMediumAttachment) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IMEDIUMATTACHMENT \
  NS_IMETHOD GetMachine(IMachine * *aMachine) NS_OVERRIDE; \
  NS_IMETHOD GetMedium(IMedium * *aMedium) NS_OVERRIDE; \
  NS_IMETHOD GetController(PRUnichar **aController) NS_OVERRIDE; \
  NS_IMETHOD GetPort(PRInt32 *aPort) NS_OVERRIDE; \
  NS_IMETHOD GetDevice(PRInt32 *aDevice) NS_OVERRIDE; \
  NS_IMETHOD GetType(DeviceType_T *aType) NS_OVERRIDE; \
  NS_IMETHOD GetPassthrough(PRBool *aPassthrough) NS_OVERRIDE; \
  NS_IMETHOD GetTemporaryEject(PRBool *aTemporaryEject) NS_OVERRIDE; \
  NS_IMETHOD GetIsEjected(PRBool *aIsEjected) NS_OVERRIDE; \
  NS_IMETHOD GetNonRotational(PRBool *aNonRotational) NS_OVERRIDE; \
  NS_IMETHOD GetDiscard(PRBool *aDiscard) NS_OVERRIDE; \
  NS_IMETHOD GetHotPluggable(PRBool *aHotPluggable) NS_OVERRIDE; \
  NS_IMETHOD GetBandwidthGroup(IBandwidthGroup * *aBandwidthGroup) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IMediumAttachment(PRUint32 *aInternalAndReservedAttribute1IMediumAttachment) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IMediumAttachment(PRUint32 *aInternalAndReservedAttribute2IMediumAttachment) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IMediumAttachment(PRUint32 *aInternalAndReservedAttribute3IMediumAttachment) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IMediumAttachment(PRUint32 *aInternalAndReservedAttribute4IMediumAttachment) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IMediumAttachment(PRUint32 *aInternalAndReservedAttribute5IMediumAttachment) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IMediumAttachment(PRUint32 *aInternalAndReservedAttribute6IMediumAttachment) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IMediumAttachment(PRUint32 *aInternalAndReservedAttribute7IMediumAttachment) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IMediumAttachment(PRUint32 *aInternalAndReservedAttribute8IMediumAttachment) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IMEDIUMATTACHMENT(_to) \
  NS_IMETHOD GetMachine(IMachine * *aMachine) { return _to GetMachine(aMachine); } \
  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(DeviceType_T *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); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IMediumAttachment(PRUint32 *aInternalAndReservedAttribute5IMediumAttachment) { return _to GetInternalAndReservedAttribute5IMediumAttachment(aInternalAndReservedAttribute5IMediumAttachment); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IMediumAttachment(PRUint32 *aInternalAndReservedAttribute6IMediumAttachment) { return _to GetInternalAndReservedAttribute6IMediumAttachment(aInternalAndReservedAttribute6IMediumAttachment); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IMediumAttachment(PRUint32 *aInternalAndReservedAttribute7IMediumAttachment) { return _to GetInternalAndReservedAttribute7IMediumAttachment(aInternalAndReservedAttribute7IMediumAttachment); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IMediumAttachment(PRUint32 *aInternalAndReservedAttribute8IMediumAttachment) { return _to GetInternalAndReservedAttribute8IMediumAttachment(aInternalAndReservedAttribute8IMediumAttachment); } 

/* 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 GetMachine(IMachine * *aMachine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMachine(aMachine); } \
  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(DeviceType_T *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); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IMediumAttachment(PRUint32 *aInternalAndReservedAttribute5IMediumAttachment) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IMediumAttachment(aInternalAndReservedAttribute5IMediumAttachment); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IMediumAttachment(PRUint32 *aInternalAndReservedAttribute6IMediumAttachment) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IMediumAttachment(aInternalAndReservedAttribute6IMediumAttachment); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IMediumAttachment(PRUint32 *aInternalAndReservedAttribute7IMediumAttachment) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IMediumAttachment(aInternalAndReservedAttribute7IMediumAttachment); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IMediumAttachment(PRUint32 *aInternalAndReservedAttribute8IMediumAttachment) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IMediumAttachment(aInternalAndReservedAttribute8IMediumAttachment); } 

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

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IMediumAttachment;

/* starting interface:    IMedium */
#define IMEDIUM_IID_STR "7d510820-a678-4730-a862-818dcd3fbed0"

#define IMEDIUM_IID \
  {0x7d510820, 0xa678, 0x4730, \
    { 0xa8, 0x62, 0x81, 0x8d, 0xcd, 0x3f, 0xbe, 0xd0 }}

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 MediumState_T state; */
  NS_IMETHOD GetState(MediumState_T *aState) = 0;

  /* void getVariant (out unsigned long variantSize, [array, size_is (variantSize), retval] out MediumVariant_T variant); */
  NS_IMETHOD GetVariant(PRUint32 *variantSize, MediumVariant_T **variant) = 0;

  /* attribute wstring location; */
  NS_IMETHOD GetLocation(PRUnichar **aLocation) = 0;
  NS_IMETHOD SetLocation(const PRUnichar *aLocation) = 0;

  /* readonly attribute wstring name; */
  NS_IMETHOD GetName(PRUnichar **aName) = 0;

  /* readonly attribute DeviceType_T deviceType; */
  NS_IMETHOD GetDeviceType(DeviceType_T *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 MediumType_T type; */
  NS_IMETHOD GetType(MediumType_T *aType) = 0;
  NS_IMETHOD SetType(MediumType_T aType) = 0;

  /* void getAllowedTypes (out unsigned long allowedTypesSize, [array, size_is (allowedTypesSize), retval] out MediumType_T allowedTypes); */
  NS_IMETHOD GetAllowedTypes(PRUint32 *allowedTypesSize, MediumType_T **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;

  /* readonly attribute unsigned long InternalAndReservedAttribute9IMedium; */
  NS_IMETHOD GetInternalAndReservedAttribute9IMedium(PRUint32 *aInternalAndReservedAttribute9IMedium) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute10IMedium; */
  NS_IMETHOD GetInternalAndReservedAttribute10IMedium(PRUint32 *aInternalAndReservedAttribute10IMedium) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute11IMedium; */
  NS_IMETHOD GetInternalAndReservedAttribute11IMedium(PRUint32 *aInternalAndReservedAttribute11IMedium) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute12IMedium; */
  NS_IMETHOD GetInternalAndReservedAttribute12IMedium(PRUint32 *aInternalAndReservedAttribute12IMedium) = 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 MediumState_T state); */
  NS_IMETHOD RefreshState(MediumState_T *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 MediumVariant_T variant, [retval] out IProgress progress); */
  NS_IMETHOD CreateBaseStorage(PRInt64 logicalSize, PRUint32 variantSize, MediumVariant_T *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 MediumVariant_T variant, [retval] out IProgress progress); */
  NS_IMETHOD CreateDiffStorage(IMedium * target, PRUint32 variantSize, MediumVariant_T *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 MediumVariant_T variant, in IMedium parent, [retval] out IProgress progress); */
  NS_IMETHOD CloneTo(IMedium * target, PRUint32 variantSize, MediumVariant_T *variant, IMedium * parent, IProgress * *progress) = 0;

  /* void cloneToBase (in IMedium target, in unsigned long variantSize, [array, size_is (variantSize)] in MediumVariant_T variant, [retval] out IProgress progress); */
  NS_IMETHOD CloneToBase(IMedium * target, PRUint32 variantSize, MediumVariant_T *variant, IProgress * *progress) = 0;

  /* void moveTo (in wstring location, [retval] out IProgress progress); */
  NS_IMETHOD MoveTo(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 openForIO (in boolean writable, in wstring password, [retval] out IMediumIO mediumIO); */
  NS_IMETHOD OpenForIO(PRBool writable, const PRUnichar *password, IMediumIO * *mediumIO) = 0;

  /* void resizeAndCloneTo (in IMedium target, in long long logicalSize, in unsigned long variantSize, [array, size_is (variantSize)] in MediumVariant_T variant, in IMedium parent, [retval] out IProgress progress); */
  NS_IMETHOD ResizeAndCloneTo(IMedium * target, PRInt64 logicalSize, PRUint32 variantSize, MediumVariant_T *variant, IMedium * parent, IProgress * *progress) = 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;

  /* void InternalAndReservedMethod5IMedium (); */
  NS_IMETHOD InternalAndReservedMethod5IMedium(void) = 0;

  /* void InternalAndReservedMethod6IMedium (); */
  NS_IMETHOD InternalAndReservedMethod6IMedium(void) = 0;

  /* void InternalAndReservedMethod7IMedium (); */
  NS_IMETHOD InternalAndReservedMethod7IMedium(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IMEDIUM \
  NS_IMETHOD GetId(PRUnichar **aId) NS_OVERRIDE; \
  NS_IMETHOD GetDescription(PRUnichar **aDescription) NS_OVERRIDE; \
  NS_IMETHOD SetDescription(const PRUnichar *aDescription) NS_OVERRIDE; \
  NS_IMETHOD GetState(MediumState_T *aState) NS_OVERRIDE; \
  NS_IMETHOD GetVariant(PRUint32 *variantSize, MediumVariant_T **variant) NS_OVERRIDE; \
  NS_IMETHOD GetLocation(PRUnichar **aLocation) NS_OVERRIDE; \
  NS_IMETHOD SetLocation(const PRUnichar *aLocation) NS_OVERRIDE; \
  NS_IMETHOD GetName(PRUnichar **aName) NS_OVERRIDE; \
  NS_IMETHOD GetDeviceType(DeviceType_T *aDeviceType) NS_OVERRIDE; \
  NS_IMETHOD GetHostDrive(PRBool *aHostDrive) NS_OVERRIDE; \
  NS_IMETHOD GetSize(PRInt64 *aSize) NS_OVERRIDE; \
  NS_IMETHOD GetFormat(PRUnichar **aFormat) NS_OVERRIDE; \
  NS_IMETHOD GetMediumFormat(IMediumFormat * *aMediumFormat) NS_OVERRIDE; \
  NS_IMETHOD GetType(MediumType_T *aType) NS_OVERRIDE; \
  NS_IMETHOD SetType(MediumType_T aType) NS_OVERRIDE; \
  NS_IMETHOD GetAllowedTypes(PRUint32 *allowedTypesSize, MediumType_T **allowedTypes) NS_OVERRIDE; \
  NS_IMETHOD GetParent(IMedium * *aParent) NS_OVERRIDE; \
  NS_IMETHOD GetChildren(PRUint32 *childrenSize, IMedium * **children) NS_OVERRIDE; \
  NS_IMETHOD GetBase(IMedium * *aBase) NS_OVERRIDE; \
  NS_IMETHOD GetReadOnly(PRBool *aReadOnly) NS_OVERRIDE; \
  NS_IMETHOD GetLogicalSize(PRInt64 *aLogicalSize) NS_OVERRIDE; \
  NS_IMETHOD GetAutoReset(PRBool *aAutoReset) NS_OVERRIDE; \
  NS_IMETHOD SetAutoReset(PRBool aAutoReset) NS_OVERRIDE; \
  NS_IMETHOD GetLastAccessError(PRUnichar **aLastAccessError) NS_OVERRIDE; \
  NS_IMETHOD GetMachineIds(PRUint32 *machineIdsSize, PRUnichar ***machineIds) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IMedium(PRUint32 *aInternalAndReservedAttribute1IMedium) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IMedium(PRUint32 *aInternalAndReservedAttribute2IMedium) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IMedium(PRUint32 *aInternalAndReservedAttribute3IMedium) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IMedium(PRUint32 *aInternalAndReservedAttribute4IMedium) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IMedium(PRUint32 *aInternalAndReservedAttribute5IMedium) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IMedium(PRUint32 *aInternalAndReservedAttribute6IMedium) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IMedium(PRUint32 *aInternalAndReservedAttribute7IMedium) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IMedium(PRUint32 *aInternalAndReservedAttribute8IMedium) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute9IMedium(PRUint32 *aInternalAndReservedAttribute9IMedium) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute10IMedium(PRUint32 *aInternalAndReservedAttribute10IMedium) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute11IMedium(PRUint32 *aInternalAndReservedAttribute11IMedium) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute12IMedium(PRUint32 *aInternalAndReservedAttribute12IMedium) NS_OVERRIDE; \
  NS_IMETHOD SetIds(PRBool setImageId, const PRUnichar *imageId, PRBool setParentId, const PRUnichar *parentId) NS_OVERRIDE; \
  NS_IMETHOD RefreshState(MediumState_T *state) NS_OVERRIDE; \
  NS_IMETHOD GetSnapshotIds(const PRUnichar *machineId, PRUint32 *snapshotIdsSize, PRUnichar ***snapshotIds) NS_OVERRIDE; \
  NS_IMETHOD LockRead(IToken * *token) NS_OVERRIDE; \
  NS_IMETHOD LockWrite(IToken * *token) NS_OVERRIDE; \
  NS_IMETHOD Close(void) NS_OVERRIDE; \
  NS_IMETHOD GetProperty(const PRUnichar *name, PRUnichar **value) NS_OVERRIDE; \
  NS_IMETHOD SetProperty(const PRUnichar *name, const PRUnichar *value) NS_OVERRIDE; \
  NS_IMETHOD GetProperties(const PRUnichar *names, PRUint32 *returnNamesSize, PRUnichar ***returnNames, PRUint32 *returnValuesSize, PRUnichar ***returnValues) NS_OVERRIDE; \
  NS_IMETHOD SetProperties(PRUint32 namesSize, const PRUnichar **names, PRUint32 valuesSize, const PRUnichar **values) NS_OVERRIDE; \
  NS_IMETHOD CreateBaseStorage(PRInt64 logicalSize, PRUint32 variantSize, MediumVariant_T *variant, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD DeleteStorage(IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD CreateDiffStorage(IMedium * target, PRUint32 variantSize, MediumVariant_T *variant, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD MergeTo(IMedium * target, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD CloneTo(IMedium * target, PRUint32 variantSize, MediumVariant_T *variant, IMedium * parent, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD CloneToBase(IMedium * target, PRUint32 variantSize, MediumVariant_T *variant, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD MoveTo(const PRUnichar *location, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD Compact(IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD Resize(PRInt64 logicalSize, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD Reset(IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD ChangeEncryption(const PRUnichar *currentPassword, const PRUnichar *cipher, const PRUnichar *newPassword, const PRUnichar *newPasswordId, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD GetEncryptionSettings(PRUnichar **cipher, PRUnichar **passwordId) NS_OVERRIDE; \
  NS_IMETHOD CheckEncryptionPassword(const PRUnichar *password) NS_OVERRIDE; \
  NS_IMETHOD OpenForIO(PRBool writable, const PRUnichar *password, IMediumIO * *mediumIO) NS_OVERRIDE; \
  NS_IMETHOD ResizeAndCloneTo(IMedium * target, PRInt64 logicalSize, PRUint32 variantSize, MediumVariant_T *variant, IMedium * parent, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IMedium(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IMedium(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IMedium(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IMedium(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod5IMedium(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod6IMedium(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod7IMedium(void) NS_OVERRIDE; 

/* 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(MediumState_T *aState) { return _to GetState(aState); } \
  NS_IMETHOD GetVariant(PRUint32 *variantSize, MediumVariant_T **variant) { return _to GetVariant(variantSize, variant); } \
  NS_IMETHOD GetLocation(PRUnichar **aLocation) { return _to GetLocation(aLocation); } \
  NS_IMETHOD SetLocation(const PRUnichar *aLocation) { return _to SetLocation(aLocation); } \
  NS_IMETHOD GetName(PRUnichar **aName) { return _to GetName(aName); } \
  NS_IMETHOD GetDeviceType(DeviceType_T *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(MediumType_T *aType) { return _to GetType(aType); } \
  NS_IMETHOD SetType(MediumType_T aType) { return _to SetType(aType); } \
  NS_IMETHOD GetAllowedTypes(PRUint32 *allowedTypesSize, MediumType_T **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 GetInternalAndReservedAttribute9IMedium(PRUint32 *aInternalAndReservedAttribute9IMedium) { return _to GetInternalAndReservedAttribute9IMedium(aInternalAndReservedAttribute9IMedium); } \
  NS_IMETHOD GetInternalAndReservedAttribute10IMedium(PRUint32 *aInternalAndReservedAttribute10IMedium) { return _to GetInternalAndReservedAttribute10IMedium(aInternalAndReservedAttribute10IMedium); } \
  NS_IMETHOD GetInternalAndReservedAttribute11IMedium(PRUint32 *aInternalAndReservedAttribute11IMedium) { return _to GetInternalAndReservedAttribute11IMedium(aInternalAndReservedAttribute11IMedium); } \
  NS_IMETHOD GetInternalAndReservedAttribute12IMedium(PRUint32 *aInternalAndReservedAttribute12IMedium) { return _to GetInternalAndReservedAttribute12IMedium(aInternalAndReservedAttribute12IMedium); } \
  NS_IMETHOD SetIds(PRBool setImageId, const PRUnichar *imageId, PRBool setParentId, const PRUnichar *parentId) { return _to SetIds(setImageId, imageId, setParentId, parentId); } \
  NS_IMETHOD RefreshState(MediumState_T *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, MediumVariant_T *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, MediumVariant_T *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, MediumVariant_T *variant, IMedium * parent, IProgress * *progress) { return _to CloneTo(target, variantSize, variant, parent, progress); } \
  NS_IMETHOD CloneToBase(IMedium * target, PRUint32 variantSize, MediumVariant_T *variant, IProgress * *progress) { return _to CloneToBase(target, variantSize, variant, progress); } \
  NS_IMETHOD MoveTo(const PRUnichar *location, IProgress * *progress) { return _to MoveTo(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 OpenForIO(PRBool writable, const PRUnichar *password, IMediumIO * *mediumIO) { return _to OpenForIO(writable, password, mediumIO); } \
  NS_IMETHOD ResizeAndCloneTo(IMedium * target, PRInt64 logicalSize, PRUint32 variantSize, MediumVariant_T *variant, IMedium * parent, IProgress * *progress) { return _to ResizeAndCloneTo(target, logicalSize, variantSize, variant, parent, progress); } \
  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(); } \
  NS_IMETHOD InternalAndReservedMethod5IMedium(void) { return _to InternalAndReservedMethod5IMedium(); } \
  NS_IMETHOD InternalAndReservedMethod6IMedium(void) { return _to InternalAndReservedMethod6IMedium(); } \
  NS_IMETHOD InternalAndReservedMethod7IMedium(void) { return _to InternalAndReservedMethod7IMedium(); } 

/* 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(MediumState_T *aState) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetState(aState); } \
  NS_IMETHOD GetVariant(PRUint32 *variantSize, MediumVariant_T **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 SetLocation(const PRUnichar *aLocation) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLocation(aLocation); } \
  NS_IMETHOD GetName(PRUnichar **aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
  NS_IMETHOD GetDeviceType(DeviceType_T *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(MediumType_T *aType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetType(aType); } \
  NS_IMETHOD SetType(MediumType_T aType) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetType(aType); } \
  NS_IMETHOD GetAllowedTypes(PRUint32 *allowedTypesSize, MediumType_T **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 GetInternalAndReservedAttribute9IMedium(PRUint32 *aInternalAndReservedAttribute9IMedium) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute9IMedium(aInternalAndReservedAttribute9IMedium); } \
  NS_IMETHOD GetInternalAndReservedAttribute10IMedium(PRUint32 *aInternalAndReservedAttribute10IMedium) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute10IMedium(aInternalAndReservedAttribute10IMedium); } \
  NS_IMETHOD GetInternalAndReservedAttribute11IMedium(PRUint32 *aInternalAndReservedAttribute11IMedium) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute11IMedium(aInternalAndReservedAttribute11IMedium); } \
  NS_IMETHOD GetInternalAndReservedAttribute12IMedium(PRUint32 *aInternalAndReservedAttribute12IMedium) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute12IMedium(aInternalAndReservedAttribute12IMedium); } \
  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(MediumState_T *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, MediumVariant_T *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, MediumVariant_T *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, MediumVariant_T *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, MediumVariant_T *variant, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->CloneToBase(target, variantSize, variant, progress); } \
  NS_IMETHOD MoveTo(const PRUnichar *location, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->MoveTo(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 OpenForIO(PRBool writable, const PRUnichar *password, IMediumIO * *mediumIO) { return !_to ? NS_ERROR_NULL_POINTER : _to->OpenForIO(writable, password, mediumIO); } \
  NS_IMETHOD ResizeAndCloneTo(IMedium * target, PRInt64 logicalSize, PRUint32 variantSize, MediumVariant_T *variant, IMedium * parent, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->ResizeAndCloneTo(target, logicalSize, variantSize, variant, parent, progress); } \
  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(); } \
  NS_IMETHOD InternalAndReservedMethod5IMedium(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod5IMedium(); } \
  NS_IMETHOD InternalAndReservedMethod6IMedium(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod6IMedium(); } \
  NS_IMETHOD InternalAndReservedMethod7IMedium(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod7IMedium(); } 

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

#define IMEDIUMFORMAT_IID \
  {0x11be93c7, 0xa862, 0x4dc9, \
    { 0x8c, 0x89, 0xbf, 0x4b, 0xa7, 0x4a, 0x88, 0x6a }}

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 MediumFormatCapabilities_T capabilities); */
  NS_IMETHOD GetCapabilities(PRUint32 *capabilitiesSize, MediumFormatCapabilities_T **capabilities) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IMediumFormat; */
  NS_IMETHOD GetInternalAndReservedAttribute1IMediumFormat(PRUint32 *aInternalAndReservedAttribute1IMediumFormat) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IMediumFormat; */
  NS_IMETHOD GetInternalAndReservedAttribute2IMediumFormat(PRUint32 *aInternalAndReservedAttribute2IMediumFormat) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IMediumFormat; */
  NS_IMETHOD GetInternalAndReservedAttribute3IMediumFormat(PRUint32 *aInternalAndReservedAttribute3IMediumFormat) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IMediumFormat; */
  NS_IMETHOD GetInternalAndReservedAttribute4IMediumFormat(PRUint32 *aInternalAndReservedAttribute4IMediumFormat) = 0;

  /* void describeFileExtensions (out unsigned long extensionsSize, [array, size_is (extensionsSize)] out wstring extensions, out unsigned long typesSize, [array, size_is (typesSize)] out DeviceType_T types); */
  NS_IMETHOD DescribeFileExtensions(PRUint32 *extensionsSize, PRUnichar ***extensions, PRUint32 *typesSize, DeviceType_T **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 DataType_T types, out unsigned long flagsSize, [array, size_is (flagsSize)] out unsigned long flags, out unsigned long defaultsSize, [array, size_is (defaultsSize)] out wstring defaults); */
  NS_IMETHOD DescribeProperties(PRUint32 *namesSize, PRUnichar ***names, PRUint32 *descriptionsSize, PRUnichar ***descriptions, PRUint32 *typesSize, DataType_T **types, PRUint32 *flagsSize, PRUint32 **flags, PRUint32 *defaultsSize, PRUnichar ***defaults) = 0;

  /* void InternalAndReservedMethod1IMediumFormat (); */
  NS_IMETHOD InternalAndReservedMethod1IMediumFormat(void) = 0;

  /* void InternalAndReservedMethod2IMediumFormat (); */
  NS_IMETHOD InternalAndReservedMethod2IMediumFormat(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IMEDIUMFORMAT \
  NS_IMETHOD GetId(PRUnichar **aId) NS_OVERRIDE; \
  NS_IMETHOD GetName(PRUnichar **aName) NS_OVERRIDE; \
  NS_IMETHOD GetCapabilities(PRUint32 *capabilitiesSize, MediumFormatCapabilities_T **capabilities) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IMediumFormat(PRUint32 *aInternalAndReservedAttribute1IMediumFormat) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IMediumFormat(PRUint32 *aInternalAndReservedAttribute2IMediumFormat) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IMediumFormat(PRUint32 *aInternalAndReservedAttribute3IMediumFormat) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IMediumFormat(PRUint32 *aInternalAndReservedAttribute4IMediumFormat) NS_OVERRIDE; \
  NS_IMETHOD DescribeFileExtensions(PRUint32 *extensionsSize, PRUnichar ***extensions, PRUint32 *typesSize, DeviceType_T **types) NS_OVERRIDE; \
  NS_IMETHOD DescribeProperties(PRUint32 *namesSize, PRUnichar ***names, PRUint32 *descriptionsSize, PRUnichar ***descriptions, PRUint32 *typesSize, DataType_T **types, PRUint32 *flagsSize, PRUint32 **flags, PRUint32 *defaultsSize, PRUnichar ***defaults) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IMediumFormat(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IMediumFormat(void) NS_OVERRIDE; 

/* 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, MediumFormatCapabilities_T **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 GetInternalAndReservedAttribute3IMediumFormat(PRUint32 *aInternalAndReservedAttribute3IMediumFormat) { return _to GetInternalAndReservedAttribute3IMediumFormat(aInternalAndReservedAttribute3IMediumFormat); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IMediumFormat(PRUint32 *aInternalAndReservedAttribute4IMediumFormat) { return _to GetInternalAndReservedAttribute4IMediumFormat(aInternalAndReservedAttribute4IMediumFormat); } \
  NS_IMETHOD DescribeFileExtensions(PRUint32 *extensionsSize, PRUnichar ***extensions, PRUint32 *typesSize, DeviceType_T **types) { return _to DescribeFileExtensions(extensionsSize, extensions, typesSize, types); } \
  NS_IMETHOD DescribeProperties(PRUint32 *namesSize, PRUnichar ***names, PRUint32 *descriptionsSize, PRUnichar ***descriptions, PRUint32 *typesSize, DataType_T **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(); } \
  NS_IMETHOD InternalAndReservedMethod2IMediumFormat(void) { return _to InternalAndReservedMethod2IMediumFormat(); } 

/* 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, MediumFormatCapabilities_T **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 GetInternalAndReservedAttribute3IMediumFormat(PRUint32 *aInternalAndReservedAttribute3IMediumFormat) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IMediumFormat(aInternalAndReservedAttribute3IMediumFormat); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IMediumFormat(PRUint32 *aInternalAndReservedAttribute4IMediumFormat) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IMediumFormat(aInternalAndReservedAttribute4IMediumFormat); } \
  NS_IMETHOD DescribeFileExtensions(PRUint32 *extensionsSize, PRUnichar ***extensions, PRUint32 *typesSize, DeviceType_T **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, DataType_T **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(); } \
  NS_IMETHOD InternalAndReservedMethod2IMediumFormat(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IMediumFormat(); } 

#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:    IDataStream */
#define IDATASTREAM_IID_STR "a338ed20-58d9-43ae-8b03-c1fd7088ef15"

#define IDATASTREAM_IID \
  {0xa338ed20, 0x58d9, 0x43ae, \
    { 0x8b, 0x03, 0xc1, 0xfd, 0x70, 0x88, 0xef, 0x15 }}

class NS_NO_VTABLE IDataStream : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IDATASTREAM_IID)

  /* readonly attribute unsigned long readSize; */
  NS_IMETHOD GetReadSize(PRUint32 *aReadSize) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IDataStream; */
  NS_IMETHOD GetInternalAndReservedAttribute1IDataStream(PRUint32 *aInternalAndReservedAttribute1IDataStream) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IDataStream; */
  NS_IMETHOD GetInternalAndReservedAttribute2IDataStream(PRUint32 *aInternalAndReservedAttribute2IDataStream) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IDataStream; */
  NS_IMETHOD GetInternalAndReservedAttribute3IDataStream(PRUint32 *aInternalAndReservedAttribute3IDataStream) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IDataStream; */
  NS_IMETHOD GetInternalAndReservedAttribute4IDataStream(PRUint32 *aInternalAndReservedAttribute4IDataStream) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IDataStream; */
  NS_IMETHOD GetInternalAndReservedAttribute5IDataStream(PRUint32 *aInternalAndReservedAttribute5IDataStream) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IDataStream; */
  NS_IMETHOD GetInternalAndReservedAttribute6IDataStream(PRUint32 *aInternalAndReservedAttribute6IDataStream) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IDataStream; */
  NS_IMETHOD GetInternalAndReservedAttribute7IDataStream(PRUint32 *aInternalAndReservedAttribute7IDataStream) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IDataStream; */
  NS_IMETHOD GetInternalAndReservedAttribute8IDataStream(PRUint32 *aInternalAndReservedAttribute8IDataStream) = 0;

  /* void read (in unsigned long size, in unsigned long timeoutMS, out unsigned long dataSize, [array, size_is (dataSize), retval] out octet data); */
  NS_IMETHOD Read(PRUint32 size, PRUint32 timeoutMS, PRUint32 *dataSize, PRUint8 **data) = 0;

  /* void InternalAndReservedMethod1IDataStream (); */
  NS_IMETHOD InternalAndReservedMethod1IDataStream(void) = 0;

  /* void InternalAndReservedMethod2IDataStream (); */
  NS_IMETHOD InternalAndReservedMethod2IDataStream(void) = 0;

  /* void InternalAndReservedMethod3IDataStream (); */
  NS_IMETHOD InternalAndReservedMethod3IDataStream(void) = 0;

  /* void InternalAndReservedMethod4IDataStream (); */
  NS_IMETHOD InternalAndReservedMethod4IDataStream(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IDATASTREAM \
  NS_IMETHOD GetReadSize(PRUint32 *aReadSize) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IDataStream(PRUint32 *aInternalAndReservedAttribute1IDataStream) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IDataStream(PRUint32 *aInternalAndReservedAttribute2IDataStream) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IDataStream(PRUint32 *aInternalAndReservedAttribute3IDataStream) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IDataStream(PRUint32 *aInternalAndReservedAttribute4IDataStream) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IDataStream(PRUint32 *aInternalAndReservedAttribute5IDataStream) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IDataStream(PRUint32 *aInternalAndReservedAttribute6IDataStream) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IDataStream(PRUint32 *aInternalAndReservedAttribute7IDataStream) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IDataStream(PRUint32 *aInternalAndReservedAttribute8IDataStream) NS_OVERRIDE; \
  NS_IMETHOD Read(PRUint32 size, PRUint32 timeoutMS, PRUint32 *dataSize, PRUint8 **data) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IDataStream(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IDataStream(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IDataStream(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IDataStream(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IDATASTREAM(_to) \
  NS_IMETHOD GetReadSize(PRUint32 *aReadSize) { return _to GetReadSize(aReadSize); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IDataStream(PRUint32 *aInternalAndReservedAttribute1IDataStream) { return _to GetInternalAndReservedAttribute1IDataStream(aInternalAndReservedAttribute1IDataStream); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IDataStream(PRUint32 *aInternalAndReservedAttribute2IDataStream) { return _to GetInternalAndReservedAttribute2IDataStream(aInternalAndReservedAttribute2IDataStream); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IDataStream(PRUint32 *aInternalAndReservedAttribute3IDataStream) { return _to GetInternalAndReservedAttribute3IDataStream(aInternalAndReservedAttribute3IDataStream); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IDataStream(PRUint32 *aInternalAndReservedAttribute4IDataStream) { return _to GetInternalAndReservedAttribute4IDataStream(aInternalAndReservedAttribute4IDataStream); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IDataStream(PRUint32 *aInternalAndReservedAttribute5IDataStream) { return _to GetInternalAndReservedAttribute5IDataStream(aInternalAndReservedAttribute5IDataStream); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IDataStream(PRUint32 *aInternalAndReservedAttribute6IDataStream) { return _to GetInternalAndReservedAttribute6IDataStream(aInternalAndReservedAttribute6IDataStream); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IDataStream(PRUint32 *aInternalAndReservedAttribute7IDataStream) { return _to GetInternalAndReservedAttribute7IDataStream(aInternalAndReservedAttribute7IDataStream); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IDataStream(PRUint32 *aInternalAndReservedAttribute8IDataStream) { return _to GetInternalAndReservedAttribute8IDataStream(aInternalAndReservedAttribute8IDataStream); } \
  NS_IMETHOD Read(PRUint32 size, PRUint32 timeoutMS, PRUint32 *dataSize, PRUint8 **data) { return _to Read(size, timeoutMS, dataSize, data); } \
  NS_IMETHOD InternalAndReservedMethod1IDataStream(void) { return _to InternalAndReservedMethod1IDataStream(); } \
  NS_IMETHOD InternalAndReservedMethod2IDataStream(void) { return _to InternalAndReservedMethod2IDataStream(); } \
  NS_IMETHOD InternalAndReservedMethod3IDataStream(void) { return _to InternalAndReservedMethod3IDataStream(); } \
  NS_IMETHOD InternalAndReservedMethod4IDataStream(void) { return _to InternalAndReservedMethod4IDataStream(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IDATASTREAM(_to) \
  NS_IMETHOD GetReadSize(PRUint32 *aReadSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetReadSize(aReadSize); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IDataStream(PRUint32 *aInternalAndReservedAttribute1IDataStream) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IDataStream(aInternalAndReservedAttribute1IDataStream); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IDataStream(PRUint32 *aInternalAndReservedAttribute2IDataStream) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IDataStream(aInternalAndReservedAttribute2IDataStream); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IDataStream(PRUint32 *aInternalAndReservedAttribute3IDataStream) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IDataStream(aInternalAndReservedAttribute3IDataStream); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IDataStream(PRUint32 *aInternalAndReservedAttribute4IDataStream) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IDataStream(aInternalAndReservedAttribute4IDataStream); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IDataStream(PRUint32 *aInternalAndReservedAttribute5IDataStream) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IDataStream(aInternalAndReservedAttribute5IDataStream); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IDataStream(PRUint32 *aInternalAndReservedAttribute6IDataStream) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IDataStream(aInternalAndReservedAttribute6IDataStream); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IDataStream(PRUint32 *aInternalAndReservedAttribute7IDataStream) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IDataStream(aInternalAndReservedAttribute7IDataStream); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IDataStream(PRUint32 *aInternalAndReservedAttribute8IDataStream) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IDataStream(aInternalAndReservedAttribute8IDataStream); } \
  NS_IMETHOD Read(PRUint32 size, PRUint32 timeoutMS, PRUint32 *dataSize, PRUint8 **data) { return !_to ? NS_ERROR_NULL_POINTER : _to->Read(size, timeoutMS, dataSize, data); } \
  NS_IMETHOD InternalAndReservedMethod1IDataStream(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IDataStream(); } \
  NS_IMETHOD InternalAndReservedMethod2IDataStream(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IDataStream(); } \
  NS_IMETHOD InternalAndReservedMethod3IDataStream(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IDataStream(); } \
  NS_IMETHOD InternalAndReservedMethod4IDataStream(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IDataStream(); } 

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

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IDataStream;

/* starting interface:    IMediumIO */
#define IMEDIUMIO_IID_STR "e4b301a9-5f86-4d65-ad1b-87ca284fb1c8"

#define IMEDIUMIO_IID \
  {0xe4b301a9, 0x5f86, 0x4d65, \
    { 0xad, 0x1b, 0x87, 0xca, 0x28, 0x4f, 0xb1, 0xc8 }}

class NS_NO_VTABLE IMediumIO : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IMEDIUMIO_IID)

  /* readonly attribute IMedium medium; */
  NS_IMETHOD GetMedium(IMedium * *aMedium) = 0;

  /* readonly attribute boolean writable; */
  NS_IMETHOD GetWritable(PRBool *aWritable) = 0;

  /* readonly attribute IVFSExplorer explorer; */
  NS_IMETHOD GetExplorer(IVFSExplorer * *aExplorer) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IMediumIO; */
  NS_IMETHOD GetInternalAndReservedAttribute1IMediumIO(PRUint32 *aInternalAndReservedAttribute1IMediumIO) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IMediumIO; */
  NS_IMETHOD GetInternalAndReservedAttribute2IMediumIO(PRUint32 *aInternalAndReservedAttribute2IMediumIO) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IMediumIO; */
  NS_IMETHOD GetInternalAndReservedAttribute3IMediumIO(PRUint32 *aInternalAndReservedAttribute3IMediumIO) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IMediumIO; */
  NS_IMETHOD GetInternalAndReservedAttribute4IMediumIO(PRUint32 *aInternalAndReservedAttribute4IMediumIO) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IMediumIO; */
  NS_IMETHOD GetInternalAndReservedAttribute5IMediumIO(PRUint32 *aInternalAndReservedAttribute5IMediumIO) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IMediumIO; */
  NS_IMETHOD GetInternalAndReservedAttribute6IMediumIO(PRUint32 *aInternalAndReservedAttribute6IMediumIO) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IMediumIO; */
  NS_IMETHOD GetInternalAndReservedAttribute7IMediumIO(PRUint32 *aInternalAndReservedAttribute7IMediumIO) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IMediumIO; */
  NS_IMETHOD GetInternalAndReservedAttribute8IMediumIO(PRUint32 *aInternalAndReservedAttribute8IMediumIO) = 0;

  /* void read (in long long offset, in unsigned long size, out unsigned long dataSize, [array, size_is (dataSize), retval] out octet data); */
  NS_IMETHOD Read(PRInt64 offset, PRUint32 size, PRUint32 *dataSize, PRUint8 **data) = 0;

  /* void write (in long long offset, in unsigned long dataSize, [array, size_is (dataSize)] in octet data, [retval] out unsigned long written); */
  NS_IMETHOD Write(PRInt64 offset, PRUint32 dataSize, PRUint8 *data, PRUint32 *written) = 0;

  /* void formatFAT (in boolean quick); */
  NS_IMETHOD FormatFAT(PRBool quick) = 0;

  /* void initializePartitionTable (in PartitionTableType_T format, in boolean wholeDiskInOneEntry); */
  NS_IMETHOD InitializePartitionTable(PartitionTableType_T format, PRBool wholeDiskInOneEntry) = 0;

  /* void convertToStream (in wstring format, in unsigned long variantSize, [array, size_is (variantSize)] in MediumVariant_T variant, in unsigned long bufferSize, out IDataStream stream, [retval] out IProgress progress); */
  NS_IMETHOD ConvertToStream(const PRUnichar *format, PRUint32 variantSize, MediumVariant_T *variant, PRUint32 bufferSize, IDataStream * *stream, IProgress * *progress) = 0;

  /* void close (); */
  NS_IMETHOD Close(void) = 0;

  /* void InternalAndReservedMethod1IMediumIO (); */
  NS_IMETHOD InternalAndReservedMethod1IMediumIO(void) = 0;

  /* void InternalAndReservedMethod2IMediumIO (); */
  NS_IMETHOD InternalAndReservedMethod2IMediumIO(void) = 0;

  /* void InternalAndReservedMethod3IMediumIO (); */
  NS_IMETHOD InternalAndReservedMethod3IMediumIO(void) = 0;

  /* void InternalAndReservedMethod4IMediumIO (); */
  NS_IMETHOD InternalAndReservedMethod4IMediumIO(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IMEDIUMIO \
  NS_IMETHOD GetMedium(IMedium * *aMedium) NS_OVERRIDE; \
  NS_IMETHOD GetWritable(PRBool *aWritable) NS_OVERRIDE; \
  NS_IMETHOD GetExplorer(IVFSExplorer * *aExplorer) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IMediumIO(PRUint32 *aInternalAndReservedAttribute1IMediumIO) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IMediumIO(PRUint32 *aInternalAndReservedAttribute2IMediumIO) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IMediumIO(PRUint32 *aInternalAndReservedAttribute3IMediumIO) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IMediumIO(PRUint32 *aInternalAndReservedAttribute4IMediumIO) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IMediumIO(PRUint32 *aInternalAndReservedAttribute5IMediumIO) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IMediumIO(PRUint32 *aInternalAndReservedAttribute6IMediumIO) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IMediumIO(PRUint32 *aInternalAndReservedAttribute7IMediumIO) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IMediumIO(PRUint32 *aInternalAndReservedAttribute8IMediumIO) NS_OVERRIDE; \
  NS_IMETHOD Read(PRInt64 offset, PRUint32 size, PRUint32 *dataSize, PRUint8 **data) NS_OVERRIDE; \
  NS_IMETHOD Write(PRInt64 offset, PRUint32 dataSize, PRUint8 *data, PRUint32 *written) NS_OVERRIDE; \
  NS_IMETHOD FormatFAT(PRBool quick) NS_OVERRIDE; \
  NS_IMETHOD InitializePartitionTable(PartitionTableType_T format, PRBool wholeDiskInOneEntry) NS_OVERRIDE; \
  NS_IMETHOD ConvertToStream(const PRUnichar *format, PRUint32 variantSize, MediumVariant_T *variant, PRUint32 bufferSize, IDataStream * *stream, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD Close(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IMediumIO(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IMediumIO(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IMediumIO(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IMediumIO(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IMEDIUMIO(_to) \
  NS_IMETHOD GetMedium(IMedium * *aMedium) { return _to GetMedium(aMedium); } \
  NS_IMETHOD GetWritable(PRBool *aWritable) { return _to GetWritable(aWritable); } \
  NS_IMETHOD GetExplorer(IVFSExplorer * *aExplorer) { return _to GetExplorer(aExplorer); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IMediumIO(PRUint32 *aInternalAndReservedAttribute1IMediumIO) { return _to GetInternalAndReservedAttribute1IMediumIO(aInternalAndReservedAttribute1IMediumIO); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IMediumIO(PRUint32 *aInternalAndReservedAttribute2IMediumIO) { return _to GetInternalAndReservedAttribute2IMediumIO(aInternalAndReservedAttribute2IMediumIO); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IMediumIO(PRUint32 *aInternalAndReservedAttribute3IMediumIO) { return _to GetInternalAndReservedAttribute3IMediumIO(aInternalAndReservedAttribute3IMediumIO); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IMediumIO(PRUint32 *aInternalAndReservedAttribute4IMediumIO) { return _to GetInternalAndReservedAttribute4IMediumIO(aInternalAndReservedAttribute4IMediumIO); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IMediumIO(PRUint32 *aInternalAndReservedAttribute5IMediumIO) { return _to GetInternalAndReservedAttribute5IMediumIO(aInternalAndReservedAttribute5IMediumIO); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IMediumIO(PRUint32 *aInternalAndReservedAttribute6IMediumIO) { return _to GetInternalAndReservedAttribute6IMediumIO(aInternalAndReservedAttribute6IMediumIO); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IMediumIO(PRUint32 *aInternalAndReservedAttribute7IMediumIO) { return _to GetInternalAndReservedAttribute7IMediumIO(aInternalAndReservedAttribute7IMediumIO); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IMediumIO(PRUint32 *aInternalAndReservedAttribute8IMediumIO) { return _to GetInternalAndReservedAttribute8IMediumIO(aInternalAndReservedAttribute8IMediumIO); } \
  NS_IMETHOD Read(PRInt64 offset, PRUint32 size, PRUint32 *dataSize, PRUint8 **data) { return _to Read(offset, size, dataSize, data); } \
  NS_IMETHOD Write(PRInt64 offset, PRUint32 dataSize, PRUint8 *data, PRUint32 *written) { return _to Write(offset, dataSize, data, written); } \
  NS_IMETHOD FormatFAT(PRBool quick) { return _to FormatFAT(quick); } \
  NS_IMETHOD InitializePartitionTable(PartitionTableType_T format, PRBool wholeDiskInOneEntry) { return _to InitializePartitionTable(format, wholeDiskInOneEntry); } \
  NS_IMETHOD ConvertToStream(const PRUnichar *format, PRUint32 variantSize, MediumVariant_T *variant, PRUint32 bufferSize, IDataStream * *stream, IProgress * *progress) { return _to ConvertToStream(format, variantSize, variant, bufferSize, stream, progress); } \
  NS_IMETHOD Close(void) { return _to Close(); } \
  NS_IMETHOD InternalAndReservedMethod1IMediumIO(void) { return _to InternalAndReservedMethod1IMediumIO(); } \
  NS_IMETHOD InternalAndReservedMethod2IMediumIO(void) { return _to InternalAndReservedMethod2IMediumIO(); } \
  NS_IMETHOD InternalAndReservedMethod3IMediumIO(void) { return _to InternalAndReservedMethod3IMediumIO(); } \
  NS_IMETHOD InternalAndReservedMethod4IMediumIO(void) { return _to InternalAndReservedMethod4IMediumIO(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IMEDIUMIO(_to) \
  NS_IMETHOD GetMedium(IMedium * *aMedium) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMedium(aMedium); } \
  NS_IMETHOD GetWritable(PRBool *aWritable) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetWritable(aWritable); } \
  NS_IMETHOD GetExplorer(IVFSExplorer * *aExplorer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetExplorer(aExplorer); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IMediumIO(PRUint32 *aInternalAndReservedAttribute1IMediumIO) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IMediumIO(aInternalAndReservedAttribute1IMediumIO); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IMediumIO(PRUint32 *aInternalAndReservedAttribute2IMediumIO) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IMediumIO(aInternalAndReservedAttribute2IMediumIO); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IMediumIO(PRUint32 *aInternalAndReservedAttribute3IMediumIO) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IMediumIO(aInternalAndReservedAttribute3IMediumIO); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IMediumIO(PRUint32 *aInternalAndReservedAttribute4IMediumIO) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IMediumIO(aInternalAndReservedAttribute4IMediumIO); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IMediumIO(PRUint32 *aInternalAndReservedAttribute5IMediumIO) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IMediumIO(aInternalAndReservedAttribute5IMediumIO); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IMediumIO(PRUint32 *aInternalAndReservedAttribute6IMediumIO) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IMediumIO(aInternalAndReservedAttribute6IMediumIO); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IMediumIO(PRUint32 *aInternalAndReservedAttribute7IMediumIO) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IMediumIO(aInternalAndReservedAttribute7IMediumIO); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IMediumIO(PRUint32 *aInternalAndReservedAttribute8IMediumIO) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IMediumIO(aInternalAndReservedAttribute8IMediumIO); } \
  NS_IMETHOD Read(PRInt64 offset, PRUint32 size, PRUint32 *dataSize, PRUint8 **data) { return !_to ? NS_ERROR_NULL_POINTER : _to->Read(offset, size, dataSize, data); } \
  NS_IMETHOD Write(PRInt64 offset, PRUint32 dataSize, PRUint8 *data, PRUint32 *written) { return !_to ? NS_ERROR_NULL_POINTER : _to->Write(offset, dataSize, data, written); } \
  NS_IMETHOD FormatFAT(PRBool quick) { return !_to ? NS_ERROR_NULL_POINTER : _to->FormatFAT(quick); } \
  NS_IMETHOD InitializePartitionTable(PartitionTableType_T format, PRBool wholeDiskInOneEntry) { return !_to ? NS_ERROR_NULL_POINTER : _to->InitializePartitionTable(format, wholeDiskInOneEntry); } \
  NS_IMETHOD ConvertToStream(const PRUnichar *format, PRUint32 variantSize, MediumVariant_T *variant, PRUint32 bufferSize, IDataStream * *stream, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->ConvertToStream(format, variantSize, variant, bufferSize, stream, progress); } \
  NS_IMETHOD Close(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Close(); } \
  NS_IMETHOD InternalAndReservedMethod1IMediumIO(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IMediumIO(); } \
  NS_IMETHOD InternalAndReservedMethod2IMediumIO(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IMediumIO(); } \
  NS_IMETHOD InternalAndReservedMethod3IMediumIO(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IMediumIO(); } \
  NS_IMETHOD InternalAndReservedMethod4IMediumIO(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IMediumIO(); } 

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

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IMediumIO;

/* 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_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IToken(PRUint32 *aInternalAndReservedAttribute2IToken) NS_OVERRIDE; \
  NS_IMETHOD Abandon(void) NS_OVERRIDE; \
  NS_IMETHOD Dummy(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IToken(void) NS_OVERRIDE; 

/* 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(); } 

#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 "755e6bdf-1640-41f9-bd74-3ef5fd653250"

#define IKEYBOARD_IID \
  {0x755e6bdf, 0x1640, 0x41f9, \
    { 0xbd, 0x74, 0x3e, 0xf5, 0xfd, 0x65, 0x32, 0x50 }}

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 KeyboardLED_T keyboardLEDs); */
  NS_IMETHOD GetKeyboardLEDs(PRUint32 *keyboardLEDsSize, KeyboardLED_T **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;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IKeyboard; */
  NS_IMETHOD GetInternalAndReservedAttribute3IKeyboard(PRUint32 *aInternalAndReservedAttribute3IKeyboard) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IKeyboard; */
  NS_IMETHOD GetInternalAndReservedAttribute4IKeyboard(PRUint32 *aInternalAndReservedAttribute4IKeyboard) = 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 putUsageCode (in long usageCode, in long usagePage, in boolean keyRelease); */
  NS_IMETHOD PutUsageCode(PRInt32 usageCode, PRInt32 usagePage, PRBool keyRelease) = 0;

  /* void InternalAndReservedMethod1IKeyboard (); */
  NS_IMETHOD InternalAndReservedMethod1IKeyboard(void) = 0;

  /* void InternalAndReservedMethod2IKeyboard (); */
  NS_IMETHOD InternalAndReservedMethod2IKeyboard(void) = 0;

  /* void InternalAndReservedMethod3IKeyboard (); */
  NS_IMETHOD InternalAndReservedMethod3IKeyboard(void) = 0;

  /* void InternalAndReservedMethod4IKeyboard (); */
  NS_IMETHOD InternalAndReservedMethod4IKeyboard(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IKEYBOARD \
  NS_IMETHOD GetKeyboardLEDs(PRUint32 *keyboardLEDsSize, KeyboardLED_T **keyboardLEDs) NS_OVERRIDE; \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IKeyboard(PRUint32 *aInternalAndReservedAttribute1IKeyboard) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IKeyboard(PRUint32 *aInternalAndReservedAttribute2IKeyboard) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IKeyboard(PRUint32 *aInternalAndReservedAttribute3IKeyboard) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IKeyboard(PRUint32 *aInternalAndReservedAttribute4IKeyboard) NS_OVERRIDE; \
  NS_IMETHOD PutScancode(PRInt32 scancode) NS_OVERRIDE; \
  NS_IMETHOD PutScancodes(PRUint32 scancodesSize, PRInt32 *scancodes, PRUint32 *codesStored) NS_OVERRIDE; \
  NS_IMETHOD PutCAD(void) NS_OVERRIDE; \
  NS_IMETHOD ReleaseKeys(void) NS_OVERRIDE; \
  NS_IMETHOD PutUsageCode(PRInt32 usageCode, PRInt32 usagePage, PRBool keyRelease) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IKeyboard(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IKeyboard(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IKeyboard(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IKeyboard(void) NS_OVERRIDE; 

/* 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, KeyboardLED_T **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 GetInternalAndReservedAttribute3IKeyboard(PRUint32 *aInternalAndReservedAttribute3IKeyboard) { return _to GetInternalAndReservedAttribute3IKeyboard(aInternalAndReservedAttribute3IKeyboard); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IKeyboard(PRUint32 *aInternalAndReservedAttribute4IKeyboard) { return _to GetInternalAndReservedAttribute4IKeyboard(aInternalAndReservedAttribute4IKeyboard); } \
  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 PutUsageCode(PRInt32 usageCode, PRInt32 usagePage, PRBool keyRelease) { return _to PutUsageCode(usageCode, usagePage, keyRelease); } \
  NS_IMETHOD InternalAndReservedMethod1IKeyboard(void) { return _to InternalAndReservedMethod1IKeyboard(); } \
  NS_IMETHOD InternalAndReservedMethod2IKeyboard(void) { return _to InternalAndReservedMethod2IKeyboard(); } \
  NS_IMETHOD InternalAndReservedMethod3IKeyboard(void) { return _to InternalAndReservedMethod3IKeyboard(); } \
  NS_IMETHOD InternalAndReservedMethod4IKeyboard(void) { return _to InternalAndReservedMethod4IKeyboard(); } 

/* 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, KeyboardLED_T **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 GetInternalAndReservedAttribute3IKeyboard(PRUint32 *aInternalAndReservedAttribute3IKeyboard) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IKeyboard(aInternalAndReservedAttribute3IKeyboard); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IKeyboard(PRUint32 *aInternalAndReservedAttribute4IKeyboard) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IKeyboard(aInternalAndReservedAttribute4IKeyboard); } \
  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 PutUsageCode(PRInt32 usageCode, PRInt32 usagePage, PRBool keyRelease) { return !_to ? NS_ERROR_NULL_POINTER : _to->PutUsageCode(usageCode, usagePage, keyRelease); } \
  NS_IMETHOD InternalAndReservedMethod1IKeyboard(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IKeyboard(); } \
  NS_IMETHOD InternalAndReservedMethod2IKeyboard(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IKeyboard(); } \
  NS_IMETHOD InternalAndReservedMethod3IKeyboard(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IKeyboard(); } \
  NS_IMETHOD InternalAndReservedMethod4IKeyboard(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IKeyboard(); } 

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

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IKeyboard;

/* starting interface:    IMousePointerShape */
#define IMOUSEPOINTERSHAPE_IID_STR "1e775ea3-9070-4f9c-b0d5-53054496dbe0"

#define IMOUSEPOINTERSHAPE_IID \
  {0x1e775ea3, 0x9070, 0x4f9c, \
    { 0xb0, 0xd5, 0x53, 0x05, 0x44, 0x96, 0xdb, 0xe0 }}

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;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IMousePointerShape; */
  NS_IMETHOD GetInternalAndReservedAttribute3IMousePointerShape(PRUint32 *aInternalAndReservedAttribute3IMousePointerShape) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IMousePointerShape; */
  NS_IMETHOD GetInternalAndReservedAttribute4IMousePointerShape(PRUint32 *aInternalAndReservedAttribute4IMousePointerShape) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IMOUSEPOINTERSHAPE \
  NS_IMETHOD GetVisible(PRBool *aVisible) NS_OVERRIDE; \
  NS_IMETHOD GetAlpha(PRBool *aAlpha) NS_OVERRIDE; \
  NS_IMETHOD GetHotX(PRUint32 *aHotX) NS_OVERRIDE; \
  NS_IMETHOD GetHotY(PRUint32 *aHotY) NS_OVERRIDE; \
  NS_IMETHOD GetWidth(PRUint32 *aWidth) NS_OVERRIDE; \
  NS_IMETHOD GetHeight(PRUint32 *aHeight) NS_OVERRIDE; \
  NS_IMETHOD GetShape(PRUint32 *shapeSize, PRUint8 **shape) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IMousePointerShape(PRUint32 *aInternalAndReservedAttribute1IMousePointerShape) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IMousePointerShape(PRUint32 *aInternalAndReservedAttribute2IMousePointerShape) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IMousePointerShape(PRUint32 *aInternalAndReservedAttribute3IMousePointerShape) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IMousePointerShape(PRUint32 *aInternalAndReservedAttribute4IMousePointerShape) NS_OVERRIDE; 

/* 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); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IMousePointerShape(PRUint32 *aInternalAndReservedAttribute3IMousePointerShape) { return _to GetInternalAndReservedAttribute3IMousePointerShape(aInternalAndReservedAttribute3IMousePointerShape); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IMousePointerShape(PRUint32 *aInternalAndReservedAttribute4IMousePointerShape) { return _to GetInternalAndReservedAttribute4IMousePointerShape(aInternalAndReservedAttribute4IMousePointerShape); } 

/* 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); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IMousePointerShape(PRUint32 *aInternalAndReservedAttribute3IMousePointerShape) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IMousePointerShape(aInternalAndReservedAttribute3IMousePointerShape); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IMousePointerShape(PRUint32 *aInternalAndReservedAttribute4IMousePointerShape) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IMousePointerShape(aInternalAndReservedAttribute4IMousePointerShape); } 

#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 "25360a74-55e5-4f14-ac2a-f5cf8e62e4af"

#define IMOUSE_IID \
  {0x25360a74, 0x55e5, 0x4f14, \
    { 0xac, 0x2a, 0xf5, 0xcf, 0x8e, 0x62, 0xe4, 0xaf }}

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 touchScreenSupported; */
  NS_IMETHOD GetTouchScreenSupported(PRBool *aTouchScreenSupported) = 0;

  /* readonly attribute boolean touchPadSupported; */
  NS_IMETHOD GetTouchPadSupported(PRBool *aTouchPadSupported) = 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;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IMouse; */
  NS_IMETHOD GetInternalAndReservedAttribute3IMouse(PRUint32 *aInternalAndReservedAttribute3IMouse) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IMouse; */
  NS_IMETHOD GetInternalAndReservedAttribute4IMouse(PRUint32 *aInternalAndReservedAttribute4IMouse) = 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 boolean isTouchScreen, in unsigned long scanTime); */
  NS_IMETHOD PutEventMultiTouch(PRInt32 count, PRUint32 contactsSize, PRInt64 *contacts, PRBool isTouchScreen, PRUint32 scanTime) = 0;

  /* void putEventMultiTouchString (in long count, in wstring contacts, in boolean isTouchScreen, in unsigned long scanTime); */
  NS_IMETHOD PutEventMultiTouchString(PRInt32 count, const PRUnichar *contacts, PRBool isTouchScreen, PRUint32 scanTime) = 0;

  /* void InternalAndReservedMethod1IMouse (); */
  NS_IMETHOD InternalAndReservedMethod1IMouse(void) = 0;

  /* void InternalAndReservedMethod2IMouse (); */
  NS_IMETHOD InternalAndReservedMethod2IMouse(void) = 0;

  /* void InternalAndReservedMethod3IMouse (); */
  NS_IMETHOD InternalAndReservedMethod3IMouse(void) = 0;

  /* void InternalAndReservedMethod4IMouse (); */
  NS_IMETHOD InternalAndReservedMethod4IMouse(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IMOUSE \
  NS_IMETHOD GetAbsoluteSupported(PRBool *aAbsoluteSupported) NS_OVERRIDE; \
  NS_IMETHOD GetRelativeSupported(PRBool *aRelativeSupported) NS_OVERRIDE; \
  NS_IMETHOD GetTouchScreenSupported(PRBool *aTouchScreenSupported) NS_OVERRIDE; \
  NS_IMETHOD GetTouchPadSupported(PRBool *aTouchPadSupported) NS_OVERRIDE; \
  NS_IMETHOD GetNeedsHostCursor(PRBool *aNeedsHostCursor) NS_OVERRIDE; \
  NS_IMETHOD GetPointerShape(IMousePointerShape * *aPointerShape) NS_OVERRIDE; \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IMouse(PRUint32 *aInternalAndReservedAttribute1IMouse) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IMouse(PRUint32 *aInternalAndReservedAttribute2IMouse) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IMouse(PRUint32 *aInternalAndReservedAttribute3IMouse) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IMouse(PRUint32 *aInternalAndReservedAttribute4IMouse) NS_OVERRIDE; \
  NS_IMETHOD PutMouseEvent(PRInt32 dx, PRInt32 dy, PRInt32 dz, PRInt32 dw, PRInt32 buttonState) NS_OVERRIDE; \
  NS_IMETHOD PutMouseEventAbsolute(PRInt32 x, PRInt32 y, PRInt32 dz, PRInt32 dw, PRInt32 buttonState) NS_OVERRIDE; \
  NS_IMETHOD PutEventMultiTouch(PRInt32 count, PRUint32 contactsSize, PRInt64 *contacts, PRBool isTouchScreen, PRUint32 scanTime) NS_OVERRIDE; \
  NS_IMETHOD PutEventMultiTouchString(PRInt32 count, const PRUnichar *contacts, PRBool isTouchScreen, PRUint32 scanTime) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IMouse(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IMouse(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IMouse(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IMouse(void) NS_OVERRIDE; 

/* 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 GetTouchScreenSupported(PRBool *aTouchScreenSupported) { return _to GetTouchScreenSupported(aTouchScreenSupported); } \
  NS_IMETHOD GetTouchPadSupported(PRBool *aTouchPadSupported) { return _to GetTouchPadSupported(aTouchPadSupported); } \
  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 GetInternalAndReservedAttribute3IMouse(PRUint32 *aInternalAndReservedAttribute3IMouse) { return _to GetInternalAndReservedAttribute3IMouse(aInternalAndReservedAttribute3IMouse); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IMouse(PRUint32 *aInternalAndReservedAttribute4IMouse) { return _to GetInternalAndReservedAttribute4IMouse(aInternalAndReservedAttribute4IMouse); } \
  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, PRBool isTouchScreen, PRUint32 scanTime) { return _to PutEventMultiTouch(count, contactsSize, contacts, isTouchScreen, scanTime); } \
  NS_IMETHOD PutEventMultiTouchString(PRInt32 count, const PRUnichar *contacts, PRBool isTouchScreen, PRUint32 scanTime) { return _to PutEventMultiTouchString(count, contacts, isTouchScreen, scanTime); } \
  NS_IMETHOD InternalAndReservedMethod1IMouse(void) { return _to InternalAndReservedMethod1IMouse(); } \
  NS_IMETHOD InternalAndReservedMethod2IMouse(void) { return _to InternalAndReservedMethod2IMouse(); } \
  NS_IMETHOD InternalAndReservedMethod3IMouse(void) { return _to InternalAndReservedMethod3IMouse(); } \
  NS_IMETHOD InternalAndReservedMethod4IMouse(void) { return _to InternalAndReservedMethod4IMouse(); } 

/* 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 GetTouchScreenSupported(PRBool *aTouchScreenSupported) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTouchScreenSupported(aTouchScreenSupported); } \
  NS_IMETHOD GetTouchPadSupported(PRBool *aTouchPadSupported) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTouchPadSupported(aTouchPadSupported); } \
  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 GetInternalAndReservedAttribute3IMouse(PRUint32 *aInternalAndReservedAttribute3IMouse) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IMouse(aInternalAndReservedAttribute3IMouse); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IMouse(PRUint32 *aInternalAndReservedAttribute4IMouse) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IMouse(aInternalAndReservedAttribute4IMouse); } \
  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, PRBool isTouchScreen, PRUint32 scanTime) { return !_to ? NS_ERROR_NULL_POINTER : _to->PutEventMultiTouch(count, contactsSize, contacts, isTouchScreen, scanTime); } \
  NS_IMETHOD PutEventMultiTouchString(PRInt32 count, const PRUnichar *contacts, PRBool isTouchScreen, PRUint32 scanTime) { return !_to ? NS_ERROR_NULL_POINTER : _to->PutEventMultiTouchString(count, contacts, isTouchScreen, scanTime); } \
  NS_IMETHOD InternalAndReservedMethod1IMouse(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IMouse(); } \
  NS_IMETHOD InternalAndReservedMethod2IMouse(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IMouse(); } \
  NS_IMETHOD InternalAndReservedMethod3IMouse(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IMouse(); } \
  NS_IMETHOD InternalAndReservedMethod4IMouse(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IMouse(); } 

#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_TouchScreenSupported_TO(smth) NS_IMETHOD GetTouchScreenSupported (PRBool * aTouchScreenSupported) { return smth GetTouchScreenSupported (aTouchScreenSupported); }
#define COM_FORWARD_IMouse_GETTER_TouchScreenSupported_TO_OBJ(obj) COM_FORWARD_IMouse_GETTER_TouchScreenSupported_TO ((obj)->)
#define COM_FORWARD_IMouse_GETTER_TouchScreenSupported_TO_BASE(base) COM_FORWARD_IMouse_GETTER_TouchScreenSupported_TO (base::)
#define COM_FORWARD_IMouse_GETTER_TouchPadSupported_TO(smth) NS_IMETHOD GetTouchPadSupported (PRBool * aTouchPadSupported) { return smth GetTouchPadSupported (aTouchPadSupported); }
#define COM_FORWARD_IMouse_GETTER_TouchPadSupported_TO_OBJ(obj) COM_FORWARD_IMouse_GETTER_TouchPadSupported_TO ((obj)->)
#define COM_FORWARD_IMouse_GETTER_TouchPadSupported_TO_BASE(base) COM_FORWARD_IMouse_GETTER_TouchPadSupported_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, PRBool aIsTouchScreen, PRUint32 aScanTime) { return smth PutEventMultiTouch (aCount, aContactsSize+++, aContacts, aIsTouchScreen, 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, PRBool aIsTouchScreen, PRUint32 aScanTime) { return smth PutEventMultiTouchString (aCount, aContacts, aIsTouchScreen, 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 "5094f67a-8084-11e9-b185-dbe296e54799"

#define IDISPLAYSOURCEBITMAP_IID \
  {0x5094f67a, 0x8084, 0x11e9, \
    { 0xb1, 0x85, 0xdb, 0xe2, 0x96, 0xe5, 0x47, 0x99 }}

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 BitmapFormat_T bitmapFormat); */
  NS_IMETHOD QueryBitmapInfo(PRUint8 * *address, PRUint32 *width, PRUint32 *height, PRUint32 *bitsPerPixel, PRUint32 *bytesPerLine, BitmapFormat_T *bitmapFormat) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IDISPLAYSOURCEBITMAP \
  NS_IMETHOD GetScreenId(PRUint32 *aScreenId) NS_OVERRIDE; \
  NS_IMETHOD QueryBitmapInfo(PRUint8 * *address, PRUint32 *width, PRUint32 *height, PRUint32 *bitsPerPixel, PRUint32 *bytesPerLine, BitmapFormat_T *bitmapFormat) NS_OVERRIDE; 

/* 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, BitmapFormat_T *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, BitmapFormat_T *bitmapFormat) { return !_to ? NS_ERROR_NULL_POINTER : _to->QueryBitmapInfo(address, width, height, bitsPerPixel, bytesPerLine, bitmapFormat); } 

#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 "1e8d3f27-b45c-48ae-8b36-d35e83d207aa"

#define IFRAMEBUFFER_IID \
  {0x1e8d3f27, 0xb45c, 0x48ae, \
    { 0x8b, 0x36, 0xd3, 0x5e, 0x83, 0xd2, 0x07, 0xaa }}

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 BitmapFormat_T pixelFormat; */
  NS_IMETHOD GetPixelFormat(BitmapFormat_T *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 FramebufferCapabilities_T capabilities); */
  NS_IMETHOD GetCapabilities(PRUint32 *capabilitiesSize, FramebufferCapabilities_T **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, in long enmCmd, in boolean fromGuest); */
  NS_IMETHOD ProcessVHWACommand(PRUint8 * command, PRInt32 enmCmd, PRBool fromGuest) = 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_OVERRIDE; \
  NS_IMETHOD GetHeight(PRUint32 *aHeight) NS_OVERRIDE; \
  NS_IMETHOD GetBitsPerPixel(PRUint32 *aBitsPerPixel) NS_OVERRIDE; \
  NS_IMETHOD GetBytesPerLine(PRUint32 *aBytesPerLine) NS_OVERRIDE; \
  NS_IMETHOD GetPixelFormat(BitmapFormat_T *aPixelFormat) NS_OVERRIDE; \
  NS_IMETHOD GetHeightReduction(PRUint32 *aHeightReduction) NS_OVERRIDE; \
  NS_IMETHOD GetOverlay(IFramebufferOverlay * *aOverlay) NS_OVERRIDE; \
  NS_IMETHOD GetWinId(PRInt64 *aWinId) NS_OVERRIDE; \
  NS_IMETHOD GetCapabilities(PRUint32 *capabilitiesSize, FramebufferCapabilities_T **capabilities) NS_OVERRIDE; \
  NS_IMETHOD NotifyUpdate(PRUint32 x, PRUint32 y, PRUint32 width, PRUint32 height) NS_OVERRIDE; \
  NS_IMETHOD NotifyUpdateImage(PRUint32 x, PRUint32 y, PRUint32 width, PRUint32 height, PRUint32 imageSize, PRUint8 *image) NS_OVERRIDE; \
  NS_IMETHOD NotifyChange(PRUint32 screenId, PRUint32 xOrigin, PRUint32 yOrigin, PRUint32 width, PRUint32 height) NS_OVERRIDE; \
  NS_IMETHOD VideoModeSupported(PRUint32 width, PRUint32 height, PRUint32 bpp, PRBool *supported) NS_OVERRIDE; \
  NS_IMETHOD GetVisibleRegion(PRUint8 * rectangles, PRUint32 count, PRUint32 *countCopied) NS_OVERRIDE; \
  NS_IMETHOD SetVisibleRegion(PRUint8 * rectangles, PRUint32 count) NS_OVERRIDE; \
  NS_IMETHOD ProcessVHWACommand(PRUint8 * command, PRInt32 enmCmd, PRBool fromGuest) NS_OVERRIDE; \
  NS_IMETHOD Notify3DEvent(PRUint32 type, PRUint32 dataSize, PRUint8 *data) NS_OVERRIDE; 

/* 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(BitmapFormat_T *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, FramebufferCapabilities_T **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, PRInt32 enmCmd, PRBool fromGuest) { return _to ProcessVHWACommand(command, enmCmd, fromGuest); } \
  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(BitmapFormat_T *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, FramebufferCapabilities_T **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, PRInt32 enmCmd, PRBool fromGuest) { return !_to ? NS_ERROR_NULL_POINTER : _to->ProcessVHWACommand(command, enmCmd, fromGuest); } \
  NS_IMETHOD Notify3DEvent(PRUint32 type, PRUint32 dataSize, PRUint8 *data) { return !_to ? NS_ERROR_NULL_POINTER : _to->Notify3DEvent(type, dataSize, data); } 

#define COM_FORWARD_IFramebuffer_GETTER_Width_TO(smth) NS_IMETHOD GetWidth (PRUint32 * aWidth) { return smth GetWidth (aWidth); }
#define COM_FORWARD_IFramebuffer_GETTER_Width_TO_OBJ(obj) COM_FORWARD_IFramebuffer_GETTER_Width_TO ((obj)->)
#define COM_FORWARD_IFramebuffer_GETTER_Width_TO_BASE(base) COM_FORWARD_IFramebuffer_GETTER_Width_TO (base::)
#define COM_FORWARD_IFramebuffer_GETTER_Height_TO(smth) NS_IMETHOD GetHeight (PRUint32 * aHeight) { return smth GetHeight (aHeight); }
#define COM_FORWARD_IFramebuffer_GETTER_Height_TO_OBJ(obj) COM_FORWARD_IFramebuffer_GETTER_Height_TO ((obj)->)
#define COM_FORWARD_IFramebuffer_GETTER_Height_TO_BASE(base) COM_FORWARD_IFramebuffer_GETTER_Height_TO (base::)
#define COM_FORWARD_IFramebuffer_GETTER_BitsPerPixel_TO(smth) NS_IMETHOD GetBitsPerPixel (PRUint32 * aBitsPerPixel) { return smth GetBitsPerPixel (aBitsPerPixel); }
#define COM_FORWARD_IFramebuffer_GETTER_BitsPerPixel_TO_OBJ(obj) COM_FORWARD_IFramebuffer_GETTER_BitsPerPixel_TO ((obj)->)
#define COM_FORWARD_IFramebuffer_GETTER_BitsPerPixel_TO_BASE(base) COM_FORWARD_IFramebuffer_GETTER_BitsPerPixel_TO (base::)
#define COM_FORWARD_IFramebuffer_GETTER_BytesPerLine_TO(smth) NS_IMETHOD GetBytesPerLine (PRUint32 * aBytesPerLine) { return smth GetBytesPerLine (aBytesPerLine); }
#define COM_FORWARD_IFramebuffer_GETTER_BytesPerLine_TO_OBJ(obj) COM_FORWARD_IFramebuffer_GETTER_BytesPerLine_TO ((obj)->)
#define COM_FORWARD_IFramebuffer_GETTER_BytesPerLine_TO_BASE(base) COM_FORWARD_IFramebuffer_GETTER_BytesPerLine_TO (base::)
#define COM_FORWARD_IFramebuffer_GETTER_PixelFormat_TO(smth) NS_IMETHOD GetPixelFormat (PRUint32 * aPixelFormat) { return smth GetPixelFormat (aPixelFormat); }
#define COM_FORWARD_IFramebuffer_GETTER_PixelFormat_TO_OBJ(obj) COM_FORWARD_IFramebuffer_GETTER_PixelFormat_TO ((obj)->)
#define COM_FORWARD_IFramebuffer_GETTER_PixelFormat_TO_BASE(base) COM_FORWARD_IFramebuffer_GETTER_PixelFormat_TO (base::)
#define COM_FORWARD_IFramebuffer_GETTER_HeightReduction_TO(smth) NS_IMETHOD GetHeightReduction (PRUint32 * aHeightReduction) { return smth GetHeightReduction (aHeightReduction); }
#define COM_FORWARD_IFramebuffer_GETTER_HeightReduction_TO_OBJ(obj) COM_FORWARD_IFramebuffer_GETTER_HeightReduction_TO ((obj)->)
#define COM_FORWARD_IFramebuffer_GETTER_HeightReduction_TO_BASE(base) COM_FORWARD_IFramebuffer_GETTER_HeightReduction_TO (base::)
#define COM_FORWARD_IFramebuffer_GETTER_Overlay_TO(smth) NS_IMETHOD GetOverlay (IFramebufferOverlay * * aOverlay) { return smth GetOverlay (aOverlay); }
#define COM_FORWARD_IFramebuffer_GETTER_Overlay_TO_OBJ(obj) COM_FORWARD_IFramebuffer_GETTER_Overlay_TO ((obj)->)
#define COM_FORWARD_IFramebuffer_GETTER_Overlay_TO_BASE(base) COM_FORWARD_IFramebuffer_GETTER_Overlay_TO (base::)
#define COM_FORWARD_IFramebuffer_GETTER_WinId_TO(smth) NS_IMETHOD GetWinId (PRInt64 * aWinId) { return smth GetWinId (aWinId); }
#define COM_FORWARD_IFramebuffer_GETTER_WinId_TO_OBJ(obj) COM_FORWARD_IFramebuffer_GETTER_WinId_TO ((obj)->)
#define COM_FORWARD_IFramebuffer_GETTER_WinId_TO_BASE(base) COM_FORWARD_IFramebuffer_GETTER_WinId_TO (base::)
#define COM_FORWARD_IFramebuffer_GETTER_Capabilities_TO(smth) NS_IMETHOD GetCapabilities (PRUint32 * aCapabilitiesSize, PRUint32 * * aCapabilities) { return smth GetCapabilities (aCapabilitiesSize, aCapabilities); }
#define COM_FORWARD_IFramebuffer_GETTER_Capabilities_TO_OBJ(obj) COM_FORWARD_IFramebuffer_GETTER_Capabilities_TO ((obj)->)
#define COM_FORWARD_IFramebuffer_GETTER_Capabilities_TO_BASE(base) COM_FORWARD_IFramebuffer_GETTER_Capabilities_TO (base::)
#define COM_FORWARD_IFramebuffer_NotifyUpdate_TO(smth) NS_IMETHOD NotifyUpdate (PRUint32 aX, PRUint32 aY, PRUint32 aWidth, PRUint32 aHeight) { return smth NotifyUpdate (aX, aY, aWidth, aHeight); }
#define COM_FORWARD_IFramebuffer_NotifyUpdate_TO_OBJ(obj) COM_FORWARD_IFramebuffer_NotifyUpdate_TO ((obj)->)
#define COM_FORWARD_IFramebuffer_NotifyUpdate_TO_BASE(base) COM_FORWARD_IFramebuffer_NotifyUpdate_TO (base::)
#define COM_FORWARD_IFramebuffer_NotifyUpdateImage_TO(smth) NS_IMETHOD NotifyUpdateImage (PRUint32 aX, PRUint32 aY, PRUint32 aWidth, PRUint32 aHeight, PRUint32 aImageSize, PRUint8 * aImage) { return smth NotifyUpdateImage (aX, aY, aWidth, aHeight, aImageSize, aImage); }
#define COM_FORWARD_IFramebuffer_NotifyUpdateImage_TO_OBJ(obj) COM_FORWARD_IFramebuffer_NotifyUpdateImage_TO ((obj)->)
#define COM_FORWARD_IFramebuffer_NotifyUpdateImage_TO_BASE(base) COM_FORWARD_IFramebuffer_NotifyUpdateImage_TO (base::)
#define COM_FORWARD_IFramebuffer_NotifyChange_TO(smth) NS_IMETHOD NotifyChange (PRUint32 aScreenId, PRUint32 aXOrigin, PRUint32 aYOrigin, PRUint32 aWidth, PRUint32 aHeight) { return smth NotifyChange (aScreenId, aXOrigin, aYOrigin, aWidth, aHeight); }
#define COM_FORWARD_IFramebuffer_NotifyChange_TO_OBJ(obj) COM_FORWARD_IFramebuffer_NotifyChange_TO ((obj)->)
#define COM_FORWARD_IFramebuffer_NotifyChange_TO_BASE(base) COM_FORWARD_IFramebuffer_NotifyChange_TO (base::)
#define COM_FORWARD_IFramebuffer_VideoModeSupported_TO(smth) NS_IMETHOD VideoModeSupported (PRUint32 aWidth, PRUint32 aHeight, PRUint32 aBpp, PRBool * aSupported) { return smth VideoModeSupported (aWidth, aHeight, aBpp, aSupported); }
#define COM_FORWARD_IFramebuffer_VideoModeSupported_TO_OBJ(obj) COM_FORWARD_IFramebuffer_VideoModeSupported_TO ((obj)->)
#define COM_FORWARD_IFramebuffer_VideoModeSupported_TO_BASE(base) COM_FORWARD_IFramebuffer_VideoModeSupported_TO (base::)
#define COM_FORWARD_IFramebuffer_GetVisibleRegion_TO(smth) NS_IMETHOD GetVisibleRegion (PRUint8 * aRectangles, PRUint32 aCount, PRUint32 * aCountCopied) { return smth GetVisibleRegion (aRectangles, aCount, aCountCopied); }
#define COM_FORWARD_IFramebuffer_GetVisibleRegion_TO_OBJ(obj) COM_FORWARD_IFramebuffer_GetVisibleRegion_TO ((obj)->)
#define COM_FORWARD_IFramebuffer_GetVisibleRegion_TO_BASE(base) COM_FORWARD_IFramebuffer_GetVisibleRegion_TO (base::)
#define COM_FORWARD_IFramebuffer_SetVisibleRegion_TO(smth) NS_IMETHOD SetVisibleRegion (PRUint8 * aRectangles, PRUint32 aCount) { return smth SetVisibleRegion (aRectangles, aCount); }
#define COM_FORWARD_IFramebuffer_SetVisibleRegion_TO_OBJ(obj) COM_FORWARD_IFramebuffer_SetVisibleRegion_TO ((obj)->)
#define COM_FORWARD_IFramebuffer_SetVisibleRegion_TO_BASE(base) COM_FORWARD_IFramebuffer_SetVisibleRegion_TO (base::)
#define COM_FORWARD_IFramebuffer_ProcessVHWACommand_TO(smth) NS_IMETHOD ProcessVHWACommand (PRUint8 * aCommand, PRInt32 aEnmCmd, PRBool aFromGuest) { return smth ProcessVHWACommand (aCommand, aEnmCmd, aFromGuest); }
#define COM_FORWARD_IFramebuffer_ProcessVHWACommand_TO_OBJ(obj) COM_FORWARD_IFramebuffer_ProcessVHWACommand_TO ((obj)->)
#define COM_FORWARD_IFramebuffer_ProcessVHWACommand_TO_BASE(base) COM_FORWARD_IFramebuffer_ProcessVHWACommand_TO (base::)
#define COM_FORWARD_IFramebuffer_Notify3DEvent_TO(smth) NS_IMETHOD Notify3DEvent (PRUint32 aType, PRUint32 aDataSize, PRUint8 * aData) { return smth Notify3DEvent (aType, aDataSize, aData); }
#define COM_FORWARD_IFramebuffer_Notify3DEvent_TO_OBJ(obj) COM_FORWARD_IFramebuffer_Notify3DEvent_TO ((obj)->)
#define COM_FORWARD_IFramebuffer_Notify3DEvent_TO_BASE(base) COM_FORWARD_IFramebuffer_Notify3DEvent_TO (base::)
#define COM_FORWARD_IFramebuffer_TO(smth) NS_FORWARD_IFRAMEBUFFER (smth)
#define COM_FORWARD_IFramebuffer_TO_OBJ(obj) COM_FORWARD_IFramebuffer_TO ((obj)->)
#define COM_FORWARD_IFramebuffer_TO_BASE(base) COM_FORWARD_IFramebuffer_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IFramebuffer;

/* 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_OVERRIDE; \
  NS_IMETHOD GetY(PRUint32 *aY) NS_OVERRIDE; \
  NS_IMETHOD GetVisible(PRBool *aVisible) NS_OVERRIDE; \
  NS_IMETHOD SetVisible(PRBool aVisible) NS_OVERRIDE; \
  NS_IMETHOD GetAlpha(PRUint32 *aAlpha) NS_OVERRIDE; \
  NS_IMETHOD SetAlpha(PRUint32 aAlpha) NS_OVERRIDE; \
  NS_IMETHOD Move(PRUint32 x, PRUint32 y) NS_OVERRIDE; 

/* 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); } 

#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:    IGuestScreenInfo */
#define IGUESTSCREENINFO_IID_STR "6b2f98f8-9641-4397-854a-040439d0114b"

#define IGUESTSCREENINFO_IID \
  {0x6b2f98f8, 0x9641, 0x4397, \
    { 0x85, 0x4a, 0x04, 0x04, 0x39, 0xd0, 0x11, 0x4b }}

class NS_NO_VTABLE IGuestScreenInfo : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTSCREENINFO_IID)

  /* readonly attribute unsigned long screenId; */
  NS_IMETHOD GetScreenId(PRUint32 *aScreenId) = 0;

  /* readonly attribute GuestMonitorStatus_T guestMonitorStatus; */
  NS_IMETHOD GetGuestMonitorStatus(GuestMonitorStatus_T *aGuestMonitorStatus) = 0;

  /* readonly attribute boolean primary; */
  NS_IMETHOD GetPrimary(PRBool *aPrimary) = 0;

  /* readonly attribute boolean origin; */
  NS_IMETHOD GetOrigin(PRBool *aOrigin) = 0;

  /* readonly attribute long originX; */
  NS_IMETHOD GetOriginX(PRInt32 *aOriginX) = 0;

  /* readonly attribute long originY; */
  NS_IMETHOD GetOriginY(PRInt32 *aOriginY) = 0;

  /* 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 wstring extendedInfo; */
  NS_IMETHOD GetExtendedInfo(PRUnichar **aExtendedInfo) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTSCREENINFO \
  NS_IMETHOD GetScreenId(PRUint32 *aScreenId) NS_OVERRIDE; \
  NS_IMETHOD GetGuestMonitorStatus(GuestMonitorStatus_T *aGuestMonitorStatus) NS_OVERRIDE; \
  NS_IMETHOD GetPrimary(PRBool *aPrimary) NS_OVERRIDE; \
  NS_IMETHOD GetOrigin(PRBool *aOrigin) NS_OVERRIDE; \
  NS_IMETHOD GetOriginX(PRInt32 *aOriginX) NS_OVERRIDE; \
  NS_IMETHOD GetOriginY(PRInt32 *aOriginY) NS_OVERRIDE; \
  NS_IMETHOD GetWidth(PRUint32 *aWidth) NS_OVERRIDE; \
  NS_IMETHOD GetHeight(PRUint32 *aHeight) NS_OVERRIDE; \
  NS_IMETHOD GetBitsPerPixel(PRUint32 *aBitsPerPixel) NS_OVERRIDE; \
  NS_IMETHOD GetExtendedInfo(PRUnichar **aExtendedInfo) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTSCREENINFO(_to) \
  NS_IMETHOD GetScreenId(PRUint32 *aScreenId) { return _to GetScreenId(aScreenId); } \
  NS_IMETHOD GetGuestMonitorStatus(GuestMonitorStatus_T *aGuestMonitorStatus) { return _to GetGuestMonitorStatus(aGuestMonitorStatus); } \
  NS_IMETHOD GetPrimary(PRBool *aPrimary) { return _to GetPrimary(aPrimary); } \
  NS_IMETHOD GetOrigin(PRBool *aOrigin) { return _to GetOrigin(aOrigin); } \
  NS_IMETHOD GetOriginX(PRInt32 *aOriginX) { return _to GetOriginX(aOriginX); } \
  NS_IMETHOD GetOriginY(PRInt32 *aOriginY) { return _to GetOriginY(aOriginY); } \
  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 GetExtendedInfo(PRUnichar **aExtendedInfo) { return _to GetExtendedInfo(aExtendedInfo); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGUESTSCREENINFO(_to) \
  NS_IMETHOD GetScreenId(PRUint32 *aScreenId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetScreenId(aScreenId); } \
  NS_IMETHOD GetGuestMonitorStatus(GuestMonitorStatus_T *aGuestMonitorStatus) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGuestMonitorStatus(aGuestMonitorStatus); } \
  NS_IMETHOD GetPrimary(PRBool *aPrimary) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPrimary(aPrimary); } \
  NS_IMETHOD GetOrigin(PRBool *aOrigin) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOrigin(aOrigin); } \
  NS_IMETHOD GetOriginX(PRInt32 *aOriginX) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOriginX(aOriginX); } \
  NS_IMETHOD GetOriginY(PRInt32 *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); } \
  NS_IMETHOD GetBitsPerPixel(PRUint32 *aBitsPerPixel) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBitsPerPixel(aBitsPerPixel); } \
  NS_IMETHOD GetExtendedInfo(PRUnichar **aExtendedInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetExtendedInfo(aExtendedInfo); } 

#define COM_FORWARD_IGuestScreenInfo_GETTER_ScreenId_TO(smth) NS_IMETHOD GetScreenId (PRUint32 * aScreenId) { return smth GetScreenId (aScreenId); }
#define COM_FORWARD_IGuestScreenInfo_GETTER_ScreenId_TO_OBJ(obj) COM_FORWARD_IGuestScreenInfo_GETTER_ScreenId_TO ((obj)->)
#define COM_FORWARD_IGuestScreenInfo_GETTER_ScreenId_TO_BASE(base) COM_FORWARD_IGuestScreenInfo_GETTER_ScreenId_TO (base::)
#define COM_FORWARD_IGuestScreenInfo_GETTER_GuestMonitorStatus_TO(smth) NS_IMETHOD GetGuestMonitorStatus (PRUint32 * aGuestMonitorStatus) { return smth GetGuestMonitorStatus (aGuestMonitorStatus); }
#define COM_FORWARD_IGuestScreenInfo_GETTER_GuestMonitorStatus_TO_OBJ(obj) COM_FORWARD_IGuestScreenInfo_GETTER_GuestMonitorStatus_TO ((obj)->)
#define COM_FORWARD_IGuestScreenInfo_GETTER_GuestMonitorStatus_TO_BASE(base) COM_FORWARD_IGuestScreenInfo_GETTER_GuestMonitorStatus_TO (base::)
#define COM_FORWARD_IGuestScreenInfo_GETTER_Primary_TO(smth) NS_IMETHOD GetPrimary (PRBool * aPrimary) { return smth GetPrimary (aPrimary); }
#define COM_FORWARD_IGuestScreenInfo_GETTER_Primary_TO_OBJ(obj) COM_FORWARD_IGuestScreenInfo_GETTER_Primary_TO ((obj)->)
#define COM_FORWARD_IGuestScreenInfo_GETTER_Primary_TO_BASE(base) COM_FORWARD_IGuestScreenInfo_GETTER_Primary_TO (base::)
#define COM_FORWARD_IGuestScreenInfo_GETTER_Origin_TO(smth) NS_IMETHOD GetOrigin (PRBool * aOrigin) { return smth GetOrigin (aOrigin); }
#define COM_FORWARD_IGuestScreenInfo_GETTER_Origin_TO_OBJ(obj) COM_FORWARD_IGuestScreenInfo_GETTER_Origin_TO ((obj)->)
#define COM_FORWARD_IGuestScreenInfo_GETTER_Origin_TO_BASE(base) COM_FORWARD_IGuestScreenInfo_GETTER_Origin_TO (base::)
#define COM_FORWARD_IGuestScreenInfo_GETTER_OriginX_TO(smth) NS_IMETHOD GetOriginX (PRInt32 * aOriginX) { return smth GetOriginX (aOriginX); }
#define COM_FORWARD_IGuestScreenInfo_GETTER_OriginX_TO_OBJ(obj) COM_FORWARD_IGuestScreenInfo_GETTER_OriginX_TO ((obj)->)
#define COM_FORWARD_IGuestScreenInfo_GETTER_OriginX_TO_BASE(base) COM_FORWARD_IGuestScreenInfo_GETTER_OriginX_TO (base::)
#define COM_FORWARD_IGuestScreenInfo_GETTER_OriginY_TO(smth) NS_IMETHOD GetOriginY (PRInt32 * aOriginY) { return smth GetOriginY (aOriginY); }
#define COM_FORWARD_IGuestScreenInfo_GETTER_OriginY_TO_OBJ(obj) COM_FORWARD_IGuestScreenInfo_GETTER_OriginY_TO ((obj)->)
#define COM_FORWARD_IGuestScreenInfo_GETTER_OriginY_TO_BASE(base) COM_FORWARD_IGuestScreenInfo_GETTER_OriginY_TO (base::)
#define COM_FORWARD_IGuestScreenInfo_GETTER_Width_TO(smth) NS_IMETHOD GetWidth (PRUint32 * aWidth) { return smth GetWidth (aWidth); }
#define COM_FORWARD_IGuestScreenInfo_GETTER_Width_TO_OBJ(obj) COM_FORWARD_IGuestScreenInfo_GETTER_Width_TO ((obj)->)
#define COM_FORWARD_IGuestScreenInfo_GETTER_Width_TO_BASE(base) COM_FORWARD_IGuestScreenInfo_GETTER_Width_TO (base::)
#define COM_FORWARD_IGuestScreenInfo_GETTER_Height_TO(smth) NS_IMETHOD GetHeight (PRUint32 * aHeight) { return smth GetHeight (aHeight); }
#define COM_FORWARD_IGuestScreenInfo_GETTER_Height_TO_OBJ(obj) COM_FORWARD_IGuestScreenInfo_GETTER_Height_TO ((obj)->)
#define COM_FORWARD_IGuestScreenInfo_GETTER_Height_TO_BASE(base) COM_FORWARD_IGuestScreenInfo_GETTER_Height_TO (base::)
#define COM_FORWARD_IGuestScreenInfo_GETTER_BitsPerPixel_TO(smth) NS_IMETHOD GetBitsPerPixel (PRUint32 * aBitsPerPixel) { return smth GetBitsPerPixel (aBitsPerPixel); }
#define COM_FORWARD_IGuestScreenInfo_GETTER_BitsPerPixel_TO_OBJ(obj) COM_FORWARD_IGuestScreenInfo_GETTER_BitsPerPixel_TO ((obj)->)
#define COM_FORWARD_IGuestScreenInfo_GETTER_BitsPerPixel_TO_BASE(base) COM_FORWARD_IGuestScreenInfo_GETTER_BitsPerPixel_TO (base::)
#define COM_FORWARD_IGuestScreenInfo_GETTER_ExtendedInfo_TO(smth) NS_IMETHOD GetExtendedInfo (PRUnichar * * aExtendedInfo) { return smth GetExtendedInfo (aExtendedInfo); }
#define COM_FORWARD_IGuestScreenInfo_GETTER_ExtendedInfo_TO_OBJ(obj) COM_FORWARD_IGuestScreenInfo_GETTER_ExtendedInfo_TO ((obj)->)
#define COM_FORWARD_IGuestScreenInfo_GETTER_ExtendedInfo_TO_BASE(base) COM_FORWARD_IGuestScreenInfo_GETTER_ExtendedInfo_TO (base::)
#define COM_FORWARD_IGuestScreenInfo_TO(smth) NS_FORWARD_IGUESTSCREENINFO (smth)
#define COM_FORWARD_IGuestScreenInfo_TO_OBJ(obj) COM_FORWARD_IGuestScreenInfo_TO ((obj)->)
#define COM_FORWARD_IGuestScreenInfo_TO_BASE(base) COM_FORWARD_IGuestScreenInfo_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestScreenInfo;

/* starting interface:    IDisplay */
#define IDISPLAY_IID_STR "14fd6676-ee6b-441a-988b-c83025ab693a"

#define IDISPLAY_IID \
  {0x14fd6676, 0xee6b, 0x441a, \
    { 0x98, 0x8b, 0xc8, 0x30, 0x25, 0xab, 0x69, 0x3a }}

class NS_NO_VTABLE IDisplay : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IDISPLAY_IID)

  /* void getGuestScreenLayout (out unsigned long guestScreenLayoutSize, [array, size_is (guestScreenLayoutSize), retval] out IGuestScreenInfo guestScreenLayout); */
  NS_IMETHOD GetGuestScreenLayout(PRUint32 *guestScreenLayoutSize, IGuestScreenInfo * **guestScreenLayout) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IDisplay; */
  NS_IMETHOD GetInternalAndReservedAttribute1IDisplay(PRUint32 *aInternalAndReservedAttribute1IDisplay) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IDisplay; */
  NS_IMETHOD GetInternalAndReservedAttribute2IDisplay(PRUint32 *aInternalAndReservedAttribute2IDisplay) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IDisplay; */
  NS_IMETHOD GetInternalAndReservedAttribute3IDisplay(PRUint32 *aInternalAndReservedAttribute3IDisplay) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IDisplay; */
  NS_IMETHOD GetInternalAndReservedAttribute4IDisplay(PRUint32 *aInternalAndReservedAttribute4IDisplay) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IDisplay; */
  NS_IMETHOD GetInternalAndReservedAttribute5IDisplay(PRUint32 *aInternalAndReservedAttribute5IDisplay) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IDisplay; */
  NS_IMETHOD GetInternalAndReservedAttribute6IDisplay(PRUint32 *aInternalAndReservedAttribute6IDisplay) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IDisplay; */
  NS_IMETHOD GetInternalAndReservedAttribute7IDisplay(PRUint32 *aInternalAndReservedAttribute7IDisplay) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IDisplay; */
  NS_IMETHOD GetInternalAndReservedAttribute8IDisplay(PRUint32 *aInternalAndReservedAttribute8IDisplay) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute9IDisplay; */
  NS_IMETHOD GetInternalAndReservedAttribute9IDisplay(PRUint32 *aInternalAndReservedAttribute9IDisplay) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute10IDisplay; */
  NS_IMETHOD GetInternalAndReservedAttribute10IDisplay(PRUint32 *aInternalAndReservedAttribute10IDisplay) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute11IDisplay; */
  NS_IMETHOD GetInternalAndReservedAttribute11IDisplay(PRUint32 *aInternalAndReservedAttribute11IDisplay) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute12IDisplay; */
  NS_IMETHOD GetInternalAndReservedAttribute12IDisplay(PRUint32 *aInternalAndReservedAttribute12IDisplay) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute13IDisplay; */
  NS_IMETHOD GetInternalAndReservedAttribute13IDisplay(PRUint32 *aInternalAndReservedAttribute13IDisplay) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute14IDisplay; */
  NS_IMETHOD GetInternalAndReservedAttribute14IDisplay(PRUint32 *aInternalAndReservedAttribute14IDisplay) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute15IDisplay; */
  NS_IMETHOD GetInternalAndReservedAttribute15IDisplay(PRUint32 *aInternalAndReservedAttribute15IDisplay) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute16IDisplay; */
  NS_IMETHOD GetInternalAndReservedAttribute16IDisplay(PRUint32 *aInternalAndReservedAttribute16IDisplay) = 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 GuestMonitorStatus_T guestMonitorStatus); */
  NS_IMETHOD GetScreenResolution(PRUint32 screenId, PRUint32 *width, PRUint32 *height, PRUint32 *bitsPerPixel, PRInt32 *xOrigin, PRInt32 *yOrigin, GuestMonitorStatus_T *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, in boolean notify); */
  NS_IMETHOD SetVideoModeHint(PRUint32 display, PRBool enabled, PRBool changeOrigin, PRInt32 originX, PRInt32 originY, PRUint32 width, PRUint32 height, PRUint32 bitsPerPixel, PRBool notify) = 0;

  /* void getVideoModeHint (in unsigned long display, out boolean enabled, out boolean changeOrigin, out long originX, out long originY, out unsigned long width, out unsigned long height, out unsigned long bitsPerPixel); */
  NS_IMETHOD GetVideoModeHint(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 BitmapFormat_T bitmapFormat); */
  NS_IMETHOD TakeScreenShot(PRUint32 screenId, PRUint8 * address, PRUint32 width, PRUint32 height, BitmapFormat_T bitmapFormat) = 0;

  /* void takeScreenShotToArray (in unsigned long screenId, in unsigned long width, in unsigned long height, in BitmapFormat_T bitmapFormat, out unsigned long screenDataSize, [array, size_is (screenDataSize), retval] out octet screenData); */
  NS_IMETHOD TakeScreenShotToArray(PRUint32 screenId, PRUint32 width, PRUint32 height, BitmapFormat_T 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;

  /* 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 setScreenLayout (in ScreenLayoutMode_T screenLayoutMode, in unsigned long guestScreenInfoSize, [array, size_is (guestScreenInfoSize)] in IGuestScreenInfo guestScreenInfo); */
  NS_IMETHOD SetScreenLayout(ScreenLayoutMode_T screenLayoutMode, PRUint32 guestScreenInfoSize, IGuestScreenInfo * *guestScreenInfo) = 0;

  /* void detachScreens (in unsigned long screenIdsSize, [array, size_is (screenIdsSize)] in long screenIds); */
  NS_IMETHOD DetachScreens(PRUint32 screenIdsSize, PRInt32 *screenIds) = 0;

  /* void createGuestScreenInfo (in unsigned long display, in GuestMonitorStatus_T status, in boolean primary, in boolean changeOrigin, in long originX, in long originY, in unsigned long width, in unsigned long height, in unsigned long bitsPerPixel, [retval] out IGuestScreenInfo guestScreenInfo); */
  NS_IMETHOD CreateGuestScreenInfo(PRUint32 display, GuestMonitorStatus_T status, PRBool primary, PRBool changeOrigin, PRInt32 originX, PRInt32 originY, PRUint32 width, PRUint32 height, PRUint32 bitsPerPixel, IGuestScreenInfo * *guestScreenInfo) = 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;

  /* void InternalAndReservedMethod5IDisplay (); */
  NS_IMETHOD InternalAndReservedMethod5IDisplay(void) = 0;

  /* void InternalAndReservedMethod6IDisplay (); */
  NS_IMETHOD InternalAndReservedMethod6IDisplay(void) = 0;

  /* void InternalAndReservedMethod7IDisplay (); */
  NS_IMETHOD InternalAndReservedMethod7IDisplay(void) = 0;

  /* void InternalAndReservedMethod8IDisplay (); */
  NS_IMETHOD InternalAndReservedMethod8IDisplay(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IDISPLAY \
  NS_IMETHOD GetGuestScreenLayout(PRUint32 *guestScreenLayoutSize, IGuestScreenInfo * **guestScreenLayout) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IDisplay(PRUint32 *aInternalAndReservedAttribute1IDisplay) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IDisplay(PRUint32 *aInternalAndReservedAttribute2IDisplay) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IDisplay(PRUint32 *aInternalAndReservedAttribute3IDisplay) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IDisplay(PRUint32 *aInternalAndReservedAttribute4IDisplay) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IDisplay(PRUint32 *aInternalAndReservedAttribute5IDisplay) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IDisplay(PRUint32 *aInternalAndReservedAttribute6IDisplay) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IDisplay(PRUint32 *aInternalAndReservedAttribute7IDisplay) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IDisplay(PRUint32 *aInternalAndReservedAttribute8IDisplay) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute9IDisplay(PRUint32 *aInternalAndReservedAttribute9IDisplay) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute10IDisplay(PRUint32 *aInternalAndReservedAttribute10IDisplay) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute11IDisplay(PRUint32 *aInternalAndReservedAttribute11IDisplay) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute12IDisplay(PRUint32 *aInternalAndReservedAttribute12IDisplay) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute13IDisplay(PRUint32 *aInternalAndReservedAttribute13IDisplay) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute14IDisplay(PRUint32 *aInternalAndReservedAttribute14IDisplay) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute15IDisplay(PRUint32 *aInternalAndReservedAttribute15IDisplay) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute16IDisplay(PRUint32 *aInternalAndReservedAttribute16IDisplay) NS_OVERRIDE; \
  NS_IMETHOD GetScreenResolution(PRUint32 screenId, PRUint32 *width, PRUint32 *height, PRUint32 *bitsPerPixel, PRInt32 *xOrigin, PRInt32 *yOrigin, GuestMonitorStatus_T *guestMonitorStatus) NS_OVERRIDE; \
  NS_IMETHOD AttachFramebuffer(PRUint32 screenId, IFramebuffer * framebuffer, PRUnichar **id) NS_OVERRIDE; \
  NS_IMETHOD DetachFramebuffer(PRUint32 screenId, const PRUnichar *id) NS_OVERRIDE; \
  NS_IMETHOD QueryFramebuffer(PRUint32 screenId, IFramebuffer * *framebuffer) NS_OVERRIDE; \
  NS_IMETHOD SetVideoModeHint(PRUint32 display, PRBool enabled, PRBool changeOrigin, PRInt32 originX, PRInt32 originY, PRUint32 width, PRUint32 height, PRUint32 bitsPerPixel, PRBool notify) NS_OVERRIDE; \
  NS_IMETHOD GetVideoModeHint(PRUint32 display, PRBool *enabled, PRBool *changeOrigin, PRInt32 *originX, PRInt32 *originY, PRUint32 *width, PRUint32 *height, PRUint32 *bitsPerPixel) NS_OVERRIDE; \
  NS_IMETHOD SetSeamlessMode(PRBool enabled) NS_OVERRIDE; \
  NS_IMETHOD TakeScreenShot(PRUint32 screenId, PRUint8 * address, PRUint32 width, PRUint32 height, BitmapFormat_T bitmapFormat) NS_OVERRIDE; \
  NS_IMETHOD TakeScreenShotToArray(PRUint32 screenId, PRUint32 width, PRUint32 height, BitmapFormat_T bitmapFormat, PRUint32 *screenDataSize, PRUint8 **screenData) NS_OVERRIDE; \
  NS_IMETHOD DrawToScreen(PRUint32 screenId, PRUint8 * address, PRUint32 x, PRUint32 y, PRUint32 width, PRUint32 height) NS_OVERRIDE; \
  NS_IMETHOD InvalidateAndUpdate(void) NS_OVERRIDE; \
  NS_IMETHOD InvalidateAndUpdateScreen(PRUint32 screenId) NS_OVERRIDE; \
  NS_IMETHOD ViewportChanged(PRUint32 screenId, PRUint32 x, PRUint32 y, PRUint32 width, PRUint32 height) NS_OVERRIDE; \
  NS_IMETHOD QuerySourceBitmap(PRUint32 screenId, IDisplaySourceBitmap * *displaySourceBitmap) NS_OVERRIDE; \
  NS_IMETHOD NotifyScaleFactorChange(PRUint32 screenId, PRUint32 u32ScaleFactorWMultiplied, PRUint32 u32ScaleFactorHMultiplied) NS_OVERRIDE; \
  NS_IMETHOD NotifyHiDPIOutputPolicyChange(PRBool fUnscaledHiDPI) NS_OVERRIDE; \
  NS_IMETHOD SetScreenLayout(ScreenLayoutMode_T screenLayoutMode, PRUint32 guestScreenInfoSize, IGuestScreenInfo * *guestScreenInfo) NS_OVERRIDE; \
  NS_IMETHOD DetachScreens(PRUint32 screenIdsSize, PRInt32 *screenIds) NS_OVERRIDE; \
  NS_IMETHOD CreateGuestScreenInfo(PRUint32 display, GuestMonitorStatus_T status, PRBool primary, PRBool changeOrigin, PRInt32 originX, PRInt32 originY, PRUint32 width, PRUint32 height, PRUint32 bitsPerPixel, IGuestScreenInfo * *guestScreenInfo) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IDisplay(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IDisplay(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IDisplay(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IDisplay(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod5IDisplay(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod6IDisplay(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod7IDisplay(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod8IDisplay(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IDISPLAY(_to) \
  NS_IMETHOD GetGuestScreenLayout(PRUint32 *guestScreenLayoutSize, IGuestScreenInfo * **guestScreenLayout) { return _to GetGuestScreenLayout(guestScreenLayoutSize, guestScreenLayout); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IDisplay(PRUint32 *aInternalAndReservedAttribute1IDisplay) { return _to GetInternalAndReservedAttribute1IDisplay(aInternalAndReservedAttribute1IDisplay); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IDisplay(PRUint32 *aInternalAndReservedAttribute2IDisplay) { return _to GetInternalAndReservedAttribute2IDisplay(aInternalAndReservedAttribute2IDisplay); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IDisplay(PRUint32 *aInternalAndReservedAttribute3IDisplay) { return _to GetInternalAndReservedAttribute3IDisplay(aInternalAndReservedAttribute3IDisplay); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IDisplay(PRUint32 *aInternalAndReservedAttribute4IDisplay) { return _to GetInternalAndReservedAttribute4IDisplay(aInternalAndReservedAttribute4IDisplay); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IDisplay(PRUint32 *aInternalAndReservedAttribute5IDisplay) { return _to GetInternalAndReservedAttribute5IDisplay(aInternalAndReservedAttribute5IDisplay); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IDisplay(PRUint32 *aInternalAndReservedAttribute6IDisplay) { return _to GetInternalAndReservedAttribute6IDisplay(aInternalAndReservedAttribute6IDisplay); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IDisplay(PRUint32 *aInternalAndReservedAttribute7IDisplay) { return _to GetInternalAndReservedAttribute7IDisplay(aInternalAndReservedAttribute7IDisplay); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IDisplay(PRUint32 *aInternalAndReservedAttribute8IDisplay) { return _to GetInternalAndReservedAttribute8IDisplay(aInternalAndReservedAttribute8IDisplay); } \
  NS_IMETHOD GetInternalAndReservedAttribute9IDisplay(PRUint32 *aInternalAndReservedAttribute9IDisplay) { return _to GetInternalAndReservedAttribute9IDisplay(aInternalAndReservedAttribute9IDisplay); } \
  NS_IMETHOD GetInternalAndReservedAttribute10IDisplay(PRUint32 *aInternalAndReservedAttribute10IDisplay) { return _to GetInternalAndReservedAttribute10IDisplay(aInternalAndReservedAttribute10IDisplay); } \
  NS_IMETHOD GetInternalAndReservedAttribute11IDisplay(PRUint32 *aInternalAndReservedAttribute11IDisplay) { return _to GetInternalAndReservedAttribute11IDisplay(aInternalAndReservedAttribute11IDisplay); } \
  NS_IMETHOD GetInternalAndReservedAttribute12IDisplay(PRUint32 *aInternalAndReservedAttribute12IDisplay) { return _to GetInternalAndReservedAttribute12IDisplay(aInternalAndReservedAttribute12IDisplay); } \
  NS_IMETHOD GetInternalAndReservedAttribute13IDisplay(PRUint32 *aInternalAndReservedAttribute13IDisplay) { return _to GetInternalAndReservedAttribute13IDisplay(aInternalAndReservedAttribute13IDisplay); } \
  NS_IMETHOD GetInternalAndReservedAttribute14IDisplay(PRUint32 *aInternalAndReservedAttribute14IDisplay) { return _to GetInternalAndReservedAttribute14IDisplay(aInternalAndReservedAttribute14IDisplay); } \
  NS_IMETHOD GetInternalAndReservedAttribute15IDisplay(PRUint32 *aInternalAndReservedAttribute15IDisplay) { return _to GetInternalAndReservedAttribute15IDisplay(aInternalAndReservedAttribute15IDisplay); } \
  NS_IMETHOD GetInternalAndReservedAttribute16IDisplay(PRUint32 *aInternalAndReservedAttribute16IDisplay) { return _to GetInternalAndReservedAttribute16IDisplay(aInternalAndReservedAttribute16IDisplay); } \
  NS_IMETHOD GetScreenResolution(PRUint32 screenId, PRUint32 *width, PRUint32 *height, PRUint32 *bitsPerPixel, PRInt32 *xOrigin, PRInt32 *yOrigin, GuestMonitorStatus_T *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, PRBool notify) { return _to SetVideoModeHint(display, enabled, changeOrigin, originX, originY, width, height, bitsPerPixel, notify); } \
  NS_IMETHOD GetVideoModeHint(PRUint32 display, PRBool *enabled, PRBool *changeOrigin, PRInt32 *originX, PRInt32 *originY, PRUint32 *width, PRUint32 *height, PRUint32 *bitsPerPixel) { return _to GetVideoModeHint(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, BitmapFormat_T bitmapFormat) { return _to TakeScreenShot(screenId, address, width, height, bitmapFormat); } \
  NS_IMETHOD TakeScreenShotToArray(PRUint32 screenId, PRUint32 width, PRUint32 height, BitmapFormat_T 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 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 SetScreenLayout(ScreenLayoutMode_T screenLayoutMode, PRUint32 guestScreenInfoSize, IGuestScreenInfo * *guestScreenInfo) { return _to SetScreenLayout(screenLayoutMode, guestScreenInfoSize, guestScreenInfo); } \
  NS_IMETHOD DetachScreens(PRUint32 screenIdsSize, PRInt32 *screenIds) { return _to DetachScreens(screenIdsSize, screenIds); } \
  NS_IMETHOD CreateGuestScreenInfo(PRUint32 display, GuestMonitorStatus_T status, PRBool primary, PRBool changeOrigin, PRInt32 originX, PRInt32 originY, PRUint32 width, PRUint32 height, PRUint32 bitsPerPixel, IGuestScreenInfo * *guestScreenInfo) { return _to CreateGuestScreenInfo(display, status, primary, changeOrigin, originX, originY, width, height, bitsPerPixel, guestScreenInfo); } \
  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(); } \
  NS_IMETHOD InternalAndReservedMethod5IDisplay(void) { return _to InternalAndReservedMethod5IDisplay(); } \
  NS_IMETHOD InternalAndReservedMethod6IDisplay(void) { return _to InternalAndReservedMethod6IDisplay(); } \
  NS_IMETHOD InternalAndReservedMethod7IDisplay(void) { return _to InternalAndReservedMethod7IDisplay(); } \
  NS_IMETHOD InternalAndReservedMethod8IDisplay(void) { return _to InternalAndReservedMethod8IDisplay(); } 

/* 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 GetGuestScreenLayout(PRUint32 *guestScreenLayoutSize, IGuestScreenInfo * **guestScreenLayout) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGuestScreenLayout(guestScreenLayoutSize, guestScreenLayout); } \
  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 GetInternalAndReservedAttribute3IDisplay(PRUint32 *aInternalAndReservedAttribute3IDisplay) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IDisplay(aInternalAndReservedAttribute3IDisplay); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IDisplay(PRUint32 *aInternalAndReservedAttribute4IDisplay) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IDisplay(aInternalAndReservedAttribute4IDisplay); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IDisplay(PRUint32 *aInternalAndReservedAttribute5IDisplay) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IDisplay(aInternalAndReservedAttribute5IDisplay); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IDisplay(PRUint32 *aInternalAndReservedAttribute6IDisplay) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IDisplay(aInternalAndReservedAttribute6IDisplay); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IDisplay(PRUint32 *aInternalAndReservedAttribute7IDisplay) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IDisplay(aInternalAndReservedAttribute7IDisplay); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IDisplay(PRUint32 *aInternalAndReservedAttribute8IDisplay) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IDisplay(aInternalAndReservedAttribute8IDisplay); } \
  NS_IMETHOD GetInternalAndReservedAttribute9IDisplay(PRUint32 *aInternalAndReservedAttribute9IDisplay) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute9IDisplay(aInternalAndReservedAttribute9IDisplay); } \
  NS_IMETHOD GetInternalAndReservedAttribute10IDisplay(PRUint32 *aInternalAndReservedAttribute10IDisplay) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute10IDisplay(aInternalAndReservedAttribute10IDisplay); } \
  NS_IMETHOD GetInternalAndReservedAttribute11IDisplay(PRUint32 *aInternalAndReservedAttribute11IDisplay) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute11IDisplay(aInternalAndReservedAttribute11IDisplay); } \
  NS_IMETHOD GetInternalAndReservedAttribute12IDisplay(PRUint32 *aInternalAndReservedAttribute12IDisplay) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute12IDisplay(aInternalAndReservedAttribute12IDisplay); } \
  NS_IMETHOD GetInternalAndReservedAttribute13IDisplay(PRUint32 *aInternalAndReservedAttribute13IDisplay) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute13IDisplay(aInternalAndReservedAttribute13IDisplay); } \
  NS_IMETHOD GetInternalAndReservedAttribute14IDisplay(PRUint32 *aInternalAndReservedAttribute14IDisplay) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute14IDisplay(aInternalAndReservedAttribute14IDisplay); } \
  NS_IMETHOD GetInternalAndReservedAttribute15IDisplay(PRUint32 *aInternalAndReservedAttribute15IDisplay) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute15IDisplay(aInternalAndReservedAttribute15IDisplay); } \
  NS_IMETHOD GetInternalAndReservedAttribute16IDisplay(PRUint32 *aInternalAndReservedAttribute16IDisplay) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute16IDisplay(aInternalAndReservedAttribute16IDisplay); } \
  NS_IMETHOD GetScreenResolution(PRUint32 screenId, PRUint32 *width, PRUint32 *height, PRUint32 *bitsPerPixel, PRInt32 *xOrigin, PRInt32 *yOrigin, GuestMonitorStatus_T *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, PRBool notify) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetVideoModeHint(display, enabled, changeOrigin, originX, originY, width, height, bitsPerPixel, notify); } \
  NS_IMETHOD GetVideoModeHint(PRUint32 display, PRBool *enabled, PRBool *changeOrigin, PRInt32 *originX, PRInt32 *originY, PRUint32 *width, PRUint32 *height, PRUint32 *bitsPerPixel) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVideoModeHint(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, BitmapFormat_T bitmapFormat) { return !_to ? NS_ERROR_NULL_POINTER : _to->TakeScreenShot(screenId, address, width, height, bitmapFormat); } \
  NS_IMETHOD TakeScreenShotToArray(PRUint32 screenId, PRUint32 width, PRUint32 height, BitmapFormat_T 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 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 SetScreenLayout(ScreenLayoutMode_T screenLayoutMode, PRUint32 guestScreenInfoSize, IGuestScreenInfo * *guestScreenInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetScreenLayout(screenLayoutMode, guestScreenInfoSize, guestScreenInfo); } \
  NS_IMETHOD DetachScreens(PRUint32 screenIdsSize, PRInt32 *screenIds) { return !_to ? NS_ERROR_NULL_POINTER : _to->DetachScreens(screenIdsSize, screenIds); } \
  NS_IMETHOD CreateGuestScreenInfo(PRUint32 display, GuestMonitorStatus_T status, PRBool primary, PRBool changeOrigin, PRInt32 originX, PRInt32 originY, PRUint32 width, PRUint32 height, PRUint32 bitsPerPixel, IGuestScreenInfo * *guestScreenInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateGuestScreenInfo(display, status, primary, changeOrigin, originX, originY, width, height, bitsPerPixel, guestScreenInfo); } \
  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(); } \
  NS_IMETHOD InternalAndReservedMethod5IDisplay(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod5IDisplay(); } \
  NS_IMETHOD InternalAndReservedMethod6IDisplay(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod6IDisplay(); } \
  NS_IMETHOD InternalAndReservedMethod7IDisplay(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod7IDisplay(); } \
  NS_IMETHOD InternalAndReservedMethod8IDisplay(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod8IDisplay(); } 

#define COM_FORWARD_IDisplay_GETTER_GuestScreenLayout_TO(smth) NS_IMETHOD GetGuestScreenLayout (PRUint32 * aGuestScreenLayoutSize, IGuestScreenInfo * * * aGuestScreenLayout) { return smth GetGuestScreenLayout (aGuestScreenLayoutSize, aGuestScreenLayout); }
#define COM_FORWARD_IDisplay_GETTER_GuestScreenLayout_TO_OBJ(obj) COM_FORWARD_IDisplay_GETTER_GuestScreenLayout_TO ((obj)->)
#define COM_FORWARD_IDisplay_GETTER_GuestScreenLayout_TO_BASE(base) COM_FORWARD_IDisplay_GETTER_GuestScreenLayout_TO (base::)
#define COM_FORWARD_IDisplay_GetScreenResolution_TO(smth) NS_IMETHOD GetScreenResolution (PRUint32 aScreenId, PRUint32 * aWidth, PRUint32 * aHeight, PRUint32 * aBitsPerPixel, PRInt32 * aXOrigin, PRInt32 * aYOrigin, PRUint32 * aGuestMonitorStatus) { return smth GetScreenResolution (aScreenId, aWidth, aHeight, aBitsPerPixel, aXOrigin, aYOrigin, aGuestMonitorStatus); }
#define COM_FORWARD_IDisplay_GetScreenResolution_TO_OBJ(obj) COM_FORWARD_IDisplay_GetScreenResolution_TO ((obj)->)
#define COM_FORWARD_IDisplay_GetScreenResolution_TO_BASE(base) COM_FORWARD_IDisplay_GetScreenResolution_TO (base::)
#define COM_FORWARD_IDisplay_AttachFramebuffer_TO(smth) NS_IMETHOD AttachFramebuffer (PRUint32 aScreenId, IFramebuffer * aFramebuffer, PRUnichar * * aId) { return smth AttachFramebuffer (aScreenId, aFramebuffer, aId); }
#define COM_FORWARD_IDisplay_AttachFramebuffer_TO_OBJ(obj) COM_FORWARD_IDisplay_AttachFramebuffer_TO ((obj)->)
#define COM_FORWARD_IDisplay_AttachFramebuffer_TO_BASE(base) COM_FORWARD_IDisplay_AttachFramebuffer_TO (base::)
#define COM_FORWARD_IDisplay_DetachFramebuffer_TO(smth) NS_IMETHOD DetachFramebuffer (PRUint32 aScreenId, PRUnichar * aId) { return smth DetachFramebuffer (aScreenId, aId); }
#define COM_FORWARD_IDisplay_DetachFramebuffer_TO_OBJ(obj) COM_FORWARD_IDisplay_DetachFramebuffer_TO ((obj)->)
#define COM_FORWARD_IDisplay_DetachFramebuffer_TO_BASE(base) COM_FORWARD_IDisplay_DetachFramebuffer_TO (base::)
#define COM_FORWARD_IDisplay_QueryFramebuffer_TO(smth) NS_IMETHOD QueryFramebuffer (PRUint32 aScreenId, IFramebuffer * * aFramebuffer) { return smth QueryFramebuffer (aScreenId, aFramebuffer); }
#define COM_FORWARD_IDisplay_QueryFramebuffer_TO_OBJ(obj) COM_FORWARD_IDisplay_QueryFramebuffer_TO ((obj)->)
#define COM_FORWARD_IDisplay_QueryFramebuffer_TO_BASE(base) COM_FORWARD_IDisplay_QueryFramebuffer_TO (base::)
#define COM_FORWARD_IDisplay_SetVideoModeHint_TO(smth) NS_IMETHOD SetVideoModeHint (PRUint32 aDisplay, PRBool aEnabled, PRBool aChangeOrigin, PRInt32 aOriginX, PRInt32 aOriginY, PRUint32 aWidth, PRUint32 aHeight, PRUint32 aBitsPerPixel, PRBool aNotify) { return smth SetVideoModeHint (aDisplay, aEnabled, aChangeOrigin, aOriginX, aOriginY, aWidth, aHeight, aBitsPerPixel, aNotify); }
#define COM_FORWARD_IDisplay_SetVideoModeHint_TO_OBJ(obj) COM_FORWARD_IDisplay_SetVideoModeHint_TO ((obj)->)
#define COM_FORWARD_IDisplay_SetVideoModeHint_TO_BASE(base) COM_FORWARD_IDisplay_SetVideoModeHint_TO (base::)
#define COM_FORWARD_IDisplay_GetVideoModeHint_TO(smth) NS_IMETHOD GetVideoModeHint (PRUint32 aDisplay, PRBool * aEnabled, PRBool * aChangeOrigin, PRInt32 * aOriginX, PRInt32 * aOriginY, PRUint32 * aWidth, PRUint32 * aHeight, PRUint32 * aBitsPerPixel) { return smth GetVideoModeHint (aDisplay, aEnabled, aChangeOrigin, aOriginX, aOriginY, aWidth, aHeight, aBitsPerPixel); }
#define COM_FORWARD_IDisplay_GetVideoModeHint_TO_OBJ(obj) COM_FORWARD_IDisplay_GetVideoModeHint_TO ((obj)->)
#define COM_FORWARD_IDisplay_GetVideoModeHint_TO_BASE(base) COM_FORWARD_IDisplay_GetVideoModeHint_TO (base::)
#define COM_FORWARD_IDisplay_SetSeamlessMode_TO(smth) NS_IMETHOD SetSeamlessMode (PRBool aEnabled) { return smth SetSeamlessMode (aEnabled); }
#define COM_FORWARD_IDisplay_SetSeamlessMode_TO_OBJ(obj) COM_FORWARD_IDisplay_SetSeamlessMode_TO ((obj)->)
#define COM_FORWARD_IDisplay_SetSeamlessMode_TO_BASE(base) COM_FORWARD_IDisplay_SetSeamlessMode_TO (base::)
#define COM_FORWARD_IDisplay_TakeScreenShot_TO(smth) NS_IMETHOD TakeScreenShot (PRUint32 aScreenId, PRUint8 * aAddress, PRUint32 aWidth, PRUint32 aHeight, PRUint32 aBitmapFormat) { return smth TakeScreenShot (aScreenId, aAddress, aWidth, aHeight, aBitmapFormat); }
#define COM_FORWARD_IDisplay_TakeScreenShot_TO_OBJ(obj) COM_FORWARD_IDisplay_TakeScreenShot_TO ((obj)->)
#define COM_FORWARD_IDisplay_TakeScreenShot_TO_BASE(base) COM_FORWARD_IDisplay_TakeScreenShot_TO (base::)
#define COM_FORWARD_IDisplay_TakeScreenShotToArray_TO(smth) NS_IMETHOD TakeScreenShotToArray (PRUint32 aScreenId, PRUint32 aWidth, PRUint32 aHeight, PRUint32 aBitmapFormat, PRUint32 * aScreenDataSize, PRUint8 * * aScreenData) { return smth TakeScreenShotToArray (aScreenId, aWidth, aHeight, aBitmapFormat, aScreenDataSize, aScreenData); }
#define COM_FORWARD_IDisplay_TakeScreenShotToArray_TO_OBJ(obj) COM_FORWARD_IDisplay_TakeScreenShotToArray_TO ((obj)->)
#define COM_FORWARD_IDisplay_TakeScreenShotToArray_TO_BASE(base) COM_FORWARD_IDisplay_TakeScreenShotToArray_TO (base::)
#define COM_FORWARD_IDisplay_DrawToScreen_TO(smth) NS_IMETHOD DrawToScreen (PRUint32 aScreenId, PRUint8 * aAddress, PRUint32 aX, PRUint32 aY, PRUint32 aWidth, PRUint32 aHeight) { return smth DrawToScreen (aScreenId, aAddress, aX, aY, aWidth, aHeight); }
#define COM_FORWARD_IDisplay_DrawToScreen_TO_OBJ(obj) COM_FORWARD_IDisplay_DrawToScreen_TO ((obj)->)
#define COM_FORWARD_IDisplay_DrawToScreen_TO_BASE(base) COM_FORWARD_IDisplay_DrawToScreen_TO (base::)
#define COM_FORWARD_IDisplay_InvalidateAndUpdate_TO(smth) NS_IMETHOD InvalidateAndUpdate() { return smth InvalidateAndUpdate(); }
#define COM_FORWARD_IDisplay_InvalidateAndUpdate_TO_OBJ(obj) COM_FORWARD_IDisplay_InvalidateAndUpdate_TO ((obj)->)
#define COM_FORWARD_IDisplay_InvalidateAndUpdate_TO_BASE(base) COM_FORWARD_IDisplay_InvalidateAndUpdate_TO (base::)
#define COM_FORWARD_IDisplay_InvalidateAndUpdateScreen_TO(smth) NS_IMETHOD InvalidateAndUpdateScreen (PRUint32 aScreenId) { return smth InvalidateAndUpdateScreen (aScreenId); }
#define COM_FORWARD_IDisplay_InvalidateAndUpdateScreen_TO_OBJ(obj) COM_FORWARD_IDisplay_InvalidateAndUpdateScreen_TO ((obj)->)
#define COM_FORWARD_IDisplay_InvalidateAndUpdateScreen_TO_BASE(base) COM_FORWARD_IDisplay_InvalidateAndUpdateScreen_TO (base::)
#define COM_FORWARD_IDisplay_ViewportChanged_TO(smth) NS_IMETHOD ViewportChanged (PRUint32 aScreenId, PRUint32 aX, PRUint32 aY, PRUint32 aWidth, PRUint32 aHeight) { return smth ViewportChanged (aScreenId, aX, aY, aWidth, aHeight); }
#define COM_FORWARD_IDisplay_ViewportChanged_TO_OBJ(obj) COM_FORWARD_IDisplay_ViewportChanged_TO ((obj)->)
#define COM_FORWARD_IDisplay_ViewportChanged_TO_BASE(base) COM_FORWARD_IDisplay_ViewportChanged_TO (base::)
#define COM_FORWARD_IDisplay_QuerySourceBitmap_TO(smth) NS_IMETHOD QuerySourceBitmap (PRUint32 aScreenId, IDisplaySourceBitmap * * aDisplaySourceBitmap) { return smth QuerySourceBitmap (aScreenId, aDisplaySourceBitmap); }
#define COM_FORWARD_IDisplay_QuerySourceBitmap_TO_OBJ(obj) COM_FORWARD_IDisplay_QuerySourceBitmap_TO ((obj)->)
#define COM_FORWARD_IDisplay_QuerySourceBitmap_TO_BASE(base) COM_FORWARD_IDisplay_QuerySourceBitmap_TO (base::)
#define COM_FORWARD_IDisplay_NotifyScaleFactorChange_TO(smth) NS_IMETHOD NotifyScaleFactorChange (PRUint32 aScreenId, PRUint32 aU32ScaleFactorWMultiplied, PRUint32 aU32ScaleFactorHMultiplied) { return smth NotifyScaleFactorChange (aScreenId, aU32ScaleFactorWMultiplied, aU32ScaleFactorHMultiplied); }
#define COM_FORWARD_IDisplay_NotifyScaleFactorChange_TO_OBJ(obj) COM_FORWARD_IDisplay_NotifyScaleFactorChange_TO ((obj)->)
#define COM_FORWARD_IDisplay_NotifyScaleFactorChange_TO_BASE(base) COM_FORWARD_IDisplay_NotifyScaleFactorChange_TO (base::)
#define COM_FORWARD_IDisplay_NotifyHiDPIOutputPolicyChange_TO(smth) NS_IMETHOD NotifyHiDPIOutputPolicyChange (PRBool aFUnscaledHiDPI) { return smth NotifyHiDPIOutputPolicyChange (aFUnscaledHiDPI); }
#define COM_FORWARD_IDisplay_NotifyHiDPIOutputPolicyChange_TO_OBJ(obj) COM_FORWARD_IDisplay_NotifyHiDPIOutputPolicyChange_TO ((obj)->)
#define COM_FORWARD_IDisplay_NotifyHiDPIOutputPolicyChange_TO_BASE(base) COM_FORWARD_IDisplay_NotifyHiDPIOutputPolicyChange_TO (base::)
#define COM_FORWARD_IDisplay_SetScreenLayout_TO(smth) NS_IMETHOD SetScreenLayout (PRUint32 aScreenLayoutMode, PRUint32 aGuestScreenInfoSize, IGuestScreenInfo * * aGuestScreenInfo) { return smth SetScreenLayout (aScreenLayoutMode, aGuestScreenInfoSize, aGuestScreenInfo); }
#define COM_FORWARD_IDisplay_SetScreenLayout_TO_OBJ(obj) COM_FORWARD_IDisplay_SetScreenLayout_TO ((obj)->)
#define COM_FORWARD_IDisplay_SetScreenLayout_TO_BASE(base) COM_FORWARD_IDisplay_SetScreenLayout_TO (base::)
#define COM_FORWARD_IDisplay_DetachScreens_TO(smth) NS_IMETHOD DetachScreens (PRUint32 aScreenIdsSize, PRInt32 * aScreenIds) { return smth DetachScreens (aScreenIdsSize, aScreenIds); }
#define COM_FORWARD_IDisplay_DetachScreens_TO_OBJ(obj) COM_FORWARD_IDisplay_DetachScreens_TO ((obj)->)
#define COM_FORWARD_IDisplay_DetachScreens_TO_BASE(base) COM_FORWARD_IDisplay_DetachScreens_TO (base::)
#define COM_FORWARD_IDisplay_CreateGuestScreenInfo_TO(smth) NS_IMETHOD CreateGuestScreenInfo (PRUint32 aDisplay, PRUint32 aStatus, PRBool aPrimary, PRBool aChangeOrigin, PRInt32 aOriginX, PRInt32 aOriginY, PRUint32 aWidth, PRUint32 aHeight, PRUint32 aBitsPerPixel, IGuestScreenInfo * * aGuestScreenInfo) { return smth CreateGuestScreenInfo (aDisplay, aStatus, aPrimary, aChangeOrigin, aOriginX, aOriginY, aWidth, aHeight, aBitsPerPixel, aGuestScreenInfo); }
#define COM_FORWARD_IDisplay_CreateGuestScreenInfo_TO_OBJ(obj) COM_FORWARD_IDisplay_CreateGuestScreenInfo_TO ((obj)->)
#define COM_FORWARD_IDisplay_CreateGuestScreenInfo_TO_BASE(base) COM_FORWARD_IDisplay_CreateGuestScreenInfo_TO (base::)
#define COM_FORWARD_IDisplay_TO(smth) NS_FORWARD_IDISPLAY (smth)
#define COM_FORWARD_IDisplay_TO_OBJ(obj) COM_FORWARD_IDisplay_TO ((obj)->)
#define COM_FORWARD_IDisplay_TO_BASE(base) COM_FORWARD_IDisplay_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IDisplay;

/* starting interface:    INetworkAdapter */
#define INETWORKADAPTER_IID_STR "dcf47a1d-ed70-4db8-9a4b-2646bd166905"

#define INETWORKADAPTER_IID \
  {0xdcf47a1d, 0xed70, 0x4db8, \
    { 0x9a, 0x4b, 0x26, 0x46, 0xbd, 0x16, 0x69, 0x05 }}

class NS_NO_VTABLE INetworkAdapter : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(INETWORKADAPTER_IID)

  /* attribute NetworkAdapterType_T adapterType; */
  NS_IMETHOD GetAdapterType(NetworkAdapterType_T *aAdapterType) = 0;
  NS_IMETHOD SetAdapterType(NetworkAdapterType_T 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 NetworkAttachmentType_T attachmentType; */
  NS_IMETHOD GetAttachmentType(NetworkAttachmentType_T *aAttachmentType) = 0;
  NS_IMETHOD SetAttachmentType(NetworkAttachmentType_T 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 hostOnlyNetwork; */
  NS_IMETHOD GetHostOnlyNetwork(PRUnichar **aHostOnlyNetwork) = 0;
  NS_IMETHOD SetHostOnlyNetwork(const PRUnichar *aHostOnlyNetwork) = 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 wstring cloudNetwork; */
  NS_IMETHOD GetCloudNetwork(PRUnichar **aCloudNetwork) = 0;
  NS_IMETHOD SetCloudNetwork(const PRUnichar *aCloudNetwork) = 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 NetworkAdapterPromiscModePolicy_T promiscModePolicy; */
  NS_IMETHOD GetPromiscModePolicy(NetworkAdapterPromiscModePolicy_T *aPromiscModePolicy) = 0;
  NS_IMETHOD SetPromiscModePolicy(NetworkAdapterPromiscModePolicy_T 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;

  /* readonly attribute unsigned long InternalAndReservedAttribute5INetworkAdapter; */
  NS_IMETHOD GetInternalAndReservedAttribute5INetworkAdapter(PRUint32 *aInternalAndReservedAttribute5INetworkAdapter) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6INetworkAdapter; */
  NS_IMETHOD GetInternalAndReservedAttribute6INetworkAdapter(PRUint32 *aInternalAndReservedAttribute6INetworkAdapter) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7INetworkAdapter; */
  NS_IMETHOD GetInternalAndReservedAttribute7INetworkAdapter(PRUint32 *aInternalAndReservedAttribute7INetworkAdapter) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8INetworkAdapter; */
  NS_IMETHOD GetInternalAndReservedAttribute8INetworkAdapter(PRUint32 *aInternalAndReservedAttribute8INetworkAdapter) = 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;

  /* void InternalAndReservedMethod2INetworkAdapter (); */
  NS_IMETHOD InternalAndReservedMethod2INetworkAdapter(void) = 0;

  /* void InternalAndReservedMethod3INetworkAdapter (); */
  NS_IMETHOD InternalAndReservedMethod3INetworkAdapter(void) = 0;

  /* void InternalAndReservedMethod4INetworkAdapter (); */
  NS_IMETHOD InternalAndReservedMethod4INetworkAdapter(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_INETWORKADAPTER \
  NS_IMETHOD GetAdapterType(NetworkAdapterType_T *aAdapterType) NS_OVERRIDE; \
  NS_IMETHOD SetAdapterType(NetworkAdapterType_T aAdapterType) NS_OVERRIDE; \
  NS_IMETHOD GetSlot(PRUint32 *aSlot) NS_OVERRIDE; \
  NS_IMETHOD GetEnabled(PRBool *aEnabled) NS_OVERRIDE; \
  NS_IMETHOD SetEnabled(PRBool aEnabled) NS_OVERRIDE; \
  NS_IMETHOD GetMACAddress(PRUnichar **aMACAddress) NS_OVERRIDE; \
  NS_IMETHOD SetMACAddress(const PRUnichar *aMACAddress) NS_OVERRIDE; \
  NS_IMETHOD GetAttachmentType(NetworkAttachmentType_T *aAttachmentType) NS_OVERRIDE; \
  NS_IMETHOD SetAttachmentType(NetworkAttachmentType_T aAttachmentType) NS_OVERRIDE; \
  NS_IMETHOD GetBridgedInterface(PRUnichar **aBridgedInterface) NS_OVERRIDE; \
  NS_IMETHOD SetBridgedInterface(const PRUnichar *aBridgedInterface) NS_OVERRIDE; \
  NS_IMETHOD GetHostOnlyInterface(PRUnichar **aHostOnlyInterface) NS_OVERRIDE; \
  NS_IMETHOD SetHostOnlyInterface(const PRUnichar *aHostOnlyInterface) NS_OVERRIDE; \
  NS_IMETHOD GetHostOnlyNetwork(PRUnichar **aHostOnlyNetwork) NS_OVERRIDE; \
  NS_IMETHOD SetHostOnlyNetwork(const PRUnichar *aHostOnlyNetwork) NS_OVERRIDE; \
  NS_IMETHOD GetInternalNetwork(PRUnichar **aInternalNetwork) NS_OVERRIDE; \
  NS_IMETHOD SetInternalNetwork(const PRUnichar *aInternalNetwork) NS_OVERRIDE; \
  NS_IMETHOD GetNATNetwork(PRUnichar **aNATNetwork) NS_OVERRIDE; \
  NS_IMETHOD SetNATNetwork(const PRUnichar *aNATNetwork) NS_OVERRIDE; \
  NS_IMETHOD GetGenericDriver(PRUnichar **aGenericDriver) NS_OVERRIDE; \
  NS_IMETHOD SetGenericDriver(const PRUnichar *aGenericDriver) NS_OVERRIDE; \
  NS_IMETHOD GetCloudNetwork(PRUnichar **aCloudNetwork) NS_OVERRIDE; \
  NS_IMETHOD SetCloudNetwork(const PRUnichar *aCloudNetwork) NS_OVERRIDE; \
  NS_IMETHOD GetCableConnected(PRBool *aCableConnected) NS_OVERRIDE; \
  NS_IMETHOD SetCableConnected(PRBool aCableConnected) NS_OVERRIDE; \
  NS_IMETHOD GetLineSpeed(PRUint32 *aLineSpeed) NS_OVERRIDE; \
  NS_IMETHOD SetLineSpeed(PRUint32 aLineSpeed) NS_OVERRIDE; \
  NS_IMETHOD GetPromiscModePolicy(NetworkAdapterPromiscModePolicy_T *aPromiscModePolicy) NS_OVERRIDE; \
  NS_IMETHOD SetPromiscModePolicy(NetworkAdapterPromiscModePolicy_T aPromiscModePolicy) NS_OVERRIDE; \
  NS_IMETHOD GetTraceEnabled(PRBool *aTraceEnabled) NS_OVERRIDE; \
  NS_IMETHOD SetTraceEnabled(PRBool aTraceEnabled) NS_OVERRIDE; \
  NS_IMETHOD GetTraceFile(PRUnichar **aTraceFile) NS_OVERRIDE; \
  NS_IMETHOD SetTraceFile(const PRUnichar *aTraceFile) NS_OVERRIDE; \
  NS_IMETHOD GetNATEngine(INATEngine * *aNATEngine) NS_OVERRIDE; \
  NS_IMETHOD GetBootPriority(PRUint32 *aBootPriority) NS_OVERRIDE; \
  NS_IMETHOD SetBootPriority(PRUint32 aBootPriority) NS_OVERRIDE; \
  NS_IMETHOD GetBandwidthGroup(IBandwidthGroup * *aBandwidthGroup) NS_OVERRIDE; \
  NS_IMETHOD SetBandwidthGroup(IBandwidthGroup * aBandwidthGroup) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1INetworkAdapter(PRUint32 *aInternalAndReservedAttribute1INetworkAdapter) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2INetworkAdapter(PRUint32 *aInternalAndReservedAttribute2INetworkAdapter) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3INetworkAdapter(PRUint32 *aInternalAndReservedAttribute3INetworkAdapter) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4INetworkAdapter(PRUint32 *aInternalAndReservedAttribute4INetworkAdapter) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5INetworkAdapter(PRUint32 *aInternalAndReservedAttribute5INetworkAdapter) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6INetworkAdapter(PRUint32 *aInternalAndReservedAttribute6INetworkAdapter) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7INetworkAdapter(PRUint32 *aInternalAndReservedAttribute7INetworkAdapter) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8INetworkAdapter(PRUint32 *aInternalAndReservedAttribute8INetworkAdapter) NS_OVERRIDE; \
  NS_IMETHOD GetProperty(const PRUnichar *key, PRUnichar **value) NS_OVERRIDE; \
  NS_IMETHOD SetProperty(const PRUnichar *key, const PRUnichar *value) NS_OVERRIDE; \
  NS_IMETHOD GetProperties(const PRUnichar *names, PRUint32 *returnNamesSize, PRUnichar ***returnNames, PRUint32 *returnValuesSize, PRUnichar ***returnValues) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1INetworkAdapter(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2INetworkAdapter(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3INetworkAdapter(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4INetworkAdapter(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_INETWORKADAPTER(_to) \
  NS_IMETHOD GetAdapterType(NetworkAdapterType_T *aAdapterType) { return _to GetAdapterType(aAdapterType); } \
  NS_IMETHOD SetAdapterType(NetworkAdapterType_T 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(NetworkAttachmentType_T *aAttachmentType) { return _to GetAttachmentType(aAttachmentType); } \
  NS_IMETHOD SetAttachmentType(NetworkAttachmentType_T 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 GetHostOnlyNetwork(PRUnichar **aHostOnlyNetwork) { return _to GetHostOnlyNetwork(aHostOnlyNetwork); } \
  NS_IMETHOD SetHostOnlyNetwork(const PRUnichar *aHostOnlyNetwork) { return _to SetHostOnlyNetwork(aHostOnlyNetwork); } \
  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 GetCloudNetwork(PRUnichar **aCloudNetwork) { return _to GetCloudNetwork(aCloudNetwork); } \
  NS_IMETHOD SetCloudNetwork(const PRUnichar *aCloudNetwork) { return _to SetCloudNetwork(aCloudNetwork); } \
  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(NetworkAdapterPromiscModePolicy_T *aPromiscModePolicy) { return _to GetPromiscModePolicy(aPromiscModePolicy); } \
  NS_IMETHOD SetPromiscModePolicy(NetworkAdapterPromiscModePolicy_T 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 GetInternalAndReservedAttribute5INetworkAdapter(PRUint32 *aInternalAndReservedAttribute5INetworkAdapter) { return _to GetInternalAndReservedAttribute5INetworkAdapter(aInternalAndReservedAttribute5INetworkAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute6INetworkAdapter(PRUint32 *aInternalAndReservedAttribute6INetworkAdapter) { return _to GetInternalAndReservedAttribute6INetworkAdapter(aInternalAndReservedAttribute6INetworkAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute7INetworkAdapter(PRUint32 *aInternalAndReservedAttribute7INetworkAdapter) { return _to GetInternalAndReservedAttribute7INetworkAdapter(aInternalAndReservedAttribute7INetworkAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute8INetworkAdapter(PRUint32 *aInternalAndReservedAttribute8INetworkAdapter) { return _to GetInternalAndReservedAttribute8INetworkAdapter(aInternalAndReservedAttribute8INetworkAdapter); } \
  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(); } \
  NS_IMETHOD InternalAndReservedMethod2INetworkAdapter(void) { return _to InternalAndReservedMethod2INetworkAdapter(); } \
  NS_IMETHOD InternalAndReservedMethod3INetworkAdapter(void) { return _to InternalAndReservedMethod3INetworkAdapter(); } \
  NS_IMETHOD InternalAndReservedMethod4INetworkAdapter(void) { return _to InternalAndReservedMethod4INetworkAdapter(); } 

/* 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(NetworkAdapterType_T *aAdapterType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAdapterType(aAdapterType); } \
  NS_IMETHOD SetAdapterType(NetworkAdapterType_T 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(NetworkAttachmentType_T *aAttachmentType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAttachmentType(aAttachmentType); } \
  NS_IMETHOD SetAttachmentType(NetworkAttachmentType_T 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 GetHostOnlyNetwork(PRUnichar **aHostOnlyNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHostOnlyNetwork(aHostOnlyNetwork); } \
  NS_IMETHOD SetHostOnlyNetwork(const PRUnichar *aHostOnlyNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetHostOnlyNetwork(aHostOnlyNetwork); } \
  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 GetCloudNetwork(PRUnichar **aCloudNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCloudNetwork(aCloudNetwork); } \
  NS_IMETHOD SetCloudNetwork(const PRUnichar *aCloudNetwork) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCloudNetwork(aCloudNetwork); } \
  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(NetworkAdapterPromiscModePolicy_T *aPromiscModePolicy) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPromiscModePolicy(aPromiscModePolicy); } \
  NS_IMETHOD SetPromiscModePolicy(NetworkAdapterPromiscModePolicy_T 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 GetInternalAndReservedAttribute5INetworkAdapter(PRUint32 *aInternalAndReservedAttribute5INetworkAdapter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5INetworkAdapter(aInternalAndReservedAttribute5INetworkAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute6INetworkAdapter(PRUint32 *aInternalAndReservedAttribute6INetworkAdapter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6INetworkAdapter(aInternalAndReservedAttribute6INetworkAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute7INetworkAdapter(PRUint32 *aInternalAndReservedAttribute7INetworkAdapter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7INetworkAdapter(aInternalAndReservedAttribute7INetworkAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute8INetworkAdapter(PRUint32 *aInternalAndReservedAttribute8INetworkAdapter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8INetworkAdapter(aInternalAndReservedAttribute8INetworkAdapter); } \
  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(); } \
  NS_IMETHOD InternalAndReservedMethod2INetworkAdapter(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2INetworkAdapter(); } \
  NS_IMETHOD InternalAndReservedMethod3INetworkAdapter(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3INetworkAdapter(); } \
  NS_IMETHOD InternalAndReservedMethod4INetworkAdapter(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4INetworkAdapter(); } 

#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_HostOnlyNetwork_TO(smth) NS_IMETHOD GetHostOnlyNetwork (PRUnichar * * aHostOnlyNetwork) { return smth GetHostOnlyNetwork (aHostOnlyNetwork); }
#define COM_FORWARD_INetworkAdapter_GETTER_HostOnlyNetwork_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_HostOnlyNetwork_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_GETTER_HostOnlyNetwork_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_HostOnlyNetwork_TO (base::)
#define COM_FORWARD_INetworkAdapter_SETTER_HostOnlyNetwork_TO(smth) NS_IMETHOD SetHostOnlyNetwork (const PRUnichar * aHostOnlyNetwork) { return smth SetHostOnlyNetwork (aHostOnlyNetwork); }
#define COM_FORWARD_INetworkAdapter_SETTER_HostOnlyNetwork_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_HostOnlyNetwork_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_SETTER_HostOnlyNetwork_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_HostOnlyNetwork_TO (base::)
#define COM_FORWARD_INetworkAdapter_GETTER_InternalNetwork_TO(smth) NS_IMETHOD GetInternalNetwork (PRUnichar * * aInternalNetwork) { return smth GetInternalNetwork (aInternalNetwork); }
#define COM_FORWARD_INetworkAdapter_GETTER_InternalNetwork_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_InternalNetwork_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_GETTER_InternalNetwork_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_InternalNetwork_TO (base::)
#define COM_FORWARD_INetworkAdapter_SETTER_InternalNetwork_TO(smth) NS_IMETHOD SetInternalNetwork (const PRUnichar * aInternalNetwork) { return smth SetInternalNetwork (aInternalNetwork); }
#define COM_FORWARD_INetworkAdapter_SETTER_InternalNetwork_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_InternalNetwork_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_SETTER_InternalNetwork_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_InternalNetwork_TO (base::)
#define COM_FORWARD_INetworkAdapter_GETTER_NATNetwork_TO(smth) NS_IMETHOD GetNATNetwork (PRUnichar * * aNATNetwork) { return smth GetNATNetwork (aNATNetwork); }
#define COM_FORWARD_INetworkAdapter_GETTER_NATNetwork_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_NATNetwork_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_GETTER_NATNetwork_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_NATNetwork_TO (base::)
#define COM_FORWARD_INetworkAdapter_SETTER_NATNetwork_TO(smth) NS_IMETHOD SetNATNetwork (const PRUnichar * aNATNetwork) { return smth SetNATNetwork (aNATNetwork); }
#define COM_FORWARD_INetworkAdapter_SETTER_NATNetwork_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_NATNetwork_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_SETTER_NATNetwork_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_NATNetwork_TO (base::)
#define COM_FORWARD_INetworkAdapter_GETTER_GenericDriver_TO(smth) NS_IMETHOD GetGenericDriver (PRUnichar * * aGenericDriver) { return smth GetGenericDriver (aGenericDriver); }
#define COM_FORWARD_INetworkAdapter_GETTER_GenericDriver_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_GenericDriver_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_GETTER_GenericDriver_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_GenericDriver_TO (base::)
#define COM_FORWARD_INetworkAdapter_SETTER_GenericDriver_TO(smth) NS_IMETHOD SetGenericDriver (const PRUnichar * aGenericDriver) { return smth SetGenericDriver (aGenericDriver); }
#define COM_FORWARD_INetworkAdapter_SETTER_GenericDriver_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_GenericDriver_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_SETTER_GenericDriver_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_GenericDriver_TO (base::)
#define COM_FORWARD_INetworkAdapter_GETTER_CloudNetwork_TO(smth) NS_IMETHOD GetCloudNetwork (PRUnichar * * aCloudNetwork) { return smth GetCloudNetwork (aCloudNetwork); }
#define COM_FORWARD_INetworkAdapter_GETTER_CloudNetwork_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_CloudNetwork_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_GETTER_CloudNetwork_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_CloudNetwork_TO (base::)
#define COM_FORWARD_INetworkAdapter_SETTER_CloudNetwork_TO(smth) NS_IMETHOD SetCloudNetwork (const PRUnichar * aCloudNetwork) { return smth SetCloudNetwork (aCloudNetwork); }
#define COM_FORWARD_INetworkAdapter_SETTER_CloudNetwork_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_CloudNetwork_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_SETTER_CloudNetwork_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_CloudNetwork_TO (base::)
#define COM_FORWARD_INetworkAdapter_GETTER_CableConnected_TO(smth) NS_IMETHOD GetCableConnected (PRBool * aCableConnected) { return smth GetCableConnected (aCableConnected); }
#define COM_FORWARD_INetworkAdapter_GETTER_CableConnected_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_CableConnected_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_GETTER_CableConnected_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_CableConnected_TO (base::)
#define COM_FORWARD_INetworkAdapter_SETTER_CableConnected_TO(smth) NS_IMETHOD SetCableConnected (PRBool aCableConnected) { return smth SetCableConnected (aCableConnected); }
#define COM_FORWARD_INetworkAdapter_SETTER_CableConnected_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_CableConnected_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_SETTER_CableConnected_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_CableConnected_TO (base::)
#define COM_FORWARD_INetworkAdapter_GETTER_LineSpeed_TO(smth) NS_IMETHOD GetLineSpeed (PRUint32 * aLineSpeed) { return smth GetLineSpeed (aLineSpeed); }
#define COM_FORWARD_INetworkAdapter_GETTER_LineSpeed_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_LineSpeed_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_GETTER_LineSpeed_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_LineSpeed_TO (base::)
#define COM_FORWARD_INetworkAdapter_SETTER_LineSpeed_TO(smth) NS_IMETHOD SetLineSpeed (PRUint32 aLineSpeed) { return smth SetLineSpeed (aLineSpeed); }
#define COM_FORWARD_INetworkAdapter_SETTER_LineSpeed_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_LineSpeed_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_SETTER_LineSpeed_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_LineSpeed_TO (base::)
#define COM_FORWARD_INetworkAdapter_GETTER_PromiscModePolicy_TO(smth) NS_IMETHOD GetPromiscModePolicy (PRUint32 * aPromiscModePolicy) { return smth GetPromiscModePolicy (aPromiscModePolicy); }
#define COM_FORWARD_INetworkAdapter_GETTER_PromiscModePolicy_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_PromiscModePolicy_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_GETTER_PromiscModePolicy_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_PromiscModePolicy_TO (base::)
#define COM_FORWARD_INetworkAdapter_SETTER_PromiscModePolicy_TO(smth) NS_IMETHOD SetPromiscModePolicy (PRUint32 aPromiscModePolicy) { return smth SetPromiscModePolicy (aPromiscModePolicy); }
#define COM_FORWARD_INetworkAdapter_SETTER_PromiscModePolicy_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_PromiscModePolicy_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_SETTER_PromiscModePolicy_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_PromiscModePolicy_TO (base::)
#define COM_FORWARD_INetworkAdapter_GETTER_TraceEnabled_TO(smth) NS_IMETHOD GetTraceEnabled (PRBool * aTraceEnabled) { return smth GetTraceEnabled (aTraceEnabled); }
#define COM_FORWARD_INetworkAdapter_GETTER_TraceEnabled_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_TraceEnabled_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_GETTER_TraceEnabled_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_TraceEnabled_TO (base::)
#define COM_FORWARD_INetworkAdapter_SETTER_TraceEnabled_TO(smth) NS_IMETHOD SetTraceEnabled (PRBool aTraceEnabled) { return smth SetTraceEnabled (aTraceEnabled); }
#define COM_FORWARD_INetworkAdapter_SETTER_TraceEnabled_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_TraceEnabled_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_SETTER_TraceEnabled_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_TraceEnabled_TO (base::)
#define COM_FORWARD_INetworkAdapter_GETTER_TraceFile_TO(smth) NS_IMETHOD GetTraceFile (PRUnichar * * aTraceFile) { return smth GetTraceFile (aTraceFile); }
#define COM_FORWARD_INetworkAdapter_GETTER_TraceFile_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_TraceFile_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_GETTER_TraceFile_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_TraceFile_TO (base::)
#define COM_FORWARD_INetworkAdapter_SETTER_TraceFile_TO(smth) NS_IMETHOD SetTraceFile (const PRUnichar * aTraceFile) { return smth SetTraceFile (aTraceFile); }
#define COM_FORWARD_INetworkAdapter_SETTER_TraceFile_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_TraceFile_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_SETTER_TraceFile_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_TraceFile_TO (base::)
#define COM_FORWARD_INetworkAdapter_GETTER_NATEngine_TO(smth) NS_IMETHOD GetNATEngine (INATEngine * * aNATEngine) { return smth GetNATEngine (aNATEngine); }
#define COM_FORWARD_INetworkAdapter_GETTER_NATEngine_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_NATEngine_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_GETTER_NATEngine_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_NATEngine_TO (base::)
#define COM_FORWARD_INetworkAdapter_GETTER_BootPriority_TO(smth) NS_IMETHOD GetBootPriority (PRUint32 * aBootPriority) { return smth GetBootPriority (aBootPriority); }
#define COM_FORWARD_INetworkAdapter_GETTER_BootPriority_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_BootPriority_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_GETTER_BootPriority_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_BootPriority_TO (base::)
#define COM_FORWARD_INetworkAdapter_SETTER_BootPriority_TO(smth) NS_IMETHOD SetBootPriority (PRUint32 aBootPriority) { return smth SetBootPriority (aBootPriority); }
#define COM_FORWARD_INetworkAdapter_SETTER_BootPriority_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_BootPriority_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_SETTER_BootPriority_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_BootPriority_TO (base::)
#define COM_FORWARD_INetworkAdapter_GETTER_BandwidthGroup_TO(smth) NS_IMETHOD GetBandwidthGroup (IBandwidthGroup * * aBandwidthGroup) { return smth GetBandwidthGroup (aBandwidthGroup); }
#define COM_FORWARD_INetworkAdapter_GETTER_BandwidthGroup_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_BandwidthGroup_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_GETTER_BandwidthGroup_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_BandwidthGroup_TO (base::)
#define COM_FORWARD_INetworkAdapter_SETTER_BandwidthGroup_TO(smth) NS_IMETHOD SetBandwidthGroup (IBandwidthGroup * aBandwidthGroup) { return smth SetBandwidthGroup (aBandwidthGroup); }
#define COM_FORWARD_INetworkAdapter_SETTER_BandwidthGroup_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_BandwidthGroup_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_SETTER_BandwidthGroup_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_BandwidthGroup_TO (base::)
#define COM_FORWARD_INetworkAdapter_GetProperty_TO(smth) NS_IMETHOD GetProperty (PRUnichar * aKey, PRUnichar * * aValue) { return smth GetProperty (aKey, aValue); }
#define COM_FORWARD_INetworkAdapter_GetProperty_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GetProperty_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_GetProperty_TO_BASE(base) COM_FORWARD_INetworkAdapter_GetProperty_TO (base::)
#define COM_FORWARD_INetworkAdapter_SetProperty_TO(smth) NS_IMETHOD SetProperty (PRUnichar * aKey, PRUnichar * aValue) { return smth SetProperty (aKey, aValue); }
#define COM_FORWARD_INetworkAdapter_SetProperty_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SetProperty_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_SetProperty_TO_BASE(base) COM_FORWARD_INetworkAdapter_SetProperty_TO (base::)
#define COM_FORWARD_INetworkAdapter_GetProperties_TO(smth) NS_IMETHOD GetProperties (PRUnichar * aNames, PRUint32 * aReturnNamesSize, PRUnichar * * * aReturnNames, PRUint32 * aReturnValuesSize, PRUnichar * * * aReturnValues) { return smth GetProperties (aNames, aReturnNamesSize+++, aReturnNames, aReturnValuesSize, aReturnValues); }
#define COM_FORWARD_INetworkAdapter_GetProperties_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GetProperties_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_GetProperties_TO_BASE(base) COM_FORWARD_INetworkAdapter_GetProperties_TO (base::)
#define COM_FORWARD_INetworkAdapter_TO(smth) NS_FORWARD_INETWORKADAPTER (smth)
#define COM_FORWARD_INetworkAdapter_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_TO ((obj)->)
#define COM_FORWARD_INetworkAdapter_TO_BASE(base) COM_FORWARD_INetworkAdapter_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_INetworkAdapter;

/* starting interface:    ISerialPort */
#define ISERIALPORT_IID_STR "5587d0f6-a227-4f23-8278-2f675eea1bb2"

#define ISERIALPORT_IID \
  {0x5587d0f6, 0xa227, 0x4f23, \
    { 0x82, 0x78, 0x2f, 0x67, 0x5e, 0xea, 0x1b, 0xb2 }}

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 IOAddress; */
  NS_IMETHOD GetIOAddress(PRUint32 *aIOAddress) = 0;
  NS_IMETHOD SetIOAddress(PRUint32 aIOAddress) = 0;

  /* attribute unsigned long IRQ; */
  NS_IMETHOD GetIRQ(PRUint32 *aIRQ) = 0;
  NS_IMETHOD SetIRQ(PRUint32 aIRQ) = 0;

  /* attribute PortMode_T hostMode; */
  NS_IMETHOD GetHostMode(PortMode_T *aHostMode) = 0;
  NS_IMETHOD SetHostMode(PortMode_T 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;

  /* attribute UartType_T uartType; */
  NS_IMETHOD GetUartType(UartType_T *aUartType) = 0;
  NS_IMETHOD SetUartType(UartType_T aUartType) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1ISerialPort; */
  NS_IMETHOD GetInternalAndReservedAttribute1ISerialPort(PRUint32 *aInternalAndReservedAttribute1ISerialPort) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2ISerialPort; */
  NS_IMETHOD GetInternalAndReservedAttribute2ISerialPort(PRUint32 *aInternalAndReservedAttribute2ISerialPort) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3ISerialPort; */
  NS_IMETHOD GetInternalAndReservedAttribute3ISerialPort(PRUint32 *aInternalAndReservedAttribute3ISerialPort) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4ISerialPort; */
  NS_IMETHOD GetInternalAndReservedAttribute4ISerialPort(PRUint32 *aInternalAndReservedAttribute4ISerialPort) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ISERIALPORT \
  NS_IMETHOD GetSlot(PRUint32 *aSlot) NS_OVERRIDE; \
  NS_IMETHOD GetEnabled(PRBool *aEnabled) NS_OVERRIDE; \
  NS_IMETHOD SetEnabled(PRBool aEnabled) NS_OVERRIDE; \
  NS_IMETHOD GetIOAddress(PRUint32 *aIOAddress) NS_OVERRIDE; \
  NS_IMETHOD SetIOAddress(PRUint32 aIOAddress) NS_OVERRIDE; \
  NS_IMETHOD GetIRQ(PRUint32 *aIRQ) NS_OVERRIDE; \
  NS_IMETHOD SetIRQ(PRUint32 aIRQ) NS_OVERRIDE; \
  NS_IMETHOD GetHostMode(PortMode_T *aHostMode) NS_OVERRIDE; \
  NS_IMETHOD SetHostMode(PortMode_T aHostMode) NS_OVERRIDE; \
  NS_IMETHOD GetServer(PRBool *aServer) NS_OVERRIDE; \
  NS_IMETHOD SetServer(PRBool aServer) NS_OVERRIDE; \
  NS_IMETHOD GetPath(PRUnichar **aPath) NS_OVERRIDE; \
  NS_IMETHOD SetPath(const PRUnichar *aPath) NS_OVERRIDE; \
  NS_IMETHOD GetUartType(UartType_T *aUartType) NS_OVERRIDE; \
  NS_IMETHOD SetUartType(UartType_T aUartType) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1ISerialPort(PRUint32 *aInternalAndReservedAttribute1ISerialPort) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2ISerialPort(PRUint32 *aInternalAndReservedAttribute2ISerialPort) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3ISerialPort(PRUint32 *aInternalAndReservedAttribute3ISerialPort) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4ISerialPort(PRUint32 *aInternalAndReservedAttribute4ISerialPort) NS_OVERRIDE; 

/* 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 GetIOAddress(PRUint32 *aIOAddress) { return _to GetIOAddress(aIOAddress); } \
  NS_IMETHOD SetIOAddress(PRUint32 aIOAddress) { return _to SetIOAddress(aIOAddress); } \
  NS_IMETHOD GetIRQ(PRUint32 *aIRQ) { return _to GetIRQ(aIRQ); } \
  NS_IMETHOD SetIRQ(PRUint32 aIRQ) { return _to SetIRQ(aIRQ); } \
  NS_IMETHOD GetHostMode(PortMode_T *aHostMode) { return _to GetHostMode(aHostMode); } \
  NS_IMETHOD SetHostMode(PortMode_T 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 GetUartType(UartType_T *aUartType) { return _to GetUartType(aUartType); } \
  NS_IMETHOD SetUartType(UartType_T aUartType) { return _to SetUartType(aUartType); } \
  NS_IMETHOD GetInternalAndReservedAttribute1ISerialPort(PRUint32 *aInternalAndReservedAttribute1ISerialPort) { return _to GetInternalAndReservedAttribute1ISerialPort(aInternalAndReservedAttribute1ISerialPort); } \
  NS_IMETHOD GetInternalAndReservedAttribute2ISerialPort(PRUint32 *aInternalAndReservedAttribute2ISerialPort) { return _to GetInternalAndReservedAttribute2ISerialPort(aInternalAndReservedAttribute2ISerialPort); } \
  NS_IMETHOD GetInternalAndReservedAttribute3ISerialPort(PRUint32 *aInternalAndReservedAttribute3ISerialPort) { return _to GetInternalAndReservedAttribute3ISerialPort(aInternalAndReservedAttribute3ISerialPort); } \
  NS_IMETHOD GetInternalAndReservedAttribute4ISerialPort(PRUint32 *aInternalAndReservedAttribute4ISerialPort) { return _to GetInternalAndReservedAttribute4ISerialPort(aInternalAndReservedAttribute4ISerialPort); } 

/* 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 GetIOAddress(PRUint32 *aIOAddress) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIOAddress(aIOAddress); } \
  NS_IMETHOD SetIOAddress(PRUint32 aIOAddress) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIOAddress(aIOAddress); } \
  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(PortMode_T *aHostMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHostMode(aHostMode); } \
  NS_IMETHOD SetHostMode(PortMode_T 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 GetUartType(UartType_T *aUartType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUartType(aUartType); } \
  NS_IMETHOD SetUartType(UartType_T aUartType) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUartType(aUartType); } \
  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); } \
  NS_IMETHOD GetInternalAndReservedAttribute3ISerialPort(PRUint32 *aInternalAndReservedAttribute3ISerialPort) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3ISerialPort(aInternalAndReservedAttribute3ISerialPort); } \
  NS_IMETHOD GetInternalAndReservedAttribute4ISerialPort(PRUint32 *aInternalAndReservedAttribute4ISerialPort) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4ISerialPort(aInternalAndReservedAttribute4ISerialPort); } 

#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_IOAddress_TO(smth) NS_IMETHOD GetIOAddress (PRUint32 * aIOAddress) { return smth GetIOAddress (aIOAddress); }
#define COM_FORWARD_ISerialPort_GETTER_IOAddress_TO_OBJ(obj) COM_FORWARD_ISerialPort_GETTER_IOAddress_TO ((obj)->)
#define COM_FORWARD_ISerialPort_GETTER_IOAddress_TO_BASE(base) COM_FORWARD_ISerialPort_GETTER_IOAddress_TO (base::)
#define COM_FORWARD_ISerialPort_SETTER_IOAddress_TO(smth) NS_IMETHOD SetIOAddress (PRUint32 aIOAddress) { return smth SetIOAddress (aIOAddress); }
#define COM_FORWARD_ISerialPort_SETTER_IOAddress_TO_OBJ(obj) COM_FORWARD_ISerialPort_SETTER_IOAddress_TO ((obj)->)
#define COM_FORWARD_ISerialPort_SETTER_IOAddress_TO_BASE(base) COM_FORWARD_ISerialPort_SETTER_IOAddress_TO (base::)
#define COM_FORWARD_ISerialPort_GETTER_IRQ_TO(smth) NS_IMETHOD GetIRQ (PRUint32 * aIRQ) { return smth GetIRQ (aIRQ); }
#define COM_FORWARD_ISerialPort_GETTER_IRQ_TO_OBJ(obj) COM_FORWARD_ISerialPort_GETTER_IRQ_TO ((obj)->)
#define COM_FORWARD_ISerialPort_GETTER_IRQ_TO_BASE(base) COM_FORWARD_ISerialPort_GETTER_IRQ_TO (base::)
#define COM_FORWARD_ISerialPort_SETTER_IRQ_TO(smth) NS_IMETHOD SetIRQ (PRUint32 aIRQ) { return smth SetIRQ (aIRQ); }
#define COM_FORWARD_ISerialPort_SETTER_IRQ_TO_OBJ(obj) COM_FORWARD_ISerialPort_SETTER_IRQ_TO ((obj)->)
#define COM_FORWARD_ISerialPort_SETTER_IRQ_TO_BASE(base) COM_FORWARD_ISerialPort_SETTER_IRQ_TO (base::)
#define COM_FORWARD_ISerialPort_GETTER_HostMode_TO(smth) NS_IMETHOD GetHostMode (PRUint32 * aHostMode) { return smth GetHostMode (aHostMode); }
#define COM_FORWARD_ISerialPort_GETTER_HostMode_TO_OBJ(obj) COM_FORWARD_ISerialPort_GETTER_HostMode_TO ((obj)->)
#define COM_FORWARD_ISerialPort_GETTER_HostMode_TO_BASE(base) COM_FORWARD_ISerialPort_GETTER_HostMode_TO (base::)
#define COM_FORWARD_ISerialPort_SETTER_HostMode_TO(smth) NS_IMETHOD SetHostMode (PRUint32 aHostMode) { return smth SetHostMode (aHostMode); }
#define COM_FORWARD_ISerialPort_SETTER_HostMode_TO_OBJ(obj) COM_FORWARD_ISerialPort_SETTER_HostMode_TO ((obj)->)
#define COM_FORWARD_ISerialPort_SETTER_HostMode_TO_BASE(base) COM_FORWARD_ISerialPort_SETTER_HostMode_TO (base::)
#define COM_FORWARD_ISerialPort_GETTER_Server_TO(smth) NS_IMETHOD GetServer (PRBool * aServer) { return smth GetServer (aServer); }
#define COM_FORWARD_ISerialPort_GETTER_Server_TO_OBJ(obj) COM_FORWARD_ISerialPort_GETTER_Server_TO ((obj)->)
#define COM_FORWARD_ISerialPort_GETTER_Server_TO_BASE(base) COM_FORWARD_ISerialPort_GETTER_Server_TO (base::)
#define COM_FORWARD_ISerialPort_SETTER_Server_TO(smth) NS_IMETHOD SetServer (PRBool aServer) { return smth SetServer (aServer); }
#define COM_FORWARD_ISerialPort_SETTER_Server_TO_OBJ(obj) COM_FORWARD_ISerialPort_SETTER_Server_TO ((obj)->)
#define COM_FORWARD_ISerialPort_SETTER_Server_TO_BASE(base) COM_FORWARD_ISerialPort_SETTER_Server_TO (base::)
#define COM_FORWARD_ISerialPort_GETTER_Path_TO(smth) NS_IMETHOD GetPath (PRUnichar * * aPath) { return smth GetPath (aPath); }
#define COM_FORWARD_ISerialPort_GETTER_Path_TO_OBJ(obj) COM_FORWARD_ISerialPort_GETTER_Path_TO ((obj)->)
#define COM_FORWARD_ISerialPort_GETTER_Path_TO_BASE(base) COM_FORWARD_ISerialPort_GETTER_Path_TO (base::)
#define COM_FORWARD_ISerialPort_SETTER_Path_TO(smth) NS_IMETHOD SetPath (const PRUnichar * aPath) { return smth SetPath (aPath); }
#define COM_FORWARD_ISerialPort_SETTER_Path_TO_OBJ(obj) COM_FORWARD_ISerialPort_SETTER_Path_TO ((obj)->)
#define COM_FORWARD_ISerialPort_SETTER_Path_TO_BASE(base) COM_FORWARD_ISerialPort_SETTER_Path_TO (base::)
#define COM_FORWARD_ISerialPort_GETTER_UartType_TO(smth) NS_IMETHOD GetUartType (PRUint32 * aUartType) { return smth GetUartType (aUartType); }
#define COM_FORWARD_ISerialPort_GETTER_UartType_TO_OBJ(obj) COM_FORWARD_ISerialPort_GETTER_UartType_TO ((obj)->)
#define COM_FORWARD_ISerialPort_GETTER_UartType_TO_BASE(base) COM_FORWARD_ISerialPort_GETTER_UartType_TO (base::)
#define COM_FORWARD_ISerialPort_SETTER_UartType_TO(smth) NS_IMETHOD SetUartType (PRUint32 aUartType) { return smth SetUartType (aUartType); }
#define COM_FORWARD_ISerialPort_SETTER_UartType_TO_OBJ(obj) COM_FORWARD_ISerialPort_SETTER_UartType_TO ((obj)->)
#define COM_FORWARD_ISerialPort_SETTER_UartType_TO_BASE(base) COM_FORWARD_ISerialPort_SETTER_UartType_TO (base::)
#define COM_FORWARD_ISerialPort_TO(smth) NS_FORWARD_ISERIALPORT (smth)
#define COM_FORWARD_ISerialPort_TO_OBJ(obj) COM_FORWARD_ISerialPort_TO ((obj)->)
#define COM_FORWARD_ISerialPort_TO_BASE(base) COM_FORWARD_ISerialPort_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ISerialPort;

/* 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_OVERRIDE; \
  NS_IMETHOD GetEnabled(PRBool *aEnabled) NS_OVERRIDE; \
  NS_IMETHOD SetEnabled(PRBool aEnabled) NS_OVERRIDE; \
  NS_IMETHOD GetIOBase(PRUint32 *aIOBase) NS_OVERRIDE; \
  NS_IMETHOD SetIOBase(PRUint32 aIOBase) NS_OVERRIDE; \
  NS_IMETHOD GetIRQ(PRUint32 *aIRQ) NS_OVERRIDE; \
  NS_IMETHOD SetIRQ(PRUint32 aIRQ) NS_OVERRIDE; \
  NS_IMETHOD GetPath(PRUnichar **aPath) NS_OVERRIDE; \
  NS_IMETHOD SetPath(const PRUnichar *aPath) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IParallelPort(PRUint32 *aInternalAndReservedAttribute1IParallelPort) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IParallelPort(PRUint32 *aInternalAndReservedAttribute2IParallelPort) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IParallelPort(PRUint32 *aInternalAndReservedAttribute3IParallelPort) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IParallelPort(PRUint32 *aInternalAndReservedAttribute4IParallelPort) NS_OVERRIDE; 

/* 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); } 

#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 "fa43579a-2272-47c4-a443-9713f19a902f"

#define IMACHINEDEBUGGER_IID \
  {0xfa43579a, 0x2272, 0x47c4, \
    { 0xa4, 0x43, 0x97, 0x13, 0xf1, 0x9a, 0x90, 0x2f }}

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 executeAllInIEM; */
  NS_IMETHOD GetExecuteAllInIEM(PRBool *aExecuteAllInIEM) = 0;
  NS_IMETHOD SetExecuteAllInIEM(PRBool aExecuteAllInIEM) = 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 VMExecutionEngine_T executionEngine; */
  NS_IMETHOD GetExecutionEngine(VMExecutionEngine_T *aExecutionEngine) = 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 uptime; */
  NS_IMETHOD GetUptime(PRInt64 *aUptime) = 0;

  /* attribute boolean recompiledIEMExecution; */
  NS_IMETHOD GetRecompiledIEMExecution(PRBool *aRecompiledIEMExecution) = 0;
  NS_IMETHOD SetRecompiledIEMExecution(PRBool aRecompiledIEMExecution) = 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;

  /* 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 getCPULoad (in unsigned long cpuId, out unsigned long pctExecuting, out unsigned long pctHalted, out unsigned long pctOther, [retval] out long long msInterval); */
  NS_IMETHOD GetCPULoad(PRUint32 cpuId, PRUint32 *pctExecuting, PRUint32 *pctHalted, PRUint32 *pctOther, PRInt64 *msInterval) = 0;

  /* void takeGuestSample (in wstring filename, in unsigned long usInterval, in long long usSampleTime, [retval] out IProgress progress); */
  NS_IMETHOD TakeGuestSample(const PRUnichar *filename, PRUint32 usInterval, PRInt64 usSampleTime, IProgress * *progress) = 0;

  /* void getUVMAndVMMFunctionTable (in long long magicVersion, out long long VMMFunctionTable, [retval] out long long UVM); */
  NS_IMETHOD GetUVMAndVMMFunctionTable(PRInt64 magicVersion, PRInt64 *VMMFunctionTable, PRInt64 *UVM) = 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_OVERRIDE; \
  NS_IMETHOD SetSingleStep(PRBool aSingleStep) NS_OVERRIDE; \
  NS_IMETHOD GetExecuteAllInIEM(PRBool *aExecuteAllInIEM) NS_OVERRIDE; \
  NS_IMETHOD SetExecuteAllInIEM(PRBool aExecuteAllInIEM) NS_OVERRIDE; \
  NS_IMETHOD GetLogEnabled(PRBool *aLogEnabled) NS_OVERRIDE; \
  NS_IMETHOD SetLogEnabled(PRBool aLogEnabled) NS_OVERRIDE; \
  NS_IMETHOD GetLogDbgFlags(PRUnichar **aLogDbgFlags) NS_OVERRIDE; \
  NS_IMETHOD GetLogDbgGroups(PRUnichar **aLogDbgGroups) NS_OVERRIDE; \
  NS_IMETHOD GetLogDbgDestinations(PRUnichar **aLogDbgDestinations) NS_OVERRIDE; \
  NS_IMETHOD GetLogRelFlags(PRUnichar **aLogRelFlags) NS_OVERRIDE; \
  NS_IMETHOD GetLogRelGroups(PRUnichar **aLogRelGroups) NS_OVERRIDE; \
  NS_IMETHOD GetLogRelDestinations(PRUnichar **aLogRelDestinations) NS_OVERRIDE; \
  NS_IMETHOD GetExecutionEngine(VMExecutionEngine_T *aExecutionEngine) NS_OVERRIDE; \
  NS_IMETHOD GetHWVirtExNestedPagingEnabled(PRBool *aHWVirtExNestedPagingEnabled) NS_OVERRIDE; \
  NS_IMETHOD GetHWVirtExVPIDEnabled(PRBool *aHWVirtExVPIDEnabled) NS_OVERRIDE; \
  NS_IMETHOD GetHWVirtExUXEnabled(PRBool *aHWVirtExUXEnabled) NS_OVERRIDE; \
  NS_IMETHOD GetOSName(PRUnichar **aOSName) NS_OVERRIDE; \
  NS_IMETHOD GetOSVersion(PRUnichar **aOSVersion) NS_OVERRIDE; \
  NS_IMETHOD GetPAEEnabled(PRBool *aPAEEnabled) NS_OVERRIDE; \
  NS_IMETHOD GetVirtualTimeRate(PRUint32 *aVirtualTimeRate) NS_OVERRIDE; \
  NS_IMETHOD SetVirtualTimeRate(PRUint32 aVirtualTimeRate) NS_OVERRIDE; \
  NS_IMETHOD GetUptime(PRInt64 *aUptime) NS_OVERRIDE; \
  NS_IMETHOD GetRecompiledIEMExecution(PRBool *aRecompiledIEMExecution) NS_OVERRIDE; \
  NS_IMETHOD SetRecompiledIEMExecution(PRBool aRecompiledIEMExecution) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IMachineDebugger(PRUint32 *aInternalAndReservedAttribute1IMachineDebugger) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IMachineDebugger(PRUint32 *aInternalAndReservedAttribute2IMachineDebugger) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IMachineDebugger(PRUint32 *aInternalAndReservedAttribute3IMachineDebugger) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IMachineDebugger(PRUint32 *aInternalAndReservedAttribute4IMachineDebugger) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IMachineDebugger(PRUint32 *aInternalAndReservedAttribute5IMachineDebugger) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IMachineDebugger(PRUint32 *aInternalAndReservedAttribute6IMachineDebugger) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IMachineDebugger(PRUint32 *aInternalAndReservedAttribute7IMachineDebugger) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IMachineDebugger(PRUint32 *aInternalAndReservedAttribute8IMachineDebugger) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute9IMachineDebugger(PRUint32 *aInternalAndReservedAttribute9IMachineDebugger) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute10IMachineDebugger(PRUint32 *aInternalAndReservedAttribute10IMachineDebugger) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute11IMachineDebugger(PRUint32 *aInternalAndReservedAttribute11IMachineDebugger) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute12IMachineDebugger(PRUint32 *aInternalAndReservedAttribute12IMachineDebugger) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute13IMachineDebugger(PRUint32 *aInternalAndReservedAttribute13IMachineDebugger) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute14IMachineDebugger(PRUint32 *aInternalAndReservedAttribute14IMachineDebugger) NS_OVERRIDE; \
  NS_IMETHOD DumpGuestCore(const PRUnichar *filename, const PRUnichar *compression) NS_OVERRIDE; \
  NS_IMETHOD DumpHostProcessCore(const PRUnichar *filename, const PRUnichar *compression) NS_OVERRIDE; \
  NS_IMETHOD Info(const PRUnichar *name, const PRUnichar *args, PRUnichar **info) NS_OVERRIDE; \
  NS_IMETHOD InjectNMI(void) NS_OVERRIDE; \
  NS_IMETHOD ModifyLogGroups(const PRUnichar *settings) NS_OVERRIDE; \
  NS_IMETHOD ModifyLogFlags(const PRUnichar *settings) NS_OVERRIDE; \
  NS_IMETHOD ModifyLogDestinations(const PRUnichar *settings) NS_OVERRIDE; \
  NS_IMETHOD ReadPhysicalMemory(PRInt64 address, PRUint32 size, PRUint32 *bytesSize, PRUint8 **bytes) NS_OVERRIDE; \
  NS_IMETHOD WritePhysicalMemory(PRInt64 address, PRUint32 size, PRUint32 bytesSize, PRUint8 *bytes) NS_OVERRIDE; \
  NS_IMETHOD ReadVirtualMemory(PRUint32 cpuId, PRInt64 address, PRUint32 size, PRUint32 *bytesSize, PRUint8 **bytes) NS_OVERRIDE; \
  NS_IMETHOD WriteVirtualMemory(PRUint32 cpuId, PRInt64 address, PRUint32 size, PRUint32 bytesSize, PRUint8 *bytes) NS_OVERRIDE; \
  NS_IMETHOD LoadPlugIn(const PRUnichar *name, PRUnichar **plugInName) NS_OVERRIDE; \
  NS_IMETHOD UnloadPlugIn(const PRUnichar *name) NS_OVERRIDE; \
  NS_IMETHOD DetectOS(PRUnichar **os) NS_OVERRIDE; \
  NS_IMETHOD QueryOSKernelLog(PRUint32 maxMessages, PRUnichar **dmesg) NS_OVERRIDE; \
  NS_IMETHOD GetRegister(PRUint32 cpuId, const PRUnichar *name, PRUnichar **value) NS_OVERRIDE; \
  NS_IMETHOD GetRegisters(PRUint32 cpuId, PRUint32 *namesSize, PRUnichar ***names, PRUint32 *valuesSize, PRUnichar ***values) NS_OVERRIDE; \
  NS_IMETHOD SetRegister(PRUint32 cpuId, const PRUnichar *name, const PRUnichar *value) NS_OVERRIDE; \
  NS_IMETHOD SetRegisters(PRUint32 cpuId, PRUint32 namesSize, const PRUnichar **names, PRUint32 valuesSize, const PRUnichar **values) NS_OVERRIDE; \
  NS_IMETHOD DumpGuestStack(PRUint32 cpuId, PRUnichar **stack) NS_OVERRIDE; \
  NS_IMETHOD ResetStats(const PRUnichar *pattern) NS_OVERRIDE; \
  NS_IMETHOD DumpStats(const PRUnichar *pattern) NS_OVERRIDE; \
  NS_IMETHOD GetStats(const PRUnichar *pattern, PRBool withDescriptions, PRUnichar **stats) NS_OVERRIDE; \
  NS_IMETHOD GetCPULoad(PRUint32 cpuId, PRUint32 *pctExecuting, PRUint32 *pctHalted, PRUint32 *pctOther, PRInt64 *msInterval) NS_OVERRIDE; \
  NS_IMETHOD TakeGuestSample(const PRUnichar *filename, PRUint32 usInterval, PRInt64 usSampleTime, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD GetUVMAndVMMFunctionTable(PRInt64 magicVersion, PRInt64 *VMMFunctionTable, PRInt64 *UVM) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IMachineDebugger(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IMachineDebugger(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IMachineDebugger(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IMachineDebugger(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod5IMachineDebugger(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod6IMachineDebugger(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod7IMachineDebugger(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod8IMachineDebugger(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod9IMachineDebugger(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod10IMachineDebugger(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod11IMachineDebugger(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod12IMachineDebugger(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod13IMachineDebugger(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod14IMachineDebugger(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod15IMachineDebugger(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod16IMachineDebugger(void) NS_OVERRIDE; 

/* 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 GetExecuteAllInIEM(PRBool *aExecuteAllInIEM) { return _to GetExecuteAllInIEM(aExecuteAllInIEM); } \
  NS_IMETHOD SetExecuteAllInIEM(PRBool aExecuteAllInIEM) { return _to SetExecuteAllInIEM(aExecuteAllInIEM); } \
  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 GetExecutionEngine(VMExecutionEngine_T *aExecutionEngine) { return _to GetExecutionEngine(aExecutionEngine); } \
  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 GetUptime(PRInt64 *aUptime) { return _to GetUptime(aUptime); } \
  NS_IMETHOD GetRecompiledIEMExecution(PRBool *aRecompiledIEMExecution) { return _to GetRecompiledIEMExecution(aRecompiledIEMExecution); } \
  NS_IMETHOD SetRecompiledIEMExecution(PRBool aRecompiledIEMExecution) { return _to SetRecompiledIEMExecution(aRecompiledIEMExecution); } \
  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 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 GetCPULoad(PRUint32 cpuId, PRUint32 *pctExecuting, PRUint32 *pctHalted, PRUint32 *pctOther, PRInt64 *msInterval) { return _to GetCPULoad(cpuId, pctExecuting, pctHalted, pctOther, msInterval); } \
  NS_IMETHOD TakeGuestSample(const PRUnichar *filename, PRUint32 usInterval, PRInt64 usSampleTime, IProgress * *progress) { return _to TakeGuestSample(filename, usInterval, usSampleTime, progress); } \
  NS_IMETHOD GetUVMAndVMMFunctionTable(PRInt64 magicVersion, PRInt64 *VMMFunctionTable, PRInt64 *UVM) { return _to GetUVMAndVMMFunctionTable(magicVersion, VMMFunctionTable, UVM); } \
  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 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 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 GetExecutionEngine(VMExecutionEngine_T *aExecutionEngine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetExecutionEngine(aExecutionEngine); } \
  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 GetUptime(PRInt64 *aUptime) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUptime(aUptime); } \
  NS_IMETHOD GetRecompiledIEMExecution(PRBool *aRecompiledIEMExecution) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRecompiledIEMExecution(aRecompiledIEMExecution); } \
  NS_IMETHOD SetRecompiledIEMExecution(PRBool aRecompiledIEMExecution) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetRecompiledIEMExecution(aRecompiledIEMExecution); } \
  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 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 GetCPULoad(PRUint32 cpuId, PRUint32 *pctExecuting, PRUint32 *pctHalted, PRUint32 *pctOther, PRInt64 *msInterval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCPULoad(cpuId, pctExecuting, pctHalted, pctOther, msInterval); } \
  NS_IMETHOD TakeGuestSample(const PRUnichar *filename, PRUint32 usInterval, PRInt64 usSampleTime, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->TakeGuestSample(filename, usInterval, usSampleTime, progress); } \
  NS_IMETHOD GetUVMAndVMMFunctionTable(PRInt64 magicVersion, PRInt64 *VMMFunctionTable, PRInt64 *UVM) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUVMAndVMMFunctionTable(magicVersion, VMMFunctionTable, UVM); } \
  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(); } 

#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_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_LogEnabled_TO(smth) NS_IMETHOD GetLogEnabled (PRBool * aLogEnabled) { return smth GetLogEnabled (aLogEnabled); }
#define COM_FORWARD_IMachineDebugger_GETTER_LogEnabled_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_LogEnabled_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GETTER_LogEnabled_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_LogEnabled_TO (base::)
#define COM_FORWARD_IMachineDebugger_SETTER_LogEnabled_TO(smth) NS_IMETHOD SetLogEnabled (PRBool aLogEnabled) { return smth SetLogEnabled (aLogEnabled); }
#define COM_FORWARD_IMachineDebugger_SETTER_LogEnabled_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_SETTER_LogEnabled_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_SETTER_LogEnabled_TO_BASE(base) COM_FORWARD_IMachineDebugger_SETTER_LogEnabled_TO (base::)
#define COM_FORWARD_IMachineDebugger_GETTER_LogDbgFlags_TO(smth) NS_IMETHOD GetLogDbgFlags (PRUnichar * * aLogDbgFlags) { return smth GetLogDbgFlags (aLogDbgFlags); }
#define COM_FORWARD_IMachineDebugger_GETTER_LogDbgFlags_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_LogDbgFlags_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GETTER_LogDbgFlags_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_LogDbgFlags_TO (base::)
#define COM_FORWARD_IMachineDebugger_GETTER_LogDbgGroups_TO(smth) NS_IMETHOD GetLogDbgGroups (PRUnichar * * aLogDbgGroups) { return smth GetLogDbgGroups (aLogDbgGroups); }
#define COM_FORWARD_IMachineDebugger_GETTER_LogDbgGroups_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_LogDbgGroups_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GETTER_LogDbgGroups_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_LogDbgGroups_TO (base::)
#define COM_FORWARD_IMachineDebugger_GETTER_LogDbgDestinations_TO(smth) NS_IMETHOD GetLogDbgDestinations (PRUnichar * * aLogDbgDestinations) { return smth GetLogDbgDestinations (aLogDbgDestinations); }
#define COM_FORWARD_IMachineDebugger_GETTER_LogDbgDestinations_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_LogDbgDestinations_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GETTER_LogDbgDestinations_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_LogDbgDestinations_TO (base::)
#define COM_FORWARD_IMachineDebugger_GETTER_LogRelFlags_TO(smth) NS_IMETHOD GetLogRelFlags (PRUnichar * * aLogRelFlags) { return smth GetLogRelFlags (aLogRelFlags); }
#define COM_FORWARD_IMachineDebugger_GETTER_LogRelFlags_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_LogRelFlags_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GETTER_LogRelFlags_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_LogRelFlags_TO (base::)
#define COM_FORWARD_IMachineDebugger_GETTER_LogRelGroups_TO(smth) NS_IMETHOD GetLogRelGroups (PRUnichar * * aLogRelGroups) { return smth GetLogRelGroups (aLogRelGroups); }
#define COM_FORWARD_IMachineDebugger_GETTER_LogRelGroups_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_LogRelGroups_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GETTER_LogRelGroups_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_LogRelGroups_TO (base::)
#define COM_FORWARD_IMachineDebugger_GETTER_LogRelDestinations_TO(smth) NS_IMETHOD GetLogRelDestinations (PRUnichar * * aLogRelDestinations) { return smth GetLogRelDestinations (aLogRelDestinations); }
#define COM_FORWARD_IMachineDebugger_GETTER_LogRelDestinations_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_LogRelDestinations_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GETTER_LogRelDestinations_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_LogRelDestinations_TO (base::)
#define COM_FORWARD_IMachineDebugger_GETTER_ExecutionEngine_TO(smth) NS_IMETHOD GetExecutionEngine (PRUint32 * aExecutionEngine) { return smth GetExecutionEngine (aExecutionEngine); }
#define COM_FORWARD_IMachineDebugger_GETTER_ExecutionEngine_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_ExecutionEngine_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GETTER_ExecutionEngine_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_ExecutionEngine_TO (base::)
#define COM_FORWARD_IMachineDebugger_GETTER_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_Uptime_TO(smth) NS_IMETHOD GetUptime (PRInt64 * aUptime) { return smth GetUptime (aUptime); }
#define COM_FORWARD_IMachineDebugger_GETTER_Uptime_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_Uptime_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GETTER_Uptime_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_Uptime_TO (base::)
#define COM_FORWARD_IMachineDebugger_GETTER_RecompiledIEMExecution_TO(smth) NS_IMETHOD GetRecompiledIEMExecution (PRBool * aRecompiledIEMExecution) { return smth GetRecompiledIEMExecution (aRecompiledIEMExecution); }
#define COM_FORWARD_IMachineDebugger_GETTER_RecompiledIEMExecution_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_RecompiledIEMExecution_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GETTER_RecompiledIEMExecution_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_RecompiledIEMExecution_TO (base::)
#define COM_FORWARD_IMachineDebugger_SETTER_RecompiledIEMExecution_TO(smth) NS_IMETHOD SetRecompiledIEMExecution (PRBool aRecompiledIEMExecution) { return smth SetRecompiledIEMExecution (aRecompiledIEMExecution); }
#define COM_FORWARD_IMachineDebugger_SETTER_RecompiledIEMExecution_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_SETTER_RecompiledIEMExecution_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_SETTER_RecompiledIEMExecution_TO_BASE(base) COM_FORWARD_IMachineDebugger_SETTER_RecompiledIEMExecution_TO (base::)
#define COM_FORWARD_IMachineDebugger_DumpGuestCore_TO(smth) NS_IMETHOD DumpGuestCore (PRUnichar * aFilename, PRUnichar * aCompression) { return smth DumpGuestCore (aFilename, aCompression); }
#define COM_FORWARD_IMachineDebugger_DumpGuestCore_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_DumpGuestCore_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_DumpGuestCore_TO_BASE(base) COM_FORWARD_IMachineDebugger_DumpGuestCore_TO (base::)
#define COM_FORWARD_IMachineDebugger_DumpHostProcessCore_TO(smth) NS_IMETHOD DumpHostProcessCore (PRUnichar * aFilename, PRUnichar * aCompression) { return smth DumpHostProcessCore (aFilename, aCompression); }
#define COM_FORWARD_IMachineDebugger_DumpHostProcessCore_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_DumpHostProcessCore_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_DumpHostProcessCore_TO_BASE(base) COM_FORWARD_IMachineDebugger_DumpHostProcessCore_TO (base::)
#define COM_FORWARD_IMachineDebugger_Info_TO(smth) NS_IMETHOD Info (PRUnichar * aName, PRUnichar * aArgs, PRUnichar * * aInfo) { return smth Info (aName, aArgs, aInfo); }
#define COM_FORWARD_IMachineDebugger_Info_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_Info_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_Info_TO_BASE(base) COM_FORWARD_IMachineDebugger_Info_TO (base::)
#define COM_FORWARD_IMachineDebugger_InjectNMI_TO(smth) NS_IMETHOD InjectNMI() { return smth InjectNMI(); }
#define COM_FORWARD_IMachineDebugger_InjectNMI_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_InjectNMI_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_InjectNMI_TO_BASE(base) COM_FORWARD_IMachineDebugger_InjectNMI_TO (base::)
#define COM_FORWARD_IMachineDebugger_ModifyLogGroups_TO(smth) NS_IMETHOD ModifyLogGroups (PRUnichar * aSettings) { return smth ModifyLogGroups (aSettings); }
#define COM_FORWARD_IMachineDebugger_ModifyLogGroups_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_ModifyLogGroups_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_ModifyLogGroups_TO_BASE(base) COM_FORWARD_IMachineDebugger_ModifyLogGroups_TO (base::)
#define COM_FORWARD_IMachineDebugger_ModifyLogFlags_TO(smth) NS_IMETHOD ModifyLogFlags (PRUnichar * aSettings) { return smth ModifyLogFlags (aSettings); }
#define COM_FORWARD_IMachineDebugger_ModifyLogFlags_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_ModifyLogFlags_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_ModifyLogFlags_TO_BASE(base) COM_FORWARD_IMachineDebugger_ModifyLogFlags_TO (base::)
#define COM_FORWARD_IMachineDebugger_ModifyLogDestinations_TO(smth) NS_IMETHOD ModifyLogDestinations (PRUnichar * aSettings) { return smth ModifyLogDestinations (aSettings); }
#define COM_FORWARD_IMachineDebugger_ModifyLogDestinations_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_ModifyLogDestinations_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_ModifyLogDestinations_TO_BASE(base) COM_FORWARD_IMachineDebugger_ModifyLogDestinations_TO (base::)
#define COM_FORWARD_IMachineDebugger_ReadPhysicalMemory_TO(smth) NS_IMETHOD ReadPhysicalMemory (PRInt64 aAddress, PRUint32 aSize, PRUint32 * aBytesSize, PRUint8 * * aBytes) { return smth ReadPhysicalMemory (aAddress, aSize, aBytesSize, aBytes); }
#define COM_FORWARD_IMachineDebugger_ReadPhysicalMemory_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_ReadPhysicalMemory_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_ReadPhysicalMemory_TO_BASE(base) COM_FORWARD_IMachineDebugger_ReadPhysicalMemory_TO (base::)
#define COM_FORWARD_IMachineDebugger_WritePhysicalMemory_TO(smth) NS_IMETHOD WritePhysicalMemory (PRInt64 aAddress, PRUint32 aSize, PRUint32 aBytesSize, PRUint8 * aBytes) { return smth WritePhysicalMemory (aAddress, aSize, aBytesSize, aBytes); }
#define COM_FORWARD_IMachineDebugger_WritePhysicalMemory_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_WritePhysicalMemory_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_WritePhysicalMemory_TO_BASE(base) COM_FORWARD_IMachineDebugger_WritePhysicalMemory_TO (base::)
#define COM_FORWARD_IMachineDebugger_ReadVirtualMemory_TO(smth) NS_IMETHOD ReadVirtualMemory (PRUint32 aCpuId, PRInt64 aAddress, PRUint32 aSize, PRUint32 * aBytesSize, PRUint8 * * aBytes) { return smth ReadVirtualMemory (aCpuId, aAddress, aSize, aBytesSize, aBytes); }
#define COM_FORWARD_IMachineDebugger_ReadVirtualMemory_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_ReadVirtualMemory_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_ReadVirtualMemory_TO_BASE(base) COM_FORWARD_IMachineDebugger_ReadVirtualMemory_TO (base::)
#define COM_FORWARD_IMachineDebugger_WriteVirtualMemory_TO(smth) NS_IMETHOD WriteVirtualMemory (PRUint32 aCpuId, PRInt64 aAddress, PRUint32 aSize, PRUint32 aBytesSize, PRUint8 * aBytes) { return smth WriteVirtualMemory (aCpuId, aAddress, aSize, aBytesSize, aBytes); }
#define COM_FORWARD_IMachineDebugger_WriteVirtualMemory_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_WriteVirtualMemory_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_WriteVirtualMemory_TO_BASE(base) COM_FORWARD_IMachineDebugger_WriteVirtualMemory_TO (base::)
#define COM_FORWARD_IMachineDebugger_LoadPlugIn_TO(smth) NS_IMETHOD LoadPlugIn (PRUnichar * aName, PRUnichar * * aPlugInName) { return smth LoadPlugIn (aName, aPlugInName); }
#define COM_FORWARD_IMachineDebugger_LoadPlugIn_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_LoadPlugIn_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_LoadPlugIn_TO_BASE(base) COM_FORWARD_IMachineDebugger_LoadPlugIn_TO (base::)
#define COM_FORWARD_IMachineDebugger_UnloadPlugIn_TO(smth) NS_IMETHOD UnloadPlugIn (PRUnichar * aName) { return smth UnloadPlugIn (aName); }
#define COM_FORWARD_IMachineDebugger_UnloadPlugIn_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_UnloadPlugIn_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_UnloadPlugIn_TO_BASE(base) COM_FORWARD_IMachineDebugger_UnloadPlugIn_TO (base::)
#define COM_FORWARD_IMachineDebugger_DetectOS_TO(smth) NS_IMETHOD DetectOS (PRUnichar * * aOs) { return smth DetectOS (aOs); }
#define COM_FORWARD_IMachineDebugger_DetectOS_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_DetectOS_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_DetectOS_TO_BASE(base) COM_FORWARD_IMachineDebugger_DetectOS_TO (base::)
#define COM_FORWARD_IMachineDebugger_QueryOSKernelLog_TO(smth) NS_IMETHOD QueryOSKernelLog (PRUint32 aMaxMessages, PRUnichar * * aDmesg) { return smth QueryOSKernelLog (aMaxMessages, aDmesg); }
#define COM_FORWARD_IMachineDebugger_QueryOSKernelLog_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_QueryOSKernelLog_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_QueryOSKernelLog_TO_BASE(base) COM_FORWARD_IMachineDebugger_QueryOSKernelLog_TO (base::)
#define COM_FORWARD_IMachineDebugger_GetRegister_TO(smth) NS_IMETHOD GetRegister (PRUint32 aCpuId, PRUnichar * aName, PRUnichar * * aValue) { return smth GetRegister (aCpuId, aName, aValue); }
#define COM_FORWARD_IMachineDebugger_GetRegister_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GetRegister_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GetRegister_TO_BASE(base) COM_FORWARD_IMachineDebugger_GetRegister_TO (base::)
#define COM_FORWARD_IMachineDebugger_GetRegisters_TO(smth) NS_IMETHOD GetRegisters (PRUint32 aCpuId, PRUint32 * aNamesSize, PRUnichar * * * aNames, PRUint32 * aValuesSize, PRUnichar * * * aValues) { return smth GetRegisters (aCpuId, aNamesSize+++, aNames, aValuesSize, aValues); }
#define COM_FORWARD_IMachineDebugger_GetRegisters_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GetRegisters_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GetRegisters_TO_BASE(base) COM_FORWARD_IMachineDebugger_GetRegisters_TO (base::)
#define COM_FORWARD_IMachineDebugger_SetRegister_TO(smth) NS_IMETHOD SetRegister (PRUint32 aCpuId, PRUnichar * aName, PRUnichar * aValue) { return smth SetRegister (aCpuId, aName, aValue); }
#define COM_FORWARD_IMachineDebugger_SetRegister_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_SetRegister_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_SetRegister_TO_BASE(base) COM_FORWARD_IMachineDebugger_SetRegister_TO (base::)
#define COM_FORWARD_IMachineDebugger_SetRegisters_TO(smth) NS_IMETHOD SetRegisters (PRUint32 aCpuId, PRUint32 aNamesSize, PRUnichar * * aNames, PRUint32 aValuesSize, PRUnichar * * aValues) { return smth SetRegisters (aCpuId, aNamesSize+++, aNames, aValuesSize, aValues); }
#define COM_FORWARD_IMachineDebugger_SetRegisters_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_SetRegisters_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_SetRegisters_TO_BASE(base) COM_FORWARD_IMachineDebugger_SetRegisters_TO (base::)
#define COM_FORWARD_IMachineDebugger_DumpGuestStack_TO(smth) NS_IMETHOD DumpGuestStack (PRUint32 aCpuId, PRUnichar * * aStack) { return smth DumpGuestStack (aCpuId, aStack); }
#define COM_FORWARD_IMachineDebugger_DumpGuestStack_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_DumpGuestStack_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_DumpGuestStack_TO_BASE(base) COM_FORWARD_IMachineDebugger_DumpGuestStack_TO (base::)
#define COM_FORWARD_IMachineDebugger_ResetStats_TO(smth) NS_IMETHOD ResetStats (PRUnichar * aPattern) { return smth ResetStats (aPattern); }
#define COM_FORWARD_IMachineDebugger_ResetStats_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_ResetStats_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_ResetStats_TO_BASE(base) COM_FORWARD_IMachineDebugger_ResetStats_TO (base::)
#define COM_FORWARD_IMachineDebugger_DumpStats_TO(smth) NS_IMETHOD DumpStats (PRUnichar * aPattern) { return smth DumpStats (aPattern); }
#define COM_FORWARD_IMachineDebugger_DumpStats_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_DumpStats_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_DumpStats_TO_BASE(base) COM_FORWARD_IMachineDebugger_DumpStats_TO (base::)
#define COM_FORWARD_IMachineDebugger_GetStats_TO(smth) NS_IMETHOD GetStats (PRUnichar * aPattern, PRBool aWithDescriptions, PRUnichar * * aStats) { return smth GetStats (aPattern, aWithDescriptions, aStats); }
#define COM_FORWARD_IMachineDebugger_GetStats_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GetStats_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GetStats_TO_BASE(base) COM_FORWARD_IMachineDebugger_GetStats_TO (base::)
#define COM_FORWARD_IMachineDebugger_GetCPULoad_TO(smth) NS_IMETHOD GetCPULoad (PRUint32 aCpuId, PRUint32 * aPctExecuting, PRUint32 * aPctHalted, PRUint32 * aPctOther, PRInt64 * aMsInterval) { return smth GetCPULoad (aCpuId, aPctExecuting, aPctHalted, aPctOther, aMsInterval); }
#define COM_FORWARD_IMachineDebugger_GetCPULoad_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GetCPULoad_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GetCPULoad_TO_BASE(base) COM_FORWARD_IMachineDebugger_GetCPULoad_TO (base::)
#define COM_FORWARD_IMachineDebugger_TakeGuestSample_TO(smth) NS_IMETHOD TakeGuestSample (PRUnichar * aFilename, PRUint32 aUsInterval, PRInt64 aUsSampleTime, IProgress * * aProgress) { return smth TakeGuestSample (aFilename, aUsInterval, aUsSampleTime, aProgress); }
#define COM_FORWARD_IMachineDebugger_TakeGuestSample_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_TakeGuestSample_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_TakeGuestSample_TO_BASE(base) COM_FORWARD_IMachineDebugger_TakeGuestSample_TO (base::)
#define COM_FORWARD_IMachineDebugger_GetUVMAndVMMFunctionTable_TO(smth) NS_IMETHOD GetUVMAndVMMFunctionTable (PRInt64 aMagicVersion, PRInt64 * aVMMFunctionTable, PRInt64 * aUVM) { return smth GetUVMAndVMMFunctionTable (aMagicVersion, aVMMFunctionTable, aUVM); }
#define COM_FORWARD_IMachineDebugger_GetUVMAndVMMFunctionTable_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GetUVMAndVMMFunctionTable_TO ((obj)->)
#define COM_FORWARD_IMachineDebugger_GetUVMAndVMMFunctionTable_TO_BASE(base) COM_FORWARD_IMachineDebugger_GetUVMAndVMMFunctionTable_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_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IUSBDeviceFilters(PRUint32 *aInternalAndReservedAttribute1IUSBDeviceFilters) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IUSBDeviceFilters(PRUint32 *aInternalAndReservedAttribute2IUSBDeviceFilters) NS_OVERRIDE; \
  NS_IMETHOD CreateDeviceFilter(const PRUnichar *name, IUSBDeviceFilter * *filter) NS_OVERRIDE; \
  NS_IMETHOD InsertDeviceFilter(PRUint32 position, IUSBDeviceFilter * filter) NS_OVERRIDE; \
  NS_IMETHOD RemoveDeviceFilter(PRUint32 position, IUSBDeviceFilter * *filter) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IUSBDeviceFilters(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IUSBDeviceFilters(void) NS_OVERRIDE; 

/* 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(); } 

#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 "ee206a6e-7ff8-4a84-bd34-0c651e118bb5"

#define IUSBCONTROLLER_IID \
  {0xee206a6e, 0x7ff8, 0x4a84, \
    { 0xbd, 0x34, 0x0c, 0x65, 0x1e, 0x11, 0x8b, 0xb5 }}

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 USBControllerType_T type; */
  NS_IMETHOD GetType(USBControllerType_T *aType) = 0;
  NS_IMETHOD SetType(USBControllerType_T 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;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IUSBController; */
  NS_IMETHOD GetInternalAndReservedAttribute3IUSBController(PRUint32 *aInternalAndReservedAttribute3IUSBController) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IUSBController; */
  NS_IMETHOD GetInternalAndReservedAttribute4IUSBController(PRUint32 *aInternalAndReservedAttribute4IUSBController) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IUSBCONTROLLER \
  NS_IMETHOD GetName(PRUnichar **aName) NS_OVERRIDE; \
  NS_IMETHOD SetName(const PRUnichar *aName) NS_OVERRIDE; \
  NS_IMETHOD GetType(USBControllerType_T *aType) NS_OVERRIDE; \
  NS_IMETHOD SetType(USBControllerType_T aType) NS_OVERRIDE; \
  NS_IMETHOD GetUSBStandard(PRUint16 *aUSBStandard) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IUSBController(PRUint32 *aInternalAndReservedAttribute1IUSBController) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IUSBController(PRUint32 *aInternalAndReservedAttribute2IUSBController) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IUSBController(PRUint32 *aInternalAndReservedAttribute3IUSBController) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IUSBController(PRUint32 *aInternalAndReservedAttribute4IUSBController) NS_OVERRIDE; 

/* 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(USBControllerType_T *aType) { return _to GetType(aType); } \
  NS_IMETHOD SetType(USBControllerType_T 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); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IUSBController(PRUint32 *aInternalAndReservedAttribute3IUSBController) { return _to GetInternalAndReservedAttribute3IUSBController(aInternalAndReservedAttribute3IUSBController); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IUSBController(PRUint32 *aInternalAndReservedAttribute4IUSBController) { return _to GetInternalAndReservedAttribute4IUSBController(aInternalAndReservedAttribute4IUSBController); } 

/* 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(USBControllerType_T *aType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetType(aType); } \
  NS_IMETHOD SetType(USBControllerType_T 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); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IUSBController(PRUint32 *aInternalAndReservedAttribute3IUSBController) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IUSBController(aInternalAndReservedAttribute3IUSBController); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IUSBController(PRUint32 *aInternalAndReservedAttribute4IUSBController) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IUSBController(aInternalAndReservedAttribute4IUSBController); } 

#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 "6dc83c2c-81a9-4005-9d52-fc45a78bf3f5"

#define IUSBDEVICE_IID \
  {0x6dc83c2c, 0x81a9, 0x4005, \
    { 0x9d, 0x52, 0xfc, 0x45, 0xa7, 0x8b, 0xf3, 0xf5 }}

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 wstring portPath; */
  NS_IMETHOD GetPortPath(PRUnichar **aPortPath) = 0;

  /* readonly attribute unsigned short version; */
  NS_IMETHOD GetVersion(PRUint16 *aVersion) = 0;

  /* readonly attribute USBConnectionSpeed_T speed; */
  NS_IMETHOD GetSpeed(USBConnectionSpeed_T *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;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IUSBDevice; */
  NS_IMETHOD GetInternalAndReservedAttribute3IUSBDevice(PRUint32 *aInternalAndReservedAttribute3IUSBDevice) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IUSBDevice; */
  NS_IMETHOD GetInternalAndReservedAttribute4IUSBDevice(PRUint32 *aInternalAndReservedAttribute4IUSBDevice) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IUSBDEVICE \
  NS_IMETHOD GetId(PRUnichar **aId) NS_OVERRIDE; \
  NS_IMETHOD GetVendorId(PRUint16 *aVendorId) NS_OVERRIDE; \
  NS_IMETHOD GetProductId(PRUint16 *aProductId) NS_OVERRIDE; \
  NS_IMETHOD GetRevision(PRUint16 *aRevision) NS_OVERRIDE; \
  NS_IMETHOD GetManufacturer(PRUnichar **aManufacturer) NS_OVERRIDE; \
  NS_IMETHOD GetProduct(PRUnichar **aProduct) NS_OVERRIDE; \
  NS_IMETHOD GetSerialNumber(PRUnichar **aSerialNumber) NS_OVERRIDE; \
  NS_IMETHOD GetAddress(PRUnichar **aAddress) NS_OVERRIDE; \
  NS_IMETHOD GetPort(PRUint16 *aPort) NS_OVERRIDE; \
  NS_IMETHOD GetPortPath(PRUnichar **aPortPath) NS_OVERRIDE; \
  NS_IMETHOD GetVersion(PRUint16 *aVersion) NS_OVERRIDE; \
  NS_IMETHOD GetSpeed(USBConnectionSpeed_T *aSpeed) NS_OVERRIDE; \
  NS_IMETHOD GetRemote(PRBool *aRemote) NS_OVERRIDE; \
  NS_IMETHOD GetDeviceInfo(PRUint32 *deviceInfoSize, PRUnichar ***deviceInfo) NS_OVERRIDE; \
  NS_IMETHOD GetBackend(PRUnichar **aBackend) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IUSBDevice(PRUint32 *aInternalAndReservedAttribute1IUSBDevice) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IUSBDevice(PRUint32 *aInternalAndReservedAttribute2IUSBDevice) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IUSBDevice(PRUint32 *aInternalAndReservedAttribute3IUSBDevice) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IUSBDevice(PRUint32 *aInternalAndReservedAttribute4IUSBDevice) NS_OVERRIDE; 

/* 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 GetPortPath(PRUnichar **aPortPath) { return _to GetPortPath(aPortPath); } \
  NS_IMETHOD GetVersion(PRUint16 *aVersion) { return _to GetVersion(aVersion); } \
  NS_IMETHOD GetSpeed(USBConnectionSpeed_T *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); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IUSBDevice(PRUint32 *aInternalAndReservedAttribute3IUSBDevice) { return _to GetInternalAndReservedAttribute3IUSBDevice(aInternalAndReservedAttribute3IUSBDevice); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IUSBDevice(PRUint32 *aInternalAndReservedAttribute4IUSBDevice) { return _to GetInternalAndReservedAttribute4IUSBDevice(aInternalAndReservedAttribute4IUSBDevice); } 

/* 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 GetPortPath(PRUnichar **aPortPath) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPortPath(aPortPath); } \
  NS_IMETHOD GetVersion(PRUint16 *aVersion) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVersion(aVersion); } \
  NS_IMETHOD GetSpeed(USBConnectionSpeed_T *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); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IUSBDevice(PRUint32 *aInternalAndReservedAttribute3IUSBDevice) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IUSBDevice(aInternalAndReservedAttribute3IUSBDevice); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IUSBDevice(PRUint32 *aInternalAndReservedAttribute4IUSBDevice) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IUSBDevice(aInternalAndReservedAttribute4IUSBDevice); } 

#define COM_FORWARD_IUSBDevice_GETTER_Id_TO(smth) NS_IMETHOD GetId (PRUnichar * * aId) { return smth GetId (aId); }
#define COM_FORWARD_IUSBDevice_GETTER_Id_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_Id_TO ((obj)->)
#define COM_FORWARD_IUSBDevice_GETTER_Id_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_Id_TO (base::)
#define COM_FORWARD_IUSBDevice_GETTER_VendorId_TO(smth) NS_IMETHOD GetVendorId (PRUint16 * aVendorId) { return smth GetVendorId (aVendorId); }
#define COM_FORWARD_IUSBDevice_GETTER_VendorId_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_VendorId_TO ((obj)->)
#define COM_FORWARD_IUSBDevice_GETTER_VendorId_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_VendorId_TO (base::)
#define COM_FORWARD_IUSBDevice_GETTER_ProductId_TO(smth) NS_IMETHOD GetProductId (PRUint16 * aProductId) { return smth GetProductId (aProductId); }
#define COM_FORWARD_IUSBDevice_GETTER_ProductId_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_ProductId_TO ((obj)->)
#define COM_FORWARD_IUSBDevice_GETTER_ProductId_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_ProductId_TO (base::)
#define COM_FORWARD_IUSBDevice_GETTER_Revision_TO(smth) NS_IMETHOD GetRevision (PRUint16 * aRevision) { return smth GetRevision (aRevision); }
#define COM_FORWARD_IUSBDevice_GETTER_Revision_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_Revision_TO ((obj)->)
#define COM_FORWARD_IUSBDevice_GETTER_Revision_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_Revision_TO (base::)
#define COM_FORWARD_IUSBDevice_GETTER_Manufacturer_TO(smth) NS_IMETHOD GetManufacturer (PRUnichar * * aManufacturer) { return smth GetManufacturer (aManufacturer); }
#define COM_FORWARD_IUSBDevice_GETTER_Manufacturer_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_Manufacturer_TO ((obj)->)
#define COM_FORWARD_IUSBDevice_GETTER_Manufacturer_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_Manufacturer_TO (base::)
#define COM_FORWARD_IUSBDevice_GETTER_Product_TO(smth) NS_IMETHOD GetProduct (PRUnichar * * aProduct) { return smth GetProduct (aProduct); }
#define COM_FORWARD_IUSBDevice_GETTER_Product_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_Product_TO ((obj)->)
#define COM_FORWARD_IUSBDevice_GETTER_Product_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_Product_TO (base::)
#define COM_FORWARD_IUSBDevice_GETTER_SerialNumber_TO(smth) NS_IMETHOD GetSerialNumber (PRUnichar * * aSerialNumber) { return smth GetSerialNumber (aSerialNumber); }
#define COM_FORWARD_IUSBDevice_GETTER_SerialNumber_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_SerialNumber_TO ((obj)->)
#define COM_FORWARD_IUSBDevice_GETTER_SerialNumber_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_SerialNumber_TO (base::)
#define COM_FORWARD_IUSBDevice_GETTER_Address_TO(smth) NS_IMETHOD GetAddress (PRUnichar * * aAddress) { return smth GetAddress (aAddress); }
#define COM_FORWARD_IUSBDevice_GETTER_Address_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_Address_TO ((obj)->)
#define COM_FORWARD_IUSBDevice_GETTER_Address_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_Address_TO (base::)
#define COM_FORWARD_IUSBDevice_GETTER_Port_TO(smth) NS_IMETHOD GetPort (PRUint16 * aPort) { return smth GetPort (aPort); }
#define COM_FORWARD_IUSBDevice_GETTER_Port_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_Port_TO ((obj)->)
#define COM_FORWARD_IUSBDevice_GETTER_Port_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_Port_TO (base::)
#define COM_FORWARD_IUSBDevice_GETTER_PortPath_TO(smth) NS_IMETHOD GetPortPath (PRUnichar * * aPortPath) { return smth GetPortPath (aPortPath); }
#define COM_FORWARD_IUSBDevice_GETTER_PortPath_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_PortPath_TO ((obj)->)
#define COM_FORWARD_IUSBDevice_GETTER_PortPath_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_PortPath_TO (base::)
#define COM_FORWARD_IUSBDevice_GETTER_Version_TO(smth) NS_IMETHOD GetVersion (PRUint16 * aVersion) { return smth GetVersion (aVersion); }
#define COM_FORWARD_IUSBDevice_GETTER_Version_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_Version_TO ((obj)->)
#define COM_FORWARD_IUSBDevice_GETTER_Version_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_Version_TO (base::)
#define COM_FORWARD_IUSBDevice_GETTER_Speed_TO(smth) NS_IMETHOD GetSpeed (PRUint32 * aSpeed) { return smth GetSpeed (aSpeed); }
#define COM_FORWARD_IUSBDevice_GETTER_Speed_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_Speed_TO ((obj)->)
#define COM_FORWARD_IUSBDevice_GETTER_Speed_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_Speed_TO (base::)
#define COM_FORWARD_IUSBDevice_GETTER_Remote_TO(smth) NS_IMETHOD GetRemote (PRBool * aRemote) { return smth GetRemote (aRemote); }
#define COM_FORWARD_IUSBDevice_GETTER_Remote_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_Remote_TO ((obj)->)
#define COM_FORWARD_IUSBDevice_GETTER_Remote_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_Remote_TO (base::)
#define COM_FORWARD_IUSBDevice_GETTER_DeviceInfo_TO(smth) NS_IMETHOD GetDeviceInfo (PRUint32 * aDeviceInfoSize, PRUnichar * * * aDeviceInfo) { return smth GetDeviceInfo (aDeviceInfoSize, aDeviceInfo); }
#define COM_FORWARD_IUSBDevice_GETTER_DeviceInfo_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_DeviceInfo_TO ((obj)->)
#define COM_FORWARD_IUSBDevice_GETTER_DeviceInfo_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_DeviceInfo_TO (base::)
#define COM_FORWARD_IUSBDevice_GETTER_Backend_TO(smth) NS_IMETHOD GetBackend (PRUnichar * * aBackend) { return smth GetBackend (aBackend); }
#define COM_FORWARD_IUSBDevice_GETTER_Backend_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_Backend_TO ((obj)->)
#define COM_FORWARD_IUSBDevice_GETTER_Backend_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_Backend_TO (base::)
#define COM_FORWARD_IUSBDevice_TO(smth) NS_FORWARD_IUSBDEVICE (smth)
#define COM_FORWARD_IUSBDevice_TO_OBJ(obj) COM_FORWARD_IUSBDevice_TO ((obj)->)
#define COM_FORWARD_IUSBDevice_TO_BASE(base) COM_FORWARD_IUSBDevice_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IUSBDevice;

/* 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_OVERRIDE; \
  NS_IMETHOD SetName(const PRUnichar *aName) NS_OVERRIDE; \
  NS_IMETHOD GetActive(PRBool *aActive) NS_OVERRIDE; \
  NS_IMETHOD SetActive(PRBool aActive) NS_OVERRIDE; \
  NS_IMETHOD GetVendorId(PRUnichar **aVendorId) NS_OVERRIDE; \
  NS_IMETHOD SetVendorId(const PRUnichar *aVendorId) NS_OVERRIDE; \
  NS_IMETHOD GetProductId(PRUnichar **aProductId) NS_OVERRIDE; \
  NS_IMETHOD SetProductId(const PRUnichar *aProductId) NS_OVERRIDE; \
  NS_IMETHOD GetRevision(PRUnichar **aRevision) NS_OVERRIDE; \
  NS_IMETHOD SetRevision(const PRUnichar *aRevision) NS_OVERRIDE; \
  NS_IMETHOD GetManufacturer(PRUnichar **aManufacturer) NS_OVERRIDE; \
  NS_IMETHOD SetManufacturer(const PRUnichar *aManufacturer) NS_OVERRIDE; \
  NS_IMETHOD GetProduct(PRUnichar **aProduct) NS_OVERRIDE; \
  NS_IMETHOD SetProduct(const PRUnichar *aProduct) NS_OVERRIDE; \
  NS_IMETHOD GetSerialNumber(PRUnichar **aSerialNumber) NS_OVERRIDE; \
  NS_IMETHOD SetSerialNumber(const PRUnichar *aSerialNumber) NS_OVERRIDE; \
  NS_IMETHOD GetPort(PRUnichar **aPort) NS_OVERRIDE; \
  NS_IMETHOD SetPort(const PRUnichar *aPort) NS_OVERRIDE; \
  NS_IMETHOD GetRemote(PRUnichar **aRemote) NS_OVERRIDE; \
  NS_IMETHOD SetRemote(const PRUnichar *aRemote) NS_OVERRIDE; \
  NS_IMETHOD GetMaskedInterfaces(PRUint32 *aMaskedInterfaces) NS_OVERRIDE; \
  NS_IMETHOD SetMaskedInterfaces(PRUint32 aMaskedInterfaces) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute1IUSBDeviceFilter) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute2IUSBDeviceFilter) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute3IUSBDeviceFilter) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute4IUSBDeviceFilter) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute5IUSBDeviceFilter) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute6IUSBDeviceFilter) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute7IUSBDeviceFilter) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute8IUSBDeviceFilter) NS_OVERRIDE; 

/* 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); } 

#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 USBDeviceState_T state; */
  NS_IMETHOD GetState(USBDeviceState_T *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(USBDeviceState_T *aState) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IHostUSBDevice(PRUint32 *aInternalAndReservedAttribute1IHostUSBDevice) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IHostUSBDevice(PRUint32 *aInternalAndReservedAttribute2IHostUSBDevice) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IHostUSBDevice(PRUint32 *aInternalAndReservedAttribute3IHostUSBDevice) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IHostUSBDevice(PRUint32 *aInternalAndReservedAttribute4IHostUSBDevice) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IHOSTUSBDEVICE(_to) \
  NS_IMETHOD GetState(USBDeviceState_T *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(USBDeviceState_T *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); } 

#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 USBDeviceFilterAction_T action; */
  NS_IMETHOD GetAction(USBDeviceFilterAction_T *aAction) = 0;
  NS_IMETHOD SetAction(USBDeviceFilterAction_T 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(USBDeviceFilterAction_T *aAction) NS_OVERRIDE; \
  NS_IMETHOD SetAction(USBDeviceFilterAction_T aAction) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute1IHostUSBDeviceFilter) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute2IHostUSBDeviceFilter) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute3IHostUSBDeviceFilter) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute4IHostUSBDeviceFilter) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute5IHostUSBDeviceFilter) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute6IHostUSBDeviceFilter) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute7IHostUSBDeviceFilter) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IHostUSBDeviceFilter(PRUint32 *aInternalAndReservedAttribute8IHostUSBDeviceFilter) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IHOSTUSBDEVICEFILTER(_to) \
  NS_IMETHOD GetAction(USBDeviceFilterAction_T *aAction) { return _to GetAction(aAction); } \
  NS_IMETHOD SetAction(USBDeviceFilterAction_T 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(USBDeviceFilterAction_T *aAction) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAction(aAction); } \
  NS_IMETHOD SetAction(USBDeviceFilterAction_T 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); } 

#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_OVERRIDE; \
  NS_IMETHOD GetType(PRUnichar **aType) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute1IUSBProxyBackend) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute2IUSBProxyBackend) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute3IUSBProxyBackend) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute4IUSBProxyBackend) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute5IUSBProxyBackend) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute6IUSBProxyBackend) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute7IUSBProxyBackend) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IUSBProxyBackend(PRUint32 *aInternalAndReservedAttribute8IUSBProxyBackend) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IUSBProxyBackend(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IUSBProxyBackend(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IUSBProxyBackend(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IUSBProxyBackend(void) NS_OVERRIDE; 

/* 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(); } 

#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 "5155bfd3-7ba7-45a8-b26d-c91ae3754e37"

#define IAUDIOADAPTER_IID \
  {0x5155bfd3, 0x7ba7, 0x45a8, \
    { 0xb2, 0x6d, 0xc9, 0x1a, 0xe3, 0x75, 0x4e, 0x37 }}

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 AudioControllerType_T audioController; */
  NS_IMETHOD GetAudioController(AudioControllerType_T *aAudioController) = 0;
  NS_IMETHOD SetAudioController(AudioControllerType_T aAudioController) = 0;

  /* attribute AudioCodecType_T audioCodec; */
  NS_IMETHOD GetAudioCodec(AudioCodecType_T *aAudioCodec) = 0;
  NS_IMETHOD SetAudioCodec(AudioCodecType_T aAudioCodec) = 0;

  /* attribute AudioDriverType_T audioDriver; */
  NS_IMETHOD GetAudioDriver(AudioDriverType_T *aAudioDriver) = 0;
  NS_IMETHOD SetAudioDriver(AudioDriverType_T 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;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IAudioAdapter; */
  NS_IMETHOD GetInternalAndReservedAttribute3IAudioAdapter(PRUint32 *aInternalAndReservedAttribute3IAudioAdapter) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IAudioAdapter; */
  NS_IMETHOD GetInternalAndReservedAttribute4IAudioAdapter(PRUint32 *aInternalAndReservedAttribute4IAudioAdapter) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IAudioAdapter; */
  NS_IMETHOD GetInternalAndReservedAttribute5IAudioAdapter(PRUint32 *aInternalAndReservedAttribute5IAudioAdapter) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IAudioAdapter; */
  NS_IMETHOD GetInternalAndReservedAttribute6IAudioAdapter(PRUint32 *aInternalAndReservedAttribute6IAudioAdapter) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IAudioAdapter; */
  NS_IMETHOD GetInternalAndReservedAttribute7IAudioAdapter(PRUint32 *aInternalAndReservedAttribute7IAudioAdapter) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IAudioAdapter; */
  NS_IMETHOD GetInternalAndReservedAttribute8IAudioAdapter(PRUint32 *aInternalAndReservedAttribute8IAudioAdapter) = 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;

  /* void InternalAndReservedMethod2IAudioAdapter (); */
  NS_IMETHOD InternalAndReservedMethod2IAudioAdapter(void) = 0;

  /* void InternalAndReservedMethod3IAudioAdapter (); */
  NS_IMETHOD InternalAndReservedMethod3IAudioAdapter(void) = 0;

  /* void InternalAndReservedMethod4IAudioAdapter (); */
  NS_IMETHOD InternalAndReservedMethod4IAudioAdapter(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IAUDIOADAPTER \
  NS_IMETHOD GetEnabled(PRBool *aEnabled) NS_OVERRIDE; \
  NS_IMETHOD SetEnabled(PRBool aEnabled) NS_OVERRIDE; \
  NS_IMETHOD GetEnabledIn(PRBool *aEnabledIn) NS_OVERRIDE; \
  NS_IMETHOD SetEnabledIn(PRBool aEnabledIn) NS_OVERRIDE; \
  NS_IMETHOD GetEnabledOut(PRBool *aEnabledOut) NS_OVERRIDE; \
  NS_IMETHOD SetEnabledOut(PRBool aEnabledOut) NS_OVERRIDE; \
  NS_IMETHOD GetAudioController(AudioControllerType_T *aAudioController) NS_OVERRIDE; \
  NS_IMETHOD SetAudioController(AudioControllerType_T aAudioController) NS_OVERRIDE; \
  NS_IMETHOD GetAudioCodec(AudioCodecType_T *aAudioCodec) NS_OVERRIDE; \
  NS_IMETHOD SetAudioCodec(AudioCodecType_T aAudioCodec) NS_OVERRIDE; \
  NS_IMETHOD GetAudioDriver(AudioDriverType_T *aAudioDriver) NS_OVERRIDE; \
  NS_IMETHOD SetAudioDriver(AudioDriverType_T aAudioDriver) NS_OVERRIDE; \
  NS_IMETHOD GetPropertiesList(PRUint32 *propertiesListSize, PRUnichar ***propertiesList) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IAudioAdapter(PRUint32 *aInternalAndReservedAttribute1IAudioAdapter) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IAudioAdapter(PRUint32 *aInternalAndReservedAttribute2IAudioAdapter) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IAudioAdapter(PRUint32 *aInternalAndReservedAttribute3IAudioAdapter) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IAudioAdapter(PRUint32 *aInternalAndReservedAttribute4IAudioAdapter) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IAudioAdapter(PRUint32 *aInternalAndReservedAttribute5IAudioAdapter) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IAudioAdapter(PRUint32 *aInternalAndReservedAttribute6IAudioAdapter) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IAudioAdapter(PRUint32 *aInternalAndReservedAttribute7IAudioAdapter) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IAudioAdapter(PRUint32 *aInternalAndReservedAttribute8IAudioAdapter) NS_OVERRIDE; \
  NS_IMETHOD SetProperty(const PRUnichar *key, const PRUnichar *value) NS_OVERRIDE; \
  NS_IMETHOD GetProperty(const PRUnichar *key, PRUnichar **value) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IAudioAdapter(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IAudioAdapter(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IAudioAdapter(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IAudioAdapter(void) NS_OVERRIDE; 

/* 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(AudioControllerType_T *aAudioController) { return _to GetAudioController(aAudioController); } \
  NS_IMETHOD SetAudioController(AudioControllerType_T aAudioController) { return _to SetAudioController(aAudioController); } \
  NS_IMETHOD GetAudioCodec(AudioCodecType_T *aAudioCodec) { return _to GetAudioCodec(aAudioCodec); } \
  NS_IMETHOD SetAudioCodec(AudioCodecType_T aAudioCodec) { return _to SetAudioCodec(aAudioCodec); } \
  NS_IMETHOD GetAudioDriver(AudioDriverType_T *aAudioDriver) { return _to GetAudioDriver(aAudioDriver); } \
  NS_IMETHOD SetAudioDriver(AudioDriverType_T 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 GetInternalAndReservedAttribute3IAudioAdapter(PRUint32 *aInternalAndReservedAttribute3IAudioAdapter) { return _to GetInternalAndReservedAttribute3IAudioAdapter(aInternalAndReservedAttribute3IAudioAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IAudioAdapter(PRUint32 *aInternalAndReservedAttribute4IAudioAdapter) { return _to GetInternalAndReservedAttribute4IAudioAdapter(aInternalAndReservedAttribute4IAudioAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IAudioAdapter(PRUint32 *aInternalAndReservedAttribute5IAudioAdapter) { return _to GetInternalAndReservedAttribute5IAudioAdapter(aInternalAndReservedAttribute5IAudioAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IAudioAdapter(PRUint32 *aInternalAndReservedAttribute6IAudioAdapter) { return _to GetInternalAndReservedAttribute6IAudioAdapter(aInternalAndReservedAttribute6IAudioAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IAudioAdapter(PRUint32 *aInternalAndReservedAttribute7IAudioAdapter) { return _to GetInternalAndReservedAttribute7IAudioAdapter(aInternalAndReservedAttribute7IAudioAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IAudioAdapter(PRUint32 *aInternalAndReservedAttribute8IAudioAdapter) { return _to GetInternalAndReservedAttribute8IAudioAdapter(aInternalAndReservedAttribute8IAudioAdapter); } \
  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(); } \
  NS_IMETHOD InternalAndReservedMethod2IAudioAdapter(void) { return _to InternalAndReservedMethod2IAudioAdapter(); } \
  NS_IMETHOD InternalAndReservedMethod3IAudioAdapter(void) { return _to InternalAndReservedMethod3IAudioAdapter(); } \
  NS_IMETHOD InternalAndReservedMethod4IAudioAdapter(void) { return _to InternalAndReservedMethod4IAudioAdapter(); } 

/* 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(AudioControllerType_T *aAudioController) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAudioController(aAudioController); } \
  NS_IMETHOD SetAudioController(AudioControllerType_T aAudioController) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAudioController(aAudioController); } \
  NS_IMETHOD GetAudioCodec(AudioCodecType_T *aAudioCodec) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAudioCodec(aAudioCodec); } \
  NS_IMETHOD SetAudioCodec(AudioCodecType_T aAudioCodec) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAudioCodec(aAudioCodec); } \
  NS_IMETHOD GetAudioDriver(AudioDriverType_T *aAudioDriver) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAudioDriver(aAudioDriver); } \
  NS_IMETHOD SetAudioDriver(AudioDriverType_T 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 GetInternalAndReservedAttribute3IAudioAdapter(PRUint32 *aInternalAndReservedAttribute3IAudioAdapter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IAudioAdapter(aInternalAndReservedAttribute3IAudioAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IAudioAdapter(PRUint32 *aInternalAndReservedAttribute4IAudioAdapter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IAudioAdapter(aInternalAndReservedAttribute4IAudioAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IAudioAdapter(PRUint32 *aInternalAndReservedAttribute5IAudioAdapter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IAudioAdapter(aInternalAndReservedAttribute5IAudioAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IAudioAdapter(PRUint32 *aInternalAndReservedAttribute6IAudioAdapter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IAudioAdapter(aInternalAndReservedAttribute6IAudioAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IAudioAdapter(PRUint32 *aInternalAndReservedAttribute7IAudioAdapter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IAudioAdapter(aInternalAndReservedAttribute7IAudioAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IAudioAdapter(PRUint32 *aInternalAndReservedAttribute8IAudioAdapter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IAudioAdapter(aInternalAndReservedAttribute8IAudioAdapter); } \
  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(); } \
  NS_IMETHOD InternalAndReservedMethod2IAudioAdapter(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IAudioAdapter(); } \
  NS_IMETHOD InternalAndReservedMethod3IAudioAdapter(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IAudioAdapter(); } \
  NS_IMETHOD InternalAndReservedMethod4IAudioAdapter(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IAudioAdapter(); } 

#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:    IHostAudioDevice */
#define IHOSTAUDIODEVICE_IID_STR "cfde1265-3140-4048-a81f-a1e280dfbd75"

#define IHOSTAUDIODEVICE_IID \
  {0xcfde1265, 0x3140, 0x4048, \
    { 0xa8, 0x1f, 0xa1, 0xe2, 0x80, 0xdf, 0xbd, 0x75 }}

class NS_NO_VTABLE IHostAudioDevice : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IHOSTAUDIODEVICE_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 AudioDeviceType_T type; */
  NS_IMETHOD GetType(AudioDeviceType_T *aType) = 0;
  NS_IMETHOD SetType(AudioDeviceType_T aType) = 0;

  /* attribute AudioDirection_T usage; */
  NS_IMETHOD GetUsage(AudioDirection_T *aUsage) = 0;
  NS_IMETHOD SetUsage(AudioDirection_T aUsage) = 0;

  /* attribute boolean defaultIn; */
  NS_IMETHOD GetDefaultIn(PRBool *aDefaultIn) = 0;
  NS_IMETHOD SetDefaultIn(PRBool aDefaultIn) = 0;

  /* attribute boolean defaultOut; */
  NS_IMETHOD GetDefaultOut(PRBool *aDefaultOut) = 0;
  NS_IMETHOD SetDefaultOut(PRBool aDefaultOut) = 0;

  /* attribute boolean isHotPlug; */
  NS_IMETHOD GetIsHotPlug(PRBool *aIsHotPlug) = 0;
  NS_IMETHOD SetIsHotPlug(PRBool aIsHotPlug) = 0;

  /* attribute AudioDeviceState_T state; */
  NS_IMETHOD GetState(AudioDeviceState_T *aState) = 0;
  NS_IMETHOD SetState(AudioDeviceState_T aState) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IHostAudioDevice; */
  NS_IMETHOD GetInternalAndReservedAttribute1IHostAudioDevice(PRUint32 *aInternalAndReservedAttribute1IHostAudioDevice) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IHostAudioDevice; */
  NS_IMETHOD GetInternalAndReservedAttribute2IHostAudioDevice(PRUint32 *aInternalAndReservedAttribute2IHostAudioDevice) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IHostAudioDevice; */
  NS_IMETHOD GetInternalAndReservedAttribute3IHostAudioDevice(PRUint32 *aInternalAndReservedAttribute3IHostAudioDevice) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IHostAudioDevice; */
  NS_IMETHOD GetInternalAndReservedAttribute4IHostAudioDevice(PRUint32 *aInternalAndReservedAttribute4IHostAudioDevice) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IHostAudioDevice; */
  NS_IMETHOD GetInternalAndReservedAttribute5IHostAudioDevice(PRUint32 *aInternalAndReservedAttribute5IHostAudioDevice) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IHostAudioDevice; */
  NS_IMETHOD GetInternalAndReservedAttribute6IHostAudioDevice(PRUint32 *aInternalAndReservedAttribute6IHostAudioDevice) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IHostAudioDevice; */
  NS_IMETHOD GetInternalAndReservedAttribute7IHostAudioDevice(PRUint32 *aInternalAndReservedAttribute7IHostAudioDevice) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IHostAudioDevice; */
  NS_IMETHOD GetInternalAndReservedAttribute8IHostAudioDevice(PRUint32 *aInternalAndReservedAttribute8IHostAudioDevice) = 0;

  /* void getProperty (in wstring key, [retval] out wstring value); */
  NS_IMETHOD GetProperty(const PRUnichar *key, PRUnichar **value) = 0;

  /* void InternalAndReservedMethod1IHostAudioDevice (); */
  NS_IMETHOD InternalAndReservedMethod1IHostAudioDevice(void) = 0;

  /* void InternalAndReservedMethod2IHostAudioDevice (); */
  NS_IMETHOD InternalAndReservedMethod2IHostAudioDevice(void) = 0;

  /* void InternalAndReservedMethod3IHostAudioDevice (); */
  NS_IMETHOD InternalAndReservedMethod3IHostAudioDevice(void) = 0;

  /* void InternalAndReservedMethod4IHostAudioDevice (); */
  NS_IMETHOD InternalAndReservedMethod4IHostAudioDevice(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IHOSTAUDIODEVICE \
  NS_IMETHOD GetId(PRUnichar **aId) NS_OVERRIDE; \
  NS_IMETHOD GetName(PRUnichar **aName) NS_OVERRIDE; \
  NS_IMETHOD SetName(const PRUnichar *aName) NS_OVERRIDE; \
  NS_IMETHOD GetType(AudioDeviceType_T *aType) NS_OVERRIDE; \
  NS_IMETHOD SetType(AudioDeviceType_T aType) NS_OVERRIDE; \
  NS_IMETHOD GetUsage(AudioDirection_T *aUsage) NS_OVERRIDE; \
  NS_IMETHOD SetUsage(AudioDirection_T aUsage) NS_OVERRIDE; \
  NS_IMETHOD GetDefaultIn(PRBool *aDefaultIn) NS_OVERRIDE; \
  NS_IMETHOD SetDefaultIn(PRBool aDefaultIn) NS_OVERRIDE; \
  NS_IMETHOD GetDefaultOut(PRBool *aDefaultOut) NS_OVERRIDE; \
  NS_IMETHOD SetDefaultOut(PRBool aDefaultOut) NS_OVERRIDE; \
  NS_IMETHOD GetIsHotPlug(PRBool *aIsHotPlug) NS_OVERRIDE; \
  NS_IMETHOD SetIsHotPlug(PRBool aIsHotPlug) NS_OVERRIDE; \
  NS_IMETHOD GetState(AudioDeviceState_T *aState) NS_OVERRIDE; \
  NS_IMETHOD SetState(AudioDeviceState_T aState) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IHostAudioDevice(PRUint32 *aInternalAndReservedAttribute1IHostAudioDevice) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IHostAudioDevice(PRUint32 *aInternalAndReservedAttribute2IHostAudioDevice) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IHostAudioDevice(PRUint32 *aInternalAndReservedAttribute3IHostAudioDevice) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IHostAudioDevice(PRUint32 *aInternalAndReservedAttribute4IHostAudioDevice) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IHostAudioDevice(PRUint32 *aInternalAndReservedAttribute5IHostAudioDevice) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IHostAudioDevice(PRUint32 *aInternalAndReservedAttribute6IHostAudioDevice) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IHostAudioDevice(PRUint32 *aInternalAndReservedAttribute7IHostAudioDevice) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IHostAudioDevice(PRUint32 *aInternalAndReservedAttribute8IHostAudioDevice) NS_OVERRIDE; \
  NS_IMETHOD GetProperty(const PRUnichar *key, PRUnichar **value) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IHostAudioDevice(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IHostAudioDevice(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IHostAudioDevice(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IHostAudioDevice(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IHOSTAUDIODEVICE(_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 GetType(AudioDeviceType_T *aType) { return _to GetType(aType); } \
  NS_IMETHOD SetType(AudioDeviceType_T aType) { return _to SetType(aType); } \
  NS_IMETHOD GetUsage(AudioDirection_T *aUsage) { return _to GetUsage(aUsage); } \
  NS_IMETHOD SetUsage(AudioDirection_T aUsage) { return _to SetUsage(aUsage); } \
  NS_IMETHOD GetDefaultIn(PRBool *aDefaultIn) { return _to GetDefaultIn(aDefaultIn); } \
  NS_IMETHOD SetDefaultIn(PRBool aDefaultIn) { return _to SetDefaultIn(aDefaultIn); } \
  NS_IMETHOD GetDefaultOut(PRBool *aDefaultOut) { return _to GetDefaultOut(aDefaultOut); } \
  NS_IMETHOD SetDefaultOut(PRBool aDefaultOut) { return _to SetDefaultOut(aDefaultOut); } \
  NS_IMETHOD GetIsHotPlug(PRBool *aIsHotPlug) { return _to GetIsHotPlug(aIsHotPlug); } \
  NS_IMETHOD SetIsHotPlug(PRBool aIsHotPlug) { return _to SetIsHotPlug(aIsHotPlug); } \
  NS_IMETHOD GetState(AudioDeviceState_T *aState) { return _to GetState(aState); } \
  NS_IMETHOD SetState(AudioDeviceState_T aState) { return _to SetState(aState); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IHostAudioDevice(PRUint32 *aInternalAndReservedAttribute1IHostAudioDevice) { return _to GetInternalAndReservedAttribute1IHostAudioDevice(aInternalAndReservedAttribute1IHostAudioDevice); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IHostAudioDevice(PRUint32 *aInternalAndReservedAttribute2IHostAudioDevice) { return _to GetInternalAndReservedAttribute2IHostAudioDevice(aInternalAndReservedAttribute2IHostAudioDevice); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IHostAudioDevice(PRUint32 *aInternalAndReservedAttribute3IHostAudioDevice) { return _to GetInternalAndReservedAttribute3IHostAudioDevice(aInternalAndReservedAttribute3IHostAudioDevice); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IHostAudioDevice(PRUint32 *aInternalAndReservedAttribute4IHostAudioDevice) { return _to GetInternalAndReservedAttribute4IHostAudioDevice(aInternalAndReservedAttribute4IHostAudioDevice); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IHostAudioDevice(PRUint32 *aInternalAndReservedAttribute5IHostAudioDevice) { return _to GetInternalAndReservedAttribute5IHostAudioDevice(aInternalAndReservedAttribute5IHostAudioDevice); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IHostAudioDevice(PRUint32 *aInternalAndReservedAttribute6IHostAudioDevice) { return _to GetInternalAndReservedAttribute6IHostAudioDevice(aInternalAndReservedAttribute6IHostAudioDevice); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IHostAudioDevice(PRUint32 *aInternalAndReservedAttribute7IHostAudioDevice) { return _to GetInternalAndReservedAttribute7IHostAudioDevice(aInternalAndReservedAttribute7IHostAudioDevice); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IHostAudioDevice(PRUint32 *aInternalAndReservedAttribute8IHostAudioDevice) { return _to GetInternalAndReservedAttribute8IHostAudioDevice(aInternalAndReservedAttribute8IHostAudioDevice); } \
  NS_IMETHOD GetProperty(const PRUnichar *key, PRUnichar **value) { return _to GetProperty(key, value); } \
  NS_IMETHOD InternalAndReservedMethod1IHostAudioDevice(void) { return _to InternalAndReservedMethod1IHostAudioDevice(); } \
  NS_IMETHOD InternalAndReservedMethod2IHostAudioDevice(void) { return _to InternalAndReservedMethod2IHostAudioDevice(); } \
  NS_IMETHOD InternalAndReservedMethod3IHostAudioDevice(void) { return _to InternalAndReservedMethod3IHostAudioDevice(); } \
  NS_IMETHOD InternalAndReservedMethod4IHostAudioDevice(void) { return _to InternalAndReservedMethod4IHostAudioDevice(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IHOSTAUDIODEVICE(_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 GetType(AudioDeviceType_T *aType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetType(aType); } \
  NS_IMETHOD SetType(AudioDeviceType_T aType) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetType(aType); } \
  NS_IMETHOD GetUsage(AudioDirection_T *aUsage) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUsage(aUsage); } \
  NS_IMETHOD SetUsage(AudioDirection_T aUsage) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUsage(aUsage); } \
  NS_IMETHOD GetDefaultIn(PRBool *aDefaultIn) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDefaultIn(aDefaultIn); } \
  NS_IMETHOD SetDefaultIn(PRBool aDefaultIn) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDefaultIn(aDefaultIn); } \
  NS_IMETHOD GetDefaultOut(PRBool *aDefaultOut) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDefaultOut(aDefaultOut); } \
  NS_IMETHOD SetDefaultOut(PRBool aDefaultOut) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDefaultOut(aDefaultOut); } \
  NS_IMETHOD GetIsHotPlug(PRBool *aIsHotPlug) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsHotPlug(aIsHotPlug); } \
  NS_IMETHOD SetIsHotPlug(PRBool aIsHotPlug) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIsHotPlug(aIsHotPlug); } \
  NS_IMETHOD GetState(AudioDeviceState_T *aState) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetState(aState); } \
  NS_IMETHOD SetState(AudioDeviceState_T aState) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetState(aState); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IHostAudioDevice(PRUint32 *aInternalAndReservedAttribute1IHostAudioDevice) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IHostAudioDevice(aInternalAndReservedAttribute1IHostAudioDevice); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IHostAudioDevice(PRUint32 *aInternalAndReservedAttribute2IHostAudioDevice) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IHostAudioDevice(aInternalAndReservedAttribute2IHostAudioDevice); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IHostAudioDevice(PRUint32 *aInternalAndReservedAttribute3IHostAudioDevice) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IHostAudioDevice(aInternalAndReservedAttribute3IHostAudioDevice); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IHostAudioDevice(PRUint32 *aInternalAndReservedAttribute4IHostAudioDevice) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IHostAudioDevice(aInternalAndReservedAttribute4IHostAudioDevice); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IHostAudioDevice(PRUint32 *aInternalAndReservedAttribute5IHostAudioDevice) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IHostAudioDevice(aInternalAndReservedAttribute5IHostAudioDevice); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IHostAudioDevice(PRUint32 *aInternalAndReservedAttribute6IHostAudioDevice) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IHostAudioDevice(aInternalAndReservedAttribute6IHostAudioDevice); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IHostAudioDevice(PRUint32 *aInternalAndReservedAttribute7IHostAudioDevice) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IHostAudioDevice(aInternalAndReservedAttribute7IHostAudioDevice); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IHostAudioDevice(PRUint32 *aInternalAndReservedAttribute8IHostAudioDevice) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IHostAudioDevice(aInternalAndReservedAttribute8IHostAudioDevice); } \
  NS_IMETHOD GetProperty(const PRUnichar *key, PRUnichar **value) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProperty(key, value); } \
  NS_IMETHOD InternalAndReservedMethod1IHostAudioDevice(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IHostAudioDevice(); } \
  NS_IMETHOD InternalAndReservedMethod2IHostAudioDevice(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IHostAudioDevice(); } \
  NS_IMETHOD InternalAndReservedMethod3IHostAudioDevice(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IHostAudioDevice(); } \
  NS_IMETHOD InternalAndReservedMethod4IHostAudioDevice(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IHostAudioDevice(); } 

#define COM_FORWARD_IHostAudioDevice_GETTER_Id_TO(smth) NS_IMETHOD GetId (PRUnichar * * aId) { return smth GetId (aId); }
#define COM_FORWARD_IHostAudioDevice_GETTER_Id_TO_OBJ(obj) COM_FORWARD_IHostAudioDevice_GETTER_Id_TO ((obj)->)
#define COM_FORWARD_IHostAudioDevice_GETTER_Id_TO_BASE(base) COM_FORWARD_IHostAudioDevice_GETTER_Id_TO (base::)
#define COM_FORWARD_IHostAudioDevice_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_IHostAudioDevice_GETTER_Name_TO_OBJ(obj) COM_FORWARD_IHostAudioDevice_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_IHostAudioDevice_GETTER_Name_TO_BASE(base) COM_FORWARD_IHostAudioDevice_GETTER_Name_TO (base::)
#define COM_FORWARD_IHostAudioDevice_SETTER_Name_TO(smth) NS_IMETHOD SetName (const PRUnichar * aName) { return smth SetName (aName); }
#define COM_FORWARD_IHostAudioDevice_SETTER_Name_TO_OBJ(obj) COM_FORWARD_IHostAudioDevice_SETTER_Name_TO ((obj)->)
#define COM_FORWARD_IHostAudioDevice_SETTER_Name_TO_BASE(base) COM_FORWARD_IHostAudioDevice_SETTER_Name_TO (base::)
#define COM_FORWARD_IHostAudioDevice_GETTER_Type_TO(smth) NS_IMETHOD GetType (PRUint32 * aType) { return smth GetType (aType); }
#define COM_FORWARD_IHostAudioDevice_GETTER_Type_TO_OBJ(obj) COM_FORWARD_IHostAudioDevice_GETTER_Type_TO ((obj)->)
#define COM_FORWARD_IHostAudioDevice_GETTER_Type_TO_BASE(base) COM_FORWARD_IHostAudioDevice_GETTER_Type_TO (base::)
#define COM_FORWARD_IHostAudioDevice_SETTER_Type_TO(smth) NS_IMETHOD SetType (PRUint32 aType) { return smth SetType (aType); }
#define COM_FORWARD_IHostAudioDevice_SETTER_Type_TO_OBJ(obj) COM_FORWARD_IHostAudioDevice_SETTER_Type_TO ((obj)->)
#define COM_FORWARD_IHostAudioDevice_SETTER_Type_TO_BASE(base) COM_FORWARD_IHostAudioDevice_SETTER_Type_TO (base::)
#define COM_FORWARD_IHostAudioDevice_GETTER_Usage_TO(smth) NS_IMETHOD GetUsage (PRUint32 * aUsage) { return smth GetUsage (aUsage); }
#define COM_FORWARD_IHostAudioDevice_GETTER_Usage_TO_OBJ(obj) COM_FORWARD_IHostAudioDevice_GETTER_Usage_TO ((obj)->)
#define COM_FORWARD_IHostAudioDevice_GETTER_Usage_TO_BASE(base) COM_FORWARD_IHostAudioDevice_GETTER_Usage_TO (base::)
#define COM_FORWARD_IHostAudioDevice_SETTER_Usage_TO(smth) NS_IMETHOD SetUsage (PRUint32 aUsage) { return smth SetUsage (aUsage); }
#define COM_FORWARD_IHostAudioDevice_SETTER_Usage_TO_OBJ(obj) COM_FORWARD_IHostAudioDevice_SETTER_Usage_TO ((obj)->)
#define COM_FORWARD_IHostAudioDevice_SETTER_Usage_TO_BASE(base) COM_FORWARD_IHostAudioDevice_SETTER_Usage_TO (base::)
#define COM_FORWARD_IHostAudioDevice_GETTER_DefaultIn_TO(smth) NS_IMETHOD GetDefaultIn (PRBool * aDefaultIn) { return smth GetDefaultIn (aDefaultIn); }
#define COM_FORWARD_IHostAudioDevice_GETTER_DefaultIn_TO_OBJ(obj) COM_FORWARD_IHostAudioDevice_GETTER_DefaultIn_TO ((obj)->)
#define COM_FORWARD_IHostAudioDevice_GETTER_DefaultIn_TO_BASE(base) COM_FORWARD_IHostAudioDevice_GETTER_DefaultIn_TO (base::)
#define COM_FORWARD_IHostAudioDevice_SETTER_DefaultIn_TO(smth) NS_IMETHOD SetDefaultIn (PRBool aDefaultIn) { return smth SetDefaultIn (aDefaultIn); }
#define COM_FORWARD_IHostAudioDevice_SETTER_DefaultIn_TO_OBJ(obj) COM_FORWARD_IHostAudioDevice_SETTER_DefaultIn_TO ((obj)->)
#define COM_FORWARD_IHostAudioDevice_SETTER_DefaultIn_TO_BASE(base) COM_FORWARD_IHostAudioDevice_SETTER_DefaultIn_TO (base::)
#define COM_FORWARD_IHostAudioDevice_GETTER_DefaultOut_TO(smth) NS_IMETHOD GetDefaultOut (PRBool * aDefaultOut) { return smth GetDefaultOut (aDefaultOut); }
#define COM_FORWARD_IHostAudioDevice_GETTER_DefaultOut_TO_OBJ(obj) COM_FORWARD_IHostAudioDevice_GETTER_DefaultOut_TO ((obj)->)
#define COM_FORWARD_IHostAudioDevice_GETTER_DefaultOut_TO_BASE(base) COM_FORWARD_IHostAudioDevice_GETTER_DefaultOut_TO (base::)
#define COM_FORWARD_IHostAudioDevice_SETTER_DefaultOut_TO(smth) NS_IMETHOD SetDefaultOut (PRBool aDefaultOut) { return smth SetDefaultOut (aDefaultOut); }
#define COM_FORWARD_IHostAudioDevice_SETTER_DefaultOut_TO_OBJ(obj) COM_FORWARD_IHostAudioDevice_SETTER_DefaultOut_TO ((obj)->)
#define COM_FORWARD_IHostAudioDevice_SETTER_DefaultOut_TO_BASE(base) COM_FORWARD_IHostAudioDevice_SETTER_DefaultOut_TO (base::)
#define COM_FORWARD_IHostAudioDevice_GETTER_IsHotPlug_TO(smth) NS_IMETHOD GetIsHotPlug (PRBool * aIsHotPlug) { return smth GetIsHotPlug (aIsHotPlug); }
#define COM_FORWARD_IHostAudioDevice_GETTER_IsHotPlug_TO_OBJ(obj) COM_FORWARD_IHostAudioDevice_GETTER_IsHotPlug_TO ((obj)->)
#define COM_FORWARD_IHostAudioDevice_GETTER_IsHotPlug_TO_BASE(base) COM_FORWARD_IHostAudioDevice_GETTER_IsHotPlug_TO (base::)
#define COM_FORWARD_IHostAudioDevice_SETTER_IsHotPlug_TO(smth) NS_IMETHOD SetIsHotPlug (PRBool aIsHotPlug) { return smth SetIsHotPlug (aIsHotPlug); }
#define COM_FORWARD_IHostAudioDevice_SETTER_IsHotPlug_TO_OBJ(obj) COM_FORWARD_IHostAudioDevice_SETTER_IsHotPlug_TO ((obj)->)
#define COM_FORWARD_IHostAudioDevice_SETTER_IsHotPlug_TO_BASE(base) COM_FORWARD_IHostAudioDevice_SETTER_IsHotPlug_TO (base::)
#define COM_FORWARD_IHostAudioDevice_GETTER_State_TO(smth) NS_IMETHOD GetState (PRUint32 * aState) { return smth GetState (aState); }
#define COM_FORWARD_IHostAudioDevice_GETTER_State_TO_OBJ(obj) COM_FORWARD_IHostAudioDevice_GETTER_State_TO ((obj)->)
#define COM_FORWARD_IHostAudioDevice_GETTER_State_TO_BASE(base) COM_FORWARD_IHostAudioDevice_GETTER_State_TO (base::)
#define COM_FORWARD_IHostAudioDevice_SETTER_State_TO(smth) NS_IMETHOD SetState (PRUint32 aState) { return smth SetState (aState); }
#define COM_FORWARD_IHostAudioDevice_SETTER_State_TO_OBJ(obj) COM_FORWARD_IHostAudioDevice_SETTER_State_TO ((obj)->)
#define COM_FORWARD_IHostAudioDevice_SETTER_State_TO_BASE(base) COM_FORWARD_IHostAudioDevice_SETTER_State_TO (base::)
#define COM_FORWARD_IHostAudioDevice_GetProperty_TO(smth) NS_IMETHOD GetProperty (PRUnichar * aKey, PRUnichar * * aValue) { return smth GetProperty (aKey, aValue); }
#define COM_FORWARD_IHostAudioDevice_GetProperty_TO_OBJ(obj) COM_FORWARD_IHostAudioDevice_GetProperty_TO ((obj)->)
#define COM_FORWARD_IHostAudioDevice_GetProperty_TO_BASE(base) COM_FORWARD_IHostAudioDevice_GetProperty_TO (base::)
#define COM_FORWARD_IHostAudioDevice_TO(smth) NS_FORWARD_IHOSTAUDIODEVICE (smth)
#define COM_FORWARD_IHostAudioDevice_TO_OBJ(obj) COM_FORWARD_IHostAudioDevice_TO ((obj)->)
#define COM_FORWARD_IHostAudioDevice_TO_BASE(base) COM_FORWARD_IHostAudioDevice_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IHostAudioDevice;

/* starting interface:    IAudioSettings */
#define IAUDIOSETTINGS_IID_STR "52f40b16-520e-473f-9428-3e69b0d915c3"

#define IAUDIOSETTINGS_IID \
  {0x52f40b16, 0x520e, 0x473f, \
    { 0x94, 0x28, 0x3e, 0x69, 0xb0, 0xd9, 0x15, 0xc3 }}

class NS_NO_VTABLE IAudioSettings : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IAUDIOSETTINGS_IID)

  /* readonly attribute IAudioAdapter adapter; */
  NS_IMETHOD GetAdapter(IAudioAdapter * *aAdapter) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IAudioSettings; */
  NS_IMETHOD GetInternalAndReservedAttribute1IAudioSettings(PRUint32 *aInternalAndReservedAttribute1IAudioSettings) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IAudioSettings; */
  NS_IMETHOD GetInternalAndReservedAttribute2IAudioSettings(PRUint32 *aInternalAndReservedAttribute2IAudioSettings) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IAudioSettings; */
  NS_IMETHOD GetInternalAndReservedAttribute3IAudioSettings(PRUint32 *aInternalAndReservedAttribute3IAudioSettings) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IAudioSettings; */
  NS_IMETHOD GetInternalAndReservedAttribute4IAudioSettings(PRUint32 *aInternalAndReservedAttribute4IAudioSettings) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IAudioSettings; */
  NS_IMETHOD GetInternalAndReservedAttribute5IAudioSettings(PRUint32 *aInternalAndReservedAttribute5IAudioSettings) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IAudioSettings; */
  NS_IMETHOD GetInternalAndReservedAttribute6IAudioSettings(PRUint32 *aInternalAndReservedAttribute6IAudioSettings) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IAudioSettings; */
  NS_IMETHOD GetInternalAndReservedAttribute7IAudioSettings(PRUint32 *aInternalAndReservedAttribute7IAudioSettings) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IAudioSettings; */
  NS_IMETHOD GetInternalAndReservedAttribute8IAudioSettings(PRUint32 *aInternalAndReservedAttribute8IAudioSettings) = 0;

  /* void getHostAudioDevice (in AudioDirection_T usage, [retval] out IHostAudioDevice device); */
  NS_IMETHOD GetHostAudioDevice(AudioDirection_T usage, IHostAudioDevice * *device) = 0;

  /* void setHostAudioDevice (in IHostAudioDevice device, in AudioDirection_T usage); */
  NS_IMETHOD SetHostAudioDevice(IHostAudioDevice * device, AudioDirection_T usage) = 0;

  /* void InternalAndReservedMethod1IAudioSettings (); */
  NS_IMETHOD InternalAndReservedMethod1IAudioSettings(void) = 0;

  /* void InternalAndReservedMethod2IAudioSettings (); */
  NS_IMETHOD InternalAndReservedMethod2IAudioSettings(void) = 0;

  /* void InternalAndReservedMethod3IAudioSettings (); */
  NS_IMETHOD InternalAndReservedMethod3IAudioSettings(void) = 0;

  /* void InternalAndReservedMethod4IAudioSettings (); */
  NS_IMETHOD InternalAndReservedMethod4IAudioSettings(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IAUDIOSETTINGS \
  NS_IMETHOD GetAdapter(IAudioAdapter * *aAdapter) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IAudioSettings(PRUint32 *aInternalAndReservedAttribute1IAudioSettings) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IAudioSettings(PRUint32 *aInternalAndReservedAttribute2IAudioSettings) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IAudioSettings(PRUint32 *aInternalAndReservedAttribute3IAudioSettings) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IAudioSettings(PRUint32 *aInternalAndReservedAttribute4IAudioSettings) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IAudioSettings(PRUint32 *aInternalAndReservedAttribute5IAudioSettings) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IAudioSettings(PRUint32 *aInternalAndReservedAttribute6IAudioSettings) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IAudioSettings(PRUint32 *aInternalAndReservedAttribute7IAudioSettings) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IAudioSettings(PRUint32 *aInternalAndReservedAttribute8IAudioSettings) NS_OVERRIDE; \
  NS_IMETHOD GetHostAudioDevice(AudioDirection_T usage, IHostAudioDevice * *device) NS_OVERRIDE; \
  NS_IMETHOD SetHostAudioDevice(IHostAudioDevice * device, AudioDirection_T usage) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IAudioSettings(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IAudioSettings(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IAudioSettings(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IAudioSettings(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IAUDIOSETTINGS(_to) \
  NS_IMETHOD GetAdapter(IAudioAdapter * *aAdapter) { return _to GetAdapter(aAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IAudioSettings(PRUint32 *aInternalAndReservedAttribute1IAudioSettings) { return _to GetInternalAndReservedAttribute1IAudioSettings(aInternalAndReservedAttribute1IAudioSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IAudioSettings(PRUint32 *aInternalAndReservedAttribute2IAudioSettings) { return _to GetInternalAndReservedAttribute2IAudioSettings(aInternalAndReservedAttribute2IAudioSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IAudioSettings(PRUint32 *aInternalAndReservedAttribute3IAudioSettings) { return _to GetInternalAndReservedAttribute3IAudioSettings(aInternalAndReservedAttribute3IAudioSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IAudioSettings(PRUint32 *aInternalAndReservedAttribute4IAudioSettings) { return _to GetInternalAndReservedAttribute4IAudioSettings(aInternalAndReservedAttribute4IAudioSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IAudioSettings(PRUint32 *aInternalAndReservedAttribute5IAudioSettings) { return _to GetInternalAndReservedAttribute5IAudioSettings(aInternalAndReservedAttribute5IAudioSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IAudioSettings(PRUint32 *aInternalAndReservedAttribute6IAudioSettings) { return _to GetInternalAndReservedAttribute6IAudioSettings(aInternalAndReservedAttribute6IAudioSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IAudioSettings(PRUint32 *aInternalAndReservedAttribute7IAudioSettings) { return _to GetInternalAndReservedAttribute7IAudioSettings(aInternalAndReservedAttribute7IAudioSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IAudioSettings(PRUint32 *aInternalAndReservedAttribute8IAudioSettings) { return _to GetInternalAndReservedAttribute8IAudioSettings(aInternalAndReservedAttribute8IAudioSettings); } \
  NS_IMETHOD GetHostAudioDevice(AudioDirection_T usage, IHostAudioDevice * *device) { return _to GetHostAudioDevice(usage, device); } \
  NS_IMETHOD SetHostAudioDevice(IHostAudioDevice * device, AudioDirection_T usage) { return _to SetHostAudioDevice(device, usage); } \
  NS_IMETHOD InternalAndReservedMethod1IAudioSettings(void) { return _to InternalAndReservedMethod1IAudioSettings(); } \
  NS_IMETHOD InternalAndReservedMethod2IAudioSettings(void) { return _to InternalAndReservedMethod2IAudioSettings(); } \
  NS_IMETHOD InternalAndReservedMethod3IAudioSettings(void) { return _to InternalAndReservedMethod3IAudioSettings(); } \
  NS_IMETHOD InternalAndReservedMethod4IAudioSettings(void) { return _to InternalAndReservedMethod4IAudioSettings(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IAUDIOSETTINGS(_to) \
  NS_IMETHOD GetAdapter(IAudioAdapter * *aAdapter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAdapter(aAdapter); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IAudioSettings(PRUint32 *aInternalAndReservedAttribute1IAudioSettings) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IAudioSettings(aInternalAndReservedAttribute1IAudioSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IAudioSettings(PRUint32 *aInternalAndReservedAttribute2IAudioSettings) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IAudioSettings(aInternalAndReservedAttribute2IAudioSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IAudioSettings(PRUint32 *aInternalAndReservedAttribute3IAudioSettings) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IAudioSettings(aInternalAndReservedAttribute3IAudioSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IAudioSettings(PRUint32 *aInternalAndReservedAttribute4IAudioSettings) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IAudioSettings(aInternalAndReservedAttribute4IAudioSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IAudioSettings(PRUint32 *aInternalAndReservedAttribute5IAudioSettings) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IAudioSettings(aInternalAndReservedAttribute5IAudioSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IAudioSettings(PRUint32 *aInternalAndReservedAttribute6IAudioSettings) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IAudioSettings(aInternalAndReservedAttribute6IAudioSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IAudioSettings(PRUint32 *aInternalAndReservedAttribute7IAudioSettings) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IAudioSettings(aInternalAndReservedAttribute7IAudioSettings); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IAudioSettings(PRUint32 *aInternalAndReservedAttribute8IAudioSettings) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IAudioSettings(aInternalAndReservedAttribute8IAudioSettings); } \
  NS_IMETHOD GetHostAudioDevice(AudioDirection_T usage, IHostAudioDevice * *device) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHostAudioDevice(usage, device); } \
  NS_IMETHOD SetHostAudioDevice(IHostAudioDevice * device, AudioDirection_T usage) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetHostAudioDevice(device, usage); } \
  NS_IMETHOD InternalAndReservedMethod1IAudioSettings(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IAudioSettings(); } \
  NS_IMETHOD InternalAndReservedMethod2IAudioSettings(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IAudioSettings(); } \
  NS_IMETHOD InternalAndReservedMethod3IAudioSettings(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IAudioSettings(); } \
  NS_IMETHOD InternalAndReservedMethod4IAudioSettings(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IAudioSettings(); } 

#define COM_FORWARD_IAudioSettings_GETTER_Adapter_TO(smth) NS_IMETHOD GetAdapter (IAudioAdapter * * aAdapter) { return smth GetAdapter (aAdapter); }
#define COM_FORWARD_IAudioSettings_GETTER_Adapter_TO_OBJ(obj) COM_FORWARD_IAudioSettings_GETTER_Adapter_TO ((obj)->)
#define COM_FORWARD_IAudioSettings_GETTER_Adapter_TO_BASE(base) COM_FORWARD_IAudioSettings_GETTER_Adapter_TO (base::)
#define COM_FORWARD_IAudioSettings_GetHostAudioDevice_TO(smth) NS_IMETHOD GetHostAudioDevice (PRUint32 aUsage, IHostAudioDevice * * aDevice) { return smth GetHostAudioDevice (aUsage, aDevice); }
#define COM_FORWARD_IAudioSettings_GetHostAudioDevice_TO_OBJ(obj) COM_FORWARD_IAudioSettings_GetHostAudioDevice_TO ((obj)->)
#define COM_FORWARD_IAudioSettings_GetHostAudioDevice_TO_BASE(base) COM_FORWARD_IAudioSettings_GetHostAudioDevice_TO (base::)
#define COM_FORWARD_IAudioSettings_SetHostAudioDevice_TO(smth) NS_IMETHOD SetHostAudioDevice (IHostAudioDevice * aDevice, PRUint32 aUsage) { return smth SetHostAudioDevice (aDevice, aUsage); }
#define COM_FORWARD_IAudioSettings_SetHostAudioDevice_TO_OBJ(obj) COM_FORWARD_IAudioSettings_SetHostAudioDevice_TO ((obj)->)
#define COM_FORWARD_IAudioSettings_SetHostAudioDevice_TO_BASE(base) COM_FORWARD_IAudioSettings_SetHostAudioDevice_TO (base::)
#define COM_FORWARD_IAudioSettings_TO(smth) NS_FORWARD_IAUDIOSETTINGS (smth)
#define COM_FORWARD_IAudioSettings_TO_OBJ(obj) COM_FORWARD_IAudioSettings_TO ((obj)->)
#define COM_FORWARD_IAudioSettings_TO_BASE(base) COM_FORWARD_IAudioSettings_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IAudioSettings;

/* starting interface:    IVRDEServer */
#define IVRDESERVER_IID_STR "08e25756-08a2-41af-a05f-d7c661abaebe"

#define IVRDESERVER_IID \
  {0x08e25756, 0x08a2, 0x41af, \
    { 0xa0, 0x5f, 0xd7, 0xc6, 0x61, 0xab, 0xae, 0xbe }}

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 AuthType_T authType; */
  NS_IMETHOD GetAuthType(AuthType_T *aAuthType) = 0;
  NS_IMETHOD SetAuthType(AuthType_T 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;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IVRDEServer; */
  NS_IMETHOD GetInternalAndReservedAttribute3IVRDEServer(PRUint32 *aInternalAndReservedAttribute3IVRDEServer) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IVRDEServer; */
  NS_IMETHOD GetInternalAndReservedAttribute4IVRDEServer(PRUint32 *aInternalAndReservedAttribute4IVRDEServer) = 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;

  /* void InternalAndReservedMethod2IVRDEServer (); */
  NS_IMETHOD InternalAndReservedMethod2IVRDEServer(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IVRDESERVER \
  NS_IMETHOD GetEnabled(PRBool *aEnabled) NS_OVERRIDE; \
  NS_IMETHOD SetEnabled(PRBool aEnabled) NS_OVERRIDE; \
  NS_IMETHOD GetAuthType(AuthType_T *aAuthType) NS_OVERRIDE; \
  NS_IMETHOD SetAuthType(AuthType_T aAuthType) NS_OVERRIDE; \
  NS_IMETHOD GetAuthTimeout(PRUint32 *aAuthTimeout) NS_OVERRIDE; \
  NS_IMETHOD SetAuthTimeout(PRUint32 aAuthTimeout) NS_OVERRIDE; \
  NS_IMETHOD GetAllowMultiConnection(PRBool *aAllowMultiConnection) NS_OVERRIDE; \
  NS_IMETHOD SetAllowMultiConnection(PRBool aAllowMultiConnection) NS_OVERRIDE; \
  NS_IMETHOD GetReuseSingleConnection(PRBool *aReuseSingleConnection) NS_OVERRIDE; \
  NS_IMETHOD SetReuseSingleConnection(PRBool aReuseSingleConnection) NS_OVERRIDE; \
  NS_IMETHOD GetVRDEExtPack(PRUnichar **aVRDEExtPack) NS_OVERRIDE; \
  NS_IMETHOD SetVRDEExtPack(const PRUnichar *aVRDEExtPack) NS_OVERRIDE; \
  NS_IMETHOD GetAuthLibrary(PRUnichar **aAuthLibrary) NS_OVERRIDE; \
  NS_IMETHOD SetAuthLibrary(const PRUnichar *aAuthLibrary) NS_OVERRIDE; \
  NS_IMETHOD GetVRDEProperties(PRUint32 *VRDEPropertiesSize, PRUnichar ***VRDEProperties) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IVRDEServer(PRUint32 *aInternalAndReservedAttribute1IVRDEServer) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IVRDEServer(PRUint32 *aInternalAndReservedAttribute2IVRDEServer) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IVRDEServer(PRUint32 *aInternalAndReservedAttribute3IVRDEServer) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IVRDEServer(PRUint32 *aInternalAndReservedAttribute4IVRDEServer) NS_OVERRIDE; \
  NS_IMETHOD SetVRDEProperty(const PRUnichar *key, const PRUnichar *value) NS_OVERRIDE; \
  NS_IMETHOD GetVRDEProperty(const PRUnichar *key, PRUnichar **value) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IVRDEServer(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IVRDEServer(void) NS_OVERRIDE; 

/* 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(AuthType_T *aAuthType) { return _to GetAuthType(aAuthType); } \
  NS_IMETHOD SetAuthType(AuthType_T 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 GetInternalAndReservedAttribute3IVRDEServer(PRUint32 *aInternalAndReservedAttribute3IVRDEServer) { return _to GetInternalAndReservedAttribute3IVRDEServer(aInternalAndReservedAttribute3IVRDEServer); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IVRDEServer(PRUint32 *aInternalAndReservedAttribute4IVRDEServer) { return _to GetInternalAndReservedAttribute4IVRDEServer(aInternalAndReservedAttribute4IVRDEServer); } \
  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(); } \
  NS_IMETHOD InternalAndReservedMethod2IVRDEServer(void) { return _to InternalAndReservedMethod2IVRDEServer(); } 

/* 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(AuthType_T *aAuthType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAuthType(aAuthType); } \
  NS_IMETHOD SetAuthType(AuthType_T 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 GetInternalAndReservedAttribute3IVRDEServer(PRUint32 *aInternalAndReservedAttribute3IVRDEServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IVRDEServer(aInternalAndReservedAttribute3IVRDEServer); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IVRDEServer(PRUint32 *aInternalAndReservedAttribute4IVRDEServer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IVRDEServer(aInternalAndReservedAttribute4IVRDEServer); } \
  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(); } \
  NS_IMETHOD InternalAndReservedMethod2IVRDEServer(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IVRDEServer(); } 

#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 "0b108b8c-62e0-4e06-9dfa-2f1a2ad70774"

#define ISHAREDFOLDER_IID \
  {0x0b108b8c, 0x62e0, 0x4e06, \
    { 0x9d, 0xfa, 0x2f, 0x1a, 0x2a, 0xd7, 0x07, 0x74 }}

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;

  /* attribute boolean writable; */
  NS_IMETHOD GetWritable(PRBool *aWritable) = 0;
  NS_IMETHOD SetWritable(PRBool aWritable) = 0;

  /* attribute boolean autoMount; */
  NS_IMETHOD GetAutoMount(PRBool *aAutoMount) = 0;
  NS_IMETHOD SetAutoMount(PRBool aAutoMount) = 0;

  /* attribute wstring autoMountPoint; */
  NS_IMETHOD GetAutoMountPoint(PRUnichar **aAutoMountPoint) = 0;
  NS_IMETHOD SetAutoMountPoint(const PRUnichar *aAutoMountPoint) = 0;

  /* readonly attribute wstring lastAccessError; */
  NS_IMETHOD GetLastAccessError(PRUnichar **aLastAccessError) = 0;

  /* attribute SymlinkPolicy_T symlinkPolicy; */
  NS_IMETHOD GetSymlinkPolicy(SymlinkPolicy_T *aSymlinkPolicy) = 0;
  NS_IMETHOD SetSymlinkPolicy(SymlinkPolicy_T aSymlinkPolicy) = 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;

  /* readonly attribute unsigned long InternalAndReservedAttribute5ISharedFolder; */
  NS_IMETHOD GetInternalAndReservedAttribute5ISharedFolder(PRUint32 *aInternalAndReservedAttribute5ISharedFolder) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6ISharedFolder; */
  NS_IMETHOD GetInternalAndReservedAttribute6ISharedFolder(PRUint32 *aInternalAndReservedAttribute6ISharedFolder) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7ISharedFolder; */
  NS_IMETHOD GetInternalAndReservedAttribute7ISharedFolder(PRUint32 *aInternalAndReservedAttribute7ISharedFolder) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8ISharedFolder; */
  NS_IMETHOD GetInternalAndReservedAttribute8ISharedFolder(PRUint32 *aInternalAndReservedAttribute8ISharedFolder) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ISHAREDFOLDER \
  NS_IMETHOD GetName(PRUnichar **aName) NS_OVERRIDE; \
  NS_IMETHOD GetHostPath(PRUnichar **aHostPath) NS_OVERRIDE; \
  NS_IMETHOD GetAccessible(PRBool *aAccessible) NS_OVERRIDE; \
  NS_IMETHOD GetWritable(PRBool *aWritable) NS_OVERRIDE; \
  NS_IMETHOD SetWritable(PRBool aWritable) NS_OVERRIDE; \
  NS_IMETHOD GetAutoMount(PRBool *aAutoMount) NS_OVERRIDE; \
  NS_IMETHOD SetAutoMount(PRBool aAutoMount) NS_OVERRIDE; \
  NS_IMETHOD GetAutoMountPoint(PRUnichar **aAutoMountPoint) NS_OVERRIDE; \
  NS_IMETHOD SetAutoMountPoint(const PRUnichar *aAutoMountPoint) NS_OVERRIDE; \
  NS_IMETHOD GetLastAccessError(PRUnichar **aLastAccessError) NS_OVERRIDE; \
  NS_IMETHOD GetSymlinkPolicy(SymlinkPolicy_T *aSymlinkPolicy) NS_OVERRIDE; \
  NS_IMETHOD SetSymlinkPolicy(SymlinkPolicy_T aSymlinkPolicy) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1ISharedFolder(PRUint32 *aInternalAndReservedAttribute1ISharedFolder) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2ISharedFolder(PRUint32 *aInternalAndReservedAttribute2ISharedFolder) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3ISharedFolder(PRUint32 *aInternalAndReservedAttribute3ISharedFolder) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4ISharedFolder(PRUint32 *aInternalAndReservedAttribute4ISharedFolder) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5ISharedFolder(PRUint32 *aInternalAndReservedAttribute5ISharedFolder) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6ISharedFolder(PRUint32 *aInternalAndReservedAttribute6ISharedFolder) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7ISharedFolder(PRUint32 *aInternalAndReservedAttribute7ISharedFolder) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8ISharedFolder(PRUint32 *aInternalAndReservedAttribute8ISharedFolder) NS_OVERRIDE; 

/* 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 SetWritable(PRBool aWritable) { return _to SetWritable(aWritable); } \
  NS_IMETHOD GetAutoMount(PRBool *aAutoMount) { return _to GetAutoMount(aAutoMount); } \
  NS_IMETHOD SetAutoMount(PRBool aAutoMount) { return _to SetAutoMount(aAutoMount); } \
  NS_IMETHOD GetAutoMountPoint(PRUnichar **aAutoMountPoint) { return _to GetAutoMountPoint(aAutoMountPoint); } \
  NS_IMETHOD SetAutoMountPoint(const PRUnichar *aAutoMountPoint) { return _to SetAutoMountPoint(aAutoMountPoint); } \
  NS_IMETHOD GetLastAccessError(PRUnichar **aLastAccessError) { return _to GetLastAccessError(aLastAccessError); } \
  NS_IMETHOD GetSymlinkPolicy(SymlinkPolicy_T *aSymlinkPolicy) { return _to GetSymlinkPolicy(aSymlinkPolicy); } \
  NS_IMETHOD SetSymlinkPolicy(SymlinkPolicy_T aSymlinkPolicy) { return _to SetSymlinkPolicy(aSymlinkPolicy); } \
  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); } \
  NS_IMETHOD GetInternalAndReservedAttribute5ISharedFolder(PRUint32 *aInternalAndReservedAttribute5ISharedFolder) { return _to GetInternalAndReservedAttribute5ISharedFolder(aInternalAndReservedAttribute5ISharedFolder); } \
  NS_IMETHOD GetInternalAndReservedAttribute6ISharedFolder(PRUint32 *aInternalAndReservedAttribute6ISharedFolder) { return _to GetInternalAndReservedAttribute6ISharedFolder(aInternalAndReservedAttribute6ISharedFolder); } \
  NS_IMETHOD GetInternalAndReservedAttribute7ISharedFolder(PRUint32 *aInternalAndReservedAttribute7ISharedFolder) { return _to GetInternalAndReservedAttribute7ISharedFolder(aInternalAndReservedAttribute7ISharedFolder); } \
  NS_IMETHOD GetInternalAndReservedAttribute8ISharedFolder(PRUint32 *aInternalAndReservedAttribute8ISharedFolder) { return _to GetInternalAndReservedAttribute8ISharedFolder(aInternalAndReservedAttribute8ISharedFolder); } 

/* 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 SetWritable(PRBool aWritable) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetWritable(aWritable); } \
  NS_IMETHOD GetAutoMount(PRBool *aAutoMount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAutoMount(aAutoMount); } \
  NS_IMETHOD SetAutoMount(PRBool aAutoMount) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAutoMount(aAutoMount); } \
  NS_IMETHOD GetAutoMountPoint(PRUnichar **aAutoMountPoint) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAutoMountPoint(aAutoMountPoint); } \
  NS_IMETHOD SetAutoMountPoint(const PRUnichar *aAutoMountPoint) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAutoMountPoint(aAutoMountPoint); } \
  NS_IMETHOD GetLastAccessError(PRUnichar **aLastAccessError) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLastAccessError(aLastAccessError); } \
  NS_IMETHOD GetSymlinkPolicy(SymlinkPolicy_T *aSymlinkPolicy) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSymlinkPolicy(aSymlinkPolicy); } \
  NS_IMETHOD SetSymlinkPolicy(SymlinkPolicy_T aSymlinkPolicy) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSymlinkPolicy(aSymlinkPolicy); } \
  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); } \
  NS_IMETHOD GetInternalAndReservedAttribute5ISharedFolder(PRUint32 *aInternalAndReservedAttribute5ISharedFolder) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5ISharedFolder(aInternalAndReservedAttribute5ISharedFolder); } \
  NS_IMETHOD GetInternalAndReservedAttribute6ISharedFolder(PRUint32 *aInternalAndReservedAttribute6ISharedFolder) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6ISharedFolder(aInternalAndReservedAttribute6ISharedFolder); } \
  NS_IMETHOD GetInternalAndReservedAttribute7ISharedFolder(PRUint32 *aInternalAndReservedAttribute7ISharedFolder) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7ISharedFolder(aInternalAndReservedAttribute7ISharedFolder); } \
  NS_IMETHOD GetInternalAndReservedAttribute8ISharedFolder(PRUint32 *aInternalAndReservedAttribute8ISharedFolder) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8ISharedFolder(aInternalAndReservedAttribute8ISharedFolder); } 

#define COM_FORWARD_ISharedFolder_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_ISharedFolder_GETTER_Name_TO_OBJ(obj) COM_FORWARD_ISharedFolder_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_ISharedFolder_GETTER_Name_TO_BASE(base) COM_FORWARD_ISharedFolder_GETTER_Name_TO (base::)
#define COM_FORWARD_ISharedFolder_GETTER_HostPath_TO(smth) NS_IMETHOD GetHostPath (PRUnichar * * aHostPath) { return smth GetHostPath (aHostPath); }
#define COM_FORWARD_ISharedFolder_GETTER_HostPath_TO_OBJ(obj) COM_FORWARD_ISharedFolder_GETTER_HostPath_TO ((obj)->)
#define COM_FORWARD_ISharedFolder_GETTER_HostPath_TO_BASE(base) COM_FORWARD_ISharedFolder_GETTER_HostPath_TO (base::)
#define COM_FORWARD_ISharedFolder_GETTER_Accessible_TO(smth) NS_IMETHOD GetAccessible (PRBool * aAccessible) { return smth GetAccessible (aAccessible); }
#define COM_FORWARD_ISharedFolder_GETTER_Accessible_TO_OBJ(obj) COM_FORWARD_ISharedFolder_GETTER_Accessible_TO ((obj)->)
#define COM_FORWARD_ISharedFolder_GETTER_Accessible_TO_BASE(base) COM_FORWARD_ISharedFolder_GETTER_Accessible_TO (base::)
#define COM_FORWARD_ISharedFolder_GETTER_Writable_TO(smth) NS_IMETHOD GetWritable (PRBool * aWritable) { return smth GetWritable (aWritable); }
#define COM_FORWARD_ISharedFolder_GETTER_Writable_TO_OBJ(obj) COM_FORWARD_ISharedFolder_GETTER_Writable_TO ((obj)->)
#define COM_FORWARD_ISharedFolder_GETTER_Writable_TO_BASE(base) COM_FORWARD_ISharedFolder_GETTER_Writable_TO (base::)
#define COM_FORWARD_ISharedFolder_SETTER_Writable_TO(smth) NS_IMETHOD SetWritable (PRBool aWritable) { return smth SetWritable (aWritable); }
#define COM_FORWARD_ISharedFolder_SETTER_Writable_TO_OBJ(obj) COM_FORWARD_ISharedFolder_SETTER_Writable_TO ((obj)->)
#define COM_FORWARD_ISharedFolder_SETTER_Writable_TO_BASE(base) COM_FORWARD_ISharedFolder_SETTER_Writable_TO (base::)
#define COM_FORWARD_ISharedFolder_GETTER_AutoMount_TO(smth) NS_IMETHOD GetAutoMount (PRBool * aAutoMount) { return smth GetAutoMount (aAutoMount); }
#define COM_FORWARD_ISharedFolder_GETTER_AutoMount_TO_OBJ(obj) COM_FORWARD_ISharedFolder_GETTER_AutoMount_TO ((obj)->)
#define COM_FORWARD_ISharedFolder_GETTER_AutoMount_TO_BASE(base) COM_FORWARD_ISharedFolder_GETTER_AutoMount_TO (base::)
#define COM_FORWARD_ISharedFolder_SETTER_AutoMount_TO(smth) NS_IMETHOD SetAutoMount (PRBool aAutoMount) { return smth SetAutoMount (aAutoMount); }
#define COM_FORWARD_ISharedFolder_SETTER_AutoMount_TO_OBJ(obj) COM_FORWARD_ISharedFolder_SETTER_AutoMount_TO ((obj)->)
#define COM_FORWARD_ISharedFolder_SETTER_AutoMount_TO_BASE(base) COM_FORWARD_ISharedFolder_SETTER_AutoMount_TO (base::)
#define COM_FORWARD_ISharedFolder_GETTER_AutoMountPoint_TO(smth) NS_IMETHOD GetAutoMountPoint (PRUnichar * * aAutoMountPoint) { return smth GetAutoMountPoint (aAutoMountPoint); }
#define COM_FORWARD_ISharedFolder_GETTER_AutoMountPoint_TO_OBJ(obj) COM_FORWARD_ISharedFolder_GETTER_AutoMountPoint_TO ((obj)->)
#define COM_FORWARD_ISharedFolder_GETTER_AutoMountPoint_TO_BASE(base) COM_FORWARD_ISharedFolder_GETTER_AutoMountPoint_TO (base::)
#define COM_FORWARD_ISharedFolder_SETTER_AutoMountPoint_TO(smth) NS_IMETHOD SetAutoMountPoint (const PRUnichar * aAutoMountPoint) { return smth SetAutoMountPoint (aAutoMountPoint); }
#define COM_FORWARD_ISharedFolder_SETTER_AutoMountPoint_TO_OBJ(obj) COM_FORWARD_ISharedFolder_SETTER_AutoMountPoint_TO ((obj)->)
#define COM_FORWARD_ISharedFolder_SETTER_AutoMountPoint_TO_BASE(base) COM_FORWARD_ISharedFolder_SETTER_AutoMountPoint_TO (base::)
#define COM_FORWARD_ISharedFolder_GETTER_LastAccessError_TO(smth) NS_IMETHOD GetLastAccessError (PRUnichar * * aLastAccessError) { return smth GetLastAccessError (aLastAccessError); }
#define COM_FORWARD_ISharedFolder_GETTER_LastAccessError_TO_OBJ(obj) COM_FORWARD_ISharedFolder_GETTER_LastAccessError_TO ((obj)->)
#define COM_FORWARD_ISharedFolder_GETTER_LastAccessError_TO_BASE(base) COM_FORWARD_ISharedFolder_GETTER_LastAccessError_TO (base::)
#define COM_FORWARD_ISharedFolder_GETTER_SymlinkPolicy_TO(smth) NS_IMETHOD GetSymlinkPolicy (PRUint32 * aSymlinkPolicy) { return smth GetSymlinkPolicy (aSymlinkPolicy); }
#define COM_FORWARD_ISharedFolder_GETTER_SymlinkPolicy_TO_OBJ(obj) COM_FORWARD_ISharedFolder_GETTER_SymlinkPolicy_TO ((obj)->)
#define COM_FORWARD_ISharedFolder_GETTER_SymlinkPolicy_TO_BASE(base) COM_FORWARD_ISharedFolder_GETTER_SymlinkPolicy_TO (base::)
#define COM_FORWARD_ISharedFolder_SETTER_SymlinkPolicy_TO(smth) NS_IMETHOD SetSymlinkPolicy (PRUint32 aSymlinkPolicy) { return smth SetSymlinkPolicy (aSymlinkPolicy); }
#define COM_FORWARD_ISharedFolder_SETTER_SymlinkPolicy_TO_OBJ(obj) COM_FORWARD_ISharedFolder_SETTER_SymlinkPolicy_TO ((obj)->)
#define COM_FORWARD_ISharedFolder_SETTER_SymlinkPolicy_TO_BASE(base) COM_FORWARD_ISharedFolder_SETTER_SymlinkPolicy_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 "84a4e585-4f4a-45bb-99e8-fc9b226376ad"

#define IINTERNALSESSIONCONTROL_IID \
  {0x84a4e585, 0x4f4a, 0x45bb, \
    { 0x99, 0xe8, 0xfc, 0x9b, 0x22, 0x63, 0x76, 0xad }}

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 MachineState_T nominalState; */
  NS_IMETHOD GetNominalState(MachineState_T *aNominalState) = 0;

  /* void assignRemoteMachine (in IMachine machine, in IConsole console); */
  NS_IMETHOD AssignRemoteMachine(IMachine * machine, IConsole * console) = 0;

  /* void updateMachineState (in MachineState_T machineState); */
  NS_IMETHOD UpdateMachineState(MachineState_T 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 onAudioAdapterChange (in IAudioAdapter audioAdapter); */
  NS_IMETHOD OnAudioAdapterChange(IAudioAdapter * audioAdapter) = 0;

  /* void onHostAudioDeviceChange (in IHostAudioDevice device, in boolean isNew, in AudioDeviceState_T state, in IVirtualBoxErrorInfo errorInfo); */
  NS_IMETHOD OnHostAudioDeviceChange(IHostAudioDevice * device, PRBool isNew, AudioDeviceState_T state, IVirtualBoxErrorInfo * errorInfo) = 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 (in wstring machineId, in wstring controllerName); */
  NS_IMETHOD OnStorageControllerChange(const PRUnichar *machineId, const PRUnichar *controllerName) = 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 onVMProcessPriorityChange (in VMProcPriority_T priority); */
  NS_IMETHOD OnVMProcessPriorityChange(VMProcPriority_T priority) = 0;

  /* void onClipboardModeChange (in ClipboardMode_T clipboardMode); */
  NS_IMETHOD OnClipboardModeChange(ClipboardMode_T clipboardMode) = 0;

  /* void onClipboardFileTransferModeChange (in boolean enabled); */
  NS_IMETHOD OnClipboardFileTransferModeChange(PRBool enabled) = 0;

  /* void onDnDModeChange (in DnDMode_T dndMode); */
  NS_IMETHOD OnDnDModeChange(DnDMode_T 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 onRecordingStateChange (in RecordingState_T state, out IProgress progress); */
  NS_IMETHOD OnRecordingStateChange(RecordingState_T state, IProgress * *progress) = 0;

  /* void onRecordingScreenStateChange (in RecordingState_T state, in unsigned long screen); */
  NS_IMETHOD OnRecordingScreenStateChange(RecordingState_T state, PRUint32 screen) = 0;

  /* void onUSBControllerChange (); */
  NS_IMETHOD OnUSBControllerChange(void) = 0;

  /* void onSharedFolderChange (in boolean global); */
  NS_IMETHOD OnSharedFolderChange(PRBool global) = 0;

  /* void onGuestDebugControlChange (in IGuestDebugControl guestDebugControl); */
  NS_IMETHOD OnGuestDebugControlChange(IGuestDebugControl * guestDebugControl) = 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 Reason_T reason); */
  NS_IMETHOD PauseWithReason(Reason_T reason) = 0;

  /* void resumeWithReason (in Reason_T reason); */
  NS_IMETHOD ResumeWithReason(Reason_T reason) = 0;

  /* void saveStateWithReason (in Reason_T reason, in IProgress progress, in ISnapshot snapshot, in wstring stateFilePath, in boolean pauseVM, [retval] out boolean leftPaused); */
  NS_IMETHOD SaveStateWithReason(Reason_T reason, IProgress * progress, ISnapshot * snapshot, const PRUnichar *stateFilePath, PRBool pauseVM, PRBool *leftPaused) = 0;

  /* void cancelSaveStateWithReason (); */
  NS_IMETHOD CancelSaveStateWithReason(void) = 0;

  /* void assignMachine (in IMachine machine, in LockType_T lockType, in IToken token); */
  NS_IMETHOD AssignMachine(IMachine * machine, LockType_T lockType, IToken * token) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IINTERNALSESSIONCONTROL \
  NS_IMETHOD GetPID(PRUint32 *aPID) NS_OVERRIDE; \
  NS_IMETHOD GetRemoteConsole(IConsole * *aRemoteConsole) NS_OVERRIDE; \
  NS_IMETHOD GetNominalState(MachineState_T *aNominalState) NS_OVERRIDE; \
  NS_IMETHOD AssignRemoteMachine(IMachine * machine, IConsole * console) NS_OVERRIDE; \
  NS_IMETHOD UpdateMachineState(MachineState_T machineState) NS_OVERRIDE; \
  NS_IMETHOD Uninitialize(void) NS_OVERRIDE; \
  NS_IMETHOD OnNetworkAdapterChange(INetworkAdapter * networkAdapter, PRBool changeAdapter) NS_OVERRIDE; \
  NS_IMETHOD OnAudioAdapterChange(IAudioAdapter * audioAdapter) NS_OVERRIDE; \
  NS_IMETHOD OnHostAudioDeviceChange(IHostAudioDevice * device, PRBool isNew, AudioDeviceState_T state, IVirtualBoxErrorInfo * errorInfo) NS_OVERRIDE; \
  NS_IMETHOD OnSerialPortChange(ISerialPort * serialPort) NS_OVERRIDE; \
  NS_IMETHOD OnParallelPortChange(IParallelPort * parallelPort) NS_OVERRIDE; \
  NS_IMETHOD OnStorageControllerChange(const PRUnichar *machineId, const PRUnichar *controllerName) NS_OVERRIDE; \
  NS_IMETHOD OnMediumChange(IMediumAttachment * mediumAttachment, PRBool force) NS_OVERRIDE; \
  NS_IMETHOD OnStorageDeviceChange(IMediumAttachment * mediumAttachment, PRBool remove, PRBool silent) NS_OVERRIDE; \
  NS_IMETHOD OnVMProcessPriorityChange(VMProcPriority_T priority) NS_OVERRIDE; \
  NS_IMETHOD OnClipboardModeChange(ClipboardMode_T clipboardMode) NS_OVERRIDE; \
  NS_IMETHOD OnClipboardFileTransferModeChange(PRBool enabled) NS_OVERRIDE; \
  NS_IMETHOD OnDnDModeChange(DnDMode_T dndMode) NS_OVERRIDE; \
  NS_IMETHOD OnCPUChange(PRUint32 cpu, PRBool add) NS_OVERRIDE; \
  NS_IMETHOD OnCPUExecutionCapChange(PRUint32 executionCap) NS_OVERRIDE; \
  NS_IMETHOD OnVRDEServerChange(PRBool restart) NS_OVERRIDE; \
  NS_IMETHOD OnRecordingStateChange(RecordingState_T state, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD OnRecordingScreenStateChange(RecordingState_T state, PRUint32 screen) NS_OVERRIDE; \
  NS_IMETHOD OnUSBControllerChange(void) NS_OVERRIDE; \
  NS_IMETHOD OnSharedFolderChange(PRBool global) NS_OVERRIDE; \
  NS_IMETHOD OnGuestDebugControlChange(IGuestDebugControl * guestDebugControl) NS_OVERRIDE; \
  NS_IMETHOD OnUSBDeviceAttach(IUSBDevice * device, IVirtualBoxErrorInfo * error, PRUint32 maskedInterfaces, const PRUnichar *captureFilename) NS_OVERRIDE; \
  NS_IMETHOD OnUSBDeviceDetach(const PRUnichar *id, IVirtualBoxErrorInfo * error) NS_OVERRIDE; \
  NS_IMETHOD OnShowWindow(PRBool check, PRBool *canShow, PRInt64 *winId) NS_OVERRIDE; \
  NS_IMETHOD OnBandwidthGroupChange(IBandwidthGroup * bandwidthGroup) NS_OVERRIDE; \
  NS_IMETHOD AccessGuestProperty(const PRUnichar *name, const PRUnichar *value, const PRUnichar *flags, PRUint32 accessMode, PRUnichar **retValue, PRInt64 *retTimestamp, PRUnichar **retFlags) NS_OVERRIDE; \
  NS_IMETHOD EnumerateGuestProperties(const PRUnichar *patterns, PRUint32 *keysSize, PRUnichar ***keys, PRUint32 *valuesSize, PRUnichar ***values, PRUint32 *timestampsSize, PRInt64 **timestamps, PRUint32 *flagsSize, PRUnichar ***flags) NS_OVERRIDE; \
  NS_IMETHOD OnlineMergeMedium(IMediumAttachment * mediumAttachment, PRUint32 sourceIdx, PRUint32 targetIdx, IProgress * progress) NS_OVERRIDE; \
  NS_IMETHOD ReconfigureMediumAttachments(PRUint32 attachmentsSize, IMediumAttachment * *attachments) NS_OVERRIDE; \
  NS_IMETHOD EnableVMMStatistics(PRBool enable) NS_OVERRIDE; \
  NS_IMETHOD PauseWithReason(Reason_T reason) NS_OVERRIDE; \
  NS_IMETHOD ResumeWithReason(Reason_T reason) NS_OVERRIDE; \
  NS_IMETHOD SaveStateWithReason(Reason_T reason, IProgress * progress, ISnapshot * snapshot, const PRUnichar *stateFilePath, PRBool pauseVM, PRBool *leftPaused) NS_OVERRIDE; \
  NS_IMETHOD CancelSaveStateWithReason(void) NS_OVERRIDE; \
  NS_IMETHOD AssignMachine(IMachine * machine, LockType_T lockType, IToken * token) NS_OVERRIDE; 

/* 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(MachineState_T *aNominalState) { return _to GetNominalState(aNominalState); } \
  NS_IMETHOD AssignRemoteMachine(IMachine * machine, IConsole * console) { return _to AssignRemoteMachine(machine, console); } \
  NS_IMETHOD UpdateMachineState(MachineState_T 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 OnAudioAdapterChange(IAudioAdapter * audioAdapter) { return _to OnAudioAdapterChange(audioAdapter); } \
  NS_IMETHOD OnHostAudioDeviceChange(IHostAudioDevice * device, PRBool isNew, AudioDeviceState_T state, IVirtualBoxErrorInfo * errorInfo) { return _to OnHostAudioDeviceChange(device, isNew, state, errorInfo); } \
  NS_IMETHOD OnSerialPortChange(ISerialPort * serialPort) { return _to OnSerialPortChange(serialPort); } \
  NS_IMETHOD OnParallelPortChange(IParallelPort * parallelPort) { return _to OnParallelPortChange(parallelPort); } \
  NS_IMETHOD OnStorageControllerChange(const PRUnichar *machineId, const PRUnichar *controllerName) { return _to OnStorageControllerChange(machineId, controllerName); } \
  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 OnVMProcessPriorityChange(VMProcPriority_T priority) { return _to OnVMProcessPriorityChange(priority); } \
  NS_IMETHOD OnClipboardModeChange(ClipboardMode_T clipboardMode) { return _to OnClipboardModeChange(clipboardMode); } \
  NS_IMETHOD OnClipboardFileTransferModeChange(PRBool enabled) { return _to OnClipboardFileTransferModeChange(enabled); } \
  NS_IMETHOD OnDnDModeChange(DnDMode_T 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 OnRecordingStateChange(RecordingState_T state, IProgress * *progress) { return _to OnRecordingStateChange(state, progress); } \
  NS_IMETHOD OnRecordingScreenStateChange(RecordingState_T state, PRUint32 screen) { return _to OnRecordingScreenStateChange(state, screen); } \
  NS_IMETHOD OnUSBControllerChange(void) { return _to OnUSBControllerChange(); } \
  NS_IMETHOD OnSharedFolderChange(PRBool global) { return _to OnSharedFolderChange(global); } \
  NS_IMETHOD OnGuestDebugControlChange(IGuestDebugControl * guestDebugControl) { return _to OnGuestDebugControlChange(guestDebugControl); } \
  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(Reason_T reason) { return _to PauseWithReason(reason); } \
  NS_IMETHOD ResumeWithReason(Reason_T reason) { return _to ResumeWithReason(reason); } \
  NS_IMETHOD SaveStateWithReason(Reason_T reason, IProgress * progress, ISnapshot * snapshot, const PRUnichar *stateFilePath, PRBool pauseVM, PRBool *leftPaused) { return _to SaveStateWithReason(reason, progress, snapshot, stateFilePath, pauseVM, leftPaused); } \
  NS_IMETHOD CancelSaveStateWithReason(void) { return _to CancelSaveStateWithReason(); } \
  NS_IMETHOD AssignMachine(IMachine * machine, LockType_T 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(MachineState_T *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(MachineState_T 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 OnAudioAdapterChange(IAudioAdapter * audioAdapter) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnAudioAdapterChange(audioAdapter); } \
  NS_IMETHOD OnHostAudioDeviceChange(IHostAudioDevice * device, PRBool isNew, AudioDeviceState_T state, IVirtualBoxErrorInfo * errorInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnHostAudioDeviceChange(device, isNew, state, errorInfo); } \
  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(const PRUnichar *machineId, const PRUnichar *controllerName) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnStorageControllerChange(machineId, controllerName); } \
  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 OnVMProcessPriorityChange(VMProcPriority_T priority) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnVMProcessPriorityChange(priority); } \
  NS_IMETHOD OnClipboardModeChange(ClipboardMode_T clipboardMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnClipboardModeChange(clipboardMode); } \
  NS_IMETHOD OnClipboardFileTransferModeChange(PRBool enabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnClipboardFileTransferModeChange(enabled); } \
  NS_IMETHOD OnDnDModeChange(DnDMode_T 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 OnRecordingStateChange(RecordingState_T state, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnRecordingStateChange(state, progress); } \
  NS_IMETHOD OnRecordingScreenStateChange(RecordingState_T state, PRUint32 screen) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnRecordingScreenStateChange(state, screen); } \
  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 OnGuestDebugControlChange(IGuestDebugControl * guestDebugControl) { return !_to ? NS_ERROR_NULL_POINTER : _to->OnGuestDebugControlChange(guestDebugControl); } \
  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(Reason_T reason) { return !_to ? NS_ERROR_NULL_POINTER : _to->PauseWithReason(reason); } \
  NS_IMETHOD ResumeWithReason(Reason_T reason) { return !_to ? NS_ERROR_NULL_POINTER : _to->ResumeWithReason(reason); } \
  NS_IMETHOD SaveStateWithReason(Reason_T reason, IProgress * progress, ISnapshot * snapshot, const PRUnichar *stateFilePath, PRBool pauseVM, PRBool *leftPaused) { return !_to ? NS_ERROR_NULL_POINTER : _to->SaveStateWithReason(reason, progress, snapshot, stateFilePath, pauseVM, leftPaused); } \
  NS_IMETHOD CancelSaveStateWithReason(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->CancelSaveStateWithReason(); } \
  NS_IMETHOD AssignMachine(IMachine * machine, LockType_T lockType, IToken * token) { return !_to ? NS_ERROR_NULL_POINTER : _to->AssignMachine(machine, lockType, token); } 

#define COM_FORWARD_IInternalSessionControl_GETTER_PID_TO(smth) NS_IMETHOD GetPID (PRUint32 * aPID) { return smth GetPID (aPID); }
#define COM_FORWARD_IInternalSessionControl_GETTER_PID_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_GETTER_PID_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_GETTER_PID_TO_BASE(base) COM_FORWARD_IInternalSessionControl_GETTER_PID_TO (base::)
#define COM_FORWARD_IInternalSessionControl_GETTER_RemoteConsole_TO(smth) NS_IMETHOD GetRemoteConsole (IConsole * * aRemoteConsole) { return smth GetRemoteConsole (aRemoteConsole); }
#define COM_FORWARD_IInternalSessionControl_GETTER_RemoteConsole_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_GETTER_RemoteConsole_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_GETTER_RemoteConsole_TO_BASE(base) COM_FORWARD_IInternalSessionControl_GETTER_RemoteConsole_TO (base::)
#define COM_FORWARD_IInternalSessionControl_GETTER_NominalState_TO(smth) NS_IMETHOD GetNominalState (PRUint32 * aNominalState) { return smth GetNominalState (aNominalState); }
#define COM_FORWARD_IInternalSessionControl_GETTER_NominalState_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_GETTER_NominalState_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_GETTER_NominalState_TO_BASE(base) COM_FORWARD_IInternalSessionControl_GETTER_NominalState_TO (base::)
#define COM_FORWARD_IInternalSessionControl_AssignRemoteMachine_TO(smth) NS_IMETHOD AssignRemoteMachine (IMachine * aMachine, IConsole * aConsole) { return smth AssignRemoteMachine (aMachine, aConsole); }
#define COM_FORWARD_IInternalSessionControl_AssignRemoteMachine_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_AssignRemoteMachine_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_AssignRemoteMachine_TO_BASE(base) COM_FORWARD_IInternalSessionControl_AssignRemoteMachine_TO (base::)
#define COM_FORWARD_IInternalSessionControl_UpdateMachineState_TO(smth) NS_IMETHOD UpdateMachineState (PRUint32 aMachineState) { return smth UpdateMachineState (aMachineState); }
#define COM_FORWARD_IInternalSessionControl_UpdateMachineState_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_UpdateMachineState_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_UpdateMachineState_TO_BASE(base) COM_FORWARD_IInternalSessionControl_UpdateMachineState_TO (base::)
#define COM_FORWARD_IInternalSessionControl_Uninitialize_TO(smth) NS_IMETHOD Uninitialize() { return smth Uninitialize(); }
#define COM_FORWARD_IInternalSessionControl_Uninitialize_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_Uninitialize_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_Uninitialize_TO_BASE(base) COM_FORWARD_IInternalSessionControl_Uninitialize_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnNetworkAdapterChange_TO(smth) NS_IMETHOD OnNetworkAdapterChange (INetworkAdapter * aNetworkAdapter, PRBool aChangeAdapter) { return smth OnNetworkAdapterChange (aNetworkAdapter, aChangeAdapter); }
#define COM_FORWARD_IInternalSessionControl_OnNetworkAdapterChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnNetworkAdapterChange_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnNetworkAdapterChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnNetworkAdapterChange_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnAudioAdapterChange_TO(smth) NS_IMETHOD OnAudioAdapterChange (IAudioAdapter * aAudioAdapter) { return smth OnAudioAdapterChange (aAudioAdapter); }
#define COM_FORWARD_IInternalSessionControl_OnAudioAdapterChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnAudioAdapterChange_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnAudioAdapterChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnAudioAdapterChange_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnHostAudioDeviceChange_TO(smth) NS_IMETHOD OnHostAudioDeviceChange (IHostAudioDevice * aDevice, PRBool aIsNew, PRUint32 aState, IVirtualBoxErrorInfo * aErrorInfo) { return smth OnHostAudioDeviceChange (aDevice, aIsNew, aState, aErrorInfo); }
#define COM_FORWARD_IInternalSessionControl_OnHostAudioDeviceChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnHostAudioDeviceChange_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnHostAudioDeviceChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnHostAudioDeviceChange_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnSerialPortChange_TO(smth) NS_IMETHOD OnSerialPortChange (ISerialPort * aSerialPort) { return smth OnSerialPortChange (aSerialPort); }
#define COM_FORWARD_IInternalSessionControl_OnSerialPortChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnSerialPortChange_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnSerialPortChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnSerialPortChange_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnParallelPortChange_TO(smth) NS_IMETHOD OnParallelPortChange (IParallelPort * aParallelPort) { return smth OnParallelPortChange (aParallelPort); }
#define COM_FORWARD_IInternalSessionControl_OnParallelPortChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnParallelPortChange_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnParallelPortChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnParallelPortChange_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnStorageControllerChange_TO(smth) NS_IMETHOD OnStorageControllerChange (PRUnichar * aMachineId, PRUnichar * aControllerName) { return smth OnStorageControllerChange (aMachineId, aControllerName); }
#define COM_FORWARD_IInternalSessionControl_OnStorageControllerChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnStorageControllerChange_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnStorageControllerChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnStorageControllerChange_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnMediumChange_TO(smth) NS_IMETHOD OnMediumChange (IMediumAttachment * aMediumAttachment, PRBool aForce) { return smth OnMediumChange (aMediumAttachment, aForce); }
#define COM_FORWARD_IInternalSessionControl_OnMediumChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnMediumChange_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnMediumChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnMediumChange_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnStorageDeviceChange_TO(smth) NS_IMETHOD OnStorageDeviceChange (IMediumAttachment * aMediumAttachment, PRBool aRemove, PRBool aSilent) { return smth OnStorageDeviceChange (aMediumAttachment, aRemove, aSilent); }
#define COM_FORWARD_IInternalSessionControl_OnStorageDeviceChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnStorageDeviceChange_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnStorageDeviceChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnStorageDeviceChange_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnVMProcessPriorityChange_TO(smth) NS_IMETHOD OnVMProcessPriorityChange (PRUint32 aPriority) { return smth OnVMProcessPriorityChange (aPriority); }
#define COM_FORWARD_IInternalSessionControl_OnVMProcessPriorityChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnVMProcessPriorityChange_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnVMProcessPriorityChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnVMProcessPriorityChange_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnClipboardModeChange_TO(smth) NS_IMETHOD OnClipboardModeChange (PRUint32 aClipboardMode) { return smth OnClipboardModeChange (aClipboardMode); }
#define COM_FORWARD_IInternalSessionControl_OnClipboardModeChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnClipboardModeChange_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnClipboardModeChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnClipboardModeChange_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnClipboardFileTransferModeChange_TO(smth) NS_IMETHOD OnClipboardFileTransferModeChange (PRBool aEnabled) { return smth OnClipboardFileTransferModeChange (aEnabled); }
#define COM_FORWARD_IInternalSessionControl_OnClipboardFileTransferModeChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnClipboardFileTransferModeChange_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnClipboardFileTransferModeChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnClipboardFileTransferModeChange_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnDnDModeChange_TO(smth) NS_IMETHOD OnDnDModeChange (PRUint32 aDndMode) { return smth OnDnDModeChange (aDndMode); }
#define COM_FORWARD_IInternalSessionControl_OnDnDModeChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnDnDModeChange_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnDnDModeChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnDnDModeChange_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnCPUChange_TO(smth) NS_IMETHOD OnCPUChange (PRUint32 aCpu, PRBool aAdd) { return smth OnCPUChange (aCpu, aAdd); }
#define COM_FORWARD_IInternalSessionControl_OnCPUChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnCPUChange_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnCPUChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnCPUChange_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnCPUExecutionCapChange_TO(smth) NS_IMETHOD OnCPUExecutionCapChange (PRUint32 aExecutionCap) { return smth OnCPUExecutionCapChange (aExecutionCap); }
#define COM_FORWARD_IInternalSessionControl_OnCPUExecutionCapChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnCPUExecutionCapChange_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnCPUExecutionCapChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnCPUExecutionCapChange_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnVRDEServerChange_TO(smth) NS_IMETHOD OnVRDEServerChange (PRBool aRestart) { return smth OnVRDEServerChange (aRestart); }
#define COM_FORWARD_IInternalSessionControl_OnVRDEServerChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnVRDEServerChange_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnVRDEServerChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnVRDEServerChange_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnRecordingStateChange_TO(smth) NS_IMETHOD OnRecordingStateChange (PRUint32 aState, IProgress * * aProgress) { return smth OnRecordingStateChange (aState, aProgress); }
#define COM_FORWARD_IInternalSessionControl_OnRecordingStateChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnRecordingStateChange_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnRecordingStateChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnRecordingStateChange_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnRecordingScreenStateChange_TO(smth) NS_IMETHOD OnRecordingScreenStateChange (PRUint32 aState, PRUint32 aScreen) { return smth OnRecordingScreenStateChange (aState, aScreen); }
#define COM_FORWARD_IInternalSessionControl_OnRecordingScreenStateChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnRecordingScreenStateChange_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnRecordingScreenStateChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnRecordingScreenStateChange_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_OnGuestDebugControlChange_TO(smth) NS_IMETHOD OnGuestDebugControlChange (IGuestDebugControl * aGuestDebugControl) { return smth OnGuestDebugControlChange (aGuestDebugControl); }
#define COM_FORWARD_IInternalSessionControl_OnGuestDebugControlChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnGuestDebugControlChange_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnGuestDebugControlChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnGuestDebugControlChange_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnUSBDeviceAttach_TO(smth) NS_IMETHOD OnUSBDeviceAttach (IUSBDevice * aDevice, IVirtualBoxErrorInfo * aError, PRUint32 aMaskedInterfaces, PRUnichar * aCaptureFilename) { return smth OnUSBDeviceAttach (aDevice, aError, aMaskedInterfaces, aCaptureFilename); }
#define COM_FORWARD_IInternalSessionControl_OnUSBDeviceAttach_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnUSBDeviceAttach_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnUSBDeviceAttach_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnUSBDeviceAttach_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnUSBDeviceDetach_TO(smth) NS_IMETHOD OnUSBDeviceDetach (PRUnichar * aId, IVirtualBoxErrorInfo * aError) { return smth OnUSBDeviceDetach (aId, aError); }
#define COM_FORWARD_IInternalSessionControl_OnUSBDeviceDetach_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnUSBDeviceDetach_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnUSBDeviceDetach_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnUSBDeviceDetach_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnShowWindow_TO(smth) NS_IMETHOD OnShowWindow (PRBool aCheck, PRBool * aCanShow, PRInt64 * aWinId) { return smth OnShowWindow (aCheck, aCanShow, aWinId); }
#define COM_FORWARD_IInternalSessionControl_OnShowWindow_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnShowWindow_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnShowWindow_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnShowWindow_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnBandwidthGroupChange_TO(smth) NS_IMETHOD OnBandwidthGroupChange (IBandwidthGroup * aBandwidthGroup) { return smth OnBandwidthGroupChange (aBandwidthGroup); }
#define COM_FORWARD_IInternalSessionControl_OnBandwidthGroupChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnBandwidthGroupChange_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnBandwidthGroupChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnBandwidthGroupChange_TO (base::)
#define COM_FORWARD_IInternalSessionControl_AccessGuestProperty_TO(smth) NS_IMETHOD AccessGuestProperty (PRUnichar * aName, PRUnichar * aValue, PRUnichar * aFlags, PRUint32 aAccessMode, PRUnichar * * aRetValue, PRInt64 * aRetTimestamp, PRUnichar * * aRetFlags) { return smth AccessGuestProperty (aName, aValue, aFlags, aAccessMode, aRetValue, aRetTimestamp, aRetFlags); }
#define COM_FORWARD_IInternalSessionControl_AccessGuestProperty_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_AccessGuestProperty_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_AccessGuestProperty_TO_BASE(base) COM_FORWARD_IInternalSessionControl_AccessGuestProperty_TO (base::)
#define COM_FORWARD_IInternalSessionControl_EnumerateGuestProperties_TO(smth) NS_IMETHOD EnumerateGuestProperties (PRUnichar * aPatterns, PRUint32 * aKeysSize, PRUnichar * * * aKeys, PRUint32 * aValuesSize, PRUnichar * * * aValues, PRUint32 * aTimestampsSize, PRInt64 * * aTimestamps, PRUint32 * aFlagsSize, PRUnichar * * * aFlags) { return smth EnumerateGuestProperties (aPatterns, aKeysSize+++, aKeys, aValuesSize+++, aValues, aTimestampsSize+++, aTimestamps, aFlagsSize, aFlags); }
#define COM_FORWARD_IInternalSessionControl_EnumerateGuestProperties_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_EnumerateGuestProperties_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_EnumerateGuestProperties_TO_BASE(base) COM_FORWARD_IInternalSessionControl_EnumerateGuestProperties_TO (base::)
#define COM_FORWARD_IInternalSessionControl_OnlineMergeMedium_TO(smth) NS_IMETHOD OnlineMergeMedium (IMediumAttachment * aMediumAttachment, PRUint32 aSourceIdx, PRUint32 aTargetIdx, IProgress * aProgress) { return smth OnlineMergeMedium (aMediumAttachment, aSourceIdx, aTargetIdx, aProgress); }
#define COM_FORWARD_IInternalSessionControl_OnlineMergeMedium_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnlineMergeMedium_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_OnlineMergeMedium_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnlineMergeMedium_TO (base::)
#define COM_FORWARD_IInternalSessionControl_ReconfigureMediumAttachments_TO(smth) NS_IMETHOD ReconfigureMediumAttachments (PRUint32 aAttachmentsSize, IMediumAttachment * * aAttachments) { return smth ReconfigureMediumAttachments (aAttachmentsSize, aAttachments); }
#define COM_FORWARD_IInternalSessionControl_ReconfigureMediumAttachments_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_ReconfigureMediumAttachments_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_ReconfigureMediumAttachments_TO_BASE(base) COM_FORWARD_IInternalSessionControl_ReconfigureMediumAttachments_TO (base::)
#define COM_FORWARD_IInternalSessionControl_EnableVMMStatistics_TO(smth) NS_IMETHOD EnableVMMStatistics (PRBool aEnable) { return smth EnableVMMStatistics (aEnable); }
#define COM_FORWARD_IInternalSessionControl_EnableVMMStatistics_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_EnableVMMStatistics_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_EnableVMMStatistics_TO_BASE(base) COM_FORWARD_IInternalSessionControl_EnableVMMStatistics_TO (base::)
#define COM_FORWARD_IInternalSessionControl_PauseWithReason_TO(smth) NS_IMETHOD PauseWithReason (PRUint32 aReason) { return smth PauseWithReason (aReason); }
#define COM_FORWARD_IInternalSessionControl_PauseWithReason_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_PauseWithReason_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_PauseWithReason_TO_BASE(base) COM_FORWARD_IInternalSessionControl_PauseWithReason_TO (base::)
#define COM_FORWARD_IInternalSessionControl_ResumeWithReason_TO(smth) NS_IMETHOD ResumeWithReason (PRUint32 aReason) { return smth ResumeWithReason (aReason); }
#define COM_FORWARD_IInternalSessionControl_ResumeWithReason_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_ResumeWithReason_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_ResumeWithReason_TO_BASE(base) COM_FORWARD_IInternalSessionControl_ResumeWithReason_TO (base::)
#define COM_FORWARD_IInternalSessionControl_SaveStateWithReason_TO(smth) NS_IMETHOD SaveStateWithReason (PRUint32 aReason, IProgress * aProgress, ISnapshot * aSnapshot, PRUnichar * aStateFilePath, PRBool aPauseVM, PRBool * aLeftPaused) { return smth SaveStateWithReason (aReason, aProgress, aSnapshot, aStateFilePath, aPauseVM, aLeftPaused); }
#define COM_FORWARD_IInternalSessionControl_SaveStateWithReason_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_SaveStateWithReason_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_SaveStateWithReason_TO_BASE(base) COM_FORWARD_IInternalSessionControl_SaveStateWithReason_TO (base::)
#define COM_FORWARD_IInternalSessionControl_CancelSaveStateWithReason_TO(smth) NS_IMETHOD CancelSaveStateWithReason() { return smth CancelSaveStateWithReason(); }
#define COM_FORWARD_IInternalSessionControl_CancelSaveStateWithReason_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_CancelSaveStateWithReason_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_CancelSaveStateWithReason_TO_BASE(base) COM_FORWARD_IInternalSessionControl_CancelSaveStateWithReason_TO (base::)
#define COM_FORWARD_IInternalSessionControl_AssignMachine_TO(smth) NS_IMETHOD AssignMachine (IMachine * aMachine, PRUint32 aLockType, PRUnichar * aTokenId) { return smth AssignMachine (aMachine, aLockType, aTokenId); }
#define COM_FORWARD_IInternalSessionControl_AssignMachine_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_AssignMachine_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_AssignMachine_TO_BASE(base) COM_FORWARD_IInternalSessionControl_AssignMachine_TO (base::)
#define COM_FORWARD_IInternalSessionControl_TO(smth) NS_FORWARD_IINTERNALSESSIONCONTROL (smth)
#define COM_FORWARD_IInternalSessionControl_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_TO ((obj)->)
#define COM_FORWARD_IInternalSessionControl_TO_BASE(base) COM_FORWARD_IInternalSessionControl_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IInternalSessionControl;

/* starting interface:    ISession */
#define ISESSION_IID_STR "c0447716-ff5a-4795-b57a-ecd5fffa18a4"

#define ISESSION_IID \
  {0xc0447716, 0xff5a, 0x4795, \
    { 0xb5, 0x7a, 0xec, 0xd5, 0xff, 0xfa, 0x18, 0xa4 }}

class NS_NO_VTABLE ISession : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ISESSION_IID)

  /* readonly attribute SessionState_T state; */
  NS_IMETHOD GetState(SessionState_T *aState) = 0;

  /* readonly attribute SessionType_T type; */
  NS_IMETHOD GetType(SessionType_T *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;

  /* readonly attribute unsigned long InternalAndReservedAttribute5ISession; */
  NS_IMETHOD GetInternalAndReservedAttribute5ISession(PRUint32 *aInternalAndReservedAttribute5ISession) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6ISession; */
  NS_IMETHOD GetInternalAndReservedAttribute6ISession(PRUint32 *aInternalAndReservedAttribute6ISession) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7ISession; */
  NS_IMETHOD GetInternalAndReservedAttribute7ISession(PRUint32 *aInternalAndReservedAttribute7ISession) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8ISession; */
  NS_IMETHOD GetInternalAndReservedAttribute8ISession(PRUint32 *aInternalAndReservedAttribute8ISession) = 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;

  /* void InternalAndReservedMethod4ISession (); */
  NS_IMETHOD InternalAndReservedMethod4ISession(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ISESSION \
  NS_IMETHOD GetState(SessionState_T *aState) NS_OVERRIDE; \
  NS_IMETHOD GetType(SessionType_T *aType) NS_OVERRIDE; \
  NS_IMETHOD GetName(PRUnichar **aName) NS_OVERRIDE; \
  NS_IMETHOD SetName(const PRUnichar *aName) NS_OVERRIDE; \
  NS_IMETHOD GetMachine(IMachine * *aMachine) NS_OVERRIDE; \
  NS_IMETHOD GetConsole(IConsole * *aConsole) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1ISession(PRUint32 *aInternalAndReservedAttribute1ISession) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2ISession(PRUint32 *aInternalAndReservedAttribute2ISession) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3ISession(PRUint32 *aInternalAndReservedAttribute3ISession) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4ISession(PRUint32 *aInternalAndReservedAttribute4ISession) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5ISession(PRUint32 *aInternalAndReservedAttribute5ISession) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6ISession(PRUint32 *aInternalAndReservedAttribute6ISession) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7ISession(PRUint32 *aInternalAndReservedAttribute7ISession) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8ISession(PRUint32 *aInternalAndReservedAttribute8ISession) NS_OVERRIDE; \
  NS_IMETHOD UnlockMachine(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1ISession(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2ISession(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3ISession(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4ISession(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ISESSION(_to) \
  NS_IMETHOD GetState(SessionState_T *aState) { return _to GetState(aState); } \
  NS_IMETHOD GetType(SessionType_T *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 GetInternalAndReservedAttribute5ISession(PRUint32 *aInternalAndReservedAttribute5ISession) { return _to GetInternalAndReservedAttribute5ISession(aInternalAndReservedAttribute5ISession); } \
  NS_IMETHOD GetInternalAndReservedAttribute6ISession(PRUint32 *aInternalAndReservedAttribute6ISession) { return _to GetInternalAndReservedAttribute6ISession(aInternalAndReservedAttribute6ISession); } \
  NS_IMETHOD GetInternalAndReservedAttribute7ISession(PRUint32 *aInternalAndReservedAttribute7ISession) { return _to GetInternalAndReservedAttribute7ISession(aInternalAndReservedAttribute7ISession); } \
  NS_IMETHOD GetInternalAndReservedAttribute8ISession(PRUint32 *aInternalAndReservedAttribute8ISession) { return _to GetInternalAndReservedAttribute8ISession(aInternalAndReservedAttribute8ISession); } \
  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(); } \
  NS_IMETHOD InternalAndReservedMethod4ISession(void) { return _to InternalAndReservedMethod4ISession(); } 

/* 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(SessionState_T *aState) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetState(aState); } \
  NS_IMETHOD GetType(SessionType_T *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 GetInternalAndReservedAttribute5ISession(PRUint32 *aInternalAndReservedAttribute5ISession) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5ISession(aInternalAndReservedAttribute5ISession); } \
  NS_IMETHOD GetInternalAndReservedAttribute6ISession(PRUint32 *aInternalAndReservedAttribute6ISession) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6ISession(aInternalAndReservedAttribute6ISession); } \
  NS_IMETHOD GetInternalAndReservedAttribute7ISession(PRUint32 *aInternalAndReservedAttribute7ISession) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7ISession(aInternalAndReservedAttribute7ISession); } \
  NS_IMETHOD GetInternalAndReservedAttribute8ISession(PRUint32 *aInternalAndReservedAttribute8ISession) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8ISession(aInternalAndReservedAttribute8ISession); } \
  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(); } \
  NS_IMETHOD InternalAndReservedMethod4ISession(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4ISession(); } 

#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 "ddca7247-bf98-47fb-ab2f-b5177533f493"

#define ISTORAGECONTROLLER_IID \
  {0xddca7247, 0xbf98, 0x47fb, \
    { 0xab, 0x2f, 0xb5, 0x17, 0x75, 0x33, 0xf4, 0x93 }}

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 StorageBus_T bus; */
  NS_IMETHOD GetBus(StorageBus_T *aBus) = 0;

  /* attribute StorageControllerType_T controllerType; */
  NS_IMETHOD GetControllerType(StorageControllerType_T *aControllerType) = 0;
  NS_IMETHOD SetControllerType(StorageControllerType_T 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;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IStorageController; */
  NS_IMETHOD GetInternalAndReservedAttribute3IStorageController(PRUint32 *aInternalAndReservedAttribute3IStorageController) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IStorageController; */
  NS_IMETHOD GetInternalAndReservedAttribute4IStorageController(PRUint32 *aInternalAndReservedAttribute4IStorageController) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IStorageController; */
  NS_IMETHOD GetInternalAndReservedAttribute5IStorageController(PRUint32 *aInternalAndReservedAttribute5IStorageController) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IStorageController; */
  NS_IMETHOD GetInternalAndReservedAttribute6IStorageController(PRUint32 *aInternalAndReservedAttribute6IStorageController) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IStorageController; */
  NS_IMETHOD GetInternalAndReservedAttribute7IStorageController(PRUint32 *aInternalAndReservedAttribute7IStorageController) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IStorageController; */
  NS_IMETHOD GetInternalAndReservedAttribute8IStorageController(PRUint32 *aInternalAndReservedAttribute8IStorageController) = 0;

  /* void InternalAndReservedMethod1IStorageController (); */
  NS_IMETHOD InternalAndReservedMethod1IStorageController(void) = 0;

  /* void InternalAndReservedMethod2IStorageController (); */
  NS_IMETHOD InternalAndReservedMethod2IStorageController(void) = 0;

  /* void InternalAndReservedMethod3IStorageController (); */
  NS_IMETHOD InternalAndReservedMethod3IStorageController(void) = 0;

  /* void InternalAndReservedMethod4IStorageController (); */
  NS_IMETHOD InternalAndReservedMethod4IStorageController(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ISTORAGECONTROLLER \
  NS_IMETHOD GetName(PRUnichar **aName) NS_OVERRIDE; \
  NS_IMETHOD SetName(const PRUnichar *aName) NS_OVERRIDE; \
  NS_IMETHOD GetMaxDevicesPerPortCount(PRUint32 *aMaxDevicesPerPortCount) NS_OVERRIDE; \
  NS_IMETHOD GetMinPortCount(PRUint32 *aMinPortCount) NS_OVERRIDE; \
  NS_IMETHOD GetMaxPortCount(PRUint32 *aMaxPortCount) NS_OVERRIDE; \
  NS_IMETHOD GetInstance(PRUint32 *aInstance) NS_OVERRIDE; \
  NS_IMETHOD SetInstance(PRUint32 aInstance) NS_OVERRIDE; \
  NS_IMETHOD GetPortCount(PRUint32 *aPortCount) NS_OVERRIDE; \
  NS_IMETHOD SetPortCount(PRUint32 aPortCount) NS_OVERRIDE; \
  NS_IMETHOD GetBus(StorageBus_T *aBus) NS_OVERRIDE; \
  NS_IMETHOD GetControllerType(StorageControllerType_T *aControllerType) NS_OVERRIDE; \
  NS_IMETHOD SetControllerType(StorageControllerType_T aControllerType) NS_OVERRIDE; \
  NS_IMETHOD GetUseHostIOCache(PRBool *aUseHostIOCache) NS_OVERRIDE; \
  NS_IMETHOD SetUseHostIOCache(PRBool aUseHostIOCache) NS_OVERRIDE; \
  NS_IMETHOD GetBootable(PRBool *aBootable) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IStorageController(PRUint32 *aInternalAndReservedAttribute1IStorageController) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IStorageController(PRUint32 *aInternalAndReservedAttribute2IStorageController) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IStorageController(PRUint32 *aInternalAndReservedAttribute3IStorageController) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IStorageController(PRUint32 *aInternalAndReservedAttribute4IStorageController) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IStorageController(PRUint32 *aInternalAndReservedAttribute5IStorageController) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IStorageController(PRUint32 *aInternalAndReservedAttribute6IStorageController) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IStorageController(PRUint32 *aInternalAndReservedAttribute7IStorageController) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IStorageController(PRUint32 *aInternalAndReservedAttribute8IStorageController) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IStorageController(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IStorageController(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IStorageController(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IStorageController(void) NS_OVERRIDE; 

/* 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(StorageBus_T *aBus) { return _to GetBus(aBus); } \
  NS_IMETHOD GetControllerType(StorageControllerType_T *aControllerType) { return _to GetControllerType(aControllerType); } \
  NS_IMETHOD SetControllerType(StorageControllerType_T 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 GetInternalAndReservedAttribute3IStorageController(PRUint32 *aInternalAndReservedAttribute3IStorageController) { return _to GetInternalAndReservedAttribute3IStorageController(aInternalAndReservedAttribute3IStorageController); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IStorageController(PRUint32 *aInternalAndReservedAttribute4IStorageController) { return _to GetInternalAndReservedAttribute4IStorageController(aInternalAndReservedAttribute4IStorageController); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IStorageController(PRUint32 *aInternalAndReservedAttribute5IStorageController) { return _to GetInternalAndReservedAttribute5IStorageController(aInternalAndReservedAttribute5IStorageController); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IStorageController(PRUint32 *aInternalAndReservedAttribute6IStorageController) { return _to GetInternalAndReservedAttribute6IStorageController(aInternalAndReservedAttribute6IStorageController); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IStorageController(PRUint32 *aInternalAndReservedAttribute7IStorageController) { return _to GetInternalAndReservedAttribute7IStorageController(aInternalAndReservedAttribute7IStorageController); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IStorageController(PRUint32 *aInternalAndReservedAttribute8IStorageController) { return _to GetInternalAndReservedAttribute8IStorageController(aInternalAndReservedAttribute8IStorageController); } \
  NS_IMETHOD InternalAndReservedMethod1IStorageController(void) { return _to InternalAndReservedMethod1IStorageController(); } \
  NS_IMETHOD InternalAndReservedMethod2IStorageController(void) { return _to InternalAndReservedMethod2IStorageController(); } \
  NS_IMETHOD InternalAndReservedMethod3IStorageController(void) { return _to InternalAndReservedMethod3IStorageController(); } \
  NS_IMETHOD InternalAndReservedMethod4IStorageController(void) { return _to InternalAndReservedMethod4IStorageController(); } 

/* 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(StorageBus_T *aBus) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBus(aBus); } \
  NS_IMETHOD GetControllerType(StorageControllerType_T *aControllerType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetControllerType(aControllerType); } \
  NS_IMETHOD SetControllerType(StorageControllerType_T 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 GetInternalAndReservedAttribute3IStorageController(PRUint32 *aInternalAndReservedAttribute3IStorageController) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IStorageController(aInternalAndReservedAttribute3IStorageController); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IStorageController(PRUint32 *aInternalAndReservedAttribute4IStorageController) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IStorageController(aInternalAndReservedAttribute4IStorageController); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IStorageController(PRUint32 *aInternalAndReservedAttribute5IStorageController) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IStorageController(aInternalAndReservedAttribute5IStorageController); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IStorageController(PRUint32 *aInternalAndReservedAttribute6IStorageController) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IStorageController(aInternalAndReservedAttribute6IStorageController); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IStorageController(PRUint32 *aInternalAndReservedAttribute7IStorageController) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IStorageController(aInternalAndReservedAttribute7IStorageController); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IStorageController(PRUint32 *aInternalAndReservedAttribute8IStorageController) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IStorageController(aInternalAndReservedAttribute8IStorageController); } \
  NS_IMETHOD InternalAndReservedMethod1IStorageController(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IStorageController(); } \
  NS_IMETHOD InternalAndReservedMethod2IStorageController(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IStorageController(); } \
  NS_IMETHOD InternalAndReservedMethod3IStorageController(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IStorageController(); } \
  NS_IMETHOD InternalAndReservedMethod4IStorageController(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IStorageController(); } 

#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_OVERRIDE; \
  NS_IMETHOD GetObject(nsISupports * *aObject) NS_OVERRIDE; \
  NS_IMETHOD GetDescription(PRUnichar **aDescription) NS_OVERRIDE; \
  NS_IMETHOD GetPeriod(PRUint32 *aPeriod) NS_OVERRIDE; \
  NS_IMETHOD GetCount(PRUint32 *aCount) NS_OVERRIDE; \
  NS_IMETHOD GetUnit(PRUnichar **aUnit) NS_OVERRIDE; \
  NS_IMETHOD GetMinimumValue(PRInt32 *aMinimumValue) NS_OVERRIDE; \
  NS_IMETHOD GetMaximumValue(PRInt32 *aMaximumValue) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute1IPerformanceMetric) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute2IPerformanceMetric) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute3IPerformanceMetric) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute4IPerformanceMetric) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute5IPerformanceMetric) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute6IPerformanceMetric) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute7IPerformanceMetric) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IPerformanceMetric(PRUint32 *aInternalAndReservedAttribute8IPerformanceMetric) NS_OVERRIDE; 

/* 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); } 

#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_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute1IPerformanceCollector) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute2IPerformanceCollector) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute3IPerformanceCollector) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute4IPerformanceCollector) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute5IPerformanceCollector) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute6IPerformanceCollector) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute7IPerformanceCollector) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IPerformanceCollector(PRUint32 *aInternalAndReservedAttribute8IPerformanceCollector) NS_OVERRIDE; \
  NS_IMETHOD GetMetrics(PRUint32 metricNamesSize, const PRUnichar **metricNames, PRUint32 objectsSize, nsISupports * *objects, PRUint32 *metricsSize, IPerformanceMetric * **metrics) NS_OVERRIDE; \
  NS_IMETHOD SetupMetrics(PRUint32 metricNamesSize, const PRUnichar **metricNames, PRUint32 objectsSize, nsISupports * *objects, PRUint32 period, PRUint32 count, PRUint32 *affectedMetricsSize, IPerformanceMetric * **affectedMetrics) NS_OVERRIDE; \
  NS_IMETHOD EnableMetrics(PRUint32 metricNamesSize, const PRUnichar **metricNames, PRUint32 objectsSize, nsISupports * *objects, PRUint32 *affectedMetricsSize, IPerformanceMetric * **affectedMetrics) NS_OVERRIDE; \
  NS_IMETHOD DisableMetrics(PRUint32 metricNamesSize, const PRUnichar **metricNames, PRUint32 objectsSize, nsISupports * *objects, PRUint32 *affectedMetricsSize, IPerformanceMetric * **affectedMetrics) NS_OVERRIDE; \
  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_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IPerformanceCollector(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IPerformanceCollector(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IPerformanceCollector(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IPerformanceCollector(void) NS_OVERRIDE; 

/* 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(); } 

#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 "55f6cedb-141d-41bb-9995-ee2fc7f9101a"

#define INATENGINE_IID \
  {0x55f6cedb, 0x141d, 0x41bb, \
    { 0x99, 0x95, 0xee, 0x2f, 0xc7, 0xf9, 0x10, 0x1a }}

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;

  /* attribute boolean localhostReachable; */
  NS_IMETHOD GetLocalhostReachable(PRBool *aLocalhostReachable) = 0;
  NS_IMETHOD SetLocalhostReachable(PRBool aLocalhostReachable) = 0;

  /* attribute boolean forwardBroadcast; */
  NS_IMETHOD GetForwardBroadcast(PRBool *aForwardBroadcast) = 0;
  NS_IMETHOD SetForwardBroadcast(PRBool aForwardBroadcast) = 0;

  /* attribute boolean enableTFTP; */
  NS_IMETHOD GetEnableTFTP(PRBool *aEnableTFTP) = 0;
  NS_IMETHOD SetEnableTFTP(PRBool aEnableTFTP) = 0;

  /* attribute unsigned long natMRU; */
  NS_IMETHOD GetNatMRU(PRUint32 *aNatMRU) = 0;
  NS_IMETHOD SetNatMRU(PRUint32 aNatMRU) = 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;

  /* 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;

  /* readonly attribute unsigned long InternalAndReservedAttribute5INATEngine; */
  NS_IMETHOD GetInternalAndReservedAttribute5INATEngine(PRUint32 *aInternalAndReservedAttribute5INATEngine) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6INATEngine; */
  NS_IMETHOD GetInternalAndReservedAttribute6INATEngine(PRUint32 *aInternalAndReservedAttribute6INATEngine) = 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 NATProtocol_T proto, in wstring hostIP, in unsigned short hostPort, in wstring guestIP, in unsigned short guestPort); */
  NS_IMETHOD AddRedirect(const PRUnichar *name, NATProtocol_T 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;

  /* void InternalAndReservedMethod3INATEngine (); */
  NS_IMETHOD InternalAndReservedMethod3INATEngine(void) = 0;

  /* void InternalAndReservedMethod4INATEngine (); */
  NS_IMETHOD InternalAndReservedMethod4INATEngine(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_INATENGINE \
  NS_IMETHOD GetNetwork(PRUnichar **aNetwork) NS_OVERRIDE; \
  NS_IMETHOD SetNetwork(const PRUnichar *aNetwork) NS_OVERRIDE; \
  NS_IMETHOD GetHostIP(PRUnichar **aHostIP) NS_OVERRIDE; \
  NS_IMETHOD SetHostIP(const PRUnichar *aHostIP) NS_OVERRIDE; \
  NS_IMETHOD GetTFTPPrefix(PRUnichar **aTFTPPrefix) NS_OVERRIDE; \
  NS_IMETHOD SetTFTPPrefix(const PRUnichar *aTFTPPrefix) NS_OVERRIDE; \
  NS_IMETHOD GetTFTPBootFile(PRUnichar **aTFTPBootFile) NS_OVERRIDE; \
  NS_IMETHOD SetTFTPBootFile(const PRUnichar *aTFTPBootFile) NS_OVERRIDE; \
  NS_IMETHOD GetTFTPNextServer(PRUnichar **aTFTPNextServer) NS_OVERRIDE; \
  NS_IMETHOD SetTFTPNextServer(const PRUnichar *aTFTPNextServer) NS_OVERRIDE; \
  NS_IMETHOD GetAliasMode(PRUint32 *aAliasMode) NS_OVERRIDE; \
  NS_IMETHOD SetAliasMode(PRUint32 aAliasMode) NS_OVERRIDE; \
  NS_IMETHOD GetDNSPassDomain(PRBool *aDNSPassDomain) NS_OVERRIDE; \
  NS_IMETHOD SetDNSPassDomain(PRBool aDNSPassDomain) NS_OVERRIDE; \
  NS_IMETHOD GetDNSProxy(PRBool *aDNSProxy) NS_OVERRIDE; \
  NS_IMETHOD SetDNSProxy(PRBool aDNSProxy) NS_OVERRIDE; \
  NS_IMETHOD GetDNSUseHostResolver(PRBool *aDNSUseHostResolver) NS_OVERRIDE; \
  NS_IMETHOD SetDNSUseHostResolver(PRBool aDNSUseHostResolver) NS_OVERRIDE; \
  NS_IMETHOD GetRedirects(PRUint32 *redirectsSize, PRUnichar ***redirects) NS_OVERRIDE; \
  NS_IMETHOD GetLocalhostReachable(PRBool *aLocalhostReachable) NS_OVERRIDE; \
  NS_IMETHOD SetLocalhostReachable(PRBool aLocalhostReachable) NS_OVERRIDE; \
  NS_IMETHOD GetForwardBroadcast(PRBool *aForwardBroadcast) NS_OVERRIDE; \
  NS_IMETHOD SetForwardBroadcast(PRBool aForwardBroadcast) NS_OVERRIDE; \
  NS_IMETHOD GetEnableTFTP(PRBool *aEnableTFTP) NS_OVERRIDE; \
  NS_IMETHOD SetEnableTFTP(PRBool aEnableTFTP) NS_OVERRIDE; \
  NS_IMETHOD GetNatMRU(PRUint32 *aNatMRU) NS_OVERRIDE; \
  NS_IMETHOD SetNatMRU(PRUint32 aNatMRU) NS_OVERRIDE; \
  NS_IMETHOD GetIPv6Enabled(PRBool *aIPv6Enabled) NS_OVERRIDE; \
  NS_IMETHOD SetIPv6Enabled(PRBool aIPv6Enabled) NS_OVERRIDE; \
  NS_IMETHOD GetIPv6Prefix(PRUnichar **aIPv6Prefix) NS_OVERRIDE; \
  NS_IMETHOD SetIPv6Prefix(const PRUnichar *aIPv6Prefix) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1INATEngine(PRUint32 *aInternalAndReservedAttribute1INATEngine) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2INATEngine(PRUint32 *aInternalAndReservedAttribute2INATEngine) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3INATEngine(PRUint32 *aInternalAndReservedAttribute3INATEngine) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4INATEngine(PRUint32 *aInternalAndReservedAttribute4INATEngine) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5INATEngine(PRUint32 *aInternalAndReservedAttribute5INATEngine) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6INATEngine(PRUint32 *aInternalAndReservedAttribute6INATEngine) NS_OVERRIDE; \
  NS_IMETHOD SetNetworkSettings(PRUint32 mtu, PRUint32 sockSnd, PRUint32 sockRcv, PRUint32 TcpWndSnd, PRUint32 TcpWndRcv) NS_OVERRIDE; \
  NS_IMETHOD GetNetworkSettings(PRUint32 *mtu, PRUint32 *sockSnd, PRUint32 *sockRcv, PRUint32 *TcpWndSnd, PRUint32 *TcpWndRcv) NS_OVERRIDE; \
  NS_IMETHOD AddRedirect(const PRUnichar *name, NATProtocol_T proto, const PRUnichar *hostIP, PRUint16 hostPort, const PRUnichar *guestIP, PRUint16 guestPort) NS_OVERRIDE; \
  NS_IMETHOD RemoveRedirect(const PRUnichar *name) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1INATEngine(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2INATEngine(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3INATEngine(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4INATEngine(void) NS_OVERRIDE; 

/* 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 GetLocalhostReachable(PRBool *aLocalhostReachable) { return _to GetLocalhostReachable(aLocalhostReachable); } \
  NS_IMETHOD SetLocalhostReachable(PRBool aLocalhostReachable) { return _to SetLocalhostReachable(aLocalhostReachable); } \
  NS_IMETHOD GetForwardBroadcast(PRBool *aForwardBroadcast) { return _to GetForwardBroadcast(aForwardBroadcast); } \
  NS_IMETHOD SetForwardBroadcast(PRBool aForwardBroadcast) { return _to SetForwardBroadcast(aForwardBroadcast); } \
  NS_IMETHOD GetEnableTFTP(PRBool *aEnableTFTP) { return _to GetEnableTFTP(aEnableTFTP); } \
  NS_IMETHOD SetEnableTFTP(PRBool aEnableTFTP) { return _to SetEnableTFTP(aEnableTFTP); } \
  NS_IMETHOD GetNatMRU(PRUint32 *aNatMRU) { return _to GetNatMRU(aNatMRU); } \
  NS_IMETHOD SetNatMRU(PRUint32 aNatMRU) { return _to SetNatMRU(aNatMRU); } \
  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 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 GetInternalAndReservedAttribute5INATEngine(PRUint32 *aInternalAndReservedAttribute5INATEngine) { return _to GetInternalAndReservedAttribute5INATEngine(aInternalAndReservedAttribute5INATEngine); } \
  NS_IMETHOD GetInternalAndReservedAttribute6INATEngine(PRUint32 *aInternalAndReservedAttribute6INATEngine) { return _to GetInternalAndReservedAttribute6INATEngine(aInternalAndReservedAttribute6INATEngine); } \
  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, NATProtocol_T 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(); } \
  NS_IMETHOD InternalAndReservedMethod3INATEngine(void) { return _to InternalAndReservedMethod3INATEngine(); } \
  NS_IMETHOD InternalAndReservedMethod4INATEngine(void) { return _to InternalAndReservedMethod4INATEngine(); } 

/* 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 GetLocalhostReachable(PRBool *aLocalhostReachable) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLocalhostReachable(aLocalhostReachable); } \
  NS_IMETHOD SetLocalhostReachable(PRBool aLocalhostReachable) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLocalhostReachable(aLocalhostReachable); } \
  NS_IMETHOD GetForwardBroadcast(PRBool *aForwardBroadcast) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetForwardBroadcast(aForwardBroadcast); } \
  NS_IMETHOD SetForwardBroadcast(PRBool aForwardBroadcast) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetForwardBroadcast(aForwardBroadcast); } \
  NS_IMETHOD GetEnableTFTP(PRBool *aEnableTFTP) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEnableTFTP(aEnableTFTP); } \
  NS_IMETHOD SetEnableTFTP(PRBool aEnableTFTP) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetEnableTFTP(aEnableTFTP); } \
  NS_IMETHOD GetNatMRU(PRUint32 *aNatMRU) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNatMRU(aNatMRU); } \
  NS_IMETHOD SetNatMRU(PRUint32 aNatMRU) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetNatMRU(aNatMRU); } \
  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 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 GetInternalAndReservedAttribute5INATEngine(PRUint32 *aInternalAndReservedAttribute5INATEngine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5INATEngine(aInternalAndReservedAttribute5INATEngine); } \
  NS_IMETHOD GetInternalAndReservedAttribute6INATEngine(PRUint32 *aInternalAndReservedAttribute6INATEngine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6INATEngine(aInternalAndReservedAttribute6INATEngine); } \
  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, NATProtocol_T 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(); } \
  NS_IMETHOD InternalAndReservedMethod3INATEngine(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3INATEngine(); } \
  NS_IMETHOD InternalAndReservedMethod4INATEngine(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4INATEngine(); } 

#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_GETTER_LocalhostReachable_TO(smth) NS_IMETHOD GetLocalhostReachable (PRBool * aLocalhostReachable) { return smth GetLocalhostReachable (aLocalhostReachable); }
#define COM_FORWARD_INATEngine_GETTER_LocalhostReachable_TO_OBJ(obj) COM_FORWARD_INATEngine_GETTER_LocalhostReachable_TO ((obj)->)
#define COM_FORWARD_INATEngine_GETTER_LocalhostReachable_TO_BASE(base) COM_FORWARD_INATEngine_GETTER_LocalhostReachable_TO (base::)
#define COM_FORWARD_INATEngine_SETTER_LocalhostReachable_TO(smth) NS_IMETHOD SetLocalhostReachable (PRBool aLocalhostReachable) { return smth SetLocalhostReachable (aLocalhostReachable); }
#define COM_FORWARD_INATEngine_SETTER_LocalhostReachable_TO_OBJ(obj) COM_FORWARD_INATEngine_SETTER_LocalhostReachable_TO ((obj)->)
#define COM_FORWARD_INATEngine_SETTER_LocalhostReachable_TO_BASE(base) COM_FORWARD_INATEngine_SETTER_LocalhostReachable_TO (base::)
#define COM_FORWARD_INATEngine_GETTER_ForwardBroadcast_TO(smth) NS_IMETHOD GetForwardBroadcast (PRBool * aForwardBroadcast) { return smth GetForwardBroadcast (aForwardBroadcast); }
#define COM_FORWARD_INATEngine_GETTER_ForwardBroadcast_TO_OBJ(obj) COM_FORWARD_INATEngine_GETTER_ForwardBroadcast_TO ((obj)->)
#define COM_FORWARD_INATEngine_GETTER_ForwardBroadcast_TO_BASE(base) COM_FORWARD_INATEngine_GETTER_ForwardBroadcast_TO (base::)
#define COM_FORWARD_INATEngine_SETTER_ForwardBroadcast_TO(smth) NS_IMETHOD SetForwardBroadcast (PRBool aForwardBroadcast) { return smth SetForwardBroadcast (aForwardBroadcast); }
#define COM_FORWARD_INATEngine_SETTER_ForwardBroadcast_TO_OBJ(obj) COM_FORWARD_INATEngine_SETTER_ForwardBroadcast_TO ((obj)->)
#define COM_FORWARD_INATEngine_SETTER_ForwardBroadcast_TO_BASE(base) COM_FORWARD_INATEngine_SETTER_ForwardBroadcast_TO (base::)
#define COM_FORWARD_INATEngine_GETTER_EnableTFTP_TO(smth) NS_IMETHOD GetEnableTFTP (PRBool * aEnableTFTP) { return smth GetEnableTFTP (aEnableTFTP); }
#define COM_FORWARD_INATEngine_GETTER_EnableTFTP_TO_OBJ(obj) COM_FORWARD_INATEngine_GETTER_EnableTFTP_TO ((obj)->)
#define COM_FORWARD_INATEngine_GETTER_EnableTFTP_TO_BASE(base) COM_FORWARD_INATEngine_GETTER_EnableTFTP_TO (base::)
#define COM_FORWARD_INATEngine_SETTER_EnableTFTP_TO(smth) NS_IMETHOD SetEnableTFTP (PRBool aEnableTFTP) { return smth SetEnableTFTP (aEnableTFTP); }
#define COM_FORWARD_INATEngine_SETTER_EnableTFTP_TO_OBJ(obj) COM_FORWARD_INATEngine_SETTER_EnableTFTP_TO ((obj)->)
#define COM_FORWARD_INATEngine_SETTER_EnableTFTP_TO_BASE(base) COM_FORWARD_INATEngine_SETTER_EnableTFTP_TO (base::)
#define COM_FORWARD_INATEngine_GETTER_NatMRU_TO(smth) NS_IMETHOD GetNatMRU (PRUint32 * aNatMRU) { return smth GetNatMRU (aNatMRU); }
#define COM_FORWARD_INATEngine_GETTER_NatMRU_TO_OBJ(obj) COM_FORWARD_INATEngine_GETTER_NatMRU_TO ((obj)->)
#define COM_FORWARD_INATEngine_GETTER_NatMRU_TO_BASE(base) COM_FORWARD_INATEngine_GETTER_NatMRU_TO (base::)
#define COM_FORWARD_INATEngine_SETTER_NatMRU_TO(smth) NS_IMETHOD SetNatMRU (PRUint32 aNatMRU) { return smth SetNatMRU (aNatMRU); }
#define COM_FORWARD_INATEngine_SETTER_NatMRU_TO_OBJ(obj) COM_FORWARD_INATEngine_SETTER_NatMRU_TO ((obj)->)
#define COM_FORWARD_INATEngine_SETTER_NatMRU_TO_BASE(base) COM_FORWARD_INATEngine_SETTER_NatMRU_TO (base::)
#define COM_FORWARD_INATEngine_GETTER_IPv6Enabled_TO(smth) NS_IMETHOD GetIPv6Enabled (PRBool * aIPv6Enabled) { return smth GetIPv6Enabled (aIPv6Enabled); }
#define COM_FORWARD_INATEngine_GETTER_IPv6Enabled_TO_OBJ(obj) COM_FORWARD_INATEngine_GETTER_IPv6Enabled_TO ((obj)->)
#define COM_FORWARD_INATEngine_GETTER_IPv6Enabled_TO_BASE(base) COM_FORWARD_INATEngine_GETTER_IPv6Enabled_TO (base::)
#define COM_FORWARD_INATEngine_SETTER_IPv6Enabled_TO(smth) NS_IMETHOD SetIPv6Enabled (PRBool aIPv6Enabled) { return smth SetIPv6Enabled (aIPv6Enabled); }
#define COM_FORWARD_INATEngine_SETTER_IPv6Enabled_TO_OBJ(obj) COM_FORWARD_INATEngine_SETTER_IPv6Enabled_TO ((obj)->)
#define COM_FORWARD_INATEngine_SETTER_IPv6Enabled_TO_BASE(base) COM_FORWARD_INATEngine_SETTER_IPv6Enabled_TO (base::)
#define COM_FORWARD_INATEngine_GETTER_IPv6Prefix_TO(smth) NS_IMETHOD GetIPv6Prefix (PRUnichar * * aIPv6Prefix) { return smth GetIPv6Prefix (aIPv6Prefix); }
#define COM_FORWARD_INATEngine_GETTER_IPv6Prefix_TO_OBJ(obj) COM_FORWARD_INATEngine_GETTER_IPv6Prefix_TO ((obj)->)
#define COM_FORWARD_INATEngine_GETTER_IPv6Prefix_TO_BASE(base) COM_FORWARD_INATEngine_GETTER_IPv6Prefix_TO (base::)
#define COM_FORWARD_INATEngine_SETTER_IPv6Prefix_TO(smth) NS_IMETHOD SetIPv6Prefix (const PRUnichar * aIPv6Prefix) { return smth SetIPv6Prefix (aIPv6Prefix); }
#define COM_FORWARD_INATEngine_SETTER_IPv6Prefix_TO_OBJ(obj) COM_FORWARD_INATEngine_SETTER_IPv6Prefix_TO ((obj)->)
#define COM_FORWARD_INATEngine_SETTER_IPv6Prefix_TO_BASE(base) COM_FORWARD_INATEngine_SETTER_IPv6Prefix_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 "78861431-d545-44aa-8013-181b8c288554"

#define IEXTPACKPLUGIN_IID \
  {0x78861431, 0xd545, 0x44aa, \
    { 0x80, 0x13, 0x18, 0x1b, 0x8c, 0x28, 0x85, 0x54 }}

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;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IExtPackPlugIn; */
  NS_IMETHOD GetInternalAndReservedAttribute3IExtPackPlugIn(PRUint32 *aInternalAndReservedAttribute3IExtPackPlugIn) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IExtPackPlugIn; */
  NS_IMETHOD GetInternalAndReservedAttribute4IExtPackPlugIn(PRUint32 *aInternalAndReservedAttribute4IExtPackPlugIn) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IEXTPACKPLUGIN \
  NS_IMETHOD GetName(PRUnichar **aName) NS_OVERRIDE; \
  NS_IMETHOD GetDescription(PRUnichar **aDescription) NS_OVERRIDE; \
  NS_IMETHOD GetFrontend(PRUnichar **aFrontend) NS_OVERRIDE; \
  NS_IMETHOD GetModulePath(PRUnichar **aModulePath) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IExtPackPlugIn(PRUint32 *aInternalAndReservedAttribute1IExtPackPlugIn) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IExtPackPlugIn(PRUint32 *aInternalAndReservedAttribute2IExtPackPlugIn) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IExtPackPlugIn(PRUint32 *aInternalAndReservedAttribute3IExtPackPlugIn) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IExtPackPlugIn(PRUint32 *aInternalAndReservedAttribute4IExtPackPlugIn) NS_OVERRIDE; 

/* 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); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IExtPackPlugIn(PRUint32 *aInternalAndReservedAttribute3IExtPackPlugIn) { return _to GetInternalAndReservedAttribute3IExtPackPlugIn(aInternalAndReservedAttribute3IExtPackPlugIn); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IExtPackPlugIn(PRUint32 *aInternalAndReservedAttribute4IExtPackPlugIn) { return _to GetInternalAndReservedAttribute4IExtPackPlugIn(aInternalAndReservedAttribute4IExtPackPlugIn); } 

/* 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); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IExtPackPlugIn(PRUint32 *aInternalAndReservedAttribute3IExtPackPlugIn) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IExtPackPlugIn(aInternalAndReservedAttribute3IExtPackPlugIn); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IExtPackPlugIn(PRUint32 *aInternalAndReservedAttribute4IExtPackPlugIn) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IExtPackPlugIn(aInternalAndReservedAttribute4IExtPackPlugIn); } 

#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 "aa204a12-5b29-45a5-b5d6-c2bafcdb9b0b"

#define IEXTPACKBASE_IID \
  {0xaa204a12, 0x5b29, 0x45a5, \
    { 0xb5, 0xd6, 0xc2, 0xba, 0xfc, 0xdb, 0x9b, 0x0b }}

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;

  /* readonly attribute wstring CryptoModule; */
  NS_IMETHOD GetCryptoModule(PRUnichar **aCryptoModule) = 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;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IExtPackBase; */
  NS_IMETHOD GetInternalAndReservedAttribute5IExtPackBase(PRUint32 *aInternalAndReservedAttribute5IExtPackBase) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IExtPackBase; */
  NS_IMETHOD GetInternalAndReservedAttribute6IExtPackBase(PRUint32 *aInternalAndReservedAttribute6IExtPackBase) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IExtPackBase; */
  NS_IMETHOD GetInternalAndReservedAttribute7IExtPackBase(PRUint32 *aInternalAndReservedAttribute7IExtPackBase) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IExtPackBase; */
  NS_IMETHOD GetInternalAndReservedAttribute8IExtPackBase(PRUint32 *aInternalAndReservedAttribute8IExtPackBase) = 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;

  /* void InternalAndReservedMethod2IExtPackBase (); */
  NS_IMETHOD InternalAndReservedMethod2IExtPackBase(void) = 0;

  /* void InternalAndReservedMethod3IExtPackBase (); */
  NS_IMETHOD InternalAndReservedMethod3IExtPackBase(void) = 0;

  /* void InternalAndReservedMethod4IExtPackBase (); */
  NS_IMETHOD InternalAndReservedMethod4IExtPackBase(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IEXTPACKBASE \
  NS_IMETHOD GetName(PRUnichar **aName) NS_OVERRIDE; \
  NS_IMETHOD GetDescription(PRUnichar **aDescription) NS_OVERRIDE; \
  NS_IMETHOD GetVersion(PRUnichar **aVersion) NS_OVERRIDE; \
  NS_IMETHOD GetRevision(PRUint32 *aRevision) NS_OVERRIDE; \
  NS_IMETHOD GetEdition(PRUnichar **aEdition) NS_OVERRIDE; \
  NS_IMETHOD GetVRDEModule(PRUnichar **aVRDEModule) NS_OVERRIDE; \
  NS_IMETHOD GetCryptoModule(PRUnichar **aCryptoModule) NS_OVERRIDE; \
  NS_IMETHOD GetPlugIns(PRUint32 *plugInsSize, IExtPackPlugIn * **plugIns) NS_OVERRIDE; \
  NS_IMETHOD GetUsable(PRBool *aUsable) NS_OVERRIDE; \
  NS_IMETHOD GetWhyUnusable(PRUnichar **aWhyUnusable) NS_OVERRIDE; \
  NS_IMETHOD GetShowLicense(PRBool *aShowLicense) NS_OVERRIDE; \
  NS_IMETHOD GetLicense(PRUnichar **aLicense) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IExtPackBase(PRUint32 *aInternalAndReservedAttribute1IExtPackBase) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IExtPackBase(PRUint32 *aInternalAndReservedAttribute2IExtPackBase) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IExtPackBase(PRUint32 *aInternalAndReservedAttribute3IExtPackBase) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IExtPackBase(PRUint32 *aInternalAndReservedAttribute4IExtPackBase) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IExtPackBase(PRUint32 *aInternalAndReservedAttribute5IExtPackBase) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IExtPackBase(PRUint32 *aInternalAndReservedAttribute6IExtPackBase) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IExtPackBase(PRUint32 *aInternalAndReservedAttribute7IExtPackBase) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IExtPackBase(PRUint32 *aInternalAndReservedAttribute8IExtPackBase) NS_OVERRIDE; \
  NS_IMETHOD QueryLicense(const PRUnichar *preferredLocale, const PRUnichar *preferredLanguage, const PRUnichar *format, PRUnichar **licenseText) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IExtPackBase(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IExtPackBase(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IExtPackBase(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IExtPackBase(void) NS_OVERRIDE; 

/* 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 GetCryptoModule(PRUnichar **aCryptoModule) { return _to GetCryptoModule(aCryptoModule); } \
  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 GetInternalAndReservedAttribute5IExtPackBase(PRUint32 *aInternalAndReservedAttribute5IExtPackBase) { return _to GetInternalAndReservedAttribute5IExtPackBase(aInternalAndReservedAttribute5IExtPackBase); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IExtPackBase(PRUint32 *aInternalAndReservedAttribute6IExtPackBase) { return _to GetInternalAndReservedAttribute6IExtPackBase(aInternalAndReservedAttribute6IExtPackBase); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IExtPackBase(PRUint32 *aInternalAndReservedAttribute7IExtPackBase) { return _to GetInternalAndReservedAttribute7IExtPackBase(aInternalAndReservedAttribute7IExtPackBase); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IExtPackBase(PRUint32 *aInternalAndReservedAttribute8IExtPackBase) { return _to GetInternalAndReservedAttribute8IExtPackBase(aInternalAndReservedAttribute8IExtPackBase); } \
  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(); } \
  NS_IMETHOD InternalAndReservedMethod2IExtPackBase(void) { return _to InternalAndReservedMethod2IExtPackBase(); } \
  NS_IMETHOD InternalAndReservedMethod3IExtPackBase(void) { return _to InternalAndReservedMethod3IExtPackBase(); } \
  NS_IMETHOD InternalAndReservedMethod4IExtPackBase(void) { return _to InternalAndReservedMethod4IExtPackBase(); } 

/* 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 GetCryptoModule(PRUnichar **aCryptoModule) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCryptoModule(aCryptoModule); } \
  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 GetInternalAndReservedAttribute5IExtPackBase(PRUint32 *aInternalAndReservedAttribute5IExtPackBase) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IExtPackBase(aInternalAndReservedAttribute5IExtPackBase); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IExtPackBase(PRUint32 *aInternalAndReservedAttribute6IExtPackBase) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IExtPackBase(aInternalAndReservedAttribute6IExtPackBase); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IExtPackBase(PRUint32 *aInternalAndReservedAttribute7IExtPackBase) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IExtPackBase(aInternalAndReservedAttribute7IExtPackBase); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IExtPackBase(PRUint32 *aInternalAndReservedAttribute8IExtPackBase) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IExtPackBase(aInternalAndReservedAttribute8IExtPackBase); } \
  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(); } \
  NS_IMETHOD InternalAndReservedMethod2IExtPackBase(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IExtPackBase(); } \
  NS_IMETHOD InternalAndReservedMethod3IExtPackBase(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IExtPackBase(); } \
  NS_IMETHOD InternalAndReservedMethod4IExtPackBase(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IExtPackBase(); } 

#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_CryptoModule_TO(smth) NS_IMETHOD GetCryptoModule (PRUnichar * * aCryptoModule) { return smth GetCryptoModule (aCryptoModule); }
#define COM_FORWARD_IExtPackBase_GETTER_CryptoModule_TO_OBJ(obj) COM_FORWARD_IExtPackBase_GETTER_CryptoModule_TO ((obj)->)
#define COM_FORWARD_IExtPackBase_GETTER_CryptoModule_TO_BASE(base) COM_FORWARD_IExtPackBase_GETTER_CryptoModule_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) NS_OVERRIDE; 

/* 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); } 

#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 "41304f1b-7e72-4f34-b8f6-682785620c57"

#define IEXTPACKFILE_IID \
  {0x41304f1b, 0x7e72, 0x4f34, \
    { 0xb8, 0xf6, 0x68, 0x27, 0x85, 0x62, 0x0c, 0x57 }}

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;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IExtPackFile; */
  NS_IMETHOD GetInternalAndReservedAttribute3IExtPackFile(PRUint32 *aInternalAndReservedAttribute3IExtPackFile) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IExtPackFile; */
  NS_IMETHOD GetInternalAndReservedAttribute4IExtPackFile(PRUint32 *aInternalAndReservedAttribute4IExtPackFile) = 0;

  /* void install (in boolean replace, in wstring displayInfo, [retval] out IProgress progress); */
  NS_IMETHOD Install(PRBool replace, const PRUnichar *displayInfo, IProgress * *progress) = 0;

  /* void InternalAndReservedMethod1IExtPackFile (); */
  NS_IMETHOD InternalAndReservedMethod1IExtPackFile(void) = 0;

  /* void InternalAndReservedMethod2IExtPackFile (); */
  NS_IMETHOD InternalAndReservedMethod2IExtPackFile(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IEXTPACKFILE \
  NS_IMETHOD GetFilePath(PRUnichar **aFilePath) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IExtPackFile(PRUint32 *aInternalAndReservedAttribute1IExtPackFile) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IExtPackFile(PRUint32 *aInternalAndReservedAttribute2IExtPackFile) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IExtPackFile(PRUint32 *aInternalAndReservedAttribute3IExtPackFile) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IExtPackFile(PRUint32 *aInternalAndReservedAttribute4IExtPackFile) NS_OVERRIDE; \
  NS_IMETHOD Install(PRBool replace, const PRUnichar *displayInfo, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IExtPackFile(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IExtPackFile(void) NS_OVERRIDE; 

/* 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 GetInternalAndReservedAttribute3IExtPackFile(PRUint32 *aInternalAndReservedAttribute3IExtPackFile) { return _to GetInternalAndReservedAttribute3IExtPackFile(aInternalAndReservedAttribute3IExtPackFile); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IExtPackFile(PRUint32 *aInternalAndReservedAttribute4IExtPackFile) { return _to GetInternalAndReservedAttribute4IExtPackFile(aInternalAndReservedAttribute4IExtPackFile); } \
  NS_IMETHOD Install(PRBool replace, const PRUnichar *displayInfo, IProgress * *progress) { return _to Install(replace, displayInfo, progress); } \
  NS_IMETHOD InternalAndReservedMethod1IExtPackFile(void) { return _to InternalAndReservedMethod1IExtPackFile(); } \
  NS_IMETHOD InternalAndReservedMethod2IExtPackFile(void) { return _to InternalAndReservedMethod2IExtPackFile(); } 

/* 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 GetInternalAndReservedAttribute3IExtPackFile(PRUint32 *aInternalAndReservedAttribute3IExtPackFile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IExtPackFile(aInternalAndReservedAttribute3IExtPackFile); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IExtPackFile(PRUint32 *aInternalAndReservedAttribute4IExtPackFile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IExtPackFile(aInternalAndReservedAttribute4IExtPackFile); } \
  NS_IMETHOD Install(PRBool replace, const PRUnichar *displayInfo, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->Install(replace, displayInfo, progress); } \
  NS_IMETHOD InternalAndReservedMethod1IExtPackFile(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IExtPackFile(); } \
  NS_IMETHOD InternalAndReservedMethod2IExtPackFile(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IExtPackFile(); } 

#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 * * aProgress) { return smth Install (aReplace, aDisplayInfo, aProgress); }
#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 "70401eef-c8e9-466b-9660-45cb3e9979e4"

#define IEXTPACKMANAGER_IID \
  {0x70401eef, 0xc8e9, 0x466b, \
    { 0x96, 0x60, 0x45, 0xcb, 0x3e, 0x99, 0x79, 0xe4 }}

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;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IExtPackManager; */
  NS_IMETHOD GetInternalAndReservedAttribute3IExtPackManager(PRUint32 *aInternalAndReservedAttribute3IExtPackManager) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IExtPackManager; */
  NS_IMETHOD GetInternalAndReservedAttribute4IExtPackManager(PRUint32 *aInternalAndReservedAttribute4IExtPackManager) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IExtPackManager; */
  NS_IMETHOD GetInternalAndReservedAttribute5IExtPackManager(PRUint32 *aInternalAndReservedAttribute5IExtPackManager) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IExtPackManager; */
  NS_IMETHOD GetInternalAndReservedAttribute6IExtPackManager(PRUint32 *aInternalAndReservedAttribute6IExtPackManager) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IExtPackManager; */
  NS_IMETHOD GetInternalAndReservedAttribute7IExtPackManager(PRUint32 *aInternalAndReservedAttribute7IExtPackManager) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IExtPackManager; */
  NS_IMETHOD GetInternalAndReservedAttribute8IExtPackManager(PRUint32 *aInternalAndReservedAttribute8IExtPackManager) = 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 progress); */
  NS_IMETHOD Uninstall(const PRUnichar *name, PRBool forcedRemoval, const PRUnichar *displayInfo, IProgress * *progress) = 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;

  /* void InternalAndReservedMethod2IExtPackManager (); */
  NS_IMETHOD InternalAndReservedMethod2IExtPackManager(void) = 0;

  /* void InternalAndReservedMethod3IExtPackManager (); */
  NS_IMETHOD InternalAndReservedMethod3IExtPackManager(void) = 0;

  /* void InternalAndReservedMethod4IExtPackManager (); */
  NS_IMETHOD InternalAndReservedMethod4IExtPackManager(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IEXTPACKMANAGER \
  NS_IMETHOD GetInstalledExtPacks(PRUint32 *installedExtPacksSize, IExtPack * **installedExtPacks) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IExtPackManager(PRUint32 *aInternalAndReservedAttribute1IExtPackManager) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IExtPackManager(PRUint32 *aInternalAndReservedAttribute2IExtPackManager) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IExtPackManager(PRUint32 *aInternalAndReservedAttribute3IExtPackManager) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IExtPackManager(PRUint32 *aInternalAndReservedAttribute4IExtPackManager) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IExtPackManager(PRUint32 *aInternalAndReservedAttribute5IExtPackManager) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IExtPackManager(PRUint32 *aInternalAndReservedAttribute6IExtPackManager) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IExtPackManager(PRUint32 *aInternalAndReservedAttribute7IExtPackManager) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IExtPackManager(PRUint32 *aInternalAndReservedAttribute8IExtPackManager) NS_OVERRIDE; \
  NS_IMETHOD Find(const PRUnichar *name, IExtPack * *returnData) NS_OVERRIDE; \
  NS_IMETHOD OpenExtPackFile(const PRUnichar *path, IExtPackFile * *file) NS_OVERRIDE; \
  NS_IMETHOD Uninstall(const PRUnichar *name, PRBool forcedRemoval, const PRUnichar *displayInfo, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD Cleanup(void) NS_OVERRIDE; \
  NS_IMETHOD QueryAllPlugInsForFrontend(const PRUnichar *frontendName, PRUint32 *plugInModulesSize, PRUnichar ***plugInModules) NS_OVERRIDE; \
  NS_IMETHOD IsExtPackUsable(const PRUnichar *name, PRBool *usable) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IExtPackManager(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IExtPackManager(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IExtPackManager(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IExtPackManager(void) NS_OVERRIDE; 

/* 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 GetInternalAndReservedAttribute3IExtPackManager(PRUint32 *aInternalAndReservedAttribute3IExtPackManager) { return _to GetInternalAndReservedAttribute3IExtPackManager(aInternalAndReservedAttribute3IExtPackManager); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IExtPackManager(PRUint32 *aInternalAndReservedAttribute4IExtPackManager) { return _to GetInternalAndReservedAttribute4IExtPackManager(aInternalAndReservedAttribute4IExtPackManager); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IExtPackManager(PRUint32 *aInternalAndReservedAttribute5IExtPackManager) { return _to GetInternalAndReservedAttribute5IExtPackManager(aInternalAndReservedAttribute5IExtPackManager); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IExtPackManager(PRUint32 *aInternalAndReservedAttribute6IExtPackManager) { return _to GetInternalAndReservedAttribute6IExtPackManager(aInternalAndReservedAttribute6IExtPackManager); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IExtPackManager(PRUint32 *aInternalAndReservedAttribute7IExtPackManager) { return _to GetInternalAndReservedAttribute7IExtPackManager(aInternalAndReservedAttribute7IExtPackManager); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IExtPackManager(PRUint32 *aInternalAndReservedAttribute8IExtPackManager) { return _to GetInternalAndReservedAttribute8IExtPackManager(aInternalAndReservedAttribute8IExtPackManager); } \
  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 * *progress) { return _to Uninstall(name, forcedRemoval, displayInfo, progress); } \
  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(); } \
  NS_IMETHOD InternalAndReservedMethod2IExtPackManager(void) { return _to InternalAndReservedMethod2IExtPackManager(); } \
  NS_IMETHOD InternalAndReservedMethod3IExtPackManager(void) { return _to InternalAndReservedMethod3IExtPackManager(); } \
  NS_IMETHOD InternalAndReservedMethod4IExtPackManager(void) { return _to InternalAndReservedMethod4IExtPackManager(); } 

/* 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 GetInternalAndReservedAttribute3IExtPackManager(PRUint32 *aInternalAndReservedAttribute3IExtPackManager) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IExtPackManager(aInternalAndReservedAttribute3IExtPackManager); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IExtPackManager(PRUint32 *aInternalAndReservedAttribute4IExtPackManager) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IExtPackManager(aInternalAndReservedAttribute4IExtPackManager); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IExtPackManager(PRUint32 *aInternalAndReservedAttribute5IExtPackManager) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IExtPackManager(aInternalAndReservedAttribute5IExtPackManager); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IExtPackManager(PRUint32 *aInternalAndReservedAttribute6IExtPackManager) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IExtPackManager(aInternalAndReservedAttribute6IExtPackManager); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IExtPackManager(PRUint32 *aInternalAndReservedAttribute7IExtPackManager) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IExtPackManager(aInternalAndReservedAttribute7IExtPackManager); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IExtPackManager(PRUint32 *aInternalAndReservedAttribute8IExtPackManager) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IExtPackManager(aInternalAndReservedAttribute8IExtPackManager); } \
  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 * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->Uninstall(name, forcedRemoval, displayInfo, progress); } \
  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(); } \
  NS_IMETHOD InternalAndReservedMethod2IExtPackManager(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IExtPackManager(); } \
  NS_IMETHOD InternalAndReservedMethod3IExtPackManager(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IExtPackManager(); } \
  NS_IMETHOD InternalAndReservedMethod4IExtPackManager(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IExtPackManager(); } 

#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 * * aProgress) { return smth Uninstall (aName, aForcedRemoval, aDisplayInfo, aProgress); }
#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 BandwidthGroupType_T type; */
  NS_IMETHOD GetType(BandwidthGroupType_T *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_OVERRIDE; \
  NS_IMETHOD GetType(BandwidthGroupType_T *aType) NS_OVERRIDE; \
  NS_IMETHOD GetReference(PRUint32 *aReference) NS_OVERRIDE; \
  NS_IMETHOD GetMaxBytesPerSec(PRInt64 *aMaxBytesPerSec) NS_OVERRIDE; \
  NS_IMETHOD SetMaxBytesPerSec(PRInt64 aMaxBytesPerSec) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IBandwidthGroup(PRUint32 *aInternalAndReservedAttribute1IBandwidthGroup) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IBandwidthGroup(PRUint32 *aInternalAndReservedAttribute2IBandwidthGroup) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IBandwidthGroup(PRUint32 *aInternalAndReservedAttribute3IBandwidthGroup) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IBandwidthGroup(PRUint32 *aInternalAndReservedAttribute4IBandwidthGroup) NS_OVERRIDE; 

/* 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(BandwidthGroupType_T *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(BandwidthGroupType_T *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); } 

#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 BandwidthGroupType_T type, in long long maxBytesPerSec); */
  NS_IMETHOD CreateBandwidthGroup(const PRUnichar *name, BandwidthGroupType_T 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_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IBandwidthControl(PRUint32 *aInternalAndReservedAttribute1IBandwidthControl) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IBandwidthControl(PRUint32 *aInternalAndReservedAttribute2IBandwidthControl) NS_OVERRIDE; \
  NS_IMETHOD CreateBandwidthGroup(const PRUnichar *name, BandwidthGroupType_T type, PRInt64 maxBytesPerSec) NS_OVERRIDE; \
  NS_IMETHOD DeleteBandwidthGroup(const PRUnichar *name) NS_OVERRIDE; \
  NS_IMETHOD GetBandwidthGroup(const PRUnichar *name, IBandwidthGroup * *bandwidthGroup) NS_OVERRIDE; \
  NS_IMETHOD GetAllBandwidthGroups(PRUint32 *bandwidthGroupsSize, IBandwidthGroup * **bandwidthGroups) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IBandwidthControl(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IBandwidthControl(void) NS_OVERRIDE; 

/* 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, BandwidthGroupType_T 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, BandwidthGroupType_T 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(); } 

#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:    IGuestDebugControl */
#define IGUESTDEBUGCONTROL_IID_STR "1474bb3a-f096-4cd7-a857-8d8e3cea7331"

#define IGUESTDEBUGCONTROL_IID \
  {0x1474bb3a, 0xf096, 0x4cd7, \
    { 0xa8, 0x57, 0x8d, 0x8e, 0x3c, 0xea, 0x73, 0x31 }}

class NS_NO_VTABLE IGuestDebugControl : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTDEBUGCONTROL_IID)

  /* attribute GuestDebugProvider_T debugProvider; */
  NS_IMETHOD GetDebugProvider(GuestDebugProvider_T *aDebugProvider) = 0;
  NS_IMETHOD SetDebugProvider(GuestDebugProvider_T aDebugProvider) = 0;

  /* attribute GuestDebugIoProvider_T debugIoProvider; */
  NS_IMETHOD GetDebugIoProvider(GuestDebugIoProvider_T *aDebugIoProvider) = 0;
  NS_IMETHOD SetDebugIoProvider(GuestDebugIoProvider_T aDebugIoProvider) = 0;

  /* attribute wstring debugAddress; */
  NS_IMETHOD GetDebugAddress(PRUnichar **aDebugAddress) = 0;
  NS_IMETHOD SetDebugAddress(const PRUnichar *aDebugAddress) = 0;

  /* attribute unsigned long debugPort; */
  NS_IMETHOD GetDebugPort(PRUint32 *aDebugPort) = 0;
  NS_IMETHOD SetDebugPort(PRUint32 aDebugPort) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IGuestDebugControl; */
  NS_IMETHOD GetInternalAndReservedAttribute1IGuestDebugControl(PRUint32 *aInternalAndReservedAttribute1IGuestDebugControl) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IGuestDebugControl; */
  NS_IMETHOD GetInternalAndReservedAttribute2IGuestDebugControl(PRUint32 *aInternalAndReservedAttribute2IGuestDebugControl) = 0;

  /* void InternalAndReservedMethod1IGuestDebugControl (); */
  NS_IMETHOD InternalAndReservedMethod1IGuestDebugControl(void) = 0;

  /* void InternalAndReservedMethod2IGuestDebugControl (); */
  NS_IMETHOD InternalAndReservedMethod2IGuestDebugControl(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTDEBUGCONTROL \
  NS_IMETHOD GetDebugProvider(GuestDebugProvider_T *aDebugProvider) NS_OVERRIDE; \
  NS_IMETHOD SetDebugProvider(GuestDebugProvider_T aDebugProvider) NS_OVERRIDE; \
  NS_IMETHOD GetDebugIoProvider(GuestDebugIoProvider_T *aDebugIoProvider) NS_OVERRIDE; \
  NS_IMETHOD SetDebugIoProvider(GuestDebugIoProvider_T aDebugIoProvider) NS_OVERRIDE; \
  NS_IMETHOD GetDebugAddress(PRUnichar **aDebugAddress) NS_OVERRIDE; \
  NS_IMETHOD SetDebugAddress(const PRUnichar *aDebugAddress) NS_OVERRIDE; \
  NS_IMETHOD GetDebugPort(PRUint32 *aDebugPort) NS_OVERRIDE; \
  NS_IMETHOD SetDebugPort(PRUint32 aDebugPort) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IGuestDebugControl(PRUint32 *aInternalAndReservedAttribute1IGuestDebugControl) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IGuestDebugControl(PRUint32 *aInternalAndReservedAttribute2IGuestDebugControl) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IGuestDebugControl(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IGuestDebugControl(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTDEBUGCONTROL(_to) \
  NS_IMETHOD GetDebugProvider(GuestDebugProvider_T *aDebugProvider) { return _to GetDebugProvider(aDebugProvider); } \
  NS_IMETHOD SetDebugProvider(GuestDebugProvider_T aDebugProvider) { return _to SetDebugProvider(aDebugProvider); } \
  NS_IMETHOD GetDebugIoProvider(GuestDebugIoProvider_T *aDebugIoProvider) { return _to GetDebugIoProvider(aDebugIoProvider); } \
  NS_IMETHOD SetDebugIoProvider(GuestDebugIoProvider_T aDebugIoProvider) { return _to SetDebugIoProvider(aDebugIoProvider); } \
  NS_IMETHOD GetDebugAddress(PRUnichar **aDebugAddress) { return _to GetDebugAddress(aDebugAddress); } \
  NS_IMETHOD SetDebugAddress(const PRUnichar *aDebugAddress) { return _to SetDebugAddress(aDebugAddress); } \
  NS_IMETHOD GetDebugPort(PRUint32 *aDebugPort) { return _to GetDebugPort(aDebugPort); } \
  NS_IMETHOD SetDebugPort(PRUint32 aDebugPort) { return _to SetDebugPort(aDebugPort); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IGuestDebugControl(PRUint32 *aInternalAndReservedAttribute1IGuestDebugControl) { return _to GetInternalAndReservedAttribute1IGuestDebugControl(aInternalAndReservedAttribute1IGuestDebugControl); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IGuestDebugControl(PRUint32 *aInternalAndReservedAttribute2IGuestDebugControl) { return _to GetInternalAndReservedAttribute2IGuestDebugControl(aInternalAndReservedAttribute2IGuestDebugControl); } \
  NS_IMETHOD InternalAndReservedMethod1IGuestDebugControl(void) { return _to InternalAndReservedMethod1IGuestDebugControl(); } \
  NS_IMETHOD InternalAndReservedMethod2IGuestDebugControl(void) { return _to InternalAndReservedMethod2IGuestDebugControl(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGUESTDEBUGCONTROL(_to) \
  NS_IMETHOD GetDebugProvider(GuestDebugProvider_T *aDebugProvider) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDebugProvider(aDebugProvider); } \
  NS_IMETHOD SetDebugProvider(GuestDebugProvider_T aDebugProvider) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDebugProvider(aDebugProvider); } \
  NS_IMETHOD GetDebugIoProvider(GuestDebugIoProvider_T *aDebugIoProvider) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDebugIoProvider(aDebugIoProvider); } \
  NS_IMETHOD SetDebugIoProvider(GuestDebugIoProvider_T aDebugIoProvider) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDebugIoProvider(aDebugIoProvider); } \
  NS_IMETHOD GetDebugAddress(PRUnichar **aDebugAddress) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDebugAddress(aDebugAddress); } \
  NS_IMETHOD SetDebugAddress(const PRUnichar *aDebugAddress) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDebugAddress(aDebugAddress); } \
  NS_IMETHOD GetDebugPort(PRUint32 *aDebugPort) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDebugPort(aDebugPort); } \
  NS_IMETHOD SetDebugPort(PRUint32 aDebugPort) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDebugPort(aDebugPort); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IGuestDebugControl(PRUint32 *aInternalAndReservedAttribute1IGuestDebugControl) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IGuestDebugControl(aInternalAndReservedAttribute1IGuestDebugControl); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IGuestDebugControl(PRUint32 *aInternalAndReservedAttribute2IGuestDebugControl) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IGuestDebugControl(aInternalAndReservedAttribute2IGuestDebugControl); } \
  NS_IMETHOD InternalAndReservedMethod1IGuestDebugControl(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IGuestDebugControl(); } \
  NS_IMETHOD InternalAndReservedMethod2IGuestDebugControl(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IGuestDebugControl(); } 

#define COM_FORWARD_IGuestDebugControl_GETTER_DebugProvider_TO(smth) NS_IMETHOD GetDebugProvider (PRUint32 * aDebugProvider) { return smth GetDebugProvider (aDebugProvider); }
#define COM_FORWARD_IGuestDebugControl_GETTER_DebugProvider_TO_OBJ(obj) COM_FORWARD_IGuestDebugControl_GETTER_DebugProvider_TO ((obj)->)
#define COM_FORWARD_IGuestDebugControl_GETTER_DebugProvider_TO_BASE(base) COM_FORWARD_IGuestDebugControl_GETTER_DebugProvider_TO (base::)
#define COM_FORWARD_IGuestDebugControl_SETTER_DebugProvider_TO(smth) NS_IMETHOD SetDebugProvider (PRUint32 aDebugProvider) { return smth SetDebugProvider (aDebugProvider); }
#define COM_FORWARD_IGuestDebugControl_SETTER_DebugProvider_TO_OBJ(obj) COM_FORWARD_IGuestDebugControl_SETTER_DebugProvider_TO ((obj)->)
#define COM_FORWARD_IGuestDebugControl_SETTER_DebugProvider_TO_BASE(base) COM_FORWARD_IGuestDebugControl_SETTER_DebugProvider_TO (base::)
#define COM_FORWARD_IGuestDebugControl_GETTER_DebugIoProvider_TO(smth) NS_IMETHOD GetDebugIoProvider (PRUint32 * aDebugIoProvider) { return smth GetDebugIoProvider (aDebugIoProvider); }
#define COM_FORWARD_IGuestDebugControl_GETTER_DebugIoProvider_TO_OBJ(obj) COM_FORWARD_IGuestDebugControl_GETTER_DebugIoProvider_TO ((obj)->)
#define COM_FORWARD_IGuestDebugControl_GETTER_DebugIoProvider_TO_BASE(base) COM_FORWARD_IGuestDebugControl_GETTER_DebugIoProvider_TO (base::)
#define COM_FORWARD_IGuestDebugControl_SETTER_DebugIoProvider_TO(smth) NS_IMETHOD SetDebugIoProvider (PRUint32 aDebugIoProvider) { return smth SetDebugIoProvider (aDebugIoProvider); }
#define COM_FORWARD_IGuestDebugControl_SETTER_DebugIoProvider_TO_OBJ(obj) COM_FORWARD_IGuestDebugControl_SETTER_DebugIoProvider_TO ((obj)->)
#define COM_FORWARD_IGuestDebugControl_SETTER_DebugIoProvider_TO_BASE(base) COM_FORWARD_IGuestDebugControl_SETTER_DebugIoProvider_TO (base::)
#define COM_FORWARD_IGuestDebugControl_GETTER_DebugAddress_TO(smth) NS_IMETHOD GetDebugAddress (PRUnichar * * aDebugAddress) { return smth GetDebugAddress (aDebugAddress); }
#define COM_FORWARD_IGuestDebugControl_GETTER_DebugAddress_TO_OBJ(obj) COM_FORWARD_IGuestDebugControl_GETTER_DebugAddress_TO ((obj)->)
#define COM_FORWARD_IGuestDebugControl_GETTER_DebugAddress_TO_BASE(base) COM_FORWARD_IGuestDebugControl_GETTER_DebugAddress_TO (base::)
#define COM_FORWARD_IGuestDebugControl_SETTER_DebugAddress_TO(smth) NS_IMETHOD SetDebugAddress (const PRUnichar * aDebugAddress) { return smth SetDebugAddress (aDebugAddress); }
#define COM_FORWARD_IGuestDebugControl_SETTER_DebugAddress_TO_OBJ(obj) COM_FORWARD_IGuestDebugControl_SETTER_DebugAddress_TO ((obj)->)
#define COM_FORWARD_IGuestDebugControl_SETTER_DebugAddress_TO_BASE(base) COM_FORWARD_IGuestDebugControl_SETTER_DebugAddress_TO (base::)
#define COM_FORWARD_IGuestDebugControl_GETTER_DebugPort_TO(smth) NS_IMETHOD GetDebugPort (PRUint32 * aDebugPort) { return smth GetDebugPort (aDebugPort); }
#define COM_FORWARD_IGuestDebugControl_GETTER_DebugPort_TO_OBJ(obj) COM_FORWARD_IGuestDebugControl_GETTER_DebugPort_TO ((obj)->)
#define COM_FORWARD_IGuestDebugControl_GETTER_DebugPort_TO_BASE(base) COM_FORWARD_IGuestDebugControl_GETTER_DebugPort_TO (base::)
#define COM_FORWARD_IGuestDebugControl_SETTER_DebugPort_TO(smth) NS_IMETHOD SetDebugPort (PRUint32 aDebugPort) { return smth SetDebugPort (aDebugPort); }
#define COM_FORWARD_IGuestDebugControl_SETTER_DebugPort_TO_OBJ(obj) COM_FORWARD_IGuestDebugControl_SETTER_DebugPort_TO ((obj)->)
#define COM_FORWARD_IGuestDebugControl_SETTER_DebugPort_TO_BASE(base) COM_FORWARD_IGuestDebugControl_SETTER_DebugPort_TO (base::)
#define COM_FORWARD_IGuestDebugControl_TO(smth) NS_FORWARD_IGUESTDEBUGCONTROL (smth)
#define COM_FORWARD_IGuestDebugControl_TO_OBJ(obj) COM_FORWARD_IGuestDebugControl_TO ((obj)->)
#define COM_FORWARD_IGuestDebugControl_TO_BASE(base) COM_FORWARD_IGuestDebugControl_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestDebugControl;

/* 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_OVERRIDE; \
  NS_IMETHOD GetSession(ISession * *aSession) NS_OVERRIDE; \
  NS_IMETHOD GetEventSource(IEventSource * *aEventSource) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IVirtualBoxClient(PRUint32 *aInternalAndReservedAttribute1IVirtualBoxClient) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IVirtualBoxClient(PRUint32 *aInternalAndReservedAttribute2IVirtualBoxClient) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IVirtualBoxClient(PRUint32 *aInternalAndReservedAttribute3IVirtualBoxClient) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IVirtualBoxClient(PRUint32 *aInternalAndReservedAttribute4IVirtualBoxClient) NS_OVERRIDE; \
  NS_IMETHOD CheckMachineError(IMachine * machine) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IVirtualBoxClient(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IVirtualBoxClient(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IVirtualBoxClient(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IVirtualBoxClient(void) NS_OVERRIDE; 

/* 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(); } 

#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 VBoxEventType_T interesting, in boolean active); */
  NS_IMETHOD RegisterListener(IEventListener * listener, PRUint32 interestingSize, VBoxEventType_T *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_OVERRIDE; \
  NS_IMETHOD CreateAggregator(PRUint32 subordinatesSize, IEventSource * *subordinates, IEventSource * *result) NS_OVERRIDE; \
  NS_IMETHOD RegisterListener(IEventListener * listener, PRUint32 interestingSize, VBoxEventType_T *interesting, PRBool active) NS_OVERRIDE; \
  NS_IMETHOD UnregisterListener(IEventListener * listener) NS_OVERRIDE; \
  NS_IMETHOD FireEvent(IEvent * event, PRInt32 timeout, PRBool *result) NS_OVERRIDE; \
  NS_IMETHOD GetEvent(IEventListener * listener, PRInt32 timeout, IEvent * *event) NS_OVERRIDE; \
  NS_IMETHOD EventProcessed(IEventListener * listener, IEvent * event) NS_OVERRIDE; 

/* 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, VBoxEventType_T *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, VBoxEventType_T *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); } 

#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) NS_OVERRIDE; 

/* 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); } 

#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 VBoxEventType_T type; */
  NS_IMETHOD GetType(VBoxEventType_T *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(VBoxEventType_T *aType) NS_OVERRIDE; \
  NS_IMETHOD GetSource(IEventSource * *aSource) NS_OVERRIDE; \
  NS_IMETHOD GetWaitable(PRBool *aWaitable) NS_OVERRIDE; \
  NS_IMETHOD SetProcessed(void) NS_OVERRIDE; \
  NS_IMETHOD WaitProcessed(PRInt32 timeout, PRBool *result) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IEVENT(_to) \
  NS_IMETHOD GetType(VBoxEventType_T *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(VBoxEventType_T *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); } 

#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_OVERRIDE; \
  NS_IMETHOD Reuse(void) NS_OVERRIDE; 

/* 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(); } 

#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) NS_OVERRIDE; 

/* 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); } 

#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 MachineState_T state; */
  NS_IMETHOD GetState(MachineState_T *aState) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IMACHINESTATECHANGEDEVENT \
  NS_IMETHOD GetState(MachineState_T *aState) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IMACHINESTATECHANGEDEVENT(_to) \
  NS_IMETHOD GetState(MachineState_T *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(MachineState_T *aState) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetState(aState); } 

#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:    IExtPackInstalledEvent */
#define IEXTPACKINSTALLEDEVENT_IID_STR "29059fea-2c99-11ee-be56-0242ac120002"

#define IEXTPACKINSTALLEDEVENT_IID \
  {0x29059fea, 0x2c99, 0x11ee, \
    { 0xbe, 0x56, 0x02, 0x42, 0xac, 0x12, 0x00, 0x02 }}

class NS_NO_VTABLE IExtPackInstalledEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IEXTPACKINSTALLEDEVENT_IID)

  /* readonly attribute wstring name; */
  NS_IMETHOD GetName(PRUnichar **aName) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IEXTPACKINSTALLEDEVENT \
  NS_IMETHOD GetName(PRUnichar **aName) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IEXTPACKINSTALLEDEVENT(_to) \
  NS_IMETHOD GetName(PRUnichar **aName) { return _to GetName(aName); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IEXTPACKINSTALLEDEVENT(_to) \
  NS_IMETHOD GetName(PRUnichar **aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } 

#define COM_FORWARD_IExtPackInstalledEvent_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_IExtPackInstalledEvent_GETTER_Name_TO_OBJ(obj) COM_FORWARD_IExtPackInstalledEvent_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_IExtPackInstalledEvent_GETTER_Name_TO_BASE(base) COM_FORWARD_IExtPackInstalledEvent_GETTER_Name_TO (base::)
#define COM_FORWARD_IExtPackInstalledEvent_TO(smth) NS_FORWARD_IEXTPACKINSTALLEDEVENT (smth)
#define COM_FORWARD_IExtPackInstalledEvent_TO_OBJ(obj) COM_FORWARD_IExtPackInstalledEvent_TO ((obj)->)
#define COM_FORWARD_IExtPackInstalledEvent_TO_BASE(base) COM_FORWARD_IExtPackInstalledEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IExtPackInstalledEvent;

/* starting interface:    IExtPackUninstalledEvent */
#define IEXTPACKUNINSTALLEDEVENT_IID_STR "31aab263-95ef-48a4-9ce7-eaf0d3ae150f"

#define IEXTPACKUNINSTALLEDEVENT_IID \
  {0x31aab263, 0x95ef, 0x48a4, \
    { 0x9c, 0xe7, 0xea, 0xf0, 0xd3, 0xae, 0x15, 0x0f }}

class NS_NO_VTABLE IExtPackUninstalledEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IEXTPACKUNINSTALLEDEVENT_IID)

  /* readonly attribute wstring name; */
  NS_IMETHOD GetName(PRUnichar **aName) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IEXTPACKUNINSTALLEDEVENT \
  NS_IMETHOD GetName(PRUnichar **aName) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IEXTPACKUNINSTALLEDEVENT(_to) \
  NS_IMETHOD GetName(PRUnichar **aName) { return _to GetName(aName); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IEXTPACKUNINSTALLEDEVENT(_to) \
  NS_IMETHOD GetName(PRUnichar **aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } 

#define COM_FORWARD_IExtPackUninstalledEvent_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_IExtPackUninstalledEvent_GETTER_Name_TO_OBJ(obj) COM_FORWARD_IExtPackUninstalledEvent_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_IExtPackUninstalledEvent_GETTER_Name_TO_BASE(base) COM_FORWARD_IExtPackUninstalledEvent_GETTER_Name_TO (base::)
#define COM_FORWARD_IExtPackUninstalledEvent_TO(smth) NS_FORWARD_IEXTPACKUNINSTALLEDEVENT (smth)
#define COM_FORWARD_IExtPackUninstalledEvent_TO_OBJ(obj) COM_FORWARD_IExtPackUninstalledEvent_TO ((obj)->)
#define COM_FORWARD_IExtPackUninstalledEvent_TO_BASE(base) COM_FORWARD_IExtPackUninstalledEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IExtPackUninstalledEvent;

/* 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) NS_OVERRIDE; 

/* 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); } 

#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 DeviceType_T mediumType; */
  NS_IMETHOD GetMediumType(DeviceType_T *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_OVERRIDE; \
  NS_IMETHOD GetMediumType(DeviceType_T *aMediumType) NS_OVERRIDE; \
  NS_IMETHOD GetRegistered(PRBool *aRegistered) NS_OVERRIDE; 

/* 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(DeviceType_T *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(DeviceType_T *aMediumType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMediumType(aMediumType); } \
  NS_IMETHOD GetRegistered(PRBool *aRegistered) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRegistered(aRegistered); } 

#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) NS_OVERRIDE; 

/* 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); } 

#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) NS_OVERRIDE; 

/* 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); } 

#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 SessionState_T state; */
  NS_IMETHOD GetState(SessionState_T *aState) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ISESSIONSTATECHANGEDEVENT \
  NS_IMETHOD GetState(SessionState_T *aState) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ISESSIONSTATECHANGEDEVENT(_to) \
  NS_IMETHOD GetState(SessionState_T *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(SessionState_T *aState) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetState(aState); } 

#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 "2d0f4c6f-a77e-45c5-96d2-7ca7daae63a9"

#define IGUESTPROPERTYCHANGEDEVENT_IID \
  {0x2d0f4c6f, 0xa77e, 0x45c5, \
    { 0x96, 0xd2, 0x7c, 0xa7, 0xda, 0xae, 0x63, 0xa9 }}

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;

  /* readonly attribute boolean fWasDeleted; */
  NS_IMETHOD GetFWasDeleted(PRBool *aFWasDeleted) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTPROPERTYCHANGEDEVENT \
  NS_IMETHOD GetName(PRUnichar **aName) NS_OVERRIDE; \
  NS_IMETHOD GetValue(PRUnichar **aValue) NS_OVERRIDE; \
  NS_IMETHOD GetFlags(PRUnichar **aFlags) NS_OVERRIDE; \
  NS_IMETHOD GetFWasDeleted(PRBool *aFWasDeleted) NS_OVERRIDE; 

/* 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); } \
  NS_IMETHOD GetFWasDeleted(PRBool *aFWasDeleted) { return _to GetFWasDeleted(aFWasDeleted); } 

/* 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); } \
  NS_IMETHOD GetFWasDeleted(PRBool *aFWasDeleted) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFWasDeleted(aFWasDeleted); } 

#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_GETTER_FWasDeleted_TO(smth) NS_IMETHOD GetFWasDeleted (PRBool * aFWasDeleted) { return smth GetFWasDeleted (aFWasDeleted); }
#define COM_FORWARD_IGuestPropertyChangedEvent_GETTER_FWasDeleted_TO_OBJ(obj) COM_FORWARD_IGuestPropertyChangedEvent_GETTER_FWasDeleted_TO ((obj)->)
#define COM_FORWARD_IGuestPropertyChangedEvent_GETTER_FWasDeleted_TO_BASE(base) COM_FORWARD_IGuestPropertyChangedEvent_GETTER_FWasDeleted_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) NS_OVERRIDE; 

/* 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); } 

#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) NS_OVERRIDE; 

/* 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); } 

#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) NS_OVERRIDE; 

/* 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); } 

#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) NS_OVERRIDE; 

/* 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); } 

#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) NS_OVERRIDE; 

/* 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); } 

#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_OVERRIDE; \
  NS_IMETHOD GetAlpha(PRBool *aAlpha) NS_OVERRIDE; \
  NS_IMETHOD GetXhot(PRUint32 *aXhot) NS_OVERRIDE; \
  NS_IMETHOD GetYhot(PRUint32 *aYhot) NS_OVERRIDE; \
  NS_IMETHOD GetWidth(PRUint32 *aWidth) NS_OVERRIDE; \
  NS_IMETHOD GetHeight(PRUint32 *aHeight) NS_OVERRIDE; \
  NS_IMETHOD GetShape(PRUint32 *shapeSize, PRUint8 **shape) NS_OVERRIDE; 

/* 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); } 

#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 "4a773393-7a8c-4d57-b228-9ade4049a81f"

#define IMOUSECAPABILITYCHANGEDEVENT_IID \
  {0x4a773393, 0x7a8c, 0x4d57, \
    { 0xb2, 0x28, 0x9a, 0xde, 0x40, 0x49, 0xa8, 0x1f }}

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 supportsTouchScreen; */
  NS_IMETHOD GetSupportsTouchScreen(PRBool *aSupportsTouchScreen) = 0;

  /* readonly attribute boolean supportsTouchPad; */
  NS_IMETHOD GetSupportsTouchPad(PRBool *aSupportsTouchPad) = 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_OVERRIDE; \
  NS_IMETHOD GetSupportsRelative(PRBool *aSupportsRelative) NS_OVERRIDE; \
  NS_IMETHOD GetSupportsTouchScreen(PRBool *aSupportsTouchScreen) NS_OVERRIDE; \
  NS_IMETHOD GetSupportsTouchPad(PRBool *aSupportsTouchPad) NS_OVERRIDE; \
  NS_IMETHOD GetNeedsHostCursor(PRBool *aNeedsHostCursor) NS_OVERRIDE; 

/* 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 GetSupportsTouchScreen(PRBool *aSupportsTouchScreen) { return _to GetSupportsTouchScreen(aSupportsTouchScreen); } \
  NS_IMETHOD GetSupportsTouchPad(PRBool *aSupportsTouchPad) { return _to GetSupportsTouchPad(aSupportsTouchPad); } \
  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 GetSupportsTouchScreen(PRBool *aSupportsTouchScreen) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportsTouchScreen(aSupportsTouchScreen); } \
  NS_IMETHOD GetSupportsTouchPad(PRBool *aSupportsTouchPad) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportsTouchPad(aSupportsTouchPad); } \
  NS_IMETHOD GetNeedsHostCursor(PRBool *aNeedsHostCursor) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNeedsHostCursor(aNeedsHostCursor); } 

#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_SupportsTouchScreen_TO(smth) NS_IMETHOD GetSupportsTouchScreen (PRBool * aSupportsTouchScreen) { return smth GetSupportsTouchScreen (aSupportsTouchScreen); }
#define COM_FORWARD_IMouseCapabilityChangedEvent_GETTER_SupportsTouchScreen_TO_OBJ(obj) COM_FORWARD_IMouseCapabilityChangedEvent_GETTER_SupportsTouchScreen_TO ((obj)->)
#define COM_FORWARD_IMouseCapabilityChangedEvent_GETTER_SupportsTouchScreen_TO_BASE(base) COM_FORWARD_IMouseCapabilityChangedEvent_GETTER_SupportsTouchScreen_TO (base::)
#define COM_FORWARD_IMouseCapabilityChangedEvent_GETTER_SupportsTouchPad_TO(smth) NS_IMETHOD GetSupportsTouchPad (PRBool * aSupportsTouchPad) { return smth GetSupportsTouchPad (aSupportsTouchPad); }
#define COM_FORWARD_IMouseCapabilityChangedEvent_GETTER_SupportsTouchPad_TO_OBJ(obj) COM_FORWARD_IMouseCapabilityChangedEvent_GETTER_SupportsTouchPad_TO ((obj)->)
#define COM_FORWARD_IMouseCapabilityChangedEvent_GETTER_SupportsTouchPad_TO_BASE(base) COM_FORWARD_IMouseCapabilityChangedEvent_GETTER_SupportsTouchPad_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_OVERRIDE; \
  NS_IMETHOD GetCapsLock(PRBool *aCapsLock) NS_OVERRIDE; \
  NS_IMETHOD GetScrollLock(PRBool *aScrollLock) NS_OVERRIDE; 

/* 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); } 

#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 MachineState_T state; */
  NS_IMETHOD GetState(MachineState_T *aState) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ISTATECHANGEDEVENT \
  NS_IMETHOD GetState(MachineState_T *aState) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ISTATECHANGEDEVENT(_to) \
  NS_IMETHOD GetState(MachineState_T *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(MachineState_T *aState) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetState(aState); } 

#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) NS_OVERRIDE; 

/* 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); } 

#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) NS_OVERRIDE; 

/* 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); } 

#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:    IAudioAdapterChangedEvent */
#define IAUDIOADAPTERCHANGEDEVENT_IID_STR "d5abc823-04d0-4db6-8d66-dc2f033120e1"

#define IAUDIOADAPTERCHANGEDEVENT_IID \
  {0xd5abc823, 0x04d0, 0x4db6, \
    { 0x8d, 0x66, 0xdc, 0x2f, 0x03, 0x31, 0x20, 0xe1 }}

class NS_NO_VTABLE IAudioAdapterChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IAUDIOADAPTERCHANGEDEVENT_IID)

  /* readonly attribute IAudioAdapter audioAdapter; */
  NS_IMETHOD GetAudioAdapter(IAudioAdapter * *aAudioAdapter) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IAUDIOADAPTERCHANGEDEVENT \
  NS_IMETHOD GetAudioAdapter(IAudioAdapter * *aAudioAdapter) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IAUDIOADAPTERCHANGEDEVENT(_to) \
  NS_IMETHOD GetAudioAdapter(IAudioAdapter * *aAudioAdapter) { return _to GetAudioAdapter(aAudioAdapter); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IAUDIOADAPTERCHANGEDEVENT(_to) \
  NS_IMETHOD GetAudioAdapter(IAudioAdapter * *aAudioAdapter) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAudioAdapter(aAudioAdapter); } 

#define COM_FORWARD_IAudioAdapterChangedEvent_GETTER_AudioAdapter_TO(smth) NS_IMETHOD GetAudioAdapter (IAudioAdapter * * aAudioAdapter) { return smth GetAudioAdapter (aAudioAdapter); }
#define COM_FORWARD_IAudioAdapterChangedEvent_GETTER_AudioAdapter_TO_OBJ(obj) COM_FORWARD_IAudioAdapterChangedEvent_GETTER_AudioAdapter_TO ((obj)->)
#define COM_FORWARD_IAudioAdapterChangedEvent_GETTER_AudioAdapter_TO_BASE(base) COM_FORWARD_IAudioAdapterChangedEvent_GETTER_AudioAdapter_TO (base::)
#define COM_FORWARD_IAudioAdapterChangedEvent_TO(smth) NS_FORWARD_IAUDIOADAPTERCHANGEDEVENT (smth)
#define COM_FORWARD_IAudioAdapterChangedEvent_TO_OBJ(obj) COM_FORWARD_IAudioAdapterChangedEvent_TO ((obj)->)
#define COM_FORWARD_IAudioAdapterChangedEvent_TO_BASE(base) COM_FORWARD_IAudioAdapterChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IAudioAdapterChangedEvent;

/* 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) NS_OVERRIDE; 

/* 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); } 

#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) NS_OVERRIDE; 

/* 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); } 

#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 "6bb335cc-1c58-440c-bb7b-3a1397284c7b"

#define ISTORAGECONTROLLERCHANGEDEVENT_IID \
  {0x6bb335cc, 0x1c58, 0x440c, \
    { 0xbb, 0x7b, 0x3a, 0x13, 0x97, 0x28, 0x4c, 0x7b }}

class NS_NO_VTABLE IStorageControllerChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ISTORAGECONTROLLERCHANGEDEVENT_IID)

  /* readonly attribute wstring machinId; */
  NS_IMETHOD GetMachinId(PRUnichar **aMachinId) = 0;

  /* readonly attribute wstring controllerName; */
  NS_IMETHOD GetControllerName(PRUnichar **aControllerName) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ISTORAGECONTROLLERCHANGEDEVENT \
  NS_IMETHOD GetMachinId(PRUnichar **aMachinId) NS_OVERRIDE; \
  NS_IMETHOD GetControllerName(PRUnichar **aControllerName) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ISTORAGECONTROLLERCHANGEDEVENT(_to) \
  NS_IMETHOD GetMachinId(PRUnichar **aMachinId) { return _to GetMachinId(aMachinId); } \
  NS_IMETHOD GetControllerName(PRUnichar **aControllerName) { return _to GetControllerName(aControllerName); } 

/* 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 GetMachinId(PRUnichar **aMachinId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMachinId(aMachinId); } \
  NS_IMETHOD GetControllerName(PRUnichar **aControllerName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetControllerName(aControllerName); } 

#define COM_FORWARD_IStorageControllerChangedEvent_GETTER_MachinId_TO(smth) NS_IMETHOD GetMachinId (PRUnichar * * aMachinId) { return smth GetMachinId (aMachinId); }
#define COM_FORWARD_IStorageControllerChangedEvent_GETTER_MachinId_TO_OBJ(obj) COM_FORWARD_IStorageControllerChangedEvent_GETTER_MachinId_TO ((obj)->)
#define COM_FORWARD_IStorageControllerChangedEvent_GETTER_MachinId_TO_BASE(base) COM_FORWARD_IStorageControllerChangedEvent_GETTER_MachinId_TO (base::)
#define COM_FORWARD_IStorageControllerChangedEvent_GETTER_ControllerName_TO(smth) NS_IMETHOD GetControllerName (PRUnichar * * aControllerName) { return smth GetControllerName (aControllerName); }
#define COM_FORWARD_IStorageControllerChangedEvent_GETTER_ControllerName_TO_OBJ(obj) COM_FORWARD_IStorageControllerChangedEvent_GETTER_ControllerName_TO ((obj)->)
#define COM_FORWARD_IStorageControllerChangedEvent_GETTER_ControllerName_TO_BASE(base) COM_FORWARD_IStorageControllerChangedEvent_GETTER_ControllerName_TO (base::)
#define COM_FORWARD_IStorageControllerChangedEvent_TO(smth) NS_FORWARD_ISTORAGECONTROLLERCHANGEDEVENT (smth)
#define COM_FORWARD_IStorageControllerChangedEvent_TO_OBJ(obj) COM_FORWARD_IStorageControllerChangedEvent_TO ((obj)->)
#define COM_FORWARD_IStorageControllerChangedEvent_TO_BASE(base) COM_FORWARD_IStorageControllerChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IStorageControllerChangedEvent;

/* 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) NS_OVERRIDE; 

/* 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); } 

#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 ClipboardMode_T clipboardMode; */
  NS_IMETHOD GetClipboardMode(ClipboardMode_T *aClipboardMode) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ICLIPBOARDMODECHANGEDEVENT \
  NS_IMETHOD GetClipboardMode(ClipboardMode_T *aClipboardMode) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ICLIPBOARDMODECHANGEDEVENT(_to) \
  NS_IMETHOD GetClipboardMode(ClipboardMode_T *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(ClipboardMode_T *aClipboardMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetClipboardMode(aClipboardMode); } 

#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:    IClipboardFileTransferModeChangedEvent */
#define ICLIPBOARDFILETRANSFERMODECHANGEDEVENT_IID_STR "00391758-00b1-4e9d-0000-11fa00f9d583"

#define ICLIPBOARDFILETRANSFERMODECHANGEDEVENT_IID \
  {0x00391758, 0x00b1, 0x4e9d, \
    { 0x00, 0x00, 0x11, 0xfa, 0x00, 0xf9, 0xd5, 0x83 }}

class NS_NO_VTABLE IClipboardFileTransferModeChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ICLIPBOARDFILETRANSFERMODECHANGEDEVENT_IID)

  /* readonly attribute boolean enabled; */
  NS_IMETHOD GetEnabled(PRBool *aEnabled) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ICLIPBOARDFILETRANSFERMODECHANGEDEVENT \
  NS_IMETHOD GetEnabled(PRBool *aEnabled) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ICLIPBOARDFILETRANSFERMODECHANGEDEVENT(_to) \
  NS_IMETHOD GetEnabled(PRBool *aEnabled) { return _to GetEnabled(aEnabled); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ICLIPBOARDFILETRANSFERMODECHANGEDEVENT(_to) \
  NS_IMETHOD GetEnabled(PRBool *aEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEnabled(aEnabled); } 

#define COM_FORWARD_IClipboardFileTransferModeChangedEvent_GETTER_Enabled_TO(smth) NS_IMETHOD GetEnabled (PRBool * aEnabled) { return smth GetEnabled (aEnabled); }
#define COM_FORWARD_IClipboardFileTransferModeChangedEvent_GETTER_Enabled_TO_OBJ(obj) COM_FORWARD_IClipboardFileTransferModeChangedEvent_GETTER_Enabled_TO ((obj)->)
#define COM_FORWARD_IClipboardFileTransferModeChangedEvent_GETTER_Enabled_TO_BASE(base) COM_FORWARD_IClipboardFileTransferModeChangedEvent_GETTER_Enabled_TO (base::)
#define COM_FORWARD_IClipboardFileTransferModeChangedEvent_TO(smth) NS_FORWARD_ICLIPBOARDFILETRANSFERMODECHANGEDEVENT (smth)
#define COM_FORWARD_IClipboardFileTransferModeChangedEvent_TO_OBJ(obj) COM_FORWARD_IClipboardFileTransferModeChangedEvent_TO ((obj)->)
#define COM_FORWARD_IClipboardFileTransferModeChangedEvent_TO_BASE(base) COM_FORWARD_IClipboardFileTransferModeChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IClipboardFileTransferModeChangedEvent;

/* starting interface:    IClipboardEvent */
#define ICLIPBOARDEVENT_IID_STR "f22dd3b4-e4d0-437a-bfdf-0372896ba162"

#define ICLIPBOARDEVENT_IID \
  {0xf22dd3b4, 0xe4d0, 0x437a, \
    { 0xbf, 0xdf, 0x03, 0x72, 0x89, 0x6b, 0xa1, 0x62 }}

class NS_NO_VTABLE IClipboardEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ICLIPBOARDEVENT_IID)

  /* readonly attribute wstring id; */
  NS_IMETHOD GetId(PRUnichar **aId) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ICLIPBOARDEVENT \
  NS_IMETHOD GetId(PRUnichar **aId) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ICLIPBOARDEVENT(_to) \
  NS_IMETHOD GetId(PRUnichar **aId) { return _to GetId(aId); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ICLIPBOARDEVENT(_to) \
  NS_IMETHOD GetId(PRUnichar **aId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetId(aId); } 

#define COM_FORWARD_IClipboardEvent_GETTER_Id_TO(smth) NS_IMETHOD GetId (PRUnichar * * aId) { return smth GetId (aId); }
#define COM_FORWARD_IClipboardEvent_GETTER_Id_TO_OBJ(obj) COM_FORWARD_IClipboardEvent_GETTER_Id_TO ((obj)->)
#define COM_FORWARD_IClipboardEvent_GETTER_Id_TO_BASE(base) COM_FORWARD_IClipboardEvent_GETTER_Id_TO (base::)
#define COM_FORWARD_IClipboardEvent_TO(smth) NS_FORWARD_ICLIPBOARDEVENT (smth)
#define COM_FORWARD_IClipboardEvent_TO_OBJ(obj) COM_FORWARD_IClipboardEvent_TO ((obj)->)
#define COM_FORWARD_IClipboardEvent_TO_BASE(base) COM_FORWARD_IClipboardEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IClipboardEvent;

/* starting interface:    IClipboardErrorEvent */
#define ICLIPBOARDERROREVENT_IID_STR "9e5f6f25-beda-46ad-8ddb-23c0268ac345"

#define ICLIPBOARDERROREVENT_IID \
  {0x9e5f6f25, 0xbeda, 0x46ad, \
    { 0x8d, 0xdb, 0x23, 0xc0, 0x26, 0x8a, 0xc3, 0x45 }}

class NS_NO_VTABLE IClipboardErrorEvent : public IClipboardEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ICLIPBOARDERROREVENT_IID)

  /* readonly attribute wstring msg; */
  NS_IMETHOD GetMsg(PRUnichar **aMsg) = 0;

  /* readonly attribute long rcError; */
  NS_IMETHOD GetRcError(PRInt32 *aRcError) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ICLIPBOARDERROREVENT \
  NS_IMETHOD GetMsg(PRUnichar **aMsg) NS_OVERRIDE; \
  NS_IMETHOD GetRcError(PRInt32 *aRcError) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ICLIPBOARDERROREVENT(_to) \
  NS_IMETHOD GetMsg(PRUnichar **aMsg) { return _to GetMsg(aMsg); } \
  NS_IMETHOD GetRcError(PRInt32 *aRcError) { return _to GetRcError(aRcError); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ICLIPBOARDERROREVENT(_to) \
  NS_IMETHOD GetMsg(PRUnichar **aMsg) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMsg(aMsg); } \
  NS_IMETHOD GetRcError(PRInt32 *aRcError) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRcError(aRcError); } 

#define COM_FORWARD_IClipboardErrorEvent_GETTER_Msg_TO(smth) NS_IMETHOD GetMsg (PRUnichar * * aMsg) { return smth GetMsg (aMsg); }
#define COM_FORWARD_IClipboardErrorEvent_GETTER_Msg_TO_OBJ(obj) COM_FORWARD_IClipboardErrorEvent_GETTER_Msg_TO ((obj)->)
#define COM_FORWARD_IClipboardErrorEvent_GETTER_Msg_TO_BASE(base) COM_FORWARD_IClipboardErrorEvent_GETTER_Msg_TO (base::)
#define COM_FORWARD_IClipboardErrorEvent_GETTER_RcError_TO(smth) NS_IMETHOD GetRcError (PRInt32 * aRcError) { return smth GetRcError (aRcError); }
#define COM_FORWARD_IClipboardErrorEvent_GETTER_RcError_TO_OBJ(obj) COM_FORWARD_IClipboardErrorEvent_GETTER_RcError_TO ((obj)->)
#define COM_FORWARD_IClipboardErrorEvent_GETTER_RcError_TO_BASE(base) COM_FORWARD_IClipboardErrorEvent_GETTER_RcError_TO (base::)
#define COM_FORWARD_IClipboardErrorEvent_TO(smth) NS_FORWARD_ICLIPBOARDERROREVENT (smth)
#define COM_FORWARD_IClipboardErrorEvent_TO_OBJ(obj) COM_FORWARD_IClipboardErrorEvent_TO ((obj)->)
#define COM_FORWARD_IClipboardErrorEvent_TO_BASE(base) COM_FORWARD_IClipboardErrorEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IClipboardErrorEvent;

/* 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 DnDMode_T dndMode; */
  NS_IMETHOD GetDndMode(DnDMode_T *aDndMode) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IDNDMODECHANGEDEVENT \
  NS_IMETHOD GetDndMode(DnDMode_T *aDndMode) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IDNDMODECHANGEDEVENT(_to) \
  NS_IMETHOD GetDndMode(DnDMode_T *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(DnDMode_T *aDndMode) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDndMode(aDndMode); } 

#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_OVERRIDE; \
  NS_IMETHOD GetAdd(PRBool *aAdd) NS_OVERRIDE; 

/* 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); } 

#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) NS_OVERRIDE; 

/* 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); } 

#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) NS_OVERRIDE; 

/* 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); } 

#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 GuestMouseEventMode_T mode; */
  NS_IMETHOD GetMode(GuestMouseEventMode_T *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(GuestMouseEventMode_T *aMode) NS_OVERRIDE; \
  NS_IMETHOD GetX(PRInt32 *aX) NS_OVERRIDE; \
  NS_IMETHOD GetY(PRInt32 *aY) NS_OVERRIDE; \
  NS_IMETHOD GetZ(PRInt32 *aZ) NS_OVERRIDE; \
  NS_IMETHOD GetW(PRInt32 *aW) NS_OVERRIDE; \
  NS_IMETHOD GetButtons(PRInt32 *aButtons) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTMOUSEEVENT(_to) \
  NS_IMETHOD GetMode(GuestMouseEventMode_T *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(GuestMouseEventMode_T *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); } 

#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 "1f99d9dc-c144-4c28-9f88-e6f488db5441"

#define IGUESTMULTITOUCHEVENT_IID \
  {0x1f99d9dc, 0xc144, 0x4c28, \
    { 0x9f, 0x88, 0xe6, 0xf4, 0x88, 0xdb, 0x54, 0x41 }}

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 boolean isTouchScreen; */
  NS_IMETHOD GetIsTouchScreen(PRBool *aIsTouchScreen) = 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_OVERRIDE; \
  NS_IMETHOD GetXPositions(PRUint32 *xPositionsSize, PRInt16 **xPositions) NS_OVERRIDE; \
  NS_IMETHOD GetYPositions(PRUint32 *yPositionsSize, PRInt16 **yPositions) NS_OVERRIDE; \
  NS_IMETHOD GetContactIds(PRUint32 *contactIdsSize, PRUint16 **contactIds) NS_OVERRIDE; \
  NS_IMETHOD GetContactFlags(PRUint32 *contactFlagsSize, PRUint16 **contactFlags) NS_OVERRIDE; \
  NS_IMETHOD GetIsTouchScreen(PRBool *aIsTouchScreen) NS_OVERRIDE; \
  NS_IMETHOD GetScanTime(PRUint32 *aScanTime) NS_OVERRIDE; 

/* 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 GetIsTouchScreen(PRBool *aIsTouchScreen) { return _to GetIsTouchScreen(aIsTouchScreen); } \
  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 GetIsTouchScreen(PRBool *aIsTouchScreen) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsTouchScreen(aIsTouchScreen); } \
  NS_IMETHOD GetScanTime(PRUint32 *aScanTime) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetScanTime(aScanTime); } 

#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_IsTouchScreen_TO(smth) NS_IMETHOD GetIsTouchScreen (PRBool * aIsTouchScreen) { return smth GetIsTouchScreen (aIsTouchScreen); }
#define COM_FORWARD_IGuestMultiTouchEvent_GETTER_IsTouchScreen_TO_OBJ(obj) COM_FORWARD_IGuestMultiTouchEvent_GETTER_IsTouchScreen_TO ((obj)->)
#define COM_FORWARD_IGuestMultiTouchEvent_GETTER_IsTouchScreen_TO_BASE(base) COM_FORWARD_IGuestMultiTouchEvent_GETTER_IsTouchScreen_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) NS_OVERRIDE; 

/* 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); } 

#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 GuestSessionStatus_T status; */
  NS_IMETHOD GetStatus(GuestSessionStatus_T *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_OVERRIDE; \
  NS_IMETHOD GetStatus(GuestSessionStatus_T *aStatus) NS_OVERRIDE; \
  NS_IMETHOD GetError(IVirtualBoxErrorInfo * *aError) NS_OVERRIDE; 

/* 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(GuestSessionStatus_T *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(GuestSessionStatus_T *aStatus) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStatus(aStatus); } \
  NS_IMETHOD GetError(IVirtualBoxErrorInfo * *aError) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetError(aError); } 

#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) NS_OVERRIDE; 

/* 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); } 

#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_OVERRIDE; \
  NS_IMETHOD GetPid(PRUint32 *aPid) NS_OVERRIDE; 

/* 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); } 

#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) NS_OVERRIDE; 

/* 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); } 

#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 ProcessStatus_T status; */
  NS_IMETHOD GetStatus(ProcessStatus_T *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(ProcessStatus_T *aStatus) NS_OVERRIDE; \
  NS_IMETHOD GetError(IVirtualBoxErrorInfo * *aError) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTPROCESSSTATECHANGEDEVENT(_to) \
  NS_IMETHOD GetStatus(ProcessStatus_T *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(ProcessStatus_T *aStatus) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStatus(aStatus); } \
  NS_IMETHOD GetError(IVirtualBoxErrorInfo * *aError) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetError(aError); } 

#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_OVERRIDE; \
  NS_IMETHOD GetProcessed(PRUint32 *aProcessed) NS_OVERRIDE; 

/* 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); } 

#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 ProcessInputStatus_T status; */
  NS_IMETHOD GetStatus(ProcessInputStatus_T *aStatus) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTPROCESSINPUTNOTIFYEVENT \
  NS_IMETHOD GetStatus(ProcessInputStatus_T *aStatus) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTPROCESSINPUTNOTIFYEVENT(_to) \
  NS_IMETHOD GetStatus(ProcessInputStatus_T *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(ProcessInputStatus_T *aStatus) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStatus(aStatus); } 

#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) NS_OVERRIDE; 

/* 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); } 

#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:    IGuestDirectoryEvent */
#define IGUESTDIRECTORYEVENT_IID_STR "02b69798-7cc2-4005-ac57-1ad7ff7a0997"

#define IGUESTDIRECTORYEVENT_IID \
  {0x02b69798, 0x7cc2, 0x4005, \
    { 0xac, 0x57, 0x1a, 0xd7, 0xff, 0x7a, 0x09, 0x97 }}

class NS_NO_VTABLE IGuestDirectoryEvent : public IGuestSessionEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTDIRECTORYEVENT_IID)

  /* readonly attribute IGuestDirectory directory; */
  NS_IMETHOD GetDirectory(IGuestDirectory * *aDirectory) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTDIRECTORYEVENT \
  NS_IMETHOD GetDirectory(IGuestDirectory * *aDirectory) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTDIRECTORYEVENT(_to) \
  NS_IMETHOD GetDirectory(IGuestDirectory * *aDirectory) { return _to GetDirectory(aDirectory); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGUESTDIRECTORYEVENT(_to) \
  NS_IMETHOD GetDirectory(IGuestDirectory * *aDirectory) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDirectory(aDirectory); } 

#define COM_FORWARD_IGuestDirectoryEvent_GETTER_Directory_TO(smth) NS_IMETHOD GetDirectory (IGuestDirectory * * aDirectory) { return smth GetDirectory (aDirectory); }
#define COM_FORWARD_IGuestDirectoryEvent_GETTER_Directory_TO_OBJ(obj) COM_FORWARD_IGuestDirectoryEvent_GETTER_Directory_TO ((obj)->)
#define COM_FORWARD_IGuestDirectoryEvent_GETTER_Directory_TO_BASE(base) COM_FORWARD_IGuestDirectoryEvent_GETTER_Directory_TO (base::)
#define COM_FORWARD_IGuestDirectoryEvent_TO(smth) NS_FORWARD_IGUESTDIRECTORYEVENT (smth)
#define COM_FORWARD_IGuestDirectoryEvent_TO_OBJ(obj) COM_FORWARD_IGuestDirectoryEvent_TO ((obj)->)
#define COM_FORWARD_IGuestDirectoryEvent_TO_BASE(base) COM_FORWARD_IGuestDirectoryEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestDirectoryEvent;

/* starting interface:    IGuestDirectoryRegisteredEvent */
#define IGUESTDIRECTORYREGISTEREDEVENT_IID_STR "926baa39-cfc9-462e-a1a1-c439e28f7f89"

#define IGUESTDIRECTORYREGISTEREDEVENT_IID \
  {0x926baa39, 0xcfc9, 0x462e, \
    { 0xa1, 0xa1, 0xc4, 0x39, 0xe2, 0x8f, 0x7f, 0x89 }}

class NS_NO_VTABLE IGuestDirectoryRegisteredEvent : public IGuestDirectoryEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTDIRECTORYREGISTEREDEVENT_IID)

  /* readonly attribute boolean registered; */
  NS_IMETHOD GetRegistered(PRBool *aRegistered) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTDIRECTORYREGISTEREDEVENT \
  NS_IMETHOD GetRegistered(PRBool *aRegistered) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTDIRECTORYREGISTEREDEVENT(_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_IGUESTDIRECTORYREGISTEREDEVENT(_to) \
  NS_IMETHOD GetRegistered(PRBool *aRegistered) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRegistered(aRegistered); } 

#define COM_FORWARD_IGuestDirectoryRegisteredEvent_GETTER_Registered_TO(smth) NS_IMETHOD GetRegistered (PRBool * aRegistered) { return smth GetRegistered (aRegistered); }
#define COM_FORWARD_IGuestDirectoryRegisteredEvent_GETTER_Registered_TO_OBJ(obj) COM_FORWARD_IGuestDirectoryRegisteredEvent_GETTER_Registered_TO ((obj)->)
#define COM_FORWARD_IGuestDirectoryRegisteredEvent_GETTER_Registered_TO_BASE(base) COM_FORWARD_IGuestDirectoryRegisteredEvent_GETTER_Registered_TO (base::)
#define COM_FORWARD_IGuestDirectoryRegisteredEvent_TO(smth) NS_FORWARD_IGUESTDIRECTORYREGISTEREDEVENT (smth)
#define COM_FORWARD_IGuestDirectoryRegisteredEvent_TO_OBJ(obj) COM_FORWARD_IGuestDirectoryRegisteredEvent_TO ((obj)->)
#define COM_FORWARD_IGuestDirectoryRegisteredEvent_TO_BASE(base) COM_FORWARD_IGuestDirectoryRegisteredEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestDirectoryRegisteredEvent;

/* starting interface:    IGuestDirectoryStateChangedEvent */
#define IGUESTDIRECTORYSTATECHANGEDEVENT_IID_STR "c32bce60-d69d-4eb7-a02a-411ecbab6a18"

#define IGUESTDIRECTORYSTATECHANGEDEVENT_IID \
  {0xc32bce60, 0xd69d, 0x4eb7, \
    { 0xa0, 0x2a, 0x41, 0x1e, 0xcb, 0xab, 0x6a, 0x18 }}

class NS_NO_VTABLE IGuestDirectoryStateChangedEvent : public IGuestDirectoryEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTDIRECTORYSTATECHANGEDEVENT_IID)

  /* readonly attribute DirectoryStatus_T status; */
  NS_IMETHOD GetStatus(DirectoryStatus_T *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_IGUESTDIRECTORYSTATECHANGEDEVENT \
  NS_IMETHOD GetStatus(DirectoryStatus_T *aStatus) NS_OVERRIDE; \
  NS_IMETHOD GetError(IVirtualBoxErrorInfo * *aError) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTDIRECTORYSTATECHANGEDEVENT(_to) \
  NS_IMETHOD GetStatus(DirectoryStatus_T *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_IGUESTDIRECTORYSTATECHANGEDEVENT(_to) \
  NS_IMETHOD GetStatus(DirectoryStatus_T *aStatus) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStatus(aStatus); } \
  NS_IMETHOD GetError(IVirtualBoxErrorInfo * *aError) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetError(aError); } 

#define COM_FORWARD_IGuestDirectoryStateChangedEvent_GETTER_Status_TO(smth) NS_IMETHOD GetStatus (PRUint32 * aStatus) { return smth GetStatus (aStatus); }
#define COM_FORWARD_IGuestDirectoryStateChangedEvent_GETTER_Status_TO_OBJ(obj) COM_FORWARD_IGuestDirectoryStateChangedEvent_GETTER_Status_TO ((obj)->)
#define COM_FORWARD_IGuestDirectoryStateChangedEvent_GETTER_Status_TO_BASE(base) COM_FORWARD_IGuestDirectoryStateChangedEvent_GETTER_Status_TO (base::)
#define COM_FORWARD_IGuestDirectoryStateChangedEvent_GETTER_Error_TO(smth) NS_IMETHOD GetError (IVirtualBoxErrorInfo * * aError) { return smth GetError (aError); }
#define COM_FORWARD_IGuestDirectoryStateChangedEvent_GETTER_Error_TO_OBJ(obj) COM_FORWARD_IGuestDirectoryStateChangedEvent_GETTER_Error_TO ((obj)->)
#define COM_FORWARD_IGuestDirectoryStateChangedEvent_GETTER_Error_TO_BASE(base) COM_FORWARD_IGuestDirectoryStateChangedEvent_GETTER_Error_TO (base::)
#define COM_FORWARD_IGuestDirectoryStateChangedEvent_TO(smth) NS_FORWARD_IGUESTDIRECTORYSTATECHANGEDEVENT (smth)
#define COM_FORWARD_IGuestDirectoryStateChangedEvent_TO_OBJ(obj) COM_FORWARD_IGuestDirectoryStateChangedEvent_TO ((obj)->)
#define COM_FORWARD_IGuestDirectoryStateChangedEvent_TO_BASE(base) COM_FORWARD_IGuestDirectoryStateChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestDirectoryStateChangedEvent;

/* starting interface:    IGuestDirectoryReadEvent */
#define IGUESTDIRECTORYREADEVENT_IID_STR "4e774bbe-5285-4517-8d34-21260633c513"

#define IGUESTDIRECTORYREADEVENT_IID \
  {0x4e774bbe, 0x5285, 0x4517, \
    { 0x8d, 0x34, 0x21, 0x26, 0x06, 0x33, 0xc5, 0x13 }}

class NS_NO_VTABLE IGuestDirectoryReadEvent : public IGuestDirectoryEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTDIRECTORYREADEVENT_IID)

  /* readonly attribute wstring path; */
  NS_IMETHOD GetPath(PRUnichar **aPath) = 0;

  /* readonly attribute IFsObjInfo objInfo; */
  NS_IMETHOD GetObjInfo(IFsObjInfo * *aObjInfo) = 0;

  /* readonly attribute wstring owner; */
  NS_IMETHOD GetOwner(PRUnichar **aOwner) = 0;

  /* readonly attribute wstring groups; */
  NS_IMETHOD GetGroups(PRUnichar **aGroups) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTDIRECTORYREADEVENT \
  NS_IMETHOD GetPath(PRUnichar **aPath) NS_OVERRIDE; \
  NS_IMETHOD GetObjInfo(IFsObjInfo * *aObjInfo) NS_OVERRIDE; \
  NS_IMETHOD GetOwner(PRUnichar **aOwner) NS_OVERRIDE; \
  NS_IMETHOD GetGroups(PRUnichar **aGroups) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTDIRECTORYREADEVENT(_to) \
  NS_IMETHOD GetPath(PRUnichar **aPath) { return _to GetPath(aPath); } \
  NS_IMETHOD GetObjInfo(IFsObjInfo * *aObjInfo) { return _to GetObjInfo(aObjInfo); } \
  NS_IMETHOD GetOwner(PRUnichar **aOwner) { return _to GetOwner(aOwner); } \
  NS_IMETHOD GetGroups(PRUnichar **aGroups) { return _to GetGroups(aGroups); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGUESTDIRECTORYREADEVENT(_to) \
  NS_IMETHOD GetPath(PRUnichar **aPath) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPath(aPath); } \
  NS_IMETHOD GetObjInfo(IFsObjInfo * *aObjInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetObjInfo(aObjInfo); } \
  NS_IMETHOD GetOwner(PRUnichar **aOwner) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOwner(aOwner); } \
  NS_IMETHOD GetGroups(PRUnichar **aGroups) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGroups(aGroups); } 

#define COM_FORWARD_IGuestDirectoryReadEvent_GETTER_Path_TO(smth) NS_IMETHOD GetPath (PRUnichar * * aPath) { return smth GetPath (aPath); }
#define COM_FORWARD_IGuestDirectoryReadEvent_GETTER_Path_TO_OBJ(obj) COM_FORWARD_IGuestDirectoryReadEvent_GETTER_Path_TO ((obj)->)
#define COM_FORWARD_IGuestDirectoryReadEvent_GETTER_Path_TO_BASE(base) COM_FORWARD_IGuestDirectoryReadEvent_GETTER_Path_TO (base::)
#define COM_FORWARD_IGuestDirectoryReadEvent_GETTER_ObjInfo_TO(smth) NS_IMETHOD GetObjInfo (IFsObjInfo * * aObjInfo) { return smth GetObjInfo (aObjInfo); }
#define COM_FORWARD_IGuestDirectoryReadEvent_GETTER_ObjInfo_TO_OBJ(obj) COM_FORWARD_IGuestDirectoryReadEvent_GETTER_ObjInfo_TO ((obj)->)
#define COM_FORWARD_IGuestDirectoryReadEvent_GETTER_ObjInfo_TO_BASE(base) COM_FORWARD_IGuestDirectoryReadEvent_GETTER_ObjInfo_TO (base::)
#define COM_FORWARD_IGuestDirectoryReadEvent_GETTER_Owner_TO(smth) NS_IMETHOD GetOwner (PRUnichar * * aOwner) { return smth GetOwner (aOwner); }
#define COM_FORWARD_IGuestDirectoryReadEvent_GETTER_Owner_TO_OBJ(obj) COM_FORWARD_IGuestDirectoryReadEvent_GETTER_Owner_TO ((obj)->)
#define COM_FORWARD_IGuestDirectoryReadEvent_GETTER_Owner_TO_BASE(base) COM_FORWARD_IGuestDirectoryReadEvent_GETTER_Owner_TO (base::)
#define COM_FORWARD_IGuestDirectoryReadEvent_GETTER_Groups_TO(smth) NS_IMETHOD GetGroups (PRUnichar * * aGroups) { return smth GetGroups (aGroups); }
#define COM_FORWARD_IGuestDirectoryReadEvent_GETTER_Groups_TO_OBJ(obj) COM_FORWARD_IGuestDirectoryReadEvent_GETTER_Groups_TO ((obj)->)
#define COM_FORWARD_IGuestDirectoryReadEvent_GETTER_Groups_TO_BASE(base) COM_FORWARD_IGuestDirectoryReadEvent_GETTER_Groups_TO (base::)
#define COM_FORWARD_IGuestDirectoryReadEvent_TO(smth) NS_FORWARD_IGUESTDIRECTORYREADEVENT (smth)
#define COM_FORWARD_IGuestDirectoryReadEvent_TO_OBJ(obj) COM_FORWARD_IGuestDirectoryReadEvent_TO ((obj)->)
#define COM_FORWARD_IGuestDirectoryReadEvent_TO_BASE(base) COM_FORWARD_IGuestDirectoryReadEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestDirectoryReadEvent;

/* 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) NS_OVERRIDE; 

/* 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); } 

#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) NS_OVERRIDE; 

/* 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); } 

#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 FileStatus_T status; */
  NS_IMETHOD GetStatus(FileStatus_T *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(FileStatus_T *aStatus) NS_OVERRIDE; \
  NS_IMETHOD GetError(IVirtualBoxErrorInfo * *aError) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTFILESTATECHANGEDEVENT(_to) \
  NS_IMETHOD GetStatus(FileStatus_T *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(FileStatus_T *aStatus) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStatus(aStatus); } \
  NS_IMETHOD GetError(IVirtualBoxErrorInfo * *aError) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetError(aError); } 

#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_OVERRIDE; \
  NS_IMETHOD GetProcessed(PRUint32 *aProcessed) NS_OVERRIDE; 

/* 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); } 

#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) NS_OVERRIDE; 

/* 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); } 

#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:    IGuestFileSizeChangedEvent */
#define IGUESTFILESIZECHANGEDEVENT_IID_STR "d78374e9-486e-472f-481b-969746af2480"

#define IGUESTFILESIZECHANGEDEVENT_IID \
  {0xd78374e9, 0x486e, 0x472f, \
    { 0x48, 0x1b, 0x96, 0x97, 0x46, 0xaf, 0x24, 0x80 }}

class NS_NO_VTABLE IGuestFileSizeChangedEvent : public IGuestFileEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTFILESIZECHANGEDEVENT_IID)

  /* readonly attribute long long newSize; */
  NS_IMETHOD GetNewSize(PRInt64 *aNewSize) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTFILESIZECHANGEDEVENT \
  NS_IMETHOD GetNewSize(PRInt64 *aNewSize) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTFILESIZECHANGEDEVENT(_to) \
  NS_IMETHOD GetNewSize(PRInt64 *aNewSize) { return _to GetNewSize(aNewSize); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGUESTFILESIZECHANGEDEVENT(_to) \
  NS_IMETHOD GetNewSize(PRInt64 *aNewSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNewSize(aNewSize); } 

#define COM_FORWARD_IGuestFileSizeChangedEvent_GETTER_NewSize_TO(smth) NS_IMETHOD GetNewSize (PRInt64 * aNewSize) { return smth GetNewSize (aNewSize); }
#define COM_FORWARD_IGuestFileSizeChangedEvent_GETTER_NewSize_TO_OBJ(obj) COM_FORWARD_IGuestFileSizeChangedEvent_GETTER_NewSize_TO ((obj)->)
#define COM_FORWARD_IGuestFileSizeChangedEvent_GETTER_NewSize_TO_BASE(base) COM_FORWARD_IGuestFileSizeChangedEvent_GETTER_NewSize_TO (base::)
#define COM_FORWARD_IGuestFileSizeChangedEvent_TO(smth) NS_FORWARD_IGUESTFILESIZECHANGEDEVENT (smth)
#define COM_FORWARD_IGuestFileSizeChangedEvent_TO_OBJ(obj) COM_FORWARD_IGuestFileSizeChangedEvent_TO ((obj)->)
#define COM_FORWARD_IGuestFileSizeChangedEvent_TO_BASE(base) COM_FORWARD_IGuestFileSizeChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestFileSizeChangedEvent;

/* 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) NS_OVERRIDE; 

/* 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); } 

#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) NS_OVERRIDE; 

/* 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); } 

#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) NS_OVERRIDE; 

/* 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); } 

#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) NS_OVERRIDE; 

/* 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); } 

#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:    IRecordingStateChangedEvent */
#define IRECORDINGSTATECHANGEDEVENT_IID_STR "210498ae-c922-4e86-9c45-8cfb51395fc3"

#define IRECORDINGSTATECHANGEDEVENT_IID \
  {0x210498ae, 0xc922, 0x4e86, \
    { 0x9c, 0x45, 0x8c, 0xfb, 0x51, 0x39, 0x5f, 0xc3 }}

class NS_NO_VTABLE IRecordingStateChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IRECORDINGSTATECHANGEDEVENT_IID)

  /* readonly attribute RecordingState_T state; */
  NS_IMETHOD GetState(RecordingState_T *aState) = 0;

  /* readonly attribute IVirtualBoxErrorInfo error; */
  NS_IMETHOD GetError(IVirtualBoxErrorInfo * *aError) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IRECORDINGSTATECHANGEDEVENT \
  NS_IMETHOD GetState(RecordingState_T *aState) NS_OVERRIDE; \
  NS_IMETHOD GetError(IVirtualBoxErrorInfo * *aError) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IRECORDINGSTATECHANGEDEVENT(_to) \
  NS_IMETHOD GetState(RecordingState_T *aState) { return _to GetState(aState); } \
  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_IRECORDINGSTATECHANGEDEVENT(_to) \
  NS_IMETHOD GetState(RecordingState_T *aState) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetState(aState); } \
  NS_IMETHOD GetError(IVirtualBoxErrorInfo * *aError) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetError(aError); } 

#define COM_FORWARD_IRecordingStateChangedEvent_GETTER_State_TO(smth) NS_IMETHOD GetState (PRUint32 * aState) { return smth GetState (aState); }
#define COM_FORWARD_IRecordingStateChangedEvent_GETTER_State_TO_OBJ(obj) COM_FORWARD_IRecordingStateChangedEvent_GETTER_State_TO ((obj)->)
#define COM_FORWARD_IRecordingStateChangedEvent_GETTER_State_TO_BASE(base) COM_FORWARD_IRecordingStateChangedEvent_GETTER_State_TO (base::)
#define COM_FORWARD_IRecordingStateChangedEvent_GETTER_Error_TO(smth) NS_IMETHOD GetError (IVirtualBoxErrorInfo * * aError) { return smth GetError (aError); }
#define COM_FORWARD_IRecordingStateChangedEvent_GETTER_Error_TO_OBJ(obj) COM_FORWARD_IRecordingStateChangedEvent_GETTER_Error_TO ((obj)->)
#define COM_FORWARD_IRecordingStateChangedEvent_GETTER_Error_TO_BASE(base) COM_FORWARD_IRecordingStateChangedEvent_GETTER_Error_TO (base::)
#define COM_FORWARD_IRecordingStateChangedEvent_TO(smth) NS_FORWARD_IRECORDINGSTATECHANGEDEVENT (smth)
#define COM_FORWARD_IRecordingStateChangedEvent_TO_OBJ(obj) COM_FORWARD_IRecordingStateChangedEvent_TO ((obj)->)
#define COM_FORWARD_IRecordingStateChangedEvent_TO_BASE(base) COM_FORWARD_IRecordingStateChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IRecordingStateChangedEvent;

/* starting interface:    IRecordingScreenStateChangedEvent */
#define IRECORDINGSCREENSTATECHANGEDEVENT_IID_STR "5900472f-cc58-48ac-a088-b571b77f839b"

#define IRECORDINGSCREENSTATECHANGEDEVENT_IID \
  {0x5900472f, 0xcc58, 0x48ac, \
    { 0xa0, 0x88, 0xb5, 0x71, 0xb7, 0x7f, 0x83, 0x9b }}

class NS_NO_VTABLE IRecordingScreenStateChangedEvent : public IRecordingStateChangedEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IRECORDINGSCREENSTATECHANGEDEVENT_IID)

  /* readonly attribute unsigned long screen; */
  NS_IMETHOD GetScreen(PRUint32 *aScreen) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IRECORDINGSCREENSTATECHANGEDEVENT \
  NS_IMETHOD GetScreen(PRUint32 *aScreen) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IRECORDINGSCREENSTATECHANGEDEVENT(_to) \
  NS_IMETHOD GetScreen(PRUint32 *aScreen) { return _to GetScreen(aScreen); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IRECORDINGSCREENSTATECHANGEDEVENT(_to) \
  NS_IMETHOD GetScreen(PRUint32 *aScreen) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetScreen(aScreen); } 

#define COM_FORWARD_IRecordingScreenStateChangedEvent_GETTER_Screen_TO(smth) NS_IMETHOD GetScreen (PRUint32 * aScreen) { return smth GetScreen (aScreen); }
#define COM_FORWARD_IRecordingScreenStateChangedEvent_GETTER_Screen_TO_OBJ(obj) COM_FORWARD_IRecordingScreenStateChangedEvent_GETTER_Screen_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenStateChangedEvent_GETTER_Screen_TO_BASE(base) COM_FORWARD_IRecordingScreenStateChangedEvent_GETTER_Screen_TO (base::)
#define COM_FORWARD_IRecordingScreenStateChangedEvent_TO(smth) NS_FORWARD_IRECORDINGSCREENSTATECHANGEDEVENT (smth)
#define COM_FORWARD_IRecordingScreenStateChangedEvent_TO_OBJ(obj) COM_FORWARD_IRecordingScreenStateChangedEvent_TO ((obj)->)
#define COM_FORWARD_IRecordingScreenStateChangedEvent_TO_BASE(base) COM_FORWARD_IRecordingScreenStateChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IRecordingScreenStateChangedEvent;

/* 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) NS_OVERRIDE; 

/* 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); } 

#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_OVERRIDE; \
  NS_IMETHOD GetAttached(PRBool *aAttached) NS_OVERRIDE; \
  NS_IMETHOD GetError(IVirtualBoxErrorInfo * *aError) NS_OVERRIDE; 

/* 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); } 

#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 Scope_T scope; */
  NS_IMETHOD GetScope(Scope_T *aScope) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ISHAREDFOLDERCHANGEDEVENT \
  NS_IMETHOD GetScope(Scope_T *aScope) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ISHAREDFOLDERCHANGEDEVENT(_to) \
  NS_IMETHOD GetScope(Scope_T *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(Scope_T *aScope) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetScope(aScope); } 

#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_OVERRIDE; \
  NS_IMETHOD GetId(PRUnichar **aId) NS_OVERRIDE; \
  NS_IMETHOD GetMessage(PRUnichar **aMessage) NS_OVERRIDE; 

/* 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); } 

#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_OVERRIDE; \
  NS_IMETHOD GetAdd(PRBool *aAdd) NS_OVERRIDE; 

/* 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); } 

#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_OVERRIDE; \
  NS_IMETHOD GetKey(PRUnichar **aKey) NS_OVERRIDE; \
  NS_IMETHOD GetValue(PRUnichar **aValue) NS_OVERRIDE; 

/* 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); } 

#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_OVERRIDE; \
  NS_IMETHOD IsVetoed(PRBool *result) NS_OVERRIDE; \
  NS_IMETHOD GetVetos(PRUint32 *resultSize, PRUnichar ***result) NS_OVERRIDE; \
  NS_IMETHOD AddApproval(const PRUnichar *reason) NS_OVERRIDE; \
  NS_IMETHOD IsApproved(PRBool *result) NS_OVERRIDE; \
  NS_IMETHOD GetApprovals(PRUint32 *resultSize, PRUnichar ***result) NS_OVERRIDE; 

/* 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); } 

#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_OVERRIDE; \
  NS_IMETHOD GetKey(PRUnichar **aKey) NS_OVERRIDE; \
  NS_IMETHOD GetValue(PRUnichar **aValue) NS_OVERRIDE; 

/* 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); } 

#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) NS_OVERRIDE; 

/* 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); } 

#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_OVERRIDE; \
  NS_IMETHOD SetWinId(PRInt64 aWinId) NS_OVERRIDE; 

/* 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); } 

#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 NATProtocol_T proto; */
  NS_IMETHOD GetProto(NATProtocol_T *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_OVERRIDE; \
  NS_IMETHOD GetRemove(PRBool *aRemove) NS_OVERRIDE; \
  NS_IMETHOD GetName(PRUnichar **aName) NS_OVERRIDE; \
  NS_IMETHOD GetProto(NATProtocol_T *aProto) NS_OVERRIDE; \
  NS_IMETHOD GetHostIP(PRUnichar **aHostIP) NS_OVERRIDE; \
  NS_IMETHOD GetHostPort(PRInt32 *aHostPort) NS_OVERRIDE; \
  NS_IMETHOD GetGuestIP(PRUnichar **aGuestIP) NS_OVERRIDE; \
  NS_IMETHOD GetGuestPort(PRInt32 *aGuestPort) NS_OVERRIDE; 

/* 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(NATProtocol_T *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(NATProtocol_T *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); } 

#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:    IHostAudioDeviceChangedEvent */
#define IHOSTAUDIODEVICECHANGEDEVENT_IID_STR "8dcc633f-7b03-4f0a-9f40-7a784dd0835a"

#define IHOSTAUDIODEVICECHANGEDEVENT_IID \
  {0x8dcc633f, 0x7b03, 0x4f0a, \
    { 0x9f, 0x40, 0x7a, 0x78, 0x4d, 0xd0, 0x83, 0x5a }}

class NS_NO_VTABLE IHostAudioDeviceChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IHOSTAUDIODEVICECHANGEDEVENT_IID)

  /* readonly attribute IHostAudioDevice device; */
  NS_IMETHOD GetDevice(IHostAudioDevice * *aDevice) = 0;

  /* readonly attribute boolean new; */
  NS_IMETHOD GetNew(PRBool *aNew) = 0;

  /* readonly attribute AudioDeviceState_T state; */
  NS_IMETHOD GetState(AudioDeviceState_T *aState) = 0;

  /* readonly attribute IVirtualBoxErrorInfo error; */
  NS_IMETHOD GetError(IVirtualBoxErrorInfo * *aError) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IHOSTAUDIODEVICECHANGEDEVENT \
  NS_IMETHOD GetDevice(IHostAudioDevice * *aDevice) NS_OVERRIDE; \
  NS_IMETHOD GetNew(PRBool *aNew) NS_OVERRIDE; \
  NS_IMETHOD GetState(AudioDeviceState_T *aState) NS_OVERRIDE; \
  NS_IMETHOD GetError(IVirtualBoxErrorInfo * *aError) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IHOSTAUDIODEVICECHANGEDEVENT(_to) \
  NS_IMETHOD GetDevice(IHostAudioDevice * *aDevice) { return _to GetDevice(aDevice); } \
  NS_IMETHOD GetNew(PRBool *aNew) { return _to GetNew(aNew); } \
  NS_IMETHOD GetState(AudioDeviceState_T *aState) { return _to GetState(aState); } \
  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_IHOSTAUDIODEVICECHANGEDEVENT(_to) \
  NS_IMETHOD GetDevice(IHostAudioDevice * *aDevice) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDevice(aDevice); } \
  NS_IMETHOD GetNew(PRBool *aNew) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNew(aNew); } \
  NS_IMETHOD GetState(AudioDeviceState_T *aState) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetState(aState); } \
  NS_IMETHOD GetError(IVirtualBoxErrorInfo * *aError) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetError(aError); } 

#define COM_FORWARD_IHostAudioDeviceChangedEvent_GETTER_Device_TO(smth) NS_IMETHOD GetDevice (IHostAudioDevice * * aDevice) { return smth GetDevice (aDevice); }
#define COM_FORWARD_IHostAudioDeviceChangedEvent_GETTER_Device_TO_OBJ(obj) COM_FORWARD_IHostAudioDeviceChangedEvent_GETTER_Device_TO ((obj)->)
#define COM_FORWARD_IHostAudioDeviceChangedEvent_GETTER_Device_TO_BASE(base) COM_FORWARD_IHostAudioDeviceChangedEvent_GETTER_Device_TO (base::)
#define COM_FORWARD_IHostAudioDeviceChangedEvent_GETTER_New_TO(smth) NS_IMETHOD GetNew (PRBool * aNew) { return smth GetNew (aNew); }
#define COM_FORWARD_IHostAudioDeviceChangedEvent_GETTER_New_TO_OBJ(obj) COM_FORWARD_IHostAudioDeviceChangedEvent_GETTER_New_TO ((obj)->)
#define COM_FORWARD_IHostAudioDeviceChangedEvent_GETTER_New_TO_BASE(base) COM_FORWARD_IHostAudioDeviceChangedEvent_GETTER_New_TO (base::)
#define COM_FORWARD_IHostAudioDeviceChangedEvent_GETTER_State_TO(smth) NS_IMETHOD GetState (PRUint32 * aState) { return smth GetState (aState); }
#define COM_FORWARD_IHostAudioDeviceChangedEvent_GETTER_State_TO_OBJ(obj) COM_FORWARD_IHostAudioDeviceChangedEvent_GETTER_State_TO ((obj)->)
#define COM_FORWARD_IHostAudioDeviceChangedEvent_GETTER_State_TO_BASE(base) COM_FORWARD_IHostAudioDeviceChangedEvent_GETTER_State_TO (base::)
#define COM_FORWARD_IHostAudioDeviceChangedEvent_GETTER_Error_TO(smth) NS_IMETHOD GetError (IVirtualBoxErrorInfo * * aError) { return smth GetError (aError); }
#define COM_FORWARD_IHostAudioDeviceChangedEvent_GETTER_Error_TO_OBJ(obj) COM_FORWARD_IHostAudioDeviceChangedEvent_GETTER_Error_TO ((obj)->)
#define COM_FORWARD_IHostAudioDeviceChangedEvent_GETTER_Error_TO_BASE(base) COM_FORWARD_IHostAudioDeviceChangedEvent_GETTER_Error_TO (base::)
#define COM_FORWARD_IHostAudioDeviceChangedEvent_TO(smth) NS_FORWARD_IHOSTAUDIODEVICECHANGEDEVENT (smth)
#define COM_FORWARD_IHostAudioDeviceChangedEvent_TO_OBJ(obj) COM_FORWARD_IHostAudioDeviceChangedEvent_TO ((obj)->)
#define COM_FORWARD_IHostAudioDeviceChangedEvent_TO_BASE(base) COM_FORWARD_IHostAudioDeviceChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IHostAudioDeviceChangedEvent;

/* 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_OVERRIDE; \
  NS_IMETHOD GetSuccess(PRBool *aSuccess) NS_OVERRIDE; \
  NS_IMETHOD GetAttachment(IPCIDeviceAttachment * *aAttachment) NS_OVERRIDE; \
  NS_IMETHOD GetMessage(PRUnichar **aMessage) NS_OVERRIDE; 

/* 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); } 

#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) NS_OVERRIDE; 

/* 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); } 

#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) NS_OVERRIDE; 

/* 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); } 

#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 GuestMonitorChangedEventType_T changeType; */
  NS_IMETHOD GetChangeType(GuestMonitorChangedEventType_T *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(GuestMonitorChangedEventType_T *aChangeType) NS_OVERRIDE; \
  NS_IMETHOD GetScreenId(PRUint32 *aScreenId) NS_OVERRIDE; \
  NS_IMETHOD GetOriginX(PRUint32 *aOriginX) NS_OVERRIDE; \
  NS_IMETHOD GetOriginY(PRUint32 *aOriginY) NS_OVERRIDE; \
  NS_IMETHOD GetWidth(PRUint32 *aWidth) NS_OVERRIDE; \
  NS_IMETHOD GetHeight(PRUint32 *aHeight) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTMONITORCHANGEDEVENT(_to) \
  NS_IMETHOD GetChangeType(GuestMonitorChangedEventType_T *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(GuestMonitorChangedEventType_T *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); } 

#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 GuestUserState_T state; */
  NS_IMETHOD GetState(GuestUserState_T *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_OVERRIDE; \
  NS_IMETHOD GetDomain(PRUnichar **aDomain) NS_OVERRIDE; \
  NS_IMETHOD GetState(GuestUserState_T *aState) NS_OVERRIDE; \
  NS_IMETHOD GetStateDetails(PRUnichar **aStateDetails) NS_OVERRIDE; 

/* 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(GuestUserState_T *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(GuestUserState_T *aState) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetState(aState); } \
  NS_IMETHOD GetStateDetails(PRUnichar **aStateDetails) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStateDetails(aStateDetails); } 

#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_OVERRIDE; \
  NS_IMETHOD GetRemoved(PRBool *aRemoved) NS_OVERRIDE; \
  NS_IMETHOD GetSilent(PRBool *aSilent) NS_OVERRIDE; 

/* 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); } 

#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) NS_OVERRIDE; 

/* 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); } 

#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) NS_OVERRIDE; 

/* 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); } 

#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) NS_OVERRIDE; 

/* 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); } 

#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) NS_OVERRIDE; 

/* 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); } 

#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_OVERRIDE; \
  NS_IMETHOD GetNetwork(PRUnichar **aNetwork) NS_OVERRIDE; \
  NS_IMETHOD GetGateway(PRUnichar **aGateway) NS_OVERRIDE; \
  NS_IMETHOD GetAdvertiseDefaultIPv6RouteEnabled(PRBool *aAdvertiseDefaultIPv6RouteEnabled) NS_OVERRIDE; \
  NS_IMETHOD GetNeedDhcpServer(PRBool *aNeedDhcpServer) NS_OVERRIDE; 

/* 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); } 

#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 NATProtocol_T proto; */
  NS_IMETHOD GetProto(NATProtocol_T *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_OVERRIDE; \
  NS_IMETHOD GetIpv6(PRBool *aIpv6) NS_OVERRIDE; \
  NS_IMETHOD GetName(PRUnichar **aName) NS_OVERRIDE; \
  NS_IMETHOD GetProto(NATProtocol_T *aProto) NS_OVERRIDE; \
  NS_IMETHOD GetHostIp(PRUnichar **aHostIp) NS_OVERRIDE; \
  NS_IMETHOD GetHostPort(PRInt32 *aHostPort) NS_OVERRIDE; \
  NS_IMETHOD GetGuestIp(PRUnichar **aGuestIp) NS_OVERRIDE; \
  NS_IMETHOD GetGuestPort(PRInt32 *aGuestPort) NS_OVERRIDE; 

/* 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(NATProtocol_T *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(NATProtocol_T *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); } 

#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) NS_OVERRIDE; 

/* 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); } 

#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;

/* starting interface:    IProgressEvent */
#define IPROGRESSEVENT_IID_STR "daaf9016-1f04-4191-aa2f-1fac9646ae4c"

#define IPROGRESSEVENT_IID \
  {0xdaaf9016, 0x1f04, 0x4191, \
    { 0xaa, 0x2f, 0x1f, 0xac, 0x96, 0x46, 0xae, 0x4c }}

class NS_NO_VTABLE IProgressEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IPROGRESSEVENT_IID)

  /* readonly attribute wstring progressId; */
  NS_IMETHOD GetProgressId(PRUnichar **aProgressId) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IPROGRESSEVENT \
  NS_IMETHOD GetProgressId(PRUnichar **aProgressId) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IPROGRESSEVENT(_to) \
  NS_IMETHOD GetProgressId(PRUnichar **aProgressId) { return _to GetProgressId(aProgressId); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IPROGRESSEVENT(_to) \
  NS_IMETHOD GetProgressId(PRUnichar **aProgressId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProgressId(aProgressId); } 

#define COM_FORWARD_IProgressEvent_GETTER_ProgressId_TO(smth) NS_IMETHOD GetProgressId (PRUnichar * * aProgressId) { return smth GetProgressId (aProgressId); }
#define COM_FORWARD_IProgressEvent_GETTER_ProgressId_TO_OBJ(obj) COM_FORWARD_IProgressEvent_GETTER_ProgressId_TO ((obj)->)
#define COM_FORWARD_IProgressEvent_GETTER_ProgressId_TO_BASE(base) COM_FORWARD_IProgressEvent_GETTER_ProgressId_TO (base::)
#define COM_FORWARD_IProgressEvent_TO(smth) NS_FORWARD_IPROGRESSEVENT (smth)
#define COM_FORWARD_IProgressEvent_TO_OBJ(obj) COM_FORWARD_IProgressEvent_TO ((obj)->)
#define COM_FORWARD_IProgressEvent_TO_BASE(base) COM_FORWARD_IProgressEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IProgressEvent;

/* starting interface:    IProgressCreatedEvent */
#define IPROGRESSCREATEDEVENT_IID_STR "a85bba40-1b93-47bb-b125-dec708c30fc0"

#define IPROGRESSCREATEDEVENT_IID \
  {0xa85bba40, 0x1b93, 0x47bb, \
    { 0xb1, 0x25, 0xde, 0xc7, 0x08, 0xc3, 0x0f, 0xc0 }}

class NS_NO_VTABLE IProgressCreatedEvent : public IProgressEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IPROGRESSCREATEDEVENT_IID)

  /* readonly attribute boolean create; */
  NS_IMETHOD GetCreate(PRBool *aCreate) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IPROGRESSCREATEDEVENT \
  NS_IMETHOD GetCreate(PRBool *aCreate) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IPROGRESSCREATEDEVENT(_to) \
  NS_IMETHOD GetCreate(PRBool *aCreate) { return _to GetCreate(aCreate); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IPROGRESSCREATEDEVENT(_to) \
  NS_IMETHOD GetCreate(PRBool *aCreate) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCreate(aCreate); } 

#define COM_FORWARD_IProgressCreatedEvent_GETTER_Create_TO(smth) NS_IMETHOD GetCreate (PRBool * aCreate) { return smth GetCreate (aCreate); }
#define COM_FORWARD_IProgressCreatedEvent_GETTER_Create_TO_OBJ(obj) COM_FORWARD_IProgressCreatedEvent_GETTER_Create_TO ((obj)->)
#define COM_FORWARD_IProgressCreatedEvent_GETTER_Create_TO_BASE(base) COM_FORWARD_IProgressCreatedEvent_GETTER_Create_TO (base::)
#define COM_FORWARD_IProgressCreatedEvent_TO(smth) NS_FORWARD_IPROGRESSCREATEDEVENT (smth)
#define COM_FORWARD_IProgressCreatedEvent_TO_OBJ(obj) COM_FORWARD_IProgressCreatedEvent_TO ((obj)->)
#define COM_FORWARD_IProgressCreatedEvent_TO_BASE(base) COM_FORWARD_IProgressCreatedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IProgressCreatedEvent;

/* starting interface:    IProgressPercentageChangedEvent */
#define IPROGRESSPERCENTAGECHANGEDEVENT_IID_STR "f05d7e60-1bcf-4218-9807-04e036cc70f1"

#define IPROGRESSPERCENTAGECHANGEDEVENT_IID \
  {0xf05d7e60, 0x1bcf, 0x4218, \
    { 0x98, 0x07, 0x04, 0xe0, 0x36, 0xcc, 0x70, 0xf1 }}

class NS_NO_VTABLE IProgressPercentageChangedEvent : public IProgressEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IPROGRESSPERCENTAGECHANGEDEVENT_IID)

  /* readonly attribute long percent; */
  NS_IMETHOD GetPercent(PRInt32 *aPercent) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IPROGRESSPERCENTAGECHANGEDEVENT \
  NS_IMETHOD GetPercent(PRInt32 *aPercent) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IPROGRESSPERCENTAGECHANGEDEVENT(_to) \
  NS_IMETHOD GetPercent(PRInt32 *aPercent) { return _to GetPercent(aPercent); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IPROGRESSPERCENTAGECHANGEDEVENT(_to) \
  NS_IMETHOD GetPercent(PRInt32 *aPercent) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPercent(aPercent); } 

#define COM_FORWARD_IProgressPercentageChangedEvent_GETTER_Percent_TO(smth) NS_IMETHOD GetPercent (PRInt32 * aPercent) { return smth GetPercent (aPercent); }
#define COM_FORWARD_IProgressPercentageChangedEvent_GETTER_Percent_TO_OBJ(obj) COM_FORWARD_IProgressPercentageChangedEvent_GETTER_Percent_TO ((obj)->)
#define COM_FORWARD_IProgressPercentageChangedEvent_GETTER_Percent_TO_BASE(base) COM_FORWARD_IProgressPercentageChangedEvent_GETTER_Percent_TO (base::)
#define COM_FORWARD_IProgressPercentageChangedEvent_TO(smth) NS_FORWARD_IPROGRESSPERCENTAGECHANGEDEVENT (smth)
#define COM_FORWARD_IProgressPercentageChangedEvent_TO_OBJ(obj) COM_FORWARD_IProgressPercentageChangedEvent_TO ((obj)->)
#define COM_FORWARD_IProgressPercentageChangedEvent_TO_BASE(base) COM_FORWARD_IProgressPercentageChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IProgressPercentageChangedEvent;

/* starting interface:    IProgressTaskCompletedEvent */
#define IPROGRESSTASKCOMPLETEDEVENT_IID_STR "a5bbdb7d-8ce7-469f-a4c2-6476f581ff72"

#define IPROGRESSTASKCOMPLETEDEVENT_IID \
  {0xa5bbdb7d, 0x8ce7, 0x469f, \
    { 0xa4, 0xc2, 0x64, 0x76, 0xf5, 0x81, 0xff, 0x72 }}

class NS_NO_VTABLE IProgressTaskCompletedEvent : public IProgressEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IPROGRESSTASKCOMPLETEDEVENT_IID)

  /* readonly attribute boolean midlDoesNotLikeEmptyInterfaces; */
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IPROGRESSTASKCOMPLETEDEVENT \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IPROGRESSTASKCOMPLETEDEVENT(_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_IPROGRESSTASKCOMPLETEDEVENT(_to) \
  NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces(PRBool *aMidlDoesNotLikeEmptyInterfaces) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMidlDoesNotLikeEmptyInterfaces(aMidlDoesNotLikeEmptyInterfaces); } 

#define COM_FORWARD_IProgressTaskCompletedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO(smth) NS_IMETHOD GetMidlDoesNotLikeEmptyInterfaces (PRBool * aMidlDoesNotLikeEmptyInterfaces) { return smth GetMidlDoesNotLikeEmptyInterfaces (aMidlDoesNotLikeEmptyInterfaces); }
#define COM_FORWARD_IProgressTaskCompletedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_OBJ(obj) COM_FORWARD_IProgressTaskCompletedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO ((obj)->)
#define COM_FORWARD_IProgressTaskCompletedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO_BASE(base) COM_FORWARD_IProgressTaskCompletedEvent_GETTER_MidlDoesNotLikeEmptyInterfaces_TO (base::)
#define COM_FORWARD_IProgressTaskCompletedEvent_TO(smth) NS_FORWARD_IPROGRESSTASKCOMPLETEDEVENT (smth)
#define COM_FORWARD_IProgressTaskCompletedEvent_TO_OBJ(obj) COM_FORWARD_IProgressTaskCompletedEvent_TO ((obj)->)
#define COM_FORWARD_IProgressTaskCompletedEvent_TO_BASE(base) COM_FORWARD_IProgressTaskCompletedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IProgressTaskCompletedEvent;

/* starting interface:    ICursorPositionChangedEvent */
#define ICURSORPOSITIONCHANGEDEVENT_IID_STR "6f302674-c927-11e7-b788-33c248e71fc7"

#define ICURSORPOSITIONCHANGEDEVENT_IID \
  {0x6f302674, 0xc927, 0x11e7, \
    { 0xb7, 0x88, 0x33, 0xc2, 0x48, 0xe7, 0x1f, 0xc7 }}

class NS_NO_VTABLE ICursorPositionChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ICURSORPOSITIONCHANGEDEVENT_IID)

  /* readonly attribute boolean hasData; */
  NS_IMETHOD GetHasData(PRBool *aHasData) = 0;

  /* readonly attribute unsigned long x; */
  NS_IMETHOD GetX(PRUint32 *aX) = 0;

  /* readonly attribute unsigned long y; */
  NS_IMETHOD GetY(PRUint32 *aY) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ICURSORPOSITIONCHANGEDEVENT \
  NS_IMETHOD GetHasData(PRBool *aHasData) NS_OVERRIDE; \
  NS_IMETHOD GetX(PRUint32 *aX) NS_OVERRIDE; \
  NS_IMETHOD GetY(PRUint32 *aY) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ICURSORPOSITIONCHANGEDEVENT(_to) \
  NS_IMETHOD GetHasData(PRBool *aHasData) { return _to GetHasData(aHasData); } \
  NS_IMETHOD GetX(PRUint32 *aX) { return _to GetX(aX); } \
  NS_IMETHOD GetY(PRUint32 *aY) { return _to GetY(aY); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ICURSORPOSITIONCHANGEDEVENT(_to) \
  NS_IMETHOD GetHasData(PRBool *aHasData) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHasData(aHasData); } \
  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); } 

#define COM_FORWARD_ICursorPositionChangedEvent_GETTER_HasData_TO(smth) NS_IMETHOD GetHasData (PRBool * aHasData) { return smth GetHasData (aHasData); }
#define COM_FORWARD_ICursorPositionChangedEvent_GETTER_HasData_TO_OBJ(obj) COM_FORWARD_ICursorPositionChangedEvent_GETTER_HasData_TO ((obj)->)
#define COM_FORWARD_ICursorPositionChangedEvent_GETTER_HasData_TO_BASE(base) COM_FORWARD_ICursorPositionChangedEvent_GETTER_HasData_TO (base::)
#define COM_FORWARD_ICursorPositionChangedEvent_GETTER_X_TO(smth) NS_IMETHOD GetX (PRUint32 * aX) { return smth GetX (aX); }
#define COM_FORWARD_ICursorPositionChangedEvent_GETTER_X_TO_OBJ(obj) COM_FORWARD_ICursorPositionChangedEvent_GETTER_X_TO ((obj)->)
#define COM_FORWARD_ICursorPositionChangedEvent_GETTER_X_TO_BASE(base) COM_FORWARD_ICursorPositionChangedEvent_GETTER_X_TO (base::)
#define COM_FORWARD_ICursorPositionChangedEvent_GETTER_Y_TO(smth) NS_IMETHOD GetY (PRUint32 * aY) { return smth GetY (aY); }
#define COM_FORWARD_ICursorPositionChangedEvent_GETTER_Y_TO_OBJ(obj) COM_FORWARD_ICursorPositionChangedEvent_GETTER_Y_TO ((obj)->)
#define COM_FORWARD_ICursorPositionChangedEvent_GETTER_Y_TO_BASE(base) COM_FORWARD_ICursorPositionChangedEvent_GETTER_Y_TO (base::)
#define COM_FORWARD_ICursorPositionChangedEvent_TO(smth) NS_FORWARD_ICURSORPOSITIONCHANGEDEVENT (smth)
#define COM_FORWARD_ICursorPositionChangedEvent_TO_OBJ(obj) COM_FORWARD_ICursorPositionChangedEvent_TO ((obj)->)
#define COM_FORWARD_ICursorPositionChangedEvent_TO_BASE(base) COM_FORWARD_ICursorPositionChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ICursorPositionChangedEvent;

/* starting interface:    IGuestAdditionsStatusChangedEvent */
#define IGUESTADDITIONSSTATUSCHANGEDEVENT_IID_STR "a443da5b-aa82-4720-bc84-bd097b2b13b8"

#define IGUESTADDITIONSSTATUSCHANGEDEVENT_IID \
  {0xa443da5b, 0xaa82, 0x4720, \
    { 0xbc, 0x84, 0xbd, 0x09, 0x7b, 0x2b, 0x13, 0xb8 }}

class NS_NO_VTABLE IGuestAdditionsStatusChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTADDITIONSSTATUSCHANGEDEVENT_IID)

  /* readonly attribute AdditionsFacilityType_T facility; */
  NS_IMETHOD GetFacility(AdditionsFacilityType_T *aFacility) = 0;

  /* readonly attribute AdditionsFacilityStatus_T status; */
  NS_IMETHOD GetStatus(AdditionsFacilityStatus_T *aStatus) = 0;

  /* readonly attribute AdditionsRunLevelType_T runLevel; */
  NS_IMETHOD GetRunLevel(AdditionsRunLevelType_T *aRunLevel) = 0;

  /* readonly attribute long long timestamp; */
  NS_IMETHOD GetTimestamp(PRInt64 *aTimestamp) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTADDITIONSSTATUSCHANGEDEVENT \
  NS_IMETHOD GetFacility(AdditionsFacilityType_T *aFacility) NS_OVERRIDE; \
  NS_IMETHOD GetStatus(AdditionsFacilityStatus_T *aStatus) NS_OVERRIDE; \
  NS_IMETHOD GetRunLevel(AdditionsRunLevelType_T *aRunLevel) NS_OVERRIDE; \
  NS_IMETHOD GetTimestamp(PRInt64 *aTimestamp) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTADDITIONSSTATUSCHANGEDEVENT(_to) \
  NS_IMETHOD GetFacility(AdditionsFacilityType_T *aFacility) { return _to GetFacility(aFacility); } \
  NS_IMETHOD GetStatus(AdditionsFacilityStatus_T *aStatus) { return _to GetStatus(aStatus); } \
  NS_IMETHOD GetRunLevel(AdditionsRunLevelType_T *aRunLevel) { return _to GetRunLevel(aRunLevel); } \
  NS_IMETHOD GetTimestamp(PRInt64 *aTimestamp) { return _to GetTimestamp(aTimestamp); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGUESTADDITIONSSTATUSCHANGEDEVENT(_to) \
  NS_IMETHOD GetFacility(AdditionsFacilityType_T *aFacility) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFacility(aFacility); } \
  NS_IMETHOD GetStatus(AdditionsFacilityStatus_T *aStatus) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStatus(aStatus); } \
  NS_IMETHOD GetRunLevel(AdditionsRunLevelType_T *aRunLevel) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRunLevel(aRunLevel); } \
  NS_IMETHOD GetTimestamp(PRInt64 *aTimestamp) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTimestamp(aTimestamp); } 

#define COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_Facility_TO(smth) NS_IMETHOD GetFacility (PRUint32 * aFacility) { return smth GetFacility (aFacility); }
#define COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_Facility_TO_OBJ(obj) COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_Facility_TO ((obj)->)
#define COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_Facility_TO_BASE(base) COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_Facility_TO (base::)
#define COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_Status_TO(smth) NS_IMETHOD GetStatus (PRUint32 * aStatus) { return smth GetStatus (aStatus); }
#define COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_Status_TO_OBJ(obj) COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_Status_TO ((obj)->)
#define COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_Status_TO_BASE(base) COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_Status_TO (base::)
#define COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_RunLevel_TO(smth) NS_IMETHOD GetRunLevel (PRUint32 * aRunLevel) { return smth GetRunLevel (aRunLevel); }
#define COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_RunLevel_TO_OBJ(obj) COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_RunLevel_TO ((obj)->)
#define COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_RunLevel_TO_BASE(base) COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_RunLevel_TO (base::)
#define COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_Timestamp_TO(smth) NS_IMETHOD GetTimestamp (PRInt64 * aTimestamp) { return smth GetTimestamp (aTimestamp); }
#define COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_Timestamp_TO_OBJ(obj) COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_Timestamp_TO ((obj)->)
#define COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_Timestamp_TO_BASE(base) COM_FORWARD_IGuestAdditionsStatusChangedEvent_GETTER_Timestamp_TO (base::)
#define COM_FORWARD_IGuestAdditionsStatusChangedEvent_TO(smth) NS_FORWARD_IGUESTADDITIONSSTATUSCHANGEDEVENT (smth)
#define COM_FORWARD_IGuestAdditionsStatusChangedEvent_TO_OBJ(obj) COM_FORWARD_IGuestAdditionsStatusChangedEvent_TO ((obj)->)
#define COM_FORWARD_IGuestAdditionsStatusChangedEvent_TO_BASE(base) COM_FORWARD_IGuestAdditionsStatusChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestAdditionsStatusChangedEvent;

/* starting interface:    IGuestMonitorInfoChangedEvent */
#define IGUESTMONITORINFOCHANGEDEVENT_IID_STR "0b3cdeb2-808e-11e9-b773-133d9330f849"

#define IGUESTMONITORINFOCHANGEDEVENT_IID \
  {0x0b3cdeb2, 0x808e, 0x11e9, \
    { 0xb7, 0x73, 0x13, 0x3d, 0x93, 0x30, 0xf8, 0x49 }}

class NS_NO_VTABLE IGuestMonitorInfoChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTMONITORINFOCHANGEDEVENT_IID)

  /* readonly attribute unsigned long output; */
  NS_IMETHOD GetOutput(PRUint32 *aOutput) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTMONITORINFOCHANGEDEVENT \
  NS_IMETHOD GetOutput(PRUint32 *aOutput) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTMONITORINFOCHANGEDEVENT(_to) \
  NS_IMETHOD GetOutput(PRUint32 *aOutput) { return _to GetOutput(aOutput); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGUESTMONITORINFOCHANGEDEVENT(_to) \
  NS_IMETHOD GetOutput(PRUint32 *aOutput) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOutput(aOutput); } 

#define COM_FORWARD_IGuestMonitorInfoChangedEvent_GETTER_Output_TO(smth) NS_IMETHOD GetOutput (PRUint32 * aOutput) { return smth GetOutput (aOutput); }
#define COM_FORWARD_IGuestMonitorInfoChangedEvent_GETTER_Output_TO_OBJ(obj) COM_FORWARD_IGuestMonitorInfoChangedEvent_GETTER_Output_TO ((obj)->)
#define COM_FORWARD_IGuestMonitorInfoChangedEvent_GETTER_Output_TO_BASE(base) COM_FORWARD_IGuestMonitorInfoChangedEvent_GETTER_Output_TO (base::)
#define COM_FORWARD_IGuestMonitorInfoChangedEvent_TO(smth) NS_FORWARD_IGUESTMONITORINFOCHANGEDEVENT (smth)
#define COM_FORWARD_IGuestMonitorInfoChangedEvent_TO_OBJ(obj) COM_FORWARD_IGuestMonitorInfoChangedEvent_TO ((obj)->)
#define COM_FORWARD_IGuestMonitorInfoChangedEvent_TO_BASE(base) COM_FORWARD_IGuestMonitorInfoChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestMonitorInfoChangedEvent;

/* starting interface:    IUpdateAgentEvent */
#define IUPDATEAGENTEVENT_IID_STR "ff58a51d-54a1-411c-93e9-3047eb4dcd21"

#define IUPDATEAGENTEVENT_IID \
  {0xff58a51d, 0x54a1, 0x411c, \
    { 0x93, 0xe9, 0x30, 0x47, 0xeb, 0x4d, 0xcd, 0x21 }}

class NS_NO_VTABLE IUpdateAgentEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IUPDATEAGENTEVENT_IID)

  /* readonly attribute IUpdateAgent agent; */
  NS_IMETHOD GetAgent(IUpdateAgent * *aAgent) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IUPDATEAGENTEVENT \
  NS_IMETHOD GetAgent(IUpdateAgent * *aAgent) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IUPDATEAGENTEVENT(_to) \
  NS_IMETHOD GetAgent(IUpdateAgent * *aAgent) { return _to GetAgent(aAgent); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IUPDATEAGENTEVENT(_to) \
  NS_IMETHOD GetAgent(IUpdateAgent * *aAgent) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAgent(aAgent); } 

#define COM_FORWARD_IUpdateAgentEvent_GETTER_Agent_TO(smth) NS_IMETHOD GetAgent (IUpdateAgent * * aAgent) { return smth GetAgent (aAgent); }
#define COM_FORWARD_IUpdateAgentEvent_GETTER_Agent_TO_OBJ(obj) COM_FORWARD_IUpdateAgentEvent_GETTER_Agent_TO ((obj)->)
#define COM_FORWARD_IUpdateAgentEvent_GETTER_Agent_TO_BASE(base) COM_FORWARD_IUpdateAgentEvent_GETTER_Agent_TO (base::)
#define COM_FORWARD_IUpdateAgentEvent_TO(smth) NS_FORWARD_IUPDATEAGENTEVENT (smth)
#define COM_FORWARD_IUpdateAgentEvent_TO_OBJ(obj) COM_FORWARD_IUpdateAgentEvent_TO ((obj)->)
#define COM_FORWARD_IUpdateAgentEvent_TO_BASE(base) COM_FORWARD_IUpdateAgentEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IUpdateAgentEvent;

/* starting interface:    IUpdateAgentSettingsChangedEvent */
#define IUPDATEAGENTSETTINGSCHANGEDEVENT_IID_STR "abef51ae-1493-49f4-aa03-efaf106bf086"

#define IUPDATEAGENTSETTINGSCHANGEDEVENT_IID \
  {0xabef51ae, 0x1493, 0x49f4, \
    { 0xaa, 0x03, 0xef, 0xaf, 0x10, 0x6b, 0xf0, 0x86 }}

class NS_NO_VTABLE IUpdateAgentSettingsChangedEvent : public IUpdateAgentEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IUPDATEAGENTSETTINGSCHANGEDEVENT_IID)

  /* readonly attribute wstring attributeHint; */
  NS_IMETHOD GetAttributeHint(PRUnichar **aAttributeHint) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IUPDATEAGENTSETTINGSCHANGEDEVENT \
  NS_IMETHOD GetAttributeHint(PRUnichar **aAttributeHint) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IUPDATEAGENTSETTINGSCHANGEDEVENT(_to) \
  NS_IMETHOD GetAttributeHint(PRUnichar **aAttributeHint) { return _to GetAttributeHint(aAttributeHint); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IUPDATEAGENTSETTINGSCHANGEDEVENT(_to) \
  NS_IMETHOD GetAttributeHint(PRUnichar **aAttributeHint) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAttributeHint(aAttributeHint); } 

#define COM_FORWARD_IUpdateAgentSettingsChangedEvent_GETTER_AttributeHint_TO(smth) NS_IMETHOD GetAttributeHint (PRUnichar * * aAttributeHint) { return smth GetAttributeHint (aAttributeHint); }
#define COM_FORWARD_IUpdateAgentSettingsChangedEvent_GETTER_AttributeHint_TO_OBJ(obj) COM_FORWARD_IUpdateAgentSettingsChangedEvent_GETTER_AttributeHint_TO ((obj)->)
#define COM_FORWARD_IUpdateAgentSettingsChangedEvent_GETTER_AttributeHint_TO_BASE(base) COM_FORWARD_IUpdateAgentSettingsChangedEvent_GETTER_AttributeHint_TO (base::)
#define COM_FORWARD_IUpdateAgentSettingsChangedEvent_TO(smth) NS_FORWARD_IUPDATEAGENTSETTINGSCHANGEDEVENT (smth)
#define COM_FORWARD_IUpdateAgentSettingsChangedEvent_TO_OBJ(obj) COM_FORWARD_IUpdateAgentSettingsChangedEvent_TO ((obj)->)
#define COM_FORWARD_IUpdateAgentSettingsChangedEvent_TO_BASE(base) COM_FORWARD_IUpdateAgentSettingsChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IUpdateAgentSettingsChangedEvent;

/* starting interface:    IUpdateAgentErrorEvent */
#define IUPDATEAGENTERROREVENT_IID_STR "2a88033d-82db-4ac2-97b5-e786c839420e"

#define IUPDATEAGENTERROREVENT_IID \
  {0x2a88033d, 0x82db, 0x4ac2, \
    { 0x97, 0xb5, 0xe7, 0x86, 0xc8, 0x39, 0x42, 0x0e }}

class NS_NO_VTABLE IUpdateAgentErrorEvent : public IUpdateAgentEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IUPDATEAGENTERROREVENT_IID)

  /* readonly attribute wstring msg; */
  NS_IMETHOD GetMsg(PRUnichar **aMsg) = 0;

  /* readonly attribute long rcError; */
  NS_IMETHOD GetRcError(PRInt32 *aRcError) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IUPDATEAGENTERROREVENT \
  NS_IMETHOD GetMsg(PRUnichar **aMsg) NS_OVERRIDE; \
  NS_IMETHOD GetRcError(PRInt32 *aRcError) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IUPDATEAGENTERROREVENT(_to) \
  NS_IMETHOD GetMsg(PRUnichar **aMsg) { return _to GetMsg(aMsg); } \
  NS_IMETHOD GetRcError(PRInt32 *aRcError) { return _to GetRcError(aRcError); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IUPDATEAGENTERROREVENT(_to) \
  NS_IMETHOD GetMsg(PRUnichar **aMsg) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMsg(aMsg); } \
  NS_IMETHOD GetRcError(PRInt32 *aRcError) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRcError(aRcError); } 

#define COM_FORWARD_IUpdateAgentErrorEvent_GETTER_Msg_TO(smth) NS_IMETHOD GetMsg (PRUnichar * * aMsg) { return smth GetMsg (aMsg); }
#define COM_FORWARD_IUpdateAgentErrorEvent_GETTER_Msg_TO_OBJ(obj) COM_FORWARD_IUpdateAgentErrorEvent_GETTER_Msg_TO ((obj)->)
#define COM_FORWARD_IUpdateAgentErrorEvent_GETTER_Msg_TO_BASE(base) COM_FORWARD_IUpdateAgentErrorEvent_GETTER_Msg_TO (base::)
#define COM_FORWARD_IUpdateAgentErrorEvent_GETTER_RcError_TO(smth) NS_IMETHOD GetRcError (PRInt32 * aRcError) { return smth GetRcError (aRcError); }
#define COM_FORWARD_IUpdateAgentErrorEvent_GETTER_RcError_TO_OBJ(obj) COM_FORWARD_IUpdateAgentErrorEvent_GETTER_RcError_TO ((obj)->)
#define COM_FORWARD_IUpdateAgentErrorEvent_GETTER_RcError_TO_BASE(base) COM_FORWARD_IUpdateAgentErrorEvent_GETTER_RcError_TO (base::)
#define COM_FORWARD_IUpdateAgentErrorEvent_TO(smth) NS_FORWARD_IUPDATEAGENTERROREVENT (smth)
#define COM_FORWARD_IUpdateAgentErrorEvent_TO_OBJ(obj) COM_FORWARD_IUpdateAgentErrorEvent_TO ((obj)->)
#define COM_FORWARD_IUpdateAgentErrorEvent_TO_BASE(base) COM_FORWARD_IUpdateAgentErrorEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IUpdateAgentErrorEvent;

/* starting interface:    IUpdateAgentAvailableEvent */
#define IUPDATEAGENTAVAILABLEEVENT_IID_STR "243829cb-15b7-42a4-8664-7aa4e34993da"

#define IUPDATEAGENTAVAILABLEEVENT_IID \
  {0x243829cb, 0x15b7, 0x42a4, \
    { 0x86, 0x64, 0x7a, 0xa4, 0xe3, 0x49, 0x93, 0xda }}

class NS_NO_VTABLE IUpdateAgentAvailableEvent : public IUpdateAgentEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IUPDATEAGENTAVAILABLEEVENT_IID)

  /* readonly attribute wstring version; */
  NS_IMETHOD GetVersion(PRUnichar **aVersion) = 0;

  /* readonly attribute UpdateChannel_T channel; */
  NS_IMETHOD GetChannel(UpdateChannel_T *aChannel) = 0;

  /* readonly attribute UpdateSeverity_T severity; */
  NS_IMETHOD GetSeverity(UpdateSeverity_T *aSeverity) = 0;

  /* readonly attribute wstring downloadURL; */
  NS_IMETHOD GetDownloadURL(PRUnichar **aDownloadURL) = 0;

  /* readonly attribute wstring webURL; */
  NS_IMETHOD GetWebURL(PRUnichar **aWebURL) = 0;

  /* readonly attribute wstring releaseNotes; */
  NS_IMETHOD GetReleaseNotes(PRUnichar **aReleaseNotes) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IUPDATEAGENTAVAILABLEEVENT \
  NS_IMETHOD GetVersion(PRUnichar **aVersion) NS_OVERRIDE; \
  NS_IMETHOD GetChannel(UpdateChannel_T *aChannel) NS_OVERRIDE; \
  NS_IMETHOD GetSeverity(UpdateSeverity_T *aSeverity) NS_OVERRIDE; \
  NS_IMETHOD GetDownloadURL(PRUnichar **aDownloadURL) NS_OVERRIDE; \
  NS_IMETHOD GetWebURL(PRUnichar **aWebURL) NS_OVERRIDE; \
  NS_IMETHOD GetReleaseNotes(PRUnichar **aReleaseNotes) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IUPDATEAGENTAVAILABLEEVENT(_to) \
  NS_IMETHOD GetVersion(PRUnichar **aVersion) { return _to GetVersion(aVersion); } \
  NS_IMETHOD GetChannel(UpdateChannel_T *aChannel) { return _to GetChannel(aChannel); } \
  NS_IMETHOD GetSeverity(UpdateSeverity_T *aSeverity) { return _to GetSeverity(aSeverity); } \
  NS_IMETHOD GetDownloadURL(PRUnichar **aDownloadURL) { return _to GetDownloadURL(aDownloadURL); } \
  NS_IMETHOD GetWebURL(PRUnichar **aWebURL) { return _to GetWebURL(aWebURL); } \
  NS_IMETHOD GetReleaseNotes(PRUnichar **aReleaseNotes) { return _to GetReleaseNotes(aReleaseNotes); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IUPDATEAGENTAVAILABLEEVENT(_to) \
  NS_IMETHOD GetVersion(PRUnichar **aVersion) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVersion(aVersion); } \
  NS_IMETHOD GetChannel(UpdateChannel_T *aChannel) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetChannel(aChannel); } \
  NS_IMETHOD GetSeverity(UpdateSeverity_T *aSeverity) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSeverity(aSeverity); } \
  NS_IMETHOD GetDownloadURL(PRUnichar **aDownloadURL) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDownloadURL(aDownloadURL); } \
  NS_IMETHOD GetWebURL(PRUnichar **aWebURL) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetWebURL(aWebURL); } \
  NS_IMETHOD GetReleaseNotes(PRUnichar **aReleaseNotes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetReleaseNotes(aReleaseNotes); } 

#define COM_FORWARD_IUpdateAgentAvailableEvent_GETTER_Version_TO(smth) NS_IMETHOD GetVersion (PRUnichar * * aVersion) { return smth GetVersion (aVersion); }
#define COM_FORWARD_IUpdateAgentAvailableEvent_GETTER_Version_TO_OBJ(obj) COM_FORWARD_IUpdateAgentAvailableEvent_GETTER_Version_TO ((obj)->)
#define COM_FORWARD_IUpdateAgentAvailableEvent_GETTER_Version_TO_BASE(base) COM_FORWARD_IUpdateAgentAvailableEvent_GETTER_Version_TO (base::)
#define COM_FORWARD_IUpdateAgentAvailableEvent_GETTER_Channel_TO(smth) NS_IMETHOD GetChannel (PRUint32 * aChannel) { return smth GetChannel (aChannel); }
#define COM_FORWARD_IUpdateAgentAvailableEvent_GETTER_Channel_TO_OBJ(obj) COM_FORWARD_IUpdateAgentAvailableEvent_GETTER_Channel_TO ((obj)->)
#define COM_FORWARD_IUpdateAgentAvailableEvent_GETTER_Channel_TO_BASE(base) COM_FORWARD_IUpdateAgentAvailableEvent_GETTER_Channel_TO (base::)
#define COM_FORWARD_IUpdateAgentAvailableEvent_GETTER_Severity_TO(smth) NS_IMETHOD GetSeverity (PRUint32 * aSeverity) { return smth GetSeverity (aSeverity); }
#define COM_FORWARD_IUpdateAgentAvailableEvent_GETTER_Severity_TO_OBJ(obj) COM_FORWARD_IUpdateAgentAvailableEvent_GETTER_Severity_TO ((obj)->)
#define COM_FORWARD_IUpdateAgentAvailableEvent_GETTER_Severity_TO_BASE(base) COM_FORWARD_IUpdateAgentAvailableEvent_GETTER_Severity_TO (base::)
#define COM_FORWARD_IUpdateAgentAvailableEvent_GETTER_DownloadURL_TO(smth) NS_IMETHOD GetDownloadURL (PRUnichar * * aDownloadURL) { return smth GetDownloadURL (aDownloadURL); }
#define COM_FORWARD_IUpdateAgentAvailableEvent_GETTER_DownloadURL_TO_OBJ(obj) COM_FORWARD_IUpdateAgentAvailableEvent_GETTER_DownloadURL_TO ((obj)->)
#define COM_FORWARD_IUpdateAgentAvailableEvent_GETTER_DownloadURL_TO_BASE(base) COM_FORWARD_IUpdateAgentAvailableEvent_GETTER_DownloadURL_TO (base::)
#define COM_FORWARD_IUpdateAgentAvailableEvent_GETTER_WebURL_TO(smth) NS_IMETHOD GetWebURL (PRUnichar * * aWebURL) { return smth GetWebURL (aWebURL); }
#define COM_FORWARD_IUpdateAgentAvailableEvent_GETTER_WebURL_TO_OBJ(obj) COM_FORWARD_IUpdateAgentAvailableEvent_GETTER_WebURL_TO ((obj)->)
#define COM_FORWARD_IUpdateAgentAvailableEvent_GETTER_WebURL_TO_BASE(base) COM_FORWARD_IUpdateAgentAvailableEvent_GETTER_WebURL_TO (base::)
#define COM_FORWARD_IUpdateAgentAvailableEvent_GETTER_ReleaseNotes_TO(smth) NS_IMETHOD GetReleaseNotes (PRUnichar * * aReleaseNotes) { return smth GetReleaseNotes (aReleaseNotes); }
#define COM_FORWARD_IUpdateAgentAvailableEvent_GETTER_ReleaseNotes_TO_OBJ(obj) COM_FORWARD_IUpdateAgentAvailableEvent_GETTER_ReleaseNotes_TO ((obj)->)
#define COM_FORWARD_IUpdateAgentAvailableEvent_GETTER_ReleaseNotes_TO_BASE(base) COM_FORWARD_IUpdateAgentAvailableEvent_GETTER_ReleaseNotes_TO (base::)
#define COM_FORWARD_IUpdateAgentAvailableEvent_TO(smth) NS_FORWARD_IUPDATEAGENTAVAILABLEEVENT (smth)
#define COM_FORWARD_IUpdateAgentAvailableEvent_TO_OBJ(obj) COM_FORWARD_IUpdateAgentAvailableEvent_TO ((obj)->)
#define COM_FORWARD_IUpdateAgentAvailableEvent_TO_BASE(base) COM_FORWARD_IUpdateAgentAvailableEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IUpdateAgentAvailableEvent;

/* starting interface:    IUpdateAgentStateChangedEvent */
#define IUPDATEAGENTSTATECHANGEDEVENT_IID_STR "eb000a0e-2079-4f47-bbcc-c6b28a4e50df"

#define IUPDATEAGENTSTATECHANGEDEVENT_IID \
  {0xeb000a0e, 0x2079, 0x4f47, \
    { 0xbb, 0xcc, 0xc6, 0xb2, 0x8a, 0x4e, 0x50, 0xdf }}

class NS_NO_VTABLE IUpdateAgentStateChangedEvent : public IUpdateAgentEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IUPDATEAGENTSTATECHANGEDEVENT_IID)

  /* readonly attribute UpdateState_T state; */
  NS_IMETHOD GetState(UpdateState_T *aState) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IUPDATEAGENTSTATECHANGEDEVENT \
  NS_IMETHOD GetState(UpdateState_T *aState) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IUPDATEAGENTSTATECHANGEDEVENT(_to) \
  NS_IMETHOD GetState(UpdateState_T *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_IUPDATEAGENTSTATECHANGEDEVENT(_to) \
  NS_IMETHOD GetState(UpdateState_T *aState) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetState(aState); } 

#define COM_FORWARD_IUpdateAgentStateChangedEvent_GETTER_State_TO(smth) NS_IMETHOD GetState (PRUint32 * aState) { return smth GetState (aState); }
#define COM_FORWARD_IUpdateAgentStateChangedEvent_GETTER_State_TO_OBJ(obj) COM_FORWARD_IUpdateAgentStateChangedEvent_GETTER_State_TO ((obj)->)
#define COM_FORWARD_IUpdateAgentStateChangedEvent_GETTER_State_TO_BASE(base) COM_FORWARD_IUpdateAgentStateChangedEvent_GETTER_State_TO (base::)
#define COM_FORWARD_IUpdateAgentStateChangedEvent_TO(smth) NS_FORWARD_IUPDATEAGENTSTATECHANGEDEVENT (smth)
#define COM_FORWARD_IUpdateAgentStateChangedEvent_TO_OBJ(obj) COM_FORWARD_IUpdateAgentStateChangedEvent_TO ((obj)->)
#define COM_FORWARD_IUpdateAgentStateChangedEvent_TO_BASE(base) COM_FORWARD_IUpdateAgentStateChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IUpdateAgentStateChangedEvent;

/* starting interface:    IGuestDebugControlChangedEvent */
#define IGUESTDEBUGCONTROLCHANGEDEVENT_IID_STR "a3d2799e-d3ad-4f73-91ef-7d839689f6d6"

#define IGUESTDEBUGCONTROLCHANGEDEVENT_IID \
  {0xa3d2799e, 0xd3ad, 0x4f73, \
    { 0x91, 0xef, 0x7d, 0x83, 0x96, 0x89, 0xf6, 0xd6 }}

class NS_NO_VTABLE IGuestDebugControlChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IGUESTDEBUGCONTROLCHANGEDEVENT_IID)

  /* readonly attribute IGuestDebugControl guestDebugControl; */
  NS_IMETHOD GetGuestDebugControl(IGuestDebugControl * *aGuestDebugControl) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IGUESTDEBUGCONTROLCHANGEDEVENT \
  NS_IMETHOD GetGuestDebugControl(IGuestDebugControl * *aGuestDebugControl) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IGUESTDEBUGCONTROLCHANGEDEVENT(_to) \
  NS_IMETHOD GetGuestDebugControl(IGuestDebugControl * *aGuestDebugControl) { return _to GetGuestDebugControl(aGuestDebugControl); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IGUESTDEBUGCONTROLCHANGEDEVENT(_to) \
  NS_IMETHOD GetGuestDebugControl(IGuestDebugControl * *aGuestDebugControl) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGuestDebugControl(aGuestDebugControl); } 

#define COM_FORWARD_IGuestDebugControlChangedEvent_GETTER_GuestDebugControl_TO(smth) NS_IMETHOD GetGuestDebugControl (IGuestDebugControl * * aGuestDebugControl) { return smth GetGuestDebugControl (aGuestDebugControl); }
#define COM_FORWARD_IGuestDebugControlChangedEvent_GETTER_GuestDebugControl_TO_OBJ(obj) COM_FORWARD_IGuestDebugControlChangedEvent_GETTER_GuestDebugControl_TO ((obj)->)
#define COM_FORWARD_IGuestDebugControlChangedEvent_GETTER_GuestDebugControl_TO_BASE(base) COM_FORWARD_IGuestDebugControlChangedEvent_GETTER_GuestDebugControl_TO (base::)
#define COM_FORWARD_IGuestDebugControlChangedEvent_TO(smth) NS_FORWARD_IGUESTDEBUGCONTROLCHANGEDEVENT (smth)
#define COM_FORWARD_IGuestDebugControlChangedEvent_TO_OBJ(obj) COM_FORWARD_IGuestDebugControlChangedEvent_TO ((obj)->)
#define COM_FORWARD_IGuestDebugControlChangedEvent_TO_BASE(base) COM_FORWARD_IGuestDebugControlChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IGuestDebugControlChangedEvent;

/* starting interface:    IMachineGroupsChangedEvent */
#define IMACHINEGROUPSCHANGEDEVENT_IID_STR "ee37afb5-7002-4786-a5c4-a9c29e1cce75"

#define IMACHINEGROUPSCHANGEDEVENT_IID \
  {0xee37afb5, 0x7002, 0x4786, \
    { 0xa5, 0xc4, 0xa9, 0xc2, 0x9e, 0x1c, 0xce, 0x75 }}

class NS_NO_VTABLE IMachineGroupsChangedEvent : public IMachineEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IMACHINEGROUPSCHANGEDEVENT_IID)

  /* readonly attribute boolean dummy; */
  NS_IMETHOD GetDummy(PRBool *aDummy) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IMACHINEGROUPSCHANGEDEVENT \
  NS_IMETHOD GetDummy(PRBool *aDummy) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IMACHINEGROUPSCHANGEDEVENT(_to) \
  NS_IMETHOD GetDummy(PRBool *aDummy) { return _to GetDummy(aDummy); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IMACHINEGROUPSCHANGEDEVENT(_to) \
  NS_IMETHOD GetDummy(PRBool *aDummy) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDummy(aDummy); } 

#define COM_FORWARD_IMachineGroupsChangedEvent_GETTER_Dummy_TO(smth) NS_IMETHOD GetDummy (PRBool * aDummy) { return smth GetDummy (aDummy); }
#define COM_FORWARD_IMachineGroupsChangedEvent_GETTER_Dummy_TO_OBJ(obj) COM_FORWARD_IMachineGroupsChangedEvent_GETTER_Dummy_TO ((obj)->)
#define COM_FORWARD_IMachineGroupsChangedEvent_GETTER_Dummy_TO_BASE(base) COM_FORWARD_IMachineGroupsChangedEvent_GETTER_Dummy_TO (base::)
#define COM_FORWARD_IMachineGroupsChangedEvent_TO(smth) NS_FORWARD_IMACHINEGROUPSCHANGEDEVENT (smth)
#define COM_FORWARD_IMachineGroupsChangedEvent_TO_OBJ(obj) COM_FORWARD_IMachineGroupsChangedEvent_TO ((obj)->)
#define COM_FORWARD_IMachineGroupsChangedEvent_TO_BASE(base) COM_FORWARD_IMachineGroupsChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IMachineGroupsChangedEvent;

/* starting interface:    IStringArray */
#define ISTRINGARRAY_IID_STR "3890b2c8-604d-11e9-92d3-53cb473db9fb"

#define ISTRINGARRAY_IID \
  {0x3890b2c8, 0x604d, 0x11e9, \
    { 0x92, 0xd3, 0x53, 0xcb, 0x47, 0x3d, 0xb9, 0xfb }}

class NS_NO_VTABLE IStringArray : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ISTRINGARRAY_IID)

  /* void getValues (out unsigned long valuesSize, [array, size_is (valuesSize), retval] out wstring values); */
  NS_IMETHOD GetValues(PRUint32 *valuesSize, PRUnichar ***values) = 0;

  /* void InternalAndReservedMethod1IStringArray (); */
  NS_IMETHOD InternalAndReservedMethod1IStringArray(void) = 0;

  /* void InternalAndReservedMethod2IStringArray (); */
  NS_IMETHOD InternalAndReservedMethod2IStringArray(void) = 0;

  /* void InternalAndReservedMethod3IStringArray (); */
  NS_IMETHOD InternalAndReservedMethod3IStringArray(void) = 0;

  /* void InternalAndReservedMethod4IStringArray (); */
  NS_IMETHOD InternalAndReservedMethod4IStringArray(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ISTRINGARRAY \
  NS_IMETHOD GetValues(PRUint32 *valuesSize, PRUnichar ***values) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IStringArray(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IStringArray(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IStringArray(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IStringArray(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ISTRINGARRAY(_to) \
  NS_IMETHOD GetValues(PRUint32 *valuesSize, PRUnichar ***values) { return _to GetValues(valuesSize, values); } \
  NS_IMETHOD InternalAndReservedMethod1IStringArray(void) { return _to InternalAndReservedMethod1IStringArray(); } \
  NS_IMETHOD InternalAndReservedMethod2IStringArray(void) { return _to InternalAndReservedMethod2IStringArray(); } \
  NS_IMETHOD InternalAndReservedMethod3IStringArray(void) { return _to InternalAndReservedMethod3IStringArray(); } \
  NS_IMETHOD InternalAndReservedMethod4IStringArray(void) { return _to InternalAndReservedMethod4IStringArray(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ISTRINGARRAY(_to) \
  NS_IMETHOD GetValues(PRUint32 *valuesSize, PRUnichar ***values) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetValues(valuesSize, values); } \
  NS_IMETHOD InternalAndReservedMethod1IStringArray(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IStringArray(); } \
  NS_IMETHOD InternalAndReservedMethod2IStringArray(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IStringArray(); } \
  NS_IMETHOD InternalAndReservedMethod3IStringArray(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IStringArray(); } \
  NS_IMETHOD InternalAndReservedMethod4IStringArray(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IStringArray(); } 

#define COM_FORWARD_IStringArray_GETTER_Values_TO(smth) NS_IMETHOD GetValues (PRUint32 * aValuesSize, PRUnichar * * * aValues) { return smth GetValues (aValuesSize, aValues); }
#define COM_FORWARD_IStringArray_GETTER_Values_TO_OBJ(obj) COM_FORWARD_IStringArray_GETTER_Values_TO ((obj)->)
#define COM_FORWARD_IStringArray_GETTER_Values_TO_BASE(base) COM_FORWARD_IStringArray_GETTER_Values_TO (base::)
#define COM_FORWARD_IStringArray_TO(smth) NS_FORWARD_ISTRINGARRAY (smth)
#define COM_FORWARD_IStringArray_TO_OBJ(obj) COM_FORWARD_IStringArray_TO ((obj)->)
#define COM_FORWARD_IStringArray_TO_BASE(base) COM_FORWARD_IStringArray_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IStringArray;

/* starting interface:    IFormValue */
#define IFORMVALUE_IID_STR "67c50afe-3e78-11e9-b25e-7768f80c0e07"

#define IFORMVALUE_IID \
  {0x67c50afe, 0x3e78, 0x11e9, \
    { 0xb2, 0x5e, 0x77, 0x68, 0xf8, 0x0c, 0x0e, 0x07 }}

class NS_NO_VTABLE IFormValue : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IFORMVALUE_IID)

  /* readonly attribute FormValueType_T type; */
  NS_IMETHOD GetType(FormValueType_T *aType) = 0;

  /* readonly attribute long generation; */
  NS_IMETHOD GetGeneration(PRInt32 *aGeneration) = 0;

  /* readonly attribute boolean enabled; */
  NS_IMETHOD GetEnabled(PRBool *aEnabled) = 0;

  /* readonly attribute boolean visible; */
  NS_IMETHOD GetVisible(PRBool *aVisible) = 0;

  /* readonly attribute wstring label; */
  NS_IMETHOD GetLabel(PRUnichar **aLabel) = 0;

  /* readonly attribute wstring description; */
  NS_IMETHOD GetDescription(PRUnichar **aDescription) = 0;

  /* readonly attribute wstring help; */
  NS_IMETHOD GetHelp(PRUnichar **aHelp) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IFormValue; */
  NS_IMETHOD GetInternalAndReservedAttribute1IFormValue(PRUint32 *aInternalAndReservedAttribute1IFormValue) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IFormValue; */
  NS_IMETHOD GetInternalAndReservedAttribute2IFormValue(PRUint32 *aInternalAndReservedAttribute2IFormValue) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IFormValue; */
  NS_IMETHOD GetInternalAndReservedAttribute3IFormValue(PRUint32 *aInternalAndReservedAttribute3IFormValue) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IFormValue; */
  NS_IMETHOD GetInternalAndReservedAttribute4IFormValue(PRUint32 *aInternalAndReservedAttribute4IFormValue) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5IFormValue; */
  NS_IMETHOD GetInternalAndReservedAttribute5IFormValue(PRUint32 *aInternalAndReservedAttribute5IFormValue) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6IFormValue; */
  NS_IMETHOD GetInternalAndReservedAttribute6IFormValue(PRUint32 *aInternalAndReservedAttribute6IFormValue) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7IFormValue; */
  NS_IMETHOD GetInternalAndReservedAttribute7IFormValue(PRUint32 *aInternalAndReservedAttribute7IFormValue) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8IFormValue; */
  NS_IMETHOD GetInternalAndReservedAttribute8IFormValue(PRUint32 *aInternalAndReservedAttribute8IFormValue) = 0;

  /* void InternalAndReservedMethod1IFormValue (); */
  NS_IMETHOD InternalAndReservedMethod1IFormValue(void) = 0;

  /* void InternalAndReservedMethod2IFormValue (); */
  NS_IMETHOD InternalAndReservedMethod2IFormValue(void) = 0;

  /* void InternalAndReservedMethod3IFormValue (); */
  NS_IMETHOD InternalAndReservedMethod3IFormValue(void) = 0;

  /* void InternalAndReservedMethod4IFormValue (); */
  NS_IMETHOD InternalAndReservedMethod4IFormValue(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IFORMVALUE \
  NS_IMETHOD GetType(FormValueType_T *aType) NS_OVERRIDE; \
  NS_IMETHOD GetGeneration(PRInt32 *aGeneration) NS_OVERRIDE; \
  NS_IMETHOD GetEnabled(PRBool *aEnabled) NS_OVERRIDE; \
  NS_IMETHOD GetVisible(PRBool *aVisible) NS_OVERRIDE; \
  NS_IMETHOD GetLabel(PRUnichar **aLabel) NS_OVERRIDE; \
  NS_IMETHOD GetDescription(PRUnichar **aDescription) NS_OVERRIDE; \
  NS_IMETHOD GetHelp(PRUnichar **aHelp) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IFormValue(PRUint32 *aInternalAndReservedAttribute1IFormValue) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IFormValue(PRUint32 *aInternalAndReservedAttribute2IFormValue) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IFormValue(PRUint32 *aInternalAndReservedAttribute3IFormValue) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IFormValue(PRUint32 *aInternalAndReservedAttribute4IFormValue) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5IFormValue(PRUint32 *aInternalAndReservedAttribute5IFormValue) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6IFormValue(PRUint32 *aInternalAndReservedAttribute6IFormValue) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7IFormValue(PRUint32 *aInternalAndReservedAttribute7IFormValue) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8IFormValue(PRUint32 *aInternalAndReservedAttribute8IFormValue) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IFormValue(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IFormValue(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IFormValue(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IFormValue(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IFORMVALUE(_to) \
  NS_IMETHOD GetType(FormValueType_T *aType) { return _to GetType(aType); } \
  NS_IMETHOD GetGeneration(PRInt32 *aGeneration) { return _to GetGeneration(aGeneration); } \
  NS_IMETHOD GetEnabled(PRBool *aEnabled) { return _to GetEnabled(aEnabled); } \
  NS_IMETHOD GetVisible(PRBool *aVisible) { return _to GetVisible(aVisible); } \
  NS_IMETHOD GetLabel(PRUnichar **aLabel) { return _to GetLabel(aLabel); } \
  NS_IMETHOD GetDescription(PRUnichar **aDescription) { return _to GetDescription(aDescription); } \
  NS_IMETHOD GetHelp(PRUnichar **aHelp) { return _to GetHelp(aHelp); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IFormValue(PRUint32 *aInternalAndReservedAttribute1IFormValue) { return _to GetInternalAndReservedAttribute1IFormValue(aInternalAndReservedAttribute1IFormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IFormValue(PRUint32 *aInternalAndReservedAttribute2IFormValue) { return _to GetInternalAndReservedAttribute2IFormValue(aInternalAndReservedAttribute2IFormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IFormValue(PRUint32 *aInternalAndReservedAttribute3IFormValue) { return _to GetInternalAndReservedAttribute3IFormValue(aInternalAndReservedAttribute3IFormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IFormValue(PRUint32 *aInternalAndReservedAttribute4IFormValue) { return _to GetInternalAndReservedAttribute4IFormValue(aInternalAndReservedAttribute4IFormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IFormValue(PRUint32 *aInternalAndReservedAttribute5IFormValue) { return _to GetInternalAndReservedAttribute5IFormValue(aInternalAndReservedAttribute5IFormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IFormValue(PRUint32 *aInternalAndReservedAttribute6IFormValue) { return _to GetInternalAndReservedAttribute6IFormValue(aInternalAndReservedAttribute6IFormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IFormValue(PRUint32 *aInternalAndReservedAttribute7IFormValue) { return _to GetInternalAndReservedAttribute7IFormValue(aInternalAndReservedAttribute7IFormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IFormValue(PRUint32 *aInternalAndReservedAttribute8IFormValue) { return _to GetInternalAndReservedAttribute8IFormValue(aInternalAndReservedAttribute8IFormValue); } \
  NS_IMETHOD InternalAndReservedMethod1IFormValue(void) { return _to InternalAndReservedMethod1IFormValue(); } \
  NS_IMETHOD InternalAndReservedMethod2IFormValue(void) { return _to InternalAndReservedMethod2IFormValue(); } \
  NS_IMETHOD InternalAndReservedMethod3IFormValue(void) { return _to InternalAndReservedMethod3IFormValue(); } \
  NS_IMETHOD InternalAndReservedMethod4IFormValue(void) { return _to InternalAndReservedMethod4IFormValue(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IFORMVALUE(_to) \
  NS_IMETHOD GetType(FormValueType_T *aType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetType(aType); } \
  NS_IMETHOD GetGeneration(PRInt32 *aGeneration) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGeneration(aGeneration); } \
  NS_IMETHOD GetEnabled(PRBool *aEnabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEnabled(aEnabled); } \
  NS_IMETHOD GetVisible(PRBool *aVisible) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVisible(aVisible); } \
  NS_IMETHOD GetLabel(PRUnichar **aLabel) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLabel(aLabel); } \
  NS_IMETHOD GetDescription(PRUnichar **aDescription) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDescription(aDescription); } \
  NS_IMETHOD GetHelp(PRUnichar **aHelp) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetHelp(aHelp); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IFormValue(PRUint32 *aInternalAndReservedAttribute1IFormValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IFormValue(aInternalAndReservedAttribute1IFormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IFormValue(PRUint32 *aInternalAndReservedAttribute2IFormValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IFormValue(aInternalAndReservedAttribute2IFormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IFormValue(PRUint32 *aInternalAndReservedAttribute3IFormValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IFormValue(aInternalAndReservedAttribute3IFormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IFormValue(PRUint32 *aInternalAndReservedAttribute4IFormValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IFormValue(aInternalAndReservedAttribute4IFormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute5IFormValue(PRUint32 *aInternalAndReservedAttribute5IFormValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5IFormValue(aInternalAndReservedAttribute5IFormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute6IFormValue(PRUint32 *aInternalAndReservedAttribute6IFormValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6IFormValue(aInternalAndReservedAttribute6IFormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute7IFormValue(PRUint32 *aInternalAndReservedAttribute7IFormValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7IFormValue(aInternalAndReservedAttribute7IFormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute8IFormValue(PRUint32 *aInternalAndReservedAttribute8IFormValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8IFormValue(aInternalAndReservedAttribute8IFormValue); } \
  NS_IMETHOD InternalAndReservedMethod1IFormValue(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IFormValue(); } \
  NS_IMETHOD InternalAndReservedMethod2IFormValue(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IFormValue(); } \
  NS_IMETHOD InternalAndReservedMethod3IFormValue(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IFormValue(); } \
  NS_IMETHOD InternalAndReservedMethod4IFormValue(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IFormValue(); } 

#define COM_FORWARD_IFormValue_GETTER_Type_TO(smth) NS_IMETHOD GetType (PRUint32 * aType) { return smth GetType (aType); }
#define COM_FORWARD_IFormValue_GETTER_Type_TO_OBJ(obj) COM_FORWARD_IFormValue_GETTER_Type_TO ((obj)->)
#define COM_FORWARD_IFormValue_GETTER_Type_TO_BASE(base) COM_FORWARD_IFormValue_GETTER_Type_TO (base::)
#define COM_FORWARD_IFormValue_GETTER_Generation_TO(smth) NS_IMETHOD GetGeneration (PRInt32 * aGeneration) { return smth GetGeneration (aGeneration); }
#define COM_FORWARD_IFormValue_GETTER_Generation_TO_OBJ(obj) COM_FORWARD_IFormValue_GETTER_Generation_TO ((obj)->)
#define COM_FORWARD_IFormValue_GETTER_Generation_TO_BASE(base) COM_FORWARD_IFormValue_GETTER_Generation_TO (base::)
#define COM_FORWARD_IFormValue_GETTER_Enabled_TO(smth) NS_IMETHOD GetEnabled (PRBool * aEnabled) { return smth GetEnabled (aEnabled); }
#define COM_FORWARD_IFormValue_GETTER_Enabled_TO_OBJ(obj) COM_FORWARD_IFormValue_GETTER_Enabled_TO ((obj)->)
#define COM_FORWARD_IFormValue_GETTER_Enabled_TO_BASE(base) COM_FORWARD_IFormValue_GETTER_Enabled_TO (base::)
#define COM_FORWARD_IFormValue_GETTER_Visible_TO(smth) NS_IMETHOD GetVisible (PRBool * aVisible) { return smth GetVisible (aVisible); }
#define COM_FORWARD_IFormValue_GETTER_Visible_TO_OBJ(obj) COM_FORWARD_IFormValue_GETTER_Visible_TO ((obj)->)
#define COM_FORWARD_IFormValue_GETTER_Visible_TO_BASE(base) COM_FORWARD_IFormValue_GETTER_Visible_TO (base::)
#define COM_FORWARD_IFormValue_GETTER_Label_TO(smth) NS_IMETHOD GetLabel (PRUnichar * * aLabel) { return smth GetLabel (aLabel); }
#define COM_FORWARD_IFormValue_GETTER_Label_TO_OBJ(obj) COM_FORWARD_IFormValue_GETTER_Label_TO ((obj)->)
#define COM_FORWARD_IFormValue_GETTER_Label_TO_BASE(base) COM_FORWARD_IFormValue_GETTER_Label_TO (base::)
#define COM_FORWARD_IFormValue_GETTER_Description_TO(smth) NS_IMETHOD GetDescription (PRUnichar * * aDescription) { return smth GetDescription (aDescription); }
#define COM_FORWARD_IFormValue_GETTER_Description_TO_OBJ(obj) COM_FORWARD_IFormValue_GETTER_Description_TO ((obj)->)
#define COM_FORWARD_IFormValue_GETTER_Description_TO_BASE(base) COM_FORWARD_IFormValue_GETTER_Description_TO (base::)
#define COM_FORWARD_IFormValue_GETTER_Help_TO(smth) NS_IMETHOD GetHelp (PRUnichar * * aHelp) { return smth GetHelp (aHelp); }
#define COM_FORWARD_IFormValue_GETTER_Help_TO_OBJ(obj) COM_FORWARD_IFormValue_GETTER_Help_TO ((obj)->)
#define COM_FORWARD_IFormValue_GETTER_Help_TO_BASE(base) COM_FORWARD_IFormValue_GETTER_Help_TO (base::)
#define COM_FORWARD_IFormValue_TO(smth) NS_FORWARD_IFORMVALUE (smth)
#define COM_FORWARD_IFormValue_TO_OBJ(obj) COM_FORWARD_IFormValue_TO ((obj)->)
#define COM_FORWARD_IFormValue_TO_BASE(base) COM_FORWARD_IFormValue_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IFormValue;

/* starting interface:    IBooleanFormValue */
#define IBOOLEANFORMVALUE_IID_STR "4f4adcf6-3e87-11e9-8af2-576e84223953"

#define IBOOLEANFORMVALUE_IID \
  {0x4f4adcf6, 0x3e87, 0x11e9, \
    { 0x8a, 0xf2, 0x57, 0x6e, 0x84, 0x22, 0x39, 0x53 }}

class NS_NO_VTABLE IBooleanFormValue : public IFormValue {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IBOOLEANFORMVALUE_IID)

  /* readonly attribute unsigned long InternalAndReservedAttribute1IBooleanFormValue; */
  NS_IMETHOD GetInternalAndReservedAttribute1IBooleanFormValue(PRUint32 *aInternalAndReservedAttribute1IBooleanFormValue) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IBooleanFormValue; */
  NS_IMETHOD GetInternalAndReservedAttribute2IBooleanFormValue(PRUint32 *aInternalAndReservedAttribute2IBooleanFormValue) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IBooleanFormValue; */
  NS_IMETHOD GetInternalAndReservedAttribute3IBooleanFormValue(PRUint32 *aInternalAndReservedAttribute3IBooleanFormValue) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IBooleanFormValue; */
  NS_IMETHOD GetInternalAndReservedAttribute4IBooleanFormValue(PRUint32 *aInternalAndReservedAttribute4IBooleanFormValue) = 0;

  /* void getSelected ([retval] out boolean selected); */
  NS_IMETHOD GetSelected(PRBool *selected) = 0;

  /* void setSelected (in boolean selected, [retval] out IProgress progress); */
  NS_IMETHOD SetSelected(PRBool selected, IProgress * *progress) = 0;

  /* void InternalAndReservedMethod1IBooleanFormValue (); */
  NS_IMETHOD InternalAndReservedMethod1IBooleanFormValue(void) = 0;

  /* void InternalAndReservedMethod2IBooleanFormValue (); */
  NS_IMETHOD InternalAndReservedMethod2IBooleanFormValue(void) = 0;

  /* void InternalAndReservedMethod3IBooleanFormValue (); */
  NS_IMETHOD InternalAndReservedMethod3IBooleanFormValue(void) = 0;

  /* void InternalAndReservedMethod4IBooleanFormValue (); */
  NS_IMETHOD InternalAndReservedMethod4IBooleanFormValue(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IBOOLEANFORMVALUE \
  NS_IMETHOD GetInternalAndReservedAttribute1IBooleanFormValue(PRUint32 *aInternalAndReservedAttribute1IBooleanFormValue) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IBooleanFormValue(PRUint32 *aInternalAndReservedAttribute2IBooleanFormValue) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IBooleanFormValue(PRUint32 *aInternalAndReservedAttribute3IBooleanFormValue) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IBooleanFormValue(PRUint32 *aInternalAndReservedAttribute4IBooleanFormValue) NS_OVERRIDE; \
  NS_IMETHOD GetSelected(PRBool *selected) NS_OVERRIDE; \
  NS_IMETHOD SetSelected(PRBool selected, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IBooleanFormValue(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IBooleanFormValue(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IBooleanFormValue(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IBooleanFormValue(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IBOOLEANFORMVALUE(_to) \
  NS_IMETHOD GetInternalAndReservedAttribute1IBooleanFormValue(PRUint32 *aInternalAndReservedAttribute1IBooleanFormValue) { return _to GetInternalAndReservedAttribute1IBooleanFormValue(aInternalAndReservedAttribute1IBooleanFormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IBooleanFormValue(PRUint32 *aInternalAndReservedAttribute2IBooleanFormValue) { return _to GetInternalAndReservedAttribute2IBooleanFormValue(aInternalAndReservedAttribute2IBooleanFormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IBooleanFormValue(PRUint32 *aInternalAndReservedAttribute3IBooleanFormValue) { return _to GetInternalAndReservedAttribute3IBooleanFormValue(aInternalAndReservedAttribute3IBooleanFormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IBooleanFormValue(PRUint32 *aInternalAndReservedAttribute4IBooleanFormValue) { return _to GetInternalAndReservedAttribute4IBooleanFormValue(aInternalAndReservedAttribute4IBooleanFormValue); } \
  NS_IMETHOD GetSelected(PRBool *selected) { return _to GetSelected(selected); } \
  NS_IMETHOD SetSelected(PRBool selected, IProgress * *progress) { return _to SetSelected(selected, progress); } \
  NS_IMETHOD InternalAndReservedMethod1IBooleanFormValue(void) { return _to InternalAndReservedMethod1IBooleanFormValue(); } \
  NS_IMETHOD InternalAndReservedMethod2IBooleanFormValue(void) { return _to InternalAndReservedMethod2IBooleanFormValue(); } \
  NS_IMETHOD InternalAndReservedMethod3IBooleanFormValue(void) { return _to InternalAndReservedMethod3IBooleanFormValue(); } \
  NS_IMETHOD InternalAndReservedMethod4IBooleanFormValue(void) { return _to InternalAndReservedMethod4IBooleanFormValue(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IBOOLEANFORMVALUE(_to) \
  NS_IMETHOD GetInternalAndReservedAttribute1IBooleanFormValue(PRUint32 *aInternalAndReservedAttribute1IBooleanFormValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IBooleanFormValue(aInternalAndReservedAttribute1IBooleanFormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IBooleanFormValue(PRUint32 *aInternalAndReservedAttribute2IBooleanFormValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IBooleanFormValue(aInternalAndReservedAttribute2IBooleanFormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IBooleanFormValue(PRUint32 *aInternalAndReservedAttribute3IBooleanFormValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IBooleanFormValue(aInternalAndReservedAttribute3IBooleanFormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IBooleanFormValue(PRUint32 *aInternalAndReservedAttribute4IBooleanFormValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IBooleanFormValue(aInternalAndReservedAttribute4IBooleanFormValue); } \
  NS_IMETHOD GetSelected(PRBool *selected) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSelected(selected); } \
  NS_IMETHOD SetSelected(PRBool selected, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSelected(selected, progress); } \
  NS_IMETHOD InternalAndReservedMethod1IBooleanFormValue(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IBooleanFormValue(); } \
  NS_IMETHOD InternalAndReservedMethod2IBooleanFormValue(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IBooleanFormValue(); } \
  NS_IMETHOD InternalAndReservedMethod3IBooleanFormValue(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IBooleanFormValue(); } \
  NS_IMETHOD InternalAndReservedMethod4IBooleanFormValue(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IBooleanFormValue(); } 

#define COM_FORWARD_IBooleanFormValue_GetSelected_TO(smth) NS_IMETHOD GetSelected (PRBool * aSelected) { return smth GetSelected (aSelected); }
#define COM_FORWARD_IBooleanFormValue_GetSelected_TO_OBJ(obj) COM_FORWARD_IBooleanFormValue_GetSelected_TO ((obj)->)
#define COM_FORWARD_IBooleanFormValue_GetSelected_TO_BASE(base) COM_FORWARD_IBooleanFormValue_GetSelected_TO (base::)
#define COM_FORWARD_IBooleanFormValue_SetSelected_TO(smth) NS_IMETHOD SetSelected (PRBool aSelected, IProgress * * aProgress) { return smth SetSelected (aSelected, aProgress); }
#define COM_FORWARD_IBooleanFormValue_SetSelected_TO_OBJ(obj) COM_FORWARD_IBooleanFormValue_SetSelected_TO ((obj)->)
#define COM_FORWARD_IBooleanFormValue_SetSelected_TO_BASE(base) COM_FORWARD_IBooleanFormValue_SetSelected_TO (base::)
#define COM_FORWARD_IBooleanFormValue_TO(smth) NS_FORWARD_IBOOLEANFORMVALUE (smth)
#define COM_FORWARD_IBooleanFormValue_TO_OBJ(obj) COM_FORWARD_IBooleanFormValue_TO ((obj)->)
#define COM_FORWARD_IBooleanFormValue_TO_BASE(base) COM_FORWARD_IBooleanFormValue_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IBooleanFormValue;

/* starting interface:    IRangedIntegerFormValue */
#define IRANGEDINTEGERFORMVALUE_IID_STR "b31c4052-7bdc-11e9-8bc2-8ffdb8b19219"

#define IRANGEDINTEGERFORMVALUE_IID \
  {0xb31c4052, 0x7bdc, 0x11e9, \
    { 0x8b, 0xc2, 0x8f, 0xfd, 0xb8, 0xb1, 0x92, 0x19 }}

class NS_NO_VTABLE IRangedIntegerFormValue : public IFormValue {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IRANGEDINTEGERFORMVALUE_IID)

  /* readonly attribute wstring suffix; */
  NS_IMETHOD GetSuffix(PRUnichar **aSuffix) = 0;

  /* readonly attribute long minimum; */
  NS_IMETHOD GetMinimum(PRInt32 *aMinimum) = 0;

  /* readonly attribute long maximum; */
  NS_IMETHOD GetMaximum(PRInt32 *aMaximum) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IRangedIntegerFormValue; */
  NS_IMETHOD GetInternalAndReservedAttribute1IRangedIntegerFormValue(PRUint32 *aInternalAndReservedAttribute1IRangedIntegerFormValue) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IRangedIntegerFormValue; */
  NS_IMETHOD GetInternalAndReservedAttribute2IRangedIntegerFormValue(PRUint32 *aInternalAndReservedAttribute2IRangedIntegerFormValue) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IRangedIntegerFormValue; */
  NS_IMETHOD GetInternalAndReservedAttribute3IRangedIntegerFormValue(PRUint32 *aInternalAndReservedAttribute3IRangedIntegerFormValue) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IRangedIntegerFormValue; */
  NS_IMETHOD GetInternalAndReservedAttribute4IRangedIntegerFormValue(PRUint32 *aInternalAndReservedAttribute4IRangedIntegerFormValue) = 0;

  /* void getInteger ([retval] out long value); */
  NS_IMETHOD GetInteger(PRInt32 *value) = 0;

  /* void setInteger (in long value, [retval] out IProgress progress); */
  NS_IMETHOD SetInteger(PRInt32 value, IProgress * *progress) = 0;

  /* void InternalAndReservedMethod1IRangedIntegerFormValue (); */
  NS_IMETHOD InternalAndReservedMethod1IRangedIntegerFormValue(void) = 0;

  /* void InternalAndReservedMethod2IRangedIntegerFormValue (); */
  NS_IMETHOD InternalAndReservedMethod2IRangedIntegerFormValue(void) = 0;

  /* void InternalAndReservedMethod3IRangedIntegerFormValue (); */
  NS_IMETHOD InternalAndReservedMethod3IRangedIntegerFormValue(void) = 0;

  /* void InternalAndReservedMethod4IRangedIntegerFormValue (); */
  NS_IMETHOD InternalAndReservedMethod4IRangedIntegerFormValue(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IRANGEDINTEGERFORMVALUE \
  NS_IMETHOD GetSuffix(PRUnichar **aSuffix) NS_OVERRIDE; \
  NS_IMETHOD GetMinimum(PRInt32 *aMinimum) NS_OVERRIDE; \
  NS_IMETHOD GetMaximum(PRInt32 *aMaximum) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IRangedIntegerFormValue(PRUint32 *aInternalAndReservedAttribute1IRangedIntegerFormValue) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IRangedIntegerFormValue(PRUint32 *aInternalAndReservedAttribute2IRangedIntegerFormValue) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IRangedIntegerFormValue(PRUint32 *aInternalAndReservedAttribute3IRangedIntegerFormValue) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IRangedIntegerFormValue(PRUint32 *aInternalAndReservedAttribute4IRangedIntegerFormValue) NS_OVERRIDE; \
  NS_IMETHOD GetInteger(PRInt32 *value) NS_OVERRIDE; \
  NS_IMETHOD SetInteger(PRInt32 value, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IRangedIntegerFormValue(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IRangedIntegerFormValue(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IRangedIntegerFormValue(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IRangedIntegerFormValue(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IRANGEDINTEGERFORMVALUE(_to) \
  NS_IMETHOD GetSuffix(PRUnichar **aSuffix) { return _to GetSuffix(aSuffix); } \
  NS_IMETHOD GetMinimum(PRInt32 *aMinimum) { return _to GetMinimum(aMinimum); } \
  NS_IMETHOD GetMaximum(PRInt32 *aMaximum) { return _to GetMaximum(aMaximum); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IRangedIntegerFormValue(PRUint32 *aInternalAndReservedAttribute1IRangedIntegerFormValue) { return _to GetInternalAndReservedAttribute1IRangedIntegerFormValue(aInternalAndReservedAttribute1IRangedIntegerFormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IRangedIntegerFormValue(PRUint32 *aInternalAndReservedAttribute2IRangedIntegerFormValue) { return _to GetInternalAndReservedAttribute2IRangedIntegerFormValue(aInternalAndReservedAttribute2IRangedIntegerFormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IRangedIntegerFormValue(PRUint32 *aInternalAndReservedAttribute3IRangedIntegerFormValue) { return _to GetInternalAndReservedAttribute3IRangedIntegerFormValue(aInternalAndReservedAttribute3IRangedIntegerFormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IRangedIntegerFormValue(PRUint32 *aInternalAndReservedAttribute4IRangedIntegerFormValue) { return _to GetInternalAndReservedAttribute4IRangedIntegerFormValue(aInternalAndReservedAttribute4IRangedIntegerFormValue); } \
  NS_IMETHOD GetInteger(PRInt32 *value) { return _to GetInteger(value); } \
  NS_IMETHOD SetInteger(PRInt32 value, IProgress * *progress) { return _to SetInteger(value, progress); } \
  NS_IMETHOD InternalAndReservedMethod1IRangedIntegerFormValue(void) { return _to InternalAndReservedMethod1IRangedIntegerFormValue(); } \
  NS_IMETHOD InternalAndReservedMethod2IRangedIntegerFormValue(void) { return _to InternalAndReservedMethod2IRangedIntegerFormValue(); } \
  NS_IMETHOD InternalAndReservedMethod3IRangedIntegerFormValue(void) { return _to InternalAndReservedMethod3IRangedIntegerFormValue(); } \
  NS_IMETHOD InternalAndReservedMethod4IRangedIntegerFormValue(void) { return _to InternalAndReservedMethod4IRangedIntegerFormValue(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IRANGEDINTEGERFORMVALUE(_to) \
  NS_IMETHOD GetSuffix(PRUnichar **aSuffix) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSuffix(aSuffix); } \
  NS_IMETHOD GetMinimum(PRInt32 *aMinimum) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMinimum(aMinimum); } \
  NS_IMETHOD GetMaximum(PRInt32 *aMaximum) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMaximum(aMaximum); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IRangedIntegerFormValue(PRUint32 *aInternalAndReservedAttribute1IRangedIntegerFormValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IRangedIntegerFormValue(aInternalAndReservedAttribute1IRangedIntegerFormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IRangedIntegerFormValue(PRUint32 *aInternalAndReservedAttribute2IRangedIntegerFormValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IRangedIntegerFormValue(aInternalAndReservedAttribute2IRangedIntegerFormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IRangedIntegerFormValue(PRUint32 *aInternalAndReservedAttribute3IRangedIntegerFormValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IRangedIntegerFormValue(aInternalAndReservedAttribute3IRangedIntegerFormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IRangedIntegerFormValue(PRUint32 *aInternalAndReservedAttribute4IRangedIntegerFormValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IRangedIntegerFormValue(aInternalAndReservedAttribute4IRangedIntegerFormValue); } \
  NS_IMETHOD GetInteger(PRInt32 *value) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInteger(value); } \
  NS_IMETHOD SetInteger(PRInt32 value, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetInteger(value, progress); } \
  NS_IMETHOD InternalAndReservedMethod1IRangedIntegerFormValue(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IRangedIntegerFormValue(); } \
  NS_IMETHOD InternalAndReservedMethod2IRangedIntegerFormValue(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IRangedIntegerFormValue(); } \
  NS_IMETHOD InternalAndReservedMethod3IRangedIntegerFormValue(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IRangedIntegerFormValue(); } \
  NS_IMETHOD InternalAndReservedMethod4IRangedIntegerFormValue(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IRangedIntegerFormValue(); } 

#define COM_FORWARD_IRangedIntegerFormValue_GETTER_Suffix_TO(smth) NS_IMETHOD GetSuffix (PRUnichar * * aSuffix) { return smth GetSuffix (aSuffix); }
#define COM_FORWARD_IRangedIntegerFormValue_GETTER_Suffix_TO_OBJ(obj) COM_FORWARD_IRangedIntegerFormValue_GETTER_Suffix_TO ((obj)->)
#define COM_FORWARD_IRangedIntegerFormValue_GETTER_Suffix_TO_BASE(base) COM_FORWARD_IRangedIntegerFormValue_GETTER_Suffix_TO (base::)
#define COM_FORWARD_IRangedIntegerFormValue_GETTER_Minimum_TO(smth) NS_IMETHOD GetMinimum (PRInt32 * aMinimum) { return smth GetMinimum (aMinimum); }
#define COM_FORWARD_IRangedIntegerFormValue_GETTER_Minimum_TO_OBJ(obj) COM_FORWARD_IRangedIntegerFormValue_GETTER_Minimum_TO ((obj)->)
#define COM_FORWARD_IRangedIntegerFormValue_GETTER_Minimum_TO_BASE(base) COM_FORWARD_IRangedIntegerFormValue_GETTER_Minimum_TO (base::)
#define COM_FORWARD_IRangedIntegerFormValue_GETTER_Maximum_TO(smth) NS_IMETHOD GetMaximum (PRInt32 * aMaximum) { return smth GetMaximum (aMaximum); }
#define COM_FORWARD_IRangedIntegerFormValue_GETTER_Maximum_TO_OBJ(obj) COM_FORWARD_IRangedIntegerFormValue_GETTER_Maximum_TO ((obj)->)
#define COM_FORWARD_IRangedIntegerFormValue_GETTER_Maximum_TO_BASE(base) COM_FORWARD_IRangedIntegerFormValue_GETTER_Maximum_TO (base::)
#define COM_FORWARD_IRangedIntegerFormValue_GetInteger_TO(smth) NS_IMETHOD GetInteger (PRInt32 * aValue) { return smth GetInteger (aValue); }
#define COM_FORWARD_IRangedIntegerFormValue_GetInteger_TO_OBJ(obj) COM_FORWARD_IRangedIntegerFormValue_GetInteger_TO ((obj)->)
#define COM_FORWARD_IRangedIntegerFormValue_GetInteger_TO_BASE(base) COM_FORWARD_IRangedIntegerFormValue_GetInteger_TO (base::)
#define COM_FORWARD_IRangedIntegerFormValue_SetInteger_TO(smth) NS_IMETHOD SetInteger (PRInt32 aValue, IProgress * * aProgress) { return smth SetInteger (aValue, aProgress); }
#define COM_FORWARD_IRangedIntegerFormValue_SetInteger_TO_OBJ(obj) COM_FORWARD_IRangedIntegerFormValue_SetInteger_TO ((obj)->)
#define COM_FORWARD_IRangedIntegerFormValue_SetInteger_TO_BASE(base) COM_FORWARD_IRangedIntegerFormValue_SetInteger_TO (base::)
#define COM_FORWARD_IRangedIntegerFormValue_TO(smth) NS_FORWARD_IRANGEDINTEGERFORMVALUE (smth)
#define COM_FORWARD_IRangedIntegerFormValue_TO_OBJ(obj) COM_FORWARD_IRangedIntegerFormValue_TO ((obj)->)
#define COM_FORWARD_IRangedIntegerFormValue_TO_BASE(base) COM_FORWARD_IRangedIntegerFormValue_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IRangedIntegerFormValue;

/* starting interface:    IRangedInteger64FormValue */
#define IRANGEDINTEGER64FORMVALUE_IID_STR "f01e8b48-f44d-42cc-8a83-512f6a8552f1"

#define IRANGEDINTEGER64FORMVALUE_IID \
  {0xf01e8b48, 0xf44d, 0x42cc, \
    { 0x8a, 0x83, 0x51, 0x2f, 0x6a, 0x85, 0x52, 0xf1 }}

class NS_NO_VTABLE IRangedInteger64FormValue : public IFormValue {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IRANGEDINTEGER64FORMVALUE_IID)

  /* readonly attribute wstring suffix; */
  NS_IMETHOD GetSuffix(PRUnichar **aSuffix) = 0;

  /* readonly attribute long long minimum; */
  NS_IMETHOD GetMinimum(PRInt64 *aMinimum) = 0;

  /* readonly attribute long long maximum; */
  NS_IMETHOD GetMaximum(PRInt64 *aMaximum) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IRangedInteger64FormValue; */
  NS_IMETHOD GetInternalAndReservedAttribute1IRangedInteger64FormValue(PRUint32 *aInternalAndReservedAttribute1IRangedInteger64FormValue) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IRangedInteger64FormValue; */
  NS_IMETHOD GetInternalAndReservedAttribute2IRangedInteger64FormValue(PRUint32 *aInternalAndReservedAttribute2IRangedInteger64FormValue) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IRangedInteger64FormValue; */
  NS_IMETHOD GetInternalAndReservedAttribute3IRangedInteger64FormValue(PRUint32 *aInternalAndReservedAttribute3IRangedInteger64FormValue) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IRangedInteger64FormValue; */
  NS_IMETHOD GetInternalAndReservedAttribute4IRangedInteger64FormValue(PRUint32 *aInternalAndReservedAttribute4IRangedInteger64FormValue) = 0;

  /* void getInteger ([retval] out long long value); */
  NS_IMETHOD GetInteger(PRInt64 *value) = 0;

  /* void setInteger (in long long value, [retval] out IProgress progress); */
  NS_IMETHOD SetInteger(PRInt64 value, IProgress * *progress) = 0;

  /* void InternalAndReservedMethod1IRangedInteger64FormValue (); */
  NS_IMETHOD InternalAndReservedMethod1IRangedInteger64FormValue(void) = 0;

  /* void InternalAndReservedMethod2IRangedInteger64FormValue (); */
  NS_IMETHOD InternalAndReservedMethod2IRangedInteger64FormValue(void) = 0;

  /* void InternalAndReservedMethod3IRangedInteger64FormValue (); */
  NS_IMETHOD InternalAndReservedMethod3IRangedInteger64FormValue(void) = 0;

  /* void InternalAndReservedMethod4IRangedInteger64FormValue (); */
  NS_IMETHOD InternalAndReservedMethod4IRangedInteger64FormValue(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IRANGEDINTEGER64FORMVALUE \
  NS_IMETHOD GetSuffix(PRUnichar **aSuffix) NS_OVERRIDE; \
  NS_IMETHOD GetMinimum(PRInt64 *aMinimum) NS_OVERRIDE; \
  NS_IMETHOD GetMaximum(PRInt64 *aMaximum) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IRangedInteger64FormValue(PRUint32 *aInternalAndReservedAttribute1IRangedInteger64FormValue) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IRangedInteger64FormValue(PRUint32 *aInternalAndReservedAttribute2IRangedInteger64FormValue) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IRangedInteger64FormValue(PRUint32 *aInternalAndReservedAttribute3IRangedInteger64FormValue) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IRangedInteger64FormValue(PRUint32 *aInternalAndReservedAttribute4IRangedInteger64FormValue) NS_OVERRIDE; \
  NS_IMETHOD GetInteger(PRInt64 *value) NS_OVERRIDE; \
  NS_IMETHOD SetInteger(PRInt64 value, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IRangedInteger64FormValue(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IRangedInteger64FormValue(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IRangedInteger64FormValue(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IRangedInteger64FormValue(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IRANGEDINTEGER64FORMVALUE(_to) \
  NS_IMETHOD GetSuffix(PRUnichar **aSuffix) { return _to GetSuffix(aSuffix); } \
  NS_IMETHOD GetMinimum(PRInt64 *aMinimum) { return _to GetMinimum(aMinimum); } \
  NS_IMETHOD GetMaximum(PRInt64 *aMaximum) { return _to GetMaximum(aMaximum); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IRangedInteger64FormValue(PRUint32 *aInternalAndReservedAttribute1IRangedInteger64FormValue) { return _to GetInternalAndReservedAttribute1IRangedInteger64FormValue(aInternalAndReservedAttribute1IRangedInteger64FormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IRangedInteger64FormValue(PRUint32 *aInternalAndReservedAttribute2IRangedInteger64FormValue) { return _to GetInternalAndReservedAttribute2IRangedInteger64FormValue(aInternalAndReservedAttribute2IRangedInteger64FormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IRangedInteger64FormValue(PRUint32 *aInternalAndReservedAttribute3IRangedInteger64FormValue) { return _to GetInternalAndReservedAttribute3IRangedInteger64FormValue(aInternalAndReservedAttribute3IRangedInteger64FormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IRangedInteger64FormValue(PRUint32 *aInternalAndReservedAttribute4IRangedInteger64FormValue) { return _to GetInternalAndReservedAttribute4IRangedInteger64FormValue(aInternalAndReservedAttribute4IRangedInteger64FormValue); } \
  NS_IMETHOD GetInteger(PRInt64 *value) { return _to GetInteger(value); } \
  NS_IMETHOD SetInteger(PRInt64 value, IProgress * *progress) { return _to SetInteger(value, progress); } \
  NS_IMETHOD InternalAndReservedMethod1IRangedInteger64FormValue(void) { return _to InternalAndReservedMethod1IRangedInteger64FormValue(); } \
  NS_IMETHOD InternalAndReservedMethod2IRangedInteger64FormValue(void) { return _to InternalAndReservedMethod2IRangedInteger64FormValue(); } \
  NS_IMETHOD InternalAndReservedMethod3IRangedInteger64FormValue(void) { return _to InternalAndReservedMethod3IRangedInteger64FormValue(); } \
  NS_IMETHOD InternalAndReservedMethod4IRangedInteger64FormValue(void) { return _to InternalAndReservedMethod4IRangedInteger64FormValue(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IRANGEDINTEGER64FORMVALUE(_to) \
  NS_IMETHOD GetSuffix(PRUnichar **aSuffix) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSuffix(aSuffix); } \
  NS_IMETHOD GetMinimum(PRInt64 *aMinimum) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMinimum(aMinimum); } \
  NS_IMETHOD GetMaximum(PRInt64 *aMaximum) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMaximum(aMaximum); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IRangedInteger64FormValue(PRUint32 *aInternalAndReservedAttribute1IRangedInteger64FormValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IRangedInteger64FormValue(aInternalAndReservedAttribute1IRangedInteger64FormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IRangedInteger64FormValue(PRUint32 *aInternalAndReservedAttribute2IRangedInteger64FormValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IRangedInteger64FormValue(aInternalAndReservedAttribute2IRangedInteger64FormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IRangedInteger64FormValue(PRUint32 *aInternalAndReservedAttribute3IRangedInteger64FormValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IRangedInteger64FormValue(aInternalAndReservedAttribute3IRangedInteger64FormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IRangedInteger64FormValue(PRUint32 *aInternalAndReservedAttribute4IRangedInteger64FormValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IRangedInteger64FormValue(aInternalAndReservedAttribute4IRangedInteger64FormValue); } \
  NS_IMETHOD GetInteger(PRInt64 *value) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInteger(value); } \
  NS_IMETHOD SetInteger(PRInt64 value, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetInteger(value, progress); } \
  NS_IMETHOD InternalAndReservedMethod1IRangedInteger64FormValue(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IRangedInteger64FormValue(); } \
  NS_IMETHOD InternalAndReservedMethod2IRangedInteger64FormValue(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IRangedInteger64FormValue(); } \
  NS_IMETHOD InternalAndReservedMethod3IRangedInteger64FormValue(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IRangedInteger64FormValue(); } \
  NS_IMETHOD InternalAndReservedMethod4IRangedInteger64FormValue(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IRangedInteger64FormValue(); } 

#define COM_FORWARD_IRangedInteger64FormValue_GETTER_Suffix_TO(smth) NS_IMETHOD GetSuffix (PRUnichar * * aSuffix) { return smth GetSuffix (aSuffix); }
#define COM_FORWARD_IRangedInteger64FormValue_GETTER_Suffix_TO_OBJ(obj) COM_FORWARD_IRangedInteger64FormValue_GETTER_Suffix_TO ((obj)->)
#define COM_FORWARD_IRangedInteger64FormValue_GETTER_Suffix_TO_BASE(base) COM_FORWARD_IRangedInteger64FormValue_GETTER_Suffix_TO (base::)
#define COM_FORWARD_IRangedInteger64FormValue_GETTER_Minimum_TO(smth) NS_IMETHOD GetMinimum (PRInt64 * aMinimum) { return smth GetMinimum (aMinimum); }
#define COM_FORWARD_IRangedInteger64FormValue_GETTER_Minimum_TO_OBJ(obj) COM_FORWARD_IRangedInteger64FormValue_GETTER_Minimum_TO ((obj)->)
#define COM_FORWARD_IRangedInteger64FormValue_GETTER_Minimum_TO_BASE(base) COM_FORWARD_IRangedInteger64FormValue_GETTER_Minimum_TO (base::)
#define COM_FORWARD_IRangedInteger64FormValue_GETTER_Maximum_TO(smth) NS_IMETHOD GetMaximum (PRInt64 * aMaximum) { return smth GetMaximum (aMaximum); }
#define COM_FORWARD_IRangedInteger64FormValue_GETTER_Maximum_TO_OBJ(obj) COM_FORWARD_IRangedInteger64FormValue_GETTER_Maximum_TO ((obj)->)
#define COM_FORWARD_IRangedInteger64FormValue_GETTER_Maximum_TO_BASE(base) COM_FORWARD_IRangedInteger64FormValue_GETTER_Maximum_TO (base::)
#define COM_FORWARD_IRangedInteger64FormValue_GetInteger_TO(smth) NS_IMETHOD GetInteger (PRInt64 * aValue) { return smth GetInteger (aValue); }
#define COM_FORWARD_IRangedInteger64FormValue_GetInteger_TO_OBJ(obj) COM_FORWARD_IRangedInteger64FormValue_GetInteger_TO ((obj)->)
#define COM_FORWARD_IRangedInteger64FormValue_GetInteger_TO_BASE(base) COM_FORWARD_IRangedInteger64FormValue_GetInteger_TO (base::)
#define COM_FORWARD_IRangedInteger64FormValue_SetInteger_TO(smth) NS_IMETHOD SetInteger (PRInt64 aValue, IProgress * * aProgress) { return smth SetInteger (aValue, aProgress); }
#define COM_FORWARD_IRangedInteger64FormValue_SetInteger_TO_OBJ(obj) COM_FORWARD_IRangedInteger64FormValue_SetInteger_TO ((obj)->)
#define COM_FORWARD_IRangedInteger64FormValue_SetInteger_TO_BASE(base) COM_FORWARD_IRangedInteger64FormValue_SetInteger_TO (base::)
#define COM_FORWARD_IRangedInteger64FormValue_TO(smth) NS_FORWARD_IRANGEDINTEGER64FORMVALUE (smth)
#define COM_FORWARD_IRangedInteger64FormValue_TO_OBJ(obj) COM_FORWARD_IRangedInteger64FormValue_TO ((obj)->)
#define COM_FORWARD_IRangedInteger64FormValue_TO_BASE(base) COM_FORWARD_IRangedInteger64FormValue_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IRangedInteger64FormValue;

/* starting interface:    IStringFormValue */
#define ISTRINGFORMVALUE_IID_STR "cb6f0f2c-8384-11e9-921d-8b984e28a686"

#define ISTRINGFORMVALUE_IID \
  {0xcb6f0f2c, 0x8384, 0x11e9, \
    { 0x92, 0x1d, 0x8b, 0x98, 0x4e, 0x28, 0xa6, 0x86 }}

class NS_NO_VTABLE IStringFormValue : public IFormValue {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ISTRINGFORMVALUE_IID)

  /* readonly attribute boolean multiline; */
  NS_IMETHOD GetMultiline(PRBool *aMultiline) = 0;

  /* readonly attribute wstring clipboardString; */
  NS_IMETHOD GetClipboardString(PRUnichar **aClipboardString) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IStringFormValue; */
  NS_IMETHOD GetInternalAndReservedAttribute1IStringFormValue(PRUint32 *aInternalAndReservedAttribute1IStringFormValue) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IStringFormValue; */
  NS_IMETHOD GetInternalAndReservedAttribute2IStringFormValue(PRUint32 *aInternalAndReservedAttribute2IStringFormValue) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IStringFormValue; */
  NS_IMETHOD GetInternalAndReservedAttribute3IStringFormValue(PRUint32 *aInternalAndReservedAttribute3IStringFormValue) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IStringFormValue; */
  NS_IMETHOD GetInternalAndReservedAttribute4IStringFormValue(PRUint32 *aInternalAndReservedAttribute4IStringFormValue) = 0;

  /* void getString ([retval] out wstring text); */
  NS_IMETHOD GetString(PRUnichar **text) = 0;

  /* void setString (in wstring text, [retval] out IProgress progress); */
  NS_IMETHOD SetString(const PRUnichar *text, IProgress * *progress) = 0;

  /* void InternalAndReservedMethod1IStringFormValue (); */
  NS_IMETHOD InternalAndReservedMethod1IStringFormValue(void) = 0;

  /* void InternalAndReservedMethod2IStringFormValue (); */
  NS_IMETHOD InternalAndReservedMethod2IStringFormValue(void) = 0;

  /* void InternalAndReservedMethod3IStringFormValue (); */
  NS_IMETHOD InternalAndReservedMethod3IStringFormValue(void) = 0;

  /* void InternalAndReservedMethod4IStringFormValue (); */
  NS_IMETHOD InternalAndReservedMethod4IStringFormValue(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ISTRINGFORMVALUE \
  NS_IMETHOD GetMultiline(PRBool *aMultiline) NS_OVERRIDE; \
  NS_IMETHOD GetClipboardString(PRUnichar **aClipboardString) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IStringFormValue(PRUint32 *aInternalAndReservedAttribute1IStringFormValue) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IStringFormValue(PRUint32 *aInternalAndReservedAttribute2IStringFormValue) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IStringFormValue(PRUint32 *aInternalAndReservedAttribute3IStringFormValue) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IStringFormValue(PRUint32 *aInternalAndReservedAttribute4IStringFormValue) NS_OVERRIDE; \
  NS_IMETHOD GetString(PRUnichar **text) NS_OVERRIDE; \
  NS_IMETHOD SetString(const PRUnichar *text, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IStringFormValue(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IStringFormValue(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IStringFormValue(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IStringFormValue(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ISTRINGFORMVALUE(_to) \
  NS_IMETHOD GetMultiline(PRBool *aMultiline) { return _to GetMultiline(aMultiline); } \
  NS_IMETHOD GetClipboardString(PRUnichar **aClipboardString) { return _to GetClipboardString(aClipboardString); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IStringFormValue(PRUint32 *aInternalAndReservedAttribute1IStringFormValue) { return _to GetInternalAndReservedAttribute1IStringFormValue(aInternalAndReservedAttribute1IStringFormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IStringFormValue(PRUint32 *aInternalAndReservedAttribute2IStringFormValue) { return _to GetInternalAndReservedAttribute2IStringFormValue(aInternalAndReservedAttribute2IStringFormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IStringFormValue(PRUint32 *aInternalAndReservedAttribute3IStringFormValue) { return _to GetInternalAndReservedAttribute3IStringFormValue(aInternalAndReservedAttribute3IStringFormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IStringFormValue(PRUint32 *aInternalAndReservedAttribute4IStringFormValue) { return _to GetInternalAndReservedAttribute4IStringFormValue(aInternalAndReservedAttribute4IStringFormValue); } \
  NS_IMETHOD GetString(PRUnichar **text) { return _to GetString(text); } \
  NS_IMETHOD SetString(const PRUnichar *text, IProgress * *progress) { return _to SetString(text, progress); } \
  NS_IMETHOD InternalAndReservedMethod1IStringFormValue(void) { return _to InternalAndReservedMethod1IStringFormValue(); } \
  NS_IMETHOD InternalAndReservedMethod2IStringFormValue(void) { return _to InternalAndReservedMethod2IStringFormValue(); } \
  NS_IMETHOD InternalAndReservedMethod3IStringFormValue(void) { return _to InternalAndReservedMethod3IStringFormValue(); } \
  NS_IMETHOD InternalAndReservedMethod4IStringFormValue(void) { return _to InternalAndReservedMethod4IStringFormValue(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ISTRINGFORMVALUE(_to) \
  NS_IMETHOD GetMultiline(PRBool *aMultiline) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMultiline(aMultiline); } \
  NS_IMETHOD GetClipboardString(PRUnichar **aClipboardString) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetClipboardString(aClipboardString); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IStringFormValue(PRUint32 *aInternalAndReservedAttribute1IStringFormValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IStringFormValue(aInternalAndReservedAttribute1IStringFormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IStringFormValue(PRUint32 *aInternalAndReservedAttribute2IStringFormValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IStringFormValue(aInternalAndReservedAttribute2IStringFormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IStringFormValue(PRUint32 *aInternalAndReservedAttribute3IStringFormValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IStringFormValue(aInternalAndReservedAttribute3IStringFormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IStringFormValue(PRUint32 *aInternalAndReservedAttribute4IStringFormValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IStringFormValue(aInternalAndReservedAttribute4IStringFormValue); } \
  NS_IMETHOD GetString(PRUnichar **text) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetString(text); } \
  NS_IMETHOD SetString(const PRUnichar *text, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetString(text, progress); } \
  NS_IMETHOD InternalAndReservedMethod1IStringFormValue(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IStringFormValue(); } \
  NS_IMETHOD InternalAndReservedMethod2IStringFormValue(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IStringFormValue(); } \
  NS_IMETHOD InternalAndReservedMethod3IStringFormValue(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IStringFormValue(); } \
  NS_IMETHOD InternalAndReservedMethod4IStringFormValue(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IStringFormValue(); } 

#define COM_FORWARD_IStringFormValue_GETTER_Multiline_TO(smth) NS_IMETHOD GetMultiline (PRBool * aMultiline) { return smth GetMultiline (aMultiline); }
#define COM_FORWARD_IStringFormValue_GETTER_Multiline_TO_OBJ(obj) COM_FORWARD_IStringFormValue_GETTER_Multiline_TO ((obj)->)
#define COM_FORWARD_IStringFormValue_GETTER_Multiline_TO_BASE(base) COM_FORWARD_IStringFormValue_GETTER_Multiline_TO (base::)
#define COM_FORWARD_IStringFormValue_GETTER_ClipboardString_TO(smth) NS_IMETHOD GetClipboardString (PRUnichar * * aClipboardString) { return smth GetClipboardString (aClipboardString); }
#define COM_FORWARD_IStringFormValue_GETTER_ClipboardString_TO_OBJ(obj) COM_FORWARD_IStringFormValue_GETTER_ClipboardString_TO ((obj)->)
#define COM_FORWARD_IStringFormValue_GETTER_ClipboardString_TO_BASE(base) COM_FORWARD_IStringFormValue_GETTER_ClipboardString_TO (base::)
#define COM_FORWARD_IStringFormValue_GetString_TO(smth) NS_IMETHOD GetString (PRUnichar * * aText) { return smth GetString (aText); }
#define COM_FORWARD_IStringFormValue_GetString_TO_OBJ(obj) COM_FORWARD_IStringFormValue_GetString_TO ((obj)->)
#define COM_FORWARD_IStringFormValue_GetString_TO_BASE(base) COM_FORWARD_IStringFormValue_GetString_TO (base::)
#define COM_FORWARD_IStringFormValue_SetString_TO(smth) NS_IMETHOD SetString (PRUnichar * aText, IProgress * * aProgress) { return smth SetString (aText, aProgress); }
#define COM_FORWARD_IStringFormValue_SetString_TO_OBJ(obj) COM_FORWARD_IStringFormValue_SetString_TO ((obj)->)
#define COM_FORWARD_IStringFormValue_SetString_TO_BASE(base) COM_FORWARD_IStringFormValue_SetString_TO (base::)
#define COM_FORWARD_IStringFormValue_TO(smth) NS_FORWARD_ISTRINGFORMVALUE (smth)
#define COM_FORWARD_IStringFormValue_TO_OBJ(obj) COM_FORWARD_IStringFormValue_TO ((obj)->)
#define COM_FORWARD_IStringFormValue_TO_BASE(base) COM_FORWARD_IStringFormValue_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IStringFormValue;

/* starting interface:    IChoiceFormValue */
#define ICHOICEFORMVALUE_IID_STR "7191cf38-3e8a-11e9-825c-ab7b2cabce23"

#define ICHOICEFORMVALUE_IID \
  {0x7191cf38, 0x3e8a, 0x11e9, \
    { 0x82, 0x5c, 0xab, 0x7b, 0x2c, 0xab, 0xce, 0x23 }}

class NS_NO_VTABLE IChoiceFormValue : public IFormValue {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ICHOICEFORMVALUE_IID)

  /* void getValues (out unsigned long valuesSize, [array, size_is (valuesSize), retval] out wstring values); */
  NS_IMETHOD GetValues(PRUint32 *valuesSize, PRUnichar ***values) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IChoiceFormValue; */
  NS_IMETHOD GetInternalAndReservedAttribute1IChoiceFormValue(PRUint32 *aInternalAndReservedAttribute1IChoiceFormValue) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IChoiceFormValue; */
  NS_IMETHOD GetInternalAndReservedAttribute2IChoiceFormValue(PRUint32 *aInternalAndReservedAttribute2IChoiceFormValue) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IChoiceFormValue; */
  NS_IMETHOD GetInternalAndReservedAttribute3IChoiceFormValue(PRUint32 *aInternalAndReservedAttribute3IChoiceFormValue) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IChoiceFormValue; */
  NS_IMETHOD GetInternalAndReservedAttribute4IChoiceFormValue(PRUint32 *aInternalAndReservedAttribute4IChoiceFormValue) = 0;

  /* void getSelectedIndex ([retval] out long index); */
  NS_IMETHOD GetSelectedIndex(PRInt32 *index) = 0;

  /* void setSelectedIndex (in long index, [retval] out IProgress progress); */
  NS_IMETHOD SetSelectedIndex(PRInt32 index, IProgress * *progress) = 0;

  /* void InternalAndReservedMethod1IChoiceFormValue (); */
  NS_IMETHOD InternalAndReservedMethod1IChoiceFormValue(void) = 0;

  /* void InternalAndReservedMethod2IChoiceFormValue (); */
  NS_IMETHOD InternalAndReservedMethod2IChoiceFormValue(void) = 0;

  /* void InternalAndReservedMethod3IChoiceFormValue (); */
  NS_IMETHOD InternalAndReservedMethod3IChoiceFormValue(void) = 0;

  /* void InternalAndReservedMethod4IChoiceFormValue (); */
  NS_IMETHOD InternalAndReservedMethod4IChoiceFormValue(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ICHOICEFORMVALUE \
  NS_IMETHOD GetValues(PRUint32 *valuesSize, PRUnichar ***values) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IChoiceFormValue(PRUint32 *aInternalAndReservedAttribute1IChoiceFormValue) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IChoiceFormValue(PRUint32 *aInternalAndReservedAttribute2IChoiceFormValue) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IChoiceFormValue(PRUint32 *aInternalAndReservedAttribute3IChoiceFormValue) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IChoiceFormValue(PRUint32 *aInternalAndReservedAttribute4IChoiceFormValue) NS_OVERRIDE; \
  NS_IMETHOD GetSelectedIndex(PRInt32 *index) NS_OVERRIDE; \
  NS_IMETHOD SetSelectedIndex(PRInt32 index, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IChoiceFormValue(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IChoiceFormValue(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IChoiceFormValue(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IChoiceFormValue(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ICHOICEFORMVALUE(_to) \
  NS_IMETHOD GetValues(PRUint32 *valuesSize, PRUnichar ***values) { return _to GetValues(valuesSize, values); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IChoiceFormValue(PRUint32 *aInternalAndReservedAttribute1IChoiceFormValue) { return _to GetInternalAndReservedAttribute1IChoiceFormValue(aInternalAndReservedAttribute1IChoiceFormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IChoiceFormValue(PRUint32 *aInternalAndReservedAttribute2IChoiceFormValue) { return _to GetInternalAndReservedAttribute2IChoiceFormValue(aInternalAndReservedAttribute2IChoiceFormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IChoiceFormValue(PRUint32 *aInternalAndReservedAttribute3IChoiceFormValue) { return _to GetInternalAndReservedAttribute3IChoiceFormValue(aInternalAndReservedAttribute3IChoiceFormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IChoiceFormValue(PRUint32 *aInternalAndReservedAttribute4IChoiceFormValue) { return _to GetInternalAndReservedAttribute4IChoiceFormValue(aInternalAndReservedAttribute4IChoiceFormValue); } \
  NS_IMETHOD GetSelectedIndex(PRInt32 *index) { return _to GetSelectedIndex(index); } \
  NS_IMETHOD SetSelectedIndex(PRInt32 index, IProgress * *progress) { return _to SetSelectedIndex(index, progress); } \
  NS_IMETHOD InternalAndReservedMethod1IChoiceFormValue(void) { return _to InternalAndReservedMethod1IChoiceFormValue(); } \
  NS_IMETHOD InternalAndReservedMethod2IChoiceFormValue(void) { return _to InternalAndReservedMethod2IChoiceFormValue(); } \
  NS_IMETHOD InternalAndReservedMethod3IChoiceFormValue(void) { return _to InternalAndReservedMethod3IChoiceFormValue(); } \
  NS_IMETHOD InternalAndReservedMethod4IChoiceFormValue(void) { return _to InternalAndReservedMethod4IChoiceFormValue(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ICHOICEFORMVALUE(_to) \
  NS_IMETHOD GetValues(PRUint32 *valuesSize, PRUnichar ***values) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetValues(valuesSize, values); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IChoiceFormValue(PRUint32 *aInternalAndReservedAttribute1IChoiceFormValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IChoiceFormValue(aInternalAndReservedAttribute1IChoiceFormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IChoiceFormValue(PRUint32 *aInternalAndReservedAttribute2IChoiceFormValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IChoiceFormValue(aInternalAndReservedAttribute2IChoiceFormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IChoiceFormValue(PRUint32 *aInternalAndReservedAttribute3IChoiceFormValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IChoiceFormValue(aInternalAndReservedAttribute3IChoiceFormValue); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IChoiceFormValue(PRUint32 *aInternalAndReservedAttribute4IChoiceFormValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IChoiceFormValue(aInternalAndReservedAttribute4IChoiceFormValue); } \
  NS_IMETHOD GetSelectedIndex(PRInt32 *index) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSelectedIndex(index); } \
  NS_IMETHOD SetSelectedIndex(PRInt32 index, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSelectedIndex(index, progress); } \
  NS_IMETHOD InternalAndReservedMethod1IChoiceFormValue(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IChoiceFormValue(); } \
  NS_IMETHOD InternalAndReservedMethod2IChoiceFormValue(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IChoiceFormValue(); } \
  NS_IMETHOD InternalAndReservedMethod3IChoiceFormValue(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IChoiceFormValue(); } \
  NS_IMETHOD InternalAndReservedMethod4IChoiceFormValue(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IChoiceFormValue(); } 

#define COM_FORWARD_IChoiceFormValue_GETTER_Values_TO(smth) NS_IMETHOD GetValues (PRUint32 * aValuesSize, PRUnichar * * * aValues) { return smth GetValues (aValuesSize, aValues); }
#define COM_FORWARD_IChoiceFormValue_GETTER_Values_TO_OBJ(obj) COM_FORWARD_IChoiceFormValue_GETTER_Values_TO ((obj)->)
#define COM_FORWARD_IChoiceFormValue_GETTER_Values_TO_BASE(base) COM_FORWARD_IChoiceFormValue_GETTER_Values_TO (base::)
#define COM_FORWARD_IChoiceFormValue_GetSelectedIndex_TO(smth) NS_IMETHOD GetSelectedIndex (PRInt32 * aIndex) { return smth GetSelectedIndex (aIndex); }
#define COM_FORWARD_IChoiceFormValue_GetSelectedIndex_TO_OBJ(obj) COM_FORWARD_IChoiceFormValue_GetSelectedIndex_TO ((obj)->)
#define COM_FORWARD_IChoiceFormValue_GetSelectedIndex_TO_BASE(base) COM_FORWARD_IChoiceFormValue_GetSelectedIndex_TO (base::)
#define COM_FORWARD_IChoiceFormValue_SetSelectedIndex_TO(smth) NS_IMETHOD SetSelectedIndex (PRInt32 aIndex, IProgress * * aProgress) { return smth SetSelectedIndex (aIndex, aProgress); }
#define COM_FORWARD_IChoiceFormValue_SetSelectedIndex_TO_OBJ(obj) COM_FORWARD_IChoiceFormValue_SetSelectedIndex_TO ((obj)->)
#define COM_FORWARD_IChoiceFormValue_SetSelectedIndex_TO_BASE(base) COM_FORWARD_IChoiceFormValue_SetSelectedIndex_TO (base::)
#define COM_FORWARD_IChoiceFormValue_TO(smth) NS_FORWARD_ICHOICEFORMVALUE (smth)
#define COM_FORWARD_IChoiceFormValue_TO_OBJ(obj) COM_FORWARD_IChoiceFormValue_TO ((obj)->)
#define COM_FORWARD_IChoiceFormValue_TO_BASE(base) COM_FORWARD_IChoiceFormValue_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IChoiceFormValue;

/* starting interface:    IForm */
#define IFORM_IID_STR "d05c91e2-3e8a-11e9-8082-db8ae479ef87"

#define IFORM_IID \
  {0xd05c91e2, 0x3e8a, 0x11e9, \
    { 0x80, 0x82, 0xdb, 0x8a, 0xe4, 0x79, 0xef, 0x87 }}

class NS_NO_VTABLE IForm : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IFORM_IID)

  /* void getValues (out unsigned long valuesSize, [array, size_is (valuesSize), retval] out IFormValue values); */
  NS_IMETHOD GetValues(PRUint32 *valuesSize, IFormValue * **values) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1IForm; */
  NS_IMETHOD GetInternalAndReservedAttribute1IForm(PRUint32 *aInternalAndReservedAttribute1IForm) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IForm; */
  NS_IMETHOD GetInternalAndReservedAttribute2IForm(PRUint32 *aInternalAndReservedAttribute2IForm) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IForm; */
  NS_IMETHOD GetInternalAndReservedAttribute3IForm(PRUint32 *aInternalAndReservedAttribute3IForm) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IForm; */
  NS_IMETHOD GetInternalAndReservedAttribute4IForm(PRUint32 *aInternalAndReservedAttribute4IForm) = 0;

  /* void getFieldGroup (in wstring field, out unsigned long groupSize, [array, size_is (groupSize), retval] out wstring group); */
  NS_IMETHOD GetFieldGroup(const PRUnichar *field, PRUint32 *groupSize, PRUnichar ***group) = 0;

  /* void apply ([retval] out IProgress progress); */
  NS_IMETHOD Apply(IProgress * *progress) = 0;

  /* void InternalAndReservedMethod1IForm (); */
  NS_IMETHOD InternalAndReservedMethod1IForm(void) = 0;

  /* void InternalAndReservedMethod2IForm (); */
  NS_IMETHOD InternalAndReservedMethod2IForm(void) = 0;

  /* void InternalAndReservedMethod3IForm (); */
  NS_IMETHOD InternalAndReservedMethod3IForm(void) = 0;

  /* void InternalAndReservedMethod4IForm (); */
  NS_IMETHOD InternalAndReservedMethod4IForm(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IFORM \
  NS_IMETHOD GetValues(PRUint32 *valuesSize, IFormValue * **values) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1IForm(PRUint32 *aInternalAndReservedAttribute1IForm) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IForm(PRUint32 *aInternalAndReservedAttribute2IForm) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IForm(PRUint32 *aInternalAndReservedAttribute3IForm) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IForm(PRUint32 *aInternalAndReservedAttribute4IForm) NS_OVERRIDE; \
  NS_IMETHOD GetFieldGroup(const PRUnichar *field, PRUint32 *groupSize, PRUnichar ***group) NS_OVERRIDE; \
  NS_IMETHOD Apply(IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IForm(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IForm(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IForm(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IForm(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IFORM(_to) \
  NS_IMETHOD GetValues(PRUint32 *valuesSize, IFormValue * **values) { return _to GetValues(valuesSize, values); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IForm(PRUint32 *aInternalAndReservedAttribute1IForm) { return _to GetInternalAndReservedAttribute1IForm(aInternalAndReservedAttribute1IForm); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IForm(PRUint32 *aInternalAndReservedAttribute2IForm) { return _to GetInternalAndReservedAttribute2IForm(aInternalAndReservedAttribute2IForm); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IForm(PRUint32 *aInternalAndReservedAttribute3IForm) { return _to GetInternalAndReservedAttribute3IForm(aInternalAndReservedAttribute3IForm); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IForm(PRUint32 *aInternalAndReservedAttribute4IForm) { return _to GetInternalAndReservedAttribute4IForm(aInternalAndReservedAttribute4IForm); } \
  NS_IMETHOD GetFieldGroup(const PRUnichar *field, PRUint32 *groupSize, PRUnichar ***group) { return _to GetFieldGroup(field, groupSize, group); } \
  NS_IMETHOD Apply(IProgress * *progress) { return _to Apply(progress); } \
  NS_IMETHOD InternalAndReservedMethod1IForm(void) { return _to InternalAndReservedMethod1IForm(); } \
  NS_IMETHOD InternalAndReservedMethod2IForm(void) { return _to InternalAndReservedMethod2IForm(); } \
  NS_IMETHOD InternalAndReservedMethod3IForm(void) { return _to InternalAndReservedMethod3IForm(); } \
  NS_IMETHOD InternalAndReservedMethod4IForm(void) { return _to InternalAndReservedMethod4IForm(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IFORM(_to) \
  NS_IMETHOD GetValues(PRUint32 *valuesSize, IFormValue * **values) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetValues(valuesSize, values); } \
  NS_IMETHOD GetInternalAndReservedAttribute1IForm(PRUint32 *aInternalAndReservedAttribute1IForm) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IForm(aInternalAndReservedAttribute1IForm); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IForm(PRUint32 *aInternalAndReservedAttribute2IForm) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IForm(aInternalAndReservedAttribute2IForm); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IForm(PRUint32 *aInternalAndReservedAttribute3IForm) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IForm(aInternalAndReservedAttribute3IForm); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IForm(PRUint32 *aInternalAndReservedAttribute4IForm) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IForm(aInternalAndReservedAttribute4IForm); } \
  NS_IMETHOD GetFieldGroup(const PRUnichar *field, PRUint32 *groupSize, PRUnichar ***group) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFieldGroup(field, groupSize, group); } \
  NS_IMETHOD Apply(IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->Apply(progress); } \
  NS_IMETHOD InternalAndReservedMethod1IForm(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IForm(); } \
  NS_IMETHOD InternalAndReservedMethod2IForm(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IForm(); } \
  NS_IMETHOD InternalAndReservedMethod3IForm(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IForm(); } \
  NS_IMETHOD InternalAndReservedMethod4IForm(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IForm(); } 

#define COM_FORWARD_IForm_GETTER_Values_TO(smth) NS_IMETHOD GetValues (PRUint32 * aValuesSize, IFormValue * * * aValues) { return smth GetValues (aValuesSize, aValues); }
#define COM_FORWARD_IForm_GETTER_Values_TO_OBJ(obj) COM_FORWARD_IForm_GETTER_Values_TO ((obj)->)
#define COM_FORWARD_IForm_GETTER_Values_TO_BASE(base) COM_FORWARD_IForm_GETTER_Values_TO (base::)
#define COM_FORWARD_IForm_GetFieldGroup_TO(smth) NS_IMETHOD GetFieldGroup (PRUnichar * aField, PRUint32 * aGroupSize, PRUnichar * * * aGroup) { return smth GetFieldGroup (aField, aGroupSize, aGroup); }
#define COM_FORWARD_IForm_GetFieldGroup_TO_OBJ(obj) COM_FORWARD_IForm_GetFieldGroup_TO ((obj)->)
#define COM_FORWARD_IForm_GetFieldGroup_TO_BASE(base) COM_FORWARD_IForm_GetFieldGroup_TO (base::)
#define COM_FORWARD_IForm_Apply_TO(smth) NS_IMETHOD Apply (IProgress * * aProgress) { return smth Apply (aProgress); }
#define COM_FORWARD_IForm_Apply_TO_OBJ(obj) COM_FORWARD_IForm_Apply_TO ((obj)->)
#define COM_FORWARD_IForm_Apply_TO_BASE(base) COM_FORWARD_IForm_Apply_TO (base::)
#define COM_FORWARD_IForm_TO(smth) NS_FORWARD_IFORM (smth)
#define COM_FORWARD_IForm_TO_OBJ(obj) COM_FORWARD_IForm_TO ((obj)->)
#define COM_FORWARD_IForm_TO_BASE(base) COM_FORWARD_IForm_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IForm;

/* starting interface:    IVirtualSystemDescriptionForm */
#define IVIRTUALSYSTEMDESCRIPTIONFORM_IID_STR "14c2db8a-3ee4-11e9-b872-cb9447aad965"

#define IVIRTUALSYSTEMDESCRIPTIONFORM_IID \
  {0x14c2db8a, 0x3ee4, 0x11e9, \
    { 0xb8, 0x72, 0xcb, 0x94, 0x47, 0xaa, 0xd9, 0x65 }}

class NS_NO_VTABLE IVirtualSystemDescriptionForm : public IForm {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(IVIRTUALSYSTEMDESCRIPTIONFORM_IID)

  /* readonly attribute unsigned long InternalAndReservedAttribute1IVirtualSystemDescriptionForm; */
  NS_IMETHOD GetInternalAndReservedAttribute1IVirtualSystemDescriptionForm(PRUint32 *aInternalAndReservedAttribute1IVirtualSystemDescriptionForm) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2IVirtualSystemDescriptionForm; */
  NS_IMETHOD GetInternalAndReservedAttribute2IVirtualSystemDescriptionForm(PRUint32 *aInternalAndReservedAttribute2IVirtualSystemDescriptionForm) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3IVirtualSystemDescriptionForm; */
  NS_IMETHOD GetInternalAndReservedAttribute3IVirtualSystemDescriptionForm(PRUint32 *aInternalAndReservedAttribute3IVirtualSystemDescriptionForm) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4IVirtualSystemDescriptionForm; */
  NS_IMETHOD GetInternalAndReservedAttribute4IVirtualSystemDescriptionForm(PRUint32 *aInternalAndReservedAttribute4IVirtualSystemDescriptionForm) = 0;

  /* void getVirtualSystemDescription ([retval] out IVirtualSystemDescription description); */
  NS_IMETHOD GetVirtualSystemDescription(IVirtualSystemDescription * *description) = 0;

  /* void InternalAndReservedMethod1IVirtualSystemDescriptionForm (); */
  NS_IMETHOD InternalAndReservedMethod1IVirtualSystemDescriptionForm(void) = 0;

  /* void InternalAndReservedMethod2IVirtualSystemDescriptionForm (); */
  NS_IMETHOD InternalAndReservedMethod2IVirtualSystemDescriptionForm(void) = 0;

  /* void InternalAndReservedMethod3IVirtualSystemDescriptionForm (); */
  NS_IMETHOD InternalAndReservedMethod3IVirtualSystemDescriptionForm(void) = 0;

  /* void InternalAndReservedMethod4IVirtualSystemDescriptionForm (); */
  NS_IMETHOD InternalAndReservedMethod4IVirtualSystemDescriptionForm(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_IVIRTUALSYSTEMDESCRIPTIONFORM \
  NS_IMETHOD GetInternalAndReservedAttribute1IVirtualSystemDescriptionForm(PRUint32 *aInternalAndReservedAttribute1IVirtualSystemDescriptionForm) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2IVirtualSystemDescriptionForm(PRUint32 *aInternalAndReservedAttribute2IVirtualSystemDescriptionForm) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3IVirtualSystemDescriptionForm(PRUint32 *aInternalAndReservedAttribute3IVirtualSystemDescriptionForm) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4IVirtualSystemDescriptionForm(PRUint32 *aInternalAndReservedAttribute4IVirtualSystemDescriptionForm) NS_OVERRIDE; \
  NS_IMETHOD GetVirtualSystemDescription(IVirtualSystemDescription * *description) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1IVirtualSystemDescriptionForm(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2IVirtualSystemDescriptionForm(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3IVirtualSystemDescriptionForm(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4IVirtualSystemDescriptionForm(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_IVIRTUALSYSTEMDESCRIPTIONFORM(_to) \
  NS_IMETHOD GetInternalAndReservedAttribute1IVirtualSystemDescriptionForm(PRUint32 *aInternalAndReservedAttribute1IVirtualSystemDescriptionForm) { return _to GetInternalAndReservedAttribute1IVirtualSystemDescriptionForm(aInternalAndReservedAttribute1IVirtualSystemDescriptionForm); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IVirtualSystemDescriptionForm(PRUint32 *aInternalAndReservedAttribute2IVirtualSystemDescriptionForm) { return _to GetInternalAndReservedAttribute2IVirtualSystemDescriptionForm(aInternalAndReservedAttribute2IVirtualSystemDescriptionForm); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IVirtualSystemDescriptionForm(PRUint32 *aInternalAndReservedAttribute3IVirtualSystemDescriptionForm) { return _to GetInternalAndReservedAttribute3IVirtualSystemDescriptionForm(aInternalAndReservedAttribute3IVirtualSystemDescriptionForm); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IVirtualSystemDescriptionForm(PRUint32 *aInternalAndReservedAttribute4IVirtualSystemDescriptionForm) { return _to GetInternalAndReservedAttribute4IVirtualSystemDescriptionForm(aInternalAndReservedAttribute4IVirtualSystemDescriptionForm); } \
  NS_IMETHOD GetVirtualSystemDescription(IVirtualSystemDescription * *description) { return _to GetVirtualSystemDescription(description); } \
  NS_IMETHOD InternalAndReservedMethod1IVirtualSystemDescriptionForm(void) { return _to InternalAndReservedMethod1IVirtualSystemDescriptionForm(); } \
  NS_IMETHOD InternalAndReservedMethod2IVirtualSystemDescriptionForm(void) { return _to InternalAndReservedMethod2IVirtualSystemDescriptionForm(); } \
  NS_IMETHOD InternalAndReservedMethod3IVirtualSystemDescriptionForm(void) { return _to InternalAndReservedMethod3IVirtualSystemDescriptionForm(); } \
  NS_IMETHOD InternalAndReservedMethod4IVirtualSystemDescriptionForm(void) { return _to InternalAndReservedMethod4IVirtualSystemDescriptionForm(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_IVIRTUALSYSTEMDESCRIPTIONFORM(_to) \
  NS_IMETHOD GetInternalAndReservedAttribute1IVirtualSystemDescriptionForm(PRUint32 *aInternalAndReservedAttribute1IVirtualSystemDescriptionForm) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1IVirtualSystemDescriptionForm(aInternalAndReservedAttribute1IVirtualSystemDescriptionForm); } \
  NS_IMETHOD GetInternalAndReservedAttribute2IVirtualSystemDescriptionForm(PRUint32 *aInternalAndReservedAttribute2IVirtualSystemDescriptionForm) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2IVirtualSystemDescriptionForm(aInternalAndReservedAttribute2IVirtualSystemDescriptionForm); } \
  NS_IMETHOD GetInternalAndReservedAttribute3IVirtualSystemDescriptionForm(PRUint32 *aInternalAndReservedAttribute3IVirtualSystemDescriptionForm) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3IVirtualSystemDescriptionForm(aInternalAndReservedAttribute3IVirtualSystemDescriptionForm); } \
  NS_IMETHOD GetInternalAndReservedAttribute4IVirtualSystemDescriptionForm(PRUint32 *aInternalAndReservedAttribute4IVirtualSystemDescriptionForm) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4IVirtualSystemDescriptionForm(aInternalAndReservedAttribute4IVirtualSystemDescriptionForm); } \
  NS_IMETHOD GetVirtualSystemDescription(IVirtualSystemDescription * *description) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVirtualSystemDescription(description); } \
  NS_IMETHOD InternalAndReservedMethod1IVirtualSystemDescriptionForm(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1IVirtualSystemDescriptionForm(); } \
  NS_IMETHOD InternalAndReservedMethod2IVirtualSystemDescriptionForm(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2IVirtualSystemDescriptionForm(); } \
  NS_IMETHOD InternalAndReservedMethod3IVirtualSystemDescriptionForm(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3IVirtualSystemDescriptionForm(); } \
  NS_IMETHOD InternalAndReservedMethod4IVirtualSystemDescriptionForm(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4IVirtualSystemDescriptionForm(); } 

#define COM_FORWARD_IVirtualSystemDescriptionForm_GetVirtualSystemDescription_TO(smth) NS_IMETHOD GetVirtualSystemDescription (IVirtualSystemDescription * * aDescription) { return smth GetVirtualSystemDescription (aDescription); }
#define COM_FORWARD_IVirtualSystemDescriptionForm_GetVirtualSystemDescription_TO_OBJ(obj) COM_FORWARD_IVirtualSystemDescriptionForm_GetVirtualSystemDescription_TO ((obj)->)
#define COM_FORWARD_IVirtualSystemDescriptionForm_GetVirtualSystemDescription_TO_BASE(base) COM_FORWARD_IVirtualSystemDescriptionForm_GetVirtualSystemDescription_TO (base::)
#define COM_FORWARD_IVirtualSystemDescriptionForm_TO(smth) NS_FORWARD_IVIRTUALSYSTEMDESCRIPTIONFORM (smth)
#define COM_FORWARD_IVirtualSystemDescriptionForm_TO_OBJ(obj) COM_FORWARD_IVirtualSystemDescriptionForm_TO ((obj)->)
#define COM_FORWARD_IVirtualSystemDescriptionForm_TO_BASE(base) COM_FORWARD_IVirtualSystemDescriptionForm_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_IVirtualSystemDescriptionForm;

/* starting interface:    ICloudNetworkGatewayInfo */
#define ICLOUDNETWORKGATEWAYINFO_IID_STR "89a63ace-0c65-11ea-ad23-0ff257c71a7f"

#define ICLOUDNETWORKGATEWAYINFO_IID \
  {0x89a63ace, 0x0c65, 0x11ea, \
    { 0xad, 0x23, 0x0f, 0xf2, 0x57, 0xc7, 0x1a, 0x7f }}

class NS_NO_VTABLE ICloudNetworkGatewayInfo : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ICLOUDNETWORKGATEWAYINFO_IID)

  /* readonly attribute wstring publicIP; */
  NS_IMETHOD GetPublicIP(PRUnichar **aPublicIP) = 0;

  /* readonly attribute wstring secondaryPublicIP; */
  NS_IMETHOD GetSecondaryPublicIP(PRUnichar **aSecondaryPublicIP) = 0;

  /* readonly attribute wstring macAddress; */
  NS_IMETHOD GetMacAddress(PRUnichar **aMacAddress) = 0;

  /* readonly attribute wstring instanceId; */
  NS_IMETHOD GetInstanceId(PRUnichar **aInstanceId) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1ICloudNetworkGatewayInfo; */
  NS_IMETHOD GetInternalAndReservedAttribute1ICloudNetworkGatewayInfo(PRUint32 *aInternalAndReservedAttribute1ICloudNetworkGatewayInfo) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2ICloudNetworkGatewayInfo; */
  NS_IMETHOD GetInternalAndReservedAttribute2ICloudNetworkGatewayInfo(PRUint32 *aInternalAndReservedAttribute2ICloudNetworkGatewayInfo) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3ICloudNetworkGatewayInfo; */
  NS_IMETHOD GetInternalAndReservedAttribute3ICloudNetworkGatewayInfo(PRUint32 *aInternalAndReservedAttribute3ICloudNetworkGatewayInfo) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4ICloudNetworkGatewayInfo; */
  NS_IMETHOD GetInternalAndReservedAttribute4ICloudNetworkGatewayInfo(PRUint32 *aInternalAndReservedAttribute4ICloudNetworkGatewayInfo) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5ICloudNetworkGatewayInfo; */
  NS_IMETHOD GetInternalAndReservedAttribute5ICloudNetworkGatewayInfo(PRUint32 *aInternalAndReservedAttribute5ICloudNetworkGatewayInfo) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ICLOUDNETWORKGATEWAYINFO \
  NS_IMETHOD GetPublicIP(PRUnichar **aPublicIP) NS_OVERRIDE; \
  NS_IMETHOD GetSecondaryPublicIP(PRUnichar **aSecondaryPublicIP) NS_OVERRIDE; \
  NS_IMETHOD GetMacAddress(PRUnichar **aMacAddress) NS_OVERRIDE; \
  NS_IMETHOD GetInstanceId(PRUnichar **aInstanceId) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1ICloudNetworkGatewayInfo(PRUint32 *aInternalAndReservedAttribute1ICloudNetworkGatewayInfo) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2ICloudNetworkGatewayInfo(PRUint32 *aInternalAndReservedAttribute2ICloudNetworkGatewayInfo) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3ICloudNetworkGatewayInfo(PRUint32 *aInternalAndReservedAttribute3ICloudNetworkGatewayInfo) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4ICloudNetworkGatewayInfo(PRUint32 *aInternalAndReservedAttribute4ICloudNetworkGatewayInfo) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5ICloudNetworkGatewayInfo(PRUint32 *aInternalAndReservedAttribute5ICloudNetworkGatewayInfo) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ICLOUDNETWORKGATEWAYINFO(_to) \
  NS_IMETHOD GetPublicIP(PRUnichar **aPublicIP) { return _to GetPublicIP(aPublicIP); } \
  NS_IMETHOD GetSecondaryPublicIP(PRUnichar **aSecondaryPublicIP) { return _to GetSecondaryPublicIP(aSecondaryPublicIP); } \
  NS_IMETHOD GetMacAddress(PRUnichar **aMacAddress) { return _to GetMacAddress(aMacAddress); } \
  NS_IMETHOD GetInstanceId(PRUnichar **aInstanceId) { return _to GetInstanceId(aInstanceId); } \
  NS_IMETHOD GetInternalAndReservedAttribute1ICloudNetworkGatewayInfo(PRUint32 *aInternalAndReservedAttribute1ICloudNetworkGatewayInfo) { return _to GetInternalAndReservedAttribute1ICloudNetworkGatewayInfo(aInternalAndReservedAttribute1ICloudNetworkGatewayInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute2ICloudNetworkGatewayInfo(PRUint32 *aInternalAndReservedAttribute2ICloudNetworkGatewayInfo) { return _to GetInternalAndReservedAttribute2ICloudNetworkGatewayInfo(aInternalAndReservedAttribute2ICloudNetworkGatewayInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute3ICloudNetworkGatewayInfo(PRUint32 *aInternalAndReservedAttribute3ICloudNetworkGatewayInfo) { return _to GetInternalAndReservedAttribute3ICloudNetworkGatewayInfo(aInternalAndReservedAttribute3ICloudNetworkGatewayInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute4ICloudNetworkGatewayInfo(PRUint32 *aInternalAndReservedAttribute4ICloudNetworkGatewayInfo) { return _to GetInternalAndReservedAttribute4ICloudNetworkGatewayInfo(aInternalAndReservedAttribute4ICloudNetworkGatewayInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute5ICloudNetworkGatewayInfo(PRUint32 *aInternalAndReservedAttribute5ICloudNetworkGatewayInfo) { return _to GetInternalAndReservedAttribute5ICloudNetworkGatewayInfo(aInternalAndReservedAttribute5ICloudNetworkGatewayInfo); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ICLOUDNETWORKGATEWAYINFO(_to) \
  NS_IMETHOD GetPublicIP(PRUnichar **aPublicIP) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPublicIP(aPublicIP); } \
  NS_IMETHOD GetSecondaryPublicIP(PRUnichar **aSecondaryPublicIP) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSecondaryPublicIP(aSecondaryPublicIP); } \
  NS_IMETHOD GetMacAddress(PRUnichar **aMacAddress) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMacAddress(aMacAddress); } \
  NS_IMETHOD GetInstanceId(PRUnichar **aInstanceId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInstanceId(aInstanceId); } \
  NS_IMETHOD GetInternalAndReservedAttribute1ICloudNetworkGatewayInfo(PRUint32 *aInternalAndReservedAttribute1ICloudNetworkGatewayInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1ICloudNetworkGatewayInfo(aInternalAndReservedAttribute1ICloudNetworkGatewayInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute2ICloudNetworkGatewayInfo(PRUint32 *aInternalAndReservedAttribute2ICloudNetworkGatewayInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2ICloudNetworkGatewayInfo(aInternalAndReservedAttribute2ICloudNetworkGatewayInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute3ICloudNetworkGatewayInfo(PRUint32 *aInternalAndReservedAttribute3ICloudNetworkGatewayInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3ICloudNetworkGatewayInfo(aInternalAndReservedAttribute3ICloudNetworkGatewayInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute4ICloudNetworkGatewayInfo(PRUint32 *aInternalAndReservedAttribute4ICloudNetworkGatewayInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4ICloudNetworkGatewayInfo(aInternalAndReservedAttribute4ICloudNetworkGatewayInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute5ICloudNetworkGatewayInfo(PRUint32 *aInternalAndReservedAttribute5ICloudNetworkGatewayInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5ICloudNetworkGatewayInfo(aInternalAndReservedAttribute5ICloudNetworkGatewayInfo); } 

#define COM_FORWARD_ICloudNetworkGatewayInfo_GETTER_PublicIP_TO(smth) NS_IMETHOD GetPublicIP (PRUnichar * * aPublicIP) { return smth GetPublicIP (aPublicIP); }
#define COM_FORWARD_ICloudNetworkGatewayInfo_GETTER_PublicIP_TO_OBJ(obj) COM_FORWARD_ICloudNetworkGatewayInfo_GETTER_PublicIP_TO ((obj)->)
#define COM_FORWARD_ICloudNetworkGatewayInfo_GETTER_PublicIP_TO_BASE(base) COM_FORWARD_ICloudNetworkGatewayInfo_GETTER_PublicIP_TO (base::)
#define COM_FORWARD_ICloudNetworkGatewayInfo_GETTER_SecondaryPublicIP_TO(smth) NS_IMETHOD GetSecondaryPublicIP (PRUnichar * * aSecondaryPublicIP) { return smth GetSecondaryPublicIP (aSecondaryPublicIP); }
#define COM_FORWARD_ICloudNetworkGatewayInfo_GETTER_SecondaryPublicIP_TO_OBJ(obj) COM_FORWARD_ICloudNetworkGatewayInfo_GETTER_SecondaryPublicIP_TO ((obj)->)
#define COM_FORWARD_ICloudNetworkGatewayInfo_GETTER_SecondaryPublicIP_TO_BASE(base) COM_FORWARD_ICloudNetworkGatewayInfo_GETTER_SecondaryPublicIP_TO (base::)
#define COM_FORWARD_ICloudNetworkGatewayInfo_GETTER_MacAddress_TO(smth) NS_IMETHOD GetMacAddress (PRUnichar * * aMacAddress) { return smth GetMacAddress (aMacAddress); }
#define COM_FORWARD_ICloudNetworkGatewayInfo_GETTER_MacAddress_TO_OBJ(obj) COM_FORWARD_ICloudNetworkGatewayInfo_GETTER_MacAddress_TO ((obj)->)
#define COM_FORWARD_ICloudNetworkGatewayInfo_GETTER_MacAddress_TO_BASE(base) COM_FORWARD_ICloudNetworkGatewayInfo_GETTER_MacAddress_TO (base::)
#define COM_FORWARD_ICloudNetworkGatewayInfo_GETTER_InstanceId_TO(smth) NS_IMETHOD GetInstanceId (PRUnichar * * aInstanceId) { return smth GetInstanceId (aInstanceId); }
#define COM_FORWARD_ICloudNetworkGatewayInfo_GETTER_InstanceId_TO_OBJ(obj) COM_FORWARD_ICloudNetworkGatewayInfo_GETTER_InstanceId_TO ((obj)->)
#define COM_FORWARD_ICloudNetworkGatewayInfo_GETTER_InstanceId_TO_BASE(base) COM_FORWARD_ICloudNetworkGatewayInfo_GETTER_InstanceId_TO (base::)
#define COM_FORWARD_ICloudNetworkGatewayInfo_TO(smth) NS_FORWARD_ICLOUDNETWORKGATEWAYINFO (smth)
#define COM_FORWARD_ICloudNetworkGatewayInfo_TO_OBJ(obj) COM_FORWARD_ICloudNetworkGatewayInfo_TO ((obj)->)
#define COM_FORWARD_ICloudNetworkGatewayInfo_TO_BASE(base) COM_FORWARD_ICloudNetworkGatewayInfo_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ICloudNetworkGatewayInfo;

/* starting interface:    ICloudNetworkEnvironmentInfo */
#define ICLOUDNETWORKENVIRONMENTINFO_IID_STR "181dfb55-394d-44d3-9edb-af2c4472c40a"

#define ICLOUDNETWORKENVIRONMENTINFO_IID \
  {0x181dfb55, 0x394d, 0x44d3, \
    { 0x9e, 0xdb, 0xaf, 0x2c, 0x44, 0x72, 0xc4, 0x0a }}

class NS_NO_VTABLE ICloudNetworkEnvironmentInfo : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ICLOUDNETWORKENVIRONMENTINFO_IID)

  /* readonly attribute wstring tunnelNetworkId; */
  NS_IMETHOD GetTunnelNetworkId(PRUnichar **aTunnelNetworkId) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1ICloudNetworkEnvironmentInfo; */
  NS_IMETHOD GetInternalAndReservedAttribute1ICloudNetworkEnvironmentInfo(PRUint32 *aInternalAndReservedAttribute1ICloudNetworkEnvironmentInfo) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2ICloudNetworkEnvironmentInfo; */
  NS_IMETHOD GetInternalAndReservedAttribute2ICloudNetworkEnvironmentInfo(PRUint32 *aInternalAndReservedAttribute2ICloudNetworkEnvironmentInfo) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3ICloudNetworkEnvironmentInfo; */
  NS_IMETHOD GetInternalAndReservedAttribute3ICloudNetworkEnvironmentInfo(PRUint32 *aInternalAndReservedAttribute3ICloudNetworkEnvironmentInfo) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4ICloudNetworkEnvironmentInfo; */
  NS_IMETHOD GetInternalAndReservedAttribute4ICloudNetworkEnvironmentInfo(PRUint32 *aInternalAndReservedAttribute4ICloudNetworkEnvironmentInfo) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5ICloudNetworkEnvironmentInfo; */
  NS_IMETHOD GetInternalAndReservedAttribute5ICloudNetworkEnvironmentInfo(PRUint32 *aInternalAndReservedAttribute5ICloudNetworkEnvironmentInfo) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6ICloudNetworkEnvironmentInfo; */
  NS_IMETHOD GetInternalAndReservedAttribute6ICloudNetworkEnvironmentInfo(PRUint32 *aInternalAndReservedAttribute6ICloudNetworkEnvironmentInfo) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7ICloudNetworkEnvironmentInfo; */
  NS_IMETHOD GetInternalAndReservedAttribute7ICloudNetworkEnvironmentInfo(PRUint32 *aInternalAndReservedAttribute7ICloudNetworkEnvironmentInfo) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ICLOUDNETWORKENVIRONMENTINFO \
  NS_IMETHOD GetTunnelNetworkId(PRUnichar **aTunnelNetworkId) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1ICloudNetworkEnvironmentInfo(PRUint32 *aInternalAndReservedAttribute1ICloudNetworkEnvironmentInfo) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2ICloudNetworkEnvironmentInfo(PRUint32 *aInternalAndReservedAttribute2ICloudNetworkEnvironmentInfo) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3ICloudNetworkEnvironmentInfo(PRUint32 *aInternalAndReservedAttribute3ICloudNetworkEnvironmentInfo) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4ICloudNetworkEnvironmentInfo(PRUint32 *aInternalAndReservedAttribute4ICloudNetworkEnvironmentInfo) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5ICloudNetworkEnvironmentInfo(PRUint32 *aInternalAndReservedAttribute5ICloudNetworkEnvironmentInfo) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6ICloudNetworkEnvironmentInfo(PRUint32 *aInternalAndReservedAttribute6ICloudNetworkEnvironmentInfo) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7ICloudNetworkEnvironmentInfo(PRUint32 *aInternalAndReservedAttribute7ICloudNetworkEnvironmentInfo) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ICLOUDNETWORKENVIRONMENTINFO(_to) \
  NS_IMETHOD GetTunnelNetworkId(PRUnichar **aTunnelNetworkId) { return _to GetTunnelNetworkId(aTunnelNetworkId); } \
  NS_IMETHOD GetInternalAndReservedAttribute1ICloudNetworkEnvironmentInfo(PRUint32 *aInternalAndReservedAttribute1ICloudNetworkEnvironmentInfo) { return _to GetInternalAndReservedAttribute1ICloudNetworkEnvironmentInfo(aInternalAndReservedAttribute1ICloudNetworkEnvironmentInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute2ICloudNetworkEnvironmentInfo(PRUint32 *aInternalAndReservedAttribute2ICloudNetworkEnvironmentInfo) { return _to GetInternalAndReservedAttribute2ICloudNetworkEnvironmentInfo(aInternalAndReservedAttribute2ICloudNetworkEnvironmentInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute3ICloudNetworkEnvironmentInfo(PRUint32 *aInternalAndReservedAttribute3ICloudNetworkEnvironmentInfo) { return _to GetInternalAndReservedAttribute3ICloudNetworkEnvironmentInfo(aInternalAndReservedAttribute3ICloudNetworkEnvironmentInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute4ICloudNetworkEnvironmentInfo(PRUint32 *aInternalAndReservedAttribute4ICloudNetworkEnvironmentInfo) { return _to GetInternalAndReservedAttribute4ICloudNetworkEnvironmentInfo(aInternalAndReservedAttribute4ICloudNetworkEnvironmentInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute5ICloudNetworkEnvironmentInfo(PRUint32 *aInternalAndReservedAttribute5ICloudNetworkEnvironmentInfo) { return _to GetInternalAndReservedAttribute5ICloudNetworkEnvironmentInfo(aInternalAndReservedAttribute5ICloudNetworkEnvironmentInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute6ICloudNetworkEnvironmentInfo(PRUint32 *aInternalAndReservedAttribute6ICloudNetworkEnvironmentInfo) { return _to GetInternalAndReservedAttribute6ICloudNetworkEnvironmentInfo(aInternalAndReservedAttribute6ICloudNetworkEnvironmentInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute7ICloudNetworkEnvironmentInfo(PRUint32 *aInternalAndReservedAttribute7ICloudNetworkEnvironmentInfo) { return _to GetInternalAndReservedAttribute7ICloudNetworkEnvironmentInfo(aInternalAndReservedAttribute7ICloudNetworkEnvironmentInfo); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ICLOUDNETWORKENVIRONMENTINFO(_to) \
  NS_IMETHOD GetTunnelNetworkId(PRUnichar **aTunnelNetworkId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTunnelNetworkId(aTunnelNetworkId); } \
  NS_IMETHOD GetInternalAndReservedAttribute1ICloudNetworkEnvironmentInfo(PRUint32 *aInternalAndReservedAttribute1ICloudNetworkEnvironmentInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1ICloudNetworkEnvironmentInfo(aInternalAndReservedAttribute1ICloudNetworkEnvironmentInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute2ICloudNetworkEnvironmentInfo(PRUint32 *aInternalAndReservedAttribute2ICloudNetworkEnvironmentInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2ICloudNetworkEnvironmentInfo(aInternalAndReservedAttribute2ICloudNetworkEnvironmentInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute3ICloudNetworkEnvironmentInfo(PRUint32 *aInternalAndReservedAttribute3ICloudNetworkEnvironmentInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3ICloudNetworkEnvironmentInfo(aInternalAndReservedAttribute3ICloudNetworkEnvironmentInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute4ICloudNetworkEnvironmentInfo(PRUint32 *aInternalAndReservedAttribute4ICloudNetworkEnvironmentInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4ICloudNetworkEnvironmentInfo(aInternalAndReservedAttribute4ICloudNetworkEnvironmentInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute5ICloudNetworkEnvironmentInfo(PRUint32 *aInternalAndReservedAttribute5ICloudNetworkEnvironmentInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5ICloudNetworkEnvironmentInfo(aInternalAndReservedAttribute5ICloudNetworkEnvironmentInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute6ICloudNetworkEnvironmentInfo(PRUint32 *aInternalAndReservedAttribute6ICloudNetworkEnvironmentInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6ICloudNetworkEnvironmentInfo(aInternalAndReservedAttribute6ICloudNetworkEnvironmentInfo); } \
  NS_IMETHOD GetInternalAndReservedAttribute7ICloudNetworkEnvironmentInfo(PRUint32 *aInternalAndReservedAttribute7ICloudNetworkEnvironmentInfo) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7ICloudNetworkEnvironmentInfo(aInternalAndReservedAttribute7ICloudNetworkEnvironmentInfo); } 

#define COM_FORWARD_ICloudNetworkEnvironmentInfo_GETTER_TunnelNetworkId_TO(smth) NS_IMETHOD GetTunnelNetworkId (PRUnichar * * aTunnelNetworkId) { return smth GetTunnelNetworkId (aTunnelNetworkId); }
#define COM_FORWARD_ICloudNetworkEnvironmentInfo_GETTER_TunnelNetworkId_TO_OBJ(obj) COM_FORWARD_ICloudNetworkEnvironmentInfo_GETTER_TunnelNetworkId_TO ((obj)->)
#define COM_FORWARD_ICloudNetworkEnvironmentInfo_GETTER_TunnelNetworkId_TO_BASE(base) COM_FORWARD_ICloudNetworkEnvironmentInfo_GETTER_TunnelNetworkId_TO (base::)
#define COM_FORWARD_ICloudNetworkEnvironmentInfo_TO(smth) NS_FORWARD_ICLOUDNETWORKENVIRONMENTINFO (smth)
#define COM_FORWARD_ICloudNetworkEnvironmentInfo_TO_OBJ(obj) COM_FORWARD_ICloudNetworkEnvironmentInfo_TO ((obj)->)
#define COM_FORWARD_ICloudNetworkEnvironmentInfo_TO_BASE(base) COM_FORWARD_ICloudNetworkEnvironmentInfo_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ICloudNetworkEnvironmentInfo;

/* starting interface:    ICloudMachine */
#define ICLOUDMACHINE_IID_STR "147816c8-17e0-11eb-81fa-87cea6263e1a"

#define ICLOUDMACHINE_IID \
  {0x147816c8, 0x17e0, 0x11eb, \
    { 0x81, 0xfa, 0x87, 0xce, 0xa6, 0x26, 0x3e, 0x1a }}

class NS_NO_VTABLE ICloudMachine : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ICLOUDMACHINE_IID)

  /* readonly attribute wstring id; */
  NS_IMETHOD GetId(PRUnichar **aId) = 0;

  /* readonly attribute wstring cloudId; */
  NS_IMETHOD GetCloudId(PRUnichar **aCloudId) = 0;

  /* readonly attribute boolean accessible; */
  NS_IMETHOD GetAccessible(PRBool *aAccessible) = 0;

  /* readonly attribute IVirtualBoxErrorInfo accessError; */
  NS_IMETHOD GetAccessError(IVirtualBoxErrorInfo * *aAccessError) = 0;

  /* readonly attribute wstring name; */
  NS_IMETHOD GetName(PRUnichar **aName) = 0;

  /* readonly attribute wstring OSTypeId; */
  NS_IMETHOD GetOSTypeId(PRUnichar **aOSTypeId) = 0;

  /* readonly attribute CloudMachineState_T state; */
  NS_IMETHOD GetState(CloudMachineState_T *aState) = 0;

  /* readonly attribute wstring consoleConnectionFingerprint; */
  NS_IMETHOD GetConsoleConnectionFingerprint(PRUnichar **aConsoleConnectionFingerprint) = 0;

  /* readonly attribute wstring serialConsoleCommand; */
  NS_IMETHOD GetSerialConsoleCommand(PRUnichar **aSerialConsoleCommand) = 0;

  /* readonly attribute wstring serialConsoleCommandWindows; */
  NS_IMETHOD GetSerialConsoleCommandWindows(PRUnichar **aSerialConsoleCommandWindows) = 0;

  /* readonly attribute wstring VNCConsoleCommand; */
  NS_IMETHOD GetVNCConsoleCommand(PRUnichar **aVNCConsoleCommand) = 0;

  /* readonly attribute wstring VNCConsoleCommandWindows; */
  NS_IMETHOD GetVNCConsoleCommandWindows(PRUnichar **aVNCConsoleCommandWindows) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1ICloudMachine; */
  NS_IMETHOD GetInternalAndReservedAttribute1ICloudMachine(PRUint32 *aInternalAndReservedAttribute1ICloudMachine) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2ICloudMachine; */
  NS_IMETHOD GetInternalAndReservedAttribute2ICloudMachine(PRUint32 *aInternalAndReservedAttribute2ICloudMachine) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3ICloudMachine; */
  NS_IMETHOD GetInternalAndReservedAttribute3ICloudMachine(PRUint32 *aInternalAndReservedAttribute3ICloudMachine) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4ICloudMachine; */
  NS_IMETHOD GetInternalAndReservedAttribute4ICloudMachine(PRUint32 *aInternalAndReservedAttribute4ICloudMachine) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5ICloudMachine; */
  NS_IMETHOD GetInternalAndReservedAttribute5ICloudMachine(PRUint32 *aInternalAndReservedAttribute5ICloudMachine) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6ICloudMachine; */
  NS_IMETHOD GetInternalAndReservedAttribute6ICloudMachine(PRUint32 *aInternalAndReservedAttribute6ICloudMachine) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7ICloudMachine; */
  NS_IMETHOD GetInternalAndReservedAttribute7ICloudMachine(PRUint32 *aInternalAndReservedAttribute7ICloudMachine) = 0;

  /* void refresh ([retval] out IProgress progress); */
  NS_IMETHOD Refresh(IProgress * *progress) = 0;

  /* void getDetailsForm ([retval] out IForm form); */
  NS_IMETHOD GetDetailsForm(IForm * *form) = 0;

  /* void getSettingsForm (out IForm form, [retval] out IProgress progress); */
  NS_IMETHOD GetSettingsForm(IForm * *form, IProgress * *progress) = 0;

  /* void powerUp ([retval] out IProgress progress); */
  NS_IMETHOD PowerUp(IProgress * *progress) = 0;

  /* void reboot ([retval] out IProgress progress); */
  NS_IMETHOD Reboot(IProgress * *progress) = 0;

  /* void reset ([retval] out IProgress progress); */
  NS_IMETHOD Reset(IProgress * *progress) = 0;

  /* void shutdown ([retval] out IProgress progress); */
  NS_IMETHOD Shutdown(IProgress * *progress) = 0;

  /* void powerDown ([retval] out IProgress progress); */
  NS_IMETHOD PowerDown(IProgress * *progress) = 0;

  /* void terminate ([retval] out IProgress progress); */
  NS_IMETHOD Terminate(IProgress * *progress) = 0;

  /* void unregister ([retval] out IProgress progress); */
  NS_IMETHOD Unregister(IProgress * *progress) = 0;

  /* void remove ([retval] out IProgress progress); */
  NS_IMETHOD Remove(IProgress * *progress) = 0;

  /* void getConsoleHistory (out IDataStream stream, [retval] out IProgress progress); */
  NS_IMETHOD GetConsoleHistory(IDataStream * *stream, IProgress * *progress) = 0;

  /* void createConsoleConnection (in wstring sshPublicKey, [retval] out IProgress progress); */
  NS_IMETHOD CreateConsoleConnection(const PRUnichar *sshPublicKey, IProgress * *progress) = 0;

  /* void deleteConsoleConnection ([retval] out IProgress progress); */
  NS_IMETHOD DeleteConsoleConnection(IProgress * *progress) = 0;

  /* void listMetricNames (out IStringArray metricNames, [retval] out IProgress progress); */
  NS_IMETHOD ListMetricNames(IStringArray * *metricNames, IProgress * *progress) = 0;

  /* void enumerateMetricData (in MetricType_T metricType, in unsigned long pointsNumber, out IStringArray values, out IStringArray timestamps, out IStringArray unit, [retval] out IProgress progress); */
  NS_IMETHOD EnumerateMetricData(MetricType_T metricType, PRUint32 pointsNumber, IStringArray * *values, IStringArray * *timestamps, IStringArray * *unit, IProgress * *progress) = 0;

  /* void InternalAndReservedMethod1ICloudMachine (); */
  NS_IMETHOD InternalAndReservedMethod1ICloudMachine(void) = 0;

  /* void InternalAndReservedMethod2ICloudMachine (); */
  NS_IMETHOD InternalAndReservedMethod2ICloudMachine(void) = 0;

  /* void InternalAndReservedMethod3ICloudMachine (); */
  NS_IMETHOD InternalAndReservedMethod3ICloudMachine(void) = 0;

  /* void InternalAndReservedMethod4ICloudMachine (); */
  NS_IMETHOD InternalAndReservedMethod4ICloudMachine(void) = 0;

  /* void InternalAndReservedMethod5ICloudMachine (); */
  NS_IMETHOD InternalAndReservedMethod5ICloudMachine(void) = 0;

  /* void InternalAndReservedMethod6ICloudMachine (); */
  NS_IMETHOD InternalAndReservedMethod6ICloudMachine(void) = 0;

  /* void InternalAndReservedMethod7ICloudMachine (); */
  NS_IMETHOD InternalAndReservedMethod7ICloudMachine(void) = 0;

  /* void InternalAndReservedMethod8ICloudMachine (); */
  NS_IMETHOD InternalAndReservedMethod8ICloudMachine(void) = 0;

  /* void InternalAndReservedMethod9ICloudMachine (); */
  NS_IMETHOD InternalAndReservedMethod9ICloudMachine(void) = 0;

  /* void InternalAndReservedMethod10ICloudMachine (); */
  NS_IMETHOD InternalAndReservedMethod10ICloudMachine(void) = 0;

  /* void InternalAndReservedMethod11ICloudMachine (); */
  NS_IMETHOD InternalAndReservedMethod11ICloudMachine(void) = 0;

  /* void InternalAndReservedMethod12ICloudMachine (); */
  NS_IMETHOD InternalAndReservedMethod12ICloudMachine(void) = 0;

  /* void InternalAndReservedMethod13ICloudMachine (); */
  NS_IMETHOD InternalAndReservedMethod13ICloudMachine(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ICLOUDMACHINE \
  NS_IMETHOD GetId(PRUnichar **aId) NS_OVERRIDE; \
  NS_IMETHOD GetCloudId(PRUnichar **aCloudId) NS_OVERRIDE; \
  NS_IMETHOD GetAccessible(PRBool *aAccessible) NS_OVERRIDE; \
  NS_IMETHOD GetAccessError(IVirtualBoxErrorInfo * *aAccessError) NS_OVERRIDE; \
  NS_IMETHOD GetName(PRUnichar **aName) NS_OVERRIDE; \
  NS_IMETHOD GetOSTypeId(PRUnichar **aOSTypeId) NS_OVERRIDE; \
  NS_IMETHOD GetState(CloudMachineState_T *aState) NS_OVERRIDE; \
  NS_IMETHOD GetConsoleConnectionFingerprint(PRUnichar **aConsoleConnectionFingerprint) NS_OVERRIDE; \
  NS_IMETHOD GetSerialConsoleCommand(PRUnichar **aSerialConsoleCommand) NS_OVERRIDE; \
  NS_IMETHOD GetSerialConsoleCommandWindows(PRUnichar **aSerialConsoleCommandWindows) NS_OVERRIDE; \
  NS_IMETHOD GetVNCConsoleCommand(PRUnichar **aVNCConsoleCommand) NS_OVERRIDE; \
  NS_IMETHOD GetVNCConsoleCommandWindows(PRUnichar **aVNCConsoleCommandWindows) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1ICloudMachine(PRUint32 *aInternalAndReservedAttribute1ICloudMachine) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2ICloudMachine(PRUint32 *aInternalAndReservedAttribute2ICloudMachine) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3ICloudMachine(PRUint32 *aInternalAndReservedAttribute3ICloudMachine) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4ICloudMachine(PRUint32 *aInternalAndReservedAttribute4ICloudMachine) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5ICloudMachine(PRUint32 *aInternalAndReservedAttribute5ICloudMachine) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6ICloudMachine(PRUint32 *aInternalAndReservedAttribute6ICloudMachine) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7ICloudMachine(PRUint32 *aInternalAndReservedAttribute7ICloudMachine) NS_OVERRIDE; \
  NS_IMETHOD Refresh(IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD GetDetailsForm(IForm * *form) NS_OVERRIDE; \
  NS_IMETHOD GetSettingsForm(IForm * *form, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD PowerUp(IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD Reboot(IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD Reset(IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD Shutdown(IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD PowerDown(IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD Terminate(IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD Unregister(IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD Remove(IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD GetConsoleHistory(IDataStream * *stream, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD CreateConsoleConnection(const PRUnichar *sshPublicKey, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD DeleteConsoleConnection(IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD ListMetricNames(IStringArray * *metricNames, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD EnumerateMetricData(MetricType_T metricType, PRUint32 pointsNumber, IStringArray * *values, IStringArray * *timestamps, IStringArray * *unit, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1ICloudMachine(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2ICloudMachine(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3ICloudMachine(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4ICloudMachine(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod5ICloudMachine(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod6ICloudMachine(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod7ICloudMachine(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod8ICloudMachine(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod9ICloudMachine(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod10ICloudMachine(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod11ICloudMachine(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod12ICloudMachine(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod13ICloudMachine(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ICLOUDMACHINE(_to) \
  NS_IMETHOD GetId(PRUnichar **aId) { return _to GetId(aId); } \
  NS_IMETHOD GetCloudId(PRUnichar **aCloudId) { return _to GetCloudId(aCloudId); } \
  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 GetOSTypeId(PRUnichar **aOSTypeId) { return _to GetOSTypeId(aOSTypeId); } \
  NS_IMETHOD GetState(CloudMachineState_T *aState) { return _to GetState(aState); } \
  NS_IMETHOD GetConsoleConnectionFingerprint(PRUnichar **aConsoleConnectionFingerprint) { return _to GetConsoleConnectionFingerprint(aConsoleConnectionFingerprint); } \
  NS_IMETHOD GetSerialConsoleCommand(PRUnichar **aSerialConsoleCommand) { return _to GetSerialConsoleCommand(aSerialConsoleCommand); } \
  NS_IMETHOD GetSerialConsoleCommandWindows(PRUnichar **aSerialConsoleCommandWindows) { return _to GetSerialConsoleCommandWindows(aSerialConsoleCommandWindows); } \
  NS_IMETHOD GetVNCConsoleCommand(PRUnichar **aVNCConsoleCommand) { return _to GetVNCConsoleCommand(aVNCConsoleCommand); } \
  NS_IMETHOD GetVNCConsoleCommandWindows(PRUnichar **aVNCConsoleCommandWindows) { return _to GetVNCConsoleCommandWindows(aVNCConsoleCommandWindows); } \
  NS_IMETHOD GetInternalAndReservedAttribute1ICloudMachine(PRUint32 *aInternalAndReservedAttribute1ICloudMachine) { return _to GetInternalAndReservedAttribute1ICloudMachine(aInternalAndReservedAttribute1ICloudMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute2ICloudMachine(PRUint32 *aInternalAndReservedAttribute2ICloudMachine) { return _to GetInternalAndReservedAttribute2ICloudMachine(aInternalAndReservedAttribute2ICloudMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute3ICloudMachine(PRUint32 *aInternalAndReservedAttribute3ICloudMachine) { return _to GetInternalAndReservedAttribute3ICloudMachine(aInternalAndReservedAttribute3ICloudMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute4ICloudMachine(PRUint32 *aInternalAndReservedAttribute4ICloudMachine) { return _to GetInternalAndReservedAttribute4ICloudMachine(aInternalAndReservedAttribute4ICloudMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute5ICloudMachine(PRUint32 *aInternalAndReservedAttribute5ICloudMachine) { return _to GetInternalAndReservedAttribute5ICloudMachine(aInternalAndReservedAttribute5ICloudMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute6ICloudMachine(PRUint32 *aInternalAndReservedAttribute6ICloudMachine) { return _to GetInternalAndReservedAttribute6ICloudMachine(aInternalAndReservedAttribute6ICloudMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute7ICloudMachine(PRUint32 *aInternalAndReservedAttribute7ICloudMachine) { return _to GetInternalAndReservedAttribute7ICloudMachine(aInternalAndReservedAttribute7ICloudMachine); } \
  NS_IMETHOD Refresh(IProgress * *progress) { return _to Refresh(progress); } \
  NS_IMETHOD GetDetailsForm(IForm * *form) { return _to GetDetailsForm(form); } \
  NS_IMETHOD GetSettingsForm(IForm * *form, IProgress * *progress) { return _to GetSettingsForm(form, progress); } \
  NS_IMETHOD PowerUp(IProgress * *progress) { return _to PowerUp(progress); } \
  NS_IMETHOD Reboot(IProgress * *progress) { return _to Reboot(progress); } \
  NS_IMETHOD Reset(IProgress * *progress) { return _to Reset(progress); } \
  NS_IMETHOD Shutdown(IProgress * *progress) { return _to Shutdown(progress); } \
  NS_IMETHOD PowerDown(IProgress * *progress) { return _to PowerDown(progress); } \
  NS_IMETHOD Terminate(IProgress * *progress) { return _to Terminate(progress); } \
  NS_IMETHOD Unregister(IProgress * *progress) { return _to Unregister(progress); } \
  NS_IMETHOD Remove(IProgress * *progress) { return _to Remove(progress); } \
  NS_IMETHOD GetConsoleHistory(IDataStream * *stream, IProgress * *progress) { return _to GetConsoleHistory(stream, progress); } \
  NS_IMETHOD CreateConsoleConnection(const PRUnichar *sshPublicKey, IProgress * *progress) { return _to CreateConsoleConnection(sshPublicKey, progress); } \
  NS_IMETHOD DeleteConsoleConnection(IProgress * *progress) { return _to DeleteConsoleConnection(progress); } \
  NS_IMETHOD ListMetricNames(IStringArray * *metricNames, IProgress * *progress) { return _to ListMetricNames(metricNames, progress); } \
  NS_IMETHOD EnumerateMetricData(MetricType_T metricType, PRUint32 pointsNumber, IStringArray * *values, IStringArray * *timestamps, IStringArray * *unit, IProgress * *progress) { return _to EnumerateMetricData(metricType, pointsNumber, values, timestamps, unit, progress); } \
  NS_IMETHOD InternalAndReservedMethod1ICloudMachine(void) { return _to InternalAndReservedMethod1ICloudMachine(); } \
  NS_IMETHOD InternalAndReservedMethod2ICloudMachine(void) { return _to InternalAndReservedMethod2ICloudMachine(); } \
  NS_IMETHOD InternalAndReservedMethod3ICloudMachine(void) { return _to InternalAndReservedMethod3ICloudMachine(); } \
  NS_IMETHOD InternalAndReservedMethod4ICloudMachine(void) { return _to InternalAndReservedMethod4ICloudMachine(); } \
  NS_IMETHOD InternalAndReservedMethod5ICloudMachine(void) { return _to InternalAndReservedMethod5ICloudMachine(); } \
  NS_IMETHOD InternalAndReservedMethod6ICloudMachine(void) { return _to InternalAndReservedMethod6ICloudMachine(); } \
  NS_IMETHOD InternalAndReservedMethod7ICloudMachine(void) { return _to InternalAndReservedMethod7ICloudMachine(); } \
  NS_IMETHOD InternalAndReservedMethod8ICloudMachine(void) { return _to InternalAndReservedMethod8ICloudMachine(); } \
  NS_IMETHOD InternalAndReservedMethod9ICloudMachine(void) { return _to InternalAndReservedMethod9ICloudMachine(); } \
  NS_IMETHOD InternalAndReservedMethod10ICloudMachine(void) { return _to InternalAndReservedMethod10ICloudMachine(); } \
  NS_IMETHOD InternalAndReservedMethod11ICloudMachine(void) { return _to InternalAndReservedMethod11ICloudMachine(); } \
  NS_IMETHOD InternalAndReservedMethod12ICloudMachine(void) { return _to InternalAndReservedMethod12ICloudMachine(); } \
  NS_IMETHOD InternalAndReservedMethod13ICloudMachine(void) { return _to InternalAndReservedMethod13ICloudMachine(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ICLOUDMACHINE(_to) \
  NS_IMETHOD GetId(PRUnichar **aId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetId(aId); } \
  NS_IMETHOD GetCloudId(PRUnichar **aCloudId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCloudId(aCloudId); } \
  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 GetOSTypeId(PRUnichar **aOSTypeId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOSTypeId(aOSTypeId); } \
  NS_IMETHOD GetState(CloudMachineState_T *aState) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetState(aState); } \
  NS_IMETHOD GetConsoleConnectionFingerprint(PRUnichar **aConsoleConnectionFingerprint) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetConsoleConnectionFingerprint(aConsoleConnectionFingerprint); } \
  NS_IMETHOD GetSerialConsoleCommand(PRUnichar **aSerialConsoleCommand) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSerialConsoleCommand(aSerialConsoleCommand); } \
  NS_IMETHOD GetSerialConsoleCommandWindows(PRUnichar **aSerialConsoleCommandWindows) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSerialConsoleCommandWindows(aSerialConsoleCommandWindows); } \
  NS_IMETHOD GetVNCConsoleCommand(PRUnichar **aVNCConsoleCommand) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVNCConsoleCommand(aVNCConsoleCommand); } \
  NS_IMETHOD GetVNCConsoleCommandWindows(PRUnichar **aVNCConsoleCommandWindows) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVNCConsoleCommandWindows(aVNCConsoleCommandWindows); } \
  NS_IMETHOD GetInternalAndReservedAttribute1ICloudMachine(PRUint32 *aInternalAndReservedAttribute1ICloudMachine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1ICloudMachine(aInternalAndReservedAttribute1ICloudMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute2ICloudMachine(PRUint32 *aInternalAndReservedAttribute2ICloudMachine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2ICloudMachine(aInternalAndReservedAttribute2ICloudMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute3ICloudMachine(PRUint32 *aInternalAndReservedAttribute3ICloudMachine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3ICloudMachine(aInternalAndReservedAttribute3ICloudMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute4ICloudMachine(PRUint32 *aInternalAndReservedAttribute4ICloudMachine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4ICloudMachine(aInternalAndReservedAttribute4ICloudMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute5ICloudMachine(PRUint32 *aInternalAndReservedAttribute5ICloudMachine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5ICloudMachine(aInternalAndReservedAttribute5ICloudMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute6ICloudMachine(PRUint32 *aInternalAndReservedAttribute6ICloudMachine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6ICloudMachine(aInternalAndReservedAttribute6ICloudMachine); } \
  NS_IMETHOD GetInternalAndReservedAttribute7ICloudMachine(PRUint32 *aInternalAndReservedAttribute7ICloudMachine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7ICloudMachine(aInternalAndReservedAttribute7ICloudMachine); } \
  NS_IMETHOD Refresh(IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->Refresh(progress); } \
  NS_IMETHOD GetDetailsForm(IForm * *form) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDetailsForm(form); } \
  NS_IMETHOD GetSettingsForm(IForm * *form, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSettingsForm(form, progress); } \
  NS_IMETHOD PowerUp(IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->PowerUp(progress); } \
  NS_IMETHOD Reboot(IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->Reboot(progress); } \
  NS_IMETHOD Reset(IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->Reset(progress); } \
  NS_IMETHOD Shutdown(IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->Shutdown(progress); } \
  NS_IMETHOD PowerDown(IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->PowerDown(progress); } \
  NS_IMETHOD Terminate(IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->Terminate(progress); } \
  NS_IMETHOD Unregister(IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->Unregister(progress); } \
  NS_IMETHOD Remove(IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->Remove(progress); } \
  NS_IMETHOD GetConsoleHistory(IDataStream * *stream, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetConsoleHistory(stream, progress); } \
  NS_IMETHOD CreateConsoleConnection(const PRUnichar *sshPublicKey, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateConsoleConnection(sshPublicKey, progress); } \
  NS_IMETHOD DeleteConsoleConnection(IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->DeleteConsoleConnection(progress); } \
  NS_IMETHOD ListMetricNames(IStringArray * *metricNames, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->ListMetricNames(metricNames, progress); } \
  NS_IMETHOD EnumerateMetricData(MetricType_T metricType, PRUint32 pointsNumber, IStringArray * *values, IStringArray * *timestamps, IStringArray * *unit, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->EnumerateMetricData(metricType, pointsNumber, values, timestamps, unit, progress); } \
  NS_IMETHOD InternalAndReservedMethod1ICloudMachine(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1ICloudMachine(); } \
  NS_IMETHOD InternalAndReservedMethod2ICloudMachine(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2ICloudMachine(); } \
  NS_IMETHOD InternalAndReservedMethod3ICloudMachine(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3ICloudMachine(); } \
  NS_IMETHOD InternalAndReservedMethod4ICloudMachine(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4ICloudMachine(); } \
  NS_IMETHOD InternalAndReservedMethod5ICloudMachine(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod5ICloudMachine(); } \
  NS_IMETHOD InternalAndReservedMethod6ICloudMachine(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod6ICloudMachine(); } \
  NS_IMETHOD InternalAndReservedMethod7ICloudMachine(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod7ICloudMachine(); } \
  NS_IMETHOD InternalAndReservedMethod8ICloudMachine(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod8ICloudMachine(); } \
  NS_IMETHOD InternalAndReservedMethod9ICloudMachine(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod9ICloudMachine(); } \
  NS_IMETHOD InternalAndReservedMethod10ICloudMachine(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod10ICloudMachine(); } \
  NS_IMETHOD InternalAndReservedMethod11ICloudMachine(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod11ICloudMachine(); } \
  NS_IMETHOD InternalAndReservedMethod12ICloudMachine(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod12ICloudMachine(); } \
  NS_IMETHOD InternalAndReservedMethod13ICloudMachine(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod13ICloudMachine(); } 

#define COM_FORWARD_ICloudMachine_GETTER_Id_TO(smth) NS_IMETHOD GetId (PRUnichar * * aId) { return smth GetId (aId); }
#define COM_FORWARD_ICloudMachine_GETTER_Id_TO_OBJ(obj) COM_FORWARD_ICloudMachine_GETTER_Id_TO ((obj)->)
#define COM_FORWARD_ICloudMachine_GETTER_Id_TO_BASE(base) COM_FORWARD_ICloudMachine_GETTER_Id_TO (base::)
#define COM_FORWARD_ICloudMachine_GETTER_CloudId_TO(smth) NS_IMETHOD GetCloudId (PRUnichar * * aCloudId) { return smth GetCloudId (aCloudId); }
#define COM_FORWARD_ICloudMachine_GETTER_CloudId_TO_OBJ(obj) COM_FORWARD_ICloudMachine_GETTER_CloudId_TO ((obj)->)
#define COM_FORWARD_ICloudMachine_GETTER_CloudId_TO_BASE(base) COM_FORWARD_ICloudMachine_GETTER_CloudId_TO (base::)
#define COM_FORWARD_ICloudMachine_GETTER_Accessible_TO(smth) NS_IMETHOD GetAccessible (PRBool * aAccessible) { return smth GetAccessible (aAccessible); }
#define COM_FORWARD_ICloudMachine_GETTER_Accessible_TO_OBJ(obj) COM_FORWARD_ICloudMachine_GETTER_Accessible_TO ((obj)->)
#define COM_FORWARD_ICloudMachine_GETTER_Accessible_TO_BASE(base) COM_FORWARD_ICloudMachine_GETTER_Accessible_TO (base::)
#define COM_FORWARD_ICloudMachine_GETTER_AccessError_TO(smth) NS_IMETHOD GetAccessError (IVirtualBoxErrorInfo * * aAccessError) { return smth GetAccessError (aAccessError); }
#define COM_FORWARD_ICloudMachine_GETTER_AccessError_TO_OBJ(obj) COM_FORWARD_ICloudMachine_GETTER_AccessError_TO ((obj)->)
#define COM_FORWARD_ICloudMachine_GETTER_AccessError_TO_BASE(base) COM_FORWARD_ICloudMachine_GETTER_AccessError_TO (base::)
#define COM_FORWARD_ICloudMachine_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_ICloudMachine_GETTER_Name_TO_OBJ(obj) COM_FORWARD_ICloudMachine_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_ICloudMachine_GETTER_Name_TO_BASE(base) COM_FORWARD_ICloudMachine_GETTER_Name_TO (base::)
#define COM_FORWARD_ICloudMachine_GETTER_OSTypeId_TO(smth) NS_IMETHOD GetOSTypeId (PRUnichar * * aOSTypeId) { return smth GetOSTypeId (aOSTypeId); }
#define COM_FORWARD_ICloudMachine_GETTER_OSTypeId_TO_OBJ(obj) COM_FORWARD_ICloudMachine_GETTER_OSTypeId_TO ((obj)->)
#define COM_FORWARD_ICloudMachine_GETTER_OSTypeId_TO_BASE(base) COM_FORWARD_ICloudMachine_GETTER_OSTypeId_TO (base::)
#define COM_FORWARD_ICloudMachine_GETTER_State_TO(smth) NS_IMETHOD GetState (PRUint32 * aState) { return smth GetState (aState); }
#define COM_FORWARD_ICloudMachine_GETTER_State_TO_OBJ(obj) COM_FORWARD_ICloudMachine_GETTER_State_TO ((obj)->)
#define COM_FORWARD_ICloudMachine_GETTER_State_TO_BASE(base) COM_FORWARD_ICloudMachine_GETTER_State_TO (base::)
#define COM_FORWARD_ICloudMachine_GETTER_ConsoleConnectionFingerprint_TO(smth) NS_IMETHOD GetConsoleConnectionFingerprint (PRUnichar * * aConsoleConnectionFingerprint) { return smth GetConsoleConnectionFingerprint (aConsoleConnectionFingerprint); }
#define COM_FORWARD_ICloudMachine_GETTER_ConsoleConnectionFingerprint_TO_OBJ(obj) COM_FORWARD_ICloudMachine_GETTER_ConsoleConnectionFingerprint_TO ((obj)->)
#define COM_FORWARD_ICloudMachine_GETTER_ConsoleConnectionFingerprint_TO_BASE(base) COM_FORWARD_ICloudMachine_GETTER_ConsoleConnectionFingerprint_TO (base::)
#define COM_FORWARD_ICloudMachine_GETTER_SerialConsoleCommand_TO(smth) NS_IMETHOD GetSerialConsoleCommand (PRUnichar * * aSerialConsoleCommand) { return smth GetSerialConsoleCommand (aSerialConsoleCommand); }
#define COM_FORWARD_ICloudMachine_GETTER_SerialConsoleCommand_TO_OBJ(obj) COM_FORWARD_ICloudMachine_GETTER_SerialConsoleCommand_TO ((obj)->)
#define COM_FORWARD_ICloudMachine_GETTER_SerialConsoleCommand_TO_BASE(base) COM_FORWARD_ICloudMachine_GETTER_SerialConsoleCommand_TO (base::)
#define COM_FORWARD_ICloudMachine_GETTER_SerialConsoleCommandWindows_TO(smth) NS_IMETHOD GetSerialConsoleCommandWindows (PRUnichar * * aSerialConsoleCommandWindows) { return smth GetSerialConsoleCommandWindows (aSerialConsoleCommandWindows); }
#define COM_FORWARD_ICloudMachine_GETTER_SerialConsoleCommandWindows_TO_OBJ(obj) COM_FORWARD_ICloudMachine_GETTER_SerialConsoleCommandWindows_TO ((obj)->)
#define COM_FORWARD_ICloudMachine_GETTER_SerialConsoleCommandWindows_TO_BASE(base) COM_FORWARD_ICloudMachine_GETTER_SerialConsoleCommandWindows_TO (base::)
#define COM_FORWARD_ICloudMachine_GETTER_VNCConsoleCommand_TO(smth) NS_IMETHOD GetVNCConsoleCommand (PRUnichar * * aVNCConsoleCommand) { return smth GetVNCConsoleCommand (aVNCConsoleCommand); }
#define COM_FORWARD_ICloudMachine_GETTER_VNCConsoleCommand_TO_OBJ(obj) COM_FORWARD_ICloudMachine_GETTER_VNCConsoleCommand_TO ((obj)->)
#define COM_FORWARD_ICloudMachine_GETTER_VNCConsoleCommand_TO_BASE(base) COM_FORWARD_ICloudMachine_GETTER_VNCConsoleCommand_TO (base::)
#define COM_FORWARD_ICloudMachine_GETTER_VNCConsoleCommandWindows_TO(smth) NS_IMETHOD GetVNCConsoleCommandWindows (PRUnichar * * aVNCConsoleCommandWindows) { return smth GetVNCConsoleCommandWindows (aVNCConsoleCommandWindows); }
#define COM_FORWARD_ICloudMachine_GETTER_VNCConsoleCommandWindows_TO_OBJ(obj) COM_FORWARD_ICloudMachine_GETTER_VNCConsoleCommandWindows_TO ((obj)->)
#define COM_FORWARD_ICloudMachine_GETTER_VNCConsoleCommandWindows_TO_BASE(base) COM_FORWARD_ICloudMachine_GETTER_VNCConsoleCommandWindows_TO (base::)
#define COM_FORWARD_ICloudMachine_Refresh_TO(smth) NS_IMETHOD Refresh (IProgress * * aProgress) { return smth Refresh (aProgress); }
#define COM_FORWARD_ICloudMachine_Refresh_TO_OBJ(obj) COM_FORWARD_ICloudMachine_Refresh_TO ((obj)->)
#define COM_FORWARD_ICloudMachine_Refresh_TO_BASE(base) COM_FORWARD_ICloudMachine_Refresh_TO (base::)
#define COM_FORWARD_ICloudMachine_GetDetailsForm_TO(smth) NS_IMETHOD GetDetailsForm (IForm * * aForm) { return smth GetDetailsForm (aForm); }
#define COM_FORWARD_ICloudMachine_GetDetailsForm_TO_OBJ(obj) COM_FORWARD_ICloudMachine_GetDetailsForm_TO ((obj)->)
#define COM_FORWARD_ICloudMachine_GetDetailsForm_TO_BASE(base) COM_FORWARD_ICloudMachine_GetDetailsForm_TO (base::)
#define COM_FORWARD_ICloudMachine_GetSettingsForm_TO(smth) NS_IMETHOD GetSettingsForm (IForm * * aForm, IProgress * * aProgress) { return smth GetSettingsForm (aForm, aProgress); }
#define COM_FORWARD_ICloudMachine_GetSettingsForm_TO_OBJ(obj) COM_FORWARD_ICloudMachine_GetSettingsForm_TO ((obj)->)
#define COM_FORWARD_ICloudMachine_GetSettingsForm_TO_BASE(base) COM_FORWARD_ICloudMachine_GetSettingsForm_TO (base::)
#define COM_FORWARD_ICloudMachine_PowerUp_TO(smth) NS_IMETHOD PowerUp (IProgress * * aProgress) { return smth PowerUp (aProgress); }
#define COM_FORWARD_ICloudMachine_PowerUp_TO_OBJ(obj) COM_FORWARD_ICloudMachine_PowerUp_TO ((obj)->)
#define COM_FORWARD_ICloudMachine_PowerUp_TO_BASE(base) COM_FORWARD_ICloudMachine_PowerUp_TO (base::)
#define COM_FORWARD_ICloudMachine_Reboot_TO(smth) NS_IMETHOD Reboot (IProgress * * aProgress) { return smth Reboot (aProgress); }
#define COM_FORWARD_ICloudMachine_Reboot_TO_OBJ(obj) COM_FORWARD_ICloudMachine_Reboot_TO ((obj)->)
#define COM_FORWARD_ICloudMachine_Reboot_TO_BASE(base) COM_FORWARD_ICloudMachine_Reboot_TO (base::)
#define COM_FORWARD_ICloudMachine_Reset_TO(smth) NS_IMETHOD Reset (IProgress * * aProgress) { return smth Reset (aProgress); }
#define COM_FORWARD_ICloudMachine_Reset_TO_OBJ(obj) COM_FORWARD_ICloudMachine_Reset_TO ((obj)->)
#define COM_FORWARD_ICloudMachine_Reset_TO_BASE(base) COM_FORWARD_ICloudMachine_Reset_TO (base::)
#define COM_FORWARD_ICloudMachine_Shutdown_TO(smth) NS_IMETHOD Shutdown (IProgress * * aProgress) { return smth Shutdown (aProgress); }
#define COM_FORWARD_ICloudMachine_Shutdown_TO_OBJ(obj) COM_FORWARD_ICloudMachine_Shutdown_TO ((obj)->)
#define COM_FORWARD_ICloudMachine_Shutdown_TO_BASE(base) COM_FORWARD_ICloudMachine_Shutdown_TO (base::)
#define COM_FORWARD_ICloudMachine_PowerDown_TO(smth) NS_IMETHOD PowerDown (IProgress * * aProgress) { return smth PowerDown (aProgress); }
#define COM_FORWARD_ICloudMachine_PowerDown_TO_OBJ(obj) COM_FORWARD_ICloudMachine_PowerDown_TO ((obj)->)
#define COM_FORWARD_ICloudMachine_PowerDown_TO_BASE(base) COM_FORWARD_ICloudMachine_PowerDown_TO (base::)
#define COM_FORWARD_ICloudMachine_Terminate_TO(smth) NS_IMETHOD Terminate (IProgress * * aProgress) { return smth Terminate (aProgress); }
#define COM_FORWARD_ICloudMachine_Terminate_TO_OBJ(obj) COM_FORWARD_ICloudMachine_Terminate_TO ((obj)->)
#define COM_FORWARD_ICloudMachine_Terminate_TO_BASE(base) COM_FORWARD_ICloudMachine_Terminate_TO (base::)
#define COM_FORWARD_ICloudMachine_Unregister_TO(smth) NS_IMETHOD Unregister (IProgress * * aProgress) { return smth Unregister (aProgress); }
#define COM_FORWARD_ICloudMachine_Unregister_TO_OBJ(obj) COM_FORWARD_ICloudMachine_Unregister_TO ((obj)->)
#define COM_FORWARD_ICloudMachine_Unregister_TO_BASE(base) COM_FORWARD_ICloudMachine_Unregister_TO (base::)
#define COM_FORWARD_ICloudMachine_Remove_TO(smth) NS_IMETHOD Remove (IProgress * * aProgress) { return smth Remove (aProgress); }
#define COM_FORWARD_ICloudMachine_Remove_TO_OBJ(obj) COM_FORWARD_ICloudMachine_Remove_TO ((obj)->)
#define COM_FORWARD_ICloudMachine_Remove_TO_BASE(base) COM_FORWARD_ICloudMachine_Remove_TO (base::)
#define COM_FORWARD_ICloudMachine_GetConsoleHistory_TO(smth) NS_IMETHOD GetConsoleHistory (IDataStream * * aStream, IProgress * * aProgress) { return smth GetConsoleHistory (aStream, aProgress); }
#define COM_FORWARD_ICloudMachine_GetConsoleHistory_TO_OBJ(obj) COM_FORWARD_ICloudMachine_GetConsoleHistory_TO ((obj)->)
#define COM_FORWARD_ICloudMachine_GetConsoleHistory_TO_BASE(base) COM_FORWARD_ICloudMachine_GetConsoleHistory_TO (base::)
#define COM_FORWARD_ICloudMachine_CreateConsoleConnection_TO(smth) NS_IMETHOD CreateConsoleConnection (PRUnichar * aSshPublicKey, IProgress * * aProgress) { return smth CreateConsoleConnection (aSshPublicKey, aProgress); }
#define COM_FORWARD_ICloudMachine_CreateConsoleConnection_TO_OBJ(obj) COM_FORWARD_ICloudMachine_CreateConsoleConnection_TO ((obj)->)
#define COM_FORWARD_ICloudMachine_CreateConsoleConnection_TO_BASE(base) COM_FORWARD_ICloudMachine_CreateConsoleConnection_TO (base::)
#define COM_FORWARD_ICloudMachine_DeleteConsoleConnection_TO(smth) NS_IMETHOD DeleteConsoleConnection (IProgress * * aProgress) { return smth DeleteConsoleConnection (aProgress); }
#define COM_FORWARD_ICloudMachine_DeleteConsoleConnection_TO_OBJ(obj) COM_FORWARD_ICloudMachine_DeleteConsoleConnection_TO ((obj)->)
#define COM_FORWARD_ICloudMachine_DeleteConsoleConnection_TO_BASE(base) COM_FORWARD_ICloudMachine_DeleteConsoleConnection_TO (base::)
#define COM_FORWARD_ICloudMachine_ListMetricNames_TO(smth) NS_IMETHOD ListMetricNames (IStringArray * * aMetricNames, IProgress * * aProgress) { return smth ListMetricNames (aMetricNames, aProgress); }
#define COM_FORWARD_ICloudMachine_ListMetricNames_TO_OBJ(obj) COM_FORWARD_ICloudMachine_ListMetricNames_TO ((obj)->)
#define COM_FORWARD_ICloudMachine_ListMetricNames_TO_BASE(base) COM_FORWARD_ICloudMachine_ListMetricNames_TO (base::)
#define COM_FORWARD_ICloudMachine_EnumerateMetricData_TO(smth) NS_IMETHOD EnumerateMetricData (PRUint32 aMetricType, PRUint32 aPointsNumber, IStringArray * * aValues, IStringArray * * aTimestamps, IStringArray * * aUnit, IProgress * * aProgress) { return smth EnumerateMetricData (aMetricType, aPointsNumber, aValues, aTimestamps, aUnit, aProgress); }
#define COM_FORWARD_ICloudMachine_EnumerateMetricData_TO_OBJ(obj) COM_FORWARD_ICloudMachine_EnumerateMetricData_TO ((obj)->)
#define COM_FORWARD_ICloudMachine_EnumerateMetricData_TO_BASE(base) COM_FORWARD_ICloudMachine_EnumerateMetricData_TO (base::)
#define COM_FORWARD_ICloudMachine_TO(smth) NS_FORWARD_ICLOUDMACHINE (smth)
#define COM_FORWARD_ICloudMachine_TO_OBJ(obj) COM_FORWARD_ICloudMachine_TO ((obj)->)
#define COM_FORWARD_ICloudMachine_TO_BASE(base) COM_FORWARD_ICloudMachine_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ICloudMachine;

/* starting interface:    ICloudClient */
#define ICLOUDCLIENT_IID_STR "c2db178a-7485-11ec-aec4-2fbf90681a84"

#define ICLOUDCLIENT_IID \
  {0xc2db178a, 0x7485, 0x11ec, \
    { 0xae, 0xc4, 0x2f, 0xbf, 0x90, 0x68, 0x1a, 0x84 }}

class NS_NO_VTABLE ICloudClient : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ICLOUDCLIENT_IID)

  /* void getCloudMachineList (out unsigned long cloudMachineListSize, [array, size_is (cloudMachineListSize), retval] out ICloudMachine cloudMachineList); */
  NS_IMETHOD GetCloudMachineList(PRUint32 *cloudMachineListSize, ICloudMachine * **cloudMachineList) = 0;

  /* void getCloudMachineStubList (out unsigned long cloudMachineStubListSize, [array, size_is (cloudMachineStubListSize), retval] out ICloudMachine cloudMachineStubList); */
  NS_IMETHOD GetCloudMachineStubList(PRUint32 *cloudMachineStubListSize, ICloudMachine * **cloudMachineStubList) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1ICloudClient; */
  NS_IMETHOD GetInternalAndReservedAttribute1ICloudClient(PRUint32 *aInternalAndReservedAttribute1ICloudClient) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2ICloudClient; */
  NS_IMETHOD GetInternalAndReservedAttribute2ICloudClient(PRUint32 *aInternalAndReservedAttribute2ICloudClient) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3ICloudClient; */
  NS_IMETHOD GetInternalAndReservedAttribute3ICloudClient(PRUint32 *aInternalAndReservedAttribute3ICloudClient) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4ICloudClient; */
  NS_IMETHOD GetInternalAndReservedAttribute4ICloudClient(PRUint32 *aInternalAndReservedAttribute4ICloudClient) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5ICloudClient; */
  NS_IMETHOD GetInternalAndReservedAttribute5ICloudClient(PRUint32 *aInternalAndReservedAttribute5ICloudClient) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6ICloudClient; */
  NS_IMETHOD GetInternalAndReservedAttribute6ICloudClient(PRUint32 *aInternalAndReservedAttribute6ICloudClient) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7ICloudClient; */
  NS_IMETHOD GetInternalAndReservedAttribute7ICloudClient(PRUint32 *aInternalAndReservedAttribute7ICloudClient) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8ICloudClient; */
  NS_IMETHOD GetInternalAndReservedAttribute8ICloudClient(PRUint32 *aInternalAndReservedAttribute8ICloudClient) = 0;

  /* void getExportDescriptionForm (in IVirtualSystemDescription description, out IVirtualSystemDescriptionForm form, [retval] out IProgress progress); */
  NS_IMETHOD GetExportDescriptionForm(IVirtualSystemDescription * description, IVirtualSystemDescriptionForm * *form, IProgress * *progress) = 0;

  /* void exportVM (in IVirtualSystemDescription description, in IProgress progress); */
  NS_IMETHOD ExportVM(IVirtualSystemDescription * description, IProgress * progress) = 0;

  /* void getLaunchDescriptionForm (in IVirtualSystemDescription description, out IVirtualSystemDescriptionForm form, [retval] out IProgress progress); */
  NS_IMETHOD GetLaunchDescriptionForm(IVirtualSystemDescription * description, IVirtualSystemDescriptionForm * *form, IProgress * *progress) = 0;

  /* void launchVM (in IVirtualSystemDescription description, [retval] out IProgress progress); */
  NS_IMETHOD LaunchVM(IVirtualSystemDescription * description, IProgress * *progress) = 0;

  /* void getImportDescriptionForm (in IVirtualSystemDescription description, out IVirtualSystemDescriptionForm form, [retval] out IProgress progress); */
  NS_IMETHOD GetImportDescriptionForm(IVirtualSystemDescription * description, IVirtualSystemDescriptionForm * *form, IProgress * *progress) = 0;

  /* void importInstance (in IVirtualSystemDescription description, in IProgress progress); */
  NS_IMETHOD ImportInstance(IVirtualSystemDescription * description, IProgress * progress) = 0;

  /* void getCloudMachine (in wstring id, [retval] out ICloudMachine machine); */
  NS_IMETHOD GetCloudMachine(const PRUnichar *id, ICloudMachine * *machine) = 0;

  /* void readCloudMachineList ([retval] out IProgress progress); */
  NS_IMETHOD ReadCloudMachineList(IProgress * *progress) = 0;

  /* void readCloudMachineStubList ([retval] out IProgress progress); */
  NS_IMETHOD ReadCloudMachineStubList(IProgress * *progress) = 0;

  /* void addCloudMachine (in wstring instanceId, out ICloudMachine machine, [retval] out IProgress progress); */
  NS_IMETHOD AddCloudMachine(const PRUnichar *instanceId, ICloudMachine * *machine, IProgress * *progress) = 0;

  /* void createCloudMachine (in IVirtualSystemDescription description, out ICloudMachine machine, [retval] out IProgress progress); */
  NS_IMETHOD CreateCloudMachine(IVirtualSystemDescription * description, ICloudMachine * *machine, IProgress * *progress) = 0;

  /* void listInstances (in unsigned long machineStateSize, [array, size_is (machineStateSize)] in CloudMachineState_T machineState, out IStringArray returnNames, out IStringArray returnIds, [retval] out IProgress progress); */
  NS_IMETHOD ListInstances(PRUint32 machineStateSize, CloudMachineState_T *machineState, IStringArray * *returnNames, IStringArray * *returnIds, IProgress * *progress) = 0;

  /* void listSourceInstances (out IStringArray returnNames, out IStringArray returnIds, [retval] out IProgress progress); */
  NS_IMETHOD ListSourceInstances(IStringArray * *returnNames, IStringArray * *returnIds, IProgress * *progress) = 0;

  /* void listImages (in unsigned long imageStateSize, [array, size_is (imageStateSize)] in CloudImageState_T imageState, out IStringArray returnNames, out IStringArray returnIds, [retval] out IProgress progress); */
  NS_IMETHOD ListImages(PRUint32 imageStateSize, CloudImageState_T *imageState, IStringArray * *returnNames, IStringArray * *returnIds, IProgress * *progress) = 0;

  /* void listBootVolumes (out IStringArray returnNames, out IStringArray returnIds, [retval] out IProgress progress); */
  NS_IMETHOD ListBootVolumes(IStringArray * *returnNames, IStringArray * *returnIds, IProgress * *progress) = 0;

  /* void listSourceBootVolumes (out IStringArray returnNames, out IStringArray returnIds, [retval] out IProgress progress); */
  NS_IMETHOD ListSourceBootVolumes(IStringArray * *returnNames, IStringArray * *returnIds, IProgress * *progress) = 0;

  /* void listVnicAttachments (in unsigned long parametersSize, [array, size_is (parametersSize)] in wstring parameters, out IStringArray returnVnicAttachmentIds, out IStringArray returnVnicIds, [retval] out IProgress progress); */
  NS_IMETHOD ListVnicAttachments(PRUint32 parametersSize, const PRUnichar **parameters, IStringArray * *returnVnicAttachmentIds, IStringArray * *returnVnicIds, IProgress * *progress) = 0;

  /* void getInstanceInfo (in wstring uid, in IVirtualSystemDescription description, [retval] out IProgress progress); */
  NS_IMETHOD GetInstanceInfo(const PRUnichar *uid, IVirtualSystemDescription * description, IProgress * *progress) = 0;

  /* void startInstance (in wstring uid, [retval] out IProgress progress); */
  NS_IMETHOD StartInstance(const PRUnichar *uid, IProgress * *progress) = 0;

  /* void pauseInstance (in wstring uid, [retval] out IProgress progress); */
  NS_IMETHOD PauseInstance(const PRUnichar *uid, IProgress * *progress) = 0;

  /* void terminateInstance (in wstring uid, [retval] out IProgress progress); */
  NS_IMETHOD TerminateInstance(const PRUnichar *uid, IProgress * *progress) = 0;

  /* void resetInstance (in wstring uid, [retval] out IProgress progress); */
  NS_IMETHOD ResetInstance(const PRUnichar *uid, IProgress * *progress) = 0;

  /* void cloneInstance (in wstring uid, in wstring newName, out ICloudMachine clone, [retval] out IProgress progress); */
  NS_IMETHOD CloneInstance(const PRUnichar *uid, const PRUnichar *newName, ICloudMachine * *clone, IProgress * *progress) = 0;

  /* void createImage (in unsigned long parametersSize, [array, size_is (parametersSize)] in wstring parameters, [retval] out IProgress progress); */
  NS_IMETHOD CreateImage(PRUint32 parametersSize, const PRUnichar **parameters, IProgress * *progress) = 0;

  /* void exportImage (in IMedium image, in unsigned long parametersSize, [array, size_is (parametersSize)] in wstring parameters, [retval] out IProgress progress); */
  NS_IMETHOD ExportImage(IMedium * image, PRUint32 parametersSize, const PRUnichar **parameters, IProgress * *progress) = 0;

  /* void importImage (in wstring uid, in unsigned long parametersSize, [array, size_is (parametersSize)] in wstring parameters, [retval] out IProgress progress); */
  NS_IMETHOD ImportImage(const PRUnichar *uid, PRUint32 parametersSize, const PRUnichar **parameters, IProgress * *progress) = 0;

  /* void deleteImage (in wstring uid, [retval] out IProgress progress); */
  NS_IMETHOD DeleteImage(const PRUnichar *uid, IProgress * *progress) = 0;

  /* void getImageInfo (in wstring uid, out IStringArray infoArray, [retval] out IProgress progress); */
  NS_IMETHOD GetImageInfo(const PRUnichar *uid, IStringArray * *infoArray, IProgress * *progress) = 0;

  /* void startCloudNetworkGateway (in ICloudNetwork network, in wstring sshPublicKey, out ICloudNetworkGatewayInfo gatewayInfo, [retval] out IProgress progress); */
  NS_IMETHOD StartCloudNetworkGateway(ICloudNetwork * network, const PRUnichar *sshPublicKey, ICloudNetworkGatewayInfo * *gatewayInfo, IProgress * *progress) = 0;

  /* void setupCloudNetworkEnvironment (in wstring tunnelNetworkName, in wstring tunnelNetworkRange, in wstring gatewayOsName, in wstring gatewayOsVersion, in wstring gatewayShape, out ICloudNetworkEnvironmentInfo networkEnvironmentInfo, [retval] out IProgress progress); */
  NS_IMETHOD SetupCloudNetworkEnvironment(const PRUnichar *tunnelNetworkName, const PRUnichar *tunnelNetworkRange, const PRUnichar *gatewayOsName, const PRUnichar *gatewayOsVersion, const PRUnichar *gatewayShape, ICloudNetworkEnvironmentInfo * *networkEnvironmentInfo, IProgress * *progress) = 0;

  /* void getVnicInfo (in wstring uid, out IStringArray infoArray, [retval] out IProgress progress); */
  NS_IMETHOD GetVnicInfo(const PRUnichar *uid, IStringArray * *infoArray, IProgress * *progress) = 0;

  /* void getSubnetSelectionForm (in IVirtualSystemDescription description, out IVirtualSystemDescriptionForm form, [retval] out IProgress progress); */
  NS_IMETHOD GetSubnetSelectionForm(IVirtualSystemDescription * description, IVirtualSystemDescriptionForm * *form, IProgress * *progress) = 0;

  /* void getMetricTypeByName (in wstring metricName, [retval] out MetricType_T metricType); */
  NS_IMETHOD GetMetricTypeByName(const PRUnichar *metricName, MetricType_T *metricType) = 0;

  /* void InternalAndReservedMethod1ICloudClient (); */
  NS_IMETHOD InternalAndReservedMethod1ICloudClient(void) = 0;

  /* void InternalAndReservedMethod2ICloudClient (); */
  NS_IMETHOD InternalAndReservedMethod2ICloudClient(void) = 0;

  /* void InternalAndReservedMethod3ICloudClient (); */
  NS_IMETHOD InternalAndReservedMethod3ICloudClient(void) = 0;

  /* void InternalAndReservedMethod4ICloudClient (); */
  NS_IMETHOD InternalAndReservedMethod4ICloudClient(void) = 0;

  /* void InternalAndReservedMethod5ICloudClient (); */
  NS_IMETHOD InternalAndReservedMethod5ICloudClient(void) = 0;

  /* void InternalAndReservedMethod6ICloudClient (); */
  NS_IMETHOD InternalAndReservedMethod6ICloudClient(void) = 0;

  /* void InternalAndReservedMethod7ICloudClient (); */
  NS_IMETHOD InternalAndReservedMethod7ICloudClient(void) = 0;

  /* void InternalAndReservedMethod8ICloudClient (); */
  NS_IMETHOD InternalAndReservedMethod8ICloudClient(void) = 0;

  /* void InternalAndReservedMethod9ICloudClient (); */
  NS_IMETHOD InternalAndReservedMethod9ICloudClient(void) = 0;

  /* void InternalAndReservedMethod10ICloudClient (); */
  NS_IMETHOD InternalAndReservedMethod10ICloudClient(void) = 0;

  /* void InternalAndReservedMethod11ICloudClient (); */
  NS_IMETHOD InternalAndReservedMethod11ICloudClient(void) = 0;

  /* void InternalAndReservedMethod12ICloudClient (); */
  NS_IMETHOD InternalAndReservedMethod12ICloudClient(void) = 0;

  /* void InternalAndReservedMethod13ICloudClient (); */
  NS_IMETHOD InternalAndReservedMethod13ICloudClient(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ICLOUDCLIENT \
  NS_IMETHOD GetCloudMachineList(PRUint32 *cloudMachineListSize, ICloudMachine * **cloudMachineList) NS_OVERRIDE; \
  NS_IMETHOD GetCloudMachineStubList(PRUint32 *cloudMachineStubListSize, ICloudMachine * **cloudMachineStubList) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1ICloudClient(PRUint32 *aInternalAndReservedAttribute1ICloudClient) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2ICloudClient(PRUint32 *aInternalAndReservedAttribute2ICloudClient) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3ICloudClient(PRUint32 *aInternalAndReservedAttribute3ICloudClient) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4ICloudClient(PRUint32 *aInternalAndReservedAttribute4ICloudClient) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5ICloudClient(PRUint32 *aInternalAndReservedAttribute5ICloudClient) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6ICloudClient(PRUint32 *aInternalAndReservedAttribute6ICloudClient) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7ICloudClient(PRUint32 *aInternalAndReservedAttribute7ICloudClient) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8ICloudClient(PRUint32 *aInternalAndReservedAttribute8ICloudClient) NS_OVERRIDE; \
  NS_IMETHOD GetExportDescriptionForm(IVirtualSystemDescription * description, IVirtualSystemDescriptionForm * *form, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD ExportVM(IVirtualSystemDescription * description, IProgress * progress) NS_OVERRIDE; \
  NS_IMETHOD GetLaunchDescriptionForm(IVirtualSystemDescription * description, IVirtualSystemDescriptionForm * *form, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD LaunchVM(IVirtualSystemDescription * description, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD GetImportDescriptionForm(IVirtualSystemDescription * description, IVirtualSystemDescriptionForm * *form, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD ImportInstance(IVirtualSystemDescription * description, IProgress * progress) NS_OVERRIDE; \
  NS_IMETHOD GetCloudMachine(const PRUnichar *id, ICloudMachine * *machine) NS_OVERRIDE; \
  NS_IMETHOD ReadCloudMachineList(IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD ReadCloudMachineStubList(IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD AddCloudMachine(const PRUnichar *instanceId, ICloudMachine * *machine, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD CreateCloudMachine(IVirtualSystemDescription * description, ICloudMachine * *machine, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD ListInstances(PRUint32 machineStateSize, CloudMachineState_T *machineState, IStringArray * *returnNames, IStringArray * *returnIds, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD ListSourceInstances(IStringArray * *returnNames, IStringArray * *returnIds, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD ListImages(PRUint32 imageStateSize, CloudImageState_T *imageState, IStringArray * *returnNames, IStringArray * *returnIds, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD ListBootVolumes(IStringArray * *returnNames, IStringArray * *returnIds, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD ListSourceBootVolumes(IStringArray * *returnNames, IStringArray * *returnIds, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD ListVnicAttachments(PRUint32 parametersSize, const PRUnichar **parameters, IStringArray * *returnVnicAttachmentIds, IStringArray * *returnVnicIds, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD GetInstanceInfo(const PRUnichar *uid, IVirtualSystemDescription * description, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD StartInstance(const PRUnichar *uid, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD PauseInstance(const PRUnichar *uid, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD TerminateInstance(const PRUnichar *uid, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD ResetInstance(const PRUnichar *uid, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD CloneInstance(const PRUnichar *uid, const PRUnichar *newName, ICloudMachine * *clone, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD CreateImage(PRUint32 parametersSize, const PRUnichar **parameters, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD ExportImage(IMedium * image, PRUint32 parametersSize, const PRUnichar **parameters, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD ImportImage(const PRUnichar *uid, PRUint32 parametersSize, const PRUnichar **parameters, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD DeleteImage(const PRUnichar *uid, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD GetImageInfo(const PRUnichar *uid, IStringArray * *infoArray, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD StartCloudNetworkGateway(ICloudNetwork * network, const PRUnichar *sshPublicKey, ICloudNetworkGatewayInfo * *gatewayInfo, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD SetupCloudNetworkEnvironment(const PRUnichar *tunnelNetworkName, const PRUnichar *tunnelNetworkRange, const PRUnichar *gatewayOsName, const PRUnichar *gatewayOsVersion, const PRUnichar *gatewayShape, ICloudNetworkEnvironmentInfo * *networkEnvironmentInfo, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD GetVnicInfo(const PRUnichar *uid, IStringArray * *infoArray, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD GetSubnetSelectionForm(IVirtualSystemDescription * description, IVirtualSystemDescriptionForm * *form, IProgress * *progress) NS_OVERRIDE; \
  NS_IMETHOD GetMetricTypeByName(const PRUnichar *metricName, MetricType_T *metricType) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1ICloudClient(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2ICloudClient(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3ICloudClient(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4ICloudClient(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod5ICloudClient(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod6ICloudClient(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod7ICloudClient(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod8ICloudClient(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod9ICloudClient(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod10ICloudClient(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod11ICloudClient(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod12ICloudClient(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod13ICloudClient(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ICLOUDCLIENT(_to) \
  NS_IMETHOD GetCloudMachineList(PRUint32 *cloudMachineListSize, ICloudMachine * **cloudMachineList) { return _to GetCloudMachineList(cloudMachineListSize, cloudMachineList); } \
  NS_IMETHOD GetCloudMachineStubList(PRUint32 *cloudMachineStubListSize, ICloudMachine * **cloudMachineStubList) { return _to GetCloudMachineStubList(cloudMachineStubListSize, cloudMachineStubList); } \
  NS_IMETHOD GetInternalAndReservedAttribute1ICloudClient(PRUint32 *aInternalAndReservedAttribute1ICloudClient) { return _to GetInternalAndReservedAttribute1ICloudClient(aInternalAndReservedAttribute1ICloudClient); } \
  NS_IMETHOD GetInternalAndReservedAttribute2ICloudClient(PRUint32 *aInternalAndReservedAttribute2ICloudClient) { return _to GetInternalAndReservedAttribute2ICloudClient(aInternalAndReservedAttribute2ICloudClient); } \
  NS_IMETHOD GetInternalAndReservedAttribute3ICloudClient(PRUint32 *aInternalAndReservedAttribute3ICloudClient) { return _to GetInternalAndReservedAttribute3ICloudClient(aInternalAndReservedAttribute3ICloudClient); } \
  NS_IMETHOD GetInternalAndReservedAttribute4ICloudClient(PRUint32 *aInternalAndReservedAttribute4ICloudClient) { return _to GetInternalAndReservedAttribute4ICloudClient(aInternalAndReservedAttribute4ICloudClient); } \
  NS_IMETHOD GetInternalAndReservedAttribute5ICloudClient(PRUint32 *aInternalAndReservedAttribute5ICloudClient) { return _to GetInternalAndReservedAttribute5ICloudClient(aInternalAndReservedAttribute5ICloudClient); } \
  NS_IMETHOD GetInternalAndReservedAttribute6ICloudClient(PRUint32 *aInternalAndReservedAttribute6ICloudClient) { return _to GetInternalAndReservedAttribute6ICloudClient(aInternalAndReservedAttribute6ICloudClient); } \
  NS_IMETHOD GetInternalAndReservedAttribute7ICloudClient(PRUint32 *aInternalAndReservedAttribute7ICloudClient) { return _to GetInternalAndReservedAttribute7ICloudClient(aInternalAndReservedAttribute7ICloudClient); } \
  NS_IMETHOD GetInternalAndReservedAttribute8ICloudClient(PRUint32 *aInternalAndReservedAttribute8ICloudClient) { return _to GetInternalAndReservedAttribute8ICloudClient(aInternalAndReservedAttribute8ICloudClient); } \
  NS_IMETHOD GetExportDescriptionForm(IVirtualSystemDescription * description, IVirtualSystemDescriptionForm * *form, IProgress * *progress) { return _to GetExportDescriptionForm(description, form, progress); } \
  NS_IMETHOD ExportVM(IVirtualSystemDescription * description, IProgress * progress) { return _to ExportVM(description, progress); } \
  NS_IMETHOD GetLaunchDescriptionForm(IVirtualSystemDescription * description, IVirtualSystemDescriptionForm * *form, IProgress * *progress) { return _to GetLaunchDescriptionForm(description, form, progress); } \
  NS_IMETHOD LaunchVM(IVirtualSystemDescription * description, IProgress * *progress) { return _to LaunchVM(description, progress); } \
  NS_IMETHOD GetImportDescriptionForm(IVirtualSystemDescription * description, IVirtualSystemDescriptionForm * *form, IProgress * *progress) { return _to GetImportDescriptionForm(description, form, progress); } \
  NS_IMETHOD ImportInstance(IVirtualSystemDescription * description, IProgress * progress) { return _to ImportInstance(description, progress); } \
  NS_IMETHOD GetCloudMachine(const PRUnichar *id, ICloudMachine * *machine) { return _to GetCloudMachine(id, machine); } \
  NS_IMETHOD ReadCloudMachineList(IProgress * *progress) { return _to ReadCloudMachineList(progress); } \
  NS_IMETHOD ReadCloudMachineStubList(IProgress * *progress) { return _to ReadCloudMachineStubList(progress); } \
  NS_IMETHOD AddCloudMachine(const PRUnichar *instanceId, ICloudMachine * *machine, IProgress * *progress) { return _to AddCloudMachine(instanceId, machine, progress); } \
  NS_IMETHOD CreateCloudMachine(IVirtualSystemDescription * description, ICloudMachine * *machine, IProgress * *progress) { return _to CreateCloudMachine(description, machine, progress); } \
  NS_IMETHOD ListInstances(PRUint32 machineStateSize, CloudMachineState_T *machineState, IStringArray * *returnNames, IStringArray * *returnIds, IProgress * *progress) { return _to ListInstances(machineStateSize, machineState, returnNames, returnIds, progress); } \
  NS_IMETHOD ListSourceInstances(IStringArray * *returnNames, IStringArray * *returnIds, IProgress * *progress) { return _to ListSourceInstances(returnNames, returnIds, progress); } \
  NS_IMETHOD ListImages(PRUint32 imageStateSize, CloudImageState_T *imageState, IStringArray * *returnNames, IStringArray * *returnIds, IProgress * *progress) { return _to ListImages(imageStateSize, imageState, returnNames, returnIds, progress); } \
  NS_IMETHOD ListBootVolumes(IStringArray * *returnNames, IStringArray * *returnIds, IProgress * *progress) { return _to ListBootVolumes(returnNames, returnIds, progress); } \
  NS_IMETHOD ListSourceBootVolumes(IStringArray * *returnNames, IStringArray * *returnIds, IProgress * *progress) { return _to ListSourceBootVolumes(returnNames, returnIds, progress); } \
  NS_IMETHOD ListVnicAttachments(PRUint32 parametersSize, const PRUnichar **parameters, IStringArray * *returnVnicAttachmentIds, IStringArray * *returnVnicIds, IProgress * *progress) { return _to ListVnicAttachments(parametersSize, parameters, returnVnicAttachmentIds, returnVnicIds, progress); } \
  NS_IMETHOD GetInstanceInfo(const PRUnichar *uid, IVirtualSystemDescription * description, IProgress * *progress) { return _to GetInstanceInfo(uid, description, progress); } \
  NS_IMETHOD StartInstance(const PRUnichar *uid, IProgress * *progress) { return _to StartInstance(uid, progress); } \
  NS_IMETHOD PauseInstance(const PRUnichar *uid, IProgress * *progress) { return _to PauseInstance(uid, progress); } \
  NS_IMETHOD TerminateInstance(const PRUnichar *uid, IProgress * *progress) { return _to TerminateInstance(uid, progress); } \
  NS_IMETHOD ResetInstance(const PRUnichar *uid, IProgress * *progress) { return _to ResetInstance(uid, progress); } \
  NS_IMETHOD CloneInstance(const PRUnichar *uid, const PRUnichar *newName, ICloudMachine * *clone, IProgress * *progress) { return _to CloneInstance(uid, newName, clone, progress); } \
  NS_IMETHOD CreateImage(PRUint32 parametersSize, const PRUnichar **parameters, IProgress * *progress) { return _to CreateImage(parametersSize, parameters, progress); } \
  NS_IMETHOD ExportImage(IMedium * image, PRUint32 parametersSize, const PRUnichar **parameters, IProgress * *progress) { return _to ExportImage(image, parametersSize, parameters, progress); } \
  NS_IMETHOD ImportImage(const PRUnichar *uid, PRUint32 parametersSize, const PRUnichar **parameters, IProgress * *progress) { return _to ImportImage(uid, parametersSize, parameters, progress); } \
  NS_IMETHOD DeleteImage(const PRUnichar *uid, IProgress * *progress) { return _to DeleteImage(uid, progress); } \
  NS_IMETHOD GetImageInfo(const PRUnichar *uid, IStringArray * *infoArray, IProgress * *progress) { return _to GetImageInfo(uid, infoArray, progress); } \
  NS_IMETHOD StartCloudNetworkGateway(ICloudNetwork * network, const PRUnichar *sshPublicKey, ICloudNetworkGatewayInfo * *gatewayInfo, IProgress * *progress) { return _to StartCloudNetworkGateway(network, sshPublicKey, gatewayInfo, progress); } \
  NS_IMETHOD SetupCloudNetworkEnvironment(const PRUnichar *tunnelNetworkName, const PRUnichar *tunnelNetworkRange, const PRUnichar *gatewayOsName, const PRUnichar *gatewayOsVersion, const PRUnichar *gatewayShape, ICloudNetworkEnvironmentInfo * *networkEnvironmentInfo, IProgress * *progress) { return _to SetupCloudNetworkEnvironment(tunnelNetworkName, tunnelNetworkRange, gatewayOsName, gatewayOsVersion, gatewayShape, networkEnvironmentInfo, progress); } \
  NS_IMETHOD GetVnicInfo(const PRUnichar *uid, IStringArray * *infoArray, IProgress * *progress) { return _to GetVnicInfo(uid, infoArray, progress); } \
  NS_IMETHOD GetSubnetSelectionForm(IVirtualSystemDescription * description, IVirtualSystemDescriptionForm * *form, IProgress * *progress) { return _to GetSubnetSelectionForm(description, form, progress); } \
  NS_IMETHOD GetMetricTypeByName(const PRUnichar *metricName, MetricType_T *metricType) { return _to GetMetricTypeByName(metricName, metricType); } \
  NS_IMETHOD InternalAndReservedMethod1ICloudClient(void) { return _to InternalAndReservedMethod1ICloudClient(); } \
  NS_IMETHOD InternalAndReservedMethod2ICloudClient(void) { return _to InternalAndReservedMethod2ICloudClient(); } \
  NS_IMETHOD InternalAndReservedMethod3ICloudClient(void) { return _to InternalAndReservedMethod3ICloudClient(); } \
  NS_IMETHOD InternalAndReservedMethod4ICloudClient(void) { return _to InternalAndReservedMethod4ICloudClient(); } \
  NS_IMETHOD InternalAndReservedMethod5ICloudClient(void) { return _to InternalAndReservedMethod5ICloudClient(); } \
  NS_IMETHOD InternalAndReservedMethod6ICloudClient(void) { return _to InternalAndReservedMethod6ICloudClient(); } \
  NS_IMETHOD InternalAndReservedMethod7ICloudClient(void) { return _to InternalAndReservedMethod7ICloudClient(); } \
  NS_IMETHOD InternalAndReservedMethod8ICloudClient(void) { return _to InternalAndReservedMethod8ICloudClient(); } \
  NS_IMETHOD InternalAndReservedMethod9ICloudClient(void) { return _to InternalAndReservedMethod9ICloudClient(); } \
  NS_IMETHOD InternalAndReservedMethod10ICloudClient(void) { return _to InternalAndReservedMethod10ICloudClient(); } \
  NS_IMETHOD InternalAndReservedMethod11ICloudClient(void) { return _to InternalAndReservedMethod11ICloudClient(); } \
  NS_IMETHOD InternalAndReservedMethod12ICloudClient(void) { return _to InternalAndReservedMethod12ICloudClient(); } \
  NS_IMETHOD InternalAndReservedMethod13ICloudClient(void) { return _to InternalAndReservedMethod13ICloudClient(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ICLOUDCLIENT(_to) \
  NS_IMETHOD GetCloudMachineList(PRUint32 *cloudMachineListSize, ICloudMachine * **cloudMachineList) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCloudMachineList(cloudMachineListSize, cloudMachineList); } \
  NS_IMETHOD GetCloudMachineStubList(PRUint32 *cloudMachineStubListSize, ICloudMachine * **cloudMachineStubList) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCloudMachineStubList(cloudMachineStubListSize, cloudMachineStubList); } \
  NS_IMETHOD GetInternalAndReservedAttribute1ICloudClient(PRUint32 *aInternalAndReservedAttribute1ICloudClient) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1ICloudClient(aInternalAndReservedAttribute1ICloudClient); } \
  NS_IMETHOD GetInternalAndReservedAttribute2ICloudClient(PRUint32 *aInternalAndReservedAttribute2ICloudClient) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2ICloudClient(aInternalAndReservedAttribute2ICloudClient); } \
  NS_IMETHOD GetInternalAndReservedAttribute3ICloudClient(PRUint32 *aInternalAndReservedAttribute3ICloudClient) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3ICloudClient(aInternalAndReservedAttribute3ICloudClient); } \
  NS_IMETHOD GetInternalAndReservedAttribute4ICloudClient(PRUint32 *aInternalAndReservedAttribute4ICloudClient) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4ICloudClient(aInternalAndReservedAttribute4ICloudClient); } \
  NS_IMETHOD GetInternalAndReservedAttribute5ICloudClient(PRUint32 *aInternalAndReservedAttribute5ICloudClient) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5ICloudClient(aInternalAndReservedAttribute5ICloudClient); } \
  NS_IMETHOD GetInternalAndReservedAttribute6ICloudClient(PRUint32 *aInternalAndReservedAttribute6ICloudClient) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6ICloudClient(aInternalAndReservedAttribute6ICloudClient); } \
  NS_IMETHOD GetInternalAndReservedAttribute7ICloudClient(PRUint32 *aInternalAndReservedAttribute7ICloudClient) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7ICloudClient(aInternalAndReservedAttribute7ICloudClient); } \
  NS_IMETHOD GetInternalAndReservedAttribute8ICloudClient(PRUint32 *aInternalAndReservedAttribute8ICloudClient) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8ICloudClient(aInternalAndReservedAttribute8ICloudClient); } \
  NS_IMETHOD GetExportDescriptionForm(IVirtualSystemDescription * description, IVirtualSystemDescriptionForm * *form, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetExportDescriptionForm(description, form, progress); } \
  NS_IMETHOD ExportVM(IVirtualSystemDescription * description, IProgress * progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->ExportVM(description, progress); } \
  NS_IMETHOD GetLaunchDescriptionForm(IVirtualSystemDescription * description, IVirtualSystemDescriptionForm * *form, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLaunchDescriptionForm(description, form, progress); } \
  NS_IMETHOD LaunchVM(IVirtualSystemDescription * description, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->LaunchVM(description, progress); } \
  NS_IMETHOD GetImportDescriptionForm(IVirtualSystemDescription * description, IVirtualSystemDescriptionForm * *form, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetImportDescriptionForm(description, form, progress); } \
  NS_IMETHOD ImportInstance(IVirtualSystemDescription * description, IProgress * progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->ImportInstance(description, progress); } \
  NS_IMETHOD GetCloudMachine(const PRUnichar *id, ICloudMachine * *machine) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCloudMachine(id, machine); } \
  NS_IMETHOD ReadCloudMachineList(IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->ReadCloudMachineList(progress); } \
  NS_IMETHOD ReadCloudMachineStubList(IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->ReadCloudMachineStubList(progress); } \
  NS_IMETHOD AddCloudMachine(const PRUnichar *instanceId, ICloudMachine * *machine, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddCloudMachine(instanceId, machine, progress); } \
  NS_IMETHOD CreateCloudMachine(IVirtualSystemDescription * description, ICloudMachine * *machine, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateCloudMachine(description, machine, progress); } \
  NS_IMETHOD ListInstances(PRUint32 machineStateSize, CloudMachineState_T *machineState, IStringArray * *returnNames, IStringArray * *returnIds, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->ListInstances(machineStateSize, machineState, returnNames, returnIds, progress); } \
  NS_IMETHOD ListSourceInstances(IStringArray * *returnNames, IStringArray * *returnIds, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->ListSourceInstances(returnNames, returnIds, progress); } \
  NS_IMETHOD ListImages(PRUint32 imageStateSize, CloudImageState_T *imageState, IStringArray * *returnNames, IStringArray * *returnIds, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->ListImages(imageStateSize, imageState, returnNames, returnIds, progress); } \
  NS_IMETHOD ListBootVolumes(IStringArray * *returnNames, IStringArray * *returnIds, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->ListBootVolumes(returnNames, returnIds, progress); } \
  NS_IMETHOD ListSourceBootVolumes(IStringArray * *returnNames, IStringArray * *returnIds, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->ListSourceBootVolumes(returnNames, returnIds, progress); } \
  NS_IMETHOD ListVnicAttachments(PRUint32 parametersSize, const PRUnichar **parameters, IStringArray * *returnVnicAttachmentIds, IStringArray * *returnVnicIds, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->ListVnicAttachments(parametersSize, parameters, returnVnicAttachmentIds, returnVnicIds, progress); } \
  NS_IMETHOD GetInstanceInfo(const PRUnichar *uid, IVirtualSystemDescription * description, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInstanceInfo(uid, description, progress); } \
  NS_IMETHOD StartInstance(const PRUnichar *uid, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->StartInstance(uid, progress); } \
  NS_IMETHOD PauseInstance(const PRUnichar *uid, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->PauseInstance(uid, progress); } \
  NS_IMETHOD TerminateInstance(const PRUnichar *uid, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->TerminateInstance(uid, progress); } \
  NS_IMETHOD ResetInstance(const PRUnichar *uid, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->ResetInstance(uid, progress); } \
  NS_IMETHOD CloneInstance(const PRUnichar *uid, const PRUnichar *newName, ICloudMachine * *clone, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->CloneInstance(uid, newName, clone, progress); } \
  NS_IMETHOD CreateImage(PRUint32 parametersSize, const PRUnichar **parameters, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateImage(parametersSize, parameters, progress); } \
  NS_IMETHOD ExportImage(IMedium * image, PRUint32 parametersSize, const PRUnichar **parameters, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->ExportImage(image, parametersSize, parameters, progress); } \
  NS_IMETHOD ImportImage(const PRUnichar *uid, PRUint32 parametersSize, const PRUnichar **parameters, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->ImportImage(uid, parametersSize, parameters, progress); } \
  NS_IMETHOD DeleteImage(const PRUnichar *uid, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->DeleteImage(uid, progress); } \
  NS_IMETHOD GetImageInfo(const PRUnichar *uid, IStringArray * *infoArray, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetImageInfo(uid, infoArray, progress); } \
  NS_IMETHOD StartCloudNetworkGateway(ICloudNetwork * network, const PRUnichar *sshPublicKey, ICloudNetworkGatewayInfo * *gatewayInfo, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->StartCloudNetworkGateway(network, sshPublicKey, gatewayInfo, progress); } \
  NS_IMETHOD SetupCloudNetworkEnvironment(const PRUnichar *tunnelNetworkName, const PRUnichar *tunnelNetworkRange, const PRUnichar *gatewayOsName, const PRUnichar *gatewayOsVersion, const PRUnichar *gatewayShape, ICloudNetworkEnvironmentInfo * *networkEnvironmentInfo, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetupCloudNetworkEnvironment(tunnelNetworkName, tunnelNetworkRange, gatewayOsName, gatewayOsVersion, gatewayShape, networkEnvironmentInfo, progress); } \
  NS_IMETHOD GetVnicInfo(const PRUnichar *uid, IStringArray * *infoArray, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetVnicInfo(uid, infoArray, progress); } \
  NS_IMETHOD GetSubnetSelectionForm(IVirtualSystemDescription * description, IVirtualSystemDescriptionForm * *form, IProgress * *progress) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSubnetSelectionForm(description, form, progress); } \
  NS_IMETHOD GetMetricTypeByName(const PRUnichar *metricName, MetricType_T *metricType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMetricTypeByName(metricName, metricType); } \
  NS_IMETHOD InternalAndReservedMethod1ICloudClient(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1ICloudClient(); } \
  NS_IMETHOD InternalAndReservedMethod2ICloudClient(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2ICloudClient(); } \
  NS_IMETHOD InternalAndReservedMethod3ICloudClient(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3ICloudClient(); } \
  NS_IMETHOD InternalAndReservedMethod4ICloudClient(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4ICloudClient(); } \
  NS_IMETHOD InternalAndReservedMethod5ICloudClient(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod5ICloudClient(); } \
  NS_IMETHOD InternalAndReservedMethod6ICloudClient(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod6ICloudClient(); } \
  NS_IMETHOD InternalAndReservedMethod7ICloudClient(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod7ICloudClient(); } \
  NS_IMETHOD InternalAndReservedMethod8ICloudClient(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod8ICloudClient(); } \
  NS_IMETHOD InternalAndReservedMethod9ICloudClient(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod9ICloudClient(); } \
  NS_IMETHOD InternalAndReservedMethod10ICloudClient(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod10ICloudClient(); } \
  NS_IMETHOD InternalAndReservedMethod11ICloudClient(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod11ICloudClient(); } \
  NS_IMETHOD InternalAndReservedMethod12ICloudClient(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod12ICloudClient(); } \
  NS_IMETHOD InternalAndReservedMethod13ICloudClient(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod13ICloudClient(); } 

#define COM_FORWARD_ICloudClient_GETTER_CloudMachineList_TO(smth) NS_IMETHOD GetCloudMachineList (PRUint32 * aCloudMachineListSize, ICloudMachine * * * aCloudMachineList) { return smth GetCloudMachineList (aCloudMachineListSize, aCloudMachineList); }
#define COM_FORWARD_ICloudClient_GETTER_CloudMachineList_TO_OBJ(obj) COM_FORWARD_ICloudClient_GETTER_CloudMachineList_TO ((obj)->)
#define COM_FORWARD_ICloudClient_GETTER_CloudMachineList_TO_BASE(base) COM_FORWARD_ICloudClient_GETTER_CloudMachineList_TO (base::)
#define COM_FORWARD_ICloudClient_GETTER_CloudMachineStubList_TO(smth) NS_IMETHOD GetCloudMachineStubList (PRUint32 * aCloudMachineStubListSize, ICloudMachine * * * aCloudMachineStubList) { return smth GetCloudMachineStubList (aCloudMachineStubListSize, aCloudMachineStubList); }
#define COM_FORWARD_ICloudClient_GETTER_CloudMachineStubList_TO_OBJ(obj) COM_FORWARD_ICloudClient_GETTER_CloudMachineStubList_TO ((obj)->)
#define COM_FORWARD_ICloudClient_GETTER_CloudMachineStubList_TO_BASE(base) COM_FORWARD_ICloudClient_GETTER_CloudMachineStubList_TO (base::)
#define COM_FORWARD_ICloudClient_GetExportDescriptionForm_TO(smth) NS_IMETHOD GetExportDescriptionForm (IVirtualSystemDescription * aDescription, IVirtualSystemDescriptionForm * * aForm, IProgress * * aProgress) { return smth GetExportDescriptionForm (aDescription, aForm, aProgress); }
#define COM_FORWARD_ICloudClient_GetExportDescriptionForm_TO_OBJ(obj) COM_FORWARD_ICloudClient_GetExportDescriptionForm_TO ((obj)->)
#define COM_FORWARD_ICloudClient_GetExportDescriptionForm_TO_BASE(base) COM_FORWARD_ICloudClient_GetExportDescriptionForm_TO (base::)
#define COM_FORWARD_ICloudClient_ExportVM_TO(smth) NS_IMETHOD ExportVM (IVirtualSystemDescription * aDescription, IProgress * aProgress) { return smth ExportVM (aDescription, aProgress); }
#define COM_FORWARD_ICloudClient_ExportVM_TO_OBJ(obj) COM_FORWARD_ICloudClient_ExportVM_TO ((obj)->)
#define COM_FORWARD_ICloudClient_ExportVM_TO_BASE(base) COM_FORWARD_ICloudClient_ExportVM_TO (base::)
#define COM_FORWARD_ICloudClient_GetLaunchDescriptionForm_TO(smth) NS_IMETHOD GetLaunchDescriptionForm (IVirtualSystemDescription * aDescription, IVirtualSystemDescriptionForm * * aForm, IProgress * * aProgress) { return smth GetLaunchDescriptionForm (aDescription, aForm, aProgress); }
#define COM_FORWARD_ICloudClient_GetLaunchDescriptionForm_TO_OBJ(obj) COM_FORWARD_ICloudClient_GetLaunchDescriptionForm_TO ((obj)->)
#define COM_FORWARD_ICloudClient_GetLaunchDescriptionForm_TO_BASE(base) COM_FORWARD_ICloudClient_GetLaunchDescriptionForm_TO (base::)
#define COM_FORWARD_ICloudClient_LaunchVM_TO(smth) NS_IMETHOD LaunchVM (IVirtualSystemDescription * aDescription, IProgress * * aProgress) { return smth LaunchVM (aDescription, aProgress); }
#define COM_FORWARD_ICloudClient_LaunchVM_TO_OBJ(obj) COM_FORWARD_ICloudClient_LaunchVM_TO ((obj)->)
#define COM_FORWARD_ICloudClient_LaunchVM_TO_BASE(base) COM_FORWARD_ICloudClient_LaunchVM_TO (base::)
#define COM_FORWARD_ICloudClient_GetImportDescriptionForm_TO(smth) NS_IMETHOD GetImportDescriptionForm (IVirtualSystemDescription * aDescription, IVirtualSystemDescriptionForm * * aForm, IProgress * * aProgress) { return smth GetImportDescriptionForm (aDescription, aForm, aProgress); }
#define COM_FORWARD_ICloudClient_GetImportDescriptionForm_TO_OBJ(obj) COM_FORWARD_ICloudClient_GetImportDescriptionForm_TO ((obj)->)
#define COM_FORWARD_ICloudClient_GetImportDescriptionForm_TO_BASE(base) COM_FORWARD_ICloudClient_GetImportDescriptionForm_TO (base::)
#define COM_FORWARD_ICloudClient_ImportInstance_TO(smth) NS_IMETHOD ImportInstance (IVirtualSystemDescription * aDescription, IProgress * aProgress) { return smth ImportInstance (aDescription, aProgress); }
#define COM_FORWARD_ICloudClient_ImportInstance_TO_OBJ(obj) COM_FORWARD_ICloudClient_ImportInstance_TO ((obj)->)
#define COM_FORWARD_ICloudClient_ImportInstance_TO_BASE(base) COM_FORWARD_ICloudClient_ImportInstance_TO (base::)
#define COM_FORWARD_ICloudClient_GetCloudMachine_TO(smth) NS_IMETHOD GetCloudMachine (PRUnichar * aId, ICloudMachine * * aMachine) { return smth GetCloudMachine (aId, aMachine); }
#define COM_FORWARD_ICloudClient_GetCloudMachine_TO_OBJ(obj) COM_FORWARD_ICloudClient_GetCloudMachine_TO ((obj)->)
#define COM_FORWARD_ICloudClient_GetCloudMachine_TO_BASE(base) COM_FORWARD_ICloudClient_GetCloudMachine_TO (base::)
#define COM_FORWARD_ICloudClient_ReadCloudMachineList_TO(smth) NS_IMETHOD ReadCloudMachineList (IProgress * * aProgress) { return smth ReadCloudMachineList (aProgress); }
#define COM_FORWARD_ICloudClient_ReadCloudMachineList_TO_OBJ(obj) COM_FORWARD_ICloudClient_ReadCloudMachineList_TO ((obj)->)
#define COM_FORWARD_ICloudClient_ReadCloudMachineList_TO_BASE(base) COM_FORWARD_ICloudClient_ReadCloudMachineList_TO (base::)
#define COM_FORWARD_ICloudClient_ReadCloudMachineStubList_TO(smth) NS_IMETHOD ReadCloudMachineStubList (IProgress * * aProgress) { return smth ReadCloudMachineStubList (aProgress); }
#define COM_FORWARD_ICloudClient_ReadCloudMachineStubList_TO_OBJ(obj) COM_FORWARD_ICloudClient_ReadCloudMachineStubList_TO ((obj)->)
#define COM_FORWARD_ICloudClient_ReadCloudMachineStubList_TO_BASE(base) COM_FORWARD_ICloudClient_ReadCloudMachineStubList_TO (base::)
#define COM_FORWARD_ICloudClient_AddCloudMachine_TO(smth) NS_IMETHOD AddCloudMachine (PRUnichar * aInstanceId, ICloudMachine * * aMachine, IProgress * * aProgress) { return smth AddCloudMachine (aInstanceId, aMachine, aProgress); }
#define COM_FORWARD_ICloudClient_AddCloudMachine_TO_OBJ(obj) COM_FORWARD_ICloudClient_AddCloudMachine_TO ((obj)->)
#define COM_FORWARD_ICloudClient_AddCloudMachine_TO_BASE(base) COM_FORWARD_ICloudClient_AddCloudMachine_TO (base::)
#define COM_FORWARD_ICloudClient_CreateCloudMachine_TO(smth) NS_IMETHOD CreateCloudMachine (IVirtualSystemDescription * aDescription, ICloudMachine * * aMachine, IProgress * * aProgress) { return smth CreateCloudMachine (aDescription, aMachine, aProgress); }
#define COM_FORWARD_ICloudClient_CreateCloudMachine_TO_OBJ(obj) COM_FORWARD_ICloudClient_CreateCloudMachine_TO ((obj)->)
#define COM_FORWARD_ICloudClient_CreateCloudMachine_TO_BASE(base) COM_FORWARD_ICloudClient_CreateCloudMachine_TO (base::)
#define COM_FORWARD_ICloudClient_ListInstances_TO(smth) NS_IMETHOD ListInstances (PRUint32 aMachineStateSize, PRUint32 * aMachineState, IStringArray * * aReturnNames, IStringArray * * aReturnIds, IProgress * * aProgress) { return smth ListInstances (aMachineStateSize+++, aMachineState, aReturnNames, aReturnIds, aProgress); }
#define COM_FORWARD_ICloudClient_ListInstances_TO_OBJ(obj) COM_FORWARD_ICloudClient_ListInstances_TO ((obj)->)
#define COM_FORWARD_ICloudClient_ListInstances_TO_BASE(base) COM_FORWARD_ICloudClient_ListInstances_TO (base::)
#define COM_FORWARD_ICloudClient_ListSourceInstances_TO(smth) NS_IMETHOD ListSourceInstances (IStringArray * * aReturnNames, IStringArray * * aReturnIds, IProgress * * aProgress) { return smth ListSourceInstances (aReturnNames, aReturnIds, aProgress); }
#define COM_FORWARD_ICloudClient_ListSourceInstances_TO_OBJ(obj) COM_FORWARD_ICloudClient_ListSourceInstances_TO ((obj)->)
#define COM_FORWARD_ICloudClient_ListSourceInstances_TO_BASE(base) COM_FORWARD_ICloudClient_ListSourceInstances_TO (base::)
#define COM_FORWARD_ICloudClient_ListImages_TO(smth) NS_IMETHOD ListImages (PRUint32 aImageStateSize, PRUint32 * aImageState, IStringArray * * aReturnNames, IStringArray * * aReturnIds, IProgress * * aProgress) { return smth ListImages (aImageStateSize+++, aImageState, aReturnNames, aReturnIds, aProgress); }
#define COM_FORWARD_ICloudClient_ListImages_TO_OBJ(obj) COM_FORWARD_ICloudClient_ListImages_TO ((obj)->)
#define COM_FORWARD_ICloudClient_ListImages_TO_BASE(base) COM_FORWARD_ICloudClient_ListImages_TO (base::)
#define COM_FORWARD_ICloudClient_ListBootVolumes_TO(smth) NS_IMETHOD ListBootVolumes (IStringArray * * aReturnNames, IStringArray * * aReturnIds, IProgress * * aProgress) { return smth ListBootVolumes (aReturnNames, aReturnIds, aProgress); }
#define COM_FORWARD_ICloudClient_ListBootVolumes_TO_OBJ(obj) COM_FORWARD_ICloudClient_ListBootVolumes_TO ((obj)->)
#define COM_FORWARD_ICloudClient_ListBootVolumes_TO_BASE(base) COM_FORWARD_ICloudClient_ListBootVolumes_TO (base::)
#define COM_FORWARD_ICloudClient_ListSourceBootVolumes_TO(smth) NS_IMETHOD ListSourceBootVolumes (IStringArray * * aReturnNames, IStringArray * * aReturnIds, IProgress * * aProgress) { return smth ListSourceBootVolumes (aReturnNames, aReturnIds, aProgress); }
#define COM_FORWARD_ICloudClient_ListSourceBootVolumes_TO_OBJ(obj) COM_FORWARD_ICloudClient_ListSourceBootVolumes_TO ((obj)->)
#define COM_FORWARD_ICloudClient_ListSourceBootVolumes_TO_BASE(base) COM_FORWARD_ICloudClient_ListSourceBootVolumes_TO (base::)
#define COM_FORWARD_ICloudClient_ListVnicAttachments_TO(smth) NS_IMETHOD ListVnicAttachments (PRUint32 aParametersSize, PRUnichar * * aParameters, IStringArray * * aReturnVnicAttachmentIds, IStringArray * * aReturnVnicIds, IProgress * * aProgress) { return smth ListVnicAttachments (aParametersSize+++, aParameters, aReturnVnicAttachmentIds, aReturnVnicIds, aProgress); }
#define COM_FORWARD_ICloudClient_ListVnicAttachments_TO_OBJ(obj) COM_FORWARD_ICloudClient_ListVnicAttachments_TO ((obj)->)
#define COM_FORWARD_ICloudClient_ListVnicAttachments_TO_BASE(base) COM_FORWARD_ICloudClient_ListVnicAttachments_TO (base::)
#define COM_FORWARD_ICloudClient_GetInstanceInfo_TO(smth) NS_IMETHOD GetInstanceInfo (PRUnichar * aUid, IVirtualSystemDescription * aDescription, IProgress * * aProgress) { return smth GetInstanceInfo (aUid, aDescription, aProgress); }
#define COM_FORWARD_ICloudClient_GetInstanceInfo_TO_OBJ(obj) COM_FORWARD_ICloudClient_GetInstanceInfo_TO ((obj)->)
#define COM_FORWARD_ICloudClient_GetInstanceInfo_TO_BASE(base) COM_FORWARD_ICloudClient_GetInstanceInfo_TO (base::)
#define COM_FORWARD_ICloudClient_StartInstance_TO(smth) NS_IMETHOD StartInstance (PRUnichar * aUid, IProgress * * aProgress) { return smth StartInstance (aUid, aProgress); }
#define COM_FORWARD_ICloudClient_StartInstance_TO_OBJ(obj) COM_FORWARD_ICloudClient_StartInstance_TO ((obj)->)
#define COM_FORWARD_ICloudClient_StartInstance_TO_BASE(base) COM_FORWARD_ICloudClient_StartInstance_TO (base::)
#define COM_FORWARD_ICloudClient_PauseInstance_TO(smth) NS_IMETHOD PauseInstance (PRUnichar * aUid, IProgress * * aProgress) { return smth PauseInstance (aUid, aProgress); }
#define COM_FORWARD_ICloudClient_PauseInstance_TO_OBJ(obj) COM_FORWARD_ICloudClient_PauseInstance_TO ((obj)->)
#define COM_FORWARD_ICloudClient_PauseInstance_TO_BASE(base) COM_FORWARD_ICloudClient_PauseInstance_TO (base::)
#define COM_FORWARD_ICloudClient_TerminateInstance_TO(smth) NS_IMETHOD TerminateInstance (PRUnichar * aUid, IProgress * * aProgress) { return smth TerminateInstance (aUid, aProgress); }
#define COM_FORWARD_ICloudClient_TerminateInstance_TO_OBJ(obj) COM_FORWARD_ICloudClient_TerminateInstance_TO ((obj)->)
#define COM_FORWARD_ICloudClient_TerminateInstance_TO_BASE(base) COM_FORWARD_ICloudClient_TerminateInstance_TO (base::)
#define COM_FORWARD_ICloudClient_ResetInstance_TO(smth) NS_IMETHOD ResetInstance (PRUnichar * aUid, IProgress * * aProgress) { return smth ResetInstance (aUid, aProgress); }
#define COM_FORWARD_ICloudClient_ResetInstance_TO_OBJ(obj) COM_FORWARD_ICloudClient_ResetInstance_TO ((obj)->)
#define COM_FORWARD_ICloudClient_ResetInstance_TO_BASE(base) COM_FORWARD_ICloudClient_ResetInstance_TO (base::)
#define COM_FORWARD_ICloudClient_CloneInstance_TO(smth) NS_IMETHOD CloneInstance (PRUnichar * aUid, PRUnichar * aNewName, ICloudMachine * * aClone, IProgress * * aProgress) { return smth CloneInstance (aUid, aNewName, aClone, aProgress); }
#define COM_FORWARD_ICloudClient_CloneInstance_TO_OBJ(obj) COM_FORWARD_ICloudClient_CloneInstance_TO ((obj)->)
#define COM_FORWARD_ICloudClient_CloneInstance_TO_BASE(base) COM_FORWARD_ICloudClient_CloneInstance_TO (base::)
#define COM_FORWARD_ICloudClient_CreateImage_TO(smth) NS_IMETHOD CreateImage (PRUint32 aParametersSize, PRUnichar * * aParameters, IProgress * * aProgress) { return smth CreateImage (aParametersSize+++, aParameters, aProgress); }
#define COM_FORWARD_ICloudClient_CreateImage_TO_OBJ(obj) COM_FORWARD_ICloudClient_CreateImage_TO ((obj)->)
#define COM_FORWARD_ICloudClient_CreateImage_TO_BASE(base) COM_FORWARD_ICloudClient_CreateImage_TO (base::)
#define COM_FORWARD_ICloudClient_ExportImage_TO(smth) NS_IMETHOD ExportImage (IMedium * aImage, PRUint32 aParametersSize, PRUnichar * * aParameters, IProgress * * aProgress) { return smth ExportImage (aImage, aParametersSize+++, aParameters, aProgress); }
#define COM_FORWARD_ICloudClient_ExportImage_TO_OBJ(obj) COM_FORWARD_ICloudClient_ExportImage_TO ((obj)->)
#define COM_FORWARD_ICloudClient_ExportImage_TO_BASE(base) COM_FORWARD_ICloudClient_ExportImage_TO (base::)
#define COM_FORWARD_ICloudClient_ImportImage_TO(smth) NS_IMETHOD ImportImage (PRUnichar * aUid, PRUint32 aParametersSize, PRUnichar * * aParameters, IProgress * * aProgress) { return smth ImportImage (aUid, aParametersSize+++, aParameters, aProgress); }
#define COM_FORWARD_ICloudClient_ImportImage_TO_OBJ(obj) COM_FORWARD_ICloudClient_ImportImage_TO ((obj)->)
#define COM_FORWARD_ICloudClient_ImportImage_TO_BASE(base) COM_FORWARD_ICloudClient_ImportImage_TO (base::)
#define COM_FORWARD_ICloudClient_DeleteImage_TO(smth) NS_IMETHOD DeleteImage (PRUnichar * aUid, IProgress * * aProgress) { return smth DeleteImage (aUid, aProgress); }
#define COM_FORWARD_ICloudClient_DeleteImage_TO_OBJ(obj) COM_FORWARD_ICloudClient_DeleteImage_TO ((obj)->)
#define COM_FORWARD_ICloudClient_DeleteImage_TO_BASE(base) COM_FORWARD_ICloudClient_DeleteImage_TO (base::)
#define COM_FORWARD_ICloudClient_GetImageInfo_TO(smth) NS_IMETHOD GetImageInfo (PRUnichar * aUid, IStringArray * * aInfoArray, IProgress * * aProgress) { return smth GetImageInfo (aUid, aInfoArray, aProgress); }
#define COM_FORWARD_ICloudClient_GetImageInfo_TO_OBJ(obj) COM_FORWARD_ICloudClient_GetImageInfo_TO ((obj)->)
#define COM_FORWARD_ICloudClient_GetImageInfo_TO_BASE(base) COM_FORWARD_ICloudClient_GetImageInfo_TO (base::)
#define COM_FORWARD_ICloudClient_StartCloudNetworkGateway_TO(smth) NS_IMETHOD StartCloudNetworkGateway (ICloudNetwork * aNetwork, PRUnichar * aSshPublicKey, ICloudNetworkGatewayInfo * * aGatewayInfo, IProgress * * aProgress) { return smth StartCloudNetworkGateway (aNetwork, aSshPublicKey, aGatewayInfo, aProgress); }
#define COM_FORWARD_ICloudClient_StartCloudNetworkGateway_TO_OBJ(obj) COM_FORWARD_ICloudClient_StartCloudNetworkGateway_TO ((obj)->)
#define COM_FORWARD_ICloudClient_StartCloudNetworkGateway_TO_BASE(base) COM_FORWARD_ICloudClient_StartCloudNetworkGateway_TO (base::)
#define COM_FORWARD_ICloudClient_SetupCloudNetworkEnvironment_TO(smth) NS_IMETHOD SetupCloudNetworkEnvironment (PRUnichar * aTunnelNetworkName, PRUnichar * aTunnelNetworkRange, PRUnichar * aGatewayOsName, PRUnichar * aGatewayOsVersion, PRUnichar * aGatewayShape, ICloudNetworkEnvironmentInfo * * aNetworkEnvironmentInfo, IProgress * * aProgress) { return smth SetupCloudNetworkEnvironment (aTunnelNetworkName, aTunnelNetworkRange, aGatewayOsName, aGatewayOsVersion, aGatewayShape, aNetworkEnvironmentInfo, aProgress); }
#define COM_FORWARD_ICloudClient_SetupCloudNetworkEnvironment_TO_OBJ(obj) COM_FORWARD_ICloudClient_SetupCloudNetworkEnvironment_TO ((obj)->)
#define COM_FORWARD_ICloudClient_SetupCloudNetworkEnvironment_TO_BASE(base) COM_FORWARD_ICloudClient_SetupCloudNetworkEnvironment_TO (base::)
#define COM_FORWARD_ICloudClient_GetVnicInfo_TO(smth) NS_IMETHOD GetVnicInfo (PRUnichar * aUid, IStringArray * * aInfoArray, IProgress * * aProgress) { return smth GetVnicInfo (aUid, aInfoArray, aProgress); }
#define COM_FORWARD_ICloudClient_GetVnicInfo_TO_OBJ(obj) COM_FORWARD_ICloudClient_GetVnicInfo_TO ((obj)->)
#define COM_FORWARD_ICloudClient_GetVnicInfo_TO_BASE(base) COM_FORWARD_ICloudClient_GetVnicInfo_TO (base::)
#define COM_FORWARD_ICloudClient_GetSubnetSelectionForm_TO(smth) NS_IMETHOD GetSubnetSelectionForm (IVirtualSystemDescription * aDescription, IVirtualSystemDescriptionForm * * aForm, IProgress * * aProgress) { return smth GetSubnetSelectionForm (aDescription, aForm, aProgress); }
#define COM_FORWARD_ICloudClient_GetSubnetSelectionForm_TO_OBJ(obj) COM_FORWARD_ICloudClient_GetSubnetSelectionForm_TO ((obj)->)
#define COM_FORWARD_ICloudClient_GetSubnetSelectionForm_TO_BASE(base) COM_FORWARD_ICloudClient_GetSubnetSelectionForm_TO (base::)
#define COM_FORWARD_ICloudClient_GetMetricTypeByName_TO(smth) NS_IMETHOD GetMetricTypeByName (PRUnichar * aMetricName, PRUint32 * aMetricType) { return smth GetMetricTypeByName (aMetricName, aMetricType); }
#define COM_FORWARD_ICloudClient_GetMetricTypeByName_TO_OBJ(obj) COM_FORWARD_ICloudClient_GetMetricTypeByName_TO ((obj)->)
#define COM_FORWARD_ICloudClient_GetMetricTypeByName_TO_BASE(base) COM_FORWARD_ICloudClient_GetMetricTypeByName_TO (base::)
#define COM_FORWARD_ICloudClient_TO(smth) NS_FORWARD_ICLOUDCLIENT (smth)
#define COM_FORWARD_ICloudClient_TO_OBJ(obj) COM_FORWARD_ICloudClient_TO ((obj)->)
#define COM_FORWARD_ICloudClient_TO_BASE(base) COM_FORWARD_ICloudClient_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ICloudClient;

/* starting interface:    ICloudProfile */
#define ICLOUDPROFILE_IID_STR "b1d978b8-f7b7-4b05-900e-2a9253c00f51"

#define ICLOUDPROFILE_IID \
  {0xb1d978b8, 0xf7b7, 0x4b05, \
    { 0x90, 0x0e, 0x2a, 0x92, 0x53, 0xc0, 0x0f, 0x51 }}

class NS_NO_VTABLE ICloudProfile : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ICLOUDPROFILE_IID)

  /* attribute wstring name; */
  NS_IMETHOD GetName(PRUnichar **aName) = 0;
  NS_IMETHOD SetName(const PRUnichar *aName) = 0;

  /* readonly attribute wstring providerId; */
  NS_IMETHOD GetProviderId(PRUnichar **aProviderId) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1ICloudProfile; */
  NS_IMETHOD GetInternalAndReservedAttribute1ICloudProfile(PRUint32 *aInternalAndReservedAttribute1ICloudProfile) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2ICloudProfile; */
  NS_IMETHOD GetInternalAndReservedAttribute2ICloudProfile(PRUint32 *aInternalAndReservedAttribute2ICloudProfile) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3ICloudProfile; */
  NS_IMETHOD GetInternalAndReservedAttribute3ICloudProfile(PRUint32 *aInternalAndReservedAttribute3ICloudProfile) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4ICloudProfile; */
  NS_IMETHOD GetInternalAndReservedAttribute4ICloudProfile(PRUint32 *aInternalAndReservedAttribute4ICloudProfile) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5ICloudProfile; */
  NS_IMETHOD GetInternalAndReservedAttribute5ICloudProfile(PRUint32 *aInternalAndReservedAttribute5ICloudProfile) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6ICloudProfile; */
  NS_IMETHOD GetInternalAndReservedAttribute6ICloudProfile(PRUint32 *aInternalAndReservedAttribute6ICloudProfile) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7ICloudProfile; */
  NS_IMETHOD GetInternalAndReservedAttribute7ICloudProfile(PRUint32 *aInternalAndReservedAttribute7ICloudProfile) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8ICloudProfile; */
  NS_IMETHOD GetInternalAndReservedAttribute8ICloudProfile(PRUint32 *aInternalAndReservedAttribute8ICloudProfile) = 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 remove (); */
  NS_IMETHOD Remove(void) = 0;

  /* void createCloudClient ([retval] out ICloudClient cloudClient); */
  NS_IMETHOD CreateCloudClient(ICloudClient * *cloudClient) = 0;

  /* void InternalAndReservedMethod1ICloudProfile (); */
  NS_IMETHOD InternalAndReservedMethod1ICloudProfile(void) = 0;

  /* void InternalAndReservedMethod2ICloudProfile (); */
  NS_IMETHOD InternalAndReservedMethod2ICloudProfile(void) = 0;

  /* void InternalAndReservedMethod3ICloudProfile (); */
  NS_IMETHOD InternalAndReservedMethod3ICloudProfile(void) = 0;

  /* void InternalAndReservedMethod4ICloudProfile (); */
  NS_IMETHOD InternalAndReservedMethod4ICloudProfile(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ICLOUDPROFILE \
  NS_IMETHOD GetName(PRUnichar **aName) NS_OVERRIDE; \
  NS_IMETHOD SetName(const PRUnichar *aName) NS_OVERRIDE; \
  NS_IMETHOD GetProviderId(PRUnichar **aProviderId) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1ICloudProfile(PRUint32 *aInternalAndReservedAttribute1ICloudProfile) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2ICloudProfile(PRUint32 *aInternalAndReservedAttribute2ICloudProfile) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3ICloudProfile(PRUint32 *aInternalAndReservedAttribute3ICloudProfile) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4ICloudProfile(PRUint32 *aInternalAndReservedAttribute4ICloudProfile) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5ICloudProfile(PRUint32 *aInternalAndReservedAttribute5ICloudProfile) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6ICloudProfile(PRUint32 *aInternalAndReservedAttribute6ICloudProfile) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7ICloudProfile(PRUint32 *aInternalAndReservedAttribute7ICloudProfile) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8ICloudProfile(PRUint32 *aInternalAndReservedAttribute8ICloudProfile) NS_OVERRIDE; \
  NS_IMETHOD GetProperty(const PRUnichar *name, PRUnichar **value) NS_OVERRIDE; \
  NS_IMETHOD SetProperty(const PRUnichar *name, const PRUnichar *value) NS_OVERRIDE; \
  NS_IMETHOD GetProperties(const PRUnichar *names, PRUint32 *returnNamesSize, PRUnichar ***returnNames, PRUint32 *returnValuesSize, PRUnichar ***returnValues) NS_OVERRIDE; \
  NS_IMETHOD SetProperties(PRUint32 namesSize, const PRUnichar **names, PRUint32 valuesSize, const PRUnichar **values) NS_OVERRIDE; \
  NS_IMETHOD Remove(void) NS_OVERRIDE; \
  NS_IMETHOD CreateCloudClient(ICloudClient * *cloudClient) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1ICloudProfile(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2ICloudProfile(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3ICloudProfile(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4ICloudProfile(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ICLOUDPROFILE(_to) \
  NS_IMETHOD GetName(PRUnichar **aName) { return _to GetName(aName); } \
  NS_IMETHOD SetName(const PRUnichar *aName) { return _to SetName(aName); } \
  NS_IMETHOD GetProviderId(PRUnichar **aProviderId) { return _to GetProviderId(aProviderId); } \
  NS_IMETHOD GetInternalAndReservedAttribute1ICloudProfile(PRUint32 *aInternalAndReservedAttribute1ICloudProfile) { return _to GetInternalAndReservedAttribute1ICloudProfile(aInternalAndReservedAttribute1ICloudProfile); } \
  NS_IMETHOD GetInternalAndReservedAttribute2ICloudProfile(PRUint32 *aInternalAndReservedAttribute2ICloudProfile) { return _to GetInternalAndReservedAttribute2ICloudProfile(aInternalAndReservedAttribute2ICloudProfile); } \
  NS_IMETHOD GetInternalAndReservedAttribute3ICloudProfile(PRUint32 *aInternalAndReservedAttribute3ICloudProfile) { return _to GetInternalAndReservedAttribute3ICloudProfile(aInternalAndReservedAttribute3ICloudProfile); } \
  NS_IMETHOD GetInternalAndReservedAttribute4ICloudProfile(PRUint32 *aInternalAndReservedAttribute4ICloudProfile) { return _to GetInternalAndReservedAttribute4ICloudProfile(aInternalAndReservedAttribute4ICloudProfile); } \
  NS_IMETHOD GetInternalAndReservedAttribute5ICloudProfile(PRUint32 *aInternalAndReservedAttribute5ICloudProfile) { return _to GetInternalAndReservedAttribute5ICloudProfile(aInternalAndReservedAttribute5ICloudProfile); } \
  NS_IMETHOD GetInternalAndReservedAttribute6ICloudProfile(PRUint32 *aInternalAndReservedAttribute6ICloudProfile) { return _to GetInternalAndReservedAttribute6ICloudProfile(aInternalAndReservedAttribute6ICloudProfile); } \
  NS_IMETHOD GetInternalAndReservedAttribute7ICloudProfile(PRUint32 *aInternalAndReservedAttribute7ICloudProfile) { return _to GetInternalAndReservedAttribute7ICloudProfile(aInternalAndReservedAttribute7ICloudProfile); } \
  NS_IMETHOD GetInternalAndReservedAttribute8ICloudProfile(PRUint32 *aInternalAndReservedAttribute8ICloudProfile) { return _to GetInternalAndReservedAttribute8ICloudProfile(aInternalAndReservedAttribute8ICloudProfile); } \
  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 Remove(void) { return _to Remove(); } \
  NS_IMETHOD CreateCloudClient(ICloudClient * *cloudClient) { return _to CreateCloudClient(cloudClient); } \
  NS_IMETHOD InternalAndReservedMethod1ICloudProfile(void) { return _to InternalAndReservedMethod1ICloudProfile(); } \
  NS_IMETHOD InternalAndReservedMethod2ICloudProfile(void) { return _to InternalAndReservedMethod2ICloudProfile(); } \
  NS_IMETHOD InternalAndReservedMethod3ICloudProfile(void) { return _to InternalAndReservedMethod3ICloudProfile(); } \
  NS_IMETHOD InternalAndReservedMethod4ICloudProfile(void) { return _to InternalAndReservedMethod4ICloudProfile(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ICLOUDPROFILE(_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 GetProviderId(PRUnichar **aProviderId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProviderId(aProviderId); } \
  NS_IMETHOD GetInternalAndReservedAttribute1ICloudProfile(PRUint32 *aInternalAndReservedAttribute1ICloudProfile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1ICloudProfile(aInternalAndReservedAttribute1ICloudProfile); } \
  NS_IMETHOD GetInternalAndReservedAttribute2ICloudProfile(PRUint32 *aInternalAndReservedAttribute2ICloudProfile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2ICloudProfile(aInternalAndReservedAttribute2ICloudProfile); } \
  NS_IMETHOD GetInternalAndReservedAttribute3ICloudProfile(PRUint32 *aInternalAndReservedAttribute3ICloudProfile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3ICloudProfile(aInternalAndReservedAttribute3ICloudProfile); } \
  NS_IMETHOD GetInternalAndReservedAttribute4ICloudProfile(PRUint32 *aInternalAndReservedAttribute4ICloudProfile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4ICloudProfile(aInternalAndReservedAttribute4ICloudProfile); } \
  NS_IMETHOD GetInternalAndReservedAttribute5ICloudProfile(PRUint32 *aInternalAndReservedAttribute5ICloudProfile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5ICloudProfile(aInternalAndReservedAttribute5ICloudProfile); } \
  NS_IMETHOD GetInternalAndReservedAttribute6ICloudProfile(PRUint32 *aInternalAndReservedAttribute6ICloudProfile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6ICloudProfile(aInternalAndReservedAttribute6ICloudProfile); } \
  NS_IMETHOD GetInternalAndReservedAttribute7ICloudProfile(PRUint32 *aInternalAndReservedAttribute7ICloudProfile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7ICloudProfile(aInternalAndReservedAttribute7ICloudProfile); } \
  NS_IMETHOD GetInternalAndReservedAttribute8ICloudProfile(PRUint32 *aInternalAndReservedAttribute8ICloudProfile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8ICloudProfile(aInternalAndReservedAttribute8ICloudProfile); } \
  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 Remove(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Remove(); } \
  NS_IMETHOD CreateCloudClient(ICloudClient * *cloudClient) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateCloudClient(cloudClient); } \
  NS_IMETHOD InternalAndReservedMethod1ICloudProfile(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1ICloudProfile(); } \
  NS_IMETHOD InternalAndReservedMethod2ICloudProfile(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2ICloudProfile(); } \
  NS_IMETHOD InternalAndReservedMethod3ICloudProfile(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3ICloudProfile(); } \
  NS_IMETHOD InternalAndReservedMethod4ICloudProfile(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4ICloudProfile(); } 

#define COM_FORWARD_ICloudProfile_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_ICloudProfile_GETTER_Name_TO_OBJ(obj) COM_FORWARD_ICloudProfile_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_ICloudProfile_GETTER_Name_TO_BASE(base) COM_FORWARD_ICloudProfile_GETTER_Name_TO (base::)
#define COM_FORWARD_ICloudProfile_SETTER_Name_TO(smth) NS_IMETHOD SetName (const PRUnichar * aName) { return smth SetName (aName); }
#define COM_FORWARD_ICloudProfile_SETTER_Name_TO_OBJ(obj) COM_FORWARD_ICloudProfile_SETTER_Name_TO ((obj)->)
#define COM_FORWARD_ICloudProfile_SETTER_Name_TO_BASE(base) COM_FORWARD_ICloudProfile_SETTER_Name_TO (base::)
#define COM_FORWARD_ICloudProfile_GETTER_ProviderId_TO(smth) NS_IMETHOD GetProviderId (PRUnichar * * aProviderId) { return smth GetProviderId (aProviderId); }
#define COM_FORWARD_ICloudProfile_GETTER_ProviderId_TO_OBJ(obj) COM_FORWARD_ICloudProfile_GETTER_ProviderId_TO ((obj)->)
#define COM_FORWARD_ICloudProfile_GETTER_ProviderId_TO_BASE(base) COM_FORWARD_ICloudProfile_GETTER_ProviderId_TO (base::)
#define COM_FORWARD_ICloudProfile_GetProperty_TO(smth) NS_IMETHOD GetProperty (PRUnichar * aName, PRUnichar * * aValue) { return smth GetProperty (aName, aValue); }
#define COM_FORWARD_ICloudProfile_GetProperty_TO_OBJ(obj) COM_FORWARD_ICloudProfile_GetProperty_TO ((obj)->)
#define COM_FORWARD_ICloudProfile_GetProperty_TO_BASE(base) COM_FORWARD_ICloudProfile_GetProperty_TO (base::)
#define COM_FORWARD_ICloudProfile_SetProperty_TO(smth) NS_IMETHOD SetProperty (PRUnichar * aName, PRUnichar * aValue) { return smth SetProperty (aName, aValue); }
#define COM_FORWARD_ICloudProfile_SetProperty_TO_OBJ(obj) COM_FORWARD_ICloudProfile_SetProperty_TO ((obj)->)
#define COM_FORWARD_ICloudProfile_SetProperty_TO_BASE(base) COM_FORWARD_ICloudProfile_SetProperty_TO (base::)
#define COM_FORWARD_ICloudProfile_GetProperties_TO(smth) NS_IMETHOD GetProperties (PRUnichar * aNames, PRUint32 * aReturnNamesSize, PRUnichar * * * aReturnNames, PRUint32 * aReturnValuesSize, PRUnichar * * * aReturnValues) { return smth GetProperties (aNames, aReturnNamesSize+++, aReturnNames, aReturnValuesSize, aReturnValues); }
#define COM_FORWARD_ICloudProfile_GetProperties_TO_OBJ(obj) COM_FORWARD_ICloudProfile_GetProperties_TO ((obj)->)
#define COM_FORWARD_ICloudProfile_GetProperties_TO_BASE(base) COM_FORWARD_ICloudProfile_GetProperties_TO (base::)
#define COM_FORWARD_ICloudProfile_SetProperties_TO(smth) NS_IMETHOD SetProperties (PRUint32 aNamesSize, PRUnichar * * aNames, PRUint32 aValuesSize, PRUnichar * * aValues) { return smth SetProperties (aNamesSize+++, aNames, aValuesSize, aValues); }
#define COM_FORWARD_ICloudProfile_SetProperties_TO_OBJ(obj) COM_FORWARD_ICloudProfile_SetProperties_TO ((obj)->)
#define COM_FORWARD_ICloudProfile_SetProperties_TO_BASE(base) COM_FORWARD_ICloudProfile_SetProperties_TO (base::)
#define COM_FORWARD_ICloudProfile_Remove_TO(smth) NS_IMETHOD Remove() { return smth Remove(); }
#define COM_FORWARD_ICloudProfile_Remove_TO_OBJ(obj) COM_FORWARD_ICloudProfile_Remove_TO ((obj)->)
#define COM_FORWARD_ICloudProfile_Remove_TO_BASE(base) COM_FORWARD_ICloudProfile_Remove_TO (base::)
#define COM_FORWARD_ICloudProfile_CreateCloudClient_TO(smth) NS_IMETHOD CreateCloudClient (ICloudClient * * aCloudClient) { return smth CreateCloudClient (aCloudClient); }
#define COM_FORWARD_ICloudProfile_CreateCloudClient_TO_OBJ(obj) COM_FORWARD_ICloudProfile_CreateCloudClient_TO ((obj)->)
#define COM_FORWARD_ICloudProfile_CreateCloudClient_TO_BASE(base) COM_FORWARD_ICloudProfile_CreateCloudClient_TO (base::)
#define COM_FORWARD_ICloudProfile_TO(smth) NS_FORWARD_ICLOUDPROFILE (smth)
#define COM_FORWARD_ICloudProfile_TO_OBJ(obj) COM_FORWARD_ICloudProfile_TO ((obj)->)
#define COM_FORWARD_ICloudProfile_TO_BASE(base) COM_FORWARD_ICloudProfile_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ICloudProfile;

/* starting interface:    ICloudProvider */
#define ICLOUDPROVIDER_IID_STR "22363cfc-07da-41ec-ac4a-3dd99db35594"

#define ICLOUDPROVIDER_IID \
  {0x22363cfc, 0x07da, 0x41ec, \
    { 0xac, 0x4a, 0x3d, 0xd9, 0x9d, 0xb3, 0x55, 0x94 }}

class NS_NO_VTABLE ICloudProvider : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ICLOUDPROVIDER_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;

  /* void getProfiles (out unsigned long profilesSize, [array, size_is (profilesSize), retval] out ICloudProfile profiles); */
  NS_IMETHOD GetProfiles(PRUint32 *profilesSize, ICloudProfile * **profiles) = 0;

  /* void getProfileNames (out unsigned long profileNamesSize, [array, size_is (profileNamesSize), retval] out wstring profileNames); */
  NS_IMETHOD GetProfileNames(PRUint32 *profileNamesSize, PRUnichar ***profileNames) = 0;

  /* void getSupportedPropertyNames (out unsigned long supportedPropertyNamesSize, [array, size_is (supportedPropertyNamesSize), retval] out wstring supportedPropertyNames); */
  NS_IMETHOD GetSupportedPropertyNames(PRUint32 *supportedPropertyNamesSize, PRUnichar ***supportedPropertyNames) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1ICloudProvider; */
  NS_IMETHOD GetInternalAndReservedAttribute1ICloudProvider(PRUint32 *aInternalAndReservedAttribute1ICloudProvider) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2ICloudProvider; */
  NS_IMETHOD GetInternalAndReservedAttribute2ICloudProvider(PRUint32 *aInternalAndReservedAttribute2ICloudProvider) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3ICloudProvider; */
  NS_IMETHOD GetInternalAndReservedAttribute3ICloudProvider(PRUint32 *aInternalAndReservedAttribute3ICloudProvider) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4ICloudProvider; */
  NS_IMETHOD GetInternalAndReservedAttribute4ICloudProvider(PRUint32 *aInternalAndReservedAttribute4ICloudProvider) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5ICloudProvider; */
  NS_IMETHOD GetInternalAndReservedAttribute5ICloudProvider(PRUint32 *aInternalAndReservedAttribute5ICloudProvider) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6ICloudProvider; */
  NS_IMETHOD GetInternalAndReservedAttribute6ICloudProvider(PRUint32 *aInternalAndReservedAttribute6ICloudProvider) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7ICloudProvider; */
  NS_IMETHOD GetInternalAndReservedAttribute7ICloudProvider(PRUint32 *aInternalAndReservedAttribute7ICloudProvider) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8ICloudProvider; */
  NS_IMETHOD GetInternalAndReservedAttribute8ICloudProvider(PRUint32 *aInternalAndReservedAttribute8ICloudProvider) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute9ICloudProvider; */
  NS_IMETHOD GetInternalAndReservedAttribute9ICloudProvider(PRUint32 *aInternalAndReservedAttribute9ICloudProvider) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute10ICloudProvider; */
  NS_IMETHOD GetInternalAndReservedAttribute10ICloudProvider(PRUint32 *aInternalAndReservedAttribute10ICloudProvider) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute11ICloudProvider; */
  NS_IMETHOD GetInternalAndReservedAttribute11ICloudProvider(PRUint32 *aInternalAndReservedAttribute11ICloudProvider) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute12ICloudProvider; */
  NS_IMETHOD GetInternalAndReservedAttribute12ICloudProvider(PRUint32 *aInternalAndReservedAttribute12ICloudProvider) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute13ICloudProvider; */
  NS_IMETHOD GetInternalAndReservedAttribute13ICloudProvider(PRUint32 *aInternalAndReservedAttribute13ICloudProvider) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute14ICloudProvider; */
  NS_IMETHOD GetInternalAndReservedAttribute14ICloudProvider(PRUint32 *aInternalAndReservedAttribute14ICloudProvider) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute15ICloudProvider; */
  NS_IMETHOD GetInternalAndReservedAttribute15ICloudProvider(PRUint32 *aInternalAndReservedAttribute15ICloudProvider) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute16ICloudProvider; */
  NS_IMETHOD GetInternalAndReservedAttribute16ICloudProvider(PRUint32 *aInternalAndReservedAttribute16ICloudProvider) = 0;

  /* void getPropertyDescription (in wstring name, [retval] out wstring description); */
  NS_IMETHOD GetPropertyDescription(const PRUnichar *name, PRUnichar **description) = 0;

  /* void createProfile (in wstring profileName, in unsigned long namesSize, [array, size_is (namesSize)] in wstring names, in unsigned long valuesSize, [array, size_is (valuesSize)] in wstring values); */
  NS_IMETHOD CreateProfile(const PRUnichar *profileName, PRUint32 namesSize, const PRUnichar **names, PRUint32 valuesSize, const PRUnichar **values) = 0;

  /* void importProfiles (); */
  NS_IMETHOD ImportProfiles(void) = 0;

  /* void restoreProfiles (); */
  NS_IMETHOD RestoreProfiles(void) = 0;

  /* void saveProfiles (); */
  NS_IMETHOD SaveProfiles(void) = 0;

  /* void getProfileByName (in wstring profileName, [retval] out ICloudProfile profile); */
  NS_IMETHOD GetProfileByName(const PRUnichar *profileName, ICloudProfile * *profile) = 0;

  /* void prepareUninstall (); */
  NS_IMETHOD PrepareUninstall(void) = 0;

  /* void InternalAndReservedMethod1ICloudProvider (); */
  NS_IMETHOD InternalAndReservedMethod1ICloudProvider(void) = 0;

  /* void InternalAndReservedMethod2ICloudProvider (); */
  NS_IMETHOD InternalAndReservedMethod2ICloudProvider(void) = 0;

  /* void InternalAndReservedMethod3ICloudProvider (); */
  NS_IMETHOD InternalAndReservedMethod3ICloudProvider(void) = 0;

  /* void InternalAndReservedMethod4ICloudProvider (); */
  NS_IMETHOD InternalAndReservedMethod4ICloudProvider(void) = 0;

  /* void InternalAndReservedMethod5ICloudProvider (); */
  NS_IMETHOD InternalAndReservedMethod5ICloudProvider(void) = 0;

  /* void InternalAndReservedMethod6ICloudProvider (); */
  NS_IMETHOD InternalAndReservedMethod6ICloudProvider(void) = 0;

  /* void InternalAndReservedMethod7ICloudProvider (); */
  NS_IMETHOD InternalAndReservedMethod7ICloudProvider(void) = 0;

  /* void InternalAndReservedMethod8ICloudProvider (); */
  NS_IMETHOD InternalAndReservedMethod8ICloudProvider(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ICLOUDPROVIDER \
  NS_IMETHOD GetName(PRUnichar **aName) NS_OVERRIDE; \
  NS_IMETHOD GetShortName(PRUnichar **aShortName) NS_OVERRIDE; \
  NS_IMETHOD GetId(PRUnichar **aId) NS_OVERRIDE; \
  NS_IMETHOD GetProfiles(PRUint32 *profilesSize, ICloudProfile * **profiles) NS_OVERRIDE; \
  NS_IMETHOD GetProfileNames(PRUint32 *profileNamesSize, PRUnichar ***profileNames) NS_OVERRIDE; \
  NS_IMETHOD GetSupportedPropertyNames(PRUint32 *supportedPropertyNamesSize, PRUnichar ***supportedPropertyNames) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1ICloudProvider(PRUint32 *aInternalAndReservedAttribute1ICloudProvider) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2ICloudProvider(PRUint32 *aInternalAndReservedAttribute2ICloudProvider) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3ICloudProvider(PRUint32 *aInternalAndReservedAttribute3ICloudProvider) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4ICloudProvider(PRUint32 *aInternalAndReservedAttribute4ICloudProvider) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5ICloudProvider(PRUint32 *aInternalAndReservedAttribute5ICloudProvider) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6ICloudProvider(PRUint32 *aInternalAndReservedAttribute6ICloudProvider) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7ICloudProvider(PRUint32 *aInternalAndReservedAttribute7ICloudProvider) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8ICloudProvider(PRUint32 *aInternalAndReservedAttribute8ICloudProvider) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute9ICloudProvider(PRUint32 *aInternalAndReservedAttribute9ICloudProvider) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute10ICloudProvider(PRUint32 *aInternalAndReservedAttribute10ICloudProvider) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute11ICloudProvider(PRUint32 *aInternalAndReservedAttribute11ICloudProvider) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute12ICloudProvider(PRUint32 *aInternalAndReservedAttribute12ICloudProvider) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute13ICloudProvider(PRUint32 *aInternalAndReservedAttribute13ICloudProvider) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute14ICloudProvider(PRUint32 *aInternalAndReservedAttribute14ICloudProvider) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute15ICloudProvider(PRUint32 *aInternalAndReservedAttribute15ICloudProvider) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute16ICloudProvider(PRUint32 *aInternalAndReservedAttribute16ICloudProvider) NS_OVERRIDE; \
  NS_IMETHOD GetPropertyDescription(const PRUnichar *name, PRUnichar **description) NS_OVERRIDE; \
  NS_IMETHOD CreateProfile(const PRUnichar *profileName, PRUint32 namesSize, const PRUnichar **names, PRUint32 valuesSize, const PRUnichar **values) NS_OVERRIDE; \
  NS_IMETHOD ImportProfiles(void) NS_OVERRIDE; \
  NS_IMETHOD RestoreProfiles(void) NS_OVERRIDE; \
  NS_IMETHOD SaveProfiles(void) NS_OVERRIDE; \
  NS_IMETHOD GetProfileByName(const PRUnichar *profileName, ICloudProfile * *profile) NS_OVERRIDE; \
  NS_IMETHOD PrepareUninstall(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1ICloudProvider(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2ICloudProvider(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3ICloudProvider(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4ICloudProvider(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod5ICloudProvider(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod6ICloudProvider(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod7ICloudProvider(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod8ICloudProvider(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ICLOUDPROVIDER(_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 GetProfiles(PRUint32 *profilesSize, ICloudProfile * **profiles) { return _to GetProfiles(profilesSize, profiles); } \
  NS_IMETHOD GetProfileNames(PRUint32 *profileNamesSize, PRUnichar ***profileNames) { return _to GetProfileNames(profileNamesSize, profileNames); } \
  NS_IMETHOD GetSupportedPropertyNames(PRUint32 *supportedPropertyNamesSize, PRUnichar ***supportedPropertyNames) { return _to GetSupportedPropertyNames(supportedPropertyNamesSize, supportedPropertyNames); } \
  NS_IMETHOD GetInternalAndReservedAttribute1ICloudProvider(PRUint32 *aInternalAndReservedAttribute1ICloudProvider) { return _to GetInternalAndReservedAttribute1ICloudProvider(aInternalAndReservedAttribute1ICloudProvider); } \
  NS_IMETHOD GetInternalAndReservedAttribute2ICloudProvider(PRUint32 *aInternalAndReservedAttribute2ICloudProvider) { return _to GetInternalAndReservedAttribute2ICloudProvider(aInternalAndReservedAttribute2ICloudProvider); } \
  NS_IMETHOD GetInternalAndReservedAttribute3ICloudProvider(PRUint32 *aInternalAndReservedAttribute3ICloudProvider) { return _to GetInternalAndReservedAttribute3ICloudProvider(aInternalAndReservedAttribute3ICloudProvider); } \
  NS_IMETHOD GetInternalAndReservedAttribute4ICloudProvider(PRUint32 *aInternalAndReservedAttribute4ICloudProvider) { return _to GetInternalAndReservedAttribute4ICloudProvider(aInternalAndReservedAttribute4ICloudProvider); } \
  NS_IMETHOD GetInternalAndReservedAttribute5ICloudProvider(PRUint32 *aInternalAndReservedAttribute5ICloudProvider) { return _to GetInternalAndReservedAttribute5ICloudProvider(aInternalAndReservedAttribute5ICloudProvider); } \
  NS_IMETHOD GetInternalAndReservedAttribute6ICloudProvider(PRUint32 *aInternalAndReservedAttribute6ICloudProvider) { return _to GetInternalAndReservedAttribute6ICloudProvider(aInternalAndReservedAttribute6ICloudProvider); } \
  NS_IMETHOD GetInternalAndReservedAttribute7ICloudProvider(PRUint32 *aInternalAndReservedAttribute7ICloudProvider) { return _to GetInternalAndReservedAttribute7ICloudProvider(aInternalAndReservedAttribute7ICloudProvider); } \
  NS_IMETHOD GetInternalAndReservedAttribute8ICloudProvider(PRUint32 *aInternalAndReservedAttribute8ICloudProvider) { return _to GetInternalAndReservedAttribute8ICloudProvider(aInternalAndReservedAttribute8ICloudProvider); } \
  NS_IMETHOD GetInternalAndReservedAttribute9ICloudProvider(PRUint32 *aInternalAndReservedAttribute9ICloudProvider) { return _to GetInternalAndReservedAttribute9ICloudProvider(aInternalAndReservedAttribute9ICloudProvider); } \
  NS_IMETHOD GetInternalAndReservedAttribute10ICloudProvider(PRUint32 *aInternalAndReservedAttribute10ICloudProvider) { return _to GetInternalAndReservedAttribute10ICloudProvider(aInternalAndReservedAttribute10ICloudProvider); } \
  NS_IMETHOD GetInternalAndReservedAttribute11ICloudProvider(PRUint32 *aInternalAndReservedAttribute11ICloudProvider) { return _to GetInternalAndReservedAttribute11ICloudProvider(aInternalAndReservedAttribute11ICloudProvider); } \
  NS_IMETHOD GetInternalAndReservedAttribute12ICloudProvider(PRUint32 *aInternalAndReservedAttribute12ICloudProvider) { return _to GetInternalAndReservedAttribute12ICloudProvider(aInternalAndReservedAttribute12ICloudProvider); } \
  NS_IMETHOD GetInternalAndReservedAttribute13ICloudProvider(PRUint32 *aInternalAndReservedAttribute13ICloudProvider) { return _to GetInternalAndReservedAttribute13ICloudProvider(aInternalAndReservedAttribute13ICloudProvider); } \
  NS_IMETHOD GetInternalAndReservedAttribute14ICloudProvider(PRUint32 *aInternalAndReservedAttribute14ICloudProvider) { return _to GetInternalAndReservedAttribute14ICloudProvider(aInternalAndReservedAttribute14ICloudProvider); } \
  NS_IMETHOD GetInternalAndReservedAttribute15ICloudProvider(PRUint32 *aInternalAndReservedAttribute15ICloudProvider) { return _to GetInternalAndReservedAttribute15ICloudProvider(aInternalAndReservedAttribute15ICloudProvider); } \
  NS_IMETHOD GetInternalAndReservedAttribute16ICloudProvider(PRUint32 *aInternalAndReservedAttribute16ICloudProvider) { return _to GetInternalAndReservedAttribute16ICloudProvider(aInternalAndReservedAttribute16ICloudProvider); } \
  NS_IMETHOD GetPropertyDescription(const PRUnichar *name, PRUnichar **description) { return _to GetPropertyDescription(name, description); } \
  NS_IMETHOD CreateProfile(const PRUnichar *profileName, PRUint32 namesSize, const PRUnichar **names, PRUint32 valuesSize, const PRUnichar **values) { return _to CreateProfile(profileName, namesSize, names, valuesSize, values); } \
  NS_IMETHOD ImportProfiles(void) { return _to ImportProfiles(); } \
  NS_IMETHOD RestoreProfiles(void) { return _to RestoreProfiles(); } \
  NS_IMETHOD SaveProfiles(void) { return _to SaveProfiles(); } \
  NS_IMETHOD GetProfileByName(const PRUnichar *profileName, ICloudProfile * *profile) { return _to GetProfileByName(profileName, profile); } \
  NS_IMETHOD PrepareUninstall(void) { return _to PrepareUninstall(); } \
  NS_IMETHOD InternalAndReservedMethod1ICloudProvider(void) { return _to InternalAndReservedMethod1ICloudProvider(); } \
  NS_IMETHOD InternalAndReservedMethod2ICloudProvider(void) { return _to InternalAndReservedMethod2ICloudProvider(); } \
  NS_IMETHOD InternalAndReservedMethod3ICloudProvider(void) { return _to InternalAndReservedMethod3ICloudProvider(); } \
  NS_IMETHOD InternalAndReservedMethod4ICloudProvider(void) { return _to InternalAndReservedMethod4ICloudProvider(); } \
  NS_IMETHOD InternalAndReservedMethod5ICloudProvider(void) { return _to InternalAndReservedMethod5ICloudProvider(); } \
  NS_IMETHOD InternalAndReservedMethod6ICloudProvider(void) { return _to InternalAndReservedMethod6ICloudProvider(); } \
  NS_IMETHOD InternalAndReservedMethod7ICloudProvider(void) { return _to InternalAndReservedMethod7ICloudProvider(); } \
  NS_IMETHOD InternalAndReservedMethod8ICloudProvider(void) { return _to InternalAndReservedMethod8ICloudProvider(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ICLOUDPROVIDER(_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 GetProfiles(PRUint32 *profilesSize, ICloudProfile * **profiles) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProfiles(profilesSize, profiles); } \
  NS_IMETHOD GetProfileNames(PRUint32 *profileNamesSize, PRUnichar ***profileNames) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProfileNames(profileNamesSize, profileNames); } \
  NS_IMETHOD GetSupportedPropertyNames(PRUint32 *supportedPropertyNamesSize, PRUnichar ***supportedPropertyNames) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSupportedPropertyNames(supportedPropertyNamesSize, supportedPropertyNames); } \
  NS_IMETHOD GetInternalAndReservedAttribute1ICloudProvider(PRUint32 *aInternalAndReservedAttribute1ICloudProvider) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1ICloudProvider(aInternalAndReservedAttribute1ICloudProvider); } \
  NS_IMETHOD GetInternalAndReservedAttribute2ICloudProvider(PRUint32 *aInternalAndReservedAttribute2ICloudProvider) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2ICloudProvider(aInternalAndReservedAttribute2ICloudProvider); } \
  NS_IMETHOD GetInternalAndReservedAttribute3ICloudProvider(PRUint32 *aInternalAndReservedAttribute3ICloudProvider) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3ICloudProvider(aInternalAndReservedAttribute3ICloudProvider); } \
  NS_IMETHOD GetInternalAndReservedAttribute4ICloudProvider(PRUint32 *aInternalAndReservedAttribute4ICloudProvider) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4ICloudProvider(aInternalAndReservedAttribute4ICloudProvider); } \
  NS_IMETHOD GetInternalAndReservedAttribute5ICloudProvider(PRUint32 *aInternalAndReservedAttribute5ICloudProvider) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5ICloudProvider(aInternalAndReservedAttribute5ICloudProvider); } \
  NS_IMETHOD GetInternalAndReservedAttribute6ICloudProvider(PRUint32 *aInternalAndReservedAttribute6ICloudProvider) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6ICloudProvider(aInternalAndReservedAttribute6ICloudProvider); } \
  NS_IMETHOD GetInternalAndReservedAttribute7ICloudProvider(PRUint32 *aInternalAndReservedAttribute7ICloudProvider) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7ICloudProvider(aInternalAndReservedAttribute7ICloudProvider); } \
  NS_IMETHOD GetInternalAndReservedAttribute8ICloudProvider(PRUint32 *aInternalAndReservedAttribute8ICloudProvider) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8ICloudProvider(aInternalAndReservedAttribute8ICloudProvider); } \
  NS_IMETHOD GetInternalAndReservedAttribute9ICloudProvider(PRUint32 *aInternalAndReservedAttribute9ICloudProvider) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute9ICloudProvider(aInternalAndReservedAttribute9ICloudProvider); } \
  NS_IMETHOD GetInternalAndReservedAttribute10ICloudProvider(PRUint32 *aInternalAndReservedAttribute10ICloudProvider) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute10ICloudProvider(aInternalAndReservedAttribute10ICloudProvider); } \
  NS_IMETHOD GetInternalAndReservedAttribute11ICloudProvider(PRUint32 *aInternalAndReservedAttribute11ICloudProvider) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute11ICloudProvider(aInternalAndReservedAttribute11ICloudProvider); } \
  NS_IMETHOD GetInternalAndReservedAttribute12ICloudProvider(PRUint32 *aInternalAndReservedAttribute12ICloudProvider) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute12ICloudProvider(aInternalAndReservedAttribute12ICloudProvider); } \
  NS_IMETHOD GetInternalAndReservedAttribute13ICloudProvider(PRUint32 *aInternalAndReservedAttribute13ICloudProvider) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute13ICloudProvider(aInternalAndReservedAttribute13ICloudProvider); } \
  NS_IMETHOD GetInternalAndReservedAttribute14ICloudProvider(PRUint32 *aInternalAndReservedAttribute14ICloudProvider) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute14ICloudProvider(aInternalAndReservedAttribute14ICloudProvider); } \
  NS_IMETHOD GetInternalAndReservedAttribute15ICloudProvider(PRUint32 *aInternalAndReservedAttribute15ICloudProvider) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute15ICloudProvider(aInternalAndReservedAttribute15ICloudProvider); } \
  NS_IMETHOD GetInternalAndReservedAttribute16ICloudProvider(PRUint32 *aInternalAndReservedAttribute16ICloudProvider) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute16ICloudProvider(aInternalAndReservedAttribute16ICloudProvider); } \
  NS_IMETHOD GetPropertyDescription(const PRUnichar *name, PRUnichar **description) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPropertyDescription(name, description); } \
  NS_IMETHOD CreateProfile(const PRUnichar *profileName, PRUint32 namesSize, const PRUnichar **names, PRUint32 valuesSize, const PRUnichar **values) { return !_to ? NS_ERROR_NULL_POINTER : _to->CreateProfile(profileName, namesSize, names, valuesSize, values); } \
  NS_IMETHOD ImportProfiles(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->ImportProfiles(); } \
  NS_IMETHOD RestoreProfiles(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->RestoreProfiles(); } \
  NS_IMETHOD SaveProfiles(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->SaveProfiles(); } \
  NS_IMETHOD GetProfileByName(const PRUnichar *profileName, ICloudProfile * *profile) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProfileByName(profileName, profile); } \
  NS_IMETHOD PrepareUninstall(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->PrepareUninstall(); } \
  NS_IMETHOD InternalAndReservedMethod1ICloudProvider(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1ICloudProvider(); } \
  NS_IMETHOD InternalAndReservedMethod2ICloudProvider(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2ICloudProvider(); } \
  NS_IMETHOD InternalAndReservedMethod3ICloudProvider(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3ICloudProvider(); } \
  NS_IMETHOD InternalAndReservedMethod4ICloudProvider(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4ICloudProvider(); } \
  NS_IMETHOD InternalAndReservedMethod5ICloudProvider(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod5ICloudProvider(); } \
  NS_IMETHOD InternalAndReservedMethod6ICloudProvider(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod6ICloudProvider(); } \
  NS_IMETHOD InternalAndReservedMethod7ICloudProvider(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod7ICloudProvider(); } \
  NS_IMETHOD InternalAndReservedMethod8ICloudProvider(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod8ICloudProvider(); } 

#define COM_FORWARD_ICloudProvider_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_ICloudProvider_GETTER_Name_TO_OBJ(obj) COM_FORWARD_ICloudProvider_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_ICloudProvider_GETTER_Name_TO_BASE(base) COM_FORWARD_ICloudProvider_GETTER_Name_TO (base::)
#define COM_FORWARD_ICloudProvider_GETTER_ShortName_TO(smth) NS_IMETHOD GetShortName (PRUnichar * * aShortName) { return smth GetShortName (aShortName); }
#define COM_FORWARD_ICloudProvider_GETTER_ShortName_TO_OBJ(obj) COM_FORWARD_ICloudProvider_GETTER_ShortName_TO ((obj)->)
#define COM_FORWARD_ICloudProvider_GETTER_ShortName_TO_BASE(base) COM_FORWARD_ICloudProvider_GETTER_ShortName_TO (base::)
#define COM_FORWARD_ICloudProvider_GETTER_Id_TO(smth) NS_IMETHOD GetId (PRUnichar * * aId) { return smth GetId (aId); }
#define COM_FORWARD_ICloudProvider_GETTER_Id_TO_OBJ(obj) COM_FORWARD_ICloudProvider_GETTER_Id_TO ((obj)->)
#define COM_FORWARD_ICloudProvider_GETTER_Id_TO_BASE(base) COM_FORWARD_ICloudProvider_GETTER_Id_TO (base::)
#define COM_FORWARD_ICloudProvider_GETTER_Profiles_TO(smth) NS_IMETHOD GetProfiles (PRUint32 * aProfilesSize, ICloudProfile * * * aProfiles) { return smth GetProfiles (aProfilesSize, aProfiles); }
#define COM_FORWARD_ICloudProvider_GETTER_Profiles_TO_OBJ(obj) COM_FORWARD_ICloudProvider_GETTER_Profiles_TO ((obj)->)
#define COM_FORWARD_ICloudProvider_GETTER_Profiles_TO_BASE(base) COM_FORWARD_ICloudProvider_GETTER_Profiles_TO (base::)
#define COM_FORWARD_ICloudProvider_GETTER_ProfileNames_TO(smth) NS_IMETHOD GetProfileNames (PRUint32 * aProfileNamesSize, PRUnichar * * * aProfileNames) { return smth GetProfileNames (aProfileNamesSize, aProfileNames); }
#define COM_FORWARD_ICloudProvider_GETTER_ProfileNames_TO_OBJ(obj) COM_FORWARD_ICloudProvider_GETTER_ProfileNames_TO ((obj)->)
#define COM_FORWARD_ICloudProvider_GETTER_ProfileNames_TO_BASE(base) COM_FORWARD_ICloudProvider_GETTER_ProfileNames_TO (base::)
#define COM_FORWARD_ICloudProvider_GETTER_SupportedPropertyNames_TO(smth) NS_IMETHOD GetSupportedPropertyNames (PRUint32 * aSupportedPropertyNamesSize, PRUnichar * * * aSupportedPropertyNames) { return smth GetSupportedPropertyNames (aSupportedPropertyNamesSize, aSupportedPropertyNames); }
#define COM_FORWARD_ICloudProvider_GETTER_SupportedPropertyNames_TO_OBJ(obj) COM_FORWARD_ICloudProvider_GETTER_SupportedPropertyNames_TO ((obj)->)
#define COM_FORWARD_ICloudProvider_GETTER_SupportedPropertyNames_TO_BASE(base) COM_FORWARD_ICloudProvider_GETTER_SupportedPropertyNames_TO (base::)
#define COM_FORWARD_ICloudProvider_GetPropertyDescription_TO(smth) NS_IMETHOD GetPropertyDescription (PRUnichar * aName, PRUnichar * * aDescription) { return smth GetPropertyDescription (aName, aDescription); }
#define COM_FORWARD_ICloudProvider_GetPropertyDescription_TO_OBJ(obj) COM_FORWARD_ICloudProvider_GetPropertyDescription_TO ((obj)->)
#define COM_FORWARD_ICloudProvider_GetPropertyDescription_TO_BASE(base) COM_FORWARD_ICloudProvider_GetPropertyDescription_TO (base::)
#define COM_FORWARD_ICloudProvider_CreateProfile_TO(smth) NS_IMETHOD CreateProfile (PRUnichar * aProfileName, PRUint32 aNamesSize, PRUnichar * * aNames, PRUint32 aValuesSize, PRUnichar * * aValues) { return smth CreateProfile (aProfileName, aNamesSize+++, aNames, aValuesSize, aValues); }
#define COM_FORWARD_ICloudProvider_CreateProfile_TO_OBJ(obj) COM_FORWARD_ICloudProvider_CreateProfile_TO ((obj)->)
#define COM_FORWARD_ICloudProvider_CreateProfile_TO_BASE(base) COM_FORWARD_ICloudProvider_CreateProfile_TO (base::)
#define COM_FORWARD_ICloudProvider_ImportProfiles_TO(smth) NS_IMETHOD ImportProfiles() { return smth ImportProfiles(); }
#define COM_FORWARD_ICloudProvider_ImportProfiles_TO_OBJ(obj) COM_FORWARD_ICloudProvider_ImportProfiles_TO ((obj)->)
#define COM_FORWARD_ICloudProvider_ImportProfiles_TO_BASE(base) COM_FORWARD_ICloudProvider_ImportProfiles_TO (base::)
#define COM_FORWARD_ICloudProvider_RestoreProfiles_TO(smth) NS_IMETHOD RestoreProfiles() { return smth RestoreProfiles(); }
#define COM_FORWARD_ICloudProvider_RestoreProfiles_TO_OBJ(obj) COM_FORWARD_ICloudProvider_RestoreProfiles_TO ((obj)->)
#define COM_FORWARD_ICloudProvider_RestoreProfiles_TO_BASE(base) COM_FORWARD_ICloudProvider_RestoreProfiles_TO (base::)
#define COM_FORWARD_ICloudProvider_SaveProfiles_TO(smth) NS_IMETHOD SaveProfiles() { return smth SaveProfiles(); }
#define COM_FORWARD_ICloudProvider_SaveProfiles_TO_OBJ(obj) COM_FORWARD_ICloudProvider_SaveProfiles_TO ((obj)->)
#define COM_FORWARD_ICloudProvider_SaveProfiles_TO_BASE(base) COM_FORWARD_ICloudProvider_SaveProfiles_TO (base::)
#define COM_FORWARD_ICloudProvider_GetProfileByName_TO(smth) NS_IMETHOD GetProfileByName (PRUnichar * aProfileName, ICloudProfile * * aProfile) { return smth GetProfileByName (aProfileName, aProfile); }
#define COM_FORWARD_ICloudProvider_GetProfileByName_TO_OBJ(obj) COM_FORWARD_ICloudProvider_GetProfileByName_TO ((obj)->)
#define COM_FORWARD_ICloudProvider_GetProfileByName_TO_BASE(base) COM_FORWARD_ICloudProvider_GetProfileByName_TO (base::)
#define COM_FORWARD_ICloudProvider_PrepareUninstall_TO(smth) NS_IMETHOD PrepareUninstall() { return smth PrepareUninstall(); }
#define COM_FORWARD_ICloudProvider_PrepareUninstall_TO_OBJ(obj) COM_FORWARD_ICloudProvider_PrepareUninstall_TO ((obj)->)
#define COM_FORWARD_ICloudProvider_PrepareUninstall_TO_BASE(base) COM_FORWARD_ICloudProvider_PrepareUninstall_TO (base::)
#define COM_FORWARD_ICloudProvider_TO(smth) NS_FORWARD_ICLOUDPROVIDER (smth)
#define COM_FORWARD_ICloudProvider_TO_OBJ(obj) COM_FORWARD_ICloudProvider_TO ((obj)->)
#define COM_FORWARD_ICloudProvider_TO_BASE(base) COM_FORWARD_ICloudProvider_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ICloudProvider;

/* starting interface:    ICloudProviderManager */
#define ICLOUDPROVIDERMANAGER_IID_STR "9128800f-762e-4120-871c-a2014234a607"

#define ICLOUDPROVIDERMANAGER_IID \
  {0x9128800f, 0x762e, 0x4120, \
    { 0x87, 0x1c, 0xa2, 0x01, 0x42, 0x34, 0xa6, 0x07 }}

class NS_NO_VTABLE ICloudProviderManager : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ICLOUDPROVIDERMANAGER_IID)

  /* void getProviders (out unsigned long providersSize, [array, size_is (providersSize), retval] out ICloudProvider providers); */
  NS_IMETHOD GetProviders(PRUint32 *providersSize, ICloudProvider * **providers) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute1ICloudProviderManager; */
  NS_IMETHOD GetInternalAndReservedAttribute1ICloudProviderManager(PRUint32 *aInternalAndReservedAttribute1ICloudProviderManager) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute2ICloudProviderManager; */
  NS_IMETHOD GetInternalAndReservedAttribute2ICloudProviderManager(PRUint32 *aInternalAndReservedAttribute2ICloudProviderManager) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute3ICloudProviderManager; */
  NS_IMETHOD GetInternalAndReservedAttribute3ICloudProviderManager(PRUint32 *aInternalAndReservedAttribute3ICloudProviderManager) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute4ICloudProviderManager; */
  NS_IMETHOD GetInternalAndReservedAttribute4ICloudProviderManager(PRUint32 *aInternalAndReservedAttribute4ICloudProviderManager) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute5ICloudProviderManager; */
  NS_IMETHOD GetInternalAndReservedAttribute5ICloudProviderManager(PRUint32 *aInternalAndReservedAttribute5ICloudProviderManager) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute6ICloudProviderManager; */
  NS_IMETHOD GetInternalAndReservedAttribute6ICloudProviderManager(PRUint32 *aInternalAndReservedAttribute6ICloudProviderManager) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute7ICloudProviderManager; */
  NS_IMETHOD GetInternalAndReservedAttribute7ICloudProviderManager(PRUint32 *aInternalAndReservedAttribute7ICloudProviderManager) = 0;

  /* readonly attribute unsigned long InternalAndReservedAttribute8ICloudProviderManager; */
  NS_IMETHOD GetInternalAndReservedAttribute8ICloudProviderManager(PRUint32 *aInternalAndReservedAttribute8ICloudProviderManager) = 0;

  /* void getProviderById (in wstring providerId, [retval] out ICloudProvider provider); */
  NS_IMETHOD GetProviderById(const PRUnichar *providerId, ICloudProvider * *provider) = 0;

  /* void getProviderByShortName (in wstring providerName, [retval] out ICloudProvider provider); */
  NS_IMETHOD GetProviderByShortName(const PRUnichar *providerName, ICloudProvider * *provider) = 0;

  /* void getProviderByName (in wstring providerName, [retval] out ICloudProvider provider); */
  NS_IMETHOD GetProviderByName(const PRUnichar *providerName, ICloudProvider * *provider) = 0;

  /* void InternalAndReservedMethod1ICloudProviderManager (); */
  NS_IMETHOD InternalAndReservedMethod1ICloudProviderManager(void) = 0;

  /* void InternalAndReservedMethod2ICloudProviderManager (); */
  NS_IMETHOD InternalAndReservedMethod2ICloudProviderManager(void) = 0;

  /* void InternalAndReservedMethod3ICloudProviderManager (); */
  NS_IMETHOD InternalAndReservedMethod3ICloudProviderManager(void) = 0;

  /* void InternalAndReservedMethod4ICloudProviderManager (); */
  NS_IMETHOD InternalAndReservedMethod4ICloudProviderManager(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ICLOUDPROVIDERMANAGER \
  NS_IMETHOD GetProviders(PRUint32 *providersSize, ICloudProvider * **providers) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute1ICloudProviderManager(PRUint32 *aInternalAndReservedAttribute1ICloudProviderManager) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute2ICloudProviderManager(PRUint32 *aInternalAndReservedAttribute2ICloudProviderManager) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute3ICloudProviderManager(PRUint32 *aInternalAndReservedAttribute3ICloudProviderManager) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute4ICloudProviderManager(PRUint32 *aInternalAndReservedAttribute4ICloudProviderManager) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute5ICloudProviderManager(PRUint32 *aInternalAndReservedAttribute5ICloudProviderManager) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute6ICloudProviderManager(PRUint32 *aInternalAndReservedAttribute6ICloudProviderManager) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute7ICloudProviderManager(PRUint32 *aInternalAndReservedAttribute7ICloudProviderManager) NS_OVERRIDE; \
  NS_IMETHOD GetInternalAndReservedAttribute8ICloudProviderManager(PRUint32 *aInternalAndReservedAttribute8ICloudProviderManager) NS_OVERRIDE; \
  NS_IMETHOD GetProviderById(const PRUnichar *providerId, ICloudProvider * *provider) NS_OVERRIDE; \
  NS_IMETHOD GetProviderByShortName(const PRUnichar *providerName, ICloudProvider * *provider) NS_OVERRIDE; \
  NS_IMETHOD GetProviderByName(const PRUnichar *providerName, ICloudProvider * *provider) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod1ICloudProviderManager(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod2ICloudProviderManager(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod3ICloudProviderManager(void) NS_OVERRIDE; \
  NS_IMETHOD InternalAndReservedMethod4ICloudProviderManager(void) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ICLOUDPROVIDERMANAGER(_to) \
  NS_IMETHOD GetProviders(PRUint32 *providersSize, ICloudProvider * **providers) { return _to GetProviders(providersSize, providers); } \
  NS_IMETHOD GetInternalAndReservedAttribute1ICloudProviderManager(PRUint32 *aInternalAndReservedAttribute1ICloudProviderManager) { return _to GetInternalAndReservedAttribute1ICloudProviderManager(aInternalAndReservedAttribute1ICloudProviderManager); } \
  NS_IMETHOD GetInternalAndReservedAttribute2ICloudProviderManager(PRUint32 *aInternalAndReservedAttribute2ICloudProviderManager) { return _to GetInternalAndReservedAttribute2ICloudProviderManager(aInternalAndReservedAttribute2ICloudProviderManager); } \
  NS_IMETHOD GetInternalAndReservedAttribute3ICloudProviderManager(PRUint32 *aInternalAndReservedAttribute3ICloudProviderManager) { return _to GetInternalAndReservedAttribute3ICloudProviderManager(aInternalAndReservedAttribute3ICloudProviderManager); } \
  NS_IMETHOD GetInternalAndReservedAttribute4ICloudProviderManager(PRUint32 *aInternalAndReservedAttribute4ICloudProviderManager) { return _to GetInternalAndReservedAttribute4ICloudProviderManager(aInternalAndReservedAttribute4ICloudProviderManager); } \
  NS_IMETHOD GetInternalAndReservedAttribute5ICloudProviderManager(PRUint32 *aInternalAndReservedAttribute5ICloudProviderManager) { return _to GetInternalAndReservedAttribute5ICloudProviderManager(aInternalAndReservedAttribute5ICloudProviderManager); } \
  NS_IMETHOD GetInternalAndReservedAttribute6ICloudProviderManager(PRUint32 *aInternalAndReservedAttribute6ICloudProviderManager) { return _to GetInternalAndReservedAttribute6ICloudProviderManager(aInternalAndReservedAttribute6ICloudProviderManager); } \
  NS_IMETHOD GetInternalAndReservedAttribute7ICloudProviderManager(PRUint32 *aInternalAndReservedAttribute7ICloudProviderManager) { return _to GetInternalAndReservedAttribute7ICloudProviderManager(aInternalAndReservedAttribute7ICloudProviderManager); } \
  NS_IMETHOD GetInternalAndReservedAttribute8ICloudProviderManager(PRUint32 *aInternalAndReservedAttribute8ICloudProviderManager) { return _to GetInternalAndReservedAttribute8ICloudProviderManager(aInternalAndReservedAttribute8ICloudProviderManager); } \
  NS_IMETHOD GetProviderById(const PRUnichar *providerId, ICloudProvider * *provider) { return _to GetProviderById(providerId, provider); } \
  NS_IMETHOD GetProviderByShortName(const PRUnichar *providerName, ICloudProvider * *provider) { return _to GetProviderByShortName(providerName, provider); } \
  NS_IMETHOD GetProviderByName(const PRUnichar *providerName, ICloudProvider * *provider) { return _to GetProviderByName(providerName, provider); } \
  NS_IMETHOD InternalAndReservedMethod1ICloudProviderManager(void) { return _to InternalAndReservedMethod1ICloudProviderManager(); } \
  NS_IMETHOD InternalAndReservedMethod2ICloudProviderManager(void) { return _to InternalAndReservedMethod2ICloudProviderManager(); } \
  NS_IMETHOD InternalAndReservedMethod3ICloudProviderManager(void) { return _to InternalAndReservedMethod3ICloudProviderManager(); } \
  NS_IMETHOD InternalAndReservedMethod4ICloudProviderManager(void) { return _to InternalAndReservedMethod4ICloudProviderManager(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ICLOUDPROVIDERMANAGER(_to) \
  NS_IMETHOD GetProviders(PRUint32 *providersSize, ICloudProvider * **providers) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProviders(providersSize, providers); } \
  NS_IMETHOD GetInternalAndReservedAttribute1ICloudProviderManager(PRUint32 *aInternalAndReservedAttribute1ICloudProviderManager) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute1ICloudProviderManager(aInternalAndReservedAttribute1ICloudProviderManager); } \
  NS_IMETHOD GetInternalAndReservedAttribute2ICloudProviderManager(PRUint32 *aInternalAndReservedAttribute2ICloudProviderManager) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute2ICloudProviderManager(aInternalAndReservedAttribute2ICloudProviderManager); } \
  NS_IMETHOD GetInternalAndReservedAttribute3ICloudProviderManager(PRUint32 *aInternalAndReservedAttribute3ICloudProviderManager) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute3ICloudProviderManager(aInternalAndReservedAttribute3ICloudProviderManager); } \
  NS_IMETHOD GetInternalAndReservedAttribute4ICloudProviderManager(PRUint32 *aInternalAndReservedAttribute4ICloudProviderManager) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute4ICloudProviderManager(aInternalAndReservedAttribute4ICloudProviderManager); } \
  NS_IMETHOD GetInternalAndReservedAttribute5ICloudProviderManager(PRUint32 *aInternalAndReservedAttribute5ICloudProviderManager) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute5ICloudProviderManager(aInternalAndReservedAttribute5ICloudProviderManager); } \
  NS_IMETHOD GetInternalAndReservedAttribute6ICloudProviderManager(PRUint32 *aInternalAndReservedAttribute6ICloudProviderManager) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute6ICloudProviderManager(aInternalAndReservedAttribute6ICloudProviderManager); } \
  NS_IMETHOD GetInternalAndReservedAttribute7ICloudProviderManager(PRUint32 *aInternalAndReservedAttribute7ICloudProviderManager) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute7ICloudProviderManager(aInternalAndReservedAttribute7ICloudProviderManager); } \
  NS_IMETHOD GetInternalAndReservedAttribute8ICloudProviderManager(PRUint32 *aInternalAndReservedAttribute8ICloudProviderManager) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInternalAndReservedAttribute8ICloudProviderManager(aInternalAndReservedAttribute8ICloudProviderManager); } \
  NS_IMETHOD GetProviderById(const PRUnichar *providerId, ICloudProvider * *provider) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProviderById(providerId, provider); } \
  NS_IMETHOD GetProviderByShortName(const PRUnichar *providerName, ICloudProvider * *provider) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProviderByShortName(providerName, provider); } \
  NS_IMETHOD GetProviderByName(const PRUnichar *providerName, ICloudProvider * *provider) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProviderByName(providerName, provider); } \
  NS_IMETHOD InternalAndReservedMethod1ICloudProviderManager(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod1ICloudProviderManager(); } \
  NS_IMETHOD InternalAndReservedMethod2ICloudProviderManager(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod2ICloudProviderManager(); } \
  NS_IMETHOD InternalAndReservedMethod3ICloudProviderManager(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod3ICloudProviderManager(); } \
  NS_IMETHOD InternalAndReservedMethod4ICloudProviderManager(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->InternalAndReservedMethod4ICloudProviderManager(); } 

#define COM_FORWARD_ICloudProviderManager_GETTER_Providers_TO(smth) NS_IMETHOD GetProviders (PRUint32 * aProvidersSize, ICloudProvider * * * aProviders) { return smth GetProviders (aProvidersSize, aProviders); }
#define COM_FORWARD_ICloudProviderManager_GETTER_Providers_TO_OBJ(obj) COM_FORWARD_ICloudProviderManager_GETTER_Providers_TO ((obj)->)
#define COM_FORWARD_ICloudProviderManager_GETTER_Providers_TO_BASE(base) COM_FORWARD_ICloudProviderManager_GETTER_Providers_TO (base::)
#define COM_FORWARD_ICloudProviderManager_GetProviderById_TO(smth) NS_IMETHOD GetProviderById (PRUnichar * aProviderId, ICloudProvider * * aProvider) { return smth GetProviderById (aProviderId, aProvider); }
#define COM_FORWARD_ICloudProviderManager_GetProviderById_TO_OBJ(obj) COM_FORWARD_ICloudProviderManager_GetProviderById_TO ((obj)->)
#define COM_FORWARD_ICloudProviderManager_GetProviderById_TO_BASE(base) COM_FORWARD_ICloudProviderManager_GetProviderById_TO (base::)
#define COM_FORWARD_ICloudProviderManager_GetProviderByShortName_TO(smth) NS_IMETHOD GetProviderByShortName (PRUnichar * aProviderName, ICloudProvider * * aProvider) { return smth GetProviderByShortName (aProviderName, aProvider); }
#define COM_FORWARD_ICloudProviderManager_GetProviderByShortName_TO_OBJ(obj) COM_FORWARD_ICloudProviderManager_GetProviderByShortName_TO ((obj)->)
#define COM_FORWARD_ICloudProviderManager_GetProviderByShortName_TO_BASE(base) COM_FORWARD_ICloudProviderManager_GetProviderByShortName_TO (base::)
#define COM_FORWARD_ICloudProviderManager_GetProviderByName_TO(smth) NS_IMETHOD GetProviderByName (PRUnichar * aProviderName, ICloudProvider * * aProvider) { return smth GetProviderByName (aProviderName, aProvider); }
#define COM_FORWARD_ICloudProviderManager_GetProviderByName_TO_OBJ(obj) COM_FORWARD_ICloudProviderManager_GetProviderByName_TO ((obj)->)
#define COM_FORWARD_ICloudProviderManager_GetProviderByName_TO_BASE(base) COM_FORWARD_ICloudProviderManager_GetProviderByName_TO (base::)
#define COM_FORWARD_ICloudProviderManager_TO(smth) NS_FORWARD_ICLOUDPROVIDERMANAGER (smth)
#define COM_FORWARD_ICloudProviderManager_TO_OBJ(obj) COM_FORWARD_ICloudProviderManager_TO ((obj)->)
#define COM_FORWARD_ICloudProviderManager_TO_BASE(base) COM_FORWARD_ICloudProviderManager_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ICloudProviderManager;

/* starting interface:    ICloudProviderListChangedEvent */
#define ICLOUDPROVIDERLISTCHANGEDEVENT_IID_STR "a54d9cca-f23f-11ea-9755-efd0f1f792d9"

#define ICLOUDPROVIDERLISTCHANGEDEVENT_IID \
  {0xa54d9cca, 0xf23f, 0x11ea, \
    { 0x97, 0x55, 0xef, 0xd0, 0xf1, 0xf7, 0x92, 0xd9 }}

class NS_NO_VTABLE ICloudProviderListChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ICLOUDPROVIDERLISTCHANGEDEVENT_IID)

  /* readonly attribute boolean registered; */
  NS_IMETHOD GetRegistered(PRBool *aRegistered) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ICLOUDPROVIDERLISTCHANGEDEVENT \
  NS_IMETHOD GetRegistered(PRBool *aRegistered) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ICLOUDPROVIDERLISTCHANGEDEVENT(_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_ICLOUDPROVIDERLISTCHANGEDEVENT(_to) \
  NS_IMETHOD GetRegistered(PRBool *aRegistered) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRegistered(aRegistered); } 

#define COM_FORWARD_ICloudProviderListChangedEvent_GETTER_Registered_TO(smth) NS_IMETHOD GetRegistered (PRBool * aRegistered) { return smth GetRegistered (aRegistered); }
#define COM_FORWARD_ICloudProviderListChangedEvent_GETTER_Registered_TO_OBJ(obj) COM_FORWARD_ICloudProviderListChangedEvent_GETTER_Registered_TO ((obj)->)
#define COM_FORWARD_ICloudProviderListChangedEvent_GETTER_Registered_TO_BASE(base) COM_FORWARD_ICloudProviderListChangedEvent_GETTER_Registered_TO (base::)
#define COM_FORWARD_ICloudProviderListChangedEvent_TO(smth) NS_FORWARD_ICLOUDPROVIDERLISTCHANGEDEVENT (smth)
#define COM_FORWARD_ICloudProviderListChangedEvent_TO_OBJ(obj) COM_FORWARD_ICloudProviderListChangedEvent_TO ((obj)->)
#define COM_FORWARD_ICloudProviderListChangedEvent_TO_BASE(base) COM_FORWARD_ICloudProviderListChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ICloudProviderListChangedEvent;

/* starting interface:    ICloudProviderRegisteredEvent */
#define ICLOUDPROVIDERREGISTEREDEVENT_IID_STR "e28e227a-f231-11ea-9641-9b500c6d5365"

#define ICLOUDPROVIDERREGISTEREDEVENT_IID \
  {0xe28e227a, 0xf231, 0x11ea, \
    { 0x96, 0x41, 0x9b, 0x50, 0x0c, 0x6d, 0x53, 0x65 }}

class NS_NO_VTABLE ICloudProviderRegisteredEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ICLOUDPROVIDERREGISTEREDEVENT_IID)

  /* readonly attribute wstring id; */
  NS_IMETHOD GetId(PRUnichar **aId) = 0;

  /* readonly attribute boolean registered; */
  NS_IMETHOD GetRegistered(PRBool *aRegistered) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ICLOUDPROVIDERREGISTEREDEVENT \
  NS_IMETHOD GetId(PRUnichar **aId) NS_OVERRIDE; \
  NS_IMETHOD GetRegistered(PRBool *aRegistered) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ICLOUDPROVIDERREGISTEREDEVENT(_to) \
  NS_IMETHOD GetId(PRUnichar **aId) { return _to GetId(aId); } \
  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_ICLOUDPROVIDERREGISTEREDEVENT(_to) \
  NS_IMETHOD GetId(PRUnichar **aId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetId(aId); } \
  NS_IMETHOD GetRegistered(PRBool *aRegistered) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRegistered(aRegistered); } 

#define COM_FORWARD_ICloudProviderRegisteredEvent_GETTER_Id_TO(smth) NS_IMETHOD GetId (PRUnichar * * aId) { return smth GetId (aId); }
#define COM_FORWARD_ICloudProviderRegisteredEvent_GETTER_Id_TO_OBJ(obj) COM_FORWARD_ICloudProviderRegisteredEvent_GETTER_Id_TO ((obj)->)
#define COM_FORWARD_ICloudProviderRegisteredEvent_GETTER_Id_TO_BASE(base) COM_FORWARD_ICloudProviderRegisteredEvent_GETTER_Id_TO (base::)
#define COM_FORWARD_ICloudProviderRegisteredEvent_GETTER_Registered_TO(smth) NS_IMETHOD GetRegistered (PRBool * aRegistered) { return smth GetRegistered (aRegistered); }
#define COM_FORWARD_ICloudProviderRegisteredEvent_GETTER_Registered_TO_OBJ(obj) COM_FORWARD_ICloudProviderRegisteredEvent_GETTER_Registered_TO ((obj)->)
#define COM_FORWARD_ICloudProviderRegisteredEvent_GETTER_Registered_TO_BASE(base) COM_FORWARD_ICloudProviderRegisteredEvent_GETTER_Registered_TO (base::)
#define COM_FORWARD_ICloudProviderRegisteredEvent_TO(smth) NS_FORWARD_ICLOUDPROVIDERREGISTEREDEVENT (smth)
#define COM_FORWARD_ICloudProviderRegisteredEvent_TO_OBJ(obj) COM_FORWARD_ICloudProviderRegisteredEvent_TO ((obj)->)
#define COM_FORWARD_ICloudProviderRegisteredEvent_TO_BASE(base) COM_FORWARD_ICloudProviderRegisteredEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ICloudProviderRegisteredEvent;

/* starting interface:    ICloudProviderUninstallEvent */
#define ICLOUDPROVIDERUNINSTALLEVENT_IID_STR "f01f1066-f231-11ea-8eee-33bb2afb0b6e"

#define ICLOUDPROVIDERUNINSTALLEVENT_IID \
  {0xf01f1066, 0xf231, 0x11ea, \
    { 0x8e, 0xee, 0x33, 0xbb, 0x2a, 0xfb, 0x0b, 0x6e }}

class NS_NO_VTABLE ICloudProviderUninstallEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ICLOUDPROVIDERUNINSTALLEVENT_IID)

  /* readonly attribute wstring id; */
  NS_IMETHOD GetId(PRUnichar **aId) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ICLOUDPROVIDERUNINSTALLEVENT \
  NS_IMETHOD GetId(PRUnichar **aId) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ICLOUDPROVIDERUNINSTALLEVENT(_to) \
  NS_IMETHOD GetId(PRUnichar **aId) { return _to GetId(aId); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ICLOUDPROVIDERUNINSTALLEVENT(_to) \
  NS_IMETHOD GetId(PRUnichar **aId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetId(aId); } 

#define COM_FORWARD_ICloudProviderUninstallEvent_GETTER_Id_TO(smth) NS_IMETHOD GetId (PRUnichar * * aId) { return smth GetId (aId); }
#define COM_FORWARD_ICloudProviderUninstallEvent_GETTER_Id_TO_OBJ(obj) COM_FORWARD_ICloudProviderUninstallEvent_GETTER_Id_TO ((obj)->)
#define COM_FORWARD_ICloudProviderUninstallEvent_GETTER_Id_TO_BASE(base) COM_FORWARD_ICloudProviderUninstallEvent_GETTER_Id_TO (base::)
#define COM_FORWARD_ICloudProviderUninstallEvent_TO(smth) NS_FORWARD_ICLOUDPROVIDERUNINSTALLEVENT (smth)
#define COM_FORWARD_ICloudProviderUninstallEvent_TO_OBJ(obj) COM_FORWARD_ICloudProviderUninstallEvent_TO ((obj)->)
#define COM_FORWARD_ICloudProviderUninstallEvent_TO_BASE(base) COM_FORWARD_ICloudProviderUninstallEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ICloudProviderUninstallEvent;

/* starting interface:    ICloudProfileRegisteredEvent */
#define ICLOUDPROFILEREGISTEREDEVENT_IID_STR "6a5e65ba-eeb9-11ea-ae38-73242bc0f172"

#define ICLOUDPROFILEREGISTEREDEVENT_IID \
  {0x6a5e65ba, 0xeeb9, 0x11ea, \
    { 0xae, 0x38, 0x73, 0x24, 0x2b, 0xc0, 0xf1, 0x72 }}

class NS_NO_VTABLE ICloudProfileRegisteredEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ICLOUDPROFILEREGISTEREDEVENT_IID)

  /* readonly attribute wstring providerId; */
  NS_IMETHOD GetProviderId(PRUnichar **aProviderId) = 0;

  /* readonly attribute wstring name; */
  NS_IMETHOD GetName(PRUnichar **aName) = 0;

  /* readonly attribute boolean registered; */
  NS_IMETHOD GetRegistered(PRBool *aRegistered) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ICLOUDPROFILEREGISTEREDEVENT \
  NS_IMETHOD GetProviderId(PRUnichar **aProviderId) NS_OVERRIDE; \
  NS_IMETHOD GetName(PRUnichar **aName) NS_OVERRIDE; \
  NS_IMETHOD GetRegistered(PRBool *aRegistered) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ICLOUDPROFILEREGISTEREDEVENT(_to) \
  NS_IMETHOD GetProviderId(PRUnichar **aProviderId) { return _to GetProviderId(aProviderId); } \
  NS_IMETHOD GetName(PRUnichar **aName) { return _to GetName(aName); } \
  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_ICLOUDPROFILEREGISTEREDEVENT(_to) \
  NS_IMETHOD GetProviderId(PRUnichar **aProviderId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProviderId(aProviderId); } \
  NS_IMETHOD GetName(PRUnichar **aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
  NS_IMETHOD GetRegistered(PRBool *aRegistered) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRegistered(aRegistered); } 

#define COM_FORWARD_ICloudProfileRegisteredEvent_GETTER_ProviderId_TO(smth) NS_IMETHOD GetProviderId (PRUnichar * * aProviderId) { return smth GetProviderId (aProviderId); }
#define COM_FORWARD_ICloudProfileRegisteredEvent_GETTER_ProviderId_TO_OBJ(obj) COM_FORWARD_ICloudProfileRegisteredEvent_GETTER_ProviderId_TO ((obj)->)
#define COM_FORWARD_ICloudProfileRegisteredEvent_GETTER_ProviderId_TO_BASE(base) COM_FORWARD_ICloudProfileRegisteredEvent_GETTER_ProviderId_TO (base::)
#define COM_FORWARD_ICloudProfileRegisteredEvent_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_ICloudProfileRegisteredEvent_GETTER_Name_TO_OBJ(obj) COM_FORWARD_ICloudProfileRegisteredEvent_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_ICloudProfileRegisteredEvent_GETTER_Name_TO_BASE(base) COM_FORWARD_ICloudProfileRegisteredEvent_GETTER_Name_TO (base::)
#define COM_FORWARD_ICloudProfileRegisteredEvent_GETTER_Registered_TO(smth) NS_IMETHOD GetRegistered (PRBool * aRegistered) { return smth GetRegistered (aRegistered); }
#define COM_FORWARD_ICloudProfileRegisteredEvent_GETTER_Registered_TO_OBJ(obj) COM_FORWARD_ICloudProfileRegisteredEvent_GETTER_Registered_TO ((obj)->)
#define COM_FORWARD_ICloudProfileRegisteredEvent_GETTER_Registered_TO_BASE(base) COM_FORWARD_ICloudProfileRegisteredEvent_GETTER_Registered_TO (base::)
#define COM_FORWARD_ICloudProfileRegisteredEvent_TO(smth) NS_FORWARD_ICLOUDPROFILEREGISTEREDEVENT (smth)
#define COM_FORWARD_ICloudProfileRegisteredEvent_TO_OBJ(obj) COM_FORWARD_ICloudProfileRegisteredEvent_TO ((obj)->)
#define COM_FORWARD_ICloudProfileRegisteredEvent_TO_BASE(base) COM_FORWARD_ICloudProfileRegisteredEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ICloudProfileRegisteredEvent;

/* starting interface:    ICloudProfileChangedEvent */
#define ICLOUDPROFILECHANGEDEVENT_IID_STR "83795a4c-fce1-11ea-8a17-636028ae0be2"

#define ICLOUDPROFILECHANGEDEVENT_IID \
  {0x83795a4c, 0xfce1, 0x11ea, \
    { 0x8a, 0x17, 0x63, 0x60, 0x28, 0xae, 0x0b, 0xe2 }}

class NS_NO_VTABLE ICloudProfileChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ICLOUDPROFILECHANGEDEVENT_IID)

  /* readonly attribute wstring providerId; */
  NS_IMETHOD GetProviderId(PRUnichar **aProviderId) = 0;

  /* readonly attribute wstring name; */
  NS_IMETHOD GetName(PRUnichar **aName) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ICLOUDPROFILECHANGEDEVENT \
  NS_IMETHOD GetProviderId(PRUnichar **aProviderId) NS_OVERRIDE; \
  NS_IMETHOD GetName(PRUnichar **aName) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ICLOUDPROFILECHANGEDEVENT(_to) \
  NS_IMETHOD GetProviderId(PRUnichar **aProviderId) { return _to GetProviderId(aProviderId); } \
  NS_IMETHOD GetName(PRUnichar **aName) { return _to GetName(aName); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ICLOUDPROFILECHANGEDEVENT(_to) \
  NS_IMETHOD GetProviderId(PRUnichar **aProviderId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProviderId(aProviderId); } \
  NS_IMETHOD GetName(PRUnichar **aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } 

#define COM_FORWARD_ICloudProfileChangedEvent_GETTER_ProviderId_TO(smth) NS_IMETHOD GetProviderId (PRUnichar * * aProviderId) { return smth GetProviderId (aProviderId); }
#define COM_FORWARD_ICloudProfileChangedEvent_GETTER_ProviderId_TO_OBJ(obj) COM_FORWARD_ICloudProfileChangedEvent_GETTER_ProviderId_TO ((obj)->)
#define COM_FORWARD_ICloudProfileChangedEvent_GETTER_ProviderId_TO_BASE(base) COM_FORWARD_ICloudProfileChangedEvent_GETTER_ProviderId_TO (base::)
#define COM_FORWARD_ICloudProfileChangedEvent_GETTER_Name_TO(smth) NS_IMETHOD GetName (PRUnichar * * aName) { return smth GetName (aName); }
#define COM_FORWARD_ICloudProfileChangedEvent_GETTER_Name_TO_OBJ(obj) COM_FORWARD_ICloudProfileChangedEvent_GETTER_Name_TO ((obj)->)
#define COM_FORWARD_ICloudProfileChangedEvent_GETTER_Name_TO_BASE(base) COM_FORWARD_ICloudProfileChangedEvent_GETTER_Name_TO (base::)
#define COM_FORWARD_ICloudProfileChangedEvent_TO(smth) NS_FORWARD_ICLOUDPROFILECHANGEDEVENT (smth)
#define COM_FORWARD_ICloudProfileChangedEvent_TO_OBJ(obj) COM_FORWARD_ICloudProfileChangedEvent_TO ((obj)->)
#define COM_FORWARD_ICloudProfileChangedEvent_TO_BASE(base) COM_FORWARD_ICloudProfileChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ICloudProfileChangedEvent;

/* starting interface:    ILanguageChangedEvent */
#define ILANGUAGECHANGEDEVENT_IID_STR "28935887-782b-4c94-8410-ce557b9cfe44"

#define ILANGUAGECHANGEDEVENT_IID \
  {0x28935887, 0x782b, 0x4c94, \
    { 0x84, 0x10, 0xce, 0x55, 0x7b, 0x9c, 0xfe, 0x44 }}

class NS_NO_VTABLE ILanguageChangedEvent : public IEvent {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(ILANGUAGECHANGEDEVENT_IID)

  /* readonly attribute wstring languageId; */
  NS_IMETHOD GetLanguageId(PRUnichar **aLanguageId) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_ILANGUAGECHANGEDEVENT \
  NS_IMETHOD GetLanguageId(PRUnichar **aLanguageId) NS_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_ILANGUAGECHANGEDEVENT(_to) \
  NS_IMETHOD GetLanguageId(PRUnichar **aLanguageId) { return _to GetLanguageId(aLanguageId); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_ILANGUAGECHANGEDEVENT(_to) \
  NS_IMETHOD GetLanguageId(PRUnichar **aLanguageId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLanguageId(aLanguageId); } 

#define COM_FORWARD_ILanguageChangedEvent_GETTER_LanguageId_TO(smth) NS_IMETHOD GetLanguageId (PRUnichar * * aLanguageId) { return smth GetLanguageId (aLanguageId); }
#define COM_FORWARD_ILanguageChangedEvent_GETTER_LanguageId_TO_OBJ(obj) COM_FORWARD_ILanguageChangedEvent_GETTER_LanguageId_TO ((obj)->)
#define COM_FORWARD_ILanguageChangedEvent_GETTER_LanguageId_TO_BASE(base) COM_FORWARD_ILanguageChangedEvent_GETTER_LanguageId_TO (base::)
#define COM_FORWARD_ILanguageChangedEvent_TO(smth) NS_FORWARD_ILANGUAGECHANGEDEVENT (smth)
#define COM_FORWARD_ILanguageChangedEvent_TO_OBJ(obj) COM_FORWARD_ILanguageChangedEvent_TO ((obj)->)
#define COM_FORWARD_ILanguageChangedEvent_TO_BASE(base) COM_FORWARD_ILanguageChangedEvent_TO (base::)

// for compatibility with Win32
VBOX_EXTERN_C const nsID IID_ILanguageChangedEvent;
// 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__ */
