
/*
 *  DO NOT EDIT! This is a generated file.
 *
 *  MS IDL (MIDL) definition for VirtualBox Main API (COM interfaces)
 *  generated from XIDL (XML interface definition).
 *
 *  Source    : src/VBox/Main/idl/VirtualBox.xidl
 *  Generator : src/VBox/Main/idl/midl.xsl
 */
  
import "unknwn.idl";

cpp_quote("enum {")

cpp_quote("    kTypeLibraryMajorVersion = 1,")

cpp_quote("    kTypeLibraryMinorVersion = 0")

cpp_quote("};")

[
    uuid(46137EEC-703B-4fe5-AFD4-7C9BBBBA0259),
    version(1.3),
    helpstring("VirtualBox Type Library")
]
library VirtualBox
{

importlib("stdole2.tlb");

cpp_quote("#define VBOX_E_OBJECT_NOT_FOUND 0x80BB0001")
cpp_quote("#define VBOX_E_INVALID_VM_STATE 0x80BB0002")
cpp_quote("#define VBOX_E_VM_ERROR 0x80BB0003")
cpp_quote("#define VBOX_E_FILE_ERROR 0x80BB0004")
cpp_quote("#define VBOX_E_IPRT_ERROR 0x80BB0005")
cpp_quote("#define VBOX_E_PDM_ERROR 0x80BB0006")
cpp_quote("#define VBOX_E_INVALID_OBJECT_STATE 0x80BB0007")
cpp_quote("#define VBOX_E_HOST_ERROR 0x80BB0008")
cpp_quote("#define VBOX_E_NOT_SUPPORTED 0x80BB0009")
cpp_quote("#define VBOX_E_XML_ERROR 0x80BB000A")
cpp_quote("#define VBOX_E_INVALID_SESSION_STATE 0x80BB000B")
cpp_quote("#define VBOX_E_OBJECT_IN_USE 0x80BB000C")
cpp_quote("#define VBOX_E_DONT_CALL_AGAIN 0x80BB000D")

interface IVirtualBoxErrorInfo;
interface ILocalOwner;
interface IVirtualBoxCallback;
interface IDHCPServer;
interface IVirtualBox;
interface IVFSExplorer;
interface IAppliance;
interface IVirtualSystemDescription;
interface IInternalMachineControl;
interface IBIOSSettings;
interface IMachine;
interface IConsoleCallback;
interface IRemoteDisplayInfo;
interface IConsole;
interface IHostNetworkInterface;
interface IHost;
interface ISystemProperties;
interface IGuestOSType;
interface IGuest;
interface IProgress;
interface ISnapshot;
interface IMediumAttachment;
interface IMedium;
interface IMediumFormat;
interface IKeyboard;
interface IMouse;
interface IFramebuffer;
interface IFramebufferOverlay;
interface IDisplay;
interface INetworkAdapter;
interface ISerialPort;
interface IParallelPort;
interface IMachineDebugger;
interface IUSBController;
interface IUSBDevice;
interface IUSBDeviceFilter;
interface IHostUSBDevice;
interface IHostUSBDeviceFilter;
interface IAudioAdapter;
interface IVRDPServer;
interface ISharedFolder;
interface IInternalSessionControl;
interface ISession;
interface IStorageController;
interface IPerformanceMetric;
interface IPerformanceCollector;
interface INATEngine;

[
    uuid(52bd6f5f-1adb-4493-975d-581a9c4b803f),
    v1_enum
]
typedef enum 
{
    SettingsVersion_Null = 0,
    SettingsVersion_v1_0 = 1,
    SettingsVersion_v1_1 = 2,
    SettingsVersion_v1_2 = 3,
    SettingsVersion_v1_3pre = 4,
    SettingsVersion_v1_3 = 5,
    SettingsVersion_v1_4 = 6,
    SettingsVersion_v1_5 = 7,
    SettingsVersion_v1_6 = 8,
    SettingsVersion_v1_7 = 9,
    SettingsVersion_v1_8 = 10,
    SettingsVersion_v1_9 = 11,
    SettingsVersion_v1_10 = 12,
    SettingsVersion_Future = 13
} SettingsVersion;

/* cross-platform type name for SettingsVersion */
cpp_quote("#define SettingsVersion_T SettingsVersion")



[
    uuid(1da0007c-ddf7-4be8-bcac-d84a1558785f),
    v1_enum
]
typedef enum 
{
    AccessMode_ReadOnly = 1,
    AccessMode_ReadWrite = 2
} AccessMode;

/* cross-platform type name for AccessMode */
cpp_quote("#define AccessMode_T AccessMode")



[
    uuid(e998d075-543a-41fc-8aa9-5ca3e92393fd),
    v1_enum
]
typedef enum 
{
    MachineState_Null = 0,
    MachineState_PoweredOff = 1,
    MachineState_Saved = 2,
    MachineState_Teleported = 3,
    MachineState_Aborted = 4,
    MachineState_Running = 5,
    MachineState_Paused = 6,
    MachineState_Stuck = 7,
    MachineState_Teleporting = 8,
    MachineState_LiveSnapshotting = 9,
    MachineState_Starting = 10,
    MachineState_Stopping = 11,
    MachineState_Saving = 12,
    MachineState_Restoring = 13,
    MachineState_TeleportingPausedVM = 14,
    MachineState_TeleportingIn = 15,
    MachineState_DeletingSnapshotOnline = 16,
    MachineState_DeletingSnapshotPaused = 17,
    MachineState_RestoringSnapshot = 18,
    MachineState_DeletingSnapshot = 19,
    MachineState_SettingUp = 20,
    MachineState_FirstOnline = 5,
    MachineState_LastOnline = 17,
    MachineState_FirstTransient = 8,
    MachineState_LastTransient = 20
} MachineState;

/* cross-platform type name for MachineState */
cpp_quote("#define MachineState_T MachineState")



[
    uuid(cf2700c0-ea4b-47ae-9725-7810114b94d8),
    v1_enum
]
typedef enum 
{
    SessionState_Null = 0,
    SessionState_Closed = 1,
    SessionState_Open = 2,
    SessionState_Spawning = 3,
    SessionState_Closing = 4
} SessionState;

/* cross-platform type name for SessionState */
cpp_quote("#define SessionState_T SessionState")



[
    uuid(24d356a6-2f45-4abd-b977-1cbe9c4701f5),
    v1_enum
]
typedef enum 
{
    CPUPropertyType_Null = 0,
    CPUPropertyType_PAE = 1,
    CPUPropertyType_Synthetic = 2
} CPUPropertyType;

/* cross-platform type name for CPUPropertyType */
cpp_quote("#define CPUPropertyType_T CPUPropertyType")



[
    uuid(ce81dfdd-d2b8-4a90-bbea-40ee8b7ffcee),
    v1_enum
]
typedef enum 
{
    HWVirtExPropertyType_Null = 0,
    HWVirtExPropertyType_Enabled = 1,
    HWVirtExPropertyType_Exclusive = 2,
    HWVirtExPropertyType_VPID = 3,
    HWVirtExPropertyType_NestedPaging = 4,
    HWVirtExPropertyType_LargePages = 5,
    HWVirtExPropertyType_Force = 6
} HWVirtExPropertyType;

/* cross-platform type name for HWVirtExPropertyType */
cpp_quote("#define HWVirtExPropertyType_T HWVirtExPropertyType")



[
    uuid(A13C02CB-0C2C-421E-8317-AC0E8AAA153A),
    v1_enum
]
typedef enum 
{
    SessionType_Null = 0,
    SessionType_Direct = 1,
    SessionType_Remote = 2,
    SessionType_Existing = 3
} SessionType;

/* cross-platform type name for SessionType */
cpp_quote("#define SessionType_T SessionType")



[
    uuid(6d9420f7-0b56-4636-99f9-7346f1b01e57),
    v1_enum
]
typedef enum 
{
    DeviceType_Null = 0,
    DeviceType_Floppy = 1,
    DeviceType_DVD = 2,
    DeviceType_HardDisk = 3,
    DeviceType_Network = 4,
    DeviceType_USB = 5,
    DeviceType_SharedFolder = 6
} DeviceType;

/* cross-platform type name for DeviceType */
cpp_quote("#define DeviceType_T DeviceType")



[
    uuid(6FC8AEAA-130A-4eb5-8954-3F921422D707),
    v1_enum
]
typedef enum 
{
    DeviceActivity_Null = 0,
    DeviceActivity_Idle = 1,
    DeviceActivity_Reading = 2,
    DeviceActivity_Writing = 3
} DeviceActivity;

/* cross-platform type name for DeviceActivity */
cpp_quote("#define DeviceActivity_T DeviceActivity")



[
    uuid(33364716-4008-4701-8f14-be0fa3d62950),
    v1_enum
]
typedef enum 
{
    ClipboardMode_Disabled = 0,
    ClipboardMode_HostToGuest = 1,
    ClipboardMode_GuestToHost = 2,
    ClipboardMode_Bidirectional = 3
} ClipboardMode;

/* cross-platform type name for ClipboardMode */
cpp_quote("#define ClipboardMode_T ClipboardMode")



[
    uuid(7c91096e-499e-4eca-9f9b-9001438d7855),
    v1_enum
]
typedef enum 
{
    Scope_Global = 0,
    Scope_Machine = 1,
    Scope_Session = 2
} Scope;

/* cross-platform type name for Scope */
cpp_quote("#define Scope_T Scope")



[
    uuid(ae4fb9f7-29d2-45b4-b2c7-d579603135d5),
    v1_enum
]
typedef enum 
{
    BIOSBootMenuMode_Disabled = 0,
    BIOSBootMenuMode_MenuOnly = 1,
    BIOSBootMenuMode_MessageAndMenu = 2
} BIOSBootMenuMode;

/* cross-platform type name for BIOSBootMenuMode */
cpp_quote("#define BIOSBootMenuMode_T BIOSBootMenuMode")



[
    uuid(64c38e6b-8bcf-45ad-ac03-9b406287c5bf),
    v1_enum
]
typedef enum 
{
    ProcessorFeature_HWVirtEx = 0,
    ProcessorFeature_PAE = 1,
    ProcessorFeature_LongMode = 2,
    ProcessorFeature_NestedPaging = 3
} ProcessorFeature;

/* cross-platform type name for ProcessorFeature */
cpp_quote("#define ProcessorFeature_T ProcessorFeature")



[
    uuid(b903f264-c230-483e-ac74-2b37ce60d371),
    v1_enum
]
typedef enum 
{
    FirmwareType_BIOS = 1,
    FirmwareType_EFI = 2,
    FirmwareType_EFI32 = 3,
    FirmwareType_EFI64 = 4,
    FirmwareType_EFIDUAL = 5
} FirmwareType;

/* cross-platform type name for FirmwareType */
cpp_quote("#define FirmwareType_T FirmwareType")



[
    uuid(0d3c17a2-821a-4b2e-ae41-890c6c60aa97),
    v1_enum
]
typedef enum 
{
    PointingHidType_None = 1,
    PointingHidType_PS2Mouse = 2,
    PointingHidType_USBMouse = 3,
    PointingHidType_USBTablet = 4,
    PointingHidType_ComboMouse = 5
} PointingHidType;

/* cross-platform type name for PointingHidType */
cpp_quote("#define PointingHidType_T PointingHidType")



[
    uuid(5a5b0996-3a3e-44bb-9019-56979812cbcc),
    v1_enum
]
typedef enum 
{
    KeyboardHidType_None = 1,
    KeyboardHidType_PS2Keyboard = 2,
    KeyboardHidType_USBKeyboard = 3,
    KeyboardHidType_ComboKeyboard = 4
} KeyboardHidType;

/* cross-platform type name for KeyboardHidType */
cpp_quote("#define KeyboardHidType_T KeyboardHidType")



[
    uuid(813999ba-b949-48a8-9230-aadc6285e2f2),
    v1_enum
]
typedef enum 
{
    VFSType_File = 1,
    VFSType_Cloud = 2,
    VFSType_S3 = 3,
    VFSType_WebDav = 4
} VFSType;

/* cross-platform type name for VFSType */
cpp_quote("#define VFSType_T VFSType")



[
    uuid(714333cd-44e2-415f-a245-d378fa9b1242),
    v1_enum
]
typedef enum 
{
    VFSFileType_Unknown = 1,
    VFSFileType_Fifo = 2,
    VFSFileType_DevChar = 3,
    VFSFileType_Directory = 4,
    VFSFileType_DevBlock = 5,
    VFSFileType_File = 6,
    VFSFileType_SymLink = 7,
    VFSFileType_Socket = 8,
    VFSFileType_WhiteOut = 9
} VFSFileType;

/* cross-platform type name for VFSFileType */
cpp_quote("#define VFSFileType_T VFSFileType")



[
    uuid(c0f8f135-3a1d-417d-afa6-b38b95a91f90),
    v1_enum
]
typedef enum 
{
    VirtualSystemDescriptionType_Ignore = 1,
    VirtualSystemDescriptionType_OS = 2,
    VirtualSystemDescriptionType_Name = 3,
    VirtualSystemDescriptionType_Product = 4,
    VirtualSystemDescriptionType_Vendor = 5,
    VirtualSystemDescriptionType_Version = 6,
    VirtualSystemDescriptionType_ProductUrl = 7,
    VirtualSystemDescriptionType_VendorUrl = 8,
    VirtualSystemDescriptionType_Description = 9,
    VirtualSystemDescriptionType_License = 10,
    VirtualSystemDescriptionType_Miscellaneous = 11,
    VirtualSystemDescriptionType_CPU = 12,
    VirtualSystemDescriptionType_Memory = 13,
    VirtualSystemDescriptionType_HardDiskControllerIDE = 14,
    VirtualSystemDescriptionType_HardDiskControllerSATA = 15,
    VirtualSystemDescriptionType_HardDiskControllerSCSI = 16,
    VirtualSystemDescriptionType_HardDiskControllerSAS = 17,
    VirtualSystemDescriptionType_HardDiskImage = 18,
    VirtualSystemDescriptionType_Floppy = 19,
    VirtualSystemDescriptionType_CDROM = 20,
    VirtualSystemDescriptionType_NetworkAdapter = 21,
    VirtualSystemDescriptionType_USBController = 22,
    VirtualSystemDescriptionType_SoundCard = 23
} VirtualSystemDescriptionType;

/* cross-platform type name for VirtualSystemDescriptionType */
cpp_quote("#define VirtualSystemDescriptionType_T VirtualSystemDescriptionType")



[
    uuid(56d9403f-3425-4118-9919-36f2a9b8c77c),
    v1_enum
]
typedef enum 
{
    VirtualSystemDescriptionValueType_Reference = 1,
    VirtualSystemDescriptionValueType_Original = 2,
    VirtualSystemDescriptionValueType_Auto = 3,
    VirtualSystemDescriptionValueType_ExtraConfig = 4
} VirtualSystemDescriptionValueType;

/* cross-platform type name for VirtualSystemDescriptionValueType */
cpp_quote("#define VirtualSystemDescriptionValueType_T VirtualSystemDescriptionValueType")



[
    uuid(1aa54aaf-2497-45a2-bfb1-8eb225e93d5b),
    v1_enum
]
typedef enum 
{
    HostNetworkInterfaceMediumType_Unknown = 0,
    HostNetworkInterfaceMediumType_Ethernet = 1,
    HostNetworkInterfaceMediumType_PPP = 2,
    HostNetworkInterfaceMediumType_SLIP = 3
} HostNetworkInterfaceMediumType;

/* cross-platform type name for HostNetworkInterfaceMediumType */
cpp_quote("#define HostNetworkInterfaceMediumType_T HostNetworkInterfaceMediumType")



[
    uuid(CC474A69-2710-434B-8D99-C38E5D5A6F41),
    v1_enum
]
typedef enum 
{
    HostNetworkInterfaceStatus_Unknown = 0,
    HostNetworkInterfaceStatus_Up = 1,
    HostNetworkInterfaceStatus_Down = 2
} HostNetworkInterfaceStatus;

/* cross-platform type name for HostNetworkInterfaceStatus */
cpp_quote("#define HostNetworkInterfaceStatus_T HostNetworkInterfaceStatus")



[
    uuid(67431b00-9946-48a2-bc02-b25c5919f4f3),
    v1_enum
]
typedef enum 
{
    HostNetworkInterfaceType_Bridged = 1,
    HostNetworkInterfaceType_HostOnly = 2
} HostNetworkInterfaceType;

/* cross-platform type name for HostNetworkInterfaceType */
cpp_quote("#define HostNetworkInterfaceType_T HostNetworkInterfaceType")



[
    uuid(ef41e980-e012-43cd-9dea-479d4ef14d13),
    v1_enum
]
typedef enum 
{
    MediumState_NotCreated = 0,
    MediumState_Created = 1,
    MediumState_LockedRead = 2,
    MediumState_LockedWrite = 3,
    MediumState_Inaccessible = 4,
    MediumState_Creating = 5,
    MediumState_Deleting = 6
} MediumState;

/* cross-platform type name for MediumState */
cpp_quote("#define MediumState_T MediumState")



[
    uuid(46bf1fd4-ad86-4ded-8c49-28bd2d148e5a),
    v1_enum
]
typedef enum 
{
    MediumType_Normal = 0,
    MediumType_Immutable = 1,
    MediumType_Writethrough = 2,
    MediumType_Shareable = 3
} MediumType;

/* cross-platform type name for MediumType */
cpp_quote("#define MediumType_T MediumType")



[
    uuid(584ea502-143b-4ab0-ad14-d1028fdf0316),
    v1_enum
]
typedef enum 
{
    MediumVariant_Standard = 0,
    MediumVariant_VmdkSplit2G = 0x01,
    MediumVariant_VmdkStreamOptimized = 0x04,
    MediumVariant_VmdkESX = 0x08,
    MediumVariant_Fixed = 0x10000,
    MediumVariant_Diff = 0x20000
} MediumVariant;

/* cross-platform type name for MediumVariant */
cpp_quote("#define MediumVariant_T MediumVariant")



[
    uuid(d90ea51e-a3f1-4a01-beb1-c1723c0d3ba7),
    v1_enum
]
typedef enum 
{
    DataType_Int32 = 0,
    DataType_Int8 = 1,
    DataType_String = 2
} DataType;

/* cross-platform type name for DataType */
cpp_quote("#define DataType_T DataType")



[
    uuid(86884dcf-1d6b-4f1b-b4bf-f5aa44959d60),
    v1_enum
]
typedef enum 
{
    DataFlags_None = 0x00,
    DataFlags_Mandatory = 0x01,
    DataFlags_Expert = 0x02,
    DataFlags_Array = 0x04,
    DataFlags_FlagMask = 0x07
} DataFlags;

/* cross-platform type name for DataFlags */
cpp_quote("#define DataFlags_T DataFlags")



[
    uuid(70fcf810-99e8-4edc-aee4-7f51d489e657),
    v1_enum
]
typedef enum 
{
    MediumFormatCapabilities_Uuid = 0x01,
    MediumFormatCapabilities_CreateFixed = 0x02,
    MediumFormatCapabilities_CreateDynamic = 0x04,
    MediumFormatCapabilities_CreateSplit2G = 0x08,
    MediumFormatCapabilities_Differencing = 0x10,
    MediumFormatCapabilities_Asynchronous = 0x20,
    MediumFormatCapabilities_File = 0x40,
    MediumFormatCapabilities_Properties = 0x80,
    MediumFormatCapabilities_CapabilityMask = 0xFF
} MediumFormatCapabilities;

/* cross-platform type name for MediumFormatCapabilities */
cpp_quote("#define MediumFormatCapabilities_T MediumFormatCapabilities")



[
    uuid(9ee094b8-b28a-4d56-a166-973cb588d7f8),
    v1_enum
]
typedef enum 
{
    MouseButtonState_LeftButton = 0x01,
    MouseButtonState_RightButton = 0x02,
    MouseButtonState_MiddleButton = 0x04,
    MouseButtonState_WheelUp = 0x08,
    MouseButtonState_WheelDown = 0x10,
    MouseButtonState_XButton1 = 0x20,
    MouseButtonState_XButton2 = 0x40,
    MouseButtonState_MouseStateMask = 0x7F
} MouseButtonState;

/* cross-platform type name for MouseButtonState */
cpp_quote("#define MouseButtonState_T MouseButtonState")



[
    uuid(7acfd5ed-29e3-45e3-8136-73c9224f3d2d),
    v1_enum
]
typedef enum 
{
    FramebufferPixelFormat_Opaque = 0,
    FramebufferPixelFormat_FOURCC_RGB = 0x32424752
} FramebufferPixelFormat;

/* cross-platform type name for FramebufferPixelFormat */
cpp_quote("#define FramebufferPixelFormat_T FramebufferPixelFormat")



[
    uuid(44bce1ee-99f7-4e8e-89fc-80597fd9eeaf),
    v1_enum
]
typedef enum 
{
    NetworkAttachmentType_Null = 0,
    NetworkAttachmentType_NAT = 1,
    NetworkAttachmentType_Bridged = 2,
    NetworkAttachmentType_Internal = 3,
    NetworkAttachmentType_HostOnly = 4,
    NetworkAttachmentType_VDE = 5
} NetworkAttachmentType;

/* cross-platform type name for NetworkAttachmentType */
cpp_quote("#define NetworkAttachmentType_T NetworkAttachmentType")



[
    uuid(3c2281e4-d952-4e87-8c7d-24379cb6a81c),
    v1_enum
]
typedef enum 
{
    NetworkAdapterType_Null = 0,
    NetworkAdapterType_Am79C970A = 1,
    NetworkAdapterType_Am79C973 = 2,
    NetworkAdapterType_I82540EM = 3,
    NetworkAdapterType_I82543GC = 4,
    NetworkAdapterType_I82545EM = 5,
    NetworkAdapterType_Virtio = 6
} NetworkAdapterType;

/* cross-platform type name for NetworkAdapterType */
cpp_quote("#define NetworkAdapterType_T NetworkAdapterType")



[
    uuid(533b5fe3-0185-4197-86a7-17e37dd39d76),
    v1_enum
]
typedef enum 
{
    PortMode_Disconnected = 0,
    PortMode_HostPipe = 1,
    PortMode_HostDevice = 2,
    PortMode_RawFile = 3
} PortMode;

/* cross-platform type name for PortMode */
cpp_quote("#define PortMode_T PortMode")



[
    uuid(b99a2e65-67fb-4882-82fd-f3e5e8193ab4),
    v1_enum
]
typedef enum 
{
    USBDeviceState_NotSupported = 0,
    USBDeviceState_Unavailable = 1,
    USBDeviceState_Busy = 2,
    USBDeviceState_Available = 3,
    USBDeviceState_Held = 4,
    USBDeviceState_Captured = 5
} USBDeviceState;

/* cross-platform type name for USBDeviceState */
cpp_quote("#define USBDeviceState_T USBDeviceState")



[
    uuid(cbc30a49-2f4e-43b5-9da6-121320475933),
    v1_enum
]
typedef enum 
{
    USBDeviceFilterAction_Null = 0,
    USBDeviceFilterAction_Ignore = 1,
    USBDeviceFilterAction_Hold = 2
} USBDeviceFilterAction;

/* cross-platform type name for USBDeviceFilterAction */
cpp_quote("#define USBDeviceFilterAction_T USBDeviceFilterAction")



[
    uuid(4bcc3d73-c2fe-40db-b72f-0c2ca9d68496),
    v1_enum
]
typedef enum 
{
    AudioDriverType_Null = 0,
    AudioDriverType_WinMM = 1,
    AudioDriverType_OSS = 2,
    AudioDriverType_ALSA = 3,
    AudioDriverType_DirectSound = 4,
    AudioDriverType_CoreAudio = 5,
    AudioDriverType_MMPM = 6,
    AudioDriverType_Pulse = 7,
    AudioDriverType_SolAudio = 8
} AudioDriverType;

/* cross-platform type name for AudioDriverType */
cpp_quote("#define AudioDriverType_T AudioDriverType")



[
    uuid(7afd395c-42c3-444e-8788-3ce80292f36c),
    v1_enum
]
typedef enum 
{
    AudioControllerType_AC97 = 0,
    AudioControllerType_SB16 = 1
} AudioControllerType;

/* cross-platform type name for AudioControllerType */
cpp_quote("#define AudioControllerType_T AudioControllerType")



[
    uuid(3d91887a-b67f-4b33-85bf-2da7ab1ea83a),
    v1_enum
]
typedef enum 
{
    VRDPAuthType_Null = 0,
    VRDPAuthType_External = 1,
    VRDPAuthType_Guest = 2
} VRDPAuthType;

/* cross-platform type name for VRDPAuthType */
cpp_quote("#define VRDPAuthType_T VRDPAuthType")



[
    uuid(eee67ab3-668d-4ef5-91e0-7025fe4a0d7a),
    v1_enum
]
typedef enum 
{
    StorageBus_Null = 0,
    StorageBus_IDE = 1,
    StorageBus_SATA = 2,
    StorageBus_SCSI = 3,
    StorageBus_Floppy = 4,
    StorageBus_SAS = 5
} StorageBus;

/* cross-platform type name for StorageBus */
cpp_quote("#define StorageBus_T StorageBus")



[
    uuid(8a412b8a-f43e-4456-bd37-b474f0879a58),
    v1_enum
]
typedef enum 
{
    StorageControllerType_Null = 0,
    StorageControllerType_LsiLogic = 1,
    StorageControllerType_BusLogic = 2,
    StorageControllerType_IntelAhci = 3,
    StorageControllerType_PIIX3 = 4,
    StorageControllerType_PIIX4 = 5,
    StorageControllerType_ICH6 = 6,
    StorageControllerType_I82078 = 7,
    StorageControllerType_LsiLogicSas = 8
} StorageControllerType;

/* cross-platform type name for StorageControllerType */
cpp_quote("#define StorageControllerType_T StorageControllerType")



[
    uuid(67772168-50d9-11df-9669-7fb714ee4fa1),
    v1_enum
]
typedef enum 
{
    NATAliasMode_AliasLog = 0x1,
    NATAliasMode_AliasProxyOnly = 0x02,
    NATAliasMode_AliasUseSamePorts = 0x04
} NATAliasMode;

/* cross-platform type name for NATAliasMode */
cpp_quote("#define NATAliasMode_T NATAliasMode")



[
    uuid(e90164be-eb03-11de-94af-fff9b1c1b19f),
    v1_enum
]
typedef enum 
{
    NATProtocol_UDP = 0,
    NATProtocol_TCP = 1
} NATProtocol;

/* cross-platform type name for NATProtocol */
cpp_quote("#define NATProtocol_T NATProtocol")



[
    uuid(4b86d186-407e-4f9e-8be8-e50061be8725),
    object,
    dual,
    oleautomation
]
interface IVirtualBoxErrorInfo : IErrorInfo
{
    [propget] HRESULT ResultCode ([out, retval] LONG * aResultCode);

    [propget] HRESULT InterfaceID ([out, retval] BSTR * aInterfaceID);

    [propget] HRESULT Component ([out, retval] BSTR * aComponent);

    [propget] HRESULT Text ([out, retval] BSTR * aText);

    [propget] HRESULT Next ([out, retval] IVirtualBoxErrorInfo * * aNext);

}; /* interface IVirtualBoxErrorInfo */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IVirtualBoxErrorInfo_GETTER_ResultCode_TO(smth) HRESULT STDMETHODCALLTYPE get_ResultCode (LONG * aResultCode) { return smth get_ResultCode (aResultCode); }")
cpp_quote("#define COM_FORWARD_IVirtualBoxErrorInfo_GETTER_ResultCode_TO_OBJ(obj) COM_FORWARD_IVirtualBoxErrorInfo_GETTER_ResultCode_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBoxErrorInfo_GETTER_ResultCode_TO_BASE(base) COM_FORWARD_IVirtualBoxErrorInfo_GETTER_ResultCode_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBoxErrorInfo_GETTER_InterfaceID_TO(smth) HRESULT STDMETHODCALLTYPE get_InterfaceID (BSTR * aInterfaceID) { return smth get_InterfaceID (aInterfaceID); }")
cpp_quote("#define COM_FORWARD_IVirtualBoxErrorInfo_GETTER_InterfaceID_TO_OBJ(obj) COM_FORWARD_IVirtualBoxErrorInfo_GETTER_InterfaceID_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBoxErrorInfo_GETTER_InterfaceID_TO_BASE(base) COM_FORWARD_IVirtualBoxErrorInfo_GETTER_InterfaceID_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBoxErrorInfo_GETTER_Component_TO(smth) HRESULT STDMETHODCALLTYPE get_Component (BSTR * aComponent) { return smth get_Component (aComponent); }")
cpp_quote("#define COM_FORWARD_IVirtualBoxErrorInfo_GETTER_Component_TO_OBJ(obj) COM_FORWARD_IVirtualBoxErrorInfo_GETTER_Component_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBoxErrorInfo_GETTER_Component_TO_BASE(base) COM_FORWARD_IVirtualBoxErrorInfo_GETTER_Component_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBoxErrorInfo_GETTER_Text_TO(smth) HRESULT STDMETHODCALLTYPE get_Text (BSTR * aText) { return smth get_Text (aText); }")
cpp_quote("#define COM_FORWARD_IVirtualBoxErrorInfo_GETTER_Text_TO_OBJ(obj) COM_FORWARD_IVirtualBoxErrorInfo_GETTER_Text_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBoxErrorInfo_GETTER_Text_TO_BASE(base) COM_FORWARD_IVirtualBoxErrorInfo_GETTER_Text_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBoxErrorInfo_GETTER_Next_TO(smth) HRESULT STDMETHODCALLTYPE get_Next (IVirtualBoxErrorInfo * * aNext) { return smth get_Next (aNext); }")
cpp_quote("#define COM_FORWARD_IVirtualBoxErrorInfo_GETTER_Next_TO_OBJ(obj) COM_FORWARD_IVirtualBoxErrorInfo_GETTER_Next_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBoxErrorInfo_GETTER_Next_TO_BASE(base) COM_FORWARD_IVirtualBoxErrorInfo_GETTER_Next_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBoxErrorInfo_TO(smth) COM_FORWARD_IVirtualBoxErrorInfo_GETTER_ResultCode_TO (smth) COM_FORWARD_IVirtualBoxErrorInfo_GETTER_InterfaceID_TO (smth) COM_FORWARD_IVirtualBoxErrorInfo_GETTER_Component_TO (smth) COM_FORWARD_IVirtualBoxErrorInfo_GETTER_Text_TO (smth) COM_FORWARD_IVirtualBoxErrorInfo_GETTER_Next_TO (smth) ")
cpp_quote("#define COM_FORWARD_IVirtualBoxErrorInfo_TO_OBJ(obj) COM_FORWARD_IVirtualBoxErrorInfo_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBoxErrorInfo_TO_BASE(base) COM_FORWARD_IVirtualBoxErrorInfo_TO (base::)")

[
    uuid(308FF42A-DC45-49D4-A950-B1EEE5E00BB5),
    object,
    dual,
    oleautomation
]
interface ILocalOwner : IDispatch
{
    HRESULT SetLocalObject (
        [in] IUnknown * aObject
    );

}; /* interface ILocalOwner */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_ILocalOwner_SetLocalObject_TO(smth) HRESULT STDMETHODCALLTYPE SetLocalObject (IUnknown * aObject) { return smth SetLocalObject (aObject); }")
cpp_quote("#define COM_FORWARD_ILocalOwner_SetLocalObject_TO_OBJ(obj) COM_FORWARD_ILocalOwner_SetLocalObject_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ILocalOwner_SetLocalObject_TO_BASE(base) COM_FORWARD_ILocalOwner_SetLocalObject_TO (base::)")
cpp_quote("#define COM_FORWARD_ILocalOwner_TO(smth) COM_FORWARD_ILocalOwner_SetLocalObject_TO (smth) ")
cpp_quote("#define COM_FORWARD_ILocalOwner_TO_OBJ(obj) COM_FORWARD_ILocalOwner_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ILocalOwner_TO_BASE(base) COM_FORWARD_ILocalOwner_TO (base::)")

[
    uuid(7f6a65b6-ad5d-4a67-8872-0b11cb7ea95c),
    object,
    dual,
    oleautomation
]
interface IVirtualBoxCallback : IDispatch
{
    HRESULT OnMachineStateChange (
        [in] BSTR aMachineId,
        [in] MachineState aState
    );

    HRESULT OnMachineDataChange (
        [in] BSTR aMachineId
    );

    HRESULT OnExtraDataCanChange (
        [in] BSTR aMachineId,
        [in] BSTR aKey,
        [in] BSTR aValue,
        [out] BSTR * aError,
        [out, retval] BOOL * aAllowChange
    );

    HRESULT OnExtraDataChange (
        [in] BSTR aMachineId,
        [in] BSTR aKey,
        [in] BSTR aValue
    );

    HRESULT OnMediumRegistered (
        [in] BSTR aMediumId,
        [in] DeviceType aMediumType,
        [in] BOOL aRegistered
    );

    HRESULT OnMachineRegistered (
        [in] BSTR aMachineId,
        [in] BOOL aRegistered
    );

    HRESULT OnSessionStateChange (
        [in] BSTR aMachineId,
        [in] SessionState aState
    );

    HRESULT OnSnapshotTaken (
        [in] BSTR aMachineId,
        [in] BSTR aSnapshotId
    );

    HRESULT OnSnapshotDeleted (
        [in] BSTR aMachineId,
        [in] BSTR aSnapshotId
    );

    HRESULT OnSnapshotChange (
        [in] BSTR aMachineId,
        [in] BSTR aSnapshotId
    );

    HRESULT OnGuestPropertyChange (
        [in] BSTR aMachineId,
        [in] BSTR aName,
        [in] BSTR aValue,
        [in] BSTR aFlags
    );

}; /* interface IVirtualBoxCallback */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_OnMachineStateChange_TO(smth) HRESULT STDMETHODCALLTYPE OnMachineStateChange (BSTR aMachineId, MachineState aState) { return smth OnMachineStateChange (aMachineId, aState); }")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_OnMachineStateChange_TO_OBJ(obj) COM_FORWARD_IVirtualBoxCallback_OnMachineStateChange_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_OnMachineStateChange_TO_BASE(base) COM_FORWARD_IVirtualBoxCallback_OnMachineStateChange_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_OnMachineDataChange_TO(smth) HRESULT STDMETHODCALLTYPE OnMachineDataChange (BSTR aMachineId) { return smth OnMachineDataChange (aMachineId); }")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_OnMachineDataChange_TO_OBJ(obj) COM_FORWARD_IVirtualBoxCallback_OnMachineDataChange_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_OnMachineDataChange_TO_BASE(base) COM_FORWARD_IVirtualBoxCallback_OnMachineDataChange_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_OnExtraDataCanChange_TO(smth) HRESULT STDMETHODCALLTYPE OnExtraDataCanChange (BSTR aMachineId, BSTR aKey, BSTR aValue, BSTR * aError, BOOL * aAllowChange) { return smth OnExtraDataCanChange (aMachineId, aKey, aValue, aError, aAllowChange); }")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_OnExtraDataCanChange_TO_OBJ(obj) COM_FORWARD_IVirtualBoxCallback_OnExtraDataCanChange_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_OnExtraDataCanChange_TO_BASE(base) COM_FORWARD_IVirtualBoxCallback_OnExtraDataCanChange_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_OnExtraDataChange_TO(smth) HRESULT STDMETHODCALLTYPE OnExtraDataChange (BSTR aMachineId, BSTR aKey, BSTR aValue) { return smth OnExtraDataChange (aMachineId, aKey, aValue); }")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_OnExtraDataChange_TO_OBJ(obj) COM_FORWARD_IVirtualBoxCallback_OnExtraDataChange_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_OnExtraDataChange_TO_BASE(base) COM_FORWARD_IVirtualBoxCallback_OnExtraDataChange_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_OnMediumRegistered_TO(smth) HRESULT STDMETHODCALLTYPE OnMediumRegistered (BSTR aMediumId, DeviceType aMediumType, BOOL aRegistered) { return smth OnMediumRegistered (aMediumId, aMediumType, aRegistered); }")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_OnMediumRegistered_TO_OBJ(obj) COM_FORWARD_IVirtualBoxCallback_OnMediumRegistered_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_OnMediumRegistered_TO_BASE(base) COM_FORWARD_IVirtualBoxCallback_OnMediumRegistered_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_OnMachineRegistered_TO(smth) HRESULT STDMETHODCALLTYPE OnMachineRegistered (BSTR aMachineId, BOOL aRegistered) { return smth OnMachineRegistered (aMachineId, aRegistered); }")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_OnMachineRegistered_TO_OBJ(obj) COM_FORWARD_IVirtualBoxCallback_OnMachineRegistered_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_OnMachineRegistered_TO_BASE(base) COM_FORWARD_IVirtualBoxCallback_OnMachineRegistered_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_OnSessionStateChange_TO(smth) HRESULT STDMETHODCALLTYPE OnSessionStateChange (BSTR aMachineId, SessionState aState) { return smth OnSessionStateChange (aMachineId, aState); }")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_OnSessionStateChange_TO_OBJ(obj) COM_FORWARD_IVirtualBoxCallback_OnSessionStateChange_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_OnSessionStateChange_TO_BASE(base) COM_FORWARD_IVirtualBoxCallback_OnSessionStateChange_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_OnSnapshotTaken_TO(smth) HRESULT STDMETHODCALLTYPE OnSnapshotTaken (BSTR aMachineId, BSTR aSnapshotId) { return smth OnSnapshotTaken (aMachineId, aSnapshotId); }")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_OnSnapshotTaken_TO_OBJ(obj) COM_FORWARD_IVirtualBoxCallback_OnSnapshotTaken_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_OnSnapshotTaken_TO_BASE(base) COM_FORWARD_IVirtualBoxCallback_OnSnapshotTaken_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_OnSnapshotDeleted_TO(smth) HRESULT STDMETHODCALLTYPE OnSnapshotDeleted (BSTR aMachineId, BSTR aSnapshotId) { return smth OnSnapshotDeleted (aMachineId, aSnapshotId); }")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_OnSnapshotDeleted_TO_OBJ(obj) COM_FORWARD_IVirtualBoxCallback_OnSnapshotDeleted_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_OnSnapshotDeleted_TO_BASE(base) COM_FORWARD_IVirtualBoxCallback_OnSnapshotDeleted_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_OnSnapshotChange_TO(smth) HRESULT STDMETHODCALLTYPE OnSnapshotChange (BSTR aMachineId, BSTR aSnapshotId) { return smth OnSnapshotChange (aMachineId, aSnapshotId); }")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_OnSnapshotChange_TO_OBJ(obj) COM_FORWARD_IVirtualBoxCallback_OnSnapshotChange_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_OnSnapshotChange_TO_BASE(base) COM_FORWARD_IVirtualBoxCallback_OnSnapshotChange_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_OnGuestPropertyChange_TO(smth) HRESULT STDMETHODCALLTYPE OnGuestPropertyChange (BSTR aMachineId, BSTR aName, BSTR aValue, BSTR aFlags) { return smth OnGuestPropertyChange (aMachineId, aName, aValue, aFlags); }")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_OnGuestPropertyChange_TO_OBJ(obj) COM_FORWARD_IVirtualBoxCallback_OnGuestPropertyChange_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_OnGuestPropertyChange_TO_BASE(base) COM_FORWARD_IVirtualBoxCallback_OnGuestPropertyChange_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_TO(smth) COM_FORWARD_IVirtualBoxCallback_OnMachineStateChange_TO (smth) COM_FORWARD_IVirtualBoxCallback_OnMachineDataChange_TO (smth) COM_FORWARD_IVirtualBoxCallback_OnExtraDataCanChange_TO (smth) COM_FORWARD_IVirtualBoxCallback_OnExtraDataChange_TO (smth) COM_FORWARD_IVirtualBoxCallback_OnMediumRegistered_TO (smth) COM_FORWARD_IVirtualBoxCallback_OnMachineRegistered_TO (smth) COM_FORWARD_IVirtualBoxCallback_OnSessionStateChange_TO (smth) COM_FORWARD_IVirtualBoxCallback_OnSnapshotTaken_TO (smth) COM_FORWARD_IVirtualBoxCallback_OnSnapshotDeleted_TO (smth) COM_FORWARD_IVirtualBoxCallback_OnSnapshotChange_TO (smth) COM_FORWARD_IVirtualBoxCallback_OnGuestPropertyChange_TO (smth) ")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_TO_OBJ(obj) COM_FORWARD_IVirtualBoxCallback_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_TO_BASE(base) COM_FORWARD_IVirtualBoxCallback_TO (base::)")

[
    uuid(6cfe387c-74fb-4ca7-bff6-973bec8af7a3),
    object,
    dual,
    oleautomation
]
interface IDHCPServer : IDispatch
{
    [propget] HRESULT Enabled ([out, retval] BOOL * aEnabled);
    [propput] HRESULT Enabled ([in] BOOL aEnabled);

    [propget] HRESULT IPAddress ([out, retval] BSTR * aIPAddress);

    [propget] HRESULT NetworkMask ([out, retval] BSTR * aNetworkMask);

    [propget] HRESULT NetworkName ([out, retval] BSTR * aNetworkName);

    [propget] HRESULT LowerIP ([out, retval] BSTR * aLowerIP);

    [propget] HRESULT UpperIP ([out, retval] BSTR * aUpperIP);

    HRESULT SetConfiguration (
        [in] BSTR aIPAddress,
        [in] BSTR aNetworkMask,
        [in] BSTR aFromIPAddress,
        [in] BSTR aToIPAddress
    );

    HRESULT Start (
        [in] BSTR aNetworkName,
        [in] BSTR aTrunkName,
        [in] BSTR aTrunkType
    );

    HRESULT Stop();

}; /* interface IDHCPServer */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IDHCPServer_GETTER_Enabled_TO(smth) HRESULT STDMETHODCALLTYPE get_Enabled (BOOL * aEnabled) { return smth get_Enabled (aEnabled); }")
cpp_quote("#define COM_FORWARD_IDHCPServer_GETTER_Enabled_TO_OBJ(obj) COM_FORWARD_IDHCPServer_GETTER_Enabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDHCPServer_GETTER_Enabled_TO_BASE(base) COM_FORWARD_IDHCPServer_GETTER_Enabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IDHCPServer_SETTER_Enabled_TO(smth) HRESULT STDMETHODCALLTYPE put_Enabled (BOOL aEnabled) { return smth put_Enabled (aEnabled); }")
cpp_quote("#define COM_FORWARD_IDHCPServer_SETTER_Enabled_TO_OBJ(obj) COM_FORWARD_IDHCPServer_SETTER_Enabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDHCPServer_SETTER_Enabled_TO_BASE(base) COM_FORWARD_IDHCPServer_SETTER_Enabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IDHCPServer_GETTER_IPAddress_TO(smth) HRESULT STDMETHODCALLTYPE get_IPAddress (BSTR * aIPAddress) { return smth get_IPAddress (aIPAddress); }")
cpp_quote("#define COM_FORWARD_IDHCPServer_GETTER_IPAddress_TO_OBJ(obj) COM_FORWARD_IDHCPServer_GETTER_IPAddress_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDHCPServer_GETTER_IPAddress_TO_BASE(base) COM_FORWARD_IDHCPServer_GETTER_IPAddress_TO (base::)")
cpp_quote("#define COM_FORWARD_IDHCPServer_GETTER_NetworkMask_TO(smth) HRESULT STDMETHODCALLTYPE get_NetworkMask (BSTR * aNetworkMask) { return smth get_NetworkMask (aNetworkMask); }")
cpp_quote("#define COM_FORWARD_IDHCPServer_GETTER_NetworkMask_TO_OBJ(obj) COM_FORWARD_IDHCPServer_GETTER_NetworkMask_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDHCPServer_GETTER_NetworkMask_TO_BASE(base) COM_FORWARD_IDHCPServer_GETTER_NetworkMask_TO (base::)")
cpp_quote("#define COM_FORWARD_IDHCPServer_GETTER_NetworkName_TO(smth) HRESULT STDMETHODCALLTYPE get_NetworkName (BSTR * aNetworkName) { return smth get_NetworkName (aNetworkName); }")
cpp_quote("#define COM_FORWARD_IDHCPServer_GETTER_NetworkName_TO_OBJ(obj) COM_FORWARD_IDHCPServer_GETTER_NetworkName_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDHCPServer_GETTER_NetworkName_TO_BASE(base) COM_FORWARD_IDHCPServer_GETTER_NetworkName_TO (base::)")
cpp_quote("#define COM_FORWARD_IDHCPServer_GETTER_LowerIP_TO(smth) HRESULT STDMETHODCALLTYPE get_LowerIP (BSTR * aLowerIP) { return smth get_LowerIP (aLowerIP); }")
cpp_quote("#define COM_FORWARD_IDHCPServer_GETTER_LowerIP_TO_OBJ(obj) COM_FORWARD_IDHCPServer_GETTER_LowerIP_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDHCPServer_GETTER_LowerIP_TO_BASE(base) COM_FORWARD_IDHCPServer_GETTER_LowerIP_TO (base::)")
cpp_quote("#define COM_FORWARD_IDHCPServer_GETTER_UpperIP_TO(smth) HRESULT STDMETHODCALLTYPE get_UpperIP (BSTR * aUpperIP) { return smth get_UpperIP (aUpperIP); }")
cpp_quote("#define COM_FORWARD_IDHCPServer_GETTER_UpperIP_TO_OBJ(obj) COM_FORWARD_IDHCPServer_GETTER_UpperIP_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDHCPServer_GETTER_UpperIP_TO_BASE(base) COM_FORWARD_IDHCPServer_GETTER_UpperIP_TO (base::)")
cpp_quote("#define COM_FORWARD_IDHCPServer_SetConfiguration_TO(smth) HRESULT STDMETHODCALLTYPE SetConfiguration (BSTR aIPAddress, BSTR aNetworkMask, BSTR aFromIPAddress, BSTR aToIPAddress) { return smth SetConfiguration (aIPAddress, aNetworkMask, aFromIPAddress, aToIPAddress); }")
cpp_quote("#define COM_FORWARD_IDHCPServer_SetConfiguration_TO_OBJ(obj) COM_FORWARD_IDHCPServer_SetConfiguration_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDHCPServer_SetConfiguration_TO_BASE(base) COM_FORWARD_IDHCPServer_SetConfiguration_TO (base::)")
cpp_quote("#define COM_FORWARD_IDHCPServer_Start_TO(smth) HRESULT STDMETHODCALLTYPE Start (BSTR aNetworkName, BSTR aTrunkName, BSTR aTrunkType) { return smth Start (aNetworkName, aTrunkName, aTrunkType); }")
cpp_quote("#define COM_FORWARD_IDHCPServer_Start_TO_OBJ(obj) COM_FORWARD_IDHCPServer_Start_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDHCPServer_Start_TO_BASE(base) COM_FORWARD_IDHCPServer_Start_TO (base::)")
cpp_quote("#define COM_FORWARD_IDHCPServer_Stop_TO(smth) HRESULT STDMETHODCALLTYPE Stop() { return smth Stop(); }")
cpp_quote("#define COM_FORWARD_IDHCPServer_Stop_TO_OBJ(obj) COM_FORWARD_IDHCPServer_Stop_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDHCPServer_Stop_TO_BASE(base) COM_FORWARD_IDHCPServer_Stop_TO (base::)")
cpp_quote("#define COM_FORWARD_IDHCPServer_TO(smth) COM_FORWARD_IDHCPServer_GETTER_Enabled_TO (smth) COM_FORWARD_IDHCPServer_SETTER_Enabled_TO (smth) COM_FORWARD_IDHCPServer_GETTER_IPAddress_TO (smth) COM_FORWARD_IDHCPServer_GETTER_NetworkMask_TO (smth) COM_FORWARD_IDHCPServer_GETTER_NetworkName_TO (smth) COM_FORWARD_IDHCPServer_GETTER_LowerIP_TO (smth) COM_FORWARD_IDHCPServer_GETTER_UpperIP_TO (smth) COM_FORWARD_IDHCPServer_SetConfiguration_TO (smth) COM_FORWARD_IDHCPServer_Start_TO (smth) COM_FORWARD_IDHCPServer_Stop_TO (smth) ")
cpp_quote("#define COM_FORWARD_IDHCPServer_TO_OBJ(obj) COM_FORWARD_IDHCPServer_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDHCPServer_TO_BASE(base) COM_FORWARD_IDHCPServer_TO (base::)")

[
    uuid(3f36e024-7fed-4f20-a02c-9158a82b44e6),
    object,
    dual,
    oleautomation
]
interface IVirtualBox : IDispatch
{
    [propget] HRESULT Version ([out, retval] BSTR * aVersion);

    [propget] HRESULT Revision ([out, retval] ULONG * aRevision);

    [propget] HRESULT PackageType ([out, retval] BSTR * aPackageType);

    [propget] HRESULT HomeFolder ([out, retval] BSTR * aHomeFolder);

    [propget] HRESULT SettingsFilePath ([out, retval] BSTR * aSettingsFilePath);

    [propget] HRESULT Host ([out, retval] IHost * * aHost);

    [propget] HRESULT SystemProperties ([out, retval] ISystemProperties * * aSystemProperties);

    [propget] HRESULT Machines ([out, retval] SAFEARRAY(IMachine *) * aMachines);

    [propget] HRESULT HardDisks ([out, retval] SAFEARRAY(IMedium *) * aHardDisks);

    [propget] HRESULT DVDImages ([out, retval] SAFEARRAY(IMedium *) * aDVDImages);

    [propget] HRESULT FloppyImages ([out, retval] SAFEARRAY(IMedium *) * aFloppyImages);

    [propget] HRESULT ProgressOperations ([out, retval] SAFEARRAY(IProgress *) * aProgressOperations);

    [propget] HRESULT GuestOSTypes ([out, retval] SAFEARRAY(IGuestOSType *) * aGuestOSTypes);

    [propget] HRESULT SharedFolders ([out, retval] SAFEARRAY(ISharedFolder *) * aSharedFolders);

    [propget] HRESULT PerformanceCollector ([out, retval] IPerformanceCollector * * aPerformanceCollector);

    [propget] HRESULT DHCPServers ([out, retval] SAFEARRAY(IDHCPServer *) * aDHCPServers);

    HRESULT CreateMachine (
        [in] BSTR aName,
        [in] BSTR aOsTypeId,
        [in] BSTR aBaseFolder,
        [in] BSTR aId,
        [in] BOOL aOverride,
        [out, retval] IMachine * * aMachine
    );

    HRESULT CreateLegacyMachine (
        [in] BSTR aName,
        [in] BSTR aOsTypeId,
        [in] BSTR aSettingsFile,
        [in] BSTR aId,
        [out, retval] IMachine * * aMachine
    );

    HRESULT OpenMachine (
        [in] BSTR aSettingsFile,
        [out, retval] IMachine * * aMachine
    );

    HRESULT RegisterMachine (
        [in] IMachine * aMachine
    );

    HRESULT GetMachine (
        [in] BSTR aId,
        [out, retval] IMachine * * aMachine
    );

    HRESULT FindMachine (
        [in] BSTR aName,
        [out, retval] IMachine * * aMachine
    );

    HRESULT UnregisterMachine (
        [in] BSTR aId,
        [out, retval] IMachine * * aMachine
    );

    HRESULT CreateAppliance (
        [out, retval] IAppliance * * aAppliance
    );

    HRESULT CreateHardDisk (
        [in] BSTR aFormat,
        [in] BSTR aLocation,
        [out, retval] IMedium * * aMedium
    );

    HRESULT OpenHardDisk (
        [in] BSTR aLocation,
        [in] AccessMode aAccessMode,
        [in] BOOL aSetImageId,
        [in] BSTR aImageId,
        [in] BOOL aSetParentId,
        [in] BSTR aParentId,
        [out, retval] IMedium * * aMedium
    );

    HRESULT GetHardDisk (
        [in] BSTR aId,
        [out, retval] IMedium * * aMedium
    );

    HRESULT FindHardDisk (
        [in] BSTR aLocation,
        [out, retval] IMedium * * aMedium
    );

    HRESULT OpenDVDImage (
        [in] BSTR aLocation,
        [in] BSTR aId,
        [out, retval] IMedium * * aImage
    );

    HRESULT GetDVDImage (
        [in] BSTR aId,
        [out, retval] IMedium * * aImage
    );

    HRESULT FindDVDImage (
        [in] BSTR aLocation,
        [out, retval] IMedium * * aImage
    );

    HRESULT OpenFloppyImage (
        [in] BSTR aLocation,
        [in] BSTR aId,
        [out, retval] IMedium * * aImage
    );

    HRESULT GetFloppyImage (
        [in] BSTR aId,
        [out, retval] IMedium * * aImage
    );

    HRESULT FindFloppyImage (
        [in] BSTR aLocation,
        [out, retval] IMedium * * aImage
    );

    HRESULT GetGuestOSType (
        [in] BSTR aId,
        [out, retval] IGuestOSType * * aType
    );

    HRESULT CreateSharedFolder (
        [in] BSTR aName,
        [in] BSTR aHostPath,
        [in] BOOL aWritable
    );

    HRESULT RemoveSharedFolder (
        [in] BSTR aName
    );

    HRESULT GetExtraDataKeys (
        [out, retval] SAFEARRAY(BSTR) * aValue
    );

    HRESULT GetExtraData (
        [in] BSTR aKey,
        [out, retval] BSTR * aValue
    );

    HRESULT SetExtraData (
        [in] BSTR aKey,
        [in] BSTR aValue
    );

    HRESULT OpenSession (
        [in] ISession * aSession,
        [in] BSTR aMachineId
    );

    HRESULT OpenRemoteSession (
        [in] ISession * aSession,
        [in] BSTR aMachineId,
        [in] BSTR aType,
        [in] BSTR aEnvironment,
        [out, retval] IProgress * * aProgress
    );

    HRESULT OpenExistingSession (
        [in] ISession * aSession,
        [in] BSTR aMachineId
    );

    HRESULT RegisterCallback (
        [in] IVirtualBoxCallback * aCallback
    );

    HRESULT UnregisterCallback (
        [in] IVirtualBoxCallback * aCallback
    );

    HRESULT WaitForPropertyChange (
        [in] BSTR aWhat,
        [in] ULONG aTimeout,
        [out] BSTR * aChanged,
        [out] BSTR * aValues
    );

    HRESULT CreateDHCPServer (
        [in] BSTR aName,
        [out, retval] IDHCPServer * * aServer
    );

    HRESULT FindDHCPServerByNetworkName (
        [in] BSTR aName,
        [out, retval] IDHCPServer * * aServer
    );

    HRESULT RemoveDHCPServer (
        [in] IDHCPServer * aServer
    );

    HRESULT CheckFirmwarePresent (
        [in] FirmwareType aFirmwareType,
        [in] BSTR aVersion,
        [out] BSTR * aUrl,
        [out] BSTR * aFile,
        [out, retval] BOOL * aResult
    );

}; /* interface IVirtualBox */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_Version_TO(smth) HRESULT STDMETHODCALLTYPE get_Version (BSTR * aVersion) { return smth get_Version (aVersion); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_Version_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_Version_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_Version_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_Version_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_Revision_TO(smth) HRESULT STDMETHODCALLTYPE get_Revision (ULONG * aRevision) { return smth get_Revision (aRevision); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_Revision_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_Revision_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_Revision_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_Revision_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_PackageType_TO(smth) HRESULT STDMETHODCALLTYPE get_PackageType (BSTR * aPackageType) { return smth get_PackageType (aPackageType); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_PackageType_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_PackageType_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_PackageType_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_PackageType_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_HomeFolder_TO(smth) HRESULT STDMETHODCALLTYPE get_HomeFolder (BSTR * aHomeFolder) { return smth get_HomeFolder (aHomeFolder); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_HomeFolder_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_HomeFolder_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_HomeFolder_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_HomeFolder_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_SettingsFilePath_TO(smth) HRESULT STDMETHODCALLTYPE get_SettingsFilePath (BSTR * aSettingsFilePath) { return smth get_SettingsFilePath (aSettingsFilePath); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_SettingsFilePath_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_SettingsFilePath_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_SettingsFilePath_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_SettingsFilePath_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_Host_TO(smth) HRESULT STDMETHODCALLTYPE get_Host (IHost * * aHost) { return smth get_Host (aHost); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_Host_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_Host_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_Host_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_Host_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_SystemProperties_TO(smth) HRESULT STDMETHODCALLTYPE get_SystemProperties (ISystemProperties * * aSystemProperties) { return smth get_SystemProperties (aSystemProperties); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_SystemProperties_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_SystemProperties_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_SystemProperties_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_SystemProperties_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_Machines_TO(smth) HRESULT STDMETHODCALLTYPE get_Machines (SAFEARRAY * * aMachines) { return smth get_Machines (aMachines); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_Machines_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_Machines_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_Machines_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_Machines_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_HardDisks_TO(smth) HRESULT STDMETHODCALLTYPE get_HardDisks (SAFEARRAY * * aHardDisks) { return smth get_HardDisks (aHardDisks); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_HardDisks_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_HardDisks_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_HardDisks_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_HardDisks_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_DVDImages_TO(smth) HRESULT STDMETHODCALLTYPE get_DVDImages (SAFEARRAY * * aDVDImages) { return smth get_DVDImages (aDVDImages); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_DVDImages_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_DVDImages_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_DVDImages_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_DVDImages_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_FloppyImages_TO(smth) HRESULT STDMETHODCALLTYPE get_FloppyImages (SAFEARRAY * * aFloppyImages) { return smth get_FloppyImages (aFloppyImages); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_FloppyImages_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_FloppyImages_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_FloppyImages_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_FloppyImages_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_ProgressOperations_TO(smth) HRESULT STDMETHODCALLTYPE get_ProgressOperations (SAFEARRAY * * aProgressOperations) { return smth get_ProgressOperations (aProgressOperations); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_ProgressOperations_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_ProgressOperations_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_ProgressOperations_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_ProgressOperations_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_GuestOSTypes_TO(smth) HRESULT STDMETHODCALLTYPE get_GuestOSTypes (SAFEARRAY * * aGuestOSTypes) { return smth get_GuestOSTypes (aGuestOSTypes); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_GuestOSTypes_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_GuestOSTypes_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_GuestOSTypes_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_GuestOSTypes_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_SharedFolders_TO(smth) HRESULT STDMETHODCALLTYPE get_SharedFolders (SAFEARRAY * * aSharedFolders) { return smth get_SharedFolders (aSharedFolders); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_SharedFolders_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_SharedFolders_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_SharedFolders_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_SharedFolders_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_PerformanceCollector_TO(smth) HRESULT STDMETHODCALLTYPE get_PerformanceCollector (IPerformanceCollector * * aPerformanceCollector) { return smth get_PerformanceCollector (aPerformanceCollector); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_PerformanceCollector_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_PerformanceCollector_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_PerformanceCollector_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_PerformanceCollector_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_DHCPServers_TO(smth) HRESULT STDMETHODCALLTYPE get_DHCPServers (SAFEARRAY * * aDHCPServers) { return smth get_DHCPServers (aDHCPServers); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_DHCPServers_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_DHCPServers_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_DHCPServers_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_DHCPServers_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_CreateMachine_TO(smth) HRESULT STDMETHODCALLTYPE CreateMachine (BSTR aName, BSTR aOsTypeId, BSTR aBaseFolder, BSTR aId, BOOL aOverride, IMachine * * aMachine) { return smth CreateMachine (aName, aOsTypeId, aBaseFolder, aId, aOverride, aMachine); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_CreateMachine_TO_OBJ(obj) COM_FORWARD_IVirtualBox_CreateMachine_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_CreateMachine_TO_BASE(base) COM_FORWARD_IVirtualBox_CreateMachine_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_CreateLegacyMachine_TO(smth) HRESULT STDMETHODCALLTYPE CreateLegacyMachine (BSTR aName, BSTR aOsTypeId, BSTR aSettingsFile, BSTR aId, IMachine * * aMachine) { return smth CreateLegacyMachine (aName, aOsTypeId, aSettingsFile, aId, aMachine); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_CreateLegacyMachine_TO_OBJ(obj) COM_FORWARD_IVirtualBox_CreateLegacyMachine_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_CreateLegacyMachine_TO_BASE(base) COM_FORWARD_IVirtualBox_CreateLegacyMachine_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_OpenMachine_TO(smth) HRESULT STDMETHODCALLTYPE OpenMachine (BSTR aSettingsFile, IMachine * * aMachine) { return smth OpenMachine (aSettingsFile, aMachine); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_OpenMachine_TO_OBJ(obj) COM_FORWARD_IVirtualBox_OpenMachine_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_OpenMachine_TO_BASE(base) COM_FORWARD_IVirtualBox_OpenMachine_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_RegisterMachine_TO(smth) HRESULT STDMETHODCALLTYPE RegisterMachine (IMachine * aMachine) { return smth RegisterMachine (aMachine); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_RegisterMachine_TO_OBJ(obj) COM_FORWARD_IVirtualBox_RegisterMachine_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_RegisterMachine_TO_BASE(base) COM_FORWARD_IVirtualBox_RegisterMachine_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GetMachine_TO(smth) HRESULT STDMETHODCALLTYPE GetMachine (BSTR aId, IMachine * * aMachine) { return smth GetMachine (aId, aMachine); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_GetMachine_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GetMachine_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GetMachine_TO_BASE(base) COM_FORWARD_IVirtualBox_GetMachine_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_FindMachine_TO(smth) HRESULT STDMETHODCALLTYPE FindMachine (BSTR aName, IMachine * * aMachine) { return smth FindMachine (aName, aMachine); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_FindMachine_TO_OBJ(obj) COM_FORWARD_IVirtualBox_FindMachine_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_FindMachine_TO_BASE(base) COM_FORWARD_IVirtualBox_FindMachine_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_UnregisterMachine_TO(smth) HRESULT STDMETHODCALLTYPE UnregisterMachine (BSTR aId, IMachine * * aMachine) { return smth UnregisterMachine (aId, aMachine); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_UnregisterMachine_TO_OBJ(obj) COM_FORWARD_IVirtualBox_UnregisterMachine_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_UnregisterMachine_TO_BASE(base) COM_FORWARD_IVirtualBox_UnregisterMachine_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_CreateAppliance_TO(smth) HRESULT STDMETHODCALLTYPE CreateAppliance (IAppliance * * aAppliance) { return smth CreateAppliance (aAppliance); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_CreateAppliance_TO_OBJ(obj) COM_FORWARD_IVirtualBox_CreateAppliance_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_CreateAppliance_TO_BASE(base) COM_FORWARD_IVirtualBox_CreateAppliance_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_CreateHardDisk_TO(smth) HRESULT STDMETHODCALLTYPE CreateHardDisk (BSTR aFormat, BSTR aLocation, IMedium * * aMedium) { return smth CreateHardDisk (aFormat, aLocation, aMedium); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_CreateHardDisk_TO_OBJ(obj) COM_FORWARD_IVirtualBox_CreateHardDisk_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_CreateHardDisk_TO_BASE(base) COM_FORWARD_IVirtualBox_CreateHardDisk_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_OpenHardDisk_TO(smth) HRESULT STDMETHODCALLTYPE OpenHardDisk (BSTR aLocation, AccessMode aAccessMode, BOOL aSetImageId, BSTR aImageId, BOOL aSetParentId, BSTR aParentId, IMedium * * aMedium) { return smth OpenHardDisk (aLocation, aAccessMode, aSetImageId, aImageId, aSetParentId, aParentId, aMedium); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_OpenHardDisk_TO_OBJ(obj) COM_FORWARD_IVirtualBox_OpenHardDisk_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_OpenHardDisk_TO_BASE(base) COM_FORWARD_IVirtualBox_OpenHardDisk_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GetHardDisk_TO(smth) HRESULT STDMETHODCALLTYPE GetHardDisk (BSTR aId, IMedium * * aMedium) { return smth GetHardDisk (aId, aMedium); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_GetHardDisk_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GetHardDisk_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GetHardDisk_TO_BASE(base) COM_FORWARD_IVirtualBox_GetHardDisk_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_FindHardDisk_TO(smth) HRESULT STDMETHODCALLTYPE FindHardDisk (BSTR aLocation, IMedium * * aMedium) { return smth FindHardDisk (aLocation, aMedium); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_FindHardDisk_TO_OBJ(obj) COM_FORWARD_IVirtualBox_FindHardDisk_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_FindHardDisk_TO_BASE(base) COM_FORWARD_IVirtualBox_FindHardDisk_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_OpenDVDImage_TO(smth) HRESULT STDMETHODCALLTYPE OpenDVDImage (BSTR aLocation, BSTR aId, IMedium * * aImage) { return smth OpenDVDImage (aLocation, aId, aImage); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_OpenDVDImage_TO_OBJ(obj) COM_FORWARD_IVirtualBox_OpenDVDImage_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_OpenDVDImage_TO_BASE(base) COM_FORWARD_IVirtualBox_OpenDVDImage_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GetDVDImage_TO(smth) HRESULT STDMETHODCALLTYPE GetDVDImage (BSTR aId, IMedium * * aImage) { return smth GetDVDImage (aId, aImage); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_GetDVDImage_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GetDVDImage_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GetDVDImage_TO_BASE(base) COM_FORWARD_IVirtualBox_GetDVDImage_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_FindDVDImage_TO(smth) HRESULT STDMETHODCALLTYPE FindDVDImage (BSTR aLocation, IMedium * * aImage) { return smth FindDVDImage (aLocation, aImage); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_FindDVDImage_TO_OBJ(obj) COM_FORWARD_IVirtualBox_FindDVDImage_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_FindDVDImage_TO_BASE(base) COM_FORWARD_IVirtualBox_FindDVDImage_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_OpenFloppyImage_TO(smth) HRESULT STDMETHODCALLTYPE OpenFloppyImage (BSTR aLocation, BSTR aId, IMedium * * aImage) { return smth OpenFloppyImage (aLocation, aId, aImage); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_OpenFloppyImage_TO_OBJ(obj) COM_FORWARD_IVirtualBox_OpenFloppyImage_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_OpenFloppyImage_TO_BASE(base) COM_FORWARD_IVirtualBox_OpenFloppyImage_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GetFloppyImage_TO(smth) HRESULT STDMETHODCALLTYPE GetFloppyImage (BSTR aId, IMedium * * aImage) { return smth GetFloppyImage (aId, aImage); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_GetFloppyImage_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GetFloppyImage_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GetFloppyImage_TO_BASE(base) COM_FORWARD_IVirtualBox_GetFloppyImage_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_FindFloppyImage_TO(smth) HRESULT STDMETHODCALLTYPE FindFloppyImage (BSTR aLocation, IMedium * * aImage) { return smth FindFloppyImage (aLocation, aImage); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_FindFloppyImage_TO_OBJ(obj) COM_FORWARD_IVirtualBox_FindFloppyImage_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_FindFloppyImage_TO_BASE(base) COM_FORWARD_IVirtualBox_FindFloppyImage_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GetGuestOSType_TO(smth) HRESULT STDMETHODCALLTYPE GetGuestOSType (BSTR aId, IGuestOSType * * aType) { return smth GetGuestOSType (aId, aType); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_GetGuestOSType_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GetGuestOSType_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GetGuestOSType_TO_BASE(base) COM_FORWARD_IVirtualBox_GetGuestOSType_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_CreateSharedFolder_TO(smth) HRESULT STDMETHODCALLTYPE CreateSharedFolder (BSTR aName, BSTR aHostPath, BOOL aWritable) { return smth CreateSharedFolder (aName, aHostPath, aWritable); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_CreateSharedFolder_TO_OBJ(obj) COM_FORWARD_IVirtualBox_CreateSharedFolder_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_CreateSharedFolder_TO_BASE(base) COM_FORWARD_IVirtualBox_CreateSharedFolder_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_RemoveSharedFolder_TO(smth) HRESULT STDMETHODCALLTYPE RemoveSharedFolder (BSTR aName) { return smth RemoveSharedFolder (aName); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_RemoveSharedFolder_TO_OBJ(obj) COM_FORWARD_IVirtualBox_RemoveSharedFolder_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_RemoveSharedFolder_TO_BASE(base) COM_FORWARD_IVirtualBox_RemoveSharedFolder_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GetExtraDataKeys_TO(smth) HRESULT STDMETHODCALLTYPE GetExtraDataKeys (SAFEARRAY * * aValue) { return smth GetExtraDataKeys (aValue); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_GetExtraDataKeys_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GetExtraDataKeys_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GetExtraDataKeys_TO_BASE(base) COM_FORWARD_IVirtualBox_GetExtraDataKeys_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GetExtraData_TO(smth) HRESULT STDMETHODCALLTYPE GetExtraData (BSTR aKey, BSTR * aValue) { return smth GetExtraData (aKey, aValue); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_GetExtraData_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GetExtraData_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GetExtraData_TO_BASE(base) COM_FORWARD_IVirtualBox_GetExtraData_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_SetExtraData_TO(smth) HRESULT STDMETHODCALLTYPE SetExtraData (BSTR aKey, BSTR aValue) { return smth SetExtraData (aKey, aValue); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_SetExtraData_TO_OBJ(obj) COM_FORWARD_IVirtualBox_SetExtraData_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_SetExtraData_TO_BASE(base) COM_FORWARD_IVirtualBox_SetExtraData_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_OpenSession_TO(smth) HRESULT STDMETHODCALLTYPE OpenSession (ISession * aSession, BSTR aMachineId) { return smth OpenSession (aSession, aMachineId); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_OpenSession_TO_OBJ(obj) COM_FORWARD_IVirtualBox_OpenSession_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_OpenSession_TO_BASE(base) COM_FORWARD_IVirtualBox_OpenSession_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_OpenRemoteSession_TO(smth) HRESULT STDMETHODCALLTYPE OpenRemoteSession (ISession * aSession, BSTR aMachineId, BSTR aType, BSTR aEnvironment, IProgress * * aProgress) { return smth OpenRemoteSession (aSession, aMachineId, aType, aEnvironment, aProgress); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_OpenRemoteSession_TO_OBJ(obj) COM_FORWARD_IVirtualBox_OpenRemoteSession_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_OpenRemoteSession_TO_BASE(base) COM_FORWARD_IVirtualBox_OpenRemoteSession_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_OpenExistingSession_TO(smth) HRESULT STDMETHODCALLTYPE OpenExistingSession (ISession * aSession, BSTR aMachineId) { return smth OpenExistingSession (aSession, aMachineId); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_OpenExistingSession_TO_OBJ(obj) COM_FORWARD_IVirtualBox_OpenExistingSession_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_OpenExistingSession_TO_BASE(base) COM_FORWARD_IVirtualBox_OpenExistingSession_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_RegisterCallback_TO(smth) HRESULT STDMETHODCALLTYPE RegisterCallback (IVirtualBoxCallback * aCallback) { return smth RegisterCallback (aCallback); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_RegisterCallback_TO_OBJ(obj) COM_FORWARD_IVirtualBox_RegisterCallback_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_RegisterCallback_TO_BASE(base) COM_FORWARD_IVirtualBox_RegisterCallback_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_UnregisterCallback_TO(smth) HRESULT STDMETHODCALLTYPE UnregisterCallback (IVirtualBoxCallback * aCallback) { return smth UnregisterCallback (aCallback); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_UnregisterCallback_TO_OBJ(obj) COM_FORWARD_IVirtualBox_UnregisterCallback_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_UnregisterCallback_TO_BASE(base) COM_FORWARD_IVirtualBox_UnregisterCallback_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_WaitForPropertyChange_TO(smth) HRESULT STDMETHODCALLTYPE WaitForPropertyChange (BSTR aWhat, ULONG aTimeout, BSTR * aChanged, BSTR * aValues) { return smth WaitForPropertyChange (aWhat, aTimeout, aChanged, aValues); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_WaitForPropertyChange_TO_OBJ(obj) COM_FORWARD_IVirtualBox_WaitForPropertyChange_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_WaitForPropertyChange_TO_BASE(base) COM_FORWARD_IVirtualBox_WaitForPropertyChange_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_CreateDHCPServer_TO(smth) HRESULT STDMETHODCALLTYPE CreateDHCPServer (BSTR aName, IDHCPServer * * aServer) { return smth CreateDHCPServer (aName, aServer); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_CreateDHCPServer_TO_OBJ(obj) COM_FORWARD_IVirtualBox_CreateDHCPServer_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_CreateDHCPServer_TO_BASE(base) COM_FORWARD_IVirtualBox_CreateDHCPServer_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_FindDHCPServerByNetworkName_TO(smth) HRESULT STDMETHODCALLTYPE FindDHCPServerByNetworkName (BSTR aName, IDHCPServer * * aServer) { return smth FindDHCPServerByNetworkName (aName, aServer); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_FindDHCPServerByNetworkName_TO_OBJ(obj) COM_FORWARD_IVirtualBox_FindDHCPServerByNetworkName_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_FindDHCPServerByNetworkName_TO_BASE(base) COM_FORWARD_IVirtualBox_FindDHCPServerByNetworkName_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_RemoveDHCPServer_TO(smth) HRESULT STDMETHODCALLTYPE RemoveDHCPServer (IDHCPServer * aServer) { return smth RemoveDHCPServer (aServer); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_RemoveDHCPServer_TO_OBJ(obj) COM_FORWARD_IVirtualBox_RemoveDHCPServer_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_RemoveDHCPServer_TO_BASE(base) COM_FORWARD_IVirtualBox_RemoveDHCPServer_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_CheckFirmwarePresent_TO(smth) HRESULT STDMETHODCALLTYPE CheckFirmwarePresent (FirmwareType aFirmwareType, BSTR aVersion, BSTR * aUrl, BSTR * aFile, BOOL * aResult) { return smth CheckFirmwarePresent (aFirmwareType, aVersion, aUrl, aFile, aResult); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_CheckFirmwarePresent_TO_OBJ(obj) COM_FORWARD_IVirtualBox_CheckFirmwarePresent_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_CheckFirmwarePresent_TO_BASE(base) COM_FORWARD_IVirtualBox_CheckFirmwarePresent_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_TO(smth) COM_FORWARD_IVirtualBox_GETTER_Version_TO (smth) COM_FORWARD_IVirtualBox_GETTER_Revision_TO (smth) COM_FORWARD_IVirtualBox_GETTER_PackageType_TO (smth) COM_FORWARD_IVirtualBox_GETTER_HomeFolder_TO (smth) COM_FORWARD_IVirtualBox_GETTER_SettingsFilePath_TO (smth) COM_FORWARD_IVirtualBox_GETTER_Host_TO (smth) COM_FORWARD_IVirtualBox_GETTER_SystemProperties_TO (smth) COM_FORWARD_IVirtualBox_GETTER_Machines_TO (smth) COM_FORWARD_IVirtualBox_GETTER_HardDisks_TO (smth) COM_FORWARD_IVirtualBox_GETTER_DVDImages_TO (smth) COM_FORWARD_IVirtualBox_GETTER_FloppyImages_TO (smth) COM_FORWARD_IVirtualBox_GETTER_ProgressOperations_TO (smth) COM_FORWARD_IVirtualBox_GETTER_GuestOSTypes_TO (smth) COM_FORWARD_IVirtualBox_GETTER_SharedFolders_TO (smth) COM_FORWARD_IVirtualBox_GETTER_PerformanceCollector_TO (smth) COM_FORWARD_IVirtualBox_GETTER_DHCPServers_TO (smth) COM_FORWARD_IVirtualBox_CreateMachine_TO (smth) COM_FORWARD_IVirtualBox_CreateLegacyMachine_TO (smth) COM_FORWARD_IVirtualBox_OpenMachine_TO (smth) COM_FORWARD_IVirtualBox_RegisterMachine_TO (smth) COM_FORWARD_IVirtualBox_GetMachine_TO (smth) COM_FORWARD_IVirtualBox_FindMachine_TO (smth) COM_FORWARD_IVirtualBox_UnregisterMachine_TO (smth) COM_FORWARD_IVirtualBox_CreateAppliance_TO (smth) COM_FORWARD_IVirtualBox_CreateHardDisk_TO (smth) COM_FORWARD_IVirtualBox_OpenHardDisk_TO (smth) COM_FORWARD_IVirtualBox_GetHardDisk_TO (smth) COM_FORWARD_IVirtualBox_FindHardDisk_TO (smth) COM_FORWARD_IVirtualBox_OpenDVDImage_TO (smth) COM_FORWARD_IVirtualBox_GetDVDImage_TO (smth) COM_FORWARD_IVirtualBox_FindDVDImage_TO (smth) COM_FORWARD_IVirtualBox_OpenFloppyImage_TO (smth) COM_FORWARD_IVirtualBox_GetFloppyImage_TO (smth) COM_FORWARD_IVirtualBox_FindFloppyImage_TO (smth) COM_FORWARD_IVirtualBox_GetGuestOSType_TO (smth) COM_FORWARD_IVirtualBox_CreateSharedFolder_TO (smth) COM_FORWARD_IVirtualBox_RemoveSharedFolder_TO (smth) COM_FORWARD_IVirtualBox_GetExtraDataKeys_TO (smth) COM_FORWARD_IVirtualBox_GetExtraData_TO (smth) COM_FORWARD_IVirtualBox_SetExtraData_TO (smth) COM_FORWARD_IVirtualBox_OpenSession_TO (smth) COM_FORWARD_IVirtualBox_OpenRemoteSession_TO (smth) COM_FORWARD_IVirtualBox_OpenExistingSession_TO (smth) COM_FORWARD_IVirtualBox_RegisterCallback_TO (smth) COM_FORWARD_IVirtualBox_UnregisterCallback_TO (smth) COM_FORWARD_IVirtualBox_WaitForPropertyChange_TO (smth) COM_FORWARD_IVirtualBox_CreateDHCPServer_TO (smth) COM_FORWARD_IVirtualBox_FindDHCPServerByNetworkName_TO (smth) COM_FORWARD_IVirtualBox_RemoveDHCPServer_TO (smth) COM_FORWARD_IVirtualBox_CheckFirmwarePresent_TO (smth) ")
cpp_quote("#define COM_FORWARD_IVirtualBox_TO_OBJ(obj) COM_FORWARD_IVirtualBox_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_TO_BASE(base) COM_FORWARD_IVirtualBox_TO (base::)")

[
    uuid(2bb864a1-02a3-4474-a1d4-fb5f23b742e1),
    object,
    dual,
    oleautomation
]
interface IVFSExplorer : IDispatch
{
    [propget] HRESULT Path ([out, retval] BSTR * aPath);

    [propget] HRESULT Type ([out, retval] VFSType * aType);

    HRESULT Update (
        [out, retval] IProgress * * aAProgress
    );

    HRESULT Cd (
        [in] BSTR aADir,
        [out, retval] IProgress * * aAProgress
    );

    HRESULT CdUp (
        [out, retval] IProgress * * aAProgress
    );

    HRESULT EntryList (
        [out] SAFEARRAY(BSTR) * aANames,
        [out] SAFEARRAY(ULONG) * aATypes
    );

    HRESULT Exists (
        [in, out] SAFEARRAY(BSTR) * aANames,
        [out, retval] SAFEARRAY(BSTR) * aAExists
    );

    HRESULT Remove (
        [in, out] SAFEARRAY(BSTR) * aANames,
        [out, retval] IProgress * * aAProgress
    );

}; /* interface IVFSExplorer */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IVFSExplorer_GETTER_Path_TO(smth) HRESULT STDMETHODCALLTYPE get_Path (BSTR * aPath) { return smth get_Path (aPath); }")
cpp_quote("#define COM_FORWARD_IVFSExplorer_GETTER_Path_TO_OBJ(obj) COM_FORWARD_IVFSExplorer_GETTER_Path_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVFSExplorer_GETTER_Path_TO_BASE(base) COM_FORWARD_IVFSExplorer_GETTER_Path_TO (base::)")
cpp_quote("#define COM_FORWARD_IVFSExplorer_GETTER_Type_TO(smth) HRESULT STDMETHODCALLTYPE get_Type (VFSType * aType) { return smth get_Type (aType); }")
cpp_quote("#define COM_FORWARD_IVFSExplorer_GETTER_Type_TO_OBJ(obj) COM_FORWARD_IVFSExplorer_GETTER_Type_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVFSExplorer_GETTER_Type_TO_BASE(base) COM_FORWARD_IVFSExplorer_GETTER_Type_TO (base::)")
cpp_quote("#define COM_FORWARD_IVFSExplorer_Update_TO(smth) HRESULT STDMETHODCALLTYPE Update (IProgress * * aAProgress) { return smth Update (aAProgress); }")
cpp_quote("#define COM_FORWARD_IVFSExplorer_Update_TO_OBJ(obj) COM_FORWARD_IVFSExplorer_Update_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVFSExplorer_Update_TO_BASE(base) COM_FORWARD_IVFSExplorer_Update_TO (base::)")
cpp_quote("#define COM_FORWARD_IVFSExplorer_Cd_TO(smth) HRESULT STDMETHODCALLTYPE Cd (BSTR aADir, IProgress * * aAProgress) { return smth Cd (aADir, aAProgress); }")
cpp_quote("#define COM_FORWARD_IVFSExplorer_Cd_TO_OBJ(obj) COM_FORWARD_IVFSExplorer_Cd_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVFSExplorer_Cd_TO_BASE(base) COM_FORWARD_IVFSExplorer_Cd_TO (base::)")
cpp_quote("#define COM_FORWARD_IVFSExplorer_CdUp_TO(smth) HRESULT STDMETHODCALLTYPE CdUp (IProgress * * aAProgress) { return smth CdUp (aAProgress); }")
cpp_quote("#define COM_FORWARD_IVFSExplorer_CdUp_TO_OBJ(obj) COM_FORWARD_IVFSExplorer_CdUp_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVFSExplorer_CdUp_TO_BASE(base) COM_FORWARD_IVFSExplorer_CdUp_TO (base::)")
cpp_quote("#define COM_FORWARD_IVFSExplorer_EntryList_TO(smth) HRESULT STDMETHODCALLTYPE EntryList (SAFEARRAY * * aANames, SAFEARRAY * * aATypes) { return smth EntryList (aANames, aATypes); }")
cpp_quote("#define COM_FORWARD_IVFSExplorer_EntryList_TO_OBJ(obj) COM_FORWARD_IVFSExplorer_EntryList_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVFSExplorer_EntryList_TO_BASE(base) COM_FORWARD_IVFSExplorer_EntryList_TO (base::)")
cpp_quote("#define COM_FORWARD_IVFSExplorer_Exists_TO(smth) HRESULT STDMETHODCALLTYPE Exists (SAFEARRAY * * aANames, SAFEARRAY * * aAExists) { return smth Exists (aANames, aAExists); }")
cpp_quote("#define COM_FORWARD_IVFSExplorer_Exists_TO_OBJ(obj) COM_FORWARD_IVFSExplorer_Exists_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVFSExplorer_Exists_TO_BASE(base) COM_FORWARD_IVFSExplorer_Exists_TO (base::)")
cpp_quote("#define COM_FORWARD_IVFSExplorer_Remove_TO(smth) HRESULT STDMETHODCALLTYPE Remove (SAFEARRAY * * aANames, IProgress * * aAProgress) { return smth Remove (aANames, aAProgress); }")
cpp_quote("#define COM_FORWARD_IVFSExplorer_Remove_TO_OBJ(obj) COM_FORWARD_IVFSExplorer_Remove_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVFSExplorer_Remove_TO_BASE(base) COM_FORWARD_IVFSExplorer_Remove_TO (base::)")
cpp_quote("#define COM_FORWARD_IVFSExplorer_TO(smth) COM_FORWARD_IVFSExplorer_GETTER_Path_TO (smth) COM_FORWARD_IVFSExplorer_GETTER_Type_TO (smth) COM_FORWARD_IVFSExplorer_Update_TO (smth) COM_FORWARD_IVFSExplorer_Cd_TO (smth) COM_FORWARD_IVFSExplorer_CdUp_TO (smth) COM_FORWARD_IVFSExplorer_EntryList_TO (smth) COM_FORWARD_IVFSExplorer_Exists_TO (smth) COM_FORWARD_IVFSExplorer_Remove_TO (smth) ")
cpp_quote("#define COM_FORWARD_IVFSExplorer_TO_OBJ(obj) COM_FORWARD_IVFSExplorer_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVFSExplorer_TO_BASE(base) COM_FORWARD_IVFSExplorer_TO (base::)")

[
    uuid(e3ba9ab9-ac2c-4266-8bd2-91c4bf721ceb),
    object,
    dual,
    oleautomation
]
interface IAppliance : IDispatch
{
    [propget] HRESULT Path ([out, retval] BSTR * aPath);

    [propget] HRESULT Disks ([out, retval] SAFEARRAY(BSTR) * aDisks);

    [propget] HRESULT VirtualSystemDescriptions ([out, retval] SAFEARRAY(IVirtualSystemDescription *) * aVirtualSystemDescriptions);

    HRESULT Read (
        [in] BSTR aFile,
        [out, retval] IProgress * * aAProgress
    );

    HRESULT Interpret();

    HRESULT ImportMachines (
        [out, retval] IProgress * * aAProgress
    );

    HRESULT CreateVFSExplorer (
        [in] BSTR aAUri,
        [out, retval] IVFSExplorer * * aAExplorer
    );

    HRESULT Write (
        [in] BSTR aFormat,
        [in] BSTR aPath,
        [out, retval] IProgress * * aAProgress
    );

    HRESULT GetWarnings (
        [out, retval] SAFEARRAY(BSTR) * aAWarnings
    );

}; /* interface IAppliance */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IAppliance_GETTER_Path_TO(smth) HRESULT STDMETHODCALLTYPE get_Path (BSTR * aPath) { return smth get_Path (aPath); }")
cpp_quote("#define COM_FORWARD_IAppliance_GETTER_Path_TO_OBJ(obj) COM_FORWARD_IAppliance_GETTER_Path_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IAppliance_GETTER_Path_TO_BASE(base) COM_FORWARD_IAppliance_GETTER_Path_TO (base::)")
cpp_quote("#define COM_FORWARD_IAppliance_GETTER_Disks_TO(smth) HRESULT STDMETHODCALLTYPE get_Disks (SAFEARRAY * * aDisks) { return smth get_Disks (aDisks); }")
cpp_quote("#define COM_FORWARD_IAppliance_GETTER_Disks_TO_OBJ(obj) COM_FORWARD_IAppliance_GETTER_Disks_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IAppliance_GETTER_Disks_TO_BASE(base) COM_FORWARD_IAppliance_GETTER_Disks_TO (base::)")
cpp_quote("#define COM_FORWARD_IAppliance_GETTER_VirtualSystemDescriptions_TO(smth) HRESULT STDMETHODCALLTYPE get_VirtualSystemDescriptions (SAFEARRAY * * aVirtualSystemDescriptions) { return smth get_VirtualSystemDescriptions (aVirtualSystemDescriptions); }")
cpp_quote("#define COM_FORWARD_IAppliance_GETTER_VirtualSystemDescriptions_TO_OBJ(obj) COM_FORWARD_IAppliance_GETTER_VirtualSystemDescriptions_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IAppliance_GETTER_VirtualSystemDescriptions_TO_BASE(base) COM_FORWARD_IAppliance_GETTER_VirtualSystemDescriptions_TO (base::)")
cpp_quote("#define COM_FORWARD_IAppliance_Read_TO(smth) HRESULT STDMETHODCALLTYPE Read (BSTR aFile, IProgress * * aAProgress) { return smth Read (aFile, aAProgress); }")
cpp_quote("#define COM_FORWARD_IAppliance_Read_TO_OBJ(obj) COM_FORWARD_IAppliance_Read_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IAppliance_Read_TO_BASE(base) COM_FORWARD_IAppliance_Read_TO (base::)")
cpp_quote("#define COM_FORWARD_IAppliance_Interpret_TO(smth) HRESULT STDMETHODCALLTYPE Interpret() { return smth Interpret(); }")
cpp_quote("#define COM_FORWARD_IAppliance_Interpret_TO_OBJ(obj) COM_FORWARD_IAppliance_Interpret_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IAppliance_Interpret_TO_BASE(base) COM_FORWARD_IAppliance_Interpret_TO (base::)")
cpp_quote("#define COM_FORWARD_IAppliance_ImportMachines_TO(smth) HRESULT STDMETHODCALLTYPE ImportMachines (IProgress * * aAProgress) { return smth ImportMachines (aAProgress); }")
cpp_quote("#define COM_FORWARD_IAppliance_ImportMachines_TO_OBJ(obj) COM_FORWARD_IAppliance_ImportMachines_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IAppliance_ImportMachines_TO_BASE(base) COM_FORWARD_IAppliance_ImportMachines_TO (base::)")
cpp_quote("#define COM_FORWARD_IAppliance_CreateVFSExplorer_TO(smth) HRESULT STDMETHODCALLTYPE CreateVFSExplorer (BSTR aAUri, IVFSExplorer * * aAExplorer) { return smth CreateVFSExplorer (aAUri, aAExplorer); }")
cpp_quote("#define COM_FORWARD_IAppliance_CreateVFSExplorer_TO_OBJ(obj) COM_FORWARD_IAppliance_CreateVFSExplorer_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IAppliance_CreateVFSExplorer_TO_BASE(base) COM_FORWARD_IAppliance_CreateVFSExplorer_TO (base::)")
cpp_quote("#define COM_FORWARD_IAppliance_Write_TO(smth) HRESULT STDMETHODCALLTYPE Write (BSTR aFormat, BSTR aPath, IProgress * * aAProgress) { return smth Write (aFormat, aPath, aAProgress); }")
cpp_quote("#define COM_FORWARD_IAppliance_Write_TO_OBJ(obj) COM_FORWARD_IAppliance_Write_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IAppliance_Write_TO_BASE(base) COM_FORWARD_IAppliance_Write_TO (base::)")
cpp_quote("#define COM_FORWARD_IAppliance_GetWarnings_TO(smth) HRESULT STDMETHODCALLTYPE GetWarnings (SAFEARRAY * * aAWarnings) { return smth GetWarnings (aAWarnings); }")
cpp_quote("#define COM_FORWARD_IAppliance_GetWarnings_TO_OBJ(obj) COM_FORWARD_IAppliance_GetWarnings_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IAppliance_GetWarnings_TO_BASE(base) COM_FORWARD_IAppliance_GetWarnings_TO (base::)")
cpp_quote("#define COM_FORWARD_IAppliance_TO(smth) COM_FORWARD_IAppliance_GETTER_Path_TO (smth) COM_FORWARD_IAppliance_GETTER_Disks_TO (smth) COM_FORWARD_IAppliance_GETTER_VirtualSystemDescriptions_TO (smth) COM_FORWARD_IAppliance_Read_TO (smth) COM_FORWARD_IAppliance_Interpret_TO (smth) COM_FORWARD_IAppliance_ImportMachines_TO (smth) COM_FORWARD_IAppliance_CreateVFSExplorer_TO (smth) COM_FORWARD_IAppliance_Write_TO (smth) COM_FORWARD_IAppliance_GetWarnings_TO (smth) ")
cpp_quote("#define COM_FORWARD_IAppliance_TO_OBJ(obj) COM_FORWARD_IAppliance_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IAppliance_TO_BASE(base) COM_FORWARD_IAppliance_TO (base::)")

[
    uuid(d7525e6c-531a-4c51-8e04-41235083a3d8),
    object,
    dual,
    oleautomation
]
interface IVirtualSystemDescription : IDispatch
{
    [propget] HRESULT Count ([out, retval] ULONG * aCount);

    HRESULT GetDescription (
        [out] SAFEARRAY(VirtualSystemDescriptionType) * aATypes,
        [out] SAFEARRAY(BSTR) * aARefs,
        [out] SAFEARRAY(BSTR) * aAOvfValues,
        [out] SAFEARRAY(BSTR) * aAVBoxValues,
        [out] SAFEARRAY(BSTR) * aAExtraConfigValues
    );

    HRESULT GetDescriptionByType (
        [in] VirtualSystemDescriptionType aAType,
        [out] SAFEARRAY(VirtualSystemDescriptionType) * aATypes,
        [out] SAFEARRAY(BSTR) * aARefs,
        [out] SAFEARRAY(BSTR) * aAOvfValues,
        [out] SAFEARRAY(BSTR) * aAVBoxValues,
        [out] SAFEARRAY(BSTR) * aAExtraConfigValues
    );

    HRESULT GetValuesByType (
        [in] VirtualSystemDescriptionType aAType,
        [in] VirtualSystemDescriptionValueType aAWhich,
        [out, retval] SAFEARRAY(BSTR) * aAValues
    );

    HRESULT SetFinalValues (
        [in, out] SAFEARRAY(BOOL) * aAEnabled,
        [in, out] SAFEARRAY(BSTR) * aAVBoxValues,
        [in, out] SAFEARRAY(BSTR) * aAExtraConfigValues
    );

    HRESULT AddDescription (
        [in] VirtualSystemDescriptionType aAType,
        [in] BSTR aAVBoxValue,
        [in] BSTR aAExtraConfigValue
    );

}; /* interface IVirtualSystemDescription */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IVirtualSystemDescription_GETTER_Count_TO(smth) HRESULT STDMETHODCALLTYPE get_Count (ULONG * aCount) { return smth get_Count (aCount); }")
cpp_quote("#define COM_FORWARD_IVirtualSystemDescription_GETTER_Count_TO_OBJ(obj) COM_FORWARD_IVirtualSystemDescription_GETTER_Count_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualSystemDescription_GETTER_Count_TO_BASE(base) COM_FORWARD_IVirtualSystemDescription_GETTER_Count_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualSystemDescription_GetDescription_TO(smth) HRESULT STDMETHODCALLTYPE GetDescription (SAFEARRAY * * aATypes, SAFEARRAY * * aARefs, SAFEARRAY * * aAOvfValues, SAFEARRAY * * aAVBoxValues, SAFEARRAY * * aAExtraConfigValues) { return smth GetDescription (aATypes, aARefs, aAOvfValues, aAVBoxValues, aAExtraConfigValues); }")
cpp_quote("#define COM_FORWARD_IVirtualSystemDescription_GetDescription_TO_OBJ(obj) COM_FORWARD_IVirtualSystemDescription_GetDescription_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualSystemDescription_GetDescription_TO_BASE(base) COM_FORWARD_IVirtualSystemDescription_GetDescription_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualSystemDescription_GetDescriptionByType_TO(smth) HRESULT STDMETHODCALLTYPE GetDescriptionByType (VirtualSystemDescriptionType aAType, SAFEARRAY * * aATypes, SAFEARRAY * * aARefs, SAFEARRAY * * aAOvfValues, SAFEARRAY * * aAVBoxValues, SAFEARRAY * * aAExtraConfigValues) { return smth GetDescriptionByType (aAType, aATypes, aARefs, aAOvfValues, aAVBoxValues, aAExtraConfigValues); }")
cpp_quote("#define COM_FORWARD_IVirtualSystemDescription_GetDescriptionByType_TO_OBJ(obj) COM_FORWARD_IVirtualSystemDescription_GetDescriptionByType_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualSystemDescription_GetDescriptionByType_TO_BASE(base) COM_FORWARD_IVirtualSystemDescription_GetDescriptionByType_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualSystemDescription_GetValuesByType_TO(smth) HRESULT STDMETHODCALLTYPE GetValuesByType (VirtualSystemDescriptionType aAType, VirtualSystemDescriptionValueType aAWhich, SAFEARRAY * * aAValues) { return smth GetValuesByType (aAType, aAWhich, aAValues); }")
cpp_quote("#define COM_FORWARD_IVirtualSystemDescription_GetValuesByType_TO_OBJ(obj) COM_FORWARD_IVirtualSystemDescription_GetValuesByType_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualSystemDescription_GetValuesByType_TO_BASE(base) COM_FORWARD_IVirtualSystemDescription_GetValuesByType_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualSystemDescription_SetFinalValues_TO(smth) HRESULT STDMETHODCALLTYPE SetFinalValues (SAFEARRAY * * aAEnabled, SAFEARRAY * * aAVBoxValues, SAFEARRAY * * aAExtraConfigValues) { return smth SetFinalValues (aAEnabled, aAVBoxValues, aAExtraConfigValues); }")
cpp_quote("#define COM_FORWARD_IVirtualSystemDescription_SetFinalValues_TO_OBJ(obj) COM_FORWARD_IVirtualSystemDescription_SetFinalValues_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualSystemDescription_SetFinalValues_TO_BASE(base) COM_FORWARD_IVirtualSystemDescription_SetFinalValues_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualSystemDescription_AddDescription_TO(smth) HRESULT STDMETHODCALLTYPE AddDescription (VirtualSystemDescriptionType aAType, BSTR aAVBoxValue, BSTR aAExtraConfigValue) { return smth AddDescription (aAType, aAVBoxValue, aAExtraConfigValue); }")
cpp_quote("#define COM_FORWARD_IVirtualSystemDescription_AddDescription_TO_OBJ(obj) COM_FORWARD_IVirtualSystemDescription_AddDescription_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualSystemDescription_AddDescription_TO_BASE(base) COM_FORWARD_IVirtualSystemDescription_AddDescription_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualSystemDescription_TO(smth) COM_FORWARD_IVirtualSystemDescription_GETTER_Count_TO (smth) COM_FORWARD_IVirtualSystemDescription_GetDescription_TO (smth) COM_FORWARD_IVirtualSystemDescription_GetDescriptionByType_TO (smth) COM_FORWARD_IVirtualSystemDescription_GetValuesByType_TO (smth) COM_FORWARD_IVirtualSystemDescription_SetFinalValues_TO (smth) COM_FORWARD_IVirtualSystemDescription_AddDescription_TO (smth) ")
cpp_quote("#define COM_FORWARD_IVirtualSystemDescription_TO_OBJ(obj) COM_FORWARD_IVirtualSystemDescription_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualSystemDescription_TO_BASE(base) COM_FORWARD_IVirtualSystemDescription_TO (base::)")

[
    uuid(26604a54-8628-491b-a0ea-e1392a16d13b),
    object,
    dual,
    oleautomation
]
interface IInternalMachineControl : IDispatch
{
    HRESULT SetRemoveSavedState (
        [in] BOOL aARemove
    );

    HRESULT UpdateState (
        [in] MachineState aState
    );

    HRESULT GetIPCId (
        [out, retval] BSTR * aId
    );

    HRESULT BeginPowerUp (
        [in] IProgress * aProgress
    );

    HRESULT EndPowerUp (
        [in] LONG aResult
    );

    HRESULT RunUSBDeviceFilters (
        [in] IUSBDevice * aDevice,
        [out] BOOL * aMatched,
        [out] ULONG * aMaskedInterfaces
    );

    HRESULT CaptureUSBDevice (
        [in] BSTR aId
    );

    HRESULT DetachUSBDevice (
        [in] BSTR aId,
        [in] BOOL aDone
    );

    HRESULT AutoCaptureUSBDevices();

    HRESULT DetachAllUSBDevices (
        [in] BOOL aDone
    );

    HRESULT OnSessionEnd (
        [in] ISession * aSession,
        [out, retval] IProgress * * aProgress
    );

    HRESULT BeginSavingState (
        [in] IProgress * aProgress,
        [out] BSTR * aStateFilePath
    );

    HRESULT EndSavingState (
        [in] BOOL aSuccess
    );

    HRESULT AdoptSavedState (
        [in] BSTR aSavedStateFile
    );

    HRESULT BeginTakingSnapshot (
        [in] IConsole * aInitiator,
        [in] BSTR aName,
        [in] BSTR aDescription,
        [in] IProgress * aConsoleProgress,
        [in] BOOL aFTakingSnapshotOnline,
        [out] BSTR * aStateFilePath
    );

    HRESULT EndTakingSnapshot (
        [in] BOOL aSuccess
    );

    HRESULT DeleteSnapshot (
        [in] IConsole * aInitiator,
        [in] BSTR aId,
        [out] MachineState * aMachineState,
        [out, retval] IProgress * * aProgress
    );

    HRESULT FinishOnlineMergeMedium (
        [in] IMediumAttachment * aMediumAttachment,
        [in] IMedium * aSource,
        [in] IMedium * aTarget,
        [in] BOOL aMergeForward,
        [in] IMedium * aParentForTarget,
        [in, out] SAFEARRAY(IMedium *) * aChildrenToReparent
    );

    HRESULT RestoreSnapshot (
        [in] IConsole * aInitiator,
        [in] ISnapshot * aSnapshot,
        [out] MachineState * aMachineState,
        [out, retval] IProgress * * aProgress
    );

    HRESULT PullGuestProperties (
        [out] SAFEARRAY(BSTR) * aName,
        [out] SAFEARRAY(BSTR) * aValue,
        [out] SAFEARRAY(ULONG64) * aTimestamp,
        [out] SAFEARRAY(BSTR) * aFlags
    );

    HRESULT PushGuestProperty (
        [in] BSTR aName,
        [in] BSTR aValue,
        [in] ULONG64 aTimestamp,
        [in] BSTR aFlags
    );

    HRESULT LockMedia();

    HRESULT UnlockMedia();

}; /* interface IInternalMachineControl */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IInternalMachineControl_SetRemoveSavedState_TO(smth) HRESULT STDMETHODCALLTYPE SetRemoveSavedState (BOOL aARemove) { return smth SetRemoveSavedState (aARemove); }")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_SetRemoveSavedState_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_SetRemoveSavedState_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_SetRemoveSavedState_TO_BASE(base) COM_FORWARD_IInternalMachineControl_SetRemoveSavedState_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_UpdateState_TO(smth) HRESULT STDMETHODCALLTYPE UpdateState (MachineState aState) { return smth UpdateState (aState); }")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_UpdateState_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_UpdateState_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_UpdateState_TO_BASE(base) COM_FORWARD_IInternalMachineControl_UpdateState_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_GetIPCId_TO(smth) HRESULT STDMETHODCALLTYPE GetIPCId (BSTR * aId) { return smth GetIPCId (aId); }")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_GetIPCId_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_GetIPCId_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_GetIPCId_TO_BASE(base) COM_FORWARD_IInternalMachineControl_GetIPCId_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_BeginPowerUp_TO(smth) HRESULT STDMETHODCALLTYPE BeginPowerUp (IProgress * aProgress) { return smth BeginPowerUp (aProgress); }")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_BeginPowerUp_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_BeginPowerUp_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_BeginPowerUp_TO_BASE(base) COM_FORWARD_IInternalMachineControl_BeginPowerUp_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_EndPowerUp_TO(smth) HRESULT STDMETHODCALLTYPE EndPowerUp (LONG aResult) { return smth EndPowerUp (aResult); }")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_EndPowerUp_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_EndPowerUp_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_EndPowerUp_TO_BASE(base) COM_FORWARD_IInternalMachineControl_EndPowerUp_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_RunUSBDeviceFilters_TO(smth) HRESULT STDMETHODCALLTYPE RunUSBDeviceFilters (IUSBDevice * aDevice, BOOL * aMatched, ULONG * aMaskedInterfaces) { return smth RunUSBDeviceFilters (aDevice, aMatched, aMaskedInterfaces); }")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_RunUSBDeviceFilters_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_RunUSBDeviceFilters_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_RunUSBDeviceFilters_TO_BASE(base) COM_FORWARD_IInternalMachineControl_RunUSBDeviceFilters_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_CaptureUSBDevice_TO(smth) HRESULT STDMETHODCALLTYPE CaptureUSBDevice (BSTR aId) { return smth CaptureUSBDevice (aId); }")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_CaptureUSBDevice_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_CaptureUSBDevice_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_CaptureUSBDevice_TO_BASE(base) COM_FORWARD_IInternalMachineControl_CaptureUSBDevice_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_DetachUSBDevice_TO(smth) HRESULT STDMETHODCALLTYPE DetachUSBDevice (BSTR aId, BOOL aDone) { return smth DetachUSBDevice (aId, aDone); }")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_DetachUSBDevice_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_DetachUSBDevice_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_DetachUSBDevice_TO_BASE(base) COM_FORWARD_IInternalMachineControl_DetachUSBDevice_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_AutoCaptureUSBDevices_TO(smth) HRESULT STDMETHODCALLTYPE AutoCaptureUSBDevices() { return smth AutoCaptureUSBDevices(); }")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_AutoCaptureUSBDevices_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_AutoCaptureUSBDevices_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_AutoCaptureUSBDevices_TO_BASE(base) COM_FORWARD_IInternalMachineControl_AutoCaptureUSBDevices_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_DetachAllUSBDevices_TO(smth) HRESULT STDMETHODCALLTYPE DetachAllUSBDevices (BOOL aDone) { return smth DetachAllUSBDevices (aDone); }")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_DetachAllUSBDevices_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_DetachAllUSBDevices_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_DetachAllUSBDevices_TO_BASE(base) COM_FORWARD_IInternalMachineControl_DetachAllUSBDevices_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_OnSessionEnd_TO(smth) HRESULT STDMETHODCALLTYPE OnSessionEnd (ISession * aSession, IProgress * * aProgress) { return smth OnSessionEnd (aSession, aProgress); }")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_OnSessionEnd_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_OnSessionEnd_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_OnSessionEnd_TO_BASE(base) COM_FORWARD_IInternalMachineControl_OnSessionEnd_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_BeginSavingState_TO(smth) HRESULT STDMETHODCALLTYPE BeginSavingState (IProgress * aProgress, BSTR * aStateFilePath) { return smth BeginSavingState (aProgress, aStateFilePath); }")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_BeginSavingState_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_BeginSavingState_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_BeginSavingState_TO_BASE(base) COM_FORWARD_IInternalMachineControl_BeginSavingState_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_EndSavingState_TO(smth) HRESULT STDMETHODCALLTYPE EndSavingState (BOOL aSuccess) { return smth EndSavingState (aSuccess); }")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_EndSavingState_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_EndSavingState_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_EndSavingState_TO_BASE(base) COM_FORWARD_IInternalMachineControl_EndSavingState_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_AdoptSavedState_TO(smth) HRESULT STDMETHODCALLTYPE AdoptSavedState (BSTR aSavedStateFile) { return smth AdoptSavedState (aSavedStateFile); }")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_AdoptSavedState_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_AdoptSavedState_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_AdoptSavedState_TO_BASE(base) COM_FORWARD_IInternalMachineControl_AdoptSavedState_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_BeginTakingSnapshot_TO(smth) HRESULT STDMETHODCALLTYPE BeginTakingSnapshot (IConsole * aInitiator, BSTR aName, BSTR aDescription, IProgress * aConsoleProgress, BOOL aFTakingSnapshotOnline, BSTR * aStateFilePath) { return smth BeginTakingSnapshot (aInitiator, aName, aDescription, aConsoleProgress, aFTakingSnapshotOnline, aStateFilePath); }")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_BeginTakingSnapshot_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_BeginTakingSnapshot_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_BeginTakingSnapshot_TO_BASE(base) COM_FORWARD_IInternalMachineControl_BeginTakingSnapshot_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_EndTakingSnapshot_TO(smth) HRESULT STDMETHODCALLTYPE EndTakingSnapshot (BOOL aSuccess) { return smth EndTakingSnapshot (aSuccess); }")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_EndTakingSnapshot_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_EndTakingSnapshot_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_EndTakingSnapshot_TO_BASE(base) COM_FORWARD_IInternalMachineControl_EndTakingSnapshot_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_DeleteSnapshot_TO(smth) HRESULT STDMETHODCALLTYPE DeleteSnapshot (IConsole * aInitiator, BSTR aId, MachineState * aMachineState, IProgress * * aProgress) { return smth DeleteSnapshot (aInitiator, aId, aMachineState, aProgress); }")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_DeleteSnapshot_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_DeleteSnapshot_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_DeleteSnapshot_TO_BASE(base) COM_FORWARD_IInternalMachineControl_DeleteSnapshot_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_FinishOnlineMergeMedium_TO(smth) HRESULT STDMETHODCALLTYPE FinishOnlineMergeMedium (IMediumAttachment * aMediumAttachment, IMedium * aSource, IMedium * aTarget, BOOL aMergeForward, IMedium * aParentForTarget, SAFEARRAY * * aChildrenToReparent) { return smth FinishOnlineMergeMedium (aMediumAttachment, aSource, aTarget, aMergeForward, aParentForTarget, aChildrenToReparent); }")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_FinishOnlineMergeMedium_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_FinishOnlineMergeMedium_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_FinishOnlineMergeMedium_TO_BASE(base) COM_FORWARD_IInternalMachineControl_FinishOnlineMergeMedium_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_RestoreSnapshot_TO(smth) HRESULT STDMETHODCALLTYPE RestoreSnapshot (IConsole * aInitiator, ISnapshot * aSnapshot, MachineState * aMachineState, IProgress * * aProgress) { return smth RestoreSnapshot (aInitiator, aSnapshot, aMachineState, aProgress); }")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_RestoreSnapshot_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_RestoreSnapshot_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_RestoreSnapshot_TO_BASE(base) COM_FORWARD_IInternalMachineControl_RestoreSnapshot_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_PullGuestProperties_TO(smth) HRESULT STDMETHODCALLTYPE PullGuestProperties (SAFEARRAY * * aName, SAFEARRAY * * aValue, SAFEARRAY * * aTimestamp, SAFEARRAY * * aFlags) { return smth PullGuestProperties (aName, aValue, aTimestamp, aFlags); }")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_PullGuestProperties_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_PullGuestProperties_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_PullGuestProperties_TO_BASE(base) COM_FORWARD_IInternalMachineControl_PullGuestProperties_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_PushGuestProperty_TO(smth) HRESULT STDMETHODCALLTYPE PushGuestProperty (BSTR aName, BSTR aValue, ULONG64 aTimestamp, BSTR aFlags) { return smth PushGuestProperty (aName, aValue, aTimestamp, aFlags); }")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_PushGuestProperty_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_PushGuestProperty_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_PushGuestProperty_TO_BASE(base) COM_FORWARD_IInternalMachineControl_PushGuestProperty_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_LockMedia_TO(smth) HRESULT STDMETHODCALLTYPE LockMedia() { return smth LockMedia(); }")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_LockMedia_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_LockMedia_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_LockMedia_TO_BASE(base) COM_FORWARD_IInternalMachineControl_LockMedia_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_UnlockMedia_TO(smth) HRESULT STDMETHODCALLTYPE UnlockMedia() { return smth UnlockMedia(); }")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_UnlockMedia_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_UnlockMedia_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_UnlockMedia_TO_BASE(base) COM_FORWARD_IInternalMachineControl_UnlockMedia_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_TO(smth) COM_FORWARD_IInternalMachineControl_SetRemoveSavedState_TO (smth) COM_FORWARD_IInternalMachineControl_UpdateState_TO (smth) COM_FORWARD_IInternalMachineControl_GetIPCId_TO (smth) COM_FORWARD_IInternalMachineControl_BeginPowerUp_TO (smth) COM_FORWARD_IInternalMachineControl_EndPowerUp_TO (smth) COM_FORWARD_IInternalMachineControl_RunUSBDeviceFilters_TO (smth) COM_FORWARD_IInternalMachineControl_CaptureUSBDevice_TO (smth) COM_FORWARD_IInternalMachineControl_DetachUSBDevice_TO (smth) COM_FORWARD_IInternalMachineControl_AutoCaptureUSBDevices_TO (smth) COM_FORWARD_IInternalMachineControl_DetachAllUSBDevices_TO (smth) COM_FORWARD_IInternalMachineControl_OnSessionEnd_TO (smth) COM_FORWARD_IInternalMachineControl_BeginSavingState_TO (smth) COM_FORWARD_IInternalMachineControl_EndSavingState_TO (smth) COM_FORWARD_IInternalMachineControl_AdoptSavedState_TO (smth) COM_FORWARD_IInternalMachineControl_BeginTakingSnapshot_TO (smth) COM_FORWARD_IInternalMachineControl_EndTakingSnapshot_TO (smth) COM_FORWARD_IInternalMachineControl_DeleteSnapshot_TO (smth) COM_FORWARD_IInternalMachineControl_FinishOnlineMergeMedium_TO (smth) COM_FORWARD_IInternalMachineControl_RestoreSnapshot_TO (smth) COM_FORWARD_IInternalMachineControl_PullGuestProperties_TO (smth) COM_FORWARD_IInternalMachineControl_PushGuestProperty_TO (smth) COM_FORWARD_IInternalMachineControl_LockMedia_TO (smth) COM_FORWARD_IInternalMachineControl_UnlockMedia_TO (smth) ")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_TO_BASE(base) COM_FORWARD_IInternalMachineControl_TO (base::)")

[
    uuid(38b54279-dc35-4f5e-a431-835b867c6b5e),
    object,
    dual,
    oleautomation
]
interface IBIOSSettings : IDispatch
{
    [propget] HRESULT LogoFadeIn ([out, retval] BOOL * aLogoFadeIn);
    [propput] HRESULT LogoFadeIn ([in] BOOL aLogoFadeIn);

    [propget] HRESULT LogoFadeOut ([out, retval] BOOL * aLogoFadeOut);
    [propput] HRESULT LogoFadeOut ([in] BOOL aLogoFadeOut);

    [propget] HRESULT LogoDisplayTime ([out, retval] ULONG * aLogoDisplayTime);
    [propput] HRESULT LogoDisplayTime ([in] ULONG aLogoDisplayTime);

    [propget] HRESULT LogoImagePath ([out, retval] BSTR * aLogoImagePath);
    [propput] HRESULT LogoImagePath ([in] BSTR aLogoImagePath);

    [propget] HRESULT BootMenuMode ([out, retval] BIOSBootMenuMode * aBootMenuMode);
    [propput] HRESULT BootMenuMode ([in] BIOSBootMenuMode aBootMenuMode);

    [propget] HRESULT ACPIEnabled ([out, retval] BOOL * aACPIEnabled);
    [propput] HRESULT ACPIEnabled ([in] BOOL aACPIEnabled);

    [propget] HRESULT IOAPICEnabled ([out, retval] BOOL * aIOAPICEnabled);
    [propput] HRESULT IOAPICEnabled ([in] BOOL aIOAPICEnabled);

    [propget] HRESULT TimeOffset ([out, retval] LONG64 * aTimeOffset);
    [propput] HRESULT TimeOffset ([in] LONG64 aTimeOffset);

    [propget] HRESULT PXEDebugEnabled ([out, retval] BOOL * aPXEDebugEnabled);
    [propput] HRESULT PXEDebugEnabled ([in] BOOL aPXEDebugEnabled);

}; /* interface IBIOSSettings */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IBIOSSettings_GETTER_LogoFadeIn_TO(smth) HRESULT STDMETHODCALLTYPE get_LogoFadeIn (BOOL * aLogoFadeIn) { return smth get_LogoFadeIn (aLogoFadeIn); }")
cpp_quote("#define COM_FORWARD_IBIOSSettings_GETTER_LogoFadeIn_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_GETTER_LogoFadeIn_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IBIOSSettings_GETTER_LogoFadeIn_TO_BASE(base) COM_FORWARD_IBIOSSettings_GETTER_LogoFadeIn_TO (base::)")
cpp_quote("#define COM_FORWARD_IBIOSSettings_SETTER_LogoFadeIn_TO(smth) HRESULT STDMETHODCALLTYPE put_LogoFadeIn (BOOL aLogoFadeIn) { return smth put_LogoFadeIn (aLogoFadeIn); }")
cpp_quote("#define COM_FORWARD_IBIOSSettings_SETTER_LogoFadeIn_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_SETTER_LogoFadeIn_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IBIOSSettings_SETTER_LogoFadeIn_TO_BASE(base) COM_FORWARD_IBIOSSettings_SETTER_LogoFadeIn_TO (base::)")
cpp_quote("#define COM_FORWARD_IBIOSSettings_GETTER_LogoFadeOut_TO(smth) HRESULT STDMETHODCALLTYPE get_LogoFadeOut (BOOL * aLogoFadeOut) { return smth get_LogoFadeOut (aLogoFadeOut); }")
cpp_quote("#define COM_FORWARD_IBIOSSettings_GETTER_LogoFadeOut_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_GETTER_LogoFadeOut_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IBIOSSettings_GETTER_LogoFadeOut_TO_BASE(base) COM_FORWARD_IBIOSSettings_GETTER_LogoFadeOut_TO (base::)")
cpp_quote("#define COM_FORWARD_IBIOSSettings_SETTER_LogoFadeOut_TO(smth) HRESULT STDMETHODCALLTYPE put_LogoFadeOut (BOOL aLogoFadeOut) { return smth put_LogoFadeOut (aLogoFadeOut); }")
cpp_quote("#define COM_FORWARD_IBIOSSettings_SETTER_LogoFadeOut_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_SETTER_LogoFadeOut_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IBIOSSettings_SETTER_LogoFadeOut_TO_BASE(base) COM_FORWARD_IBIOSSettings_SETTER_LogoFadeOut_TO (base::)")
cpp_quote("#define COM_FORWARD_IBIOSSettings_GETTER_LogoDisplayTime_TO(smth) HRESULT STDMETHODCALLTYPE get_LogoDisplayTime (ULONG * aLogoDisplayTime) { return smth get_LogoDisplayTime (aLogoDisplayTime); }")
cpp_quote("#define COM_FORWARD_IBIOSSettings_GETTER_LogoDisplayTime_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_GETTER_LogoDisplayTime_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IBIOSSettings_GETTER_LogoDisplayTime_TO_BASE(base) COM_FORWARD_IBIOSSettings_GETTER_LogoDisplayTime_TO (base::)")
cpp_quote("#define COM_FORWARD_IBIOSSettings_SETTER_LogoDisplayTime_TO(smth) HRESULT STDMETHODCALLTYPE put_LogoDisplayTime (ULONG aLogoDisplayTime) { return smth put_LogoDisplayTime (aLogoDisplayTime); }")
cpp_quote("#define COM_FORWARD_IBIOSSettings_SETTER_LogoDisplayTime_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_SETTER_LogoDisplayTime_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IBIOSSettings_SETTER_LogoDisplayTime_TO_BASE(base) COM_FORWARD_IBIOSSettings_SETTER_LogoDisplayTime_TO (base::)")
cpp_quote("#define COM_FORWARD_IBIOSSettings_GETTER_LogoImagePath_TO(smth) HRESULT STDMETHODCALLTYPE get_LogoImagePath (BSTR * aLogoImagePath) { return smth get_LogoImagePath (aLogoImagePath); }")
cpp_quote("#define COM_FORWARD_IBIOSSettings_GETTER_LogoImagePath_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_GETTER_LogoImagePath_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IBIOSSettings_GETTER_LogoImagePath_TO_BASE(base) COM_FORWARD_IBIOSSettings_GETTER_LogoImagePath_TO (base::)")
cpp_quote("#define COM_FORWARD_IBIOSSettings_SETTER_LogoImagePath_TO(smth) HRESULT STDMETHODCALLTYPE put_LogoImagePath (BSTR aLogoImagePath) { return smth put_LogoImagePath (aLogoImagePath); }")
cpp_quote("#define COM_FORWARD_IBIOSSettings_SETTER_LogoImagePath_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_SETTER_LogoImagePath_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IBIOSSettings_SETTER_LogoImagePath_TO_BASE(base) COM_FORWARD_IBIOSSettings_SETTER_LogoImagePath_TO (base::)")
cpp_quote("#define COM_FORWARD_IBIOSSettings_GETTER_BootMenuMode_TO(smth) HRESULT STDMETHODCALLTYPE get_BootMenuMode (BIOSBootMenuMode * aBootMenuMode) { return smth get_BootMenuMode (aBootMenuMode); }")
cpp_quote("#define COM_FORWARD_IBIOSSettings_GETTER_BootMenuMode_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_GETTER_BootMenuMode_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IBIOSSettings_GETTER_BootMenuMode_TO_BASE(base) COM_FORWARD_IBIOSSettings_GETTER_BootMenuMode_TO (base::)")
cpp_quote("#define COM_FORWARD_IBIOSSettings_SETTER_BootMenuMode_TO(smth) HRESULT STDMETHODCALLTYPE put_BootMenuMode (BIOSBootMenuMode aBootMenuMode) { return smth put_BootMenuMode (aBootMenuMode); }")
cpp_quote("#define COM_FORWARD_IBIOSSettings_SETTER_BootMenuMode_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_SETTER_BootMenuMode_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IBIOSSettings_SETTER_BootMenuMode_TO_BASE(base) COM_FORWARD_IBIOSSettings_SETTER_BootMenuMode_TO (base::)")
cpp_quote("#define COM_FORWARD_IBIOSSettings_GETTER_ACPIEnabled_TO(smth) HRESULT STDMETHODCALLTYPE get_ACPIEnabled (BOOL * aACPIEnabled) { return smth get_ACPIEnabled (aACPIEnabled); }")
cpp_quote("#define COM_FORWARD_IBIOSSettings_GETTER_ACPIEnabled_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_GETTER_ACPIEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IBIOSSettings_GETTER_ACPIEnabled_TO_BASE(base) COM_FORWARD_IBIOSSettings_GETTER_ACPIEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IBIOSSettings_SETTER_ACPIEnabled_TO(smth) HRESULT STDMETHODCALLTYPE put_ACPIEnabled (BOOL aACPIEnabled) { return smth put_ACPIEnabled (aACPIEnabled); }")
cpp_quote("#define COM_FORWARD_IBIOSSettings_SETTER_ACPIEnabled_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_SETTER_ACPIEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IBIOSSettings_SETTER_ACPIEnabled_TO_BASE(base) COM_FORWARD_IBIOSSettings_SETTER_ACPIEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IBIOSSettings_GETTER_IOAPICEnabled_TO(smth) HRESULT STDMETHODCALLTYPE get_IOAPICEnabled (BOOL * aIOAPICEnabled) { return smth get_IOAPICEnabled (aIOAPICEnabled); }")
cpp_quote("#define COM_FORWARD_IBIOSSettings_GETTER_IOAPICEnabled_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_GETTER_IOAPICEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IBIOSSettings_GETTER_IOAPICEnabled_TO_BASE(base) COM_FORWARD_IBIOSSettings_GETTER_IOAPICEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IBIOSSettings_SETTER_IOAPICEnabled_TO(smth) HRESULT STDMETHODCALLTYPE put_IOAPICEnabled (BOOL aIOAPICEnabled) { return smth put_IOAPICEnabled (aIOAPICEnabled); }")
cpp_quote("#define COM_FORWARD_IBIOSSettings_SETTER_IOAPICEnabled_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_SETTER_IOAPICEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IBIOSSettings_SETTER_IOAPICEnabled_TO_BASE(base) COM_FORWARD_IBIOSSettings_SETTER_IOAPICEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IBIOSSettings_GETTER_TimeOffset_TO(smth) HRESULT STDMETHODCALLTYPE get_TimeOffset (LONG64 * aTimeOffset) { return smth get_TimeOffset (aTimeOffset); }")
cpp_quote("#define COM_FORWARD_IBIOSSettings_GETTER_TimeOffset_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_GETTER_TimeOffset_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IBIOSSettings_GETTER_TimeOffset_TO_BASE(base) COM_FORWARD_IBIOSSettings_GETTER_TimeOffset_TO (base::)")
cpp_quote("#define COM_FORWARD_IBIOSSettings_SETTER_TimeOffset_TO(smth) HRESULT STDMETHODCALLTYPE put_TimeOffset (LONG64 aTimeOffset) { return smth put_TimeOffset (aTimeOffset); }")
cpp_quote("#define COM_FORWARD_IBIOSSettings_SETTER_TimeOffset_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_SETTER_TimeOffset_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IBIOSSettings_SETTER_TimeOffset_TO_BASE(base) COM_FORWARD_IBIOSSettings_SETTER_TimeOffset_TO (base::)")
cpp_quote("#define COM_FORWARD_IBIOSSettings_GETTER_PXEDebugEnabled_TO(smth) HRESULT STDMETHODCALLTYPE get_PXEDebugEnabled (BOOL * aPXEDebugEnabled) { return smth get_PXEDebugEnabled (aPXEDebugEnabled); }")
cpp_quote("#define COM_FORWARD_IBIOSSettings_GETTER_PXEDebugEnabled_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_GETTER_PXEDebugEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IBIOSSettings_GETTER_PXEDebugEnabled_TO_BASE(base) COM_FORWARD_IBIOSSettings_GETTER_PXEDebugEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IBIOSSettings_SETTER_PXEDebugEnabled_TO(smth) HRESULT STDMETHODCALLTYPE put_PXEDebugEnabled (BOOL aPXEDebugEnabled) { return smth put_PXEDebugEnabled (aPXEDebugEnabled); }")
cpp_quote("#define COM_FORWARD_IBIOSSettings_SETTER_PXEDebugEnabled_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_SETTER_PXEDebugEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IBIOSSettings_SETTER_PXEDebugEnabled_TO_BASE(base) COM_FORWARD_IBIOSSettings_SETTER_PXEDebugEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IBIOSSettings_TO(smth) COM_FORWARD_IBIOSSettings_GETTER_LogoFadeIn_TO (smth) COM_FORWARD_IBIOSSettings_SETTER_LogoFadeIn_TO (smth) COM_FORWARD_IBIOSSettings_GETTER_LogoFadeOut_TO (smth) COM_FORWARD_IBIOSSettings_SETTER_LogoFadeOut_TO (smth) COM_FORWARD_IBIOSSettings_GETTER_LogoDisplayTime_TO (smth) COM_FORWARD_IBIOSSettings_SETTER_LogoDisplayTime_TO (smth) COM_FORWARD_IBIOSSettings_GETTER_LogoImagePath_TO (smth) COM_FORWARD_IBIOSSettings_SETTER_LogoImagePath_TO (smth) COM_FORWARD_IBIOSSettings_GETTER_BootMenuMode_TO (smth) COM_FORWARD_IBIOSSettings_SETTER_BootMenuMode_TO (smth) COM_FORWARD_IBIOSSettings_GETTER_ACPIEnabled_TO (smth) COM_FORWARD_IBIOSSettings_SETTER_ACPIEnabled_TO (smth) COM_FORWARD_IBIOSSettings_GETTER_IOAPICEnabled_TO (smth) COM_FORWARD_IBIOSSettings_SETTER_IOAPICEnabled_TO (smth) COM_FORWARD_IBIOSSettings_GETTER_TimeOffset_TO (smth) COM_FORWARD_IBIOSSettings_SETTER_TimeOffset_TO (smth) COM_FORWARD_IBIOSSettings_GETTER_PXEDebugEnabled_TO (smth) COM_FORWARD_IBIOSSettings_SETTER_PXEDebugEnabled_TO (smth) ")
cpp_quote("#define COM_FORWARD_IBIOSSettings_TO_OBJ(obj) COM_FORWARD_IBIOSSettings_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IBIOSSettings_TO_BASE(base) COM_FORWARD_IBIOSSettings_TO (base::)")

[
    uuid(6d9212cb-a5c0-48b7-bbc1-3fa2ba2ee6d2),
    object,
    dual,
    oleautomation
]
interface IMachine : IDispatch
{
    [propget] HRESULT Parent ([out, retval] IVirtualBox * * aParent);

    [propget] HRESULT Accessible ([out, retval] BOOL * aAccessible);

    [propget] HRESULT AccessError ([out, retval] IVirtualBoxErrorInfo * * aAccessError);

    [propget] HRESULT Name ([out, retval] BSTR * aName);
    [propput] HRESULT Name ([in] BSTR aName);

    [propget] HRESULT Description ([out, retval] BSTR * aDescription);
    [propput] HRESULT Description ([in] BSTR aDescription);

    [propget] HRESULT Id ([out, retval] BSTR * aId);

    [propget] HRESULT OSTypeId ([out, retval] BSTR * aOSTypeId);
    [propput] HRESULT OSTypeId ([in] BSTR aOSTypeId);

    [propget] HRESULT HardwareVersion ([out, retval] BSTR * aHardwareVersion);
    [propput] HRESULT HardwareVersion ([in] BSTR aHardwareVersion);

    [propget] HRESULT HardwareUUID ([out, retval] BSTR * aHardwareUUID);
    [propput] HRESULT HardwareUUID ([in] BSTR aHardwareUUID);

    [propget] HRESULT CPUCount ([out, retval] ULONG * aCPUCount);
    [propput] HRESULT CPUCount ([in] ULONG aCPUCount);

    [propget] HRESULT CPUHotPlugEnabled ([out, retval] BOOL * aCPUHotPlugEnabled);
    [propput] HRESULT CPUHotPlugEnabled ([in] BOOL aCPUHotPlugEnabled);

    [propget] HRESULT MemorySize ([out, retval] ULONG * aMemorySize);
    [propput] HRESULT MemorySize ([in] ULONG aMemorySize);

    [propget] HRESULT MemoryBalloonSize ([out, retval] ULONG * aMemoryBalloonSize);
    [propput] HRESULT MemoryBalloonSize ([in] ULONG aMemoryBalloonSize);

    [propget] HRESULT PageFusionEnabled ([out, retval] BOOL * aPageFusionEnabled);
    [propput] HRESULT PageFusionEnabled ([in] BOOL aPageFusionEnabled);

    [propget] HRESULT VRAMSize ([out, retval] ULONG * aVRAMSize);
    [propput] HRESULT VRAMSize ([in] ULONG aVRAMSize);

    [propget] HRESULT Accelerate3DEnabled ([out, retval] BOOL * aAccelerate3DEnabled);
    [propput] HRESULT Accelerate3DEnabled ([in] BOOL aAccelerate3DEnabled);

    [propget] HRESULT Accelerate2DVideoEnabled ([out, retval] BOOL * aAccelerate2DVideoEnabled);
    [propput] HRESULT Accelerate2DVideoEnabled ([in] BOOL aAccelerate2DVideoEnabled);

    [propget] HRESULT MonitorCount ([out, retval] ULONG * aMonitorCount);
    [propput] HRESULT MonitorCount ([in] ULONG aMonitorCount);

    [propget] HRESULT BIOSSettings ([out, retval] IBIOSSettings * * aBIOSSettings);

    [propget] HRESULT FirmwareType ([out, retval] FirmwareType * aFirmwareType);
    [propput] HRESULT FirmwareType ([in] FirmwareType aFirmwareType);

    [propget] HRESULT PointingHidType ([out, retval] PointingHidType * aPointingHidType);
    [propput] HRESULT PointingHidType ([in] PointingHidType aPointingHidType);

    [propget] HRESULT KeyboardHidType ([out, retval] KeyboardHidType * aKeyboardHidType);
    [propput] HRESULT KeyboardHidType ([in] KeyboardHidType aKeyboardHidType);

    [propget] HRESULT HpetEnabled ([out, retval] BOOL * aHpetEnabled);
    [propput] HRESULT HpetEnabled ([in] BOOL aHpetEnabled);

    [propget] HRESULT SnapshotFolder ([out, retval] BSTR * aSnapshotFolder);
    [propput] HRESULT SnapshotFolder ([in] BSTR aSnapshotFolder);

    [propget] HRESULT VRDPServer ([out, retval] IVRDPServer * * aVRDPServer);

    [propget] HRESULT MediumAttachments ([out, retval] SAFEARRAY(IMediumAttachment *) * aMediumAttachments);

    [propget] HRESULT USBController ([out, retval] IUSBController * * aUSBController);

    [propget] HRESULT AudioAdapter ([out, retval] IAudioAdapter * * aAudioAdapter);

    [propget] HRESULT StorageControllers ([out, retval] SAFEARRAY(IStorageController *) * aStorageControllers);

    [propget] HRESULT SettingsFilePath ([out, retval] BSTR * aSettingsFilePath);

    [propget] HRESULT SettingsModified ([out, retval] BOOL * aSettingsModified);

    [propget] HRESULT SessionState ([out, retval] SessionState * aSessionState);

    [propget] HRESULT SessionType ([out, retval] BSTR * aSessionType);

    [propget] HRESULT SessionPid ([out, retval] ULONG * aSessionPid);

    [propget] HRESULT State ([out, retval] MachineState * aState);

    [propget] HRESULT LastStateChange ([out, retval] LONG64 * aLastStateChange);

    [propget] HRESULT StateFilePath ([out, retval] BSTR * aStateFilePath);

    [propget] HRESULT LogFolder ([out, retval] BSTR * aLogFolder);

    [propget] HRESULT CurrentSnapshot ([out, retval] ISnapshot * * aCurrentSnapshot);

    [propget] HRESULT SnapshotCount ([out, retval] ULONG * aSnapshotCount);

    [propget] HRESULT CurrentStateModified ([out, retval] BOOL * aCurrentStateModified);

    [propget] HRESULT SharedFolders ([out, retval] SAFEARRAY(ISharedFolder *) * aSharedFolders);

    [propget] HRESULT ClipboardMode ([out, retval] ClipboardMode * aClipboardMode);
    [propput] HRESULT ClipboardMode ([in] ClipboardMode aClipboardMode);

    [propget] HRESULT GuestPropertyNotificationPatterns ([out, retval] BSTR * aGuestPropertyNotificationPatterns);
    [propput] HRESULT GuestPropertyNotificationPatterns ([in] BSTR aGuestPropertyNotificationPatterns);

    [propget] HRESULT TeleporterEnabled ([out, retval] BOOL * aTeleporterEnabled);
    [propput] HRESULT TeleporterEnabled ([in] BOOL aTeleporterEnabled);

    [propget] HRESULT TeleporterPort ([out, retval] ULONG * aTeleporterPort);
    [propput] HRESULT TeleporterPort ([in] ULONG aTeleporterPort);

    [propget] HRESULT TeleporterAddress ([out, retval] BSTR * aTeleporterAddress);
    [propput] HRESULT TeleporterAddress ([in] BSTR aTeleporterAddress);

    [propget] HRESULT TeleporterPassword ([out, retval] BSTR * aTeleporterPassword);
    [propput] HRESULT TeleporterPassword ([in] BSTR aTeleporterPassword);

    [propget] HRESULT RTCUseUTC ([out, retval] BOOL * aRTCUseUTC);
    [propput] HRESULT RTCUseUTC ([in] BOOL aRTCUseUTC);

    [propget] HRESULT IoCacheEnabled ([out, retval] BOOL * aIoCacheEnabled);
    [propput] HRESULT IoCacheEnabled ([in] BOOL aIoCacheEnabled);

    [propget] HRESULT IoCacheSize ([out, retval] ULONG * aIoCacheSize);
    [propput] HRESULT IoCacheSize ([in] ULONG aIoCacheSize);

    [propget] HRESULT IoBandwidthMax ([out, retval] ULONG * aIoBandwidthMax);
    [propput] HRESULT IoBandwidthMax ([in] ULONG aIoBandwidthMax);

    HRESULT SetBootOrder (
        [in] ULONG aPosition,
        [in] DeviceType aDevice
    );

    HRESULT GetBootOrder (
        [in] ULONG aPosition,
        [out, retval] DeviceType * aDevice
    );

    HRESULT AttachDevice (
        [in] BSTR aName,
        [in] LONG aControllerPort,
        [in] LONG aDevice,
        [in] DeviceType aType,
        [in] BSTR aId
    );

    HRESULT DetachDevice (
        [in] BSTR aName,
        [in] LONG aControllerPort,
        [in] LONG aDevice
    );

    HRESULT PassthroughDevice (
        [in] BSTR aName,
        [in] LONG aControllerPort,
        [in] LONG aDevice,
        [in] BOOL aPassthrough
    );

    HRESULT MountMedium (
        [in] BSTR aName,
        [in] LONG aControllerPort,
        [in] LONG aDevice,
        [in] BSTR aMedium,
        [in] BOOL aForce
    );

    HRESULT GetMedium (
        [in] BSTR aName,
        [in] LONG aControllerPort,
        [in] LONG aDevice,
        [out, retval] IMedium * * aMedium
    );

    HRESULT GetMediumAttachmentsOfController (
        [in] BSTR aName,
        [out, retval] SAFEARRAY(IMediumAttachment *) * aMediumAttachments
    );

    HRESULT GetMediumAttachment (
        [in] BSTR aName,
        [in] LONG aControllerPort,
        [in] LONG aDevice,
        [out, retval] IMediumAttachment * * aAttachment
    );

    HRESULT GetNetworkAdapter (
        [in] ULONG aSlot,
        [out, retval] INetworkAdapter * * aAdapter
    );

    HRESULT AddStorageController (
        [in] BSTR aName,
        [in] StorageBus aConnectionType,
        [out, retval] IStorageController * * aController
    );

    HRESULT GetStorageControllerByName (
        [in] BSTR aName,
        [out, retval] IStorageController * * aStorageController
    );

    HRESULT GetStorageControllerByInstance (
        [in] ULONG aInstance,
        [out, retval] IStorageController * * aStorageController
    );

    HRESULT RemoveStorageController (
        [in] BSTR aName
    );

    HRESULT GetSerialPort (
        [in] ULONG aSlot,
        [out, retval] ISerialPort * * aPort
    );

    HRESULT GetParallelPort (
        [in] ULONG aSlot,
        [out, retval] IParallelPort * * aPort
    );

    HRESULT GetExtraDataKeys (
        [out, retval] SAFEARRAY(BSTR) * aValue
    );

    HRESULT GetExtraData (
        [in] BSTR aKey,
        [out, retval] BSTR * aValue
    );

    HRESULT SetExtraData (
        [in] BSTR aKey,
        [in] BSTR aValue
    );

    HRESULT GetCPUProperty (
        [in] CPUPropertyType aProperty,
        [out, retval] BOOL * aValue
    );

    HRESULT SetCPUProperty (
        [in] CPUPropertyType aProperty,
        [in] BOOL aValue
    );

    HRESULT GetCPUIDLeaf (
        [in] ULONG aId,
        [out] ULONG * aValEax,
        [out] ULONG * aValEbx,
        [out] ULONG * aValEcx,
        [out] ULONG * aValEdx
    );

    HRESULT SetCPUIDLeaf (
        [in] ULONG aId,
        [in] ULONG aValEax,
        [in] ULONG aValEbx,
        [in] ULONG aValEcx,
        [in] ULONG aValEdx
    );

    HRESULT RemoveCPUIDLeaf (
        [in] ULONG aId
    );

    HRESULT RemoveAllCPUIDLeaves();

    HRESULT GetHWVirtExProperty (
        [in] HWVirtExPropertyType aProperty,
        [out, retval] BOOL * aValue
    );

    HRESULT SetHWVirtExProperty (
        [in] HWVirtExPropertyType aProperty,
        [in] BOOL aValue
    );

    HRESULT SaveSettings();

    HRESULT DiscardSettings();

    HRESULT DeleteSettings();

    HRESULT Export (
        [in] IAppliance * aAAppliance,
        [out, retval] IVirtualSystemDescription * * aADescription
    );

    HRESULT GetSnapshot (
        [in] BSTR aId,
        [out, retval] ISnapshot * * aSnapshot
    );

    HRESULT FindSnapshot (
        [in] BSTR aName,
        [out, retval] ISnapshot * * aSnapshot
    );

    HRESULT SetCurrentSnapshot (
        [in] BSTR aId
    );

    HRESULT CreateSharedFolder (
        [in] BSTR aName,
        [in] BSTR aHostPath,
        [in] BOOL aWritable
    );

    HRESULT RemoveSharedFolder (
        [in] BSTR aName
    );

    HRESULT CanShowConsoleWindow (
        [out, retval] BOOL * aCanShow
    );

    HRESULT ShowConsoleWindow (
        [out, retval] ULONG64 * aWinId
    );

    HRESULT GetGuestProperty (
        [in] BSTR aName,
        [out] BSTR * aValue,
        [out] ULONG64 * aTimestamp,
        [out] BSTR * aFlags
    );

    HRESULT GetGuestPropertyValue (
        [in] BSTR aProperty,
        [out, retval] BSTR * aValue
    );

    HRESULT GetGuestPropertyTimestamp (
        [in] BSTR aProperty,
        [out, retval] ULONG64 * aValue
    );

    HRESULT SetGuestProperty (
        [in] BSTR aProperty,
        [in] BSTR aValue,
        [in] BSTR aFlags
    );

    HRESULT SetGuestPropertyValue (
        [in] BSTR aProperty,
        [in] BSTR aValue
    );

    HRESULT EnumerateGuestProperties (
        [in] BSTR aPatterns,
        [out] SAFEARRAY(BSTR) * aName,
        [out] SAFEARRAY(BSTR) * aValue,
        [out] SAFEARRAY(ULONG64) * aTimestamp,
        [out] SAFEARRAY(BSTR) * aFlags
    );

    HRESULT QuerySavedThumbnailSize (
        [in] ULONG aScreenId,
        [out] ULONG * aSize,
        [out] ULONG * aWidth,
        [out] ULONG * aHeight
    );

    HRESULT ReadSavedThumbnailToArray (
        [in] ULONG aScreenId,
        [in] BOOL aBGR,
        [out] ULONG * aWidth,
        [out] ULONG * aHeight,
        [out, retval] SAFEARRAY(BYTE) * aData
    );

    HRESULT QuerySavedScreenshotPNGSize (
        [in] ULONG aScreenId,
        [out] ULONG * aSize,
        [out] ULONG * aWidth,
        [out] ULONG * aHeight
    );

    HRESULT ReadSavedScreenshotPNGToArray (
        [in] ULONG aScreenId,
        [out] ULONG * aWidth,
        [out] ULONG * aHeight,
        [out, retval] SAFEARRAY(BYTE) * aData
    );

    HRESULT HotPlugCPU (
        [in] ULONG aCpu
    );

    HRESULT HotUnplugCPU (
        [in] ULONG aCpu
    );

    HRESULT GetCPUStatus (
        [in] ULONG aCpu,
        [out, retval] BOOL * aAttached
    );

    HRESULT QueryLogFilename (
        [in] ULONG aIdx,
        [out, retval] BSTR * aFilename
    );

    HRESULT ReadLog (
        [in] ULONG aIdx,
        [in] ULONG64 aOffset,
        [in] ULONG64 aSize,
        [out, retval] SAFEARRAY(BYTE) * aData
    );

}; /* interface IMachine */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IMachine_GETTER_Parent_TO(smth) HRESULT STDMETHODCALLTYPE get_Parent (IVirtualBox * * aParent) { return smth get_Parent (aParent); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_Parent_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_Parent_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_Parent_TO_BASE(base) COM_FORWARD_IMachine_GETTER_Parent_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_Accessible_TO(smth) HRESULT STDMETHODCALLTYPE get_Accessible (BOOL * aAccessible) { return smth get_Accessible (aAccessible); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_Accessible_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_Accessible_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_Accessible_TO_BASE(base) COM_FORWARD_IMachine_GETTER_Accessible_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_AccessError_TO(smth) HRESULT STDMETHODCALLTYPE get_AccessError (IVirtualBoxErrorInfo * * aAccessError) { return smth get_AccessError (aAccessError); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_AccessError_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_AccessError_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_AccessError_TO_BASE(base) COM_FORWARD_IMachine_GETTER_AccessError_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_Name_TO(smth) HRESULT STDMETHODCALLTYPE get_Name (BSTR * aName) { return smth get_Name (aName); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_Name_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_Name_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_Name_TO_BASE(base) COM_FORWARD_IMachine_GETTER_Name_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_Name_TO(smth) HRESULT STDMETHODCALLTYPE put_Name (BSTR aName) { return smth put_Name (aName); }")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_Name_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_Name_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_Name_TO_BASE(base) COM_FORWARD_IMachine_SETTER_Name_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_Description_TO(smth) HRESULT STDMETHODCALLTYPE get_Description (BSTR * aDescription) { return smth get_Description (aDescription); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_Description_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_Description_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_Description_TO_BASE(base) COM_FORWARD_IMachine_GETTER_Description_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_Description_TO(smth) HRESULT STDMETHODCALLTYPE put_Description (BSTR aDescription) { return smth put_Description (aDescription); }")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_Description_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_Description_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_Description_TO_BASE(base) COM_FORWARD_IMachine_SETTER_Description_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_Id_TO(smth) HRESULT STDMETHODCALLTYPE get_Id (BSTR * aId) { return smth get_Id (aId); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_Id_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_Id_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_Id_TO_BASE(base) COM_FORWARD_IMachine_GETTER_Id_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_OSTypeId_TO(smth) HRESULT STDMETHODCALLTYPE get_OSTypeId (BSTR * aOSTypeId) { return smth get_OSTypeId (aOSTypeId); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_OSTypeId_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_OSTypeId_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_OSTypeId_TO_BASE(base) COM_FORWARD_IMachine_GETTER_OSTypeId_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_OSTypeId_TO(smth) HRESULT STDMETHODCALLTYPE put_OSTypeId (BSTR aOSTypeId) { return smth put_OSTypeId (aOSTypeId); }")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_OSTypeId_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_OSTypeId_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_OSTypeId_TO_BASE(base) COM_FORWARD_IMachine_SETTER_OSTypeId_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_HardwareVersion_TO(smth) HRESULT STDMETHODCALLTYPE get_HardwareVersion (BSTR * aHardwareVersion) { return smth get_HardwareVersion (aHardwareVersion); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_HardwareVersion_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_HardwareVersion_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_HardwareVersion_TO_BASE(base) COM_FORWARD_IMachine_GETTER_HardwareVersion_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_HardwareVersion_TO(smth) HRESULT STDMETHODCALLTYPE put_HardwareVersion (BSTR aHardwareVersion) { return smth put_HardwareVersion (aHardwareVersion); }")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_HardwareVersion_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_HardwareVersion_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_HardwareVersion_TO_BASE(base) COM_FORWARD_IMachine_SETTER_HardwareVersion_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_HardwareUUID_TO(smth) HRESULT STDMETHODCALLTYPE get_HardwareUUID (BSTR * aHardwareUUID) { return smth get_HardwareUUID (aHardwareUUID); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_HardwareUUID_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_HardwareUUID_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_HardwareUUID_TO_BASE(base) COM_FORWARD_IMachine_GETTER_HardwareUUID_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_HardwareUUID_TO(smth) HRESULT STDMETHODCALLTYPE put_HardwareUUID (BSTR aHardwareUUID) { return smth put_HardwareUUID (aHardwareUUID); }")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_HardwareUUID_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_HardwareUUID_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_HardwareUUID_TO_BASE(base) COM_FORWARD_IMachine_SETTER_HardwareUUID_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_CPUCount_TO(smth) HRESULT STDMETHODCALLTYPE get_CPUCount (ULONG * aCPUCount) { return smth get_CPUCount (aCPUCount); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_CPUCount_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_CPUCount_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_CPUCount_TO_BASE(base) COM_FORWARD_IMachine_GETTER_CPUCount_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_CPUCount_TO(smth) HRESULT STDMETHODCALLTYPE put_CPUCount (ULONG aCPUCount) { return smth put_CPUCount (aCPUCount); }")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_CPUCount_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_CPUCount_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_CPUCount_TO_BASE(base) COM_FORWARD_IMachine_SETTER_CPUCount_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_CPUHotPlugEnabled_TO(smth) HRESULT STDMETHODCALLTYPE get_CPUHotPlugEnabled (BOOL * aCPUHotPlugEnabled) { return smth get_CPUHotPlugEnabled (aCPUHotPlugEnabled); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_CPUHotPlugEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_CPUHotPlugEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_CPUHotPlugEnabled_TO_BASE(base) COM_FORWARD_IMachine_GETTER_CPUHotPlugEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_CPUHotPlugEnabled_TO(smth) HRESULT STDMETHODCALLTYPE put_CPUHotPlugEnabled (BOOL aCPUHotPlugEnabled) { return smth put_CPUHotPlugEnabled (aCPUHotPlugEnabled); }")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_CPUHotPlugEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_CPUHotPlugEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_CPUHotPlugEnabled_TO_BASE(base) COM_FORWARD_IMachine_SETTER_CPUHotPlugEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_MemorySize_TO(smth) HRESULT STDMETHODCALLTYPE get_MemorySize (ULONG * aMemorySize) { return smth get_MemorySize (aMemorySize); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_MemorySize_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_MemorySize_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_MemorySize_TO_BASE(base) COM_FORWARD_IMachine_GETTER_MemorySize_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_MemorySize_TO(smth) HRESULT STDMETHODCALLTYPE put_MemorySize (ULONG aMemorySize) { return smth put_MemorySize (aMemorySize); }")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_MemorySize_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_MemorySize_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_MemorySize_TO_BASE(base) COM_FORWARD_IMachine_SETTER_MemorySize_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_MemoryBalloonSize_TO(smth) HRESULT STDMETHODCALLTYPE get_MemoryBalloonSize (ULONG * aMemoryBalloonSize) { return smth get_MemoryBalloonSize (aMemoryBalloonSize); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_MemoryBalloonSize_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_MemoryBalloonSize_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_MemoryBalloonSize_TO_BASE(base) COM_FORWARD_IMachine_GETTER_MemoryBalloonSize_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_MemoryBalloonSize_TO(smth) HRESULT STDMETHODCALLTYPE put_MemoryBalloonSize (ULONG aMemoryBalloonSize) { return smth put_MemoryBalloonSize (aMemoryBalloonSize); }")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_MemoryBalloonSize_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_MemoryBalloonSize_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_MemoryBalloonSize_TO_BASE(base) COM_FORWARD_IMachine_SETTER_MemoryBalloonSize_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_PageFusionEnabled_TO(smth) HRESULT STDMETHODCALLTYPE get_PageFusionEnabled (BOOL * aPageFusionEnabled) { return smth get_PageFusionEnabled (aPageFusionEnabled); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_PageFusionEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_PageFusionEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_PageFusionEnabled_TO_BASE(base) COM_FORWARD_IMachine_GETTER_PageFusionEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_PageFusionEnabled_TO(smth) HRESULT STDMETHODCALLTYPE put_PageFusionEnabled (BOOL aPageFusionEnabled) { return smth put_PageFusionEnabled (aPageFusionEnabled); }")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_PageFusionEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_PageFusionEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_PageFusionEnabled_TO_BASE(base) COM_FORWARD_IMachine_SETTER_PageFusionEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_VRAMSize_TO(smth) HRESULT STDMETHODCALLTYPE get_VRAMSize (ULONG * aVRAMSize) { return smth get_VRAMSize (aVRAMSize); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_VRAMSize_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_VRAMSize_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_VRAMSize_TO_BASE(base) COM_FORWARD_IMachine_GETTER_VRAMSize_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_VRAMSize_TO(smth) HRESULT STDMETHODCALLTYPE put_VRAMSize (ULONG aVRAMSize) { return smth put_VRAMSize (aVRAMSize); }")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_VRAMSize_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_VRAMSize_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_VRAMSize_TO_BASE(base) COM_FORWARD_IMachine_SETTER_VRAMSize_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_Accelerate3DEnabled_TO(smth) HRESULT STDMETHODCALLTYPE get_Accelerate3DEnabled (BOOL * aAccelerate3DEnabled) { return smth get_Accelerate3DEnabled (aAccelerate3DEnabled); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_Accelerate3DEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_Accelerate3DEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_Accelerate3DEnabled_TO_BASE(base) COM_FORWARD_IMachine_GETTER_Accelerate3DEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_Accelerate3DEnabled_TO(smth) HRESULT STDMETHODCALLTYPE put_Accelerate3DEnabled (BOOL aAccelerate3DEnabled) { return smth put_Accelerate3DEnabled (aAccelerate3DEnabled); }")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_Accelerate3DEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_Accelerate3DEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_Accelerate3DEnabled_TO_BASE(base) COM_FORWARD_IMachine_SETTER_Accelerate3DEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_Accelerate2DVideoEnabled_TO(smth) HRESULT STDMETHODCALLTYPE get_Accelerate2DVideoEnabled (BOOL * aAccelerate2DVideoEnabled) { return smth get_Accelerate2DVideoEnabled (aAccelerate2DVideoEnabled); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_Accelerate2DVideoEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_Accelerate2DVideoEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_Accelerate2DVideoEnabled_TO_BASE(base) COM_FORWARD_IMachine_GETTER_Accelerate2DVideoEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_Accelerate2DVideoEnabled_TO(smth) HRESULT STDMETHODCALLTYPE put_Accelerate2DVideoEnabled (BOOL aAccelerate2DVideoEnabled) { return smth put_Accelerate2DVideoEnabled (aAccelerate2DVideoEnabled); }")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_Accelerate2DVideoEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_Accelerate2DVideoEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_Accelerate2DVideoEnabled_TO_BASE(base) COM_FORWARD_IMachine_SETTER_Accelerate2DVideoEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_MonitorCount_TO(smth) HRESULT STDMETHODCALLTYPE get_MonitorCount (ULONG * aMonitorCount) { return smth get_MonitorCount (aMonitorCount); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_MonitorCount_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_MonitorCount_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_MonitorCount_TO_BASE(base) COM_FORWARD_IMachine_GETTER_MonitorCount_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_MonitorCount_TO(smth) HRESULT STDMETHODCALLTYPE put_MonitorCount (ULONG aMonitorCount) { return smth put_MonitorCount (aMonitorCount); }")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_MonitorCount_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_MonitorCount_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_MonitorCount_TO_BASE(base) COM_FORWARD_IMachine_SETTER_MonitorCount_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_BIOSSettings_TO(smth) HRESULT STDMETHODCALLTYPE get_BIOSSettings (IBIOSSettings * * aBIOSSettings) { return smth get_BIOSSettings (aBIOSSettings); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_BIOSSettings_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_BIOSSettings_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_BIOSSettings_TO_BASE(base) COM_FORWARD_IMachine_GETTER_BIOSSettings_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_FirmwareType_TO(smth) HRESULT STDMETHODCALLTYPE get_FirmwareType (FirmwareType * aFirmwareType) { return smth get_FirmwareType (aFirmwareType); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_FirmwareType_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_FirmwareType_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_FirmwareType_TO_BASE(base) COM_FORWARD_IMachine_GETTER_FirmwareType_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_FirmwareType_TO(smth) HRESULT STDMETHODCALLTYPE put_FirmwareType (FirmwareType aFirmwareType) { return smth put_FirmwareType (aFirmwareType); }")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_FirmwareType_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_FirmwareType_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_FirmwareType_TO_BASE(base) COM_FORWARD_IMachine_SETTER_FirmwareType_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_PointingHidType_TO(smth) HRESULT STDMETHODCALLTYPE get_PointingHidType (PointingHidType * aPointingHidType) { return smth get_PointingHidType (aPointingHidType); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_PointingHidType_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_PointingHidType_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_PointingHidType_TO_BASE(base) COM_FORWARD_IMachine_GETTER_PointingHidType_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_PointingHidType_TO(smth) HRESULT STDMETHODCALLTYPE put_PointingHidType (PointingHidType aPointingHidType) { return smth put_PointingHidType (aPointingHidType); }")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_PointingHidType_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_PointingHidType_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_PointingHidType_TO_BASE(base) COM_FORWARD_IMachine_SETTER_PointingHidType_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_KeyboardHidType_TO(smth) HRESULT STDMETHODCALLTYPE get_KeyboardHidType (KeyboardHidType * aKeyboardHidType) { return smth get_KeyboardHidType (aKeyboardHidType); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_KeyboardHidType_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_KeyboardHidType_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_KeyboardHidType_TO_BASE(base) COM_FORWARD_IMachine_GETTER_KeyboardHidType_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_KeyboardHidType_TO(smth) HRESULT STDMETHODCALLTYPE put_KeyboardHidType (KeyboardHidType aKeyboardHidType) { return smth put_KeyboardHidType (aKeyboardHidType); }")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_KeyboardHidType_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_KeyboardHidType_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_KeyboardHidType_TO_BASE(base) COM_FORWARD_IMachine_SETTER_KeyboardHidType_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_HpetEnabled_TO(smth) HRESULT STDMETHODCALLTYPE get_HpetEnabled (BOOL * aHpetEnabled) { return smth get_HpetEnabled (aHpetEnabled); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_HpetEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_HpetEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_HpetEnabled_TO_BASE(base) COM_FORWARD_IMachine_GETTER_HpetEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_HpetEnabled_TO(smth) HRESULT STDMETHODCALLTYPE put_HpetEnabled (BOOL aHpetEnabled) { return smth put_HpetEnabled (aHpetEnabled); }")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_HpetEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_HpetEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_HpetEnabled_TO_BASE(base) COM_FORWARD_IMachine_SETTER_HpetEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_SnapshotFolder_TO(smth) HRESULT STDMETHODCALLTYPE get_SnapshotFolder (BSTR * aSnapshotFolder) { return smth get_SnapshotFolder (aSnapshotFolder); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_SnapshotFolder_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_SnapshotFolder_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_SnapshotFolder_TO_BASE(base) COM_FORWARD_IMachine_GETTER_SnapshotFolder_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_SnapshotFolder_TO(smth) HRESULT STDMETHODCALLTYPE put_SnapshotFolder (BSTR aSnapshotFolder) { return smth put_SnapshotFolder (aSnapshotFolder); }")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_SnapshotFolder_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_SnapshotFolder_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_SnapshotFolder_TO_BASE(base) COM_FORWARD_IMachine_SETTER_SnapshotFolder_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_VRDPServer_TO(smth) HRESULT STDMETHODCALLTYPE get_VRDPServer (IVRDPServer * * aVRDPServer) { return smth get_VRDPServer (aVRDPServer); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_VRDPServer_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_VRDPServer_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_VRDPServer_TO_BASE(base) COM_FORWARD_IMachine_GETTER_VRDPServer_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_MediumAttachments_TO(smth) HRESULT STDMETHODCALLTYPE get_MediumAttachments (SAFEARRAY * * aMediumAttachments) { return smth get_MediumAttachments (aMediumAttachments); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_MediumAttachments_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_MediumAttachments_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_MediumAttachments_TO_BASE(base) COM_FORWARD_IMachine_GETTER_MediumAttachments_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_USBController_TO(smth) HRESULT STDMETHODCALLTYPE get_USBController (IUSBController * * aUSBController) { return smth get_USBController (aUSBController); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_USBController_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_USBController_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_USBController_TO_BASE(base) COM_FORWARD_IMachine_GETTER_USBController_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_AudioAdapter_TO(smth) HRESULT STDMETHODCALLTYPE get_AudioAdapter (IAudioAdapter * * aAudioAdapter) { return smth get_AudioAdapter (aAudioAdapter); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_AudioAdapter_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_AudioAdapter_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_AudioAdapter_TO_BASE(base) COM_FORWARD_IMachine_GETTER_AudioAdapter_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_StorageControllers_TO(smth) HRESULT STDMETHODCALLTYPE get_StorageControllers (SAFEARRAY * * aStorageControllers) { return smth get_StorageControllers (aStorageControllers); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_StorageControllers_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_StorageControllers_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_StorageControllers_TO_BASE(base) COM_FORWARD_IMachine_GETTER_StorageControllers_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_SettingsFilePath_TO(smth) HRESULT STDMETHODCALLTYPE get_SettingsFilePath (BSTR * aSettingsFilePath) { return smth get_SettingsFilePath (aSettingsFilePath); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_SettingsFilePath_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_SettingsFilePath_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_SettingsFilePath_TO_BASE(base) COM_FORWARD_IMachine_GETTER_SettingsFilePath_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_SettingsModified_TO(smth) HRESULT STDMETHODCALLTYPE get_SettingsModified (BOOL * aSettingsModified) { return smth get_SettingsModified (aSettingsModified); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_SettingsModified_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_SettingsModified_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_SettingsModified_TO_BASE(base) COM_FORWARD_IMachine_GETTER_SettingsModified_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_SessionState_TO(smth) HRESULT STDMETHODCALLTYPE get_SessionState (SessionState * aSessionState) { return smth get_SessionState (aSessionState); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_SessionState_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_SessionState_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_SessionState_TO_BASE(base) COM_FORWARD_IMachine_GETTER_SessionState_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_SessionType_TO(smth) HRESULT STDMETHODCALLTYPE get_SessionType (BSTR * aSessionType) { return smth get_SessionType (aSessionType); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_SessionType_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_SessionType_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_SessionType_TO_BASE(base) COM_FORWARD_IMachine_GETTER_SessionType_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_SessionPid_TO(smth) HRESULT STDMETHODCALLTYPE get_SessionPid (ULONG * aSessionPid) { return smth get_SessionPid (aSessionPid); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_SessionPid_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_SessionPid_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_SessionPid_TO_BASE(base) COM_FORWARD_IMachine_GETTER_SessionPid_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_State_TO(smth) HRESULT STDMETHODCALLTYPE get_State (MachineState * aState) { return smth get_State (aState); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_State_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_State_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_State_TO_BASE(base) COM_FORWARD_IMachine_GETTER_State_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_LastStateChange_TO(smth) HRESULT STDMETHODCALLTYPE get_LastStateChange (LONG64 * aLastStateChange) { return smth get_LastStateChange (aLastStateChange); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_LastStateChange_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_LastStateChange_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_LastStateChange_TO_BASE(base) COM_FORWARD_IMachine_GETTER_LastStateChange_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_StateFilePath_TO(smth) HRESULT STDMETHODCALLTYPE get_StateFilePath (BSTR * aStateFilePath) { return smth get_StateFilePath (aStateFilePath); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_StateFilePath_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_StateFilePath_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_StateFilePath_TO_BASE(base) COM_FORWARD_IMachine_GETTER_StateFilePath_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_LogFolder_TO(smth) HRESULT STDMETHODCALLTYPE get_LogFolder (BSTR * aLogFolder) { return smth get_LogFolder (aLogFolder); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_LogFolder_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_LogFolder_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_LogFolder_TO_BASE(base) COM_FORWARD_IMachine_GETTER_LogFolder_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_CurrentSnapshot_TO(smth) HRESULT STDMETHODCALLTYPE get_CurrentSnapshot (ISnapshot * * aCurrentSnapshot) { return smth get_CurrentSnapshot (aCurrentSnapshot); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_CurrentSnapshot_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_CurrentSnapshot_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_CurrentSnapshot_TO_BASE(base) COM_FORWARD_IMachine_GETTER_CurrentSnapshot_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_SnapshotCount_TO(smth) HRESULT STDMETHODCALLTYPE get_SnapshotCount (ULONG * aSnapshotCount) { return smth get_SnapshotCount (aSnapshotCount); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_SnapshotCount_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_SnapshotCount_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_SnapshotCount_TO_BASE(base) COM_FORWARD_IMachine_GETTER_SnapshotCount_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_CurrentStateModified_TO(smth) HRESULT STDMETHODCALLTYPE get_CurrentStateModified (BOOL * aCurrentStateModified) { return smth get_CurrentStateModified (aCurrentStateModified); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_CurrentStateModified_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_CurrentStateModified_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_CurrentStateModified_TO_BASE(base) COM_FORWARD_IMachine_GETTER_CurrentStateModified_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_SharedFolders_TO(smth) HRESULT STDMETHODCALLTYPE get_SharedFolders (SAFEARRAY * * aSharedFolders) { return smth get_SharedFolders (aSharedFolders); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_SharedFolders_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_SharedFolders_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_SharedFolders_TO_BASE(base) COM_FORWARD_IMachine_GETTER_SharedFolders_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_ClipboardMode_TO(smth) HRESULT STDMETHODCALLTYPE get_ClipboardMode (ClipboardMode * aClipboardMode) { return smth get_ClipboardMode (aClipboardMode); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_ClipboardMode_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_ClipboardMode_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_ClipboardMode_TO_BASE(base) COM_FORWARD_IMachine_GETTER_ClipboardMode_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_ClipboardMode_TO(smth) HRESULT STDMETHODCALLTYPE put_ClipboardMode (ClipboardMode aClipboardMode) { return smth put_ClipboardMode (aClipboardMode); }")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_ClipboardMode_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_ClipboardMode_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_ClipboardMode_TO_BASE(base) COM_FORWARD_IMachine_SETTER_ClipboardMode_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_GuestPropertyNotificationPatterns_TO(smth) HRESULT STDMETHODCALLTYPE get_GuestPropertyNotificationPatterns (BSTR * aGuestPropertyNotificationPatterns) { return smth get_GuestPropertyNotificationPatterns (aGuestPropertyNotificationPatterns); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_GuestPropertyNotificationPatterns_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_GuestPropertyNotificationPatterns_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_GuestPropertyNotificationPatterns_TO_BASE(base) COM_FORWARD_IMachine_GETTER_GuestPropertyNotificationPatterns_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_GuestPropertyNotificationPatterns_TO(smth) HRESULT STDMETHODCALLTYPE put_GuestPropertyNotificationPatterns (BSTR aGuestPropertyNotificationPatterns) { return smth put_GuestPropertyNotificationPatterns (aGuestPropertyNotificationPatterns); }")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_GuestPropertyNotificationPatterns_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_GuestPropertyNotificationPatterns_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_GuestPropertyNotificationPatterns_TO_BASE(base) COM_FORWARD_IMachine_SETTER_GuestPropertyNotificationPatterns_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_TeleporterEnabled_TO(smth) HRESULT STDMETHODCALLTYPE get_TeleporterEnabled (BOOL * aTeleporterEnabled) { return smth get_TeleporterEnabled (aTeleporterEnabled); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_TeleporterEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_TeleporterEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_TeleporterEnabled_TO_BASE(base) COM_FORWARD_IMachine_GETTER_TeleporterEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_TeleporterEnabled_TO(smth) HRESULT STDMETHODCALLTYPE put_TeleporterEnabled (BOOL aTeleporterEnabled) { return smth put_TeleporterEnabled (aTeleporterEnabled); }")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_TeleporterEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_TeleporterEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_TeleporterEnabled_TO_BASE(base) COM_FORWARD_IMachine_SETTER_TeleporterEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_TeleporterPort_TO(smth) HRESULT STDMETHODCALLTYPE get_TeleporterPort (ULONG * aTeleporterPort) { return smth get_TeleporterPort (aTeleporterPort); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_TeleporterPort_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_TeleporterPort_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_TeleporterPort_TO_BASE(base) COM_FORWARD_IMachine_GETTER_TeleporterPort_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_TeleporterPort_TO(smth) HRESULT STDMETHODCALLTYPE put_TeleporterPort (ULONG aTeleporterPort) { return smth put_TeleporterPort (aTeleporterPort); }")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_TeleporterPort_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_TeleporterPort_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_TeleporterPort_TO_BASE(base) COM_FORWARD_IMachine_SETTER_TeleporterPort_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_TeleporterAddress_TO(smth) HRESULT STDMETHODCALLTYPE get_TeleporterAddress (BSTR * aTeleporterAddress) { return smth get_TeleporterAddress (aTeleporterAddress); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_TeleporterAddress_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_TeleporterAddress_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_TeleporterAddress_TO_BASE(base) COM_FORWARD_IMachine_GETTER_TeleporterAddress_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_TeleporterAddress_TO(smth) HRESULT STDMETHODCALLTYPE put_TeleporterAddress (BSTR aTeleporterAddress) { return smth put_TeleporterAddress (aTeleporterAddress); }")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_TeleporterAddress_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_TeleporterAddress_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_TeleporterAddress_TO_BASE(base) COM_FORWARD_IMachine_SETTER_TeleporterAddress_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_TeleporterPassword_TO(smth) HRESULT STDMETHODCALLTYPE get_TeleporterPassword (BSTR * aTeleporterPassword) { return smth get_TeleporterPassword (aTeleporterPassword); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_TeleporterPassword_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_TeleporterPassword_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_TeleporterPassword_TO_BASE(base) COM_FORWARD_IMachine_GETTER_TeleporterPassword_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_TeleporterPassword_TO(smth) HRESULT STDMETHODCALLTYPE put_TeleporterPassword (BSTR aTeleporterPassword) { return smth put_TeleporterPassword (aTeleporterPassword); }")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_TeleporterPassword_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_TeleporterPassword_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_TeleporterPassword_TO_BASE(base) COM_FORWARD_IMachine_SETTER_TeleporterPassword_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_RTCUseUTC_TO(smth) HRESULT STDMETHODCALLTYPE get_RTCUseUTC (BOOL * aRTCUseUTC) { return smth get_RTCUseUTC (aRTCUseUTC); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_RTCUseUTC_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_RTCUseUTC_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_RTCUseUTC_TO_BASE(base) COM_FORWARD_IMachine_GETTER_RTCUseUTC_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_RTCUseUTC_TO(smth) HRESULT STDMETHODCALLTYPE put_RTCUseUTC (BOOL aRTCUseUTC) { return smth put_RTCUseUTC (aRTCUseUTC); }")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_RTCUseUTC_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_RTCUseUTC_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_RTCUseUTC_TO_BASE(base) COM_FORWARD_IMachine_SETTER_RTCUseUTC_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_IoCacheEnabled_TO(smth) HRESULT STDMETHODCALLTYPE get_IoCacheEnabled (BOOL * aIoCacheEnabled) { return smth get_IoCacheEnabled (aIoCacheEnabled); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_IoCacheEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_IoCacheEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_IoCacheEnabled_TO_BASE(base) COM_FORWARD_IMachine_GETTER_IoCacheEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_IoCacheEnabled_TO(smth) HRESULT STDMETHODCALLTYPE put_IoCacheEnabled (BOOL aIoCacheEnabled) { return smth put_IoCacheEnabled (aIoCacheEnabled); }")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_IoCacheEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_IoCacheEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_IoCacheEnabled_TO_BASE(base) COM_FORWARD_IMachine_SETTER_IoCacheEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_IoCacheSize_TO(smth) HRESULT STDMETHODCALLTYPE get_IoCacheSize (ULONG * aIoCacheSize) { return smth get_IoCacheSize (aIoCacheSize); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_IoCacheSize_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_IoCacheSize_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_IoCacheSize_TO_BASE(base) COM_FORWARD_IMachine_GETTER_IoCacheSize_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_IoCacheSize_TO(smth) HRESULT STDMETHODCALLTYPE put_IoCacheSize (ULONG aIoCacheSize) { return smth put_IoCacheSize (aIoCacheSize); }")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_IoCacheSize_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_IoCacheSize_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_IoCacheSize_TO_BASE(base) COM_FORWARD_IMachine_SETTER_IoCacheSize_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_IoBandwidthMax_TO(smth) HRESULT STDMETHODCALLTYPE get_IoBandwidthMax (ULONG * aIoBandwidthMax) { return smth get_IoBandwidthMax (aIoBandwidthMax); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_IoBandwidthMax_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_IoBandwidthMax_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_IoBandwidthMax_TO_BASE(base) COM_FORWARD_IMachine_GETTER_IoBandwidthMax_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_IoBandwidthMax_TO(smth) HRESULT STDMETHODCALLTYPE put_IoBandwidthMax (ULONG aIoBandwidthMax) { return smth put_IoBandwidthMax (aIoBandwidthMax); }")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_IoBandwidthMax_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_IoBandwidthMax_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_IoBandwidthMax_TO_BASE(base) COM_FORWARD_IMachine_SETTER_IoBandwidthMax_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SetBootOrder_TO(smth) HRESULT STDMETHODCALLTYPE SetBootOrder (ULONG aPosition, DeviceType aDevice) { return smth SetBootOrder (aPosition, aDevice); }")
cpp_quote("#define COM_FORWARD_IMachine_SetBootOrder_TO_OBJ(obj) COM_FORWARD_IMachine_SetBootOrder_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SetBootOrder_TO_BASE(base) COM_FORWARD_IMachine_SetBootOrder_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GetBootOrder_TO(smth) HRESULT STDMETHODCALLTYPE GetBootOrder (ULONG aPosition, DeviceType * aDevice) { return smth GetBootOrder (aPosition, aDevice); }")
cpp_quote("#define COM_FORWARD_IMachine_GetBootOrder_TO_OBJ(obj) COM_FORWARD_IMachine_GetBootOrder_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GetBootOrder_TO_BASE(base) COM_FORWARD_IMachine_GetBootOrder_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_AttachDevice_TO(smth) HRESULT STDMETHODCALLTYPE AttachDevice (BSTR aName, LONG aControllerPort, LONG aDevice, DeviceType aType, BSTR aId) { return smth AttachDevice (aName, aControllerPort, aDevice, aType, aId); }")
cpp_quote("#define COM_FORWARD_IMachine_AttachDevice_TO_OBJ(obj) COM_FORWARD_IMachine_AttachDevice_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_AttachDevice_TO_BASE(base) COM_FORWARD_IMachine_AttachDevice_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_DetachDevice_TO(smth) HRESULT STDMETHODCALLTYPE DetachDevice (BSTR aName, LONG aControllerPort, LONG aDevice) { return smth DetachDevice (aName, aControllerPort, aDevice); }")
cpp_quote("#define COM_FORWARD_IMachine_DetachDevice_TO_OBJ(obj) COM_FORWARD_IMachine_DetachDevice_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_DetachDevice_TO_BASE(base) COM_FORWARD_IMachine_DetachDevice_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_PassthroughDevice_TO(smth) HRESULT STDMETHODCALLTYPE PassthroughDevice (BSTR aName, LONG aControllerPort, LONG aDevice, BOOL aPassthrough) { return smth PassthroughDevice (aName, aControllerPort, aDevice, aPassthrough); }")
cpp_quote("#define COM_FORWARD_IMachine_PassthroughDevice_TO_OBJ(obj) COM_FORWARD_IMachine_PassthroughDevice_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_PassthroughDevice_TO_BASE(base) COM_FORWARD_IMachine_PassthroughDevice_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_MountMedium_TO(smth) HRESULT STDMETHODCALLTYPE MountMedium (BSTR aName, LONG aControllerPort, LONG aDevice, BSTR aMedium, BOOL aForce) { return smth MountMedium (aName, aControllerPort, aDevice, aMedium, aForce); }")
cpp_quote("#define COM_FORWARD_IMachine_MountMedium_TO_OBJ(obj) COM_FORWARD_IMachine_MountMedium_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_MountMedium_TO_BASE(base) COM_FORWARD_IMachine_MountMedium_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GetMedium_TO(smth) HRESULT STDMETHODCALLTYPE GetMedium (BSTR aName, LONG aControllerPort, LONG aDevice, IMedium * * aMedium) { return smth GetMedium (aName, aControllerPort, aDevice, aMedium); }")
cpp_quote("#define COM_FORWARD_IMachine_GetMedium_TO_OBJ(obj) COM_FORWARD_IMachine_GetMedium_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GetMedium_TO_BASE(base) COM_FORWARD_IMachine_GetMedium_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GetMediumAttachmentsOfController_TO(smth) HRESULT STDMETHODCALLTYPE GetMediumAttachmentsOfController (BSTR aName, SAFEARRAY * * aMediumAttachments) { return smth GetMediumAttachmentsOfController (aName, aMediumAttachments); }")
cpp_quote("#define COM_FORWARD_IMachine_GetMediumAttachmentsOfController_TO_OBJ(obj) COM_FORWARD_IMachine_GetMediumAttachmentsOfController_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GetMediumAttachmentsOfController_TO_BASE(base) COM_FORWARD_IMachine_GetMediumAttachmentsOfController_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GetMediumAttachment_TO(smth) HRESULT STDMETHODCALLTYPE GetMediumAttachment (BSTR aName, LONG aControllerPort, LONG aDevice, IMediumAttachment * * aAttachment) { return smth GetMediumAttachment (aName, aControllerPort, aDevice, aAttachment); }")
cpp_quote("#define COM_FORWARD_IMachine_GetMediumAttachment_TO_OBJ(obj) COM_FORWARD_IMachine_GetMediumAttachment_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GetMediumAttachment_TO_BASE(base) COM_FORWARD_IMachine_GetMediumAttachment_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GetNetworkAdapter_TO(smth) HRESULT STDMETHODCALLTYPE GetNetworkAdapter (ULONG aSlot, INetworkAdapter * * aAdapter) { return smth GetNetworkAdapter (aSlot, aAdapter); }")
cpp_quote("#define COM_FORWARD_IMachine_GetNetworkAdapter_TO_OBJ(obj) COM_FORWARD_IMachine_GetNetworkAdapter_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GetNetworkAdapter_TO_BASE(base) COM_FORWARD_IMachine_GetNetworkAdapter_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_AddStorageController_TO(smth) HRESULT STDMETHODCALLTYPE AddStorageController (BSTR aName, StorageBus aConnectionType, IStorageController * * aController) { return smth AddStorageController (aName, aConnectionType, aController); }")
cpp_quote("#define COM_FORWARD_IMachine_AddStorageController_TO_OBJ(obj) COM_FORWARD_IMachine_AddStorageController_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_AddStorageController_TO_BASE(base) COM_FORWARD_IMachine_AddStorageController_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GetStorageControllerByName_TO(smth) HRESULT STDMETHODCALLTYPE GetStorageControllerByName (BSTR aName, IStorageController * * aStorageController) { return smth GetStorageControllerByName (aName, aStorageController); }")
cpp_quote("#define COM_FORWARD_IMachine_GetStorageControllerByName_TO_OBJ(obj) COM_FORWARD_IMachine_GetStorageControllerByName_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GetStorageControllerByName_TO_BASE(base) COM_FORWARD_IMachine_GetStorageControllerByName_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GetStorageControllerByInstance_TO(smth) HRESULT STDMETHODCALLTYPE GetStorageControllerByInstance (ULONG aInstance, IStorageController * * aStorageController) { return smth GetStorageControllerByInstance (aInstance, aStorageController); }")
cpp_quote("#define COM_FORWARD_IMachine_GetStorageControllerByInstance_TO_OBJ(obj) COM_FORWARD_IMachine_GetStorageControllerByInstance_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GetStorageControllerByInstance_TO_BASE(base) COM_FORWARD_IMachine_GetStorageControllerByInstance_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_RemoveStorageController_TO(smth) HRESULT STDMETHODCALLTYPE RemoveStorageController (BSTR aName) { return smth RemoveStorageController (aName); }")
cpp_quote("#define COM_FORWARD_IMachine_RemoveStorageController_TO_OBJ(obj) COM_FORWARD_IMachine_RemoveStorageController_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_RemoveStorageController_TO_BASE(base) COM_FORWARD_IMachine_RemoveStorageController_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GetSerialPort_TO(smth) HRESULT STDMETHODCALLTYPE GetSerialPort (ULONG aSlot, ISerialPort * * aPort) { return smth GetSerialPort (aSlot, aPort); }")
cpp_quote("#define COM_FORWARD_IMachine_GetSerialPort_TO_OBJ(obj) COM_FORWARD_IMachine_GetSerialPort_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GetSerialPort_TO_BASE(base) COM_FORWARD_IMachine_GetSerialPort_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GetParallelPort_TO(smth) HRESULT STDMETHODCALLTYPE GetParallelPort (ULONG aSlot, IParallelPort * * aPort) { return smth GetParallelPort (aSlot, aPort); }")
cpp_quote("#define COM_FORWARD_IMachine_GetParallelPort_TO_OBJ(obj) COM_FORWARD_IMachine_GetParallelPort_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GetParallelPort_TO_BASE(base) COM_FORWARD_IMachine_GetParallelPort_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GetExtraDataKeys_TO(smth) HRESULT STDMETHODCALLTYPE GetExtraDataKeys (SAFEARRAY * * aValue) { return smth GetExtraDataKeys (aValue); }")
cpp_quote("#define COM_FORWARD_IMachine_GetExtraDataKeys_TO_OBJ(obj) COM_FORWARD_IMachine_GetExtraDataKeys_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GetExtraDataKeys_TO_BASE(base) COM_FORWARD_IMachine_GetExtraDataKeys_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GetExtraData_TO(smth) HRESULT STDMETHODCALLTYPE GetExtraData (BSTR aKey, BSTR * aValue) { return smth GetExtraData (aKey, aValue); }")
cpp_quote("#define COM_FORWARD_IMachine_GetExtraData_TO_OBJ(obj) COM_FORWARD_IMachine_GetExtraData_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GetExtraData_TO_BASE(base) COM_FORWARD_IMachine_GetExtraData_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SetExtraData_TO(smth) HRESULT STDMETHODCALLTYPE SetExtraData (BSTR aKey, BSTR aValue) { return smth SetExtraData (aKey, aValue); }")
cpp_quote("#define COM_FORWARD_IMachine_SetExtraData_TO_OBJ(obj) COM_FORWARD_IMachine_SetExtraData_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SetExtraData_TO_BASE(base) COM_FORWARD_IMachine_SetExtraData_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GetCPUProperty_TO(smth) HRESULT STDMETHODCALLTYPE GetCPUProperty (CPUPropertyType aProperty, BOOL * aValue) { return smth GetCPUProperty (aProperty, aValue); }")
cpp_quote("#define COM_FORWARD_IMachine_GetCPUProperty_TO_OBJ(obj) COM_FORWARD_IMachine_GetCPUProperty_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GetCPUProperty_TO_BASE(base) COM_FORWARD_IMachine_GetCPUProperty_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SetCPUProperty_TO(smth) HRESULT STDMETHODCALLTYPE SetCPUProperty (CPUPropertyType aProperty, BOOL aValue) { return smth SetCPUProperty (aProperty, aValue); }")
cpp_quote("#define COM_FORWARD_IMachine_SetCPUProperty_TO_OBJ(obj) COM_FORWARD_IMachine_SetCPUProperty_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SetCPUProperty_TO_BASE(base) COM_FORWARD_IMachine_SetCPUProperty_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GetCPUIDLeaf_TO(smth) HRESULT STDMETHODCALLTYPE GetCPUIDLeaf (ULONG aId, ULONG * aValEax, ULONG * aValEbx, ULONG * aValEcx, ULONG * aValEdx) { return smth GetCPUIDLeaf (aId, aValEax, aValEbx, aValEcx, aValEdx); }")
cpp_quote("#define COM_FORWARD_IMachine_GetCPUIDLeaf_TO_OBJ(obj) COM_FORWARD_IMachine_GetCPUIDLeaf_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GetCPUIDLeaf_TO_BASE(base) COM_FORWARD_IMachine_GetCPUIDLeaf_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SetCPUIDLeaf_TO(smth) HRESULT STDMETHODCALLTYPE SetCPUIDLeaf (ULONG aId, ULONG aValEax, ULONG aValEbx, ULONG aValEcx, ULONG aValEdx) { return smth SetCPUIDLeaf (aId, aValEax, aValEbx, aValEcx, aValEdx); }")
cpp_quote("#define COM_FORWARD_IMachine_SetCPUIDLeaf_TO_OBJ(obj) COM_FORWARD_IMachine_SetCPUIDLeaf_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SetCPUIDLeaf_TO_BASE(base) COM_FORWARD_IMachine_SetCPUIDLeaf_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_RemoveCPUIDLeaf_TO(smth) HRESULT STDMETHODCALLTYPE RemoveCPUIDLeaf (ULONG aId) { return smth RemoveCPUIDLeaf (aId); }")
cpp_quote("#define COM_FORWARD_IMachine_RemoveCPUIDLeaf_TO_OBJ(obj) COM_FORWARD_IMachine_RemoveCPUIDLeaf_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_RemoveCPUIDLeaf_TO_BASE(base) COM_FORWARD_IMachine_RemoveCPUIDLeaf_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_RemoveAllCPUIDLeaves_TO(smth) HRESULT STDMETHODCALLTYPE RemoveAllCPUIDLeaves() { return smth RemoveAllCPUIDLeaves(); }")
cpp_quote("#define COM_FORWARD_IMachine_RemoveAllCPUIDLeaves_TO_OBJ(obj) COM_FORWARD_IMachine_RemoveAllCPUIDLeaves_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_RemoveAllCPUIDLeaves_TO_BASE(base) COM_FORWARD_IMachine_RemoveAllCPUIDLeaves_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GetHWVirtExProperty_TO(smth) HRESULT STDMETHODCALLTYPE GetHWVirtExProperty (HWVirtExPropertyType aProperty, BOOL * aValue) { return smth GetHWVirtExProperty (aProperty, aValue); }")
cpp_quote("#define COM_FORWARD_IMachine_GetHWVirtExProperty_TO_OBJ(obj) COM_FORWARD_IMachine_GetHWVirtExProperty_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GetHWVirtExProperty_TO_BASE(base) COM_FORWARD_IMachine_GetHWVirtExProperty_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SetHWVirtExProperty_TO(smth) HRESULT STDMETHODCALLTYPE SetHWVirtExProperty (HWVirtExPropertyType aProperty, BOOL aValue) { return smth SetHWVirtExProperty (aProperty, aValue); }")
cpp_quote("#define COM_FORWARD_IMachine_SetHWVirtExProperty_TO_OBJ(obj) COM_FORWARD_IMachine_SetHWVirtExProperty_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SetHWVirtExProperty_TO_BASE(base) COM_FORWARD_IMachine_SetHWVirtExProperty_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SaveSettings_TO(smth) HRESULT STDMETHODCALLTYPE SaveSettings() { return smth SaveSettings(); }")
cpp_quote("#define COM_FORWARD_IMachine_SaveSettings_TO_OBJ(obj) COM_FORWARD_IMachine_SaveSettings_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SaveSettings_TO_BASE(base) COM_FORWARD_IMachine_SaveSettings_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_DiscardSettings_TO(smth) HRESULT STDMETHODCALLTYPE DiscardSettings() { return smth DiscardSettings(); }")
cpp_quote("#define COM_FORWARD_IMachine_DiscardSettings_TO_OBJ(obj) COM_FORWARD_IMachine_DiscardSettings_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_DiscardSettings_TO_BASE(base) COM_FORWARD_IMachine_DiscardSettings_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_DeleteSettings_TO(smth) HRESULT STDMETHODCALLTYPE DeleteSettings() { return smth DeleteSettings(); }")
cpp_quote("#define COM_FORWARD_IMachine_DeleteSettings_TO_OBJ(obj) COM_FORWARD_IMachine_DeleteSettings_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_DeleteSettings_TO_BASE(base) COM_FORWARD_IMachine_DeleteSettings_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_Export_TO(smth) HRESULT STDMETHODCALLTYPE Export (IAppliance * aAAppliance, IVirtualSystemDescription * * aADescription) { return smth Export (aAAppliance, aADescription); }")
cpp_quote("#define COM_FORWARD_IMachine_Export_TO_OBJ(obj) COM_FORWARD_IMachine_Export_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_Export_TO_BASE(base) COM_FORWARD_IMachine_Export_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GetSnapshot_TO(smth) HRESULT STDMETHODCALLTYPE GetSnapshot (BSTR aId, ISnapshot * * aSnapshot) { return smth GetSnapshot (aId, aSnapshot); }")
cpp_quote("#define COM_FORWARD_IMachine_GetSnapshot_TO_OBJ(obj) COM_FORWARD_IMachine_GetSnapshot_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GetSnapshot_TO_BASE(base) COM_FORWARD_IMachine_GetSnapshot_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_FindSnapshot_TO(smth) HRESULT STDMETHODCALLTYPE FindSnapshot (BSTR aName, ISnapshot * * aSnapshot) { return smth FindSnapshot (aName, aSnapshot); }")
cpp_quote("#define COM_FORWARD_IMachine_FindSnapshot_TO_OBJ(obj) COM_FORWARD_IMachine_FindSnapshot_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_FindSnapshot_TO_BASE(base) COM_FORWARD_IMachine_FindSnapshot_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SetCurrentSnapshot_TO(smth) HRESULT STDMETHODCALLTYPE SetCurrentSnapshot (BSTR aId) { return smth SetCurrentSnapshot (aId); }")
cpp_quote("#define COM_FORWARD_IMachine_SetCurrentSnapshot_TO_OBJ(obj) COM_FORWARD_IMachine_SetCurrentSnapshot_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SetCurrentSnapshot_TO_BASE(base) COM_FORWARD_IMachine_SetCurrentSnapshot_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_CreateSharedFolder_TO(smth) HRESULT STDMETHODCALLTYPE CreateSharedFolder (BSTR aName, BSTR aHostPath, BOOL aWritable) { return smth CreateSharedFolder (aName, aHostPath, aWritable); }")
cpp_quote("#define COM_FORWARD_IMachine_CreateSharedFolder_TO_OBJ(obj) COM_FORWARD_IMachine_CreateSharedFolder_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_CreateSharedFolder_TO_BASE(base) COM_FORWARD_IMachine_CreateSharedFolder_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_RemoveSharedFolder_TO(smth) HRESULT STDMETHODCALLTYPE RemoveSharedFolder (BSTR aName) { return smth RemoveSharedFolder (aName); }")
cpp_quote("#define COM_FORWARD_IMachine_RemoveSharedFolder_TO_OBJ(obj) COM_FORWARD_IMachine_RemoveSharedFolder_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_RemoveSharedFolder_TO_BASE(base) COM_FORWARD_IMachine_RemoveSharedFolder_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_CanShowConsoleWindow_TO(smth) HRESULT STDMETHODCALLTYPE CanShowConsoleWindow (BOOL * aCanShow) { return smth CanShowConsoleWindow (aCanShow); }")
cpp_quote("#define COM_FORWARD_IMachine_CanShowConsoleWindow_TO_OBJ(obj) COM_FORWARD_IMachine_CanShowConsoleWindow_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_CanShowConsoleWindow_TO_BASE(base) COM_FORWARD_IMachine_CanShowConsoleWindow_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_ShowConsoleWindow_TO(smth) HRESULT STDMETHODCALLTYPE ShowConsoleWindow (ULONG64 * aWinId) { return smth ShowConsoleWindow (aWinId); }")
cpp_quote("#define COM_FORWARD_IMachine_ShowConsoleWindow_TO_OBJ(obj) COM_FORWARD_IMachine_ShowConsoleWindow_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_ShowConsoleWindow_TO_BASE(base) COM_FORWARD_IMachine_ShowConsoleWindow_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GetGuestProperty_TO(smth) HRESULT STDMETHODCALLTYPE GetGuestProperty (BSTR aName, BSTR * aValue, ULONG64 * aTimestamp, BSTR * aFlags) { return smth GetGuestProperty (aName, aValue, aTimestamp, aFlags); }")
cpp_quote("#define COM_FORWARD_IMachine_GetGuestProperty_TO_OBJ(obj) COM_FORWARD_IMachine_GetGuestProperty_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GetGuestProperty_TO_BASE(base) COM_FORWARD_IMachine_GetGuestProperty_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GetGuestPropertyValue_TO(smth) HRESULT STDMETHODCALLTYPE GetGuestPropertyValue (BSTR aProperty, BSTR * aValue) { return smth GetGuestPropertyValue (aProperty, aValue); }")
cpp_quote("#define COM_FORWARD_IMachine_GetGuestPropertyValue_TO_OBJ(obj) COM_FORWARD_IMachine_GetGuestPropertyValue_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GetGuestPropertyValue_TO_BASE(base) COM_FORWARD_IMachine_GetGuestPropertyValue_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GetGuestPropertyTimestamp_TO(smth) HRESULT STDMETHODCALLTYPE GetGuestPropertyTimestamp (BSTR aProperty, ULONG64 * aValue) { return smth GetGuestPropertyTimestamp (aProperty, aValue); }")
cpp_quote("#define COM_FORWARD_IMachine_GetGuestPropertyTimestamp_TO_OBJ(obj) COM_FORWARD_IMachine_GetGuestPropertyTimestamp_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GetGuestPropertyTimestamp_TO_BASE(base) COM_FORWARD_IMachine_GetGuestPropertyTimestamp_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SetGuestProperty_TO(smth) HRESULT STDMETHODCALLTYPE SetGuestProperty (BSTR aProperty, BSTR aValue, BSTR aFlags) { return smth SetGuestProperty (aProperty, aValue, aFlags); }")
cpp_quote("#define COM_FORWARD_IMachine_SetGuestProperty_TO_OBJ(obj) COM_FORWARD_IMachine_SetGuestProperty_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SetGuestProperty_TO_BASE(base) COM_FORWARD_IMachine_SetGuestProperty_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SetGuestPropertyValue_TO(smth) HRESULT STDMETHODCALLTYPE SetGuestPropertyValue (BSTR aProperty, BSTR aValue) { return smth SetGuestPropertyValue (aProperty, aValue); }")
cpp_quote("#define COM_FORWARD_IMachine_SetGuestPropertyValue_TO_OBJ(obj) COM_FORWARD_IMachine_SetGuestPropertyValue_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SetGuestPropertyValue_TO_BASE(base) COM_FORWARD_IMachine_SetGuestPropertyValue_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_EnumerateGuestProperties_TO(smth) HRESULT STDMETHODCALLTYPE EnumerateGuestProperties (BSTR aPatterns, SAFEARRAY * * aName, SAFEARRAY * * aValue, SAFEARRAY * * aTimestamp, SAFEARRAY * * aFlags) { return smth EnumerateGuestProperties (aPatterns, aName, aValue, aTimestamp, aFlags); }")
cpp_quote("#define COM_FORWARD_IMachine_EnumerateGuestProperties_TO_OBJ(obj) COM_FORWARD_IMachine_EnumerateGuestProperties_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_EnumerateGuestProperties_TO_BASE(base) COM_FORWARD_IMachine_EnumerateGuestProperties_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_QuerySavedThumbnailSize_TO(smth) HRESULT STDMETHODCALLTYPE QuerySavedThumbnailSize (ULONG aScreenId, ULONG * aSize, ULONG * aWidth, ULONG * aHeight) { return smth QuerySavedThumbnailSize (aScreenId, aSize, aWidth, aHeight); }")
cpp_quote("#define COM_FORWARD_IMachine_QuerySavedThumbnailSize_TO_OBJ(obj) COM_FORWARD_IMachine_QuerySavedThumbnailSize_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_QuerySavedThumbnailSize_TO_BASE(base) COM_FORWARD_IMachine_QuerySavedThumbnailSize_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_ReadSavedThumbnailToArray_TO(smth) HRESULT STDMETHODCALLTYPE ReadSavedThumbnailToArray (ULONG aScreenId, BOOL aBGR, ULONG * aWidth, ULONG * aHeight, SAFEARRAY * * aData) { return smth ReadSavedThumbnailToArray (aScreenId, aBGR, aWidth, aHeight, aData); }")
cpp_quote("#define COM_FORWARD_IMachine_ReadSavedThumbnailToArray_TO_OBJ(obj) COM_FORWARD_IMachine_ReadSavedThumbnailToArray_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_ReadSavedThumbnailToArray_TO_BASE(base) COM_FORWARD_IMachine_ReadSavedThumbnailToArray_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_QuerySavedScreenshotPNGSize_TO(smth) HRESULT STDMETHODCALLTYPE QuerySavedScreenshotPNGSize (ULONG aScreenId, ULONG * aSize, ULONG * aWidth, ULONG * aHeight) { return smth QuerySavedScreenshotPNGSize (aScreenId, aSize, aWidth, aHeight); }")
cpp_quote("#define COM_FORWARD_IMachine_QuerySavedScreenshotPNGSize_TO_OBJ(obj) COM_FORWARD_IMachine_QuerySavedScreenshotPNGSize_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_QuerySavedScreenshotPNGSize_TO_BASE(base) COM_FORWARD_IMachine_QuerySavedScreenshotPNGSize_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_ReadSavedScreenshotPNGToArray_TO(smth) HRESULT STDMETHODCALLTYPE ReadSavedScreenshotPNGToArray (ULONG aScreenId, ULONG * aWidth, ULONG * aHeight, SAFEARRAY * * aData) { return smth ReadSavedScreenshotPNGToArray (aScreenId, aWidth, aHeight, aData); }")
cpp_quote("#define COM_FORWARD_IMachine_ReadSavedScreenshotPNGToArray_TO_OBJ(obj) COM_FORWARD_IMachine_ReadSavedScreenshotPNGToArray_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_ReadSavedScreenshotPNGToArray_TO_BASE(base) COM_FORWARD_IMachine_ReadSavedScreenshotPNGToArray_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_HotPlugCPU_TO(smth) HRESULT STDMETHODCALLTYPE HotPlugCPU (ULONG aCpu) { return smth HotPlugCPU (aCpu); }")
cpp_quote("#define COM_FORWARD_IMachine_HotPlugCPU_TO_OBJ(obj) COM_FORWARD_IMachine_HotPlugCPU_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_HotPlugCPU_TO_BASE(base) COM_FORWARD_IMachine_HotPlugCPU_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_HotUnplugCPU_TO(smth) HRESULT STDMETHODCALLTYPE HotUnplugCPU (ULONG aCpu) { return smth HotUnplugCPU (aCpu); }")
cpp_quote("#define COM_FORWARD_IMachine_HotUnplugCPU_TO_OBJ(obj) COM_FORWARD_IMachine_HotUnplugCPU_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_HotUnplugCPU_TO_BASE(base) COM_FORWARD_IMachine_HotUnplugCPU_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GetCPUStatus_TO(smth) HRESULT STDMETHODCALLTYPE GetCPUStatus (ULONG aCpu, BOOL * aAttached) { return smth GetCPUStatus (aCpu, aAttached); }")
cpp_quote("#define COM_FORWARD_IMachine_GetCPUStatus_TO_OBJ(obj) COM_FORWARD_IMachine_GetCPUStatus_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GetCPUStatus_TO_BASE(base) COM_FORWARD_IMachine_GetCPUStatus_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_QueryLogFilename_TO(smth) HRESULT STDMETHODCALLTYPE QueryLogFilename (ULONG aIdx, BSTR * aFilename) { return smth QueryLogFilename (aIdx, aFilename); }")
cpp_quote("#define COM_FORWARD_IMachine_QueryLogFilename_TO_OBJ(obj) COM_FORWARD_IMachine_QueryLogFilename_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_QueryLogFilename_TO_BASE(base) COM_FORWARD_IMachine_QueryLogFilename_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_ReadLog_TO(smth) HRESULT STDMETHODCALLTYPE ReadLog (ULONG aIdx, ULONG64 aOffset, ULONG64 aSize, SAFEARRAY * * aData) { return smth ReadLog (aIdx, aOffset, aSize, aData); }")
cpp_quote("#define COM_FORWARD_IMachine_ReadLog_TO_OBJ(obj) COM_FORWARD_IMachine_ReadLog_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_ReadLog_TO_BASE(base) COM_FORWARD_IMachine_ReadLog_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_TO(smth) COM_FORWARD_IMachine_GETTER_Parent_TO (smth) COM_FORWARD_IMachine_GETTER_Accessible_TO (smth) COM_FORWARD_IMachine_GETTER_AccessError_TO (smth) COM_FORWARD_IMachine_GETTER_Name_TO (smth) COM_FORWARD_IMachine_SETTER_Name_TO (smth) COM_FORWARD_IMachine_GETTER_Description_TO (smth) COM_FORWARD_IMachine_SETTER_Description_TO (smth) COM_FORWARD_IMachine_GETTER_Id_TO (smth) COM_FORWARD_IMachine_GETTER_OSTypeId_TO (smth) COM_FORWARD_IMachine_SETTER_OSTypeId_TO (smth) COM_FORWARD_IMachine_GETTER_HardwareVersion_TO (smth) COM_FORWARD_IMachine_SETTER_HardwareVersion_TO (smth) COM_FORWARD_IMachine_GETTER_HardwareUUID_TO (smth) COM_FORWARD_IMachine_SETTER_HardwareUUID_TO (smth) COM_FORWARD_IMachine_GETTER_CPUCount_TO (smth) COM_FORWARD_IMachine_SETTER_CPUCount_TO (smth) COM_FORWARD_IMachine_GETTER_CPUHotPlugEnabled_TO (smth) COM_FORWARD_IMachine_SETTER_CPUHotPlugEnabled_TO (smth) COM_FORWARD_IMachine_GETTER_MemorySize_TO (smth) COM_FORWARD_IMachine_SETTER_MemorySize_TO (smth) COM_FORWARD_IMachine_GETTER_MemoryBalloonSize_TO (smth) COM_FORWARD_IMachine_SETTER_MemoryBalloonSize_TO (smth) COM_FORWARD_IMachine_GETTER_PageFusionEnabled_TO (smth) COM_FORWARD_IMachine_SETTER_PageFusionEnabled_TO (smth) COM_FORWARD_IMachine_GETTER_VRAMSize_TO (smth) COM_FORWARD_IMachine_SETTER_VRAMSize_TO (smth) COM_FORWARD_IMachine_GETTER_Accelerate3DEnabled_TO (smth) COM_FORWARD_IMachine_SETTER_Accelerate3DEnabled_TO (smth) COM_FORWARD_IMachine_GETTER_Accelerate2DVideoEnabled_TO (smth) COM_FORWARD_IMachine_SETTER_Accelerate2DVideoEnabled_TO (smth) COM_FORWARD_IMachine_GETTER_MonitorCount_TO (smth) COM_FORWARD_IMachine_SETTER_MonitorCount_TO (smth) COM_FORWARD_IMachine_GETTER_BIOSSettings_TO (smth) COM_FORWARD_IMachine_GETTER_FirmwareType_TO (smth) COM_FORWARD_IMachine_SETTER_FirmwareType_TO (smth) COM_FORWARD_IMachine_GETTER_PointingHidType_TO (smth) COM_FORWARD_IMachine_SETTER_PointingHidType_TO (smth) COM_FORWARD_IMachine_GETTER_KeyboardHidType_TO (smth) COM_FORWARD_IMachine_SETTER_KeyboardHidType_TO (smth) COM_FORWARD_IMachine_GETTER_HpetEnabled_TO (smth) COM_FORWARD_IMachine_SETTER_HpetEnabled_TO (smth) COM_FORWARD_IMachine_GETTER_SnapshotFolder_TO (smth) COM_FORWARD_IMachine_SETTER_SnapshotFolder_TO (smth) COM_FORWARD_IMachine_GETTER_VRDPServer_TO (smth) COM_FORWARD_IMachine_GETTER_MediumAttachments_TO (smth) COM_FORWARD_IMachine_GETTER_USBController_TO (smth) COM_FORWARD_IMachine_GETTER_AudioAdapter_TO (smth) COM_FORWARD_IMachine_GETTER_StorageControllers_TO (smth) COM_FORWARD_IMachine_GETTER_SettingsFilePath_TO (smth) COM_FORWARD_IMachine_GETTER_SettingsModified_TO (smth) COM_FORWARD_IMachine_GETTER_SessionState_TO (smth) COM_FORWARD_IMachine_GETTER_SessionType_TO (smth) COM_FORWARD_IMachine_GETTER_SessionPid_TO (smth) COM_FORWARD_IMachine_GETTER_State_TO (smth) COM_FORWARD_IMachine_GETTER_LastStateChange_TO (smth) COM_FORWARD_IMachine_GETTER_StateFilePath_TO (smth) COM_FORWARD_IMachine_GETTER_LogFolder_TO (smth) COM_FORWARD_IMachine_GETTER_CurrentSnapshot_TO (smth) COM_FORWARD_IMachine_GETTER_SnapshotCount_TO (smth) COM_FORWARD_IMachine_GETTER_CurrentStateModified_TO (smth) COM_FORWARD_IMachine_GETTER_SharedFolders_TO (smth) COM_FORWARD_IMachine_GETTER_ClipboardMode_TO (smth) COM_FORWARD_IMachine_SETTER_ClipboardMode_TO (smth) COM_FORWARD_IMachine_GETTER_GuestPropertyNotificationPatterns_TO (smth) COM_FORWARD_IMachine_SETTER_GuestPropertyNotificationPatterns_TO (smth) COM_FORWARD_IMachine_GETTER_TeleporterEnabled_TO (smth) COM_FORWARD_IMachine_SETTER_TeleporterEnabled_TO (smth) COM_FORWARD_IMachine_GETTER_TeleporterPort_TO (smth) COM_FORWARD_IMachine_SETTER_TeleporterPort_TO (smth) COM_FORWARD_IMachine_GETTER_TeleporterAddress_TO (smth) COM_FORWARD_IMachine_SETTER_TeleporterAddress_TO (smth) COM_FORWARD_IMachine_GETTER_TeleporterPassword_TO (smth) COM_FORWARD_IMachine_SETTER_TeleporterPassword_TO (smth) COM_FORWARD_IMachine_GETTER_RTCUseUTC_TO (smth) COM_FORWARD_IMachine_SETTER_RTCUseUTC_TO (smth) COM_FORWARD_IMachine_GETTER_IoCacheEnabled_TO (smth) COM_FORWARD_IMachine_SETTER_IoCacheEnabled_TO (smth) COM_FORWARD_IMachine_GETTER_IoCacheSize_TO (smth) COM_FORWARD_IMachine_SETTER_IoCacheSize_TO (smth) COM_FORWARD_IMachine_GETTER_IoBandwidthMax_TO (smth) COM_FORWARD_IMachine_SETTER_IoBandwidthMax_TO (smth) COM_FORWARD_IMachine_SetBootOrder_TO (smth) COM_FORWARD_IMachine_GetBootOrder_TO (smth) COM_FORWARD_IMachine_AttachDevice_TO (smth) COM_FORWARD_IMachine_DetachDevice_TO (smth) COM_FORWARD_IMachine_PassthroughDevice_TO (smth) COM_FORWARD_IMachine_MountMedium_TO (smth) COM_FORWARD_IMachine_GetMedium_TO (smth) COM_FORWARD_IMachine_GetMediumAttachmentsOfController_TO (smth) COM_FORWARD_IMachine_GetMediumAttachment_TO (smth) COM_FORWARD_IMachine_GetNetworkAdapter_TO (smth) COM_FORWARD_IMachine_AddStorageController_TO (smth) COM_FORWARD_IMachine_GetStorageControllerByName_TO (smth) COM_FORWARD_IMachine_GetStorageControllerByInstance_TO (smth) COM_FORWARD_IMachine_RemoveStorageController_TO (smth) COM_FORWARD_IMachine_GetSerialPort_TO (smth) COM_FORWARD_IMachine_GetParallelPort_TO (smth) COM_FORWARD_IMachine_GetExtraDataKeys_TO (smth) COM_FORWARD_IMachine_GetExtraData_TO (smth) COM_FORWARD_IMachine_SetExtraData_TO (smth) COM_FORWARD_IMachine_GetCPUProperty_TO (smth) COM_FORWARD_IMachine_SetCPUProperty_TO (smth) COM_FORWARD_IMachine_GetCPUIDLeaf_TO (smth) COM_FORWARD_IMachine_SetCPUIDLeaf_TO (smth) COM_FORWARD_IMachine_RemoveCPUIDLeaf_TO (smth) COM_FORWARD_IMachine_RemoveAllCPUIDLeaves_TO (smth) COM_FORWARD_IMachine_GetHWVirtExProperty_TO (smth) COM_FORWARD_IMachine_SetHWVirtExProperty_TO (smth) COM_FORWARD_IMachine_SaveSettings_TO (smth) COM_FORWARD_IMachine_DiscardSettings_TO (smth) COM_FORWARD_IMachine_DeleteSettings_TO (smth) COM_FORWARD_IMachine_Export_TO (smth) COM_FORWARD_IMachine_GetSnapshot_TO (smth) COM_FORWARD_IMachine_FindSnapshot_TO (smth) COM_FORWARD_IMachine_SetCurrentSnapshot_TO (smth) COM_FORWARD_IMachine_CreateSharedFolder_TO (smth) COM_FORWARD_IMachine_RemoveSharedFolder_TO (smth) COM_FORWARD_IMachine_CanShowConsoleWindow_TO (smth) COM_FORWARD_IMachine_ShowConsoleWindow_TO (smth) COM_FORWARD_IMachine_GetGuestProperty_TO (smth) COM_FORWARD_IMachine_GetGuestPropertyValue_TO (smth) COM_FORWARD_IMachine_GetGuestPropertyTimestamp_TO (smth) COM_FORWARD_IMachine_SetGuestProperty_TO (smth) COM_FORWARD_IMachine_SetGuestPropertyValue_TO (smth) COM_FORWARD_IMachine_EnumerateGuestProperties_TO (smth) COM_FORWARD_IMachine_QuerySavedThumbnailSize_TO (smth) COM_FORWARD_IMachine_ReadSavedThumbnailToArray_TO (smth) COM_FORWARD_IMachine_QuerySavedScreenshotPNGSize_TO (smth) COM_FORWARD_IMachine_ReadSavedScreenshotPNGToArray_TO (smth) COM_FORWARD_IMachine_HotPlugCPU_TO (smth) COM_FORWARD_IMachine_HotUnplugCPU_TO (smth) COM_FORWARD_IMachine_GetCPUStatus_TO (smth) COM_FORWARD_IMachine_QueryLogFilename_TO (smth) COM_FORWARD_IMachine_ReadLog_TO (smth) ")
cpp_quote("#define COM_FORWARD_IMachine_TO_OBJ(obj) COM_FORWARD_IMachine_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_TO_BASE(base) COM_FORWARD_IMachine_TO (base::)")

[
    uuid(60703f8d-81e4-4b45-a147-dcfd07692b19),
    object,
    dual,
    oleautomation
]
interface IConsoleCallback : IDispatch
{
    HRESULT OnMousePointerShapeChange (
        [in] BOOL aVisible,
        [in] BOOL aAlpha,
        [in] ULONG aXHot,
        [in] ULONG aYHot,
        [in] ULONG aWidth,
        [in] ULONG aHeight,
        [in, out] SAFEARRAY(BYTE) * aShape
    );

    HRESULT OnMouseCapabilityChange (
        [in] BOOL aSupportsAbsolute,
        [in] BOOL aSupportsRelative,
        [in] BOOL aNeedsHostCursor
    );

    HRESULT OnKeyboardLedsChange (
        [in] BOOL aNumLock,
        [in] BOOL aCapsLock,
        [in] BOOL aScrollLock
    );

    HRESULT OnStateChange (
        [in] MachineState aState
    );

    HRESULT OnAdditionsStateChange();

    HRESULT OnNetworkAdapterChange (
        [in] INetworkAdapter * aNetworkAdapter
    );

    HRESULT OnSerialPortChange (
        [in] ISerialPort * aSerialPort
    );

    HRESULT OnParallelPortChange (
        [in] IParallelPort * aParallelPort
    );

    HRESULT OnStorageControllerChange();

    HRESULT OnMediumChange (
        [in] IMediumAttachment * aMediumAttachment
    );

    HRESULT OnCPUChange (
        [in] ULONG aCpu,
        [in] BOOL aAdd
    );

    HRESULT OnVRDPServerChange();

    HRESULT OnRemoteDisplayInfoChange();

    HRESULT OnUSBControllerChange();

    HRESULT OnUSBDeviceStateChange (
        [in] IUSBDevice * aDevice,
        [in] BOOL aAttached,
        [in] IVirtualBoxErrorInfo * aError
    );

    HRESULT OnSharedFolderChange (
        [in] Scope aScope
    );

    HRESULT OnRuntimeError (
        [in] BOOL aFatal,
        [in] BSTR aId,
        [in] BSTR aMessage
    );

    HRESULT OnCanShowWindow (
        [out, retval] BOOL * aCanShow
    );

    HRESULT OnShowWindow (
        [out, retval] ULONG64 * aWinId
    );

}; /* interface IConsoleCallback */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnMousePointerShapeChange_TO(smth) HRESULT STDMETHODCALLTYPE OnMousePointerShapeChange (BOOL aVisible, BOOL aAlpha, ULONG aXHot, ULONG aYHot, ULONG aWidth, ULONG aHeight, SAFEARRAY * * aShape) { return smth OnMousePointerShapeChange (aVisible, aAlpha, aXHot, aYHot, aWidth, aHeight, aShape); }")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnMousePointerShapeChange_TO_OBJ(obj) COM_FORWARD_IConsoleCallback_OnMousePointerShapeChange_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnMousePointerShapeChange_TO_BASE(base) COM_FORWARD_IConsoleCallback_OnMousePointerShapeChange_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnMouseCapabilityChange_TO(smth) HRESULT STDMETHODCALLTYPE OnMouseCapabilityChange (BOOL aSupportsAbsolute, BOOL aSupportsRelative, BOOL aNeedsHostCursor) { return smth OnMouseCapabilityChange (aSupportsAbsolute, aSupportsRelative, aNeedsHostCursor); }")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnMouseCapabilityChange_TO_OBJ(obj) COM_FORWARD_IConsoleCallback_OnMouseCapabilityChange_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnMouseCapabilityChange_TO_BASE(base) COM_FORWARD_IConsoleCallback_OnMouseCapabilityChange_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnKeyboardLedsChange_TO(smth) HRESULT STDMETHODCALLTYPE OnKeyboardLedsChange (BOOL aNumLock, BOOL aCapsLock, BOOL aScrollLock) { return smth OnKeyboardLedsChange (aNumLock, aCapsLock, aScrollLock); }")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnKeyboardLedsChange_TO_OBJ(obj) COM_FORWARD_IConsoleCallback_OnKeyboardLedsChange_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnKeyboardLedsChange_TO_BASE(base) COM_FORWARD_IConsoleCallback_OnKeyboardLedsChange_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnStateChange_TO(smth) HRESULT STDMETHODCALLTYPE OnStateChange (MachineState aState) { return smth OnStateChange (aState); }")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnStateChange_TO_OBJ(obj) COM_FORWARD_IConsoleCallback_OnStateChange_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnStateChange_TO_BASE(base) COM_FORWARD_IConsoleCallback_OnStateChange_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnAdditionsStateChange_TO(smth) HRESULT STDMETHODCALLTYPE OnAdditionsStateChange() { return smth OnAdditionsStateChange(); }")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnAdditionsStateChange_TO_OBJ(obj) COM_FORWARD_IConsoleCallback_OnAdditionsStateChange_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnAdditionsStateChange_TO_BASE(base) COM_FORWARD_IConsoleCallback_OnAdditionsStateChange_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnNetworkAdapterChange_TO(smth) HRESULT STDMETHODCALLTYPE OnNetworkAdapterChange (INetworkAdapter * aNetworkAdapter) { return smth OnNetworkAdapterChange (aNetworkAdapter); }")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnNetworkAdapterChange_TO_OBJ(obj) COM_FORWARD_IConsoleCallback_OnNetworkAdapterChange_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnNetworkAdapterChange_TO_BASE(base) COM_FORWARD_IConsoleCallback_OnNetworkAdapterChange_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnSerialPortChange_TO(smth) HRESULT STDMETHODCALLTYPE OnSerialPortChange (ISerialPort * aSerialPort) { return smth OnSerialPortChange (aSerialPort); }")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnSerialPortChange_TO_OBJ(obj) COM_FORWARD_IConsoleCallback_OnSerialPortChange_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnSerialPortChange_TO_BASE(base) COM_FORWARD_IConsoleCallback_OnSerialPortChange_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnParallelPortChange_TO(smth) HRESULT STDMETHODCALLTYPE OnParallelPortChange (IParallelPort * aParallelPort) { return smth OnParallelPortChange (aParallelPort); }")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnParallelPortChange_TO_OBJ(obj) COM_FORWARD_IConsoleCallback_OnParallelPortChange_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnParallelPortChange_TO_BASE(base) COM_FORWARD_IConsoleCallback_OnParallelPortChange_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnStorageControllerChange_TO(smth) HRESULT STDMETHODCALLTYPE OnStorageControllerChange() { return smth OnStorageControllerChange(); }")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnStorageControllerChange_TO_OBJ(obj) COM_FORWARD_IConsoleCallback_OnStorageControllerChange_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnStorageControllerChange_TO_BASE(base) COM_FORWARD_IConsoleCallback_OnStorageControllerChange_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnMediumChange_TO(smth) HRESULT STDMETHODCALLTYPE OnMediumChange (IMediumAttachment * aMediumAttachment) { return smth OnMediumChange (aMediumAttachment); }")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnMediumChange_TO_OBJ(obj) COM_FORWARD_IConsoleCallback_OnMediumChange_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnMediumChange_TO_BASE(base) COM_FORWARD_IConsoleCallback_OnMediumChange_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnCPUChange_TO(smth) HRESULT STDMETHODCALLTYPE OnCPUChange (ULONG aCpu, BOOL aAdd) { return smth OnCPUChange (aCpu, aAdd); }")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnCPUChange_TO_OBJ(obj) COM_FORWARD_IConsoleCallback_OnCPUChange_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnCPUChange_TO_BASE(base) COM_FORWARD_IConsoleCallback_OnCPUChange_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnVRDPServerChange_TO(smth) HRESULT STDMETHODCALLTYPE OnVRDPServerChange() { return smth OnVRDPServerChange(); }")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnVRDPServerChange_TO_OBJ(obj) COM_FORWARD_IConsoleCallback_OnVRDPServerChange_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnVRDPServerChange_TO_BASE(base) COM_FORWARD_IConsoleCallback_OnVRDPServerChange_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnRemoteDisplayInfoChange_TO(smth) HRESULT STDMETHODCALLTYPE OnRemoteDisplayInfoChange() { return smth OnRemoteDisplayInfoChange(); }")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnRemoteDisplayInfoChange_TO_OBJ(obj) COM_FORWARD_IConsoleCallback_OnRemoteDisplayInfoChange_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnRemoteDisplayInfoChange_TO_BASE(base) COM_FORWARD_IConsoleCallback_OnRemoteDisplayInfoChange_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnUSBControllerChange_TO(smth) HRESULT STDMETHODCALLTYPE OnUSBControllerChange() { return smth OnUSBControllerChange(); }")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnUSBControllerChange_TO_OBJ(obj) COM_FORWARD_IConsoleCallback_OnUSBControllerChange_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnUSBControllerChange_TO_BASE(base) COM_FORWARD_IConsoleCallback_OnUSBControllerChange_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnUSBDeviceStateChange_TO(smth) HRESULT STDMETHODCALLTYPE OnUSBDeviceStateChange (IUSBDevice * aDevice, BOOL aAttached, IVirtualBoxErrorInfo * aError) { return smth OnUSBDeviceStateChange (aDevice, aAttached, aError); }")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnUSBDeviceStateChange_TO_OBJ(obj) COM_FORWARD_IConsoleCallback_OnUSBDeviceStateChange_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnUSBDeviceStateChange_TO_BASE(base) COM_FORWARD_IConsoleCallback_OnUSBDeviceStateChange_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnSharedFolderChange_TO(smth) HRESULT STDMETHODCALLTYPE OnSharedFolderChange (Scope aScope) { return smth OnSharedFolderChange (aScope); }")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnSharedFolderChange_TO_OBJ(obj) COM_FORWARD_IConsoleCallback_OnSharedFolderChange_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnSharedFolderChange_TO_BASE(base) COM_FORWARD_IConsoleCallback_OnSharedFolderChange_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnRuntimeError_TO(smth) HRESULT STDMETHODCALLTYPE OnRuntimeError (BOOL aFatal, BSTR aId, BSTR aMessage) { return smth OnRuntimeError (aFatal, aId, aMessage); }")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnRuntimeError_TO_OBJ(obj) COM_FORWARD_IConsoleCallback_OnRuntimeError_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnRuntimeError_TO_BASE(base) COM_FORWARD_IConsoleCallback_OnRuntimeError_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnCanShowWindow_TO(smth) HRESULT STDMETHODCALLTYPE OnCanShowWindow (BOOL * aCanShow) { return smth OnCanShowWindow (aCanShow); }")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnCanShowWindow_TO_OBJ(obj) COM_FORWARD_IConsoleCallback_OnCanShowWindow_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnCanShowWindow_TO_BASE(base) COM_FORWARD_IConsoleCallback_OnCanShowWindow_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnShowWindow_TO(smth) HRESULT STDMETHODCALLTYPE OnShowWindow (ULONG64 * aWinId) { return smth OnShowWindow (aWinId); }")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnShowWindow_TO_OBJ(obj) COM_FORWARD_IConsoleCallback_OnShowWindow_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnShowWindow_TO_BASE(base) COM_FORWARD_IConsoleCallback_OnShowWindow_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_TO(smth) COM_FORWARD_IConsoleCallback_OnMousePointerShapeChange_TO (smth) COM_FORWARD_IConsoleCallback_OnMouseCapabilityChange_TO (smth) COM_FORWARD_IConsoleCallback_OnKeyboardLedsChange_TO (smth) COM_FORWARD_IConsoleCallback_OnStateChange_TO (smth) COM_FORWARD_IConsoleCallback_OnAdditionsStateChange_TO (smth) COM_FORWARD_IConsoleCallback_OnNetworkAdapterChange_TO (smth) COM_FORWARD_IConsoleCallback_OnSerialPortChange_TO (smth) COM_FORWARD_IConsoleCallback_OnParallelPortChange_TO (smth) COM_FORWARD_IConsoleCallback_OnStorageControllerChange_TO (smth) COM_FORWARD_IConsoleCallback_OnMediumChange_TO (smth) COM_FORWARD_IConsoleCallback_OnCPUChange_TO (smth) COM_FORWARD_IConsoleCallback_OnVRDPServerChange_TO (smth) COM_FORWARD_IConsoleCallback_OnRemoteDisplayInfoChange_TO (smth) COM_FORWARD_IConsoleCallback_OnUSBControllerChange_TO (smth) COM_FORWARD_IConsoleCallback_OnUSBDeviceStateChange_TO (smth) COM_FORWARD_IConsoleCallback_OnSharedFolderChange_TO (smth) COM_FORWARD_IConsoleCallback_OnRuntimeError_TO (smth) COM_FORWARD_IConsoleCallback_OnCanShowWindow_TO (smth) COM_FORWARD_IConsoleCallback_OnShowWindow_TO (smth) ")
cpp_quote("#define COM_FORWARD_IConsoleCallback_TO_OBJ(obj) COM_FORWARD_IConsoleCallback_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_TO_BASE(base) COM_FORWARD_IConsoleCallback_TO (base::)")

[
    uuid(b3741084-806f-4c3b-8c42-ebad1a81e45a),
    object,
    dual,
    oleautomation
]
interface IRemoteDisplayInfo : IDispatch
{
    [propget] HRESULT Active ([out, retval] BOOL * aActive);

    [propget] HRESULT Port ([out, retval] LONG * aPort);

    [propget] HRESULT NumberOfClients ([out, retval] ULONG * aNumberOfClients);

    [propget] HRESULT BeginTime ([out, retval] LONG64 * aBeginTime);

    [propget] HRESULT EndTime ([out, retval] LONG64 * aEndTime);

    [propget] HRESULT BytesSent ([out, retval] ULONG64 * aBytesSent);

    [propget] HRESULT BytesSentTotal ([out, retval] ULONG64 * aBytesSentTotal);

    [propget] HRESULT BytesReceived ([out, retval] ULONG64 * aBytesReceived);

    [propget] HRESULT BytesReceivedTotal ([out, retval] ULONG64 * aBytesReceivedTotal);

    [propget] HRESULT User ([out, retval] BSTR * aUser);

    [propget] HRESULT Domain ([out, retval] BSTR * aDomain);

    [propget] HRESULT ClientName ([out, retval] BSTR * aClientName);

    [propget] HRESULT ClientIP ([out, retval] BSTR * aClientIP);

    [propget] HRESULT ClientVersion ([out, retval] ULONG * aClientVersion);

    [propget] HRESULT EncryptionStyle ([out, retval] ULONG * aEncryptionStyle);

}; /* interface IRemoteDisplayInfo */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_Active_TO(smth) HRESULT STDMETHODCALLTYPE get_Active (BOOL * aActive) { return smth get_Active (aActive); }")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_Active_TO_OBJ(obj) COM_FORWARD_IRemoteDisplayInfo_GETTER_Active_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_Active_TO_BASE(base) COM_FORWARD_IRemoteDisplayInfo_GETTER_Active_TO (base::)")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_Port_TO(smth) HRESULT STDMETHODCALLTYPE get_Port (LONG * aPort) { return smth get_Port (aPort); }")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_Port_TO_OBJ(obj) COM_FORWARD_IRemoteDisplayInfo_GETTER_Port_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_Port_TO_BASE(base) COM_FORWARD_IRemoteDisplayInfo_GETTER_Port_TO (base::)")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_NumberOfClients_TO(smth) HRESULT STDMETHODCALLTYPE get_NumberOfClients (ULONG * aNumberOfClients) { return smth get_NumberOfClients (aNumberOfClients); }")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_NumberOfClients_TO_OBJ(obj) COM_FORWARD_IRemoteDisplayInfo_GETTER_NumberOfClients_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_NumberOfClients_TO_BASE(base) COM_FORWARD_IRemoteDisplayInfo_GETTER_NumberOfClients_TO (base::)")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_BeginTime_TO(smth) HRESULT STDMETHODCALLTYPE get_BeginTime (LONG64 * aBeginTime) { return smth get_BeginTime (aBeginTime); }")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_BeginTime_TO_OBJ(obj) COM_FORWARD_IRemoteDisplayInfo_GETTER_BeginTime_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_BeginTime_TO_BASE(base) COM_FORWARD_IRemoteDisplayInfo_GETTER_BeginTime_TO (base::)")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_EndTime_TO(smth) HRESULT STDMETHODCALLTYPE get_EndTime (LONG64 * aEndTime) { return smth get_EndTime (aEndTime); }")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_EndTime_TO_OBJ(obj) COM_FORWARD_IRemoteDisplayInfo_GETTER_EndTime_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_EndTime_TO_BASE(base) COM_FORWARD_IRemoteDisplayInfo_GETTER_EndTime_TO (base::)")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_BytesSent_TO(smth) HRESULT STDMETHODCALLTYPE get_BytesSent (ULONG64 * aBytesSent) { return smth get_BytesSent (aBytesSent); }")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_BytesSent_TO_OBJ(obj) COM_FORWARD_IRemoteDisplayInfo_GETTER_BytesSent_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_BytesSent_TO_BASE(base) COM_FORWARD_IRemoteDisplayInfo_GETTER_BytesSent_TO (base::)")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_BytesSentTotal_TO(smth) HRESULT STDMETHODCALLTYPE get_BytesSentTotal (ULONG64 * aBytesSentTotal) { return smth get_BytesSentTotal (aBytesSentTotal); }")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_BytesSentTotal_TO_OBJ(obj) COM_FORWARD_IRemoteDisplayInfo_GETTER_BytesSentTotal_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_BytesSentTotal_TO_BASE(base) COM_FORWARD_IRemoteDisplayInfo_GETTER_BytesSentTotal_TO (base::)")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_BytesReceived_TO(smth) HRESULT STDMETHODCALLTYPE get_BytesReceived (ULONG64 * aBytesReceived) { return smth get_BytesReceived (aBytesReceived); }")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_BytesReceived_TO_OBJ(obj) COM_FORWARD_IRemoteDisplayInfo_GETTER_BytesReceived_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_BytesReceived_TO_BASE(base) COM_FORWARD_IRemoteDisplayInfo_GETTER_BytesReceived_TO (base::)")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_BytesReceivedTotal_TO(smth) HRESULT STDMETHODCALLTYPE get_BytesReceivedTotal (ULONG64 * aBytesReceivedTotal) { return smth get_BytesReceivedTotal (aBytesReceivedTotal); }")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_BytesReceivedTotal_TO_OBJ(obj) COM_FORWARD_IRemoteDisplayInfo_GETTER_BytesReceivedTotal_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_BytesReceivedTotal_TO_BASE(base) COM_FORWARD_IRemoteDisplayInfo_GETTER_BytesReceivedTotal_TO (base::)")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_User_TO(smth) HRESULT STDMETHODCALLTYPE get_User (BSTR * aUser) { return smth get_User (aUser); }")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_User_TO_OBJ(obj) COM_FORWARD_IRemoteDisplayInfo_GETTER_User_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_User_TO_BASE(base) COM_FORWARD_IRemoteDisplayInfo_GETTER_User_TO (base::)")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_Domain_TO(smth) HRESULT STDMETHODCALLTYPE get_Domain (BSTR * aDomain) { return smth get_Domain (aDomain); }")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_Domain_TO_OBJ(obj) COM_FORWARD_IRemoteDisplayInfo_GETTER_Domain_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_Domain_TO_BASE(base) COM_FORWARD_IRemoteDisplayInfo_GETTER_Domain_TO (base::)")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_ClientName_TO(smth) HRESULT STDMETHODCALLTYPE get_ClientName (BSTR * aClientName) { return smth get_ClientName (aClientName); }")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_ClientName_TO_OBJ(obj) COM_FORWARD_IRemoteDisplayInfo_GETTER_ClientName_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_ClientName_TO_BASE(base) COM_FORWARD_IRemoteDisplayInfo_GETTER_ClientName_TO (base::)")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_ClientIP_TO(smth) HRESULT STDMETHODCALLTYPE get_ClientIP (BSTR * aClientIP) { return smth get_ClientIP (aClientIP); }")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_ClientIP_TO_OBJ(obj) COM_FORWARD_IRemoteDisplayInfo_GETTER_ClientIP_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_ClientIP_TO_BASE(base) COM_FORWARD_IRemoteDisplayInfo_GETTER_ClientIP_TO (base::)")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_ClientVersion_TO(smth) HRESULT STDMETHODCALLTYPE get_ClientVersion (ULONG * aClientVersion) { return smth get_ClientVersion (aClientVersion); }")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_ClientVersion_TO_OBJ(obj) COM_FORWARD_IRemoteDisplayInfo_GETTER_ClientVersion_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_ClientVersion_TO_BASE(base) COM_FORWARD_IRemoteDisplayInfo_GETTER_ClientVersion_TO (base::)")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_EncryptionStyle_TO(smth) HRESULT STDMETHODCALLTYPE get_EncryptionStyle (ULONG * aEncryptionStyle) { return smth get_EncryptionStyle (aEncryptionStyle); }")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_EncryptionStyle_TO_OBJ(obj) COM_FORWARD_IRemoteDisplayInfo_GETTER_EncryptionStyle_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_GETTER_EncryptionStyle_TO_BASE(base) COM_FORWARD_IRemoteDisplayInfo_GETTER_EncryptionStyle_TO (base::)")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_TO(smth) COM_FORWARD_IRemoteDisplayInfo_GETTER_Active_TO (smth) COM_FORWARD_IRemoteDisplayInfo_GETTER_Port_TO (smth) COM_FORWARD_IRemoteDisplayInfo_GETTER_NumberOfClients_TO (smth) COM_FORWARD_IRemoteDisplayInfo_GETTER_BeginTime_TO (smth) COM_FORWARD_IRemoteDisplayInfo_GETTER_EndTime_TO (smth) COM_FORWARD_IRemoteDisplayInfo_GETTER_BytesSent_TO (smth) COM_FORWARD_IRemoteDisplayInfo_GETTER_BytesSentTotal_TO (smth) COM_FORWARD_IRemoteDisplayInfo_GETTER_BytesReceived_TO (smth) COM_FORWARD_IRemoteDisplayInfo_GETTER_BytesReceivedTotal_TO (smth) COM_FORWARD_IRemoteDisplayInfo_GETTER_User_TO (smth) COM_FORWARD_IRemoteDisplayInfo_GETTER_Domain_TO (smth) COM_FORWARD_IRemoteDisplayInfo_GETTER_ClientName_TO (smth) COM_FORWARD_IRemoteDisplayInfo_GETTER_ClientIP_TO (smth) COM_FORWARD_IRemoteDisplayInfo_GETTER_ClientVersion_TO (smth) COM_FORWARD_IRemoteDisplayInfo_GETTER_EncryptionStyle_TO (smth) ")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_TO_OBJ(obj) COM_FORWARD_IRemoteDisplayInfo_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IRemoteDisplayInfo_TO_BASE(base) COM_FORWARD_IRemoteDisplayInfo_TO (base::)")

[
    uuid(6375231a-c17c-464b-92cb-ae9e128d71c3),
    object,
    dual,
    oleautomation
]
interface IConsole : IDispatch
{
    [propget] HRESULT Machine ([out, retval] IMachine * * aMachine);

    [propget] HRESULT State ([out, retval] MachineState * aState);

    [propget] HRESULT Guest ([out, retval] IGuest * * aGuest);

    [propget] HRESULT Keyboard ([out, retval] IKeyboard * * aKeyboard);

    [propget] HRESULT Mouse ([out, retval] IMouse * * aMouse);

    [propget] HRESULT Display ([out, retval] IDisplay * * aDisplay);

    [propget] HRESULT Debugger ([out, retval] IMachineDebugger * * aDebugger);

    [propget] HRESULT USBDevices ([out, retval] SAFEARRAY(IUSBDevice *) * aUSBDevices);

    [propget] HRESULT RemoteUSBDevices ([out, retval] SAFEARRAY(IHostUSBDevice *) * aRemoteUSBDevices);

    [propget] HRESULT SharedFolders ([out, retval] SAFEARRAY(ISharedFolder *) * aSharedFolders);

    [propget] HRESULT RemoteDisplayInfo ([out, retval] IRemoteDisplayInfo * * aRemoteDisplayInfo);

    HRESULT PowerUp (
        [out, retval] IProgress * * aProgress
    );

    HRESULT PowerUpPaused (
        [out, retval] IProgress * * aProgress
    );

    HRESULT PowerDown (
        [out, retval] IProgress * * aProgress
    );

    HRESULT Reset();

    HRESULT Pause();

    HRESULT Resume();

    HRESULT PowerButton();

    HRESULT SleepButton();

    HRESULT GetPowerButtonHandled (
        [out, retval] BOOL * aHandled
    );

    HRESULT GetGuestEnteredACPIMode (
        [out, retval] BOOL * aEntered
    );

    HRESULT SaveState (
        [out, retval] IProgress * * aProgress
    );

    HRESULT AdoptSavedState (
        [in] BSTR aSavedStateFile
    );

    HRESULT ForgetSavedState (
        [in] BOOL aRemove
    );

    HRESULT GetDeviceActivity (
        [in] DeviceType aType,
        [out, retval] DeviceActivity * aActivity
    );

    HRESULT AttachUSBDevice (
        [in] BSTR aId
    );

    HRESULT DetachUSBDevice (
        [in] BSTR aId,
        [out, retval] IUSBDevice * * aDevice
    );

    HRESULT FindUSBDeviceByAddress (
        [in] BSTR aName,
        [out, retval] IUSBDevice * * aDevice
    );

    HRESULT FindUSBDeviceById (
        [in] BSTR aId,
        [out, retval] IUSBDevice * * aDevice
    );

    HRESULT CreateSharedFolder (
        [in] BSTR aName,
        [in] BSTR aHostPath,
        [in] BOOL aWritable
    );

    HRESULT RemoveSharedFolder (
        [in] BSTR aName
    );

    HRESULT TakeSnapshot (
        [in] BSTR aName,
        [in] BSTR aDescription,
        [out, retval] IProgress * * aProgress
    );

    HRESULT DeleteSnapshot (
        [in] BSTR aId,
        [out, retval] IProgress * * aProgress
    );

    HRESULT RestoreSnapshot (
        [in] ISnapshot * aSnapshot,
        [out, retval] IProgress * * aProgress
    );

    HRESULT Teleport (
        [in] BSTR aHostname,
        [in] ULONG aTcpport,
        [in] BSTR aPassword,
        [in] ULONG aMaxDowntime,
        [out, retval] IProgress * * aProgress
    );

    HRESULT RegisterCallback (
        [in] IConsoleCallback * aCallback
    );

    HRESULT UnregisterCallback (
        [in] IConsoleCallback * aCallback
    );

}; /* interface IConsole */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IConsole_GETTER_Machine_TO(smth) HRESULT STDMETHODCALLTYPE get_Machine (IMachine * * aMachine) { return smth get_Machine (aMachine); }")
cpp_quote("#define COM_FORWARD_IConsole_GETTER_Machine_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_Machine_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_GETTER_Machine_TO_BASE(base) COM_FORWARD_IConsole_GETTER_Machine_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsole_GETTER_State_TO(smth) HRESULT STDMETHODCALLTYPE get_State (MachineState * aState) { return smth get_State (aState); }")
cpp_quote("#define COM_FORWARD_IConsole_GETTER_State_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_State_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_GETTER_State_TO_BASE(base) COM_FORWARD_IConsole_GETTER_State_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsole_GETTER_Guest_TO(smth) HRESULT STDMETHODCALLTYPE get_Guest (IGuest * * aGuest) { return smth get_Guest (aGuest); }")
cpp_quote("#define COM_FORWARD_IConsole_GETTER_Guest_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_Guest_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_GETTER_Guest_TO_BASE(base) COM_FORWARD_IConsole_GETTER_Guest_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsole_GETTER_Keyboard_TO(smth) HRESULT STDMETHODCALLTYPE get_Keyboard (IKeyboard * * aKeyboard) { return smth get_Keyboard (aKeyboard); }")
cpp_quote("#define COM_FORWARD_IConsole_GETTER_Keyboard_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_Keyboard_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_GETTER_Keyboard_TO_BASE(base) COM_FORWARD_IConsole_GETTER_Keyboard_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsole_GETTER_Mouse_TO(smth) HRESULT STDMETHODCALLTYPE get_Mouse (IMouse * * aMouse) { return smth get_Mouse (aMouse); }")
cpp_quote("#define COM_FORWARD_IConsole_GETTER_Mouse_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_Mouse_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_GETTER_Mouse_TO_BASE(base) COM_FORWARD_IConsole_GETTER_Mouse_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsole_GETTER_Display_TO(smth) HRESULT STDMETHODCALLTYPE get_Display (IDisplay * * aDisplay) { return smth get_Display (aDisplay); }")
cpp_quote("#define COM_FORWARD_IConsole_GETTER_Display_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_Display_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_GETTER_Display_TO_BASE(base) COM_FORWARD_IConsole_GETTER_Display_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsole_GETTER_Debugger_TO(smth) HRESULT STDMETHODCALLTYPE get_Debugger (IMachineDebugger * * aDebugger) { return smth get_Debugger (aDebugger); }")
cpp_quote("#define COM_FORWARD_IConsole_GETTER_Debugger_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_Debugger_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_GETTER_Debugger_TO_BASE(base) COM_FORWARD_IConsole_GETTER_Debugger_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsole_GETTER_USBDevices_TO(smth) HRESULT STDMETHODCALLTYPE get_USBDevices (SAFEARRAY * * aUSBDevices) { return smth get_USBDevices (aUSBDevices); }")
cpp_quote("#define COM_FORWARD_IConsole_GETTER_USBDevices_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_USBDevices_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_GETTER_USBDevices_TO_BASE(base) COM_FORWARD_IConsole_GETTER_USBDevices_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsole_GETTER_RemoteUSBDevices_TO(smth) HRESULT STDMETHODCALLTYPE get_RemoteUSBDevices (SAFEARRAY * * aRemoteUSBDevices) { return smth get_RemoteUSBDevices (aRemoteUSBDevices); }")
cpp_quote("#define COM_FORWARD_IConsole_GETTER_RemoteUSBDevices_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_RemoteUSBDevices_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_GETTER_RemoteUSBDevices_TO_BASE(base) COM_FORWARD_IConsole_GETTER_RemoteUSBDevices_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsole_GETTER_SharedFolders_TO(smth) HRESULT STDMETHODCALLTYPE get_SharedFolders (SAFEARRAY * * aSharedFolders) { return smth get_SharedFolders (aSharedFolders); }")
cpp_quote("#define COM_FORWARD_IConsole_GETTER_SharedFolders_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_SharedFolders_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_GETTER_SharedFolders_TO_BASE(base) COM_FORWARD_IConsole_GETTER_SharedFolders_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsole_GETTER_RemoteDisplayInfo_TO(smth) HRESULT STDMETHODCALLTYPE get_RemoteDisplayInfo (IRemoteDisplayInfo * * aRemoteDisplayInfo) { return smth get_RemoteDisplayInfo (aRemoteDisplayInfo); }")
cpp_quote("#define COM_FORWARD_IConsole_GETTER_RemoteDisplayInfo_TO_OBJ(obj) COM_FORWARD_IConsole_GETTER_RemoteDisplayInfo_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_GETTER_RemoteDisplayInfo_TO_BASE(base) COM_FORWARD_IConsole_GETTER_RemoteDisplayInfo_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsole_PowerUp_TO(smth) HRESULT STDMETHODCALLTYPE PowerUp (IProgress * * aProgress) { return smth PowerUp (aProgress); }")
cpp_quote("#define COM_FORWARD_IConsole_PowerUp_TO_OBJ(obj) COM_FORWARD_IConsole_PowerUp_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_PowerUp_TO_BASE(base) COM_FORWARD_IConsole_PowerUp_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsole_PowerUpPaused_TO(smth) HRESULT STDMETHODCALLTYPE PowerUpPaused (IProgress * * aProgress) { return smth PowerUpPaused (aProgress); }")
cpp_quote("#define COM_FORWARD_IConsole_PowerUpPaused_TO_OBJ(obj) COM_FORWARD_IConsole_PowerUpPaused_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_PowerUpPaused_TO_BASE(base) COM_FORWARD_IConsole_PowerUpPaused_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsole_PowerDown_TO(smth) HRESULT STDMETHODCALLTYPE PowerDown (IProgress * * aProgress) { return smth PowerDown (aProgress); }")
cpp_quote("#define COM_FORWARD_IConsole_PowerDown_TO_OBJ(obj) COM_FORWARD_IConsole_PowerDown_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_PowerDown_TO_BASE(base) COM_FORWARD_IConsole_PowerDown_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsole_Reset_TO(smth) HRESULT STDMETHODCALLTYPE Reset() { return smth Reset(); }")
cpp_quote("#define COM_FORWARD_IConsole_Reset_TO_OBJ(obj) COM_FORWARD_IConsole_Reset_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_Reset_TO_BASE(base) COM_FORWARD_IConsole_Reset_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsole_Pause_TO(smth) HRESULT STDMETHODCALLTYPE Pause() { return smth Pause(); }")
cpp_quote("#define COM_FORWARD_IConsole_Pause_TO_OBJ(obj) COM_FORWARD_IConsole_Pause_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_Pause_TO_BASE(base) COM_FORWARD_IConsole_Pause_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsole_Resume_TO(smth) HRESULT STDMETHODCALLTYPE Resume() { return smth Resume(); }")
cpp_quote("#define COM_FORWARD_IConsole_Resume_TO_OBJ(obj) COM_FORWARD_IConsole_Resume_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_Resume_TO_BASE(base) COM_FORWARD_IConsole_Resume_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsole_PowerButton_TO(smth) HRESULT STDMETHODCALLTYPE PowerButton() { return smth PowerButton(); }")
cpp_quote("#define COM_FORWARD_IConsole_PowerButton_TO_OBJ(obj) COM_FORWARD_IConsole_PowerButton_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_PowerButton_TO_BASE(base) COM_FORWARD_IConsole_PowerButton_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsole_SleepButton_TO(smth) HRESULT STDMETHODCALLTYPE SleepButton() { return smth SleepButton(); }")
cpp_quote("#define COM_FORWARD_IConsole_SleepButton_TO_OBJ(obj) COM_FORWARD_IConsole_SleepButton_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_SleepButton_TO_BASE(base) COM_FORWARD_IConsole_SleepButton_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsole_GetPowerButtonHandled_TO(smth) HRESULT STDMETHODCALLTYPE GetPowerButtonHandled (BOOL * aHandled) { return smth GetPowerButtonHandled (aHandled); }")
cpp_quote("#define COM_FORWARD_IConsole_GetPowerButtonHandled_TO_OBJ(obj) COM_FORWARD_IConsole_GetPowerButtonHandled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_GetPowerButtonHandled_TO_BASE(base) COM_FORWARD_IConsole_GetPowerButtonHandled_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsole_GetGuestEnteredACPIMode_TO(smth) HRESULT STDMETHODCALLTYPE GetGuestEnteredACPIMode (BOOL * aEntered) { return smth GetGuestEnteredACPIMode (aEntered); }")
cpp_quote("#define COM_FORWARD_IConsole_GetGuestEnteredACPIMode_TO_OBJ(obj) COM_FORWARD_IConsole_GetGuestEnteredACPIMode_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_GetGuestEnteredACPIMode_TO_BASE(base) COM_FORWARD_IConsole_GetGuestEnteredACPIMode_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsole_SaveState_TO(smth) HRESULT STDMETHODCALLTYPE SaveState (IProgress * * aProgress) { return smth SaveState (aProgress); }")
cpp_quote("#define COM_FORWARD_IConsole_SaveState_TO_OBJ(obj) COM_FORWARD_IConsole_SaveState_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_SaveState_TO_BASE(base) COM_FORWARD_IConsole_SaveState_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsole_AdoptSavedState_TO(smth) HRESULT STDMETHODCALLTYPE AdoptSavedState (BSTR aSavedStateFile) { return smth AdoptSavedState (aSavedStateFile); }")
cpp_quote("#define COM_FORWARD_IConsole_AdoptSavedState_TO_OBJ(obj) COM_FORWARD_IConsole_AdoptSavedState_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_AdoptSavedState_TO_BASE(base) COM_FORWARD_IConsole_AdoptSavedState_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsole_ForgetSavedState_TO(smth) HRESULT STDMETHODCALLTYPE ForgetSavedState (BOOL aRemove) { return smth ForgetSavedState (aRemove); }")
cpp_quote("#define COM_FORWARD_IConsole_ForgetSavedState_TO_OBJ(obj) COM_FORWARD_IConsole_ForgetSavedState_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_ForgetSavedState_TO_BASE(base) COM_FORWARD_IConsole_ForgetSavedState_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsole_GetDeviceActivity_TO(smth) HRESULT STDMETHODCALLTYPE GetDeviceActivity (DeviceType aType, DeviceActivity * aActivity) { return smth GetDeviceActivity (aType, aActivity); }")
cpp_quote("#define COM_FORWARD_IConsole_GetDeviceActivity_TO_OBJ(obj) COM_FORWARD_IConsole_GetDeviceActivity_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_GetDeviceActivity_TO_BASE(base) COM_FORWARD_IConsole_GetDeviceActivity_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsole_AttachUSBDevice_TO(smth) HRESULT STDMETHODCALLTYPE AttachUSBDevice (BSTR aId) { return smth AttachUSBDevice (aId); }")
cpp_quote("#define COM_FORWARD_IConsole_AttachUSBDevice_TO_OBJ(obj) COM_FORWARD_IConsole_AttachUSBDevice_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_AttachUSBDevice_TO_BASE(base) COM_FORWARD_IConsole_AttachUSBDevice_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsole_DetachUSBDevice_TO(smth) HRESULT STDMETHODCALLTYPE DetachUSBDevice (BSTR aId, IUSBDevice * * aDevice) { return smth DetachUSBDevice (aId, aDevice); }")
cpp_quote("#define COM_FORWARD_IConsole_DetachUSBDevice_TO_OBJ(obj) COM_FORWARD_IConsole_DetachUSBDevice_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_DetachUSBDevice_TO_BASE(base) COM_FORWARD_IConsole_DetachUSBDevice_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsole_FindUSBDeviceByAddress_TO(smth) HRESULT STDMETHODCALLTYPE FindUSBDeviceByAddress (BSTR aName, IUSBDevice * * aDevice) { return smth FindUSBDeviceByAddress (aName, aDevice); }")
cpp_quote("#define COM_FORWARD_IConsole_FindUSBDeviceByAddress_TO_OBJ(obj) COM_FORWARD_IConsole_FindUSBDeviceByAddress_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_FindUSBDeviceByAddress_TO_BASE(base) COM_FORWARD_IConsole_FindUSBDeviceByAddress_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsole_FindUSBDeviceById_TO(smth) HRESULT STDMETHODCALLTYPE FindUSBDeviceById (BSTR aId, IUSBDevice * * aDevice) { return smth FindUSBDeviceById (aId, aDevice); }")
cpp_quote("#define COM_FORWARD_IConsole_FindUSBDeviceById_TO_OBJ(obj) COM_FORWARD_IConsole_FindUSBDeviceById_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_FindUSBDeviceById_TO_BASE(base) COM_FORWARD_IConsole_FindUSBDeviceById_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsole_CreateSharedFolder_TO(smth) HRESULT STDMETHODCALLTYPE CreateSharedFolder (BSTR aName, BSTR aHostPath, BOOL aWritable) { return smth CreateSharedFolder (aName, aHostPath, aWritable); }")
cpp_quote("#define COM_FORWARD_IConsole_CreateSharedFolder_TO_OBJ(obj) COM_FORWARD_IConsole_CreateSharedFolder_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_CreateSharedFolder_TO_BASE(base) COM_FORWARD_IConsole_CreateSharedFolder_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsole_RemoveSharedFolder_TO(smth) HRESULT STDMETHODCALLTYPE RemoveSharedFolder (BSTR aName) { return smth RemoveSharedFolder (aName); }")
cpp_quote("#define COM_FORWARD_IConsole_RemoveSharedFolder_TO_OBJ(obj) COM_FORWARD_IConsole_RemoveSharedFolder_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_RemoveSharedFolder_TO_BASE(base) COM_FORWARD_IConsole_RemoveSharedFolder_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsole_TakeSnapshot_TO(smth) HRESULT STDMETHODCALLTYPE TakeSnapshot (BSTR aName, BSTR aDescription, IProgress * * aProgress) { return smth TakeSnapshot (aName, aDescription, aProgress); }")
cpp_quote("#define COM_FORWARD_IConsole_TakeSnapshot_TO_OBJ(obj) COM_FORWARD_IConsole_TakeSnapshot_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_TakeSnapshot_TO_BASE(base) COM_FORWARD_IConsole_TakeSnapshot_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsole_DeleteSnapshot_TO(smth) HRESULT STDMETHODCALLTYPE DeleteSnapshot (BSTR aId, IProgress * * aProgress) { return smth DeleteSnapshot (aId, aProgress); }")
cpp_quote("#define COM_FORWARD_IConsole_DeleteSnapshot_TO_OBJ(obj) COM_FORWARD_IConsole_DeleteSnapshot_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_DeleteSnapshot_TO_BASE(base) COM_FORWARD_IConsole_DeleteSnapshot_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsole_RestoreSnapshot_TO(smth) HRESULT STDMETHODCALLTYPE RestoreSnapshot (ISnapshot * aSnapshot, IProgress * * aProgress) { return smth RestoreSnapshot (aSnapshot, aProgress); }")
cpp_quote("#define COM_FORWARD_IConsole_RestoreSnapshot_TO_OBJ(obj) COM_FORWARD_IConsole_RestoreSnapshot_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_RestoreSnapshot_TO_BASE(base) COM_FORWARD_IConsole_RestoreSnapshot_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsole_Teleport_TO(smth) HRESULT STDMETHODCALLTYPE Teleport (BSTR aHostname, ULONG aTcpport, BSTR aPassword, ULONG aMaxDowntime, IProgress * * aProgress) { return smth Teleport (aHostname, aTcpport, aPassword, aMaxDowntime, aProgress); }")
cpp_quote("#define COM_FORWARD_IConsole_Teleport_TO_OBJ(obj) COM_FORWARD_IConsole_Teleport_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_Teleport_TO_BASE(base) COM_FORWARD_IConsole_Teleport_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsole_RegisterCallback_TO(smth) HRESULT STDMETHODCALLTYPE RegisterCallback (IConsoleCallback * aCallback) { return smth RegisterCallback (aCallback); }")
cpp_quote("#define COM_FORWARD_IConsole_RegisterCallback_TO_OBJ(obj) COM_FORWARD_IConsole_RegisterCallback_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_RegisterCallback_TO_BASE(base) COM_FORWARD_IConsole_RegisterCallback_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsole_UnregisterCallback_TO(smth) HRESULT STDMETHODCALLTYPE UnregisterCallback (IConsoleCallback * aCallback) { return smth UnregisterCallback (aCallback); }")
cpp_quote("#define COM_FORWARD_IConsole_UnregisterCallback_TO_OBJ(obj) COM_FORWARD_IConsole_UnregisterCallback_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_UnregisterCallback_TO_BASE(base) COM_FORWARD_IConsole_UnregisterCallback_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsole_TO(smth) COM_FORWARD_IConsole_GETTER_Machine_TO (smth) COM_FORWARD_IConsole_GETTER_State_TO (smth) COM_FORWARD_IConsole_GETTER_Guest_TO (smth) COM_FORWARD_IConsole_GETTER_Keyboard_TO (smth) COM_FORWARD_IConsole_GETTER_Mouse_TO (smth) COM_FORWARD_IConsole_GETTER_Display_TO (smth) COM_FORWARD_IConsole_GETTER_Debugger_TO (smth) COM_FORWARD_IConsole_GETTER_USBDevices_TO (smth) COM_FORWARD_IConsole_GETTER_RemoteUSBDevices_TO (smth) COM_FORWARD_IConsole_GETTER_SharedFolders_TO (smth) COM_FORWARD_IConsole_GETTER_RemoteDisplayInfo_TO (smth) COM_FORWARD_IConsole_PowerUp_TO (smth) COM_FORWARD_IConsole_PowerUpPaused_TO (smth) COM_FORWARD_IConsole_PowerDown_TO (smth) COM_FORWARD_IConsole_Reset_TO (smth) COM_FORWARD_IConsole_Pause_TO (smth) COM_FORWARD_IConsole_Resume_TO (smth) COM_FORWARD_IConsole_PowerButton_TO (smth) COM_FORWARD_IConsole_SleepButton_TO (smth) COM_FORWARD_IConsole_GetPowerButtonHandled_TO (smth) COM_FORWARD_IConsole_GetGuestEnteredACPIMode_TO (smth) COM_FORWARD_IConsole_SaveState_TO (smth) COM_FORWARD_IConsole_AdoptSavedState_TO (smth) COM_FORWARD_IConsole_ForgetSavedState_TO (smth) COM_FORWARD_IConsole_GetDeviceActivity_TO (smth) COM_FORWARD_IConsole_AttachUSBDevice_TO (smth) COM_FORWARD_IConsole_DetachUSBDevice_TO (smth) COM_FORWARD_IConsole_FindUSBDeviceByAddress_TO (smth) COM_FORWARD_IConsole_FindUSBDeviceById_TO (smth) COM_FORWARD_IConsole_CreateSharedFolder_TO (smth) COM_FORWARD_IConsole_RemoveSharedFolder_TO (smth) COM_FORWARD_IConsole_TakeSnapshot_TO (smth) COM_FORWARD_IConsole_DeleteSnapshot_TO (smth) COM_FORWARD_IConsole_RestoreSnapshot_TO (smth) COM_FORWARD_IConsole_Teleport_TO (smth) COM_FORWARD_IConsole_RegisterCallback_TO (smth) COM_FORWARD_IConsole_UnregisterCallback_TO (smth) ")
cpp_quote("#define COM_FORWARD_IConsole_TO_OBJ(obj) COM_FORWARD_IConsole_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_TO_BASE(base) COM_FORWARD_IConsole_TO (base::)")

[
    uuid(ce6fae58-7642-4102-b5db-c9005c2320a8),
    object,
    dual,
    oleautomation
]
interface IHostNetworkInterface : IDispatch
{
    [propget] HRESULT Name ([out, retval] BSTR * aName);

    [propget] HRESULT Id ([out, retval] BSTR * aId);

    [propget] HRESULT NetworkName ([out, retval] BSTR * aNetworkName);

    [propget] HRESULT DhcpEnabled ([out, retval] BOOL * aDhcpEnabled);

    [propget] HRESULT IPAddress ([out, retval] BSTR * aIPAddress);

    [propget] HRESULT NetworkMask ([out, retval] BSTR * aNetworkMask);

    [propget] HRESULT IPV6Supported ([out, retval] BOOL * aIPV6Supported);

    [propget] HRESULT IPV6Address ([out, retval] BSTR * aIPV6Address);

    [propget] HRESULT IPV6NetworkMaskPrefixLength ([out, retval] ULONG * aIPV6NetworkMaskPrefixLength);

    [propget] HRESULT HardwareAddress ([out, retval] BSTR * aHardwareAddress);

    [propget] HRESULT MediumType ([out, retval] HostNetworkInterfaceMediumType * aMediumType);

    [propget] HRESULT Status ([out, retval] HostNetworkInterfaceStatus * aStatus);

    [propget] HRESULT InterfaceType ([out, retval] HostNetworkInterfaceType * aInterfaceType);

    HRESULT EnableStaticIpConfig (
        [in] BSTR aIPAddress,
        [in] BSTR aNetworkMask
    );

    HRESULT EnableStaticIpConfigV6 (
        [in] BSTR aIPV6Address,
        [in] ULONG aIPV6NetworkMaskPrefixLength
    );

    HRESULT EnableDynamicIpConfig();

    HRESULT DhcpRediscover();

}; /* interface IHostNetworkInterface */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_GETTER_Name_TO(smth) HRESULT STDMETHODCALLTYPE get_Name (BSTR * aName) { return smth get_Name (aName); }")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_GETTER_Name_TO_OBJ(obj) COM_FORWARD_IHostNetworkInterface_GETTER_Name_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_GETTER_Name_TO_BASE(base) COM_FORWARD_IHostNetworkInterface_GETTER_Name_TO (base::)")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_GETTER_Id_TO(smth) HRESULT STDMETHODCALLTYPE get_Id (BSTR * aId) { return smth get_Id (aId); }")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_GETTER_Id_TO_OBJ(obj) COM_FORWARD_IHostNetworkInterface_GETTER_Id_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_GETTER_Id_TO_BASE(base) COM_FORWARD_IHostNetworkInterface_GETTER_Id_TO (base::)")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_GETTER_NetworkName_TO(smth) HRESULT STDMETHODCALLTYPE get_NetworkName (BSTR * aNetworkName) { return smth get_NetworkName (aNetworkName); }")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_GETTER_NetworkName_TO_OBJ(obj) COM_FORWARD_IHostNetworkInterface_GETTER_NetworkName_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_GETTER_NetworkName_TO_BASE(base) COM_FORWARD_IHostNetworkInterface_GETTER_NetworkName_TO (base::)")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_GETTER_DhcpEnabled_TO(smth) HRESULT STDMETHODCALLTYPE get_DhcpEnabled (BOOL * aDhcpEnabled) { return smth get_DhcpEnabled (aDhcpEnabled); }")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_GETTER_DhcpEnabled_TO_OBJ(obj) COM_FORWARD_IHostNetworkInterface_GETTER_DhcpEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_GETTER_DhcpEnabled_TO_BASE(base) COM_FORWARD_IHostNetworkInterface_GETTER_DhcpEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_GETTER_IPAddress_TO(smth) HRESULT STDMETHODCALLTYPE get_IPAddress (BSTR * aIPAddress) { return smth get_IPAddress (aIPAddress); }")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_GETTER_IPAddress_TO_OBJ(obj) COM_FORWARD_IHostNetworkInterface_GETTER_IPAddress_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_GETTER_IPAddress_TO_BASE(base) COM_FORWARD_IHostNetworkInterface_GETTER_IPAddress_TO (base::)")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_GETTER_NetworkMask_TO(smth) HRESULT STDMETHODCALLTYPE get_NetworkMask (BSTR * aNetworkMask) { return smth get_NetworkMask (aNetworkMask); }")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_GETTER_NetworkMask_TO_OBJ(obj) COM_FORWARD_IHostNetworkInterface_GETTER_NetworkMask_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_GETTER_NetworkMask_TO_BASE(base) COM_FORWARD_IHostNetworkInterface_GETTER_NetworkMask_TO (base::)")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_GETTER_IPV6Supported_TO(smth) HRESULT STDMETHODCALLTYPE get_IPV6Supported (BOOL * aIPV6Supported) { return smth get_IPV6Supported (aIPV6Supported); }")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_GETTER_IPV6Supported_TO_OBJ(obj) COM_FORWARD_IHostNetworkInterface_GETTER_IPV6Supported_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_GETTER_IPV6Supported_TO_BASE(base) COM_FORWARD_IHostNetworkInterface_GETTER_IPV6Supported_TO (base::)")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_GETTER_IPV6Address_TO(smth) HRESULT STDMETHODCALLTYPE get_IPV6Address (BSTR * aIPV6Address) { return smth get_IPV6Address (aIPV6Address); }")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_GETTER_IPV6Address_TO_OBJ(obj) COM_FORWARD_IHostNetworkInterface_GETTER_IPV6Address_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_GETTER_IPV6Address_TO_BASE(base) COM_FORWARD_IHostNetworkInterface_GETTER_IPV6Address_TO (base::)")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_GETTER_IPV6NetworkMaskPrefixLength_TO(smth) HRESULT STDMETHODCALLTYPE get_IPV6NetworkMaskPrefixLength (ULONG * aIPV6NetworkMaskPrefixLength) { return smth get_IPV6NetworkMaskPrefixLength (aIPV6NetworkMaskPrefixLength); }")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_GETTER_IPV6NetworkMaskPrefixLength_TO_OBJ(obj) COM_FORWARD_IHostNetworkInterface_GETTER_IPV6NetworkMaskPrefixLength_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_GETTER_IPV6NetworkMaskPrefixLength_TO_BASE(base) COM_FORWARD_IHostNetworkInterface_GETTER_IPV6NetworkMaskPrefixLength_TO (base::)")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_GETTER_HardwareAddress_TO(smth) HRESULT STDMETHODCALLTYPE get_HardwareAddress (BSTR * aHardwareAddress) { return smth get_HardwareAddress (aHardwareAddress); }")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_GETTER_HardwareAddress_TO_OBJ(obj) COM_FORWARD_IHostNetworkInterface_GETTER_HardwareAddress_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_GETTER_HardwareAddress_TO_BASE(base) COM_FORWARD_IHostNetworkInterface_GETTER_HardwareAddress_TO (base::)")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_GETTER_MediumType_TO(smth) HRESULT STDMETHODCALLTYPE get_MediumType (HostNetworkInterfaceMediumType * aMediumType) { return smth get_MediumType (aMediumType); }")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_GETTER_MediumType_TO_OBJ(obj) COM_FORWARD_IHostNetworkInterface_GETTER_MediumType_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_GETTER_MediumType_TO_BASE(base) COM_FORWARD_IHostNetworkInterface_GETTER_MediumType_TO (base::)")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_GETTER_Status_TO(smth) HRESULT STDMETHODCALLTYPE get_Status (HostNetworkInterfaceStatus * aStatus) { return smth get_Status (aStatus); }")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_GETTER_Status_TO_OBJ(obj) COM_FORWARD_IHostNetworkInterface_GETTER_Status_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_GETTER_Status_TO_BASE(base) COM_FORWARD_IHostNetworkInterface_GETTER_Status_TO (base::)")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_GETTER_InterfaceType_TO(smth) HRESULT STDMETHODCALLTYPE get_InterfaceType (HostNetworkInterfaceType * aInterfaceType) { return smth get_InterfaceType (aInterfaceType); }")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_GETTER_InterfaceType_TO_OBJ(obj) COM_FORWARD_IHostNetworkInterface_GETTER_InterfaceType_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_GETTER_InterfaceType_TO_BASE(base) COM_FORWARD_IHostNetworkInterface_GETTER_InterfaceType_TO (base::)")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_EnableStaticIpConfig_TO(smth) HRESULT STDMETHODCALLTYPE EnableStaticIpConfig (BSTR aIPAddress, BSTR aNetworkMask) { return smth EnableStaticIpConfig (aIPAddress, aNetworkMask); }")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_EnableStaticIpConfig_TO_OBJ(obj) COM_FORWARD_IHostNetworkInterface_EnableStaticIpConfig_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_EnableStaticIpConfig_TO_BASE(base) COM_FORWARD_IHostNetworkInterface_EnableStaticIpConfig_TO (base::)")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_EnableStaticIpConfigV6_TO(smth) HRESULT STDMETHODCALLTYPE EnableStaticIpConfigV6 (BSTR aIPV6Address, ULONG aIPV6NetworkMaskPrefixLength) { return smth EnableStaticIpConfigV6 (aIPV6Address, aIPV6NetworkMaskPrefixLength); }")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_EnableStaticIpConfigV6_TO_OBJ(obj) COM_FORWARD_IHostNetworkInterface_EnableStaticIpConfigV6_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_EnableStaticIpConfigV6_TO_BASE(base) COM_FORWARD_IHostNetworkInterface_EnableStaticIpConfigV6_TO (base::)")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_EnableDynamicIpConfig_TO(smth) HRESULT STDMETHODCALLTYPE EnableDynamicIpConfig() { return smth EnableDynamicIpConfig(); }")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_EnableDynamicIpConfig_TO_OBJ(obj) COM_FORWARD_IHostNetworkInterface_EnableDynamicIpConfig_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_EnableDynamicIpConfig_TO_BASE(base) COM_FORWARD_IHostNetworkInterface_EnableDynamicIpConfig_TO (base::)")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_DhcpRediscover_TO(smth) HRESULT STDMETHODCALLTYPE DhcpRediscover() { return smth DhcpRediscover(); }")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_DhcpRediscover_TO_OBJ(obj) COM_FORWARD_IHostNetworkInterface_DhcpRediscover_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_DhcpRediscover_TO_BASE(base) COM_FORWARD_IHostNetworkInterface_DhcpRediscover_TO (base::)")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_TO(smth) COM_FORWARD_IHostNetworkInterface_GETTER_Name_TO (smth) COM_FORWARD_IHostNetworkInterface_GETTER_Id_TO (smth) COM_FORWARD_IHostNetworkInterface_GETTER_NetworkName_TO (smth) COM_FORWARD_IHostNetworkInterface_GETTER_DhcpEnabled_TO (smth) COM_FORWARD_IHostNetworkInterface_GETTER_IPAddress_TO (smth) COM_FORWARD_IHostNetworkInterface_GETTER_NetworkMask_TO (smth) COM_FORWARD_IHostNetworkInterface_GETTER_IPV6Supported_TO (smth) COM_FORWARD_IHostNetworkInterface_GETTER_IPV6Address_TO (smth) COM_FORWARD_IHostNetworkInterface_GETTER_IPV6NetworkMaskPrefixLength_TO (smth) COM_FORWARD_IHostNetworkInterface_GETTER_HardwareAddress_TO (smth) COM_FORWARD_IHostNetworkInterface_GETTER_MediumType_TO (smth) COM_FORWARD_IHostNetworkInterface_GETTER_Status_TO (smth) COM_FORWARD_IHostNetworkInterface_GETTER_InterfaceType_TO (smth) COM_FORWARD_IHostNetworkInterface_EnableStaticIpConfig_TO (smth) COM_FORWARD_IHostNetworkInterface_EnableStaticIpConfigV6_TO (smth) COM_FORWARD_IHostNetworkInterface_EnableDynamicIpConfig_TO (smth) COM_FORWARD_IHostNetworkInterface_DhcpRediscover_TO (smth) ")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_TO_OBJ(obj) COM_FORWARD_IHostNetworkInterface_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHostNetworkInterface_TO_BASE(base) COM_FORWARD_IHostNetworkInterface_TO (base::)")

[
    uuid(35b004f4-7806-4009-bfa8-d1308adba7e5),
    object,
    dual,
    oleautomation
]
interface IHost : IDispatch
{
    [propget] HRESULT DVDDrives ([out, retval] SAFEARRAY(IMedium *) * aDVDDrives);

    [propget] HRESULT FloppyDrives ([out, retval] SAFEARRAY(IMedium *) * aFloppyDrives);

    [propget] HRESULT USBDevices ([out, retval] SAFEARRAY(IHostUSBDevice *) * aUSBDevices);

    [propget] HRESULT USBDeviceFilters ([out, retval] SAFEARRAY(IHostUSBDeviceFilter *) * aUSBDeviceFilters);

    [propget] HRESULT NetworkInterfaces ([out, retval] SAFEARRAY(IHostNetworkInterface *) * aNetworkInterfaces);

    [propget] HRESULT ProcessorCount ([out, retval] ULONG * aProcessorCount);

    [propget] HRESULT ProcessorOnlineCount ([out, retval] ULONG * aProcessorOnlineCount);

    [propget] HRESULT ProcessorCoreCount ([out, retval] ULONG * aProcessorCoreCount);

    [propget] HRESULT MemorySize ([out, retval] ULONG * aMemorySize);

    [propget] HRESULT MemoryAvailable ([out, retval] ULONG * aMemoryAvailable);

    [propget] HRESULT OperatingSystem ([out, retval] BSTR * aOperatingSystem);

    [propget] HRESULT OSVersion ([out, retval] BSTR * aOSVersion);

    [propget] HRESULT UTCTime ([out, retval] LONG64 * aUTCTime);

    [propget] HRESULT Acceleration3DAvailable ([out, retval] BOOL * aAcceleration3DAvailable);

    HRESULT GetProcessorSpeed (
        [in] ULONG aCpuId,
        [out, retval] ULONG * aSpeed
    );

    HRESULT GetProcessorFeature (
        [in] ProcessorFeature aFeature,
        [out, retval] BOOL * aSupported
    );

    HRESULT GetProcessorDescription (
        [in] ULONG aCpuId,
        [out, retval] BSTR * aDescription
    );

    HRESULT GetProcessorCPUIDLeaf (
        [in] ULONG aCpuId,
        [in] ULONG aLeaf,
        [in] ULONG aSubLeaf,
        [out] ULONG * aValEax,
        [out] ULONG * aValEbx,
        [out] ULONG * aValEcx,
        [out] ULONG * aValEdx
    );

    HRESULT CreateHostOnlyNetworkInterface (
        [out] IHostNetworkInterface * * aHostInterface,
        [out, retval] IProgress * * aProgress
    );

    HRESULT RemoveHostOnlyNetworkInterface (
        [in] BSTR aId,
        [out, retval] IProgress * * aProgress
    );

    HRESULT CreateUSBDeviceFilter (
        [in] BSTR aName,
        [out, retval] IHostUSBDeviceFilter * * aFilter
    );

    HRESULT InsertUSBDeviceFilter (
        [in] ULONG aPosition,
        [in] IHostUSBDeviceFilter * aFilter
    );

    HRESULT RemoveUSBDeviceFilter (
        [in] ULONG aPosition
    );

    HRESULT FindHostDVDDrive (
        [in] BSTR aName,
        [out, retval] IMedium * * aDrive
    );

    HRESULT FindHostFloppyDrive (
        [in] BSTR aName,
        [out, retval] IMedium * * aDrive
    );

    HRESULT FindHostNetworkInterfaceByName (
        [in] BSTR aName,
        [out, retval] IHostNetworkInterface * * aNetworkInterface
    );

    HRESULT FindHostNetworkInterfaceById (
        [in] BSTR aId,
        [out, retval] IHostNetworkInterface * * aNetworkInterface
    );

    HRESULT FindHostNetworkInterfacesOfType (
        [in] HostNetworkInterfaceType aType,
        [out, retval] SAFEARRAY(IHostNetworkInterface *) * aNetworkInterfaces
    );

    HRESULT FindUSBDeviceById (
        [in] BSTR aId,
        [out, retval] IHostUSBDevice * * aDevice
    );

    HRESULT FindUSBDeviceByAddress (
        [in] BSTR aName,
        [out, retval] IHostUSBDevice * * aDevice
    );

}; /* interface IHost */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IHost_GETTER_DVDDrives_TO(smth) HRESULT STDMETHODCALLTYPE get_DVDDrives (SAFEARRAY * * aDVDDrives) { return smth get_DVDDrives (aDVDDrives); }")
cpp_quote("#define COM_FORWARD_IHost_GETTER_DVDDrives_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_DVDDrives_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHost_GETTER_DVDDrives_TO_BASE(base) COM_FORWARD_IHost_GETTER_DVDDrives_TO (base::)")
cpp_quote("#define COM_FORWARD_IHost_GETTER_FloppyDrives_TO(smth) HRESULT STDMETHODCALLTYPE get_FloppyDrives (SAFEARRAY * * aFloppyDrives) { return smth get_FloppyDrives (aFloppyDrives); }")
cpp_quote("#define COM_FORWARD_IHost_GETTER_FloppyDrives_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_FloppyDrives_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHost_GETTER_FloppyDrives_TO_BASE(base) COM_FORWARD_IHost_GETTER_FloppyDrives_TO (base::)")
cpp_quote("#define COM_FORWARD_IHost_GETTER_USBDevices_TO(smth) HRESULT STDMETHODCALLTYPE get_USBDevices (SAFEARRAY * * aUSBDevices) { return smth get_USBDevices (aUSBDevices); }")
cpp_quote("#define COM_FORWARD_IHost_GETTER_USBDevices_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_USBDevices_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHost_GETTER_USBDevices_TO_BASE(base) COM_FORWARD_IHost_GETTER_USBDevices_TO (base::)")
cpp_quote("#define COM_FORWARD_IHost_GETTER_USBDeviceFilters_TO(smth) HRESULT STDMETHODCALLTYPE get_USBDeviceFilters (SAFEARRAY * * aUSBDeviceFilters) { return smth get_USBDeviceFilters (aUSBDeviceFilters); }")
cpp_quote("#define COM_FORWARD_IHost_GETTER_USBDeviceFilters_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_USBDeviceFilters_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHost_GETTER_USBDeviceFilters_TO_BASE(base) COM_FORWARD_IHost_GETTER_USBDeviceFilters_TO (base::)")
cpp_quote("#define COM_FORWARD_IHost_GETTER_NetworkInterfaces_TO(smth) HRESULT STDMETHODCALLTYPE get_NetworkInterfaces (SAFEARRAY * * aNetworkInterfaces) { return smth get_NetworkInterfaces (aNetworkInterfaces); }")
cpp_quote("#define COM_FORWARD_IHost_GETTER_NetworkInterfaces_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_NetworkInterfaces_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHost_GETTER_NetworkInterfaces_TO_BASE(base) COM_FORWARD_IHost_GETTER_NetworkInterfaces_TO (base::)")
cpp_quote("#define COM_FORWARD_IHost_GETTER_ProcessorCount_TO(smth) HRESULT STDMETHODCALLTYPE get_ProcessorCount (ULONG * aProcessorCount) { return smth get_ProcessorCount (aProcessorCount); }")
cpp_quote("#define COM_FORWARD_IHost_GETTER_ProcessorCount_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_ProcessorCount_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHost_GETTER_ProcessorCount_TO_BASE(base) COM_FORWARD_IHost_GETTER_ProcessorCount_TO (base::)")
cpp_quote("#define COM_FORWARD_IHost_GETTER_ProcessorOnlineCount_TO(smth) HRESULT STDMETHODCALLTYPE get_ProcessorOnlineCount (ULONG * aProcessorOnlineCount) { return smth get_ProcessorOnlineCount (aProcessorOnlineCount); }")
cpp_quote("#define COM_FORWARD_IHost_GETTER_ProcessorOnlineCount_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_ProcessorOnlineCount_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHost_GETTER_ProcessorOnlineCount_TO_BASE(base) COM_FORWARD_IHost_GETTER_ProcessorOnlineCount_TO (base::)")
cpp_quote("#define COM_FORWARD_IHost_GETTER_ProcessorCoreCount_TO(smth) HRESULT STDMETHODCALLTYPE get_ProcessorCoreCount (ULONG * aProcessorCoreCount) { return smth get_ProcessorCoreCount (aProcessorCoreCount); }")
cpp_quote("#define COM_FORWARD_IHost_GETTER_ProcessorCoreCount_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_ProcessorCoreCount_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHost_GETTER_ProcessorCoreCount_TO_BASE(base) COM_FORWARD_IHost_GETTER_ProcessorCoreCount_TO (base::)")
cpp_quote("#define COM_FORWARD_IHost_GETTER_MemorySize_TO(smth) HRESULT STDMETHODCALLTYPE get_MemorySize (ULONG * aMemorySize) { return smth get_MemorySize (aMemorySize); }")
cpp_quote("#define COM_FORWARD_IHost_GETTER_MemorySize_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_MemorySize_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHost_GETTER_MemorySize_TO_BASE(base) COM_FORWARD_IHost_GETTER_MemorySize_TO (base::)")
cpp_quote("#define COM_FORWARD_IHost_GETTER_MemoryAvailable_TO(smth) HRESULT STDMETHODCALLTYPE get_MemoryAvailable (ULONG * aMemoryAvailable) { return smth get_MemoryAvailable (aMemoryAvailable); }")
cpp_quote("#define COM_FORWARD_IHost_GETTER_MemoryAvailable_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_MemoryAvailable_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHost_GETTER_MemoryAvailable_TO_BASE(base) COM_FORWARD_IHost_GETTER_MemoryAvailable_TO (base::)")
cpp_quote("#define COM_FORWARD_IHost_GETTER_OperatingSystem_TO(smth) HRESULT STDMETHODCALLTYPE get_OperatingSystem (BSTR * aOperatingSystem) { return smth get_OperatingSystem (aOperatingSystem); }")
cpp_quote("#define COM_FORWARD_IHost_GETTER_OperatingSystem_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_OperatingSystem_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHost_GETTER_OperatingSystem_TO_BASE(base) COM_FORWARD_IHost_GETTER_OperatingSystem_TO (base::)")
cpp_quote("#define COM_FORWARD_IHost_GETTER_OSVersion_TO(smth) HRESULT STDMETHODCALLTYPE get_OSVersion (BSTR * aOSVersion) { return smth get_OSVersion (aOSVersion); }")
cpp_quote("#define COM_FORWARD_IHost_GETTER_OSVersion_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_OSVersion_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHost_GETTER_OSVersion_TO_BASE(base) COM_FORWARD_IHost_GETTER_OSVersion_TO (base::)")
cpp_quote("#define COM_FORWARD_IHost_GETTER_UTCTime_TO(smth) HRESULT STDMETHODCALLTYPE get_UTCTime (LONG64 * aUTCTime) { return smth get_UTCTime (aUTCTime); }")
cpp_quote("#define COM_FORWARD_IHost_GETTER_UTCTime_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_UTCTime_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHost_GETTER_UTCTime_TO_BASE(base) COM_FORWARD_IHost_GETTER_UTCTime_TO (base::)")
cpp_quote("#define COM_FORWARD_IHost_GETTER_Acceleration3DAvailable_TO(smth) HRESULT STDMETHODCALLTYPE get_Acceleration3DAvailable (BOOL * aAcceleration3DAvailable) { return smth get_Acceleration3DAvailable (aAcceleration3DAvailable); }")
cpp_quote("#define COM_FORWARD_IHost_GETTER_Acceleration3DAvailable_TO_OBJ(obj) COM_FORWARD_IHost_GETTER_Acceleration3DAvailable_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHost_GETTER_Acceleration3DAvailable_TO_BASE(base) COM_FORWARD_IHost_GETTER_Acceleration3DAvailable_TO (base::)")
cpp_quote("#define COM_FORWARD_IHost_GetProcessorSpeed_TO(smth) HRESULT STDMETHODCALLTYPE GetProcessorSpeed (ULONG aCpuId, ULONG * aSpeed) { return smth GetProcessorSpeed (aCpuId, aSpeed); }")
cpp_quote("#define COM_FORWARD_IHost_GetProcessorSpeed_TO_OBJ(obj) COM_FORWARD_IHost_GetProcessorSpeed_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHost_GetProcessorSpeed_TO_BASE(base) COM_FORWARD_IHost_GetProcessorSpeed_TO (base::)")
cpp_quote("#define COM_FORWARD_IHost_GetProcessorFeature_TO(smth) HRESULT STDMETHODCALLTYPE GetProcessorFeature (ProcessorFeature aFeature, BOOL * aSupported) { return smth GetProcessorFeature (aFeature, aSupported); }")
cpp_quote("#define COM_FORWARD_IHost_GetProcessorFeature_TO_OBJ(obj) COM_FORWARD_IHost_GetProcessorFeature_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHost_GetProcessorFeature_TO_BASE(base) COM_FORWARD_IHost_GetProcessorFeature_TO (base::)")
cpp_quote("#define COM_FORWARD_IHost_GetProcessorDescription_TO(smth) HRESULT STDMETHODCALLTYPE GetProcessorDescription (ULONG aCpuId, BSTR * aDescription) { return smth GetProcessorDescription (aCpuId, aDescription); }")
cpp_quote("#define COM_FORWARD_IHost_GetProcessorDescription_TO_OBJ(obj) COM_FORWARD_IHost_GetProcessorDescription_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHost_GetProcessorDescription_TO_BASE(base) COM_FORWARD_IHost_GetProcessorDescription_TO (base::)")
cpp_quote("#define COM_FORWARD_IHost_GetProcessorCPUIDLeaf_TO(smth) HRESULT STDMETHODCALLTYPE GetProcessorCPUIDLeaf (ULONG aCpuId, ULONG aLeaf, ULONG aSubLeaf, ULONG * aValEax, ULONG * aValEbx, ULONG * aValEcx, ULONG * aValEdx) { return smth GetProcessorCPUIDLeaf (aCpuId, aLeaf, aSubLeaf, aValEax, aValEbx, aValEcx, aValEdx); }")
cpp_quote("#define COM_FORWARD_IHost_GetProcessorCPUIDLeaf_TO_OBJ(obj) COM_FORWARD_IHost_GetProcessorCPUIDLeaf_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHost_GetProcessorCPUIDLeaf_TO_BASE(base) COM_FORWARD_IHost_GetProcessorCPUIDLeaf_TO (base::)")
cpp_quote("#define COM_FORWARD_IHost_CreateHostOnlyNetworkInterface_TO(smth) HRESULT STDMETHODCALLTYPE CreateHostOnlyNetworkInterface (IHostNetworkInterface * * aHostInterface, IProgress * * aProgress) { return smth CreateHostOnlyNetworkInterface (aHostInterface, aProgress); }")
cpp_quote("#define COM_FORWARD_IHost_CreateHostOnlyNetworkInterface_TO_OBJ(obj) COM_FORWARD_IHost_CreateHostOnlyNetworkInterface_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHost_CreateHostOnlyNetworkInterface_TO_BASE(base) COM_FORWARD_IHost_CreateHostOnlyNetworkInterface_TO (base::)")
cpp_quote("#define COM_FORWARD_IHost_RemoveHostOnlyNetworkInterface_TO(smth) HRESULT STDMETHODCALLTYPE RemoveHostOnlyNetworkInterface (BSTR aId, IProgress * * aProgress) { return smth RemoveHostOnlyNetworkInterface (aId, aProgress); }")
cpp_quote("#define COM_FORWARD_IHost_RemoveHostOnlyNetworkInterface_TO_OBJ(obj) COM_FORWARD_IHost_RemoveHostOnlyNetworkInterface_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHost_RemoveHostOnlyNetworkInterface_TO_BASE(base) COM_FORWARD_IHost_RemoveHostOnlyNetworkInterface_TO (base::)")
cpp_quote("#define COM_FORWARD_IHost_CreateUSBDeviceFilter_TO(smth) HRESULT STDMETHODCALLTYPE CreateUSBDeviceFilter (BSTR aName, IHostUSBDeviceFilter * * aFilter) { return smth CreateUSBDeviceFilter (aName, aFilter); }")
cpp_quote("#define COM_FORWARD_IHost_CreateUSBDeviceFilter_TO_OBJ(obj) COM_FORWARD_IHost_CreateUSBDeviceFilter_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHost_CreateUSBDeviceFilter_TO_BASE(base) COM_FORWARD_IHost_CreateUSBDeviceFilter_TO (base::)")
cpp_quote("#define COM_FORWARD_IHost_InsertUSBDeviceFilter_TO(smth) HRESULT STDMETHODCALLTYPE InsertUSBDeviceFilter (ULONG aPosition, IHostUSBDeviceFilter * aFilter) { return smth InsertUSBDeviceFilter (aPosition, aFilter); }")
cpp_quote("#define COM_FORWARD_IHost_InsertUSBDeviceFilter_TO_OBJ(obj) COM_FORWARD_IHost_InsertUSBDeviceFilter_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHost_InsertUSBDeviceFilter_TO_BASE(base) COM_FORWARD_IHost_InsertUSBDeviceFilter_TO (base::)")
cpp_quote("#define COM_FORWARD_IHost_RemoveUSBDeviceFilter_TO(smth) HRESULT STDMETHODCALLTYPE RemoveUSBDeviceFilter (ULONG aPosition) { return smth RemoveUSBDeviceFilter (aPosition); }")
cpp_quote("#define COM_FORWARD_IHost_RemoveUSBDeviceFilter_TO_OBJ(obj) COM_FORWARD_IHost_RemoveUSBDeviceFilter_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHost_RemoveUSBDeviceFilter_TO_BASE(base) COM_FORWARD_IHost_RemoveUSBDeviceFilter_TO (base::)")
cpp_quote("#define COM_FORWARD_IHost_FindHostDVDDrive_TO(smth) HRESULT STDMETHODCALLTYPE FindHostDVDDrive (BSTR aName, IMedium * * aDrive) { return smth FindHostDVDDrive (aName, aDrive); }")
cpp_quote("#define COM_FORWARD_IHost_FindHostDVDDrive_TO_OBJ(obj) COM_FORWARD_IHost_FindHostDVDDrive_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHost_FindHostDVDDrive_TO_BASE(base) COM_FORWARD_IHost_FindHostDVDDrive_TO (base::)")
cpp_quote("#define COM_FORWARD_IHost_FindHostFloppyDrive_TO(smth) HRESULT STDMETHODCALLTYPE FindHostFloppyDrive (BSTR aName, IMedium * * aDrive) { return smth FindHostFloppyDrive (aName, aDrive); }")
cpp_quote("#define COM_FORWARD_IHost_FindHostFloppyDrive_TO_OBJ(obj) COM_FORWARD_IHost_FindHostFloppyDrive_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHost_FindHostFloppyDrive_TO_BASE(base) COM_FORWARD_IHost_FindHostFloppyDrive_TO (base::)")
cpp_quote("#define COM_FORWARD_IHost_FindHostNetworkInterfaceByName_TO(smth) HRESULT STDMETHODCALLTYPE FindHostNetworkInterfaceByName (BSTR aName, IHostNetworkInterface * * aNetworkInterface) { return smth FindHostNetworkInterfaceByName (aName, aNetworkInterface); }")
cpp_quote("#define COM_FORWARD_IHost_FindHostNetworkInterfaceByName_TO_OBJ(obj) COM_FORWARD_IHost_FindHostNetworkInterfaceByName_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHost_FindHostNetworkInterfaceByName_TO_BASE(base) COM_FORWARD_IHost_FindHostNetworkInterfaceByName_TO (base::)")
cpp_quote("#define COM_FORWARD_IHost_FindHostNetworkInterfaceById_TO(smth) HRESULT STDMETHODCALLTYPE FindHostNetworkInterfaceById (BSTR aId, IHostNetworkInterface * * aNetworkInterface) { return smth FindHostNetworkInterfaceById (aId, aNetworkInterface); }")
cpp_quote("#define COM_FORWARD_IHost_FindHostNetworkInterfaceById_TO_OBJ(obj) COM_FORWARD_IHost_FindHostNetworkInterfaceById_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHost_FindHostNetworkInterfaceById_TO_BASE(base) COM_FORWARD_IHost_FindHostNetworkInterfaceById_TO (base::)")
cpp_quote("#define COM_FORWARD_IHost_FindHostNetworkInterfacesOfType_TO(smth) HRESULT STDMETHODCALLTYPE FindHostNetworkInterfacesOfType (HostNetworkInterfaceType aType, SAFEARRAY * * aNetworkInterfaces) { return smth FindHostNetworkInterfacesOfType (aType, aNetworkInterfaces); }")
cpp_quote("#define COM_FORWARD_IHost_FindHostNetworkInterfacesOfType_TO_OBJ(obj) COM_FORWARD_IHost_FindHostNetworkInterfacesOfType_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHost_FindHostNetworkInterfacesOfType_TO_BASE(base) COM_FORWARD_IHost_FindHostNetworkInterfacesOfType_TO (base::)")
cpp_quote("#define COM_FORWARD_IHost_FindUSBDeviceById_TO(smth) HRESULT STDMETHODCALLTYPE FindUSBDeviceById (BSTR aId, IHostUSBDevice * * aDevice) { return smth FindUSBDeviceById (aId, aDevice); }")
cpp_quote("#define COM_FORWARD_IHost_FindUSBDeviceById_TO_OBJ(obj) COM_FORWARD_IHost_FindUSBDeviceById_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHost_FindUSBDeviceById_TO_BASE(base) COM_FORWARD_IHost_FindUSBDeviceById_TO (base::)")
cpp_quote("#define COM_FORWARD_IHost_FindUSBDeviceByAddress_TO(smth) HRESULT STDMETHODCALLTYPE FindUSBDeviceByAddress (BSTR aName, IHostUSBDevice * * aDevice) { return smth FindUSBDeviceByAddress (aName, aDevice); }")
cpp_quote("#define COM_FORWARD_IHost_FindUSBDeviceByAddress_TO_OBJ(obj) COM_FORWARD_IHost_FindUSBDeviceByAddress_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHost_FindUSBDeviceByAddress_TO_BASE(base) COM_FORWARD_IHost_FindUSBDeviceByAddress_TO (base::)")
cpp_quote("#define COM_FORWARD_IHost_TO(smth) COM_FORWARD_IHost_GETTER_DVDDrives_TO (smth) COM_FORWARD_IHost_GETTER_FloppyDrives_TO (smth) COM_FORWARD_IHost_GETTER_USBDevices_TO (smth) COM_FORWARD_IHost_GETTER_USBDeviceFilters_TO (smth) COM_FORWARD_IHost_GETTER_NetworkInterfaces_TO (smth) COM_FORWARD_IHost_GETTER_ProcessorCount_TO (smth) COM_FORWARD_IHost_GETTER_ProcessorOnlineCount_TO (smth) COM_FORWARD_IHost_GETTER_ProcessorCoreCount_TO (smth) COM_FORWARD_IHost_GETTER_MemorySize_TO (smth) COM_FORWARD_IHost_GETTER_MemoryAvailable_TO (smth) COM_FORWARD_IHost_GETTER_OperatingSystem_TO (smth) COM_FORWARD_IHost_GETTER_OSVersion_TO (smth) COM_FORWARD_IHost_GETTER_UTCTime_TO (smth) COM_FORWARD_IHost_GETTER_Acceleration3DAvailable_TO (smth) COM_FORWARD_IHost_GetProcessorSpeed_TO (smth) COM_FORWARD_IHost_GetProcessorFeature_TO (smth) COM_FORWARD_IHost_GetProcessorDescription_TO (smth) COM_FORWARD_IHost_GetProcessorCPUIDLeaf_TO (smth) COM_FORWARD_IHost_CreateHostOnlyNetworkInterface_TO (smth) COM_FORWARD_IHost_RemoveHostOnlyNetworkInterface_TO (smth) COM_FORWARD_IHost_CreateUSBDeviceFilter_TO (smth) COM_FORWARD_IHost_InsertUSBDeviceFilter_TO (smth) COM_FORWARD_IHost_RemoveUSBDeviceFilter_TO (smth) COM_FORWARD_IHost_FindHostDVDDrive_TO (smth) COM_FORWARD_IHost_FindHostFloppyDrive_TO (smth) COM_FORWARD_IHost_FindHostNetworkInterfaceByName_TO (smth) COM_FORWARD_IHost_FindHostNetworkInterfaceById_TO (smth) COM_FORWARD_IHost_FindHostNetworkInterfacesOfType_TO (smth) COM_FORWARD_IHost_FindUSBDeviceById_TO (smth) COM_FORWARD_IHost_FindUSBDeviceByAddress_TO (smth) ")
cpp_quote("#define COM_FORWARD_IHost_TO_OBJ(obj) COM_FORWARD_IHost_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHost_TO_BASE(base) COM_FORWARD_IHost_TO (base::)")

[
    uuid(07c3ffd8-8f59-49cc-b608-53a332e85cc3),
    object,
    dual,
    oleautomation
]
interface ISystemProperties : IDispatch
{
    [propget] HRESULT MinGuestRAM ([out, retval] ULONG * aMinGuestRAM);

    [propget] HRESULT MaxGuestRAM ([out, retval] ULONG * aMaxGuestRAM);

    [propget] HRESULT MinGuestVRAM ([out, retval] ULONG * aMinGuestVRAM);

    [propget] HRESULT MaxGuestVRAM ([out, retval] ULONG * aMaxGuestVRAM);

    [propget] HRESULT MinGuestCPUCount ([out, retval] ULONG * aMinGuestCPUCount);

    [propget] HRESULT MaxGuestCPUCount ([out, retval] ULONG * aMaxGuestCPUCount);

    [propget] HRESULT MaxGuestMonitors ([out, retval] ULONG * aMaxGuestMonitors);

    [propget] HRESULT MaxVDISize ([out, retval] ULONG64 * aMaxVDISize);

    [propget] HRESULT NetworkAdapterCount ([out, retval] ULONG * aNetworkAdapterCount);

    [propget] HRESULT SerialPortCount ([out, retval] ULONG * aSerialPortCount);

    [propget] HRESULT ParallelPortCount ([out, retval] ULONG * aParallelPortCount);

    [propget] HRESULT MaxBootPosition ([out, retval] ULONG * aMaxBootPosition);

    [propget] HRESULT DefaultMachineFolder ([out, retval] BSTR * aDefaultMachineFolder);
    [propput] HRESULT DefaultMachineFolder ([in] BSTR aDefaultMachineFolder);

    [propget] HRESULT DefaultHardDiskFolder ([out, retval] BSTR * aDefaultHardDiskFolder);
    [propput] HRESULT DefaultHardDiskFolder ([in] BSTR aDefaultHardDiskFolder);

    [propget] HRESULT MediumFormats ([out, retval] SAFEARRAY(IMediumFormat *) * aMediumFormats);

    [propget] HRESULT DefaultHardDiskFormat ([out, retval] BSTR * aDefaultHardDiskFormat);
    [propput] HRESULT DefaultHardDiskFormat ([in] BSTR aDefaultHardDiskFormat);

    [propget] HRESULT FreeDiskSpaceWarning ([out, retval] ULONG64 * aFreeDiskSpaceWarning);
    [propput] HRESULT FreeDiskSpaceWarning ([in] ULONG64 aFreeDiskSpaceWarning);

    [propget] HRESULT FreeDiskSpacePercentWarning ([out, retval] ULONG * aFreeDiskSpacePercentWarning);
    [propput] HRESULT FreeDiskSpacePercentWarning ([in] ULONG aFreeDiskSpacePercentWarning);

    [propget] HRESULT FreeDiskSpaceError ([out, retval] ULONG64 * aFreeDiskSpaceError);
    [propput] HRESULT FreeDiskSpaceError ([in] ULONG64 aFreeDiskSpaceError);

    [propget] HRESULT FreeDiskSpacePercentError ([out, retval] ULONG * aFreeDiskSpacePercentError);
    [propput] HRESULT FreeDiskSpacePercentError ([in] ULONG aFreeDiskSpacePercentError);

    [propget] HRESULT RemoteDisplayAuthLibrary ([out, retval] BSTR * aRemoteDisplayAuthLibrary);
    [propput] HRESULT RemoteDisplayAuthLibrary ([in] BSTR aRemoteDisplayAuthLibrary);

    [propget] HRESULT WebServiceAuthLibrary ([out, retval] BSTR * aWebServiceAuthLibrary);
    [propput] HRESULT WebServiceAuthLibrary ([in] BSTR aWebServiceAuthLibrary);

    [propget] HRESULT LogHistoryCount ([out, retval] ULONG * aLogHistoryCount);
    [propput] HRESULT LogHistoryCount ([in] ULONG aLogHistoryCount);

    [propget] HRESULT DefaultAudioDriver ([out, retval] AudioDriverType * aDefaultAudioDriver);

    HRESULT GetMaxDevicesPerPortForStorageBus (
        [in] StorageBus aBus,
        [out, retval] ULONG * aMaxDevicesPerPort
    );

    HRESULT GetMinPortCountForStorageBus (
        [in] StorageBus aBus,
        [out, retval] ULONG * aMinPortCount
    );

    HRESULT GetMaxPortCountForStorageBus (
        [in] StorageBus aBus,
        [out, retval] ULONG * aMaxPortCount
    );

    HRESULT GetMaxInstancesOfStorageBus (
        [in] StorageBus aBus,
        [out, retval] ULONG * aMaxInstances
    );

    HRESULT GetDeviceTypesForStorageBus (
        [in] StorageBus aBus,
        [out, retval] SAFEARRAY(DeviceType) * aDeviceTypes
    );

}; /* interface ISystemProperties */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_MinGuestRAM_TO(smth) HRESULT STDMETHODCALLTYPE get_MinGuestRAM (ULONG * aMinGuestRAM) { return smth get_MinGuestRAM (aMinGuestRAM); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_MinGuestRAM_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_MinGuestRAM_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_MinGuestRAM_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_MinGuestRAM_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_MaxGuestRAM_TO(smth) HRESULT STDMETHODCALLTYPE get_MaxGuestRAM (ULONG * aMaxGuestRAM) { return smth get_MaxGuestRAM (aMaxGuestRAM); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_MaxGuestRAM_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_MaxGuestRAM_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_MaxGuestRAM_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_MaxGuestRAM_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_MinGuestVRAM_TO(smth) HRESULT STDMETHODCALLTYPE get_MinGuestVRAM (ULONG * aMinGuestVRAM) { return smth get_MinGuestVRAM (aMinGuestVRAM); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_MinGuestVRAM_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_MinGuestVRAM_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_MinGuestVRAM_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_MinGuestVRAM_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_MaxGuestVRAM_TO(smth) HRESULT STDMETHODCALLTYPE get_MaxGuestVRAM (ULONG * aMaxGuestVRAM) { return smth get_MaxGuestVRAM (aMaxGuestVRAM); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_MaxGuestVRAM_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_MaxGuestVRAM_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_MaxGuestVRAM_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_MaxGuestVRAM_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_MinGuestCPUCount_TO(smth) HRESULT STDMETHODCALLTYPE get_MinGuestCPUCount (ULONG * aMinGuestCPUCount) { return smth get_MinGuestCPUCount (aMinGuestCPUCount); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_MinGuestCPUCount_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_MinGuestCPUCount_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_MinGuestCPUCount_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_MinGuestCPUCount_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_MaxGuestCPUCount_TO(smth) HRESULT STDMETHODCALLTYPE get_MaxGuestCPUCount (ULONG * aMaxGuestCPUCount) { return smth get_MaxGuestCPUCount (aMaxGuestCPUCount); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_MaxGuestCPUCount_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_MaxGuestCPUCount_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_MaxGuestCPUCount_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_MaxGuestCPUCount_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_MaxGuestMonitors_TO(smth) HRESULT STDMETHODCALLTYPE get_MaxGuestMonitors (ULONG * aMaxGuestMonitors) { return smth get_MaxGuestMonitors (aMaxGuestMonitors); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_MaxGuestMonitors_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_MaxGuestMonitors_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_MaxGuestMonitors_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_MaxGuestMonitors_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_MaxVDISize_TO(smth) HRESULT STDMETHODCALLTYPE get_MaxVDISize (ULONG64 * aMaxVDISize) { return smth get_MaxVDISize (aMaxVDISize); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_MaxVDISize_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_MaxVDISize_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_MaxVDISize_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_MaxVDISize_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_NetworkAdapterCount_TO(smth) HRESULT STDMETHODCALLTYPE get_NetworkAdapterCount (ULONG * aNetworkAdapterCount) { return smth get_NetworkAdapterCount (aNetworkAdapterCount); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_NetworkAdapterCount_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_NetworkAdapterCount_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_NetworkAdapterCount_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_NetworkAdapterCount_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_SerialPortCount_TO(smth) HRESULT STDMETHODCALLTYPE get_SerialPortCount (ULONG * aSerialPortCount) { return smth get_SerialPortCount (aSerialPortCount); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_SerialPortCount_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_SerialPortCount_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_SerialPortCount_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_SerialPortCount_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_ParallelPortCount_TO(smth) HRESULT STDMETHODCALLTYPE get_ParallelPortCount (ULONG * aParallelPortCount) { return smth get_ParallelPortCount (aParallelPortCount); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_ParallelPortCount_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_ParallelPortCount_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_ParallelPortCount_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_ParallelPortCount_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_MaxBootPosition_TO(smth) HRESULT STDMETHODCALLTYPE get_MaxBootPosition (ULONG * aMaxBootPosition) { return smth get_MaxBootPosition (aMaxBootPosition); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_MaxBootPosition_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_MaxBootPosition_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_MaxBootPosition_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_MaxBootPosition_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_DefaultMachineFolder_TO(smth) HRESULT STDMETHODCALLTYPE get_DefaultMachineFolder (BSTR * aDefaultMachineFolder) { return smth get_DefaultMachineFolder (aDefaultMachineFolder); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_DefaultMachineFolder_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_DefaultMachineFolder_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_DefaultMachineFolder_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_DefaultMachineFolder_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_SETTER_DefaultMachineFolder_TO(smth) HRESULT STDMETHODCALLTYPE put_DefaultMachineFolder (BSTR aDefaultMachineFolder) { return smth put_DefaultMachineFolder (aDefaultMachineFolder); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_SETTER_DefaultMachineFolder_TO_OBJ(obj) COM_FORWARD_ISystemProperties_SETTER_DefaultMachineFolder_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_SETTER_DefaultMachineFolder_TO_BASE(base) COM_FORWARD_ISystemProperties_SETTER_DefaultMachineFolder_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_DefaultHardDiskFolder_TO(smth) HRESULT STDMETHODCALLTYPE get_DefaultHardDiskFolder (BSTR * aDefaultHardDiskFolder) { return smth get_DefaultHardDiskFolder (aDefaultHardDiskFolder); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_DefaultHardDiskFolder_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_DefaultHardDiskFolder_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_DefaultHardDiskFolder_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_DefaultHardDiskFolder_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_SETTER_DefaultHardDiskFolder_TO(smth) HRESULT STDMETHODCALLTYPE put_DefaultHardDiskFolder (BSTR aDefaultHardDiskFolder) { return smth put_DefaultHardDiskFolder (aDefaultHardDiskFolder); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_SETTER_DefaultHardDiskFolder_TO_OBJ(obj) COM_FORWARD_ISystemProperties_SETTER_DefaultHardDiskFolder_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_SETTER_DefaultHardDiskFolder_TO_BASE(base) COM_FORWARD_ISystemProperties_SETTER_DefaultHardDiskFolder_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_MediumFormats_TO(smth) HRESULT STDMETHODCALLTYPE get_MediumFormats (SAFEARRAY * * aMediumFormats) { return smth get_MediumFormats (aMediumFormats); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_MediumFormats_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_MediumFormats_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_MediumFormats_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_MediumFormats_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_DefaultHardDiskFormat_TO(smth) HRESULT STDMETHODCALLTYPE get_DefaultHardDiskFormat (BSTR * aDefaultHardDiskFormat) { return smth get_DefaultHardDiskFormat (aDefaultHardDiskFormat); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_DefaultHardDiskFormat_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_DefaultHardDiskFormat_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_DefaultHardDiskFormat_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_DefaultHardDiskFormat_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_SETTER_DefaultHardDiskFormat_TO(smth) HRESULT STDMETHODCALLTYPE put_DefaultHardDiskFormat (BSTR aDefaultHardDiskFormat) { return smth put_DefaultHardDiskFormat (aDefaultHardDiskFormat); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_SETTER_DefaultHardDiskFormat_TO_OBJ(obj) COM_FORWARD_ISystemProperties_SETTER_DefaultHardDiskFormat_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_SETTER_DefaultHardDiskFormat_TO_BASE(base) COM_FORWARD_ISystemProperties_SETTER_DefaultHardDiskFormat_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpaceWarning_TO(smth) HRESULT STDMETHODCALLTYPE get_FreeDiskSpaceWarning (ULONG64 * aFreeDiskSpaceWarning) { return smth get_FreeDiskSpaceWarning (aFreeDiskSpaceWarning); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpaceWarning_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpaceWarning_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpaceWarning_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpaceWarning_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpaceWarning_TO(smth) HRESULT STDMETHODCALLTYPE put_FreeDiskSpaceWarning (ULONG64 aFreeDiskSpaceWarning) { return smth put_FreeDiskSpaceWarning (aFreeDiskSpaceWarning); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpaceWarning_TO_OBJ(obj) COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpaceWarning_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpaceWarning_TO_BASE(base) COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpaceWarning_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpacePercentWarning_TO(smth) HRESULT STDMETHODCALLTYPE get_FreeDiskSpacePercentWarning (ULONG * aFreeDiskSpacePercentWarning) { return smth get_FreeDiskSpacePercentWarning (aFreeDiskSpacePercentWarning); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpacePercentWarning_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpacePercentWarning_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpacePercentWarning_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpacePercentWarning_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpacePercentWarning_TO(smth) HRESULT STDMETHODCALLTYPE put_FreeDiskSpacePercentWarning (ULONG aFreeDiskSpacePercentWarning) { return smth put_FreeDiskSpacePercentWarning (aFreeDiskSpacePercentWarning); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpacePercentWarning_TO_OBJ(obj) COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpacePercentWarning_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpacePercentWarning_TO_BASE(base) COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpacePercentWarning_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpaceError_TO(smth) HRESULT STDMETHODCALLTYPE get_FreeDiskSpaceError (ULONG64 * aFreeDiskSpaceError) { return smth get_FreeDiskSpaceError (aFreeDiskSpaceError); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpaceError_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpaceError_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpaceError_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpaceError_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpaceError_TO(smth) HRESULT STDMETHODCALLTYPE put_FreeDiskSpaceError (ULONG64 aFreeDiskSpaceError) { return smth put_FreeDiskSpaceError (aFreeDiskSpaceError); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpaceError_TO_OBJ(obj) COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpaceError_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpaceError_TO_BASE(base) COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpaceError_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpacePercentError_TO(smth) HRESULT STDMETHODCALLTYPE get_FreeDiskSpacePercentError (ULONG * aFreeDiskSpacePercentError) { return smth get_FreeDiskSpacePercentError (aFreeDiskSpacePercentError); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpacePercentError_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpacePercentError_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpacePercentError_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpacePercentError_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpacePercentError_TO(smth) HRESULT STDMETHODCALLTYPE put_FreeDiskSpacePercentError (ULONG aFreeDiskSpacePercentError) { return smth put_FreeDiskSpacePercentError (aFreeDiskSpacePercentError); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpacePercentError_TO_OBJ(obj) COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpacePercentError_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpacePercentError_TO_BASE(base) COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpacePercentError_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_RemoteDisplayAuthLibrary_TO(smth) HRESULT STDMETHODCALLTYPE get_RemoteDisplayAuthLibrary (BSTR * aRemoteDisplayAuthLibrary) { return smth get_RemoteDisplayAuthLibrary (aRemoteDisplayAuthLibrary); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_RemoteDisplayAuthLibrary_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_RemoteDisplayAuthLibrary_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_RemoteDisplayAuthLibrary_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_RemoteDisplayAuthLibrary_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_SETTER_RemoteDisplayAuthLibrary_TO(smth) HRESULT STDMETHODCALLTYPE put_RemoteDisplayAuthLibrary (BSTR aRemoteDisplayAuthLibrary) { return smth put_RemoteDisplayAuthLibrary (aRemoteDisplayAuthLibrary); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_SETTER_RemoteDisplayAuthLibrary_TO_OBJ(obj) COM_FORWARD_ISystemProperties_SETTER_RemoteDisplayAuthLibrary_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_SETTER_RemoteDisplayAuthLibrary_TO_BASE(base) COM_FORWARD_ISystemProperties_SETTER_RemoteDisplayAuthLibrary_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_WebServiceAuthLibrary_TO(smth) HRESULT STDMETHODCALLTYPE get_WebServiceAuthLibrary (BSTR * aWebServiceAuthLibrary) { return smth get_WebServiceAuthLibrary (aWebServiceAuthLibrary); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_WebServiceAuthLibrary_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_WebServiceAuthLibrary_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_WebServiceAuthLibrary_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_WebServiceAuthLibrary_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_SETTER_WebServiceAuthLibrary_TO(smth) HRESULT STDMETHODCALLTYPE put_WebServiceAuthLibrary (BSTR aWebServiceAuthLibrary) { return smth put_WebServiceAuthLibrary (aWebServiceAuthLibrary); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_SETTER_WebServiceAuthLibrary_TO_OBJ(obj) COM_FORWARD_ISystemProperties_SETTER_WebServiceAuthLibrary_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_SETTER_WebServiceAuthLibrary_TO_BASE(base) COM_FORWARD_ISystemProperties_SETTER_WebServiceAuthLibrary_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_LogHistoryCount_TO(smth) HRESULT STDMETHODCALLTYPE get_LogHistoryCount (ULONG * aLogHistoryCount) { return smth get_LogHistoryCount (aLogHistoryCount); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_LogHistoryCount_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_LogHistoryCount_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_LogHistoryCount_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_LogHistoryCount_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_SETTER_LogHistoryCount_TO(smth) HRESULT STDMETHODCALLTYPE put_LogHistoryCount (ULONG aLogHistoryCount) { return smth put_LogHistoryCount (aLogHistoryCount); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_SETTER_LogHistoryCount_TO_OBJ(obj) COM_FORWARD_ISystemProperties_SETTER_LogHistoryCount_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_SETTER_LogHistoryCount_TO_BASE(base) COM_FORWARD_ISystemProperties_SETTER_LogHistoryCount_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_DefaultAudioDriver_TO(smth) HRESULT STDMETHODCALLTYPE get_DefaultAudioDriver (AudioDriverType * aDefaultAudioDriver) { return smth get_DefaultAudioDriver (aDefaultAudioDriver); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_DefaultAudioDriver_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_DefaultAudioDriver_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_DefaultAudioDriver_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_DefaultAudioDriver_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GetMaxDevicesPerPortForStorageBus_TO(smth) HRESULT STDMETHODCALLTYPE GetMaxDevicesPerPortForStorageBus (StorageBus aBus, ULONG * aMaxDevicesPerPort) { return smth GetMaxDevicesPerPortForStorageBus (aBus, aMaxDevicesPerPort); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_GetMaxDevicesPerPortForStorageBus_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GetMaxDevicesPerPortForStorageBus_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GetMaxDevicesPerPortForStorageBus_TO_BASE(base) COM_FORWARD_ISystemProperties_GetMaxDevicesPerPortForStorageBus_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GetMinPortCountForStorageBus_TO(smth) HRESULT STDMETHODCALLTYPE GetMinPortCountForStorageBus (StorageBus aBus, ULONG * aMinPortCount) { return smth GetMinPortCountForStorageBus (aBus, aMinPortCount); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_GetMinPortCountForStorageBus_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GetMinPortCountForStorageBus_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GetMinPortCountForStorageBus_TO_BASE(base) COM_FORWARD_ISystemProperties_GetMinPortCountForStorageBus_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GetMaxPortCountForStorageBus_TO(smth) HRESULT STDMETHODCALLTYPE GetMaxPortCountForStorageBus (StorageBus aBus, ULONG * aMaxPortCount) { return smth GetMaxPortCountForStorageBus (aBus, aMaxPortCount); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_GetMaxPortCountForStorageBus_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GetMaxPortCountForStorageBus_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GetMaxPortCountForStorageBus_TO_BASE(base) COM_FORWARD_ISystemProperties_GetMaxPortCountForStorageBus_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GetMaxInstancesOfStorageBus_TO(smth) HRESULT STDMETHODCALLTYPE GetMaxInstancesOfStorageBus (StorageBus aBus, ULONG * aMaxInstances) { return smth GetMaxInstancesOfStorageBus (aBus, aMaxInstances); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_GetMaxInstancesOfStorageBus_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GetMaxInstancesOfStorageBus_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GetMaxInstancesOfStorageBus_TO_BASE(base) COM_FORWARD_ISystemProperties_GetMaxInstancesOfStorageBus_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GetDeviceTypesForStorageBus_TO(smth) HRESULT STDMETHODCALLTYPE GetDeviceTypesForStorageBus (StorageBus aBus, SAFEARRAY * * aDeviceTypes) { return smth GetDeviceTypesForStorageBus (aBus, aDeviceTypes); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_GetDeviceTypesForStorageBus_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GetDeviceTypesForStorageBus_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GetDeviceTypesForStorageBus_TO_BASE(base) COM_FORWARD_ISystemProperties_GetDeviceTypesForStorageBus_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_TO(smth) COM_FORWARD_ISystemProperties_GETTER_MinGuestRAM_TO (smth) COM_FORWARD_ISystemProperties_GETTER_MaxGuestRAM_TO (smth) COM_FORWARD_ISystemProperties_GETTER_MinGuestVRAM_TO (smth) COM_FORWARD_ISystemProperties_GETTER_MaxGuestVRAM_TO (smth) COM_FORWARD_ISystemProperties_GETTER_MinGuestCPUCount_TO (smth) COM_FORWARD_ISystemProperties_GETTER_MaxGuestCPUCount_TO (smth) COM_FORWARD_ISystemProperties_GETTER_MaxGuestMonitors_TO (smth) COM_FORWARD_ISystemProperties_GETTER_MaxVDISize_TO (smth) COM_FORWARD_ISystemProperties_GETTER_NetworkAdapterCount_TO (smth) COM_FORWARD_ISystemProperties_GETTER_SerialPortCount_TO (smth) COM_FORWARD_ISystemProperties_GETTER_ParallelPortCount_TO (smth) COM_FORWARD_ISystemProperties_GETTER_MaxBootPosition_TO (smth) COM_FORWARD_ISystemProperties_GETTER_DefaultMachineFolder_TO (smth) COM_FORWARD_ISystemProperties_SETTER_DefaultMachineFolder_TO (smth) COM_FORWARD_ISystemProperties_GETTER_DefaultHardDiskFolder_TO (smth) COM_FORWARD_ISystemProperties_SETTER_DefaultHardDiskFolder_TO (smth) COM_FORWARD_ISystemProperties_GETTER_MediumFormats_TO (smth) COM_FORWARD_ISystemProperties_GETTER_DefaultHardDiskFormat_TO (smth) COM_FORWARD_ISystemProperties_SETTER_DefaultHardDiskFormat_TO (smth) COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpaceWarning_TO (smth) COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpaceWarning_TO (smth) COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpacePercentWarning_TO (smth) COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpacePercentWarning_TO (smth) COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpaceError_TO (smth) COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpaceError_TO (smth) COM_FORWARD_ISystemProperties_GETTER_FreeDiskSpacePercentError_TO (smth) COM_FORWARD_ISystemProperties_SETTER_FreeDiskSpacePercentError_TO (smth) COM_FORWARD_ISystemProperties_GETTER_RemoteDisplayAuthLibrary_TO (smth) COM_FORWARD_ISystemProperties_SETTER_RemoteDisplayAuthLibrary_TO (smth) COM_FORWARD_ISystemProperties_GETTER_WebServiceAuthLibrary_TO (smth) COM_FORWARD_ISystemProperties_SETTER_WebServiceAuthLibrary_TO (smth) COM_FORWARD_ISystemProperties_GETTER_LogHistoryCount_TO (smth) COM_FORWARD_ISystemProperties_SETTER_LogHistoryCount_TO (smth) COM_FORWARD_ISystemProperties_GETTER_DefaultAudioDriver_TO (smth) COM_FORWARD_ISystemProperties_GetMaxDevicesPerPortForStorageBus_TO (smth) COM_FORWARD_ISystemProperties_GetMinPortCountForStorageBus_TO (smth) COM_FORWARD_ISystemProperties_GetMaxPortCountForStorageBus_TO (smth) COM_FORWARD_ISystemProperties_GetMaxInstancesOfStorageBus_TO (smth) COM_FORWARD_ISystemProperties_GetDeviceTypesForStorageBus_TO (smth) ")
cpp_quote("#define COM_FORWARD_ISystemProperties_TO_OBJ(obj) COM_FORWARD_ISystemProperties_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_TO_BASE(base) COM_FORWARD_ISystemProperties_TO (base::)")

[
    uuid(e3f6727e-a09b-41ea-a824-864a176472f3),
    object,
    dual,
    oleautomation
]
interface IGuestOSType : IDispatch
{
    [propget] HRESULT FamilyId ([out, retval] BSTR * aFamilyId);

    [propget] HRESULT FamilyDescription ([out, retval] BSTR * aFamilyDescription);

    [propget] HRESULT Id ([out, retval] BSTR * aId);

    [propget] HRESULT Description ([out, retval] BSTR * aDescription);

    [propget] HRESULT Is64Bit ([out, retval] BOOL * aIs64Bit);

    [propget] HRESULT RecommendedIOAPIC ([out, retval] BOOL * aRecommendedIOAPIC);

    [propget] HRESULT RecommendedVirtEx ([out, retval] BOOL * aRecommendedVirtEx);

    [propget] HRESULT RecommendedRAM ([out, retval] ULONG * aRecommendedRAM);

    [propget] HRESULT RecommendedVRAM ([out, retval] ULONG * aRecommendedVRAM);

    [propget] HRESULT RecommendedHDD ([out, retval] ULONG * aRecommendedHDD);

    [propget] HRESULT AdapterType ([out, retval] NetworkAdapterType * aAdapterType);

    [propget] HRESULT RecommendedPae ([out, retval] BOOL * aRecommendedPae);

    [propget] HRESULT RecommendedDvdStorageController ([out, retval] StorageControllerType * aRecommendedDvdStorageController);

    [propget] HRESULT RecommendedDvdStorageBus ([out, retval] StorageBus * aRecommendedDvdStorageBus);

    [propget] HRESULT RecommendedHdStorageController ([out, retval] StorageControllerType * aRecommendedHdStorageController);

    [propget] HRESULT RecommendedHdStorageBus ([out, retval] StorageBus * aRecommendedHdStorageBus);

    [propget] HRESULT RecommendedFirmware ([out, retval] FirmwareType * aRecommendedFirmware);

    [propget] HRESULT RecommendedUsbHid ([out, retval] BOOL * aRecommendedUsbHid);

    [propget] HRESULT RecommendedHpet ([out, retval] BOOL * aRecommendedHpet);

    [propget] HRESULT RecommendedUsbTablet ([out, retval] BOOL * aRecommendedUsbTablet);

    [propget] HRESULT RecommendedRtcUseUtc ([out, retval] BOOL * aRecommendedRtcUseUtc);

}; /* interface IGuestOSType */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_FamilyId_TO(smth) HRESULT STDMETHODCALLTYPE get_FamilyId (BSTR * aFamilyId) { return smth get_FamilyId (aFamilyId); }")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_FamilyId_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_FamilyId_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_FamilyId_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_FamilyId_TO (base::)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_FamilyDescription_TO(smth) HRESULT STDMETHODCALLTYPE get_FamilyDescription (BSTR * aFamilyDescription) { return smth get_FamilyDescription (aFamilyDescription); }")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_FamilyDescription_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_FamilyDescription_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_FamilyDescription_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_FamilyDescription_TO (base::)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_Id_TO(smth) HRESULT STDMETHODCALLTYPE get_Id (BSTR * aId) { return smth get_Id (aId); }")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_Id_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_Id_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_Id_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_Id_TO (base::)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_Description_TO(smth) HRESULT STDMETHODCALLTYPE get_Description (BSTR * aDescription) { return smth get_Description (aDescription); }")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_Description_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_Description_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_Description_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_Description_TO (base::)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_Is64Bit_TO(smth) HRESULT STDMETHODCALLTYPE get_Is64Bit (BOOL * aIs64Bit) { return smth get_Is64Bit (aIs64Bit); }")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_Is64Bit_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_Is64Bit_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_Is64Bit_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_Is64Bit_TO (base::)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedIOAPIC_TO(smth) HRESULT STDMETHODCALLTYPE get_RecommendedIOAPIC (BOOL * aRecommendedIOAPIC) { return smth get_RecommendedIOAPIC (aRecommendedIOAPIC); }")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedIOAPIC_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedIOAPIC_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedIOAPIC_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedIOAPIC_TO (base::)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedVirtEx_TO(smth) HRESULT STDMETHODCALLTYPE get_RecommendedVirtEx (BOOL * aRecommendedVirtEx) { return smth get_RecommendedVirtEx (aRecommendedVirtEx); }")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedVirtEx_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedVirtEx_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedVirtEx_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedVirtEx_TO (base::)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedRAM_TO(smth) HRESULT STDMETHODCALLTYPE get_RecommendedRAM (ULONG * aRecommendedRAM) { return smth get_RecommendedRAM (aRecommendedRAM); }")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedRAM_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedRAM_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedRAM_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedRAM_TO (base::)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedVRAM_TO(smth) HRESULT STDMETHODCALLTYPE get_RecommendedVRAM (ULONG * aRecommendedVRAM) { return smth get_RecommendedVRAM (aRecommendedVRAM); }")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedVRAM_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedVRAM_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedVRAM_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedVRAM_TO (base::)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedHDD_TO(smth) HRESULT STDMETHODCALLTYPE get_RecommendedHDD (ULONG * aRecommendedHDD) { return smth get_RecommendedHDD (aRecommendedHDD); }")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedHDD_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedHDD_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedHDD_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedHDD_TO (base::)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_AdapterType_TO(smth) HRESULT STDMETHODCALLTYPE get_AdapterType (NetworkAdapterType * aAdapterType) { return smth get_AdapterType (aAdapterType); }")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_AdapterType_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_AdapterType_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_AdapterType_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_AdapterType_TO (base::)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedPae_TO(smth) HRESULT STDMETHODCALLTYPE get_RecommendedPae (BOOL * aRecommendedPae) { return smth get_RecommendedPae (aRecommendedPae); }")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedPae_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedPae_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedPae_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedPae_TO (base::)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedDvdStorageController_TO(smth) HRESULT STDMETHODCALLTYPE get_RecommendedDvdStorageController (StorageControllerType * aRecommendedDvdStorageController) { return smth get_RecommendedDvdStorageController (aRecommendedDvdStorageController); }")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedDvdStorageController_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedDvdStorageController_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedDvdStorageController_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedDvdStorageController_TO (base::)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedDvdStorageBus_TO(smth) HRESULT STDMETHODCALLTYPE get_RecommendedDvdStorageBus (StorageBus * aRecommendedDvdStorageBus) { return smth get_RecommendedDvdStorageBus (aRecommendedDvdStorageBus); }")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedDvdStorageBus_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedDvdStorageBus_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedDvdStorageBus_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedDvdStorageBus_TO (base::)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedHdStorageController_TO(smth) HRESULT STDMETHODCALLTYPE get_RecommendedHdStorageController (StorageControllerType * aRecommendedHdStorageController) { return smth get_RecommendedHdStorageController (aRecommendedHdStorageController); }")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedHdStorageController_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedHdStorageController_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedHdStorageController_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedHdStorageController_TO (base::)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedHdStorageBus_TO(smth) HRESULT STDMETHODCALLTYPE get_RecommendedHdStorageBus (StorageBus * aRecommendedHdStorageBus) { return smth get_RecommendedHdStorageBus (aRecommendedHdStorageBus); }")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedHdStorageBus_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedHdStorageBus_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedHdStorageBus_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedHdStorageBus_TO (base::)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedFirmware_TO(smth) HRESULT STDMETHODCALLTYPE get_RecommendedFirmware (FirmwareType * aRecommendedFirmware) { return smth get_RecommendedFirmware (aRecommendedFirmware); }")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedFirmware_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedFirmware_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedFirmware_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedFirmware_TO (base::)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedUsbHid_TO(smth) HRESULT STDMETHODCALLTYPE get_RecommendedUsbHid (BOOL * aRecommendedUsbHid) { return smth get_RecommendedUsbHid (aRecommendedUsbHid); }")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedUsbHid_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedUsbHid_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedUsbHid_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedUsbHid_TO (base::)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedHpet_TO(smth) HRESULT STDMETHODCALLTYPE get_RecommendedHpet (BOOL * aRecommendedHpet) { return smth get_RecommendedHpet (aRecommendedHpet); }")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedHpet_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedHpet_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedHpet_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedHpet_TO (base::)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedUsbTablet_TO(smth) HRESULT STDMETHODCALLTYPE get_RecommendedUsbTablet (BOOL * aRecommendedUsbTablet) { return smth get_RecommendedUsbTablet (aRecommendedUsbTablet); }")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedUsbTablet_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedUsbTablet_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedUsbTablet_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedUsbTablet_TO (base::)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedRtcUseUtc_TO(smth) HRESULT STDMETHODCALLTYPE get_RecommendedRtcUseUtc (BOOL * aRecommendedRtcUseUtc) { return smth get_RecommendedRtcUseUtc (aRecommendedRtcUseUtc); }")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedRtcUseUtc_TO_OBJ(obj) COM_FORWARD_IGuestOSType_GETTER_RecommendedRtcUseUtc_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuestOSType_GETTER_RecommendedRtcUseUtc_TO_BASE(base) COM_FORWARD_IGuestOSType_GETTER_RecommendedRtcUseUtc_TO (base::)")
cpp_quote("#define COM_FORWARD_IGuestOSType_TO(smth) COM_FORWARD_IGuestOSType_GETTER_FamilyId_TO (smth) COM_FORWARD_IGuestOSType_GETTER_FamilyDescription_TO (smth) COM_FORWARD_IGuestOSType_GETTER_Id_TO (smth) COM_FORWARD_IGuestOSType_GETTER_Description_TO (smth) COM_FORWARD_IGuestOSType_GETTER_Is64Bit_TO (smth) COM_FORWARD_IGuestOSType_GETTER_RecommendedIOAPIC_TO (smth) COM_FORWARD_IGuestOSType_GETTER_RecommendedVirtEx_TO (smth) COM_FORWARD_IGuestOSType_GETTER_RecommendedRAM_TO (smth) COM_FORWARD_IGuestOSType_GETTER_RecommendedVRAM_TO (smth) COM_FORWARD_IGuestOSType_GETTER_RecommendedHDD_TO (smth) COM_FORWARD_IGuestOSType_GETTER_AdapterType_TO (smth) COM_FORWARD_IGuestOSType_GETTER_RecommendedPae_TO (smth) COM_FORWARD_IGuestOSType_GETTER_RecommendedDvdStorageController_TO (smth) COM_FORWARD_IGuestOSType_GETTER_RecommendedDvdStorageBus_TO (smth) COM_FORWARD_IGuestOSType_GETTER_RecommendedHdStorageController_TO (smth) COM_FORWARD_IGuestOSType_GETTER_RecommendedHdStorageBus_TO (smth) COM_FORWARD_IGuestOSType_GETTER_RecommendedFirmware_TO (smth) COM_FORWARD_IGuestOSType_GETTER_RecommendedUsbHid_TO (smth) COM_FORWARD_IGuestOSType_GETTER_RecommendedHpet_TO (smth) COM_FORWARD_IGuestOSType_GETTER_RecommendedUsbTablet_TO (smth) COM_FORWARD_IGuestOSType_GETTER_RecommendedRtcUseUtc_TO (smth) ")
cpp_quote("#define COM_FORWARD_IGuestOSType_TO_OBJ(obj) COM_FORWARD_IGuestOSType_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuestOSType_TO_BASE(base) COM_FORWARD_IGuestOSType_TO (base::)")

[
    uuid(d915dff1-ed38-495a-91f1-ab6c53932468),
    object,
    dual,
    oleautomation
]
interface IGuest : IDispatch
{
    [propget] HRESULT OSTypeId ([out, retval] BSTR * aOSTypeId);

    [propget] HRESULT AdditionsActive ([out, retval] BOOL * aAdditionsActive);

    [propget] HRESULT AdditionsVersion ([out, retval] BSTR * aAdditionsVersion);

    [propget] HRESULT SupportsSeamless ([out, retval] BOOL * aSupportsSeamless);

    [propget] HRESULT SupportsGraphics ([out, retval] BOOL * aSupportsGraphics);

    [propget] HRESULT MemoryBalloonSize ([out, retval] ULONG * aMemoryBalloonSize);
    [propput] HRESULT MemoryBalloonSize ([in] ULONG aMemoryBalloonSize);

    [propget] HRESULT PageFusionEnabled ([out, retval] BOOL * aPageFusionEnabled);
    [propput] HRESULT PageFusionEnabled ([in] BOOL aPageFusionEnabled);

    [propget] HRESULT StatisticsUpdateInterval ([out, retval] ULONG * aStatisticsUpdateInterval);
    [propput] HRESULT StatisticsUpdateInterval ([in] ULONG aStatisticsUpdateInterval);

    HRESULT InternalGetStatistics (
        [out] ULONG * aCpuUser,
        [out] ULONG * aCpuKernel,
        [out] ULONG * aCpuIdle,
        [out] ULONG * aMemTotal,
        [out] ULONG * aMemFree,
        [out] ULONG * aMemBalloon,
        [out] ULONG * aMemShared,
        [out] ULONG * aMemCache,
        [out] ULONG * aPagedTotal,
        [out] ULONG * aMemAllocTotal,
        [out] ULONG * aMemFreeTotal,
        [out] ULONG * aMemBalloonTotal,
        [out] ULONG * aMemSharedTotal
    );

    HRESULT SetCredentials (
        [in] BSTR aUserName,
        [in] BSTR aPassword,
        [in] BSTR aDomain,
        [in] BOOL aAllowInteractiveLogon
    );

    HRESULT ExecuteProcess (
        [in] BSTR aExecName,
        [in] ULONG aFlags,
        [in, out] SAFEARRAY(BSTR) * aArguments,
        [in, out] SAFEARRAY(BSTR) * aEnvironment,
        [in] BSTR aUserName,
        [in] BSTR aPassword,
        [in] ULONG aTimeoutMS,
        [out] ULONG * aPid,
        [out, retval] IProgress * * aProgress
    );

    HRESULT GetProcessOutput (
        [in] ULONG aPid,
        [in] ULONG aFlags,
        [in] ULONG aTimeoutMS,
        [in] ULONG64 aSize,
        [out, retval] SAFEARRAY(BYTE) * aData
    );

    HRESULT GetProcessStatus (
        [in] ULONG aPid,
        [out] ULONG * aExitcode,
        [out] ULONG * aFlags,
        [out, retval] ULONG * aReason
    );

}; /* interface IGuest */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IGuest_GETTER_OSTypeId_TO(smth) HRESULT STDMETHODCALLTYPE get_OSTypeId (BSTR * aOSTypeId) { return smth get_OSTypeId (aOSTypeId); }")
cpp_quote("#define COM_FORWARD_IGuest_GETTER_OSTypeId_TO_OBJ(obj) COM_FORWARD_IGuest_GETTER_OSTypeId_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuest_GETTER_OSTypeId_TO_BASE(base) COM_FORWARD_IGuest_GETTER_OSTypeId_TO (base::)")
cpp_quote("#define COM_FORWARD_IGuest_GETTER_AdditionsActive_TO(smth) HRESULT STDMETHODCALLTYPE get_AdditionsActive (BOOL * aAdditionsActive) { return smth get_AdditionsActive (aAdditionsActive); }")
cpp_quote("#define COM_FORWARD_IGuest_GETTER_AdditionsActive_TO_OBJ(obj) COM_FORWARD_IGuest_GETTER_AdditionsActive_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuest_GETTER_AdditionsActive_TO_BASE(base) COM_FORWARD_IGuest_GETTER_AdditionsActive_TO (base::)")
cpp_quote("#define COM_FORWARD_IGuest_GETTER_AdditionsVersion_TO(smth) HRESULT STDMETHODCALLTYPE get_AdditionsVersion (BSTR * aAdditionsVersion) { return smth get_AdditionsVersion (aAdditionsVersion); }")
cpp_quote("#define COM_FORWARD_IGuest_GETTER_AdditionsVersion_TO_OBJ(obj) COM_FORWARD_IGuest_GETTER_AdditionsVersion_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuest_GETTER_AdditionsVersion_TO_BASE(base) COM_FORWARD_IGuest_GETTER_AdditionsVersion_TO (base::)")
cpp_quote("#define COM_FORWARD_IGuest_GETTER_SupportsSeamless_TO(smth) HRESULT STDMETHODCALLTYPE get_SupportsSeamless (BOOL * aSupportsSeamless) { return smth get_SupportsSeamless (aSupportsSeamless); }")
cpp_quote("#define COM_FORWARD_IGuest_GETTER_SupportsSeamless_TO_OBJ(obj) COM_FORWARD_IGuest_GETTER_SupportsSeamless_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuest_GETTER_SupportsSeamless_TO_BASE(base) COM_FORWARD_IGuest_GETTER_SupportsSeamless_TO (base::)")
cpp_quote("#define COM_FORWARD_IGuest_GETTER_SupportsGraphics_TO(smth) HRESULT STDMETHODCALLTYPE get_SupportsGraphics (BOOL * aSupportsGraphics) { return smth get_SupportsGraphics (aSupportsGraphics); }")
cpp_quote("#define COM_FORWARD_IGuest_GETTER_SupportsGraphics_TO_OBJ(obj) COM_FORWARD_IGuest_GETTER_SupportsGraphics_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuest_GETTER_SupportsGraphics_TO_BASE(base) COM_FORWARD_IGuest_GETTER_SupportsGraphics_TO (base::)")
cpp_quote("#define COM_FORWARD_IGuest_GETTER_MemoryBalloonSize_TO(smth) HRESULT STDMETHODCALLTYPE get_MemoryBalloonSize (ULONG * aMemoryBalloonSize) { return smth get_MemoryBalloonSize (aMemoryBalloonSize); }")
cpp_quote("#define COM_FORWARD_IGuest_GETTER_MemoryBalloonSize_TO_OBJ(obj) COM_FORWARD_IGuest_GETTER_MemoryBalloonSize_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuest_GETTER_MemoryBalloonSize_TO_BASE(base) COM_FORWARD_IGuest_GETTER_MemoryBalloonSize_TO (base::)")
cpp_quote("#define COM_FORWARD_IGuest_SETTER_MemoryBalloonSize_TO(smth) HRESULT STDMETHODCALLTYPE put_MemoryBalloonSize (ULONG aMemoryBalloonSize) { return smth put_MemoryBalloonSize (aMemoryBalloonSize); }")
cpp_quote("#define COM_FORWARD_IGuest_SETTER_MemoryBalloonSize_TO_OBJ(obj) COM_FORWARD_IGuest_SETTER_MemoryBalloonSize_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuest_SETTER_MemoryBalloonSize_TO_BASE(base) COM_FORWARD_IGuest_SETTER_MemoryBalloonSize_TO (base::)")
cpp_quote("#define COM_FORWARD_IGuest_GETTER_PageFusionEnabled_TO(smth) HRESULT STDMETHODCALLTYPE get_PageFusionEnabled (BOOL * aPageFusionEnabled) { return smth get_PageFusionEnabled (aPageFusionEnabled); }")
cpp_quote("#define COM_FORWARD_IGuest_GETTER_PageFusionEnabled_TO_OBJ(obj) COM_FORWARD_IGuest_GETTER_PageFusionEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuest_GETTER_PageFusionEnabled_TO_BASE(base) COM_FORWARD_IGuest_GETTER_PageFusionEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IGuest_SETTER_PageFusionEnabled_TO(smth) HRESULT STDMETHODCALLTYPE put_PageFusionEnabled (BOOL aPageFusionEnabled) { return smth put_PageFusionEnabled (aPageFusionEnabled); }")
cpp_quote("#define COM_FORWARD_IGuest_SETTER_PageFusionEnabled_TO_OBJ(obj) COM_FORWARD_IGuest_SETTER_PageFusionEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuest_SETTER_PageFusionEnabled_TO_BASE(base) COM_FORWARD_IGuest_SETTER_PageFusionEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IGuest_GETTER_StatisticsUpdateInterval_TO(smth) HRESULT STDMETHODCALLTYPE get_StatisticsUpdateInterval (ULONG * aStatisticsUpdateInterval) { return smth get_StatisticsUpdateInterval (aStatisticsUpdateInterval); }")
cpp_quote("#define COM_FORWARD_IGuest_GETTER_StatisticsUpdateInterval_TO_OBJ(obj) COM_FORWARD_IGuest_GETTER_StatisticsUpdateInterval_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuest_GETTER_StatisticsUpdateInterval_TO_BASE(base) COM_FORWARD_IGuest_GETTER_StatisticsUpdateInterval_TO (base::)")
cpp_quote("#define COM_FORWARD_IGuest_SETTER_StatisticsUpdateInterval_TO(smth) HRESULT STDMETHODCALLTYPE put_StatisticsUpdateInterval (ULONG aStatisticsUpdateInterval) { return smth put_StatisticsUpdateInterval (aStatisticsUpdateInterval); }")
cpp_quote("#define COM_FORWARD_IGuest_SETTER_StatisticsUpdateInterval_TO_OBJ(obj) COM_FORWARD_IGuest_SETTER_StatisticsUpdateInterval_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuest_SETTER_StatisticsUpdateInterval_TO_BASE(base) COM_FORWARD_IGuest_SETTER_StatisticsUpdateInterval_TO (base::)")
cpp_quote("#define COM_FORWARD_IGuest_InternalGetStatistics_TO(smth) HRESULT STDMETHODCALLTYPE InternalGetStatistics (ULONG * aCpuUser, ULONG * aCpuKernel, ULONG * aCpuIdle, ULONG * aMemTotal, ULONG * aMemFree, ULONG * aMemBalloon, ULONG * aMemShared, ULONG * aMemCache, ULONG * aPagedTotal, ULONG * aMemAllocTotal, ULONG * aMemFreeTotal, ULONG * aMemBalloonTotal, ULONG * aMemSharedTotal) { return smth InternalGetStatistics (aCpuUser, aCpuKernel, aCpuIdle, aMemTotal, aMemFree, aMemBalloon, aMemShared, aMemCache, aPagedTotal, aMemAllocTotal, aMemFreeTotal, aMemBalloonTotal, aMemSharedTotal); }")
cpp_quote("#define COM_FORWARD_IGuest_InternalGetStatistics_TO_OBJ(obj) COM_FORWARD_IGuest_InternalGetStatistics_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuest_InternalGetStatistics_TO_BASE(base) COM_FORWARD_IGuest_InternalGetStatistics_TO (base::)")
cpp_quote("#define COM_FORWARD_IGuest_SetCredentials_TO(smth) HRESULT STDMETHODCALLTYPE SetCredentials (BSTR aUserName, BSTR aPassword, BSTR aDomain, BOOL aAllowInteractiveLogon) { return smth SetCredentials (aUserName, aPassword, aDomain, aAllowInteractiveLogon); }")
cpp_quote("#define COM_FORWARD_IGuest_SetCredentials_TO_OBJ(obj) COM_FORWARD_IGuest_SetCredentials_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuest_SetCredentials_TO_BASE(base) COM_FORWARD_IGuest_SetCredentials_TO (base::)")
cpp_quote("#define COM_FORWARD_IGuest_ExecuteProcess_TO(smth) HRESULT STDMETHODCALLTYPE ExecuteProcess (BSTR aExecName, ULONG aFlags, SAFEARRAY * * aArguments, SAFEARRAY * * aEnvironment, BSTR aUserName, BSTR aPassword, ULONG aTimeoutMS, ULONG * aPid, IProgress * * aProgress) { return smth ExecuteProcess (aExecName, aFlags, aArguments, aEnvironment, aUserName, aPassword, aTimeoutMS, aPid, aProgress); }")
cpp_quote("#define COM_FORWARD_IGuest_ExecuteProcess_TO_OBJ(obj) COM_FORWARD_IGuest_ExecuteProcess_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuest_ExecuteProcess_TO_BASE(base) COM_FORWARD_IGuest_ExecuteProcess_TO (base::)")
cpp_quote("#define COM_FORWARD_IGuest_GetProcessOutput_TO(smth) HRESULT STDMETHODCALLTYPE GetProcessOutput (ULONG aPid, ULONG aFlags, ULONG aTimeoutMS, ULONG64 aSize, SAFEARRAY * * aData) { return smth GetProcessOutput (aPid, aFlags, aTimeoutMS, aSize, aData); }")
cpp_quote("#define COM_FORWARD_IGuest_GetProcessOutput_TO_OBJ(obj) COM_FORWARD_IGuest_GetProcessOutput_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuest_GetProcessOutput_TO_BASE(base) COM_FORWARD_IGuest_GetProcessOutput_TO (base::)")
cpp_quote("#define COM_FORWARD_IGuest_GetProcessStatus_TO(smth) HRESULT STDMETHODCALLTYPE GetProcessStatus (ULONG aPid, ULONG * aExitcode, ULONG * aFlags, ULONG * aReason) { return smth GetProcessStatus (aPid, aExitcode, aFlags, aReason); }")
cpp_quote("#define COM_FORWARD_IGuest_GetProcessStatus_TO_OBJ(obj) COM_FORWARD_IGuest_GetProcessStatus_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuest_GetProcessStatus_TO_BASE(base) COM_FORWARD_IGuest_GetProcessStatus_TO (base::)")
cpp_quote("#define COM_FORWARD_IGuest_TO(smth) COM_FORWARD_IGuest_GETTER_OSTypeId_TO (smth) COM_FORWARD_IGuest_GETTER_AdditionsActive_TO (smth) COM_FORWARD_IGuest_GETTER_AdditionsVersion_TO (smth) COM_FORWARD_IGuest_GETTER_SupportsSeamless_TO (smth) COM_FORWARD_IGuest_GETTER_SupportsGraphics_TO (smth) COM_FORWARD_IGuest_GETTER_MemoryBalloonSize_TO (smth) COM_FORWARD_IGuest_SETTER_MemoryBalloonSize_TO (smth) COM_FORWARD_IGuest_GETTER_PageFusionEnabled_TO (smth) COM_FORWARD_IGuest_SETTER_PageFusionEnabled_TO (smth) COM_FORWARD_IGuest_GETTER_StatisticsUpdateInterval_TO (smth) COM_FORWARD_IGuest_SETTER_StatisticsUpdateInterval_TO (smth) COM_FORWARD_IGuest_InternalGetStatistics_TO (smth) COM_FORWARD_IGuest_SetCredentials_TO (smth) COM_FORWARD_IGuest_ExecuteProcess_TO (smth) COM_FORWARD_IGuest_GetProcessOutput_TO (smth) COM_FORWARD_IGuest_GetProcessStatus_TO (smth) ")
cpp_quote("#define COM_FORWARD_IGuest_TO_OBJ(obj) COM_FORWARD_IGuest_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuest_TO_BASE(base) COM_FORWARD_IGuest_TO (base::)")

[
    uuid(856aa038-853f-42e2-acf7-6e7b02dbe294),
    object,
    dual,
    oleautomation
]
interface IProgress : IDispatch
{
    [propget] HRESULT Id ([out, retval] BSTR * aId);

    [propget] HRESULT Description ([out, retval] BSTR * aDescription);

    [propget] HRESULT Initiator ([out, retval] IUnknown * * aInitiator);

    [propget] HRESULT Cancelable ([out, retval] BOOL * aCancelable);

    [propget] HRESULT Percent ([out, retval] ULONG * aPercent);

    [propget] HRESULT TimeRemaining ([out, retval] LONG * aTimeRemaining);

    [propget] HRESULT Completed ([out, retval] BOOL * aCompleted);

    [propget] HRESULT Canceled ([out, retval] BOOL * aCanceled);

    [propget] HRESULT ResultCode ([out, retval] LONG * aResultCode);

    [propget] HRESULT ErrorInfo ([out, retval] IVirtualBoxErrorInfo * * aErrorInfo);

    [propget] HRESULT OperationCount ([out, retval] ULONG * aOperationCount);

    [propget] HRESULT Operation ([out, retval] ULONG * aOperation);

    [propget] HRESULT OperationDescription ([out, retval] BSTR * aOperationDescription);

    [propget] HRESULT OperationPercent ([out, retval] ULONG * aOperationPercent);

    [propget] HRESULT Timeout ([out, retval] ULONG * aTimeout);
    [propput] HRESULT Timeout ([in] ULONG aTimeout);

    HRESULT SetCurrentOperationProgress (
        [in] ULONG aPercent
    );

    HRESULT SetNextOperation (
        [in] BSTR aNextOperationDescription,
        [in] ULONG aNextOperationsWeight
    );

    HRESULT WaitForCompletion (
        [in] LONG aTimeout
    );

    HRESULT WaitForOperationCompletion (
        [in] ULONG aOperation,
        [in] LONG aTimeout
    );

    HRESULT Cancel();

}; /* interface IProgress */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IProgress_GETTER_Id_TO(smth) HRESULT STDMETHODCALLTYPE get_Id (BSTR * aId) { return smth get_Id (aId); }")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_Id_TO_OBJ(obj) COM_FORWARD_IProgress_GETTER_Id_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_Id_TO_BASE(base) COM_FORWARD_IProgress_GETTER_Id_TO (base::)")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_Description_TO(smth) HRESULT STDMETHODCALLTYPE get_Description (BSTR * aDescription) { return smth get_Description (aDescription); }")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_Description_TO_OBJ(obj) COM_FORWARD_IProgress_GETTER_Description_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_Description_TO_BASE(base) COM_FORWARD_IProgress_GETTER_Description_TO (base::)")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_Initiator_TO(smth) HRESULT STDMETHODCALLTYPE get_Initiator (IUnknown * * aInitiator) { return smth get_Initiator (aInitiator); }")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_Initiator_TO_OBJ(obj) COM_FORWARD_IProgress_GETTER_Initiator_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_Initiator_TO_BASE(base) COM_FORWARD_IProgress_GETTER_Initiator_TO (base::)")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_Cancelable_TO(smth) HRESULT STDMETHODCALLTYPE get_Cancelable (BOOL * aCancelable) { return smth get_Cancelable (aCancelable); }")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_Cancelable_TO_OBJ(obj) COM_FORWARD_IProgress_GETTER_Cancelable_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_Cancelable_TO_BASE(base) COM_FORWARD_IProgress_GETTER_Cancelable_TO (base::)")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_Percent_TO(smth) HRESULT STDMETHODCALLTYPE get_Percent (ULONG * aPercent) { return smth get_Percent (aPercent); }")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_Percent_TO_OBJ(obj) COM_FORWARD_IProgress_GETTER_Percent_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_Percent_TO_BASE(base) COM_FORWARD_IProgress_GETTER_Percent_TO (base::)")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_TimeRemaining_TO(smth) HRESULT STDMETHODCALLTYPE get_TimeRemaining (LONG * aTimeRemaining) { return smth get_TimeRemaining (aTimeRemaining); }")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_TimeRemaining_TO_OBJ(obj) COM_FORWARD_IProgress_GETTER_TimeRemaining_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_TimeRemaining_TO_BASE(base) COM_FORWARD_IProgress_GETTER_TimeRemaining_TO (base::)")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_Completed_TO(smth) HRESULT STDMETHODCALLTYPE get_Completed (BOOL * aCompleted) { return smth get_Completed (aCompleted); }")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_Completed_TO_OBJ(obj) COM_FORWARD_IProgress_GETTER_Completed_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_Completed_TO_BASE(base) COM_FORWARD_IProgress_GETTER_Completed_TO (base::)")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_Canceled_TO(smth) HRESULT STDMETHODCALLTYPE get_Canceled (BOOL * aCanceled) { return smth get_Canceled (aCanceled); }")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_Canceled_TO_OBJ(obj) COM_FORWARD_IProgress_GETTER_Canceled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_Canceled_TO_BASE(base) COM_FORWARD_IProgress_GETTER_Canceled_TO (base::)")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_ResultCode_TO(smth) HRESULT STDMETHODCALLTYPE get_ResultCode (LONG * aResultCode) { return smth get_ResultCode (aResultCode); }")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_ResultCode_TO_OBJ(obj) COM_FORWARD_IProgress_GETTER_ResultCode_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_ResultCode_TO_BASE(base) COM_FORWARD_IProgress_GETTER_ResultCode_TO (base::)")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_ErrorInfo_TO(smth) HRESULT STDMETHODCALLTYPE get_ErrorInfo (IVirtualBoxErrorInfo * * aErrorInfo) { return smth get_ErrorInfo (aErrorInfo); }")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_ErrorInfo_TO_OBJ(obj) COM_FORWARD_IProgress_GETTER_ErrorInfo_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_ErrorInfo_TO_BASE(base) COM_FORWARD_IProgress_GETTER_ErrorInfo_TO (base::)")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_OperationCount_TO(smth) HRESULT STDMETHODCALLTYPE get_OperationCount (ULONG * aOperationCount) { return smth get_OperationCount (aOperationCount); }")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_OperationCount_TO_OBJ(obj) COM_FORWARD_IProgress_GETTER_OperationCount_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_OperationCount_TO_BASE(base) COM_FORWARD_IProgress_GETTER_OperationCount_TO (base::)")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_Operation_TO(smth) HRESULT STDMETHODCALLTYPE get_Operation (ULONG * aOperation) { return smth get_Operation (aOperation); }")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_Operation_TO_OBJ(obj) COM_FORWARD_IProgress_GETTER_Operation_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_Operation_TO_BASE(base) COM_FORWARD_IProgress_GETTER_Operation_TO (base::)")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_OperationDescription_TO(smth) HRESULT STDMETHODCALLTYPE get_OperationDescription (BSTR * aOperationDescription) { return smth get_OperationDescription (aOperationDescription); }")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_OperationDescription_TO_OBJ(obj) COM_FORWARD_IProgress_GETTER_OperationDescription_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_OperationDescription_TO_BASE(base) COM_FORWARD_IProgress_GETTER_OperationDescription_TO (base::)")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_OperationPercent_TO(smth) HRESULT STDMETHODCALLTYPE get_OperationPercent (ULONG * aOperationPercent) { return smth get_OperationPercent (aOperationPercent); }")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_OperationPercent_TO_OBJ(obj) COM_FORWARD_IProgress_GETTER_OperationPercent_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_OperationPercent_TO_BASE(base) COM_FORWARD_IProgress_GETTER_OperationPercent_TO (base::)")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_Timeout_TO(smth) HRESULT STDMETHODCALLTYPE get_Timeout (ULONG * aTimeout) { return smth get_Timeout (aTimeout); }")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_Timeout_TO_OBJ(obj) COM_FORWARD_IProgress_GETTER_Timeout_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IProgress_GETTER_Timeout_TO_BASE(base) COM_FORWARD_IProgress_GETTER_Timeout_TO (base::)")
cpp_quote("#define COM_FORWARD_IProgress_SETTER_Timeout_TO(smth) HRESULT STDMETHODCALLTYPE put_Timeout (ULONG aTimeout) { return smth put_Timeout (aTimeout); }")
cpp_quote("#define COM_FORWARD_IProgress_SETTER_Timeout_TO_OBJ(obj) COM_FORWARD_IProgress_SETTER_Timeout_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IProgress_SETTER_Timeout_TO_BASE(base) COM_FORWARD_IProgress_SETTER_Timeout_TO (base::)")
cpp_quote("#define COM_FORWARD_IProgress_SetCurrentOperationProgress_TO(smth) HRESULT STDMETHODCALLTYPE SetCurrentOperationProgress (ULONG aPercent) { return smth SetCurrentOperationProgress (aPercent); }")
cpp_quote("#define COM_FORWARD_IProgress_SetCurrentOperationProgress_TO_OBJ(obj) COM_FORWARD_IProgress_SetCurrentOperationProgress_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IProgress_SetCurrentOperationProgress_TO_BASE(base) COM_FORWARD_IProgress_SetCurrentOperationProgress_TO (base::)")
cpp_quote("#define COM_FORWARD_IProgress_SetNextOperation_TO(smth) HRESULT STDMETHODCALLTYPE SetNextOperation (BSTR aNextOperationDescription, ULONG aNextOperationsWeight) { return smth SetNextOperation (aNextOperationDescription, aNextOperationsWeight); }")
cpp_quote("#define COM_FORWARD_IProgress_SetNextOperation_TO_OBJ(obj) COM_FORWARD_IProgress_SetNextOperation_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IProgress_SetNextOperation_TO_BASE(base) COM_FORWARD_IProgress_SetNextOperation_TO (base::)")
cpp_quote("#define COM_FORWARD_IProgress_WaitForCompletion_TO(smth) HRESULT STDMETHODCALLTYPE WaitForCompletion (LONG aTimeout) { return smth WaitForCompletion (aTimeout); }")
cpp_quote("#define COM_FORWARD_IProgress_WaitForCompletion_TO_OBJ(obj) COM_FORWARD_IProgress_WaitForCompletion_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IProgress_WaitForCompletion_TO_BASE(base) COM_FORWARD_IProgress_WaitForCompletion_TO (base::)")
cpp_quote("#define COM_FORWARD_IProgress_WaitForOperationCompletion_TO(smth) HRESULT STDMETHODCALLTYPE WaitForOperationCompletion (ULONG aOperation, LONG aTimeout) { return smth WaitForOperationCompletion (aOperation, aTimeout); }")
cpp_quote("#define COM_FORWARD_IProgress_WaitForOperationCompletion_TO_OBJ(obj) COM_FORWARD_IProgress_WaitForOperationCompletion_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IProgress_WaitForOperationCompletion_TO_BASE(base) COM_FORWARD_IProgress_WaitForOperationCompletion_TO (base::)")
cpp_quote("#define COM_FORWARD_IProgress_Cancel_TO(smth) HRESULT STDMETHODCALLTYPE Cancel() { return smth Cancel(); }")
cpp_quote("#define COM_FORWARD_IProgress_Cancel_TO_OBJ(obj) COM_FORWARD_IProgress_Cancel_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IProgress_Cancel_TO_BASE(base) COM_FORWARD_IProgress_Cancel_TO (base::)")
cpp_quote("#define COM_FORWARD_IProgress_TO(smth) COM_FORWARD_IProgress_GETTER_Id_TO (smth) COM_FORWARD_IProgress_GETTER_Description_TO (smth) COM_FORWARD_IProgress_GETTER_Initiator_TO (smth) COM_FORWARD_IProgress_GETTER_Cancelable_TO (smth) COM_FORWARD_IProgress_GETTER_Percent_TO (smth) COM_FORWARD_IProgress_GETTER_TimeRemaining_TO (smth) COM_FORWARD_IProgress_GETTER_Completed_TO (smth) COM_FORWARD_IProgress_GETTER_Canceled_TO (smth) COM_FORWARD_IProgress_GETTER_ResultCode_TO (smth) COM_FORWARD_IProgress_GETTER_ErrorInfo_TO (smth) COM_FORWARD_IProgress_GETTER_OperationCount_TO (smth) COM_FORWARD_IProgress_GETTER_Operation_TO (smth) COM_FORWARD_IProgress_GETTER_OperationDescription_TO (smth) COM_FORWARD_IProgress_GETTER_OperationPercent_TO (smth) COM_FORWARD_IProgress_GETTER_Timeout_TO (smth) COM_FORWARD_IProgress_SETTER_Timeout_TO (smth) COM_FORWARD_IProgress_SetCurrentOperationProgress_TO (smth) COM_FORWARD_IProgress_SetNextOperation_TO (smth) COM_FORWARD_IProgress_WaitForCompletion_TO (smth) COM_FORWARD_IProgress_WaitForOperationCompletion_TO (smth) COM_FORWARD_IProgress_Cancel_TO (smth) ")
cpp_quote("#define COM_FORWARD_IProgress_TO_OBJ(obj) COM_FORWARD_IProgress_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IProgress_TO_BASE(base) COM_FORWARD_IProgress_TO (base::)")

[
    uuid(1a2d0551-58a4-4107-857e-ef414fc42ffc),
    object,
    dual,
    oleautomation
]
interface ISnapshot : IDispatch
{
    [propget] HRESULT Id ([out, retval] BSTR * aId);

    [propget] HRESULT Name ([out, retval] BSTR * aName);
    [propput] HRESULT Name ([in] BSTR aName);

    [propget] HRESULT Description ([out, retval] BSTR * aDescription);
    [propput] HRESULT Description ([in] BSTR aDescription);

    [propget] HRESULT TimeStamp ([out, retval] LONG64 * aTimeStamp);

    [propget] HRESULT Online ([out, retval] BOOL * aOnline);

    [propget] HRESULT Machine ([out, retval] IMachine * * aMachine);

    [propget] HRESULT Parent ([out, retval] ISnapshot * * aParent);

    [propget] HRESULT Children ([out, retval] SAFEARRAY(ISnapshot *) * aChildren);

}; /* interface ISnapshot */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_ISnapshot_GETTER_Id_TO(smth) HRESULT STDMETHODCALLTYPE get_Id (BSTR * aId) { return smth get_Id (aId); }")
cpp_quote("#define COM_FORWARD_ISnapshot_GETTER_Id_TO_OBJ(obj) COM_FORWARD_ISnapshot_GETTER_Id_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISnapshot_GETTER_Id_TO_BASE(base) COM_FORWARD_ISnapshot_GETTER_Id_TO (base::)")
cpp_quote("#define COM_FORWARD_ISnapshot_GETTER_Name_TO(smth) HRESULT STDMETHODCALLTYPE get_Name (BSTR * aName) { return smth get_Name (aName); }")
cpp_quote("#define COM_FORWARD_ISnapshot_GETTER_Name_TO_OBJ(obj) COM_FORWARD_ISnapshot_GETTER_Name_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISnapshot_GETTER_Name_TO_BASE(base) COM_FORWARD_ISnapshot_GETTER_Name_TO (base::)")
cpp_quote("#define COM_FORWARD_ISnapshot_SETTER_Name_TO(smth) HRESULT STDMETHODCALLTYPE put_Name (BSTR aName) { return smth put_Name (aName); }")
cpp_quote("#define COM_FORWARD_ISnapshot_SETTER_Name_TO_OBJ(obj) COM_FORWARD_ISnapshot_SETTER_Name_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISnapshot_SETTER_Name_TO_BASE(base) COM_FORWARD_ISnapshot_SETTER_Name_TO (base::)")
cpp_quote("#define COM_FORWARD_ISnapshot_GETTER_Description_TO(smth) HRESULT STDMETHODCALLTYPE get_Description (BSTR * aDescription) { return smth get_Description (aDescription); }")
cpp_quote("#define COM_FORWARD_ISnapshot_GETTER_Description_TO_OBJ(obj) COM_FORWARD_ISnapshot_GETTER_Description_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISnapshot_GETTER_Description_TO_BASE(base) COM_FORWARD_ISnapshot_GETTER_Description_TO (base::)")
cpp_quote("#define COM_FORWARD_ISnapshot_SETTER_Description_TO(smth) HRESULT STDMETHODCALLTYPE put_Description (BSTR aDescription) { return smth put_Description (aDescription); }")
cpp_quote("#define COM_FORWARD_ISnapshot_SETTER_Description_TO_OBJ(obj) COM_FORWARD_ISnapshot_SETTER_Description_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISnapshot_SETTER_Description_TO_BASE(base) COM_FORWARD_ISnapshot_SETTER_Description_TO (base::)")
cpp_quote("#define COM_FORWARD_ISnapshot_GETTER_TimeStamp_TO(smth) HRESULT STDMETHODCALLTYPE get_TimeStamp (LONG64 * aTimeStamp) { return smth get_TimeStamp (aTimeStamp); }")
cpp_quote("#define COM_FORWARD_ISnapshot_GETTER_TimeStamp_TO_OBJ(obj) COM_FORWARD_ISnapshot_GETTER_TimeStamp_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISnapshot_GETTER_TimeStamp_TO_BASE(base) COM_FORWARD_ISnapshot_GETTER_TimeStamp_TO (base::)")
cpp_quote("#define COM_FORWARD_ISnapshot_GETTER_Online_TO(smth) HRESULT STDMETHODCALLTYPE get_Online (BOOL * aOnline) { return smth get_Online (aOnline); }")
cpp_quote("#define COM_FORWARD_ISnapshot_GETTER_Online_TO_OBJ(obj) COM_FORWARD_ISnapshot_GETTER_Online_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISnapshot_GETTER_Online_TO_BASE(base) COM_FORWARD_ISnapshot_GETTER_Online_TO (base::)")
cpp_quote("#define COM_FORWARD_ISnapshot_GETTER_Machine_TO(smth) HRESULT STDMETHODCALLTYPE get_Machine (IMachine * * aMachine) { return smth get_Machine (aMachine); }")
cpp_quote("#define COM_FORWARD_ISnapshot_GETTER_Machine_TO_OBJ(obj) COM_FORWARD_ISnapshot_GETTER_Machine_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISnapshot_GETTER_Machine_TO_BASE(base) COM_FORWARD_ISnapshot_GETTER_Machine_TO (base::)")
cpp_quote("#define COM_FORWARD_ISnapshot_GETTER_Parent_TO(smth) HRESULT STDMETHODCALLTYPE get_Parent (ISnapshot * * aParent) { return smth get_Parent (aParent); }")
cpp_quote("#define COM_FORWARD_ISnapshot_GETTER_Parent_TO_OBJ(obj) COM_FORWARD_ISnapshot_GETTER_Parent_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISnapshot_GETTER_Parent_TO_BASE(base) COM_FORWARD_ISnapshot_GETTER_Parent_TO (base::)")
cpp_quote("#define COM_FORWARD_ISnapshot_GETTER_Children_TO(smth) HRESULT STDMETHODCALLTYPE get_Children (SAFEARRAY * * aChildren) { return smth get_Children (aChildren); }")
cpp_quote("#define COM_FORWARD_ISnapshot_GETTER_Children_TO_OBJ(obj) COM_FORWARD_ISnapshot_GETTER_Children_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISnapshot_GETTER_Children_TO_BASE(base) COM_FORWARD_ISnapshot_GETTER_Children_TO (base::)")
cpp_quote("#define COM_FORWARD_ISnapshot_TO(smth) COM_FORWARD_ISnapshot_GETTER_Id_TO (smth) COM_FORWARD_ISnapshot_GETTER_Name_TO (smth) COM_FORWARD_ISnapshot_SETTER_Name_TO (smth) COM_FORWARD_ISnapshot_GETTER_Description_TO (smth) COM_FORWARD_ISnapshot_SETTER_Description_TO (smth) COM_FORWARD_ISnapshot_GETTER_TimeStamp_TO (smth) COM_FORWARD_ISnapshot_GETTER_Online_TO (smth) COM_FORWARD_ISnapshot_GETTER_Machine_TO (smth) COM_FORWARD_ISnapshot_GETTER_Parent_TO (smth) COM_FORWARD_ISnapshot_GETTER_Children_TO (smth) ")
cpp_quote("#define COM_FORWARD_ISnapshot_TO_OBJ(obj) COM_FORWARD_ISnapshot_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISnapshot_TO_BASE(base) COM_FORWARD_ISnapshot_TO (base::)")

[
    uuid(e58eb3eb-8627-428b-bdf8-34487c848de5),
    object,
    dual,
    oleautomation
]
interface IMediumAttachment : IDispatch
{
    [propget] HRESULT Medium ([out, retval] IMedium * * aMedium);

    [propget] HRESULT Controller ([out, retval] BSTR * aController);

    [propget] HRESULT Port ([out, retval] LONG * aPort);

    [propget] HRESULT Device ([out, retval] LONG * aDevice);

    [propget] HRESULT Type ([out, retval] DeviceType * aType);

    [propget] HRESULT Passthrough ([out, retval] BOOL * aPassthrough);

}; /* interface IMediumAttachment */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IMediumAttachment_GETTER_Medium_TO(smth) HRESULT STDMETHODCALLTYPE get_Medium (IMedium * * aMedium) { return smth get_Medium (aMedium); }")
cpp_quote("#define COM_FORWARD_IMediumAttachment_GETTER_Medium_TO_OBJ(obj) COM_FORWARD_IMediumAttachment_GETTER_Medium_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMediumAttachment_GETTER_Medium_TO_BASE(base) COM_FORWARD_IMediumAttachment_GETTER_Medium_TO (base::)")
cpp_quote("#define COM_FORWARD_IMediumAttachment_GETTER_Controller_TO(smth) HRESULT STDMETHODCALLTYPE get_Controller (BSTR * aController) { return smth get_Controller (aController); }")
cpp_quote("#define COM_FORWARD_IMediumAttachment_GETTER_Controller_TO_OBJ(obj) COM_FORWARD_IMediumAttachment_GETTER_Controller_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMediumAttachment_GETTER_Controller_TO_BASE(base) COM_FORWARD_IMediumAttachment_GETTER_Controller_TO (base::)")
cpp_quote("#define COM_FORWARD_IMediumAttachment_GETTER_Port_TO(smth) HRESULT STDMETHODCALLTYPE get_Port (LONG * aPort) { return smth get_Port (aPort); }")
cpp_quote("#define COM_FORWARD_IMediumAttachment_GETTER_Port_TO_OBJ(obj) COM_FORWARD_IMediumAttachment_GETTER_Port_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMediumAttachment_GETTER_Port_TO_BASE(base) COM_FORWARD_IMediumAttachment_GETTER_Port_TO (base::)")
cpp_quote("#define COM_FORWARD_IMediumAttachment_GETTER_Device_TO(smth) HRESULT STDMETHODCALLTYPE get_Device (LONG * aDevice) { return smth get_Device (aDevice); }")
cpp_quote("#define COM_FORWARD_IMediumAttachment_GETTER_Device_TO_OBJ(obj) COM_FORWARD_IMediumAttachment_GETTER_Device_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMediumAttachment_GETTER_Device_TO_BASE(base) COM_FORWARD_IMediumAttachment_GETTER_Device_TO (base::)")
cpp_quote("#define COM_FORWARD_IMediumAttachment_GETTER_Type_TO(smth) HRESULT STDMETHODCALLTYPE get_Type (DeviceType * aType) { return smth get_Type (aType); }")
cpp_quote("#define COM_FORWARD_IMediumAttachment_GETTER_Type_TO_OBJ(obj) COM_FORWARD_IMediumAttachment_GETTER_Type_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMediumAttachment_GETTER_Type_TO_BASE(base) COM_FORWARD_IMediumAttachment_GETTER_Type_TO (base::)")
cpp_quote("#define COM_FORWARD_IMediumAttachment_GETTER_Passthrough_TO(smth) HRESULT STDMETHODCALLTYPE get_Passthrough (BOOL * aPassthrough) { return smth get_Passthrough (aPassthrough); }")
cpp_quote("#define COM_FORWARD_IMediumAttachment_GETTER_Passthrough_TO_OBJ(obj) COM_FORWARD_IMediumAttachment_GETTER_Passthrough_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMediumAttachment_GETTER_Passthrough_TO_BASE(base) COM_FORWARD_IMediumAttachment_GETTER_Passthrough_TO (base::)")
cpp_quote("#define COM_FORWARD_IMediumAttachment_TO(smth) COM_FORWARD_IMediumAttachment_GETTER_Medium_TO (smth) COM_FORWARD_IMediumAttachment_GETTER_Controller_TO (smth) COM_FORWARD_IMediumAttachment_GETTER_Port_TO (smth) COM_FORWARD_IMediumAttachment_GETTER_Device_TO (smth) COM_FORWARD_IMediumAttachment_GETTER_Type_TO (smth) COM_FORWARD_IMediumAttachment_GETTER_Passthrough_TO (smth) ")
cpp_quote("#define COM_FORWARD_IMediumAttachment_TO_OBJ(obj) COM_FORWARD_IMediumAttachment_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMediumAttachment_TO_BASE(base) COM_FORWARD_IMediumAttachment_TO (base::)")

[
    uuid(1d578f43-5ef1-4415-b556-7592d3ccdc8f),
    object,
    dual,
    oleautomation
]
interface IMedium : IDispatch
{
    [propget] HRESULT Id ([out, retval] BSTR * aId);

    [propget] HRESULT Description ([out, retval] BSTR * aDescription);
    [propput] HRESULT Description ([in] BSTR aDescription);

    [propget] HRESULT State ([out, retval] MediumState * aState);

    [propget] HRESULT Location ([out, retval] BSTR * aLocation);
    [propput] HRESULT Location ([in] BSTR aLocation);

    [propget] HRESULT Name ([out, retval] BSTR * aName);

    [propget] HRESULT DeviceType ([out, retval] DeviceType * aDeviceType);

    [propget] HRESULT HostDrive ([out, retval] BOOL * aHostDrive);

    [propget] HRESULT Size ([out, retval] ULONG64 * aSize);

    [propget] HRESULT Format ([out, retval] BSTR * aFormat);

    [propget] HRESULT MediumFormat ([out, retval] IMediumFormat * * aMediumFormat);

    [propget] HRESULT Type ([out, retval] MediumType * aType);
    [propput] HRESULT Type ([in] MediumType aType);

    [propget] HRESULT Parent ([out, retval] IMedium * * aParent);

    [propget] HRESULT Children ([out, retval] SAFEARRAY(IMedium *) * aChildren);

    [propget] HRESULT Base ([out, retval] IMedium * * aBase);

    [propget] HRESULT ReadOnly ([out, retval] BOOL * aReadOnly);

    [propget] HRESULT LogicalSize ([out, retval] ULONG64 * aLogicalSize);

    [propget] HRESULT AutoReset ([out, retval] BOOL * aAutoReset);
    [propput] HRESULT AutoReset ([in] BOOL aAutoReset);

    [propget] HRESULT LastAccessError ([out, retval] BSTR * aLastAccessError);

    [propget] HRESULT MachineIds ([out, retval] SAFEARRAY(BSTR) * aMachineIds);

    HRESULT RefreshState (
        [out, retval] MediumState * aState
    );

    HRESULT GetSnapshotIds (
        [in] BSTR aMachineId,
        [out, retval] SAFEARRAY(BSTR) * aSnapshotIds
    );

    HRESULT LockRead (
        [out, retval] MediumState * aState
    );

    HRESULT UnlockRead (
        [out, retval] MediumState * aState
    );

    HRESULT LockWrite (
        [out, retval] MediumState * aState
    );

    HRESULT UnlockWrite (
        [out, retval] MediumState * aState
    );

    HRESULT Close();

    HRESULT GetProperty (
        [in] BSTR aName,
        [out, retval] BSTR * aValue
    );

    HRESULT SetProperty (
        [in] BSTR aName,
        [in] BSTR aValue
    );

    HRESULT GetProperties (
        [in] BSTR aNames,
        [out] SAFEARRAY(BSTR) * aReturnNames,
        [out, retval] SAFEARRAY(BSTR) * aReturnValues
    );

    HRESULT SetProperties (
        [in, out] SAFEARRAY(BSTR) * aNames,
        [in, out] SAFEARRAY(BSTR) * aValues
    );

    HRESULT CreateBaseStorage (
        [in] ULONG64 aLogicalSize,
        [in] MediumVariant aVariant,
        [out, retval] IProgress * * aProgress
    );

    HRESULT DeleteStorage (
        [out, retval] IProgress * * aProgress
    );

    HRESULT CreateDiffStorage (
        [in] IMedium * aTarget,
        [in] MediumVariant aVariant,
        [out, retval] IProgress * * aProgress
    );

    HRESULT MergeTo (
        [in] IMedium * aTarget,
        [out, retval] IProgress * * aProgress
    );

    HRESULT CloneTo (
        [in] IMedium * aTarget,
        [in] MediumVariant aVariant,
        [in] IMedium * aParent,
        [out, retval] IProgress * * aProgress
    );

    HRESULT Compact (
        [out, retval] IProgress * * aProgress
    );

    HRESULT Resize (
        [in] ULONG64 aLogicalSize,
        [out, retval] IProgress * * aProgress
    );

    HRESULT Reset (
        [out, retval] IProgress * * aProgress
    );

}; /* interface IMedium */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IMedium_GETTER_Id_TO(smth) HRESULT STDMETHODCALLTYPE get_Id (BSTR * aId) { return smth get_Id (aId); }")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_Id_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_Id_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_Id_TO_BASE(base) COM_FORWARD_IMedium_GETTER_Id_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_Description_TO(smth) HRESULT STDMETHODCALLTYPE get_Description (BSTR * aDescription) { return smth get_Description (aDescription); }")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_Description_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_Description_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_Description_TO_BASE(base) COM_FORWARD_IMedium_GETTER_Description_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_SETTER_Description_TO(smth) HRESULT STDMETHODCALLTYPE put_Description (BSTR aDescription) { return smth put_Description (aDescription); }")
cpp_quote("#define COM_FORWARD_IMedium_SETTER_Description_TO_OBJ(obj) COM_FORWARD_IMedium_SETTER_Description_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_SETTER_Description_TO_BASE(base) COM_FORWARD_IMedium_SETTER_Description_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_State_TO(smth) HRESULT STDMETHODCALLTYPE get_State (MediumState * aState) { return smth get_State (aState); }")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_State_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_State_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_State_TO_BASE(base) COM_FORWARD_IMedium_GETTER_State_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_Location_TO(smth) HRESULT STDMETHODCALLTYPE get_Location (BSTR * aLocation) { return smth get_Location (aLocation); }")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_Location_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_Location_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_Location_TO_BASE(base) COM_FORWARD_IMedium_GETTER_Location_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_SETTER_Location_TO(smth) HRESULT STDMETHODCALLTYPE put_Location (BSTR aLocation) { return smth put_Location (aLocation); }")
cpp_quote("#define COM_FORWARD_IMedium_SETTER_Location_TO_OBJ(obj) COM_FORWARD_IMedium_SETTER_Location_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_SETTER_Location_TO_BASE(base) COM_FORWARD_IMedium_SETTER_Location_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_Name_TO(smth) HRESULT STDMETHODCALLTYPE get_Name (BSTR * aName) { return smth get_Name (aName); }")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_Name_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_Name_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_Name_TO_BASE(base) COM_FORWARD_IMedium_GETTER_Name_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_DeviceType_TO(smth) HRESULT STDMETHODCALLTYPE get_DeviceType (DeviceType * aDeviceType) { return smth get_DeviceType (aDeviceType); }")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_DeviceType_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_DeviceType_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_DeviceType_TO_BASE(base) COM_FORWARD_IMedium_GETTER_DeviceType_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_HostDrive_TO(smth) HRESULT STDMETHODCALLTYPE get_HostDrive (BOOL * aHostDrive) { return smth get_HostDrive (aHostDrive); }")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_HostDrive_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_HostDrive_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_HostDrive_TO_BASE(base) COM_FORWARD_IMedium_GETTER_HostDrive_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_Size_TO(smth) HRESULT STDMETHODCALLTYPE get_Size (ULONG64 * aSize) { return smth get_Size (aSize); }")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_Size_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_Size_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_Size_TO_BASE(base) COM_FORWARD_IMedium_GETTER_Size_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_Format_TO(smth) HRESULT STDMETHODCALLTYPE get_Format (BSTR * aFormat) { return smth get_Format (aFormat); }")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_Format_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_Format_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_Format_TO_BASE(base) COM_FORWARD_IMedium_GETTER_Format_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_MediumFormat_TO(smth) HRESULT STDMETHODCALLTYPE get_MediumFormat (IMediumFormat * * aMediumFormat) { return smth get_MediumFormat (aMediumFormat); }")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_MediumFormat_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_MediumFormat_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_MediumFormat_TO_BASE(base) COM_FORWARD_IMedium_GETTER_MediumFormat_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_Type_TO(smth) HRESULT STDMETHODCALLTYPE get_Type (MediumType * aType) { return smth get_Type (aType); }")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_Type_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_Type_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_Type_TO_BASE(base) COM_FORWARD_IMedium_GETTER_Type_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_SETTER_Type_TO(smth) HRESULT STDMETHODCALLTYPE put_Type (MediumType aType) { return smth put_Type (aType); }")
cpp_quote("#define COM_FORWARD_IMedium_SETTER_Type_TO_OBJ(obj) COM_FORWARD_IMedium_SETTER_Type_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_SETTER_Type_TO_BASE(base) COM_FORWARD_IMedium_SETTER_Type_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_Parent_TO(smth) HRESULT STDMETHODCALLTYPE get_Parent (IMedium * * aParent) { return smth get_Parent (aParent); }")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_Parent_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_Parent_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_Parent_TO_BASE(base) COM_FORWARD_IMedium_GETTER_Parent_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_Children_TO(smth) HRESULT STDMETHODCALLTYPE get_Children (SAFEARRAY * * aChildren) { return smth get_Children (aChildren); }")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_Children_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_Children_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_Children_TO_BASE(base) COM_FORWARD_IMedium_GETTER_Children_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_Base_TO(smth) HRESULT STDMETHODCALLTYPE get_Base (IMedium * * aBase) { return smth get_Base (aBase); }")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_Base_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_Base_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_Base_TO_BASE(base) COM_FORWARD_IMedium_GETTER_Base_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_ReadOnly_TO(smth) HRESULT STDMETHODCALLTYPE get_ReadOnly (BOOL * aReadOnly) { return smth get_ReadOnly (aReadOnly); }")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_ReadOnly_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_ReadOnly_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_ReadOnly_TO_BASE(base) COM_FORWARD_IMedium_GETTER_ReadOnly_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_LogicalSize_TO(smth) HRESULT STDMETHODCALLTYPE get_LogicalSize (ULONG64 * aLogicalSize) { return smth get_LogicalSize (aLogicalSize); }")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_LogicalSize_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_LogicalSize_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_LogicalSize_TO_BASE(base) COM_FORWARD_IMedium_GETTER_LogicalSize_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_AutoReset_TO(smth) HRESULT STDMETHODCALLTYPE get_AutoReset (BOOL * aAutoReset) { return smth get_AutoReset (aAutoReset); }")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_AutoReset_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_AutoReset_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_AutoReset_TO_BASE(base) COM_FORWARD_IMedium_GETTER_AutoReset_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_SETTER_AutoReset_TO(smth) HRESULT STDMETHODCALLTYPE put_AutoReset (BOOL aAutoReset) { return smth put_AutoReset (aAutoReset); }")
cpp_quote("#define COM_FORWARD_IMedium_SETTER_AutoReset_TO_OBJ(obj) COM_FORWARD_IMedium_SETTER_AutoReset_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_SETTER_AutoReset_TO_BASE(base) COM_FORWARD_IMedium_SETTER_AutoReset_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_LastAccessError_TO(smth) HRESULT STDMETHODCALLTYPE get_LastAccessError (BSTR * aLastAccessError) { return smth get_LastAccessError (aLastAccessError); }")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_LastAccessError_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_LastAccessError_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_LastAccessError_TO_BASE(base) COM_FORWARD_IMedium_GETTER_LastAccessError_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_MachineIds_TO(smth) HRESULT STDMETHODCALLTYPE get_MachineIds (SAFEARRAY * * aMachineIds) { return smth get_MachineIds (aMachineIds); }")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_MachineIds_TO_OBJ(obj) COM_FORWARD_IMedium_GETTER_MachineIds_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_GETTER_MachineIds_TO_BASE(base) COM_FORWARD_IMedium_GETTER_MachineIds_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_RefreshState_TO(smth) HRESULT STDMETHODCALLTYPE RefreshState (MediumState * aState) { return smth RefreshState (aState); }")
cpp_quote("#define COM_FORWARD_IMedium_RefreshState_TO_OBJ(obj) COM_FORWARD_IMedium_RefreshState_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_RefreshState_TO_BASE(base) COM_FORWARD_IMedium_RefreshState_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_GetSnapshotIds_TO(smth) HRESULT STDMETHODCALLTYPE GetSnapshotIds (BSTR aMachineId, SAFEARRAY * * aSnapshotIds) { return smth GetSnapshotIds (aMachineId, aSnapshotIds); }")
cpp_quote("#define COM_FORWARD_IMedium_GetSnapshotIds_TO_OBJ(obj) COM_FORWARD_IMedium_GetSnapshotIds_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_GetSnapshotIds_TO_BASE(base) COM_FORWARD_IMedium_GetSnapshotIds_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_LockRead_TO(smth) HRESULT STDMETHODCALLTYPE LockRead (MediumState * aState) { return smth LockRead (aState); }")
cpp_quote("#define COM_FORWARD_IMedium_LockRead_TO_OBJ(obj) COM_FORWARD_IMedium_LockRead_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_LockRead_TO_BASE(base) COM_FORWARD_IMedium_LockRead_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_UnlockRead_TO(smth) HRESULT STDMETHODCALLTYPE UnlockRead (MediumState * aState) { return smth UnlockRead (aState); }")
cpp_quote("#define COM_FORWARD_IMedium_UnlockRead_TO_OBJ(obj) COM_FORWARD_IMedium_UnlockRead_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_UnlockRead_TO_BASE(base) COM_FORWARD_IMedium_UnlockRead_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_LockWrite_TO(smth) HRESULT STDMETHODCALLTYPE LockWrite (MediumState * aState) { return smth LockWrite (aState); }")
cpp_quote("#define COM_FORWARD_IMedium_LockWrite_TO_OBJ(obj) COM_FORWARD_IMedium_LockWrite_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_LockWrite_TO_BASE(base) COM_FORWARD_IMedium_LockWrite_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_UnlockWrite_TO(smth) HRESULT STDMETHODCALLTYPE UnlockWrite (MediumState * aState) { return smth UnlockWrite (aState); }")
cpp_quote("#define COM_FORWARD_IMedium_UnlockWrite_TO_OBJ(obj) COM_FORWARD_IMedium_UnlockWrite_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_UnlockWrite_TO_BASE(base) COM_FORWARD_IMedium_UnlockWrite_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_Close_TO(smth) HRESULT STDMETHODCALLTYPE Close() { return smth Close(); }")
cpp_quote("#define COM_FORWARD_IMedium_Close_TO_OBJ(obj) COM_FORWARD_IMedium_Close_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_Close_TO_BASE(base) COM_FORWARD_IMedium_Close_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_GetProperty_TO(smth) HRESULT STDMETHODCALLTYPE GetProperty (BSTR aName, BSTR * aValue) { return smth GetProperty (aName, aValue); }")
cpp_quote("#define COM_FORWARD_IMedium_GetProperty_TO_OBJ(obj) COM_FORWARD_IMedium_GetProperty_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_GetProperty_TO_BASE(base) COM_FORWARD_IMedium_GetProperty_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_SetProperty_TO(smth) HRESULT STDMETHODCALLTYPE SetProperty (BSTR aName, BSTR aValue) { return smth SetProperty (aName, aValue); }")
cpp_quote("#define COM_FORWARD_IMedium_SetProperty_TO_OBJ(obj) COM_FORWARD_IMedium_SetProperty_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_SetProperty_TO_BASE(base) COM_FORWARD_IMedium_SetProperty_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_GetProperties_TO(smth) HRESULT STDMETHODCALLTYPE GetProperties (BSTR aNames, SAFEARRAY * * aReturnNames, SAFEARRAY * * aReturnValues) { return smth GetProperties (aNames, aReturnNames, aReturnValues); }")
cpp_quote("#define COM_FORWARD_IMedium_GetProperties_TO_OBJ(obj) COM_FORWARD_IMedium_GetProperties_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_GetProperties_TO_BASE(base) COM_FORWARD_IMedium_GetProperties_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_SetProperties_TO(smth) HRESULT STDMETHODCALLTYPE SetProperties (SAFEARRAY * * aNames, SAFEARRAY * * aValues) { return smth SetProperties (aNames, aValues); }")
cpp_quote("#define COM_FORWARD_IMedium_SetProperties_TO_OBJ(obj) COM_FORWARD_IMedium_SetProperties_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_SetProperties_TO_BASE(base) COM_FORWARD_IMedium_SetProperties_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_CreateBaseStorage_TO(smth) HRESULT STDMETHODCALLTYPE CreateBaseStorage (ULONG64 aLogicalSize, MediumVariant aVariant, IProgress * * aProgress) { return smth CreateBaseStorage (aLogicalSize, aVariant, aProgress); }")
cpp_quote("#define COM_FORWARD_IMedium_CreateBaseStorage_TO_OBJ(obj) COM_FORWARD_IMedium_CreateBaseStorage_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_CreateBaseStorage_TO_BASE(base) COM_FORWARD_IMedium_CreateBaseStorage_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_DeleteStorage_TO(smth) HRESULT STDMETHODCALLTYPE DeleteStorage (IProgress * * aProgress) { return smth DeleteStorage (aProgress); }")
cpp_quote("#define COM_FORWARD_IMedium_DeleteStorage_TO_OBJ(obj) COM_FORWARD_IMedium_DeleteStorage_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_DeleteStorage_TO_BASE(base) COM_FORWARD_IMedium_DeleteStorage_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_CreateDiffStorage_TO(smth) HRESULT STDMETHODCALLTYPE CreateDiffStorage (IMedium * aTarget, MediumVariant aVariant, IProgress * * aProgress) { return smth CreateDiffStorage (aTarget, aVariant, aProgress); }")
cpp_quote("#define COM_FORWARD_IMedium_CreateDiffStorage_TO_OBJ(obj) COM_FORWARD_IMedium_CreateDiffStorage_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_CreateDiffStorage_TO_BASE(base) COM_FORWARD_IMedium_CreateDiffStorage_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_MergeTo_TO(smth) HRESULT STDMETHODCALLTYPE MergeTo (IMedium * aTarget, IProgress * * aProgress) { return smth MergeTo (aTarget, aProgress); }")
cpp_quote("#define COM_FORWARD_IMedium_MergeTo_TO_OBJ(obj) COM_FORWARD_IMedium_MergeTo_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_MergeTo_TO_BASE(base) COM_FORWARD_IMedium_MergeTo_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_CloneTo_TO(smth) HRESULT STDMETHODCALLTYPE CloneTo (IMedium * aTarget, MediumVariant aVariant, IMedium * aParent, IProgress * * aProgress) { return smth CloneTo (aTarget, aVariant, aParent, aProgress); }")
cpp_quote("#define COM_FORWARD_IMedium_CloneTo_TO_OBJ(obj) COM_FORWARD_IMedium_CloneTo_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_CloneTo_TO_BASE(base) COM_FORWARD_IMedium_CloneTo_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_Compact_TO(smth) HRESULT STDMETHODCALLTYPE Compact (IProgress * * aProgress) { return smth Compact (aProgress); }")
cpp_quote("#define COM_FORWARD_IMedium_Compact_TO_OBJ(obj) COM_FORWARD_IMedium_Compact_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_Compact_TO_BASE(base) COM_FORWARD_IMedium_Compact_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_Resize_TO(smth) HRESULT STDMETHODCALLTYPE Resize (ULONG64 aLogicalSize, IProgress * * aProgress) { return smth Resize (aLogicalSize, aProgress); }")
cpp_quote("#define COM_FORWARD_IMedium_Resize_TO_OBJ(obj) COM_FORWARD_IMedium_Resize_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_Resize_TO_BASE(base) COM_FORWARD_IMedium_Resize_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_Reset_TO(smth) HRESULT STDMETHODCALLTYPE Reset (IProgress * * aProgress) { return smth Reset (aProgress); }")
cpp_quote("#define COM_FORWARD_IMedium_Reset_TO_OBJ(obj) COM_FORWARD_IMedium_Reset_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_Reset_TO_BASE(base) COM_FORWARD_IMedium_Reset_TO (base::)")
cpp_quote("#define COM_FORWARD_IMedium_TO(smth) COM_FORWARD_IMedium_GETTER_Id_TO (smth) COM_FORWARD_IMedium_GETTER_Description_TO (smth) COM_FORWARD_IMedium_SETTER_Description_TO (smth) COM_FORWARD_IMedium_GETTER_State_TO (smth) COM_FORWARD_IMedium_GETTER_Location_TO (smth) COM_FORWARD_IMedium_SETTER_Location_TO (smth) COM_FORWARD_IMedium_GETTER_Name_TO (smth) COM_FORWARD_IMedium_GETTER_DeviceType_TO (smth) COM_FORWARD_IMedium_GETTER_HostDrive_TO (smth) COM_FORWARD_IMedium_GETTER_Size_TO (smth) COM_FORWARD_IMedium_GETTER_Format_TO (smth) COM_FORWARD_IMedium_GETTER_MediumFormat_TO (smth) COM_FORWARD_IMedium_GETTER_Type_TO (smth) COM_FORWARD_IMedium_SETTER_Type_TO (smth) COM_FORWARD_IMedium_GETTER_Parent_TO (smth) COM_FORWARD_IMedium_GETTER_Children_TO (smth) COM_FORWARD_IMedium_GETTER_Base_TO (smth) COM_FORWARD_IMedium_GETTER_ReadOnly_TO (smth) COM_FORWARD_IMedium_GETTER_LogicalSize_TO (smth) COM_FORWARD_IMedium_GETTER_AutoReset_TO (smth) COM_FORWARD_IMedium_SETTER_AutoReset_TO (smth) COM_FORWARD_IMedium_GETTER_LastAccessError_TO (smth) COM_FORWARD_IMedium_GETTER_MachineIds_TO (smth) COM_FORWARD_IMedium_RefreshState_TO (smth) COM_FORWARD_IMedium_GetSnapshotIds_TO (smth) COM_FORWARD_IMedium_LockRead_TO (smth) COM_FORWARD_IMedium_UnlockRead_TO (smth) COM_FORWARD_IMedium_LockWrite_TO (smth) COM_FORWARD_IMedium_UnlockWrite_TO (smth) COM_FORWARD_IMedium_Close_TO (smth) COM_FORWARD_IMedium_GetProperty_TO (smth) COM_FORWARD_IMedium_SetProperty_TO (smth) COM_FORWARD_IMedium_GetProperties_TO (smth) COM_FORWARD_IMedium_SetProperties_TO (smth) COM_FORWARD_IMedium_CreateBaseStorage_TO (smth) COM_FORWARD_IMedium_DeleteStorage_TO (smth) COM_FORWARD_IMedium_CreateDiffStorage_TO (smth) COM_FORWARD_IMedium_MergeTo_TO (smth) COM_FORWARD_IMedium_CloneTo_TO (smth) COM_FORWARD_IMedium_Compact_TO (smth) COM_FORWARD_IMedium_Resize_TO (smth) COM_FORWARD_IMedium_Reset_TO (smth) ")
cpp_quote("#define COM_FORWARD_IMedium_TO_OBJ(obj) COM_FORWARD_IMedium_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMedium_TO_BASE(base) COM_FORWARD_IMedium_TO (base::)")

[
    uuid(89f52554-d469-4799-9fad-1705e86a08b1),
    object,
    dual,
    oleautomation
]
interface IMediumFormat : IDispatch
{
    [propget] HRESULT Id ([out, retval] BSTR * aId);

    [propget] HRESULT Name ([out, retval] BSTR * aName);

    [propget] HRESULT FileExtensions ([out, retval] SAFEARRAY(BSTR) * aFileExtensions);

    [propget] HRESULT Capabilities ([out, retval] ULONG * aCapabilities);

    HRESULT DescribeProperties (
        [out] SAFEARRAY(BSTR) * aNames,
        [out] SAFEARRAY(BSTR) * aDescription,
        [out] SAFEARRAY(DataType) * aTypes,
        [out] SAFEARRAY(ULONG) * aFlags,
        [out] SAFEARRAY(BSTR) * aDefaults
    );

}; /* interface IMediumFormat */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IMediumFormat_GETTER_Id_TO(smth) HRESULT STDMETHODCALLTYPE get_Id (BSTR * aId) { return smth get_Id (aId); }")
cpp_quote("#define COM_FORWARD_IMediumFormat_GETTER_Id_TO_OBJ(obj) COM_FORWARD_IMediumFormat_GETTER_Id_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMediumFormat_GETTER_Id_TO_BASE(base) COM_FORWARD_IMediumFormat_GETTER_Id_TO (base::)")
cpp_quote("#define COM_FORWARD_IMediumFormat_GETTER_Name_TO(smth) HRESULT STDMETHODCALLTYPE get_Name (BSTR * aName) { return smth get_Name (aName); }")
cpp_quote("#define COM_FORWARD_IMediumFormat_GETTER_Name_TO_OBJ(obj) COM_FORWARD_IMediumFormat_GETTER_Name_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMediumFormat_GETTER_Name_TO_BASE(base) COM_FORWARD_IMediumFormat_GETTER_Name_TO (base::)")
cpp_quote("#define COM_FORWARD_IMediumFormat_GETTER_FileExtensions_TO(smth) HRESULT STDMETHODCALLTYPE get_FileExtensions (SAFEARRAY * * aFileExtensions) { return smth get_FileExtensions (aFileExtensions); }")
cpp_quote("#define COM_FORWARD_IMediumFormat_GETTER_FileExtensions_TO_OBJ(obj) COM_FORWARD_IMediumFormat_GETTER_FileExtensions_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMediumFormat_GETTER_FileExtensions_TO_BASE(base) COM_FORWARD_IMediumFormat_GETTER_FileExtensions_TO (base::)")
cpp_quote("#define COM_FORWARD_IMediumFormat_GETTER_Capabilities_TO(smth) HRESULT STDMETHODCALLTYPE get_Capabilities (ULONG * aCapabilities) { return smth get_Capabilities (aCapabilities); }")
cpp_quote("#define COM_FORWARD_IMediumFormat_GETTER_Capabilities_TO_OBJ(obj) COM_FORWARD_IMediumFormat_GETTER_Capabilities_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMediumFormat_GETTER_Capabilities_TO_BASE(base) COM_FORWARD_IMediumFormat_GETTER_Capabilities_TO (base::)")
cpp_quote("#define COM_FORWARD_IMediumFormat_DescribeProperties_TO(smth) HRESULT STDMETHODCALLTYPE DescribeProperties (SAFEARRAY * * aNames, SAFEARRAY * * aDescription, SAFEARRAY * * aTypes, SAFEARRAY * * aFlags, SAFEARRAY * * aDefaults) { return smth DescribeProperties (aNames, aDescription, aTypes, aFlags, aDefaults); }")
cpp_quote("#define COM_FORWARD_IMediumFormat_DescribeProperties_TO_OBJ(obj) COM_FORWARD_IMediumFormat_DescribeProperties_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMediumFormat_DescribeProperties_TO_BASE(base) COM_FORWARD_IMediumFormat_DescribeProperties_TO (base::)")
cpp_quote("#define COM_FORWARD_IMediumFormat_TO(smth) COM_FORWARD_IMediumFormat_GETTER_Id_TO (smth) COM_FORWARD_IMediumFormat_GETTER_Name_TO (smth) COM_FORWARD_IMediumFormat_GETTER_FileExtensions_TO (smth) COM_FORWARD_IMediumFormat_GETTER_Capabilities_TO (smth) COM_FORWARD_IMediumFormat_DescribeProperties_TO (smth) ")
cpp_quote("#define COM_FORWARD_IMediumFormat_TO_OBJ(obj) COM_FORWARD_IMediumFormat_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMediumFormat_TO_BASE(base) COM_FORWARD_IMediumFormat_TO (base::)")

[
    uuid(2d1a531b-4c6e-49cc-8af6-5c857b78b5d7),
    object,
    dual,
    oleautomation
]
interface IKeyboard : IDispatch
{
    HRESULT PutScancode (
        [in] LONG aScancode
    );

    HRESULT PutScancodes (
        [in, out] SAFEARRAY(LONG) * aScancodes,
        [out, retval] ULONG * aCodesStored
    );

    HRESULT PutCAD();

}; /* interface IKeyboard */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IKeyboard_PutScancode_TO(smth) HRESULT STDMETHODCALLTYPE PutScancode (LONG aScancode) { return smth PutScancode (aScancode); }")
cpp_quote("#define COM_FORWARD_IKeyboard_PutScancode_TO_OBJ(obj) COM_FORWARD_IKeyboard_PutScancode_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IKeyboard_PutScancode_TO_BASE(base) COM_FORWARD_IKeyboard_PutScancode_TO (base::)")
cpp_quote("#define COM_FORWARD_IKeyboard_PutScancodes_TO(smth) HRESULT STDMETHODCALLTYPE PutScancodes (SAFEARRAY * * aScancodes, ULONG * aCodesStored) { return smth PutScancodes (aScancodes, aCodesStored); }")
cpp_quote("#define COM_FORWARD_IKeyboard_PutScancodes_TO_OBJ(obj) COM_FORWARD_IKeyboard_PutScancodes_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IKeyboard_PutScancodes_TO_BASE(base) COM_FORWARD_IKeyboard_PutScancodes_TO (base::)")
cpp_quote("#define COM_FORWARD_IKeyboard_PutCAD_TO(smth) HRESULT STDMETHODCALLTYPE PutCAD() { return smth PutCAD(); }")
cpp_quote("#define COM_FORWARD_IKeyboard_PutCAD_TO_OBJ(obj) COM_FORWARD_IKeyboard_PutCAD_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IKeyboard_PutCAD_TO_BASE(base) COM_FORWARD_IKeyboard_PutCAD_TO (base::)")
cpp_quote("#define COM_FORWARD_IKeyboard_TO(smth) COM_FORWARD_IKeyboard_PutScancode_TO (smth) COM_FORWARD_IKeyboard_PutScancodes_TO (smth) COM_FORWARD_IKeyboard_PutCAD_TO (smth) ")
cpp_quote("#define COM_FORWARD_IKeyboard_TO_OBJ(obj) COM_FORWARD_IKeyboard_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IKeyboard_TO_BASE(base) COM_FORWARD_IKeyboard_TO (base::)")

[
    uuid(7c0f2eae-f92d-498c-b802-e1a3763774dc),
    object,
    dual,
    oleautomation
]
interface IMouse : IDispatch
{
    [propget] HRESULT AbsoluteSupported ([out, retval] BOOL * aAbsoluteSupported);

    [propget] HRESULT RelativeSupported ([out, retval] BOOL * aRelativeSupported);

    [propget] HRESULT NeedsHostCursor ([out, retval] BOOL * aNeedsHostCursor);

    HRESULT PutMouseEvent (
        [in] LONG aDx,
        [in] LONG aDy,
        [in] LONG aDz,
        [in] LONG aDw,
        [in] LONG aButtonState
    );

    HRESULT PutMouseEventAbsolute (
        [in] LONG aX,
        [in] LONG aY,
        [in] LONG aDz,
        [in] LONG aDw,
        [in] LONG aButtonState
    );

}; /* interface IMouse */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IMouse_GETTER_AbsoluteSupported_TO(smth) HRESULT STDMETHODCALLTYPE get_AbsoluteSupported (BOOL * aAbsoluteSupported) { return smth get_AbsoluteSupported (aAbsoluteSupported); }")
cpp_quote("#define COM_FORWARD_IMouse_GETTER_AbsoluteSupported_TO_OBJ(obj) COM_FORWARD_IMouse_GETTER_AbsoluteSupported_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMouse_GETTER_AbsoluteSupported_TO_BASE(base) COM_FORWARD_IMouse_GETTER_AbsoluteSupported_TO (base::)")
cpp_quote("#define COM_FORWARD_IMouse_GETTER_RelativeSupported_TO(smth) HRESULT STDMETHODCALLTYPE get_RelativeSupported (BOOL * aRelativeSupported) { return smth get_RelativeSupported (aRelativeSupported); }")
cpp_quote("#define COM_FORWARD_IMouse_GETTER_RelativeSupported_TO_OBJ(obj) COM_FORWARD_IMouse_GETTER_RelativeSupported_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMouse_GETTER_RelativeSupported_TO_BASE(base) COM_FORWARD_IMouse_GETTER_RelativeSupported_TO (base::)")
cpp_quote("#define COM_FORWARD_IMouse_GETTER_NeedsHostCursor_TO(smth) HRESULT STDMETHODCALLTYPE get_NeedsHostCursor (BOOL * aNeedsHostCursor) { return smth get_NeedsHostCursor (aNeedsHostCursor); }")
cpp_quote("#define COM_FORWARD_IMouse_GETTER_NeedsHostCursor_TO_OBJ(obj) COM_FORWARD_IMouse_GETTER_NeedsHostCursor_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMouse_GETTER_NeedsHostCursor_TO_BASE(base) COM_FORWARD_IMouse_GETTER_NeedsHostCursor_TO (base::)")
cpp_quote("#define COM_FORWARD_IMouse_PutMouseEvent_TO(smth) HRESULT STDMETHODCALLTYPE PutMouseEvent (LONG aDx, LONG aDy, LONG aDz, LONG aDw, LONG aButtonState) { return smth PutMouseEvent (aDx, aDy, aDz, aDw, aButtonState); }")
cpp_quote("#define COM_FORWARD_IMouse_PutMouseEvent_TO_OBJ(obj) COM_FORWARD_IMouse_PutMouseEvent_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMouse_PutMouseEvent_TO_BASE(base) COM_FORWARD_IMouse_PutMouseEvent_TO (base::)")
cpp_quote("#define COM_FORWARD_IMouse_PutMouseEventAbsolute_TO(smth) HRESULT STDMETHODCALLTYPE PutMouseEventAbsolute (LONG aX, LONG aY, LONG aDz, LONG aDw, LONG aButtonState) { return smth PutMouseEventAbsolute (aX, aY, aDz, aDw, aButtonState); }")
cpp_quote("#define COM_FORWARD_IMouse_PutMouseEventAbsolute_TO_OBJ(obj) COM_FORWARD_IMouse_PutMouseEventAbsolute_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMouse_PutMouseEventAbsolute_TO_BASE(base) COM_FORWARD_IMouse_PutMouseEventAbsolute_TO (base::)")
cpp_quote("#define COM_FORWARD_IMouse_TO(smth) COM_FORWARD_IMouse_GETTER_AbsoluteSupported_TO (smth) COM_FORWARD_IMouse_GETTER_RelativeSupported_TO (smth) COM_FORWARD_IMouse_GETTER_NeedsHostCursor_TO (smth) COM_FORWARD_IMouse_PutMouseEvent_TO (smth) COM_FORWARD_IMouse_PutMouseEventAbsolute_TO (smth) ")
cpp_quote("#define COM_FORWARD_IMouse_TO_OBJ(obj) COM_FORWARD_IMouse_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMouse_TO_BASE(base) COM_FORWARD_IMouse_TO (base::)")

[
    uuid(b7ed347a-5765-40a0-ae1c-f543eb4ddeaf),
    object,
    dual,
    oleautomation
]
interface IFramebuffer : IDispatch
{
    [propget] HRESULT Address ([out, retval] BYTE * * aAddress);

    [propget] HRESULT Width ([out, retval] ULONG * aWidth);

    [propget] HRESULT Height ([out, retval] ULONG * aHeight);

    [propget] HRESULT BitsPerPixel ([out, retval] ULONG * aBitsPerPixel);

    [propget] HRESULT BytesPerLine ([out, retval] ULONG * aBytesPerLine);

    [propget] HRESULT PixelFormat ([out, retval] ULONG * aPixelFormat);

    [propget] HRESULT UsesGuestVRAM ([out, retval] BOOL * aUsesGuestVRAM);

    [propget] HRESULT HeightReduction ([out, retval] ULONG * aHeightReduction);

    [propget] HRESULT Overlay ([out, retval] IFramebufferOverlay * * aOverlay);

    [propget] HRESULT WinId ([out, retval] ULONG64 * aWinId);

    HRESULT Lock();

    HRESULT Unlock();

    HRESULT NotifyUpdate (
        [in] ULONG aX,
        [in] ULONG aY,
        [in] ULONG aWidth,
        [in] ULONG aHeight
    );

    HRESULT RequestResize (
        [in] ULONG aScreenId,
        [in] ULONG aPixelFormat,
        [in] BYTE * aVRAM,
        [in] ULONG aBitsPerPixel,
        [in] ULONG aBytesPerLine,
        [in] ULONG aWidth,
        [in] ULONG aHeight,
        [out, retval] BOOL * aFinished
    );

    HRESULT VideoModeSupported (
        [in] ULONG aWidth,
        [in] ULONG aHeight,
        [in] ULONG aBpp,
        [out, retval] BOOL * aSupported
    );

    HRESULT GetVisibleRegion (
        [in] BYTE * aRectangles,
        [in] ULONG aCount,
        [out, retval] ULONG * aCountCopied
    );

    HRESULT SetVisibleRegion (
        [in] BYTE * aRectangles,
        [in] ULONG aCount
    );

    HRESULT ProcessVHWACommand (
        [in] BYTE * aCommand
    );

}; /* interface IFramebuffer */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IFramebuffer_GETTER_Address_TO(smth) HRESULT STDMETHODCALLTYPE get_Address (BYTE * * aAddress) { return smth get_Address (aAddress); }")
cpp_quote("#define COM_FORWARD_IFramebuffer_GETTER_Address_TO_OBJ(obj) COM_FORWARD_IFramebuffer_GETTER_Address_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFramebuffer_GETTER_Address_TO_BASE(base) COM_FORWARD_IFramebuffer_GETTER_Address_TO (base::)")
cpp_quote("#define COM_FORWARD_IFramebuffer_GETTER_Width_TO(smth) HRESULT STDMETHODCALLTYPE get_Width (ULONG * aWidth) { return smth get_Width (aWidth); }")
cpp_quote("#define COM_FORWARD_IFramebuffer_GETTER_Width_TO_OBJ(obj) COM_FORWARD_IFramebuffer_GETTER_Width_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFramebuffer_GETTER_Width_TO_BASE(base) COM_FORWARD_IFramebuffer_GETTER_Width_TO (base::)")
cpp_quote("#define COM_FORWARD_IFramebuffer_GETTER_Height_TO(smth) HRESULT STDMETHODCALLTYPE get_Height (ULONG * aHeight) { return smth get_Height (aHeight); }")
cpp_quote("#define COM_FORWARD_IFramebuffer_GETTER_Height_TO_OBJ(obj) COM_FORWARD_IFramebuffer_GETTER_Height_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFramebuffer_GETTER_Height_TO_BASE(base) COM_FORWARD_IFramebuffer_GETTER_Height_TO (base::)")
cpp_quote("#define COM_FORWARD_IFramebuffer_GETTER_BitsPerPixel_TO(smth) HRESULT STDMETHODCALLTYPE get_BitsPerPixel (ULONG * aBitsPerPixel) { return smth get_BitsPerPixel (aBitsPerPixel); }")
cpp_quote("#define COM_FORWARD_IFramebuffer_GETTER_BitsPerPixel_TO_OBJ(obj) COM_FORWARD_IFramebuffer_GETTER_BitsPerPixel_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFramebuffer_GETTER_BitsPerPixel_TO_BASE(base) COM_FORWARD_IFramebuffer_GETTER_BitsPerPixel_TO (base::)")
cpp_quote("#define COM_FORWARD_IFramebuffer_GETTER_BytesPerLine_TO(smth) HRESULT STDMETHODCALLTYPE get_BytesPerLine (ULONG * aBytesPerLine) { return smth get_BytesPerLine (aBytesPerLine); }")
cpp_quote("#define COM_FORWARD_IFramebuffer_GETTER_BytesPerLine_TO_OBJ(obj) COM_FORWARD_IFramebuffer_GETTER_BytesPerLine_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFramebuffer_GETTER_BytesPerLine_TO_BASE(base) COM_FORWARD_IFramebuffer_GETTER_BytesPerLine_TO (base::)")
cpp_quote("#define COM_FORWARD_IFramebuffer_GETTER_PixelFormat_TO(smth) HRESULT STDMETHODCALLTYPE get_PixelFormat (ULONG * aPixelFormat) { return smth get_PixelFormat (aPixelFormat); }")
cpp_quote("#define COM_FORWARD_IFramebuffer_GETTER_PixelFormat_TO_OBJ(obj) COM_FORWARD_IFramebuffer_GETTER_PixelFormat_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFramebuffer_GETTER_PixelFormat_TO_BASE(base) COM_FORWARD_IFramebuffer_GETTER_PixelFormat_TO (base::)")
cpp_quote("#define COM_FORWARD_IFramebuffer_GETTER_UsesGuestVRAM_TO(smth) HRESULT STDMETHODCALLTYPE get_UsesGuestVRAM (BOOL * aUsesGuestVRAM) { return smth get_UsesGuestVRAM (aUsesGuestVRAM); }")
cpp_quote("#define COM_FORWARD_IFramebuffer_GETTER_UsesGuestVRAM_TO_OBJ(obj) COM_FORWARD_IFramebuffer_GETTER_UsesGuestVRAM_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFramebuffer_GETTER_UsesGuestVRAM_TO_BASE(base) COM_FORWARD_IFramebuffer_GETTER_UsesGuestVRAM_TO (base::)")
cpp_quote("#define COM_FORWARD_IFramebuffer_GETTER_HeightReduction_TO(smth) HRESULT STDMETHODCALLTYPE get_HeightReduction (ULONG * aHeightReduction) { return smth get_HeightReduction (aHeightReduction); }")
cpp_quote("#define COM_FORWARD_IFramebuffer_GETTER_HeightReduction_TO_OBJ(obj) COM_FORWARD_IFramebuffer_GETTER_HeightReduction_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFramebuffer_GETTER_HeightReduction_TO_BASE(base) COM_FORWARD_IFramebuffer_GETTER_HeightReduction_TO (base::)")
cpp_quote("#define COM_FORWARD_IFramebuffer_GETTER_Overlay_TO(smth) HRESULT STDMETHODCALLTYPE get_Overlay (IFramebufferOverlay * * aOverlay) { return smth get_Overlay (aOverlay); }")
cpp_quote("#define COM_FORWARD_IFramebuffer_GETTER_Overlay_TO_OBJ(obj) COM_FORWARD_IFramebuffer_GETTER_Overlay_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFramebuffer_GETTER_Overlay_TO_BASE(base) COM_FORWARD_IFramebuffer_GETTER_Overlay_TO (base::)")
cpp_quote("#define COM_FORWARD_IFramebuffer_GETTER_WinId_TO(smth) HRESULT STDMETHODCALLTYPE get_WinId (ULONG64 * aWinId) { return smth get_WinId (aWinId); }")
cpp_quote("#define COM_FORWARD_IFramebuffer_GETTER_WinId_TO_OBJ(obj) COM_FORWARD_IFramebuffer_GETTER_WinId_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFramebuffer_GETTER_WinId_TO_BASE(base) COM_FORWARD_IFramebuffer_GETTER_WinId_TO (base::)")
cpp_quote("#define COM_FORWARD_IFramebuffer_Lock_TO(smth) HRESULT STDMETHODCALLTYPE Lock() { return smth Lock(); }")
cpp_quote("#define COM_FORWARD_IFramebuffer_Lock_TO_OBJ(obj) COM_FORWARD_IFramebuffer_Lock_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFramebuffer_Lock_TO_BASE(base) COM_FORWARD_IFramebuffer_Lock_TO (base::)")
cpp_quote("#define COM_FORWARD_IFramebuffer_Unlock_TO(smth) HRESULT STDMETHODCALLTYPE Unlock() { return smth Unlock(); }")
cpp_quote("#define COM_FORWARD_IFramebuffer_Unlock_TO_OBJ(obj) COM_FORWARD_IFramebuffer_Unlock_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFramebuffer_Unlock_TO_BASE(base) COM_FORWARD_IFramebuffer_Unlock_TO (base::)")
cpp_quote("#define COM_FORWARD_IFramebuffer_NotifyUpdate_TO(smth) HRESULT STDMETHODCALLTYPE NotifyUpdate (ULONG aX, ULONG aY, ULONG aWidth, ULONG aHeight) { return smth NotifyUpdate (aX, aY, aWidth, aHeight); }")
cpp_quote("#define COM_FORWARD_IFramebuffer_NotifyUpdate_TO_OBJ(obj) COM_FORWARD_IFramebuffer_NotifyUpdate_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFramebuffer_NotifyUpdate_TO_BASE(base) COM_FORWARD_IFramebuffer_NotifyUpdate_TO (base::)")
cpp_quote("#define COM_FORWARD_IFramebuffer_RequestResize_TO(smth) HRESULT STDMETHODCALLTYPE RequestResize (ULONG aScreenId, ULONG aPixelFormat, BYTE * aVRAM, ULONG aBitsPerPixel, ULONG aBytesPerLine, ULONG aWidth, ULONG aHeight, BOOL * aFinished) { return smth RequestResize (aScreenId, aPixelFormat, aVRAM, aBitsPerPixel, aBytesPerLine, aWidth, aHeight, aFinished); }")
cpp_quote("#define COM_FORWARD_IFramebuffer_RequestResize_TO_OBJ(obj) COM_FORWARD_IFramebuffer_RequestResize_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFramebuffer_RequestResize_TO_BASE(base) COM_FORWARD_IFramebuffer_RequestResize_TO (base::)")
cpp_quote("#define COM_FORWARD_IFramebuffer_VideoModeSupported_TO(smth) HRESULT STDMETHODCALLTYPE VideoModeSupported (ULONG aWidth, ULONG aHeight, ULONG aBpp, BOOL * aSupported) { return smth VideoModeSupported (aWidth, aHeight, aBpp, aSupported); }")
cpp_quote("#define COM_FORWARD_IFramebuffer_VideoModeSupported_TO_OBJ(obj) COM_FORWARD_IFramebuffer_VideoModeSupported_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFramebuffer_VideoModeSupported_TO_BASE(base) COM_FORWARD_IFramebuffer_VideoModeSupported_TO (base::)")
cpp_quote("#define COM_FORWARD_IFramebuffer_GetVisibleRegion_TO(smth) HRESULT STDMETHODCALLTYPE GetVisibleRegion (BYTE * aRectangles, ULONG aCount, ULONG * aCountCopied) { return smth GetVisibleRegion (aRectangles, aCount, aCountCopied); }")
cpp_quote("#define COM_FORWARD_IFramebuffer_GetVisibleRegion_TO_OBJ(obj) COM_FORWARD_IFramebuffer_GetVisibleRegion_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFramebuffer_GetVisibleRegion_TO_BASE(base) COM_FORWARD_IFramebuffer_GetVisibleRegion_TO (base::)")
cpp_quote("#define COM_FORWARD_IFramebuffer_SetVisibleRegion_TO(smth) HRESULT STDMETHODCALLTYPE SetVisibleRegion (BYTE * aRectangles, ULONG aCount) { return smth SetVisibleRegion (aRectangles, aCount); }")
cpp_quote("#define COM_FORWARD_IFramebuffer_SetVisibleRegion_TO_OBJ(obj) COM_FORWARD_IFramebuffer_SetVisibleRegion_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFramebuffer_SetVisibleRegion_TO_BASE(base) COM_FORWARD_IFramebuffer_SetVisibleRegion_TO (base::)")
cpp_quote("#define COM_FORWARD_IFramebuffer_ProcessVHWACommand_TO(smth) HRESULT STDMETHODCALLTYPE ProcessVHWACommand (BYTE * aCommand) { return smth ProcessVHWACommand (aCommand); }")
cpp_quote("#define COM_FORWARD_IFramebuffer_ProcessVHWACommand_TO_OBJ(obj) COM_FORWARD_IFramebuffer_ProcessVHWACommand_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFramebuffer_ProcessVHWACommand_TO_BASE(base) COM_FORWARD_IFramebuffer_ProcessVHWACommand_TO (base::)")
cpp_quote("#define COM_FORWARD_IFramebuffer_TO(smth) COM_FORWARD_IFramebuffer_GETTER_Address_TO (smth) COM_FORWARD_IFramebuffer_GETTER_Width_TO (smth) COM_FORWARD_IFramebuffer_GETTER_Height_TO (smth) COM_FORWARD_IFramebuffer_GETTER_BitsPerPixel_TO (smth) COM_FORWARD_IFramebuffer_GETTER_BytesPerLine_TO (smth) COM_FORWARD_IFramebuffer_GETTER_PixelFormat_TO (smth) COM_FORWARD_IFramebuffer_GETTER_UsesGuestVRAM_TO (smth) COM_FORWARD_IFramebuffer_GETTER_HeightReduction_TO (smth) COM_FORWARD_IFramebuffer_GETTER_Overlay_TO (smth) COM_FORWARD_IFramebuffer_GETTER_WinId_TO (smth) COM_FORWARD_IFramebuffer_Lock_TO (smth) COM_FORWARD_IFramebuffer_Unlock_TO (smth) COM_FORWARD_IFramebuffer_NotifyUpdate_TO (smth) COM_FORWARD_IFramebuffer_RequestResize_TO (smth) COM_FORWARD_IFramebuffer_VideoModeSupported_TO (smth) COM_FORWARD_IFramebuffer_GetVisibleRegion_TO (smth) COM_FORWARD_IFramebuffer_SetVisibleRegion_TO (smth) COM_FORWARD_IFramebuffer_ProcessVHWACommand_TO (smth) ")
cpp_quote("#define COM_FORWARD_IFramebuffer_TO_OBJ(obj) COM_FORWARD_IFramebuffer_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFramebuffer_TO_BASE(base) COM_FORWARD_IFramebuffer_TO (base::)")

[
    uuid(0bcc1c7e-e415-47d2-bfdb-e4c705fb0f47),
    object,
    dual,
    oleautomation
]
interface IFramebufferOverlay : IFramebuffer
{
    [propget] HRESULT X ([out, retval] ULONG * aX);

    [propget] HRESULT Y ([out, retval] ULONG * aY);

    [propget] HRESULT Visible ([out, retval] BOOL * aVisible);
    [propput] HRESULT Visible ([in] BOOL aVisible);

    [propget] HRESULT Alpha ([out, retval] ULONG * aAlpha);
    [propput] HRESULT Alpha ([in] ULONG aAlpha);

    HRESULT Move (
        [in] ULONG aX,
        [in] ULONG aY
    );

}; /* interface IFramebufferOverlay */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IFramebufferOverlay_GETTER_X_TO(smth) HRESULT STDMETHODCALLTYPE get_X (ULONG * aX) { return smth get_X (aX); }")
cpp_quote("#define COM_FORWARD_IFramebufferOverlay_GETTER_X_TO_OBJ(obj) COM_FORWARD_IFramebufferOverlay_GETTER_X_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFramebufferOverlay_GETTER_X_TO_BASE(base) COM_FORWARD_IFramebufferOverlay_GETTER_X_TO (base::)")
cpp_quote("#define COM_FORWARD_IFramebufferOverlay_GETTER_Y_TO(smth) HRESULT STDMETHODCALLTYPE get_Y (ULONG * aY) { return smth get_Y (aY); }")
cpp_quote("#define COM_FORWARD_IFramebufferOverlay_GETTER_Y_TO_OBJ(obj) COM_FORWARD_IFramebufferOverlay_GETTER_Y_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFramebufferOverlay_GETTER_Y_TO_BASE(base) COM_FORWARD_IFramebufferOverlay_GETTER_Y_TO (base::)")
cpp_quote("#define COM_FORWARD_IFramebufferOverlay_GETTER_Visible_TO(smth) HRESULT STDMETHODCALLTYPE get_Visible (BOOL * aVisible) { return smth get_Visible (aVisible); }")
cpp_quote("#define COM_FORWARD_IFramebufferOverlay_GETTER_Visible_TO_OBJ(obj) COM_FORWARD_IFramebufferOverlay_GETTER_Visible_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFramebufferOverlay_GETTER_Visible_TO_BASE(base) COM_FORWARD_IFramebufferOverlay_GETTER_Visible_TO (base::)")
cpp_quote("#define COM_FORWARD_IFramebufferOverlay_SETTER_Visible_TO(smth) HRESULT STDMETHODCALLTYPE put_Visible (BOOL aVisible) { return smth put_Visible (aVisible); }")
cpp_quote("#define COM_FORWARD_IFramebufferOverlay_SETTER_Visible_TO_OBJ(obj) COM_FORWARD_IFramebufferOverlay_SETTER_Visible_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFramebufferOverlay_SETTER_Visible_TO_BASE(base) COM_FORWARD_IFramebufferOverlay_SETTER_Visible_TO (base::)")
cpp_quote("#define COM_FORWARD_IFramebufferOverlay_GETTER_Alpha_TO(smth) HRESULT STDMETHODCALLTYPE get_Alpha (ULONG * aAlpha) { return smth get_Alpha (aAlpha); }")
cpp_quote("#define COM_FORWARD_IFramebufferOverlay_GETTER_Alpha_TO_OBJ(obj) COM_FORWARD_IFramebufferOverlay_GETTER_Alpha_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFramebufferOverlay_GETTER_Alpha_TO_BASE(base) COM_FORWARD_IFramebufferOverlay_GETTER_Alpha_TO (base::)")
cpp_quote("#define COM_FORWARD_IFramebufferOverlay_SETTER_Alpha_TO(smth) HRESULT STDMETHODCALLTYPE put_Alpha (ULONG aAlpha) { return smth put_Alpha (aAlpha); }")
cpp_quote("#define COM_FORWARD_IFramebufferOverlay_SETTER_Alpha_TO_OBJ(obj) COM_FORWARD_IFramebufferOverlay_SETTER_Alpha_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFramebufferOverlay_SETTER_Alpha_TO_BASE(base) COM_FORWARD_IFramebufferOverlay_SETTER_Alpha_TO (base::)")
cpp_quote("#define COM_FORWARD_IFramebufferOverlay_Move_TO(smth) HRESULT STDMETHODCALLTYPE Move (ULONG aX, ULONG aY) { return smth Move (aX, aY); }")
cpp_quote("#define COM_FORWARD_IFramebufferOverlay_Move_TO_OBJ(obj) COM_FORWARD_IFramebufferOverlay_Move_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFramebufferOverlay_Move_TO_BASE(base) COM_FORWARD_IFramebufferOverlay_Move_TO (base::)")
cpp_quote("#define COM_FORWARD_IFramebufferOverlay_TO(smth) COM_FORWARD_IFramebufferOverlay_GETTER_X_TO (smth) COM_FORWARD_IFramebufferOverlay_GETTER_Y_TO (smth) COM_FORWARD_IFramebufferOverlay_GETTER_Visible_TO (smth) COM_FORWARD_IFramebufferOverlay_SETTER_Visible_TO (smth) COM_FORWARD_IFramebufferOverlay_GETTER_Alpha_TO (smth) COM_FORWARD_IFramebufferOverlay_SETTER_Alpha_TO (smth) COM_FORWARD_IFramebufferOverlay_Move_TO (smth) ")
cpp_quote("#define COM_FORWARD_IFramebufferOverlay_TO_OBJ(obj) COM_FORWARD_IFramebufferOverlay_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFramebufferOverlay_TO_BASE(base) COM_FORWARD_IFramebufferOverlay_TO (base::)")

[
    uuid(1fa79e39-0cc9-4ab3-9df3-ed3e96b42496),
    object,
    dual,
    oleautomation
]
interface IDisplay : IDispatch
{
    HRESULT GetScreenResolution (
        [in] ULONG aScreenId,
        [out] ULONG * aWidth,
        [out] ULONG * aHeight,
        [out] ULONG * aBitsPerPixel
    );

    HRESULT SetFramebuffer (
        [in] ULONG aScreenId,
        [in] IFramebuffer * aFramebuffer
    );

    HRESULT GetFramebuffer (
        [in] ULONG aScreenId,
        [out] IFramebuffer * * aFramebuffer,
        [out] LONG * aXOrigin,
        [out] LONG * aYOrigin
    );

    HRESULT SetVideoModeHint (
        [in] ULONG aWidth,
        [in] ULONG aHeight,
        [in] ULONG aBitsPerPixel,
        [in] ULONG aDisplay
    );

    HRESULT SetSeamlessMode (
        [in] BOOL aEnabled
    );

    HRESULT TakeScreenShot (
        [in] ULONG aScreenId,
        [in] BYTE * aAddress,
        [in] ULONG aWidth,
        [in] ULONG aHeight
    );

    HRESULT TakeScreenShotToArray (
        [in] ULONG aScreenId,
        [in] ULONG aWidth,
        [in] ULONG aHeight,
        [out, retval] SAFEARRAY(BYTE) * aScreenData
    );

    HRESULT DrawToScreen (
        [in] ULONG aScreenId,
        [in] BYTE * aAddress,
        [in] ULONG aX,
        [in] ULONG aY,
        [in] ULONG aWidth,
        [in] ULONG aHeight
    );

    HRESULT InvalidateAndUpdate();

    HRESULT ResizeCompleted (
        [in] ULONG aScreenId
    );

    HRESULT CompleteVHWACommand (
        [in] BYTE * aCommand
    );

}; /* interface IDisplay */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IDisplay_GetScreenResolution_TO(smth) HRESULT STDMETHODCALLTYPE GetScreenResolution (ULONG aScreenId, ULONG * aWidth, ULONG * aHeight, ULONG * aBitsPerPixel) { return smth GetScreenResolution (aScreenId, aWidth, aHeight, aBitsPerPixel); }")
cpp_quote("#define COM_FORWARD_IDisplay_GetScreenResolution_TO_OBJ(obj) COM_FORWARD_IDisplay_GetScreenResolution_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDisplay_GetScreenResolution_TO_BASE(base) COM_FORWARD_IDisplay_GetScreenResolution_TO (base::)")
cpp_quote("#define COM_FORWARD_IDisplay_SetFramebuffer_TO(smth) HRESULT STDMETHODCALLTYPE SetFramebuffer (ULONG aScreenId, IFramebuffer * aFramebuffer) { return smth SetFramebuffer (aScreenId, aFramebuffer); }")
cpp_quote("#define COM_FORWARD_IDisplay_SetFramebuffer_TO_OBJ(obj) COM_FORWARD_IDisplay_SetFramebuffer_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDisplay_SetFramebuffer_TO_BASE(base) COM_FORWARD_IDisplay_SetFramebuffer_TO (base::)")
cpp_quote("#define COM_FORWARD_IDisplay_GetFramebuffer_TO(smth) HRESULT STDMETHODCALLTYPE GetFramebuffer (ULONG aScreenId, IFramebuffer * * aFramebuffer, LONG * aXOrigin, LONG * aYOrigin) { return smth GetFramebuffer (aScreenId, aFramebuffer, aXOrigin, aYOrigin); }")
cpp_quote("#define COM_FORWARD_IDisplay_GetFramebuffer_TO_OBJ(obj) COM_FORWARD_IDisplay_GetFramebuffer_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDisplay_GetFramebuffer_TO_BASE(base) COM_FORWARD_IDisplay_GetFramebuffer_TO (base::)")
cpp_quote("#define COM_FORWARD_IDisplay_SetVideoModeHint_TO(smth) HRESULT STDMETHODCALLTYPE SetVideoModeHint (ULONG aWidth, ULONG aHeight, ULONG aBitsPerPixel, ULONG aDisplay) { return smth SetVideoModeHint (aWidth, aHeight, aBitsPerPixel, aDisplay); }")
cpp_quote("#define COM_FORWARD_IDisplay_SetVideoModeHint_TO_OBJ(obj) COM_FORWARD_IDisplay_SetVideoModeHint_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDisplay_SetVideoModeHint_TO_BASE(base) COM_FORWARD_IDisplay_SetVideoModeHint_TO (base::)")
cpp_quote("#define COM_FORWARD_IDisplay_SetSeamlessMode_TO(smth) HRESULT STDMETHODCALLTYPE SetSeamlessMode (BOOL aEnabled) { return smth SetSeamlessMode (aEnabled); }")
cpp_quote("#define COM_FORWARD_IDisplay_SetSeamlessMode_TO_OBJ(obj) COM_FORWARD_IDisplay_SetSeamlessMode_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDisplay_SetSeamlessMode_TO_BASE(base) COM_FORWARD_IDisplay_SetSeamlessMode_TO (base::)")
cpp_quote("#define COM_FORWARD_IDisplay_TakeScreenShot_TO(smth) HRESULT STDMETHODCALLTYPE TakeScreenShot (ULONG aScreenId, BYTE * aAddress, ULONG aWidth, ULONG aHeight) { return smth TakeScreenShot (aScreenId, aAddress, aWidth, aHeight); }")
cpp_quote("#define COM_FORWARD_IDisplay_TakeScreenShot_TO_OBJ(obj) COM_FORWARD_IDisplay_TakeScreenShot_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDisplay_TakeScreenShot_TO_BASE(base) COM_FORWARD_IDisplay_TakeScreenShot_TO (base::)")
cpp_quote("#define COM_FORWARD_IDisplay_TakeScreenShotToArray_TO(smth) HRESULT STDMETHODCALLTYPE TakeScreenShotToArray (ULONG aScreenId, ULONG aWidth, ULONG aHeight, SAFEARRAY * * aScreenData) { return smth TakeScreenShotToArray (aScreenId, aWidth, aHeight, aScreenData); }")
cpp_quote("#define COM_FORWARD_IDisplay_TakeScreenShotToArray_TO_OBJ(obj) COM_FORWARD_IDisplay_TakeScreenShotToArray_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDisplay_TakeScreenShotToArray_TO_BASE(base) COM_FORWARD_IDisplay_TakeScreenShotToArray_TO (base::)")
cpp_quote("#define COM_FORWARD_IDisplay_DrawToScreen_TO(smth) HRESULT STDMETHODCALLTYPE DrawToScreen (ULONG aScreenId, BYTE * aAddress, ULONG aX, ULONG aY, ULONG aWidth, ULONG aHeight) { return smth DrawToScreen (aScreenId, aAddress, aX, aY, aWidth, aHeight); }")
cpp_quote("#define COM_FORWARD_IDisplay_DrawToScreen_TO_OBJ(obj) COM_FORWARD_IDisplay_DrawToScreen_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDisplay_DrawToScreen_TO_BASE(base) COM_FORWARD_IDisplay_DrawToScreen_TO (base::)")
cpp_quote("#define COM_FORWARD_IDisplay_InvalidateAndUpdate_TO(smth) HRESULT STDMETHODCALLTYPE InvalidateAndUpdate() { return smth InvalidateAndUpdate(); }")
cpp_quote("#define COM_FORWARD_IDisplay_InvalidateAndUpdate_TO_OBJ(obj) COM_FORWARD_IDisplay_InvalidateAndUpdate_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDisplay_InvalidateAndUpdate_TO_BASE(base) COM_FORWARD_IDisplay_InvalidateAndUpdate_TO (base::)")
cpp_quote("#define COM_FORWARD_IDisplay_ResizeCompleted_TO(smth) HRESULT STDMETHODCALLTYPE ResizeCompleted (ULONG aScreenId) { return smth ResizeCompleted (aScreenId); }")
cpp_quote("#define COM_FORWARD_IDisplay_ResizeCompleted_TO_OBJ(obj) COM_FORWARD_IDisplay_ResizeCompleted_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDisplay_ResizeCompleted_TO_BASE(base) COM_FORWARD_IDisplay_ResizeCompleted_TO (base::)")
cpp_quote("#define COM_FORWARD_IDisplay_CompleteVHWACommand_TO(smth) HRESULT STDMETHODCALLTYPE CompleteVHWACommand (BYTE * aCommand) { return smth CompleteVHWACommand (aCommand); }")
cpp_quote("#define COM_FORWARD_IDisplay_CompleteVHWACommand_TO_OBJ(obj) COM_FORWARD_IDisplay_CompleteVHWACommand_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDisplay_CompleteVHWACommand_TO_BASE(base) COM_FORWARD_IDisplay_CompleteVHWACommand_TO (base::)")
cpp_quote("#define COM_FORWARD_IDisplay_TO(smth) COM_FORWARD_IDisplay_GetScreenResolution_TO (smth) COM_FORWARD_IDisplay_SetFramebuffer_TO (smth) COM_FORWARD_IDisplay_GetFramebuffer_TO (smth) COM_FORWARD_IDisplay_SetVideoModeHint_TO (smth) COM_FORWARD_IDisplay_SetSeamlessMode_TO (smth) COM_FORWARD_IDisplay_TakeScreenShot_TO (smth) COM_FORWARD_IDisplay_TakeScreenShotToArray_TO (smth) COM_FORWARD_IDisplay_DrawToScreen_TO (smth) COM_FORWARD_IDisplay_InvalidateAndUpdate_TO (smth) COM_FORWARD_IDisplay_ResizeCompleted_TO (smth) COM_FORWARD_IDisplay_CompleteVHWACommand_TO (smth) ")
cpp_quote("#define COM_FORWARD_IDisplay_TO_OBJ(obj) COM_FORWARD_IDisplay_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDisplay_TO_BASE(base) COM_FORWARD_IDisplay_TO (base::)")

[
    uuid(5bdb9df8-a5e1-4322-a139-b7a4a734c790),
    object,
    dual,
    oleautomation
]
interface INetworkAdapter : IDispatch
{
    [propget] HRESULT AdapterType ([out, retval] NetworkAdapterType * aAdapterType);
    [propput] HRESULT AdapterType ([in] NetworkAdapterType aAdapterType);

    [propget] HRESULT Slot ([out, retval] ULONG * aSlot);

    [propget] HRESULT Enabled ([out, retval] BOOL * aEnabled);
    [propput] HRESULT Enabled ([in] BOOL aEnabled);

    [propget] HRESULT MACAddress ([out, retval] BSTR * aMACAddress);
    [propput] HRESULT MACAddress ([in] BSTR aMACAddress);

    [propget] HRESULT AttachmentType ([out, retval] NetworkAttachmentType * aAttachmentType);

    [propget] HRESULT HostInterface ([out, retval] BSTR * aHostInterface);
    [propput] HRESULT HostInterface ([in] BSTR aHostInterface);

    [propget] HRESULT InternalNetwork ([out, retval] BSTR * aInternalNetwork);
    [propput] HRESULT InternalNetwork ([in] BSTR aInternalNetwork);

    [propget] HRESULT NATNetwork ([out, retval] BSTR * aNATNetwork);
    [propput] HRESULT NATNetwork ([in] BSTR aNATNetwork);

    [propget] HRESULT VDENetwork ([out, retval] BSTR * aVDENetwork);
    [propput] HRESULT VDENetwork ([in] BSTR aVDENetwork);

    [propget] HRESULT CableConnected ([out, retval] BOOL * aCableConnected);
    [propput] HRESULT CableConnected ([in] BOOL aCableConnected);

    [propget] HRESULT LineSpeed ([out, retval] ULONG * aLineSpeed);
    [propput] HRESULT LineSpeed ([in] ULONG aLineSpeed);

    [propget] HRESULT TraceEnabled ([out, retval] BOOL * aTraceEnabled);
    [propput] HRESULT TraceEnabled ([in] BOOL aTraceEnabled);

    [propget] HRESULT TraceFile ([out, retval] BSTR * aTraceFile);
    [propput] HRESULT TraceFile ([in] BSTR aTraceFile);

    [propget] HRESULT NatDriver ([out, retval] INATEngine * * aNatDriver);

    [propget] HRESULT BootPriority ([out, retval] ULONG * aBootPriority);
    [propput] HRESULT BootPriority ([in] ULONG aBootPriority);

    HRESULT AttachToNAT();

    HRESULT AttachToBridgedInterface();

    HRESULT AttachToInternalNetwork();

    HRESULT AttachToHostOnlyInterface();

    HRESULT AttachToVDE();

    HRESULT Detach();

}; /* interface INetworkAdapter */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_AdapterType_TO(smth) HRESULT STDMETHODCALLTYPE get_AdapterType (NetworkAdapterType * aAdapterType) { return smth get_AdapterType (aAdapterType); }")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_AdapterType_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_AdapterType_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_AdapterType_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_AdapterType_TO (base::)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_SETTER_AdapterType_TO(smth) HRESULT STDMETHODCALLTYPE put_AdapterType (NetworkAdapterType aAdapterType) { return smth put_AdapterType (aAdapterType); }")
cpp_quote("#define COM_FORWARD_INetworkAdapter_SETTER_AdapterType_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_AdapterType_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_SETTER_AdapterType_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_AdapterType_TO (base::)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_Slot_TO(smth) HRESULT STDMETHODCALLTYPE get_Slot (ULONG * aSlot) { return smth get_Slot (aSlot); }")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_Slot_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_Slot_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_Slot_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_Slot_TO (base::)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_Enabled_TO(smth) HRESULT STDMETHODCALLTYPE get_Enabled (BOOL * aEnabled) { return smth get_Enabled (aEnabled); }")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_Enabled_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_Enabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_Enabled_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_Enabled_TO (base::)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_SETTER_Enabled_TO(smth) HRESULT STDMETHODCALLTYPE put_Enabled (BOOL aEnabled) { return smth put_Enabled (aEnabled); }")
cpp_quote("#define COM_FORWARD_INetworkAdapter_SETTER_Enabled_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_Enabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_SETTER_Enabled_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_Enabled_TO (base::)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_MACAddress_TO(smth) HRESULT STDMETHODCALLTYPE get_MACAddress (BSTR * aMACAddress) { return smth get_MACAddress (aMACAddress); }")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_MACAddress_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_MACAddress_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_MACAddress_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_MACAddress_TO (base::)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_SETTER_MACAddress_TO(smth) HRESULT STDMETHODCALLTYPE put_MACAddress (BSTR aMACAddress) { return smth put_MACAddress (aMACAddress); }")
cpp_quote("#define COM_FORWARD_INetworkAdapter_SETTER_MACAddress_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_MACAddress_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_SETTER_MACAddress_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_MACAddress_TO (base::)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_AttachmentType_TO(smth) HRESULT STDMETHODCALLTYPE get_AttachmentType (NetworkAttachmentType * aAttachmentType) { return smth get_AttachmentType (aAttachmentType); }")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_AttachmentType_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_AttachmentType_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_AttachmentType_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_AttachmentType_TO (base::)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_HostInterface_TO(smth) HRESULT STDMETHODCALLTYPE get_HostInterface (BSTR * aHostInterface) { return smth get_HostInterface (aHostInterface); }")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_HostInterface_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_HostInterface_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_HostInterface_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_HostInterface_TO (base::)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_SETTER_HostInterface_TO(smth) HRESULT STDMETHODCALLTYPE put_HostInterface (BSTR aHostInterface) { return smth put_HostInterface (aHostInterface); }")
cpp_quote("#define COM_FORWARD_INetworkAdapter_SETTER_HostInterface_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_HostInterface_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_SETTER_HostInterface_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_HostInterface_TO (base::)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_InternalNetwork_TO(smth) HRESULT STDMETHODCALLTYPE get_InternalNetwork (BSTR * aInternalNetwork) { return smth get_InternalNetwork (aInternalNetwork); }")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_InternalNetwork_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_InternalNetwork_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_InternalNetwork_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_InternalNetwork_TO (base::)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_SETTER_InternalNetwork_TO(smth) HRESULT STDMETHODCALLTYPE put_InternalNetwork (BSTR aInternalNetwork) { return smth put_InternalNetwork (aInternalNetwork); }")
cpp_quote("#define COM_FORWARD_INetworkAdapter_SETTER_InternalNetwork_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_InternalNetwork_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_SETTER_InternalNetwork_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_InternalNetwork_TO (base::)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_NATNetwork_TO(smth) HRESULT STDMETHODCALLTYPE get_NATNetwork (BSTR * aNATNetwork) { return smth get_NATNetwork (aNATNetwork); }")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_NATNetwork_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_NATNetwork_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_NATNetwork_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_NATNetwork_TO (base::)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_SETTER_NATNetwork_TO(smth) HRESULT STDMETHODCALLTYPE put_NATNetwork (BSTR aNATNetwork) { return smth put_NATNetwork (aNATNetwork); }")
cpp_quote("#define COM_FORWARD_INetworkAdapter_SETTER_NATNetwork_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_NATNetwork_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_SETTER_NATNetwork_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_NATNetwork_TO (base::)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_VDENetwork_TO(smth) HRESULT STDMETHODCALLTYPE get_VDENetwork (BSTR * aVDENetwork) { return smth get_VDENetwork (aVDENetwork); }")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_VDENetwork_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_VDENetwork_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_VDENetwork_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_VDENetwork_TO (base::)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_SETTER_VDENetwork_TO(smth) HRESULT STDMETHODCALLTYPE put_VDENetwork (BSTR aVDENetwork) { return smth put_VDENetwork (aVDENetwork); }")
cpp_quote("#define COM_FORWARD_INetworkAdapter_SETTER_VDENetwork_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_VDENetwork_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_SETTER_VDENetwork_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_VDENetwork_TO (base::)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_CableConnected_TO(smth) HRESULT STDMETHODCALLTYPE get_CableConnected (BOOL * aCableConnected) { return smth get_CableConnected (aCableConnected); }")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_CableConnected_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_CableConnected_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_CableConnected_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_CableConnected_TO (base::)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_SETTER_CableConnected_TO(smth) HRESULT STDMETHODCALLTYPE put_CableConnected (BOOL aCableConnected) { return smth put_CableConnected (aCableConnected); }")
cpp_quote("#define COM_FORWARD_INetworkAdapter_SETTER_CableConnected_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_CableConnected_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_SETTER_CableConnected_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_CableConnected_TO (base::)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_LineSpeed_TO(smth) HRESULT STDMETHODCALLTYPE get_LineSpeed (ULONG * aLineSpeed) { return smth get_LineSpeed (aLineSpeed); }")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_LineSpeed_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_LineSpeed_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_LineSpeed_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_LineSpeed_TO (base::)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_SETTER_LineSpeed_TO(smth) HRESULT STDMETHODCALLTYPE put_LineSpeed (ULONG aLineSpeed) { return smth put_LineSpeed (aLineSpeed); }")
cpp_quote("#define COM_FORWARD_INetworkAdapter_SETTER_LineSpeed_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_LineSpeed_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_SETTER_LineSpeed_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_LineSpeed_TO (base::)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_TraceEnabled_TO(smth) HRESULT STDMETHODCALLTYPE get_TraceEnabled (BOOL * aTraceEnabled) { return smth get_TraceEnabled (aTraceEnabled); }")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_TraceEnabled_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_TraceEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_TraceEnabled_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_TraceEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_SETTER_TraceEnabled_TO(smth) HRESULT STDMETHODCALLTYPE put_TraceEnabled (BOOL aTraceEnabled) { return smth put_TraceEnabled (aTraceEnabled); }")
cpp_quote("#define COM_FORWARD_INetworkAdapter_SETTER_TraceEnabled_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_TraceEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_SETTER_TraceEnabled_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_TraceEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_TraceFile_TO(smth) HRESULT STDMETHODCALLTYPE get_TraceFile (BSTR * aTraceFile) { return smth get_TraceFile (aTraceFile); }")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_TraceFile_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_TraceFile_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_TraceFile_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_TraceFile_TO (base::)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_SETTER_TraceFile_TO(smth) HRESULT STDMETHODCALLTYPE put_TraceFile (BSTR aTraceFile) { return smth put_TraceFile (aTraceFile); }")
cpp_quote("#define COM_FORWARD_INetworkAdapter_SETTER_TraceFile_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_TraceFile_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_SETTER_TraceFile_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_TraceFile_TO (base::)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_NatDriver_TO(smth) HRESULT STDMETHODCALLTYPE get_NatDriver (INATEngine * * aNatDriver) { return smth get_NatDriver (aNatDriver); }")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_NatDriver_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_NatDriver_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_NatDriver_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_NatDriver_TO (base::)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_BootPriority_TO(smth) HRESULT STDMETHODCALLTYPE get_BootPriority (ULONG * aBootPriority) { return smth get_BootPriority (aBootPriority); }")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_BootPriority_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_GETTER_BootPriority_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_GETTER_BootPriority_TO_BASE(base) COM_FORWARD_INetworkAdapter_GETTER_BootPriority_TO (base::)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_SETTER_BootPriority_TO(smth) HRESULT STDMETHODCALLTYPE put_BootPriority (ULONG aBootPriority) { return smth put_BootPriority (aBootPriority); }")
cpp_quote("#define COM_FORWARD_INetworkAdapter_SETTER_BootPriority_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_SETTER_BootPriority_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_SETTER_BootPriority_TO_BASE(base) COM_FORWARD_INetworkAdapter_SETTER_BootPriority_TO (base::)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_AttachToNAT_TO(smth) HRESULT STDMETHODCALLTYPE AttachToNAT() { return smth AttachToNAT(); }")
cpp_quote("#define COM_FORWARD_INetworkAdapter_AttachToNAT_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_AttachToNAT_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_AttachToNAT_TO_BASE(base) COM_FORWARD_INetworkAdapter_AttachToNAT_TO (base::)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_AttachToBridgedInterface_TO(smth) HRESULT STDMETHODCALLTYPE AttachToBridgedInterface() { return smth AttachToBridgedInterface(); }")
cpp_quote("#define COM_FORWARD_INetworkAdapter_AttachToBridgedInterface_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_AttachToBridgedInterface_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_AttachToBridgedInterface_TO_BASE(base) COM_FORWARD_INetworkAdapter_AttachToBridgedInterface_TO (base::)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_AttachToInternalNetwork_TO(smth) HRESULT STDMETHODCALLTYPE AttachToInternalNetwork() { return smth AttachToInternalNetwork(); }")
cpp_quote("#define COM_FORWARD_INetworkAdapter_AttachToInternalNetwork_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_AttachToInternalNetwork_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_AttachToInternalNetwork_TO_BASE(base) COM_FORWARD_INetworkAdapter_AttachToInternalNetwork_TO (base::)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_AttachToHostOnlyInterface_TO(smth) HRESULT STDMETHODCALLTYPE AttachToHostOnlyInterface() { return smth AttachToHostOnlyInterface(); }")
cpp_quote("#define COM_FORWARD_INetworkAdapter_AttachToHostOnlyInterface_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_AttachToHostOnlyInterface_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_AttachToHostOnlyInterface_TO_BASE(base) COM_FORWARD_INetworkAdapter_AttachToHostOnlyInterface_TO (base::)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_AttachToVDE_TO(smth) HRESULT STDMETHODCALLTYPE AttachToVDE() { return smth AttachToVDE(); }")
cpp_quote("#define COM_FORWARD_INetworkAdapter_AttachToVDE_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_AttachToVDE_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_AttachToVDE_TO_BASE(base) COM_FORWARD_INetworkAdapter_AttachToVDE_TO (base::)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_Detach_TO(smth) HRESULT STDMETHODCALLTYPE Detach() { return smth Detach(); }")
cpp_quote("#define COM_FORWARD_INetworkAdapter_Detach_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_Detach_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_Detach_TO_BASE(base) COM_FORWARD_INetworkAdapter_Detach_TO (base::)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_TO(smth) COM_FORWARD_INetworkAdapter_GETTER_AdapterType_TO (smth) COM_FORWARD_INetworkAdapter_SETTER_AdapterType_TO (smth) COM_FORWARD_INetworkAdapter_GETTER_Slot_TO (smth) COM_FORWARD_INetworkAdapter_GETTER_Enabled_TO (smth) COM_FORWARD_INetworkAdapter_SETTER_Enabled_TO (smth) COM_FORWARD_INetworkAdapter_GETTER_MACAddress_TO (smth) COM_FORWARD_INetworkAdapter_SETTER_MACAddress_TO (smth) COM_FORWARD_INetworkAdapter_GETTER_AttachmentType_TO (smth) COM_FORWARD_INetworkAdapter_GETTER_HostInterface_TO (smth) COM_FORWARD_INetworkAdapter_SETTER_HostInterface_TO (smth) COM_FORWARD_INetworkAdapter_GETTER_InternalNetwork_TO (smth) COM_FORWARD_INetworkAdapter_SETTER_InternalNetwork_TO (smth) COM_FORWARD_INetworkAdapter_GETTER_NATNetwork_TO (smth) COM_FORWARD_INetworkAdapter_SETTER_NATNetwork_TO (smth) COM_FORWARD_INetworkAdapter_GETTER_VDENetwork_TO (smth) COM_FORWARD_INetworkAdapter_SETTER_VDENetwork_TO (smth) COM_FORWARD_INetworkAdapter_GETTER_CableConnected_TO (smth) COM_FORWARD_INetworkAdapter_SETTER_CableConnected_TO (smth) COM_FORWARD_INetworkAdapter_GETTER_LineSpeed_TO (smth) COM_FORWARD_INetworkAdapter_SETTER_LineSpeed_TO (smth) COM_FORWARD_INetworkAdapter_GETTER_TraceEnabled_TO (smth) COM_FORWARD_INetworkAdapter_SETTER_TraceEnabled_TO (smth) COM_FORWARD_INetworkAdapter_GETTER_TraceFile_TO (smth) COM_FORWARD_INetworkAdapter_SETTER_TraceFile_TO (smth) COM_FORWARD_INetworkAdapter_GETTER_NatDriver_TO (smth) COM_FORWARD_INetworkAdapter_GETTER_BootPriority_TO (smth) COM_FORWARD_INetworkAdapter_SETTER_BootPriority_TO (smth) COM_FORWARD_INetworkAdapter_AttachToNAT_TO (smth) COM_FORWARD_INetworkAdapter_AttachToBridgedInterface_TO (smth) COM_FORWARD_INetworkAdapter_AttachToInternalNetwork_TO (smth) COM_FORWARD_INetworkAdapter_AttachToHostOnlyInterface_TO (smth) COM_FORWARD_INetworkAdapter_AttachToVDE_TO (smth) COM_FORWARD_INetworkAdapter_Detach_TO (smth) ")
cpp_quote("#define COM_FORWARD_INetworkAdapter_TO_OBJ(obj) COM_FORWARD_INetworkAdapter_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INetworkAdapter_TO_BASE(base) COM_FORWARD_INetworkAdapter_TO (base::)")

[
    uuid(937f6970-5103-4745-b78e-d28dcf1479a8),
    object,
    dual,
    oleautomation
]
interface ISerialPort : IDispatch
{
    [propget] HRESULT Slot ([out, retval] ULONG * aSlot);

    [propget] HRESULT Enabled ([out, retval] BOOL * aEnabled);
    [propput] HRESULT Enabled ([in] BOOL aEnabled);

    [propget] HRESULT IOBase ([out, retval] ULONG * aIOBase);
    [propput] HRESULT IOBase ([in] ULONG aIOBase);

    [propget] HRESULT IRQ ([out, retval] ULONG * aIRQ);
    [propput] HRESULT IRQ ([in] ULONG aIRQ);

    [propget] HRESULT HostMode ([out, retval] PortMode * aHostMode);
    [propput] HRESULT HostMode ([in] PortMode aHostMode);

    [propget] HRESULT Server ([out, retval] BOOL * aServer);
    [propput] HRESULT Server ([in] BOOL aServer);

    [propget] HRESULT Path ([out, retval] BSTR * aPath);
    [propput] HRESULT Path ([in] BSTR aPath);

}; /* interface ISerialPort */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_ISerialPort_GETTER_Slot_TO(smth) HRESULT STDMETHODCALLTYPE get_Slot (ULONG * aSlot) { return smth get_Slot (aSlot); }")
cpp_quote("#define COM_FORWARD_ISerialPort_GETTER_Slot_TO_OBJ(obj) COM_FORWARD_ISerialPort_GETTER_Slot_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISerialPort_GETTER_Slot_TO_BASE(base) COM_FORWARD_ISerialPort_GETTER_Slot_TO (base::)")
cpp_quote("#define COM_FORWARD_ISerialPort_GETTER_Enabled_TO(smth) HRESULT STDMETHODCALLTYPE get_Enabled (BOOL * aEnabled) { return smth get_Enabled (aEnabled); }")
cpp_quote("#define COM_FORWARD_ISerialPort_GETTER_Enabled_TO_OBJ(obj) COM_FORWARD_ISerialPort_GETTER_Enabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISerialPort_GETTER_Enabled_TO_BASE(base) COM_FORWARD_ISerialPort_GETTER_Enabled_TO (base::)")
cpp_quote("#define COM_FORWARD_ISerialPort_SETTER_Enabled_TO(smth) HRESULT STDMETHODCALLTYPE put_Enabled (BOOL aEnabled) { return smth put_Enabled (aEnabled); }")
cpp_quote("#define COM_FORWARD_ISerialPort_SETTER_Enabled_TO_OBJ(obj) COM_FORWARD_ISerialPort_SETTER_Enabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISerialPort_SETTER_Enabled_TO_BASE(base) COM_FORWARD_ISerialPort_SETTER_Enabled_TO (base::)")
cpp_quote("#define COM_FORWARD_ISerialPort_GETTER_IOBase_TO(smth) HRESULT STDMETHODCALLTYPE get_IOBase (ULONG * aIOBase) { return smth get_IOBase (aIOBase); }")
cpp_quote("#define COM_FORWARD_ISerialPort_GETTER_IOBase_TO_OBJ(obj) COM_FORWARD_ISerialPort_GETTER_IOBase_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISerialPort_GETTER_IOBase_TO_BASE(base) COM_FORWARD_ISerialPort_GETTER_IOBase_TO (base::)")
cpp_quote("#define COM_FORWARD_ISerialPort_SETTER_IOBase_TO(smth) HRESULT STDMETHODCALLTYPE put_IOBase (ULONG aIOBase) { return smth put_IOBase (aIOBase); }")
cpp_quote("#define COM_FORWARD_ISerialPort_SETTER_IOBase_TO_OBJ(obj) COM_FORWARD_ISerialPort_SETTER_IOBase_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISerialPort_SETTER_IOBase_TO_BASE(base) COM_FORWARD_ISerialPort_SETTER_IOBase_TO (base::)")
cpp_quote("#define COM_FORWARD_ISerialPort_GETTER_IRQ_TO(smth) HRESULT STDMETHODCALLTYPE get_IRQ (ULONG * aIRQ) { return smth get_IRQ (aIRQ); }")
cpp_quote("#define COM_FORWARD_ISerialPort_GETTER_IRQ_TO_OBJ(obj) COM_FORWARD_ISerialPort_GETTER_IRQ_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISerialPort_GETTER_IRQ_TO_BASE(base) COM_FORWARD_ISerialPort_GETTER_IRQ_TO (base::)")
cpp_quote("#define COM_FORWARD_ISerialPort_SETTER_IRQ_TO(smth) HRESULT STDMETHODCALLTYPE put_IRQ (ULONG aIRQ) { return smth put_IRQ (aIRQ); }")
cpp_quote("#define COM_FORWARD_ISerialPort_SETTER_IRQ_TO_OBJ(obj) COM_FORWARD_ISerialPort_SETTER_IRQ_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISerialPort_SETTER_IRQ_TO_BASE(base) COM_FORWARD_ISerialPort_SETTER_IRQ_TO (base::)")
cpp_quote("#define COM_FORWARD_ISerialPort_GETTER_HostMode_TO(smth) HRESULT STDMETHODCALLTYPE get_HostMode (PortMode * aHostMode) { return smth get_HostMode (aHostMode); }")
cpp_quote("#define COM_FORWARD_ISerialPort_GETTER_HostMode_TO_OBJ(obj) COM_FORWARD_ISerialPort_GETTER_HostMode_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISerialPort_GETTER_HostMode_TO_BASE(base) COM_FORWARD_ISerialPort_GETTER_HostMode_TO (base::)")
cpp_quote("#define COM_FORWARD_ISerialPort_SETTER_HostMode_TO(smth) HRESULT STDMETHODCALLTYPE put_HostMode (PortMode aHostMode) { return smth put_HostMode (aHostMode); }")
cpp_quote("#define COM_FORWARD_ISerialPort_SETTER_HostMode_TO_OBJ(obj) COM_FORWARD_ISerialPort_SETTER_HostMode_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISerialPort_SETTER_HostMode_TO_BASE(base) COM_FORWARD_ISerialPort_SETTER_HostMode_TO (base::)")
cpp_quote("#define COM_FORWARD_ISerialPort_GETTER_Server_TO(smth) HRESULT STDMETHODCALLTYPE get_Server (BOOL * aServer) { return smth get_Server (aServer); }")
cpp_quote("#define COM_FORWARD_ISerialPort_GETTER_Server_TO_OBJ(obj) COM_FORWARD_ISerialPort_GETTER_Server_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISerialPort_GETTER_Server_TO_BASE(base) COM_FORWARD_ISerialPort_GETTER_Server_TO (base::)")
cpp_quote("#define COM_FORWARD_ISerialPort_SETTER_Server_TO(smth) HRESULT STDMETHODCALLTYPE put_Server (BOOL aServer) { return smth put_Server (aServer); }")
cpp_quote("#define COM_FORWARD_ISerialPort_SETTER_Server_TO_OBJ(obj) COM_FORWARD_ISerialPort_SETTER_Server_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISerialPort_SETTER_Server_TO_BASE(base) COM_FORWARD_ISerialPort_SETTER_Server_TO (base::)")
cpp_quote("#define COM_FORWARD_ISerialPort_GETTER_Path_TO(smth) HRESULT STDMETHODCALLTYPE get_Path (BSTR * aPath) { return smth get_Path (aPath); }")
cpp_quote("#define COM_FORWARD_ISerialPort_GETTER_Path_TO_OBJ(obj) COM_FORWARD_ISerialPort_GETTER_Path_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISerialPort_GETTER_Path_TO_BASE(base) COM_FORWARD_ISerialPort_GETTER_Path_TO (base::)")
cpp_quote("#define COM_FORWARD_ISerialPort_SETTER_Path_TO(smth) HRESULT STDMETHODCALLTYPE put_Path (BSTR aPath) { return smth put_Path (aPath); }")
cpp_quote("#define COM_FORWARD_ISerialPort_SETTER_Path_TO_OBJ(obj) COM_FORWARD_ISerialPort_SETTER_Path_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISerialPort_SETTER_Path_TO_BASE(base) COM_FORWARD_ISerialPort_SETTER_Path_TO (base::)")
cpp_quote("#define COM_FORWARD_ISerialPort_TO(smth) COM_FORWARD_ISerialPort_GETTER_Slot_TO (smth) COM_FORWARD_ISerialPort_GETTER_Enabled_TO (smth) COM_FORWARD_ISerialPort_SETTER_Enabled_TO (smth) COM_FORWARD_ISerialPort_GETTER_IOBase_TO (smth) COM_FORWARD_ISerialPort_SETTER_IOBase_TO (smth) COM_FORWARD_ISerialPort_GETTER_IRQ_TO (smth) COM_FORWARD_ISerialPort_SETTER_IRQ_TO (smth) COM_FORWARD_ISerialPort_GETTER_HostMode_TO (smth) COM_FORWARD_ISerialPort_SETTER_HostMode_TO (smth) COM_FORWARD_ISerialPort_GETTER_Server_TO (smth) COM_FORWARD_ISerialPort_SETTER_Server_TO (smth) COM_FORWARD_ISerialPort_GETTER_Path_TO (smth) COM_FORWARD_ISerialPort_SETTER_Path_TO (smth) ")
cpp_quote("#define COM_FORWARD_ISerialPort_TO_OBJ(obj) COM_FORWARD_ISerialPort_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISerialPort_TO_BASE(base) COM_FORWARD_ISerialPort_TO (base::)")

[
    uuid(0c925f06-dd10-4b77-8de8-294d738c3214),
    object,
    dual,
    oleautomation
]
interface IParallelPort : IDispatch
{
    [propget] HRESULT Slot ([out, retval] ULONG * aSlot);

    [propget] HRESULT Enabled ([out, retval] BOOL * aEnabled);
    [propput] HRESULT Enabled ([in] BOOL aEnabled);

    [propget] HRESULT IOBase ([out, retval] ULONG * aIOBase);
    [propput] HRESULT IOBase ([in] ULONG aIOBase);

    [propget] HRESULT IRQ ([out, retval] ULONG * aIRQ);
    [propput] HRESULT IRQ ([in] ULONG aIRQ);

    [propget] HRESULT Path ([out, retval] BSTR * aPath);
    [propput] HRESULT Path ([in] BSTR aPath);

}; /* interface IParallelPort */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IParallelPort_GETTER_Slot_TO(smth) HRESULT STDMETHODCALLTYPE get_Slot (ULONG * aSlot) { return smth get_Slot (aSlot); }")
cpp_quote("#define COM_FORWARD_IParallelPort_GETTER_Slot_TO_OBJ(obj) COM_FORWARD_IParallelPort_GETTER_Slot_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IParallelPort_GETTER_Slot_TO_BASE(base) COM_FORWARD_IParallelPort_GETTER_Slot_TO (base::)")
cpp_quote("#define COM_FORWARD_IParallelPort_GETTER_Enabled_TO(smth) HRESULT STDMETHODCALLTYPE get_Enabled (BOOL * aEnabled) { return smth get_Enabled (aEnabled); }")
cpp_quote("#define COM_FORWARD_IParallelPort_GETTER_Enabled_TO_OBJ(obj) COM_FORWARD_IParallelPort_GETTER_Enabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IParallelPort_GETTER_Enabled_TO_BASE(base) COM_FORWARD_IParallelPort_GETTER_Enabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IParallelPort_SETTER_Enabled_TO(smth) HRESULT STDMETHODCALLTYPE put_Enabled (BOOL aEnabled) { return smth put_Enabled (aEnabled); }")
cpp_quote("#define COM_FORWARD_IParallelPort_SETTER_Enabled_TO_OBJ(obj) COM_FORWARD_IParallelPort_SETTER_Enabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IParallelPort_SETTER_Enabled_TO_BASE(base) COM_FORWARD_IParallelPort_SETTER_Enabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IParallelPort_GETTER_IOBase_TO(smth) HRESULT STDMETHODCALLTYPE get_IOBase (ULONG * aIOBase) { return smth get_IOBase (aIOBase); }")
cpp_quote("#define COM_FORWARD_IParallelPort_GETTER_IOBase_TO_OBJ(obj) COM_FORWARD_IParallelPort_GETTER_IOBase_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IParallelPort_GETTER_IOBase_TO_BASE(base) COM_FORWARD_IParallelPort_GETTER_IOBase_TO (base::)")
cpp_quote("#define COM_FORWARD_IParallelPort_SETTER_IOBase_TO(smth) HRESULT STDMETHODCALLTYPE put_IOBase (ULONG aIOBase) { return smth put_IOBase (aIOBase); }")
cpp_quote("#define COM_FORWARD_IParallelPort_SETTER_IOBase_TO_OBJ(obj) COM_FORWARD_IParallelPort_SETTER_IOBase_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IParallelPort_SETTER_IOBase_TO_BASE(base) COM_FORWARD_IParallelPort_SETTER_IOBase_TO (base::)")
cpp_quote("#define COM_FORWARD_IParallelPort_GETTER_IRQ_TO(smth) HRESULT STDMETHODCALLTYPE get_IRQ (ULONG * aIRQ) { return smth get_IRQ (aIRQ); }")
cpp_quote("#define COM_FORWARD_IParallelPort_GETTER_IRQ_TO_OBJ(obj) COM_FORWARD_IParallelPort_GETTER_IRQ_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IParallelPort_GETTER_IRQ_TO_BASE(base) COM_FORWARD_IParallelPort_GETTER_IRQ_TO (base::)")
cpp_quote("#define COM_FORWARD_IParallelPort_SETTER_IRQ_TO(smth) HRESULT STDMETHODCALLTYPE put_IRQ (ULONG aIRQ) { return smth put_IRQ (aIRQ); }")
cpp_quote("#define COM_FORWARD_IParallelPort_SETTER_IRQ_TO_OBJ(obj) COM_FORWARD_IParallelPort_SETTER_IRQ_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IParallelPort_SETTER_IRQ_TO_BASE(base) COM_FORWARD_IParallelPort_SETTER_IRQ_TO (base::)")
cpp_quote("#define COM_FORWARD_IParallelPort_GETTER_Path_TO(smth) HRESULT STDMETHODCALLTYPE get_Path (BSTR * aPath) { return smth get_Path (aPath); }")
cpp_quote("#define COM_FORWARD_IParallelPort_GETTER_Path_TO_OBJ(obj) COM_FORWARD_IParallelPort_GETTER_Path_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IParallelPort_GETTER_Path_TO_BASE(base) COM_FORWARD_IParallelPort_GETTER_Path_TO (base::)")
cpp_quote("#define COM_FORWARD_IParallelPort_SETTER_Path_TO(smth) HRESULT STDMETHODCALLTYPE put_Path (BSTR aPath) { return smth put_Path (aPath); }")
cpp_quote("#define COM_FORWARD_IParallelPort_SETTER_Path_TO_OBJ(obj) COM_FORWARD_IParallelPort_SETTER_Path_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IParallelPort_SETTER_Path_TO_BASE(base) COM_FORWARD_IParallelPort_SETTER_Path_TO (base::)")
cpp_quote("#define COM_FORWARD_IParallelPort_TO(smth) COM_FORWARD_IParallelPort_GETTER_Slot_TO (smth) COM_FORWARD_IParallelPort_GETTER_Enabled_TO (smth) COM_FORWARD_IParallelPort_SETTER_Enabled_TO (smth) COM_FORWARD_IParallelPort_GETTER_IOBase_TO (smth) COM_FORWARD_IParallelPort_SETTER_IOBase_TO (smth) COM_FORWARD_IParallelPort_GETTER_IRQ_TO (smth) COM_FORWARD_IParallelPort_SETTER_IRQ_TO (smth) COM_FORWARD_IParallelPort_GETTER_Path_TO (smth) COM_FORWARD_IParallelPort_SETTER_Path_TO (smth) ")
cpp_quote("#define COM_FORWARD_IParallelPort_TO_OBJ(obj) COM_FORWARD_IParallelPort_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IParallelPort_TO_BASE(base) COM_FORWARD_IParallelPort_TO (base::)")

[
    uuid(b0b2a2dd-0627-4502-91c2-ddc5e77609e0),
    object,
    dual,
    oleautomation
]
interface IMachineDebugger : IDispatch
{
    [propget] HRESULT Singlestep ([out, retval] BOOL * aSinglestep);
    [propput] HRESULT Singlestep ([in] BOOL aSinglestep);

    [propget] HRESULT RecompileUser ([out, retval] BOOL * aRecompileUser);
    [propput] HRESULT RecompileUser ([in] BOOL aRecompileUser);

    [propget] HRESULT RecompileSupervisor ([out, retval] BOOL * aRecompileSupervisor);
    [propput] HRESULT RecompileSupervisor ([in] BOOL aRecompileSupervisor);

    [propget] HRESULT PATMEnabled ([out, retval] BOOL * aPATMEnabled);
    [propput] HRESULT PATMEnabled ([in] BOOL aPATMEnabled);

    [propget] HRESULT CSAMEnabled ([out, retval] BOOL * aCSAMEnabled);
    [propput] HRESULT CSAMEnabled ([in] BOOL aCSAMEnabled);

    [propget] HRESULT LogEnabled ([out, retval] BOOL * aLogEnabled);
    [propput] HRESULT LogEnabled ([in] BOOL aLogEnabled);

    [propget] HRESULT HWVirtExEnabled ([out, retval] BOOL * aHWVirtExEnabled);

    [propget] HRESULT HWVirtExNestedPagingEnabled ([out, retval] BOOL * aHWVirtExNestedPagingEnabled);

    [propget] HRESULT HWVirtExVPIDEnabled ([out, retval] BOOL * aHWVirtExVPIDEnabled);

    [propget] HRESULT PAEEnabled ([out, retval] BOOL * aPAEEnabled);

    [propget] HRESULT VirtualTimeRate ([out, retval] ULONG * aVirtualTimeRate);
    [propput] HRESULT VirtualTimeRate ([in] ULONG aVirtualTimeRate);

    [propget] HRESULT VM ([out, retval] ULONG64 * aVM);

    HRESULT ResetStats (
        [in] BSTR aPattern
    );

    HRESULT DumpStats (
        [in] BSTR aPattern
    );

    HRESULT GetStats (
        [in] BSTR aPattern,
        [in] BOOL aWithDescriptions,
        [out] BSTR * aStats
    );

    HRESULT InjectNMI();

}; /* interface IMachineDebugger */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IMachineDebugger_GETTER_Singlestep_TO(smth) HRESULT STDMETHODCALLTYPE get_Singlestep (BOOL * aSinglestep) { return smth get_Singlestep (aSinglestep); }")
cpp_quote("#define COM_FORWARD_IMachineDebugger_GETTER_Singlestep_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_Singlestep_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_GETTER_Singlestep_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_Singlestep_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_SETTER_Singlestep_TO(smth) HRESULT STDMETHODCALLTYPE put_Singlestep (BOOL aSinglestep) { return smth put_Singlestep (aSinglestep); }")
cpp_quote("#define COM_FORWARD_IMachineDebugger_SETTER_Singlestep_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_SETTER_Singlestep_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_SETTER_Singlestep_TO_BASE(base) COM_FORWARD_IMachineDebugger_SETTER_Singlestep_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_GETTER_RecompileUser_TO(smth) HRESULT STDMETHODCALLTYPE get_RecompileUser (BOOL * aRecompileUser) { return smth get_RecompileUser (aRecompileUser); }")
cpp_quote("#define COM_FORWARD_IMachineDebugger_GETTER_RecompileUser_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_RecompileUser_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_GETTER_RecompileUser_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_RecompileUser_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_SETTER_RecompileUser_TO(smth) HRESULT STDMETHODCALLTYPE put_RecompileUser (BOOL aRecompileUser) { return smth put_RecompileUser (aRecompileUser); }")
cpp_quote("#define COM_FORWARD_IMachineDebugger_SETTER_RecompileUser_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_SETTER_RecompileUser_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_SETTER_RecompileUser_TO_BASE(base) COM_FORWARD_IMachineDebugger_SETTER_RecompileUser_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_GETTER_RecompileSupervisor_TO(smth) HRESULT STDMETHODCALLTYPE get_RecompileSupervisor (BOOL * aRecompileSupervisor) { return smth get_RecompileSupervisor (aRecompileSupervisor); }")
cpp_quote("#define COM_FORWARD_IMachineDebugger_GETTER_RecompileSupervisor_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_RecompileSupervisor_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_GETTER_RecompileSupervisor_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_RecompileSupervisor_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_SETTER_RecompileSupervisor_TO(smth) HRESULT STDMETHODCALLTYPE put_RecompileSupervisor (BOOL aRecompileSupervisor) { return smth put_RecompileSupervisor (aRecompileSupervisor); }")
cpp_quote("#define COM_FORWARD_IMachineDebugger_SETTER_RecompileSupervisor_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_SETTER_RecompileSupervisor_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_SETTER_RecompileSupervisor_TO_BASE(base) COM_FORWARD_IMachineDebugger_SETTER_RecompileSupervisor_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_GETTER_PATMEnabled_TO(smth) HRESULT STDMETHODCALLTYPE get_PATMEnabled (BOOL * aPATMEnabled) { return smth get_PATMEnabled (aPATMEnabled); }")
cpp_quote("#define COM_FORWARD_IMachineDebugger_GETTER_PATMEnabled_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_PATMEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_GETTER_PATMEnabled_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_PATMEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_SETTER_PATMEnabled_TO(smth) HRESULT STDMETHODCALLTYPE put_PATMEnabled (BOOL aPATMEnabled) { return smth put_PATMEnabled (aPATMEnabled); }")
cpp_quote("#define COM_FORWARD_IMachineDebugger_SETTER_PATMEnabled_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_SETTER_PATMEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_SETTER_PATMEnabled_TO_BASE(base) COM_FORWARD_IMachineDebugger_SETTER_PATMEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_GETTER_CSAMEnabled_TO(smth) HRESULT STDMETHODCALLTYPE get_CSAMEnabled (BOOL * aCSAMEnabled) { return smth get_CSAMEnabled (aCSAMEnabled); }")
cpp_quote("#define COM_FORWARD_IMachineDebugger_GETTER_CSAMEnabled_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_CSAMEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_GETTER_CSAMEnabled_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_CSAMEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_SETTER_CSAMEnabled_TO(smth) HRESULT STDMETHODCALLTYPE put_CSAMEnabled (BOOL aCSAMEnabled) { return smth put_CSAMEnabled (aCSAMEnabled); }")
cpp_quote("#define COM_FORWARD_IMachineDebugger_SETTER_CSAMEnabled_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_SETTER_CSAMEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_SETTER_CSAMEnabled_TO_BASE(base) COM_FORWARD_IMachineDebugger_SETTER_CSAMEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_GETTER_LogEnabled_TO(smth) HRESULT STDMETHODCALLTYPE get_LogEnabled (BOOL * aLogEnabled) { return smth get_LogEnabled (aLogEnabled); }")
cpp_quote("#define COM_FORWARD_IMachineDebugger_GETTER_LogEnabled_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_LogEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_GETTER_LogEnabled_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_LogEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_SETTER_LogEnabled_TO(smth) HRESULT STDMETHODCALLTYPE put_LogEnabled (BOOL aLogEnabled) { return smth put_LogEnabled (aLogEnabled); }")
cpp_quote("#define COM_FORWARD_IMachineDebugger_SETTER_LogEnabled_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_SETTER_LogEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_SETTER_LogEnabled_TO_BASE(base) COM_FORWARD_IMachineDebugger_SETTER_LogEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_GETTER_HWVirtExEnabled_TO(smth) HRESULT STDMETHODCALLTYPE get_HWVirtExEnabled (BOOL * aHWVirtExEnabled) { return smth get_HWVirtExEnabled (aHWVirtExEnabled); }")
cpp_quote("#define COM_FORWARD_IMachineDebugger_GETTER_HWVirtExEnabled_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_HWVirtExEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_GETTER_HWVirtExEnabled_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_HWVirtExEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_GETTER_HWVirtExNestedPagingEnabled_TO(smth) HRESULT STDMETHODCALLTYPE get_HWVirtExNestedPagingEnabled (BOOL * aHWVirtExNestedPagingEnabled) { return smth get_HWVirtExNestedPagingEnabled (aHWVirtExNestedPagingEnabled); }")
cpp_quote("#define COM_FORWARD_IMachineDebugger_GETTER_HWVirtExNestedPagingEnabled_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_HWVirtExNestedPagingEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_GETTER_HWVirtExNestedPagingEnabled_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_HWVirtExNestedPagingEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_GETTER_HWVirtExVPIDEnabled_TO(smth) HRESULT STDMETHODCALLTYPE get_HWVirtExVPIDEnabled (BOOL * aHWVirtExVPIDEnabled) { return smth get_HWVirtExVPIDEnabled (aHWVirtExVPIDEnabled); }")
cpp_quote("#define COM_FORWARD_IMachineDebugger_GETTER_HWVirtExVPIDEnabled_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_HWVirtExVPIDEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_GETTER_HWVirtExVPIDEnabled_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_HWVirtExVPIDEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_GETTER_PAEEnabled_TO(smth) HRESULT STDMETHODCALLTYPE get_PAEEnabled (BOOL * aPAEEnabled) { return smth get_PAEEnabled (aPAEEnabled); }")
cpp_quote("#define COM_FORWARD_IMachineDebugger_GETTER_PAEEnabled_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_PAEEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_GETTER_PAEEnabled_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_PAEEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_GETTER_VirtualTimeRate_TO(smth) HRESULT STDMETHODCALLTYPE get_VirtualTimeRate (ULONG * aVirtualTimeRate) { return smth get_VirtualTimeRate (aVirtualTimeRate); }")
cpp_quote("#define COM_FORWARD_IMachineDebugger_GETTER_VirtualTimeRate_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_VirtualTimeRate_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_GETTER_VirtualTimeRate_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_VirtualTimeRate_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_SETTER_VirtualTimeRate_TO(smth) HRESULT STDMETHODCALLTYPE put_VirtualTimeRate (ULONG aVirtualTimeRate) { return smth put_VirtualTimeRate (aVirtualTimeRate); }")
cpp_quote("#define COM_FORWARD_IMachineDebugger_SETTER_VirtualTimeRate_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_SETTER_VirtualTimeRate_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_SETTER_VirtualTimeRate_TO_BASE(base) COM_FORWARD_IMachineDebugger_SETTER_VirtualTimeRate_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_GETTER_VM_TO(smth) HRESULT STDMETHODCALLTYPE get_VM (ULONG64 * aVM) { return smth get_VM (aVM); }")
cpp_quote("#define COM_FORWARD_IMachineDebugger_GETTER_VM_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GETTER_VM_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_GETTER_VM_TO_BASE(base) COM_FORWARD_IMachineDebugger_GETTER_VM_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_ResetStats_TO(smth) HRESULT STDMETHODCALLTYPE ResetStats (BSTR aPattern) { return smth ResetStats (aPattern); }")
cpp_quote("#define COM_FORWARD_IMachineDebugger_ResetStats_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_ResetStats_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_ResetStats_TO_BASE(base) COM_FORWARD_IMachineDebugger_ResetStats_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_DumpStats_TO(smth) HRESULT STDMETHODCALLTYPE DumpStats (BSTR aPattern) { return smth DumpStats (aPattern); }")
cpp_quote("#define COM_FORWARD_IMachineDebugger_DumpStats_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_DumpStats_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_DumpStats_TO_BASE(base) COM_FORWARD_IMachineDebugger_DumpStats_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_GetStats_TO(smth) HRESULT STDMETHODCALLTYPE GetStats (BSTR aPattern, BOOL aWithDescriptions, BSTR * aStats) { return smth GetStats (aPattern, aWithDescriptions, aStats); }")
cpp_quote("#define COM_FORWARD_IMachineDebugger_GetStats_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_GetStats_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_GetStats_TO_BASE(base) COM_FORWARD_IMachineDebugger_GetStats_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_InjectNMI_TO(smth) HRESULT STDMETHODCALLTYPE InjectNMI() { return smth InjectNMI(); }")
cpp_quote("#define COM_FORWARD_IMachineDebugger_InjectNMI_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_InjectNMI_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_InjectNMI_TO_BASE(base) COM_FORWARD_IMachineDebugger_InjectNMI_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_TO(smth) COM_FORWARD_IMachineDebugger_GETTER_Singlestep_TO (smth) COM_FORWARD_IMachineDebugger_SETTER_Singlestep_TO (smth) COM_FORWARD_IMachineDebugger_GETTER_RecompileUser_TO (smth) COM_FORWARD_IMachineDebugger_SETTER_RecompileUser_TO (smth) COM_FORWARD_IMachineDebugger_GETTER_RecompileSupervisor_TO (smth) COM_FORWARD_IMachineDebugger_SETTER_RecompileSupervisor_TO (smth) COM_FORWARD_IMachineDebugger_GETTER_PATMEnabled_TO (smth) COM_FORWARD_IMachineDebugger_SETTER_PATMEnabled_TO (smth) COM_FORWARD_IMachineDebugger_GETTER_CSAMEnabled_TO (smth) COM_FORWARD_IMachineDebugger_SETTER_CSAMEnabled_TO (smth) COM_FORWARD_IMachineDebugger_GETTER_LogEnabled_TO (smth) COM_FORWARD_IMachineDebugger_SETTER_LogEnabled_TO (smth) COM_FORWARD_IMachineDebugger_GETTER_HWVirtExEnabled_TO (smth) COM_FORWARD_IMachineDebugger_GETTER_HWVirtExNestedPagingEnabled_TO (smth) COM_FORWARD_IMachineDebugger_GETTER_HWVirtExVPIDEnabled_TO (smth) COM_FORWARD_IMachineDebugger_GETTER_PAEEnabled_TO (smth) COM_FORWARD_IMachineDebugger_GETTER_VirtualTimeRate_TO (smth) COM_FORWARD_IMachineDebugger_SETTER_VirtualTimeRate_TO (smth) COM_FORWARD_IMachineDebugger_GETTER_VM_TO (smth) COM_FORWARD_IMachineDebugger_ResetStats_TO (smth) COM_FORWARD_IMachineDebugger_DumpStats_TO (smth) COM_FORWARD_IMachineDebugger_GetStats_TO (smth) COM_FORWARD_IMachineDebugger_InjectNMI_TO (smth) ")
cpp_quote("#define COM_FORWARD_IMachineDebugger_TO_OBJ(obj) COM_FORWARD_IMachineDebugger_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachineDebugger_TO_BASE(base) COM_FORWARD_IMachineDebugger_TO (base::)")

[
    uuid(6fdcccc5-abd3-4fec-9387-2ad3914fc4a8),
    object,
    dual,
    oleautomation
]
interface IUSBController : IDispatch
{
    [propget] HRESULT Enabled ([out, retval] BOOL * aEnabled);
    [propput] HRESULT Enabled ([in] BOOL aEnabled);

    [propget] HRESULT EnabledEhci ([out, retval] BOOL * aEnabledEhci);
    [propput] HRESULT EnabledEhci ([in] BOOL aEnabledEhci);

    [propget] HRESULT ProxyAvailable ([out, retval] BOOL * aProxyAvailable);

    [propget] HRESULT USBStandard ([out, retval] USHORT * aUSBStandard);

    [propget] HRESULT DeviceFilters ([out, retval] SAFEARRAY(IUSBDeviceFilter *) * aDeviceFilters);

    HRESULT CreateDeviceFilter (
        [in] BSTR aName,
        [out, retval] IUSBDeviceFilter * * aFilter
    );

    HRESULT InsertDeviceFilter (
        [in] ULONG aPosition,
        [in] IUSBDeviceFilter * aFilter
    );

    HRESULT RemoveDeviceFilter (
        [in] ULONG aPosition,
        [out, retval] IUSBDeviceFilter * * aFilter
    );

}; /* interface IUSBController */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IUSBController_GETTER_Enabled_TO(smth) HRESULT STDMETHODCALLTYPE get_Enabled (BOOL * aEnabled) { return smth get_Enabled (aEnabled); }")
cpp_quote("#define COM_FORWARD_IUSBController_GETTER_Enabled_TO_OBJ(obj) COM_FORWARD_IUSBController_GETTER_Enabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBController_GETTER_Enabled_TO_BASE(base) COM_FORWARD_IUSBController_GETTER_Enabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBController_SETTER_Enabled_TO(smth) HRESULT STDMETHODCALLTYPE put_Enabled (BOOL aEnabled) { return smth put_Enabled (aEnabled); }")
cpp_quote("#define COM_FORWARD_IUSBController_SETTER_Enabled_TO_OBJ(obj) COM_FORWARD_IUSBController_SETTER_Enabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBController_SETTER_Enabled_TO_BASE(base) COM_FORWARD_IUSBController_SETTER_Enabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBController_GETTER_EnabledEhci_TO(smth) HRESULT STDMETHODCALLTYPE get_EnabledEhci (BOOL * aEnabledEhci) { return smth get_EnabledEhci (aEnabledEhci); }")
cpp_quote("#define COM_FORWARD_IUSBController_GETTER_EnabledEhci_TO_OBJ(obj) COM_FORWARD_IUSBController_GETTER_EnabledEhci_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBController_GETTER_EnabledEhci_TO_BASE(base) COM_FORWARD_IUSBController_GETTER_EnabledEhci_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBController_SETTER_EnabledEhci_TO(smth) HRESULT STDMETHODCALLTYPE put_EnabledEhci (BOOL aEnabledEhci) { return smth put_EnabledEhci (aEnabledEhci); }")
cpp_quote("#define COM_FORWARD_IUSBController_SETTER_EnabledEhci_TO_OBJ(obj) COM_FORWARD_IUSBController_SETTER_EnabledEhci_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBController_SETTER_EnabledEhci_TO_BASE(base) COM_FORWARD_IUSBController_SETTER_EnabledEhci_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBController_GETTER_ProxyAvailable_TO(smth) HRESULT STDMETHODCALLTYPE get_ProxyAvailable (BOOL * aProxyAvailable) { return smth get_ProxyAvailable (aProxyAvailable); }")
cpp_quote("#define COM_FORWARD_IUSBController_GETTER_ProxyAvailable_TO_OBJ(obj) COM_FORWARD_IUSBController_GETTER_ProxyAvailable_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBController_GETTER_ProxyAvailable_TO_BASE(base) COM_FORWARD_IUSBController_GETTER_ProxyAvailable_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBController_GETTER_USBStandard_TO(smth) HRESULT STDMETHODCALLTYPE get_USBStandard (USHORT * aUSBStandard) { return smth get_USBStandard (aUSBStandard); }")
cpp_quote("#define COM_FORWARD_IUSBController_GETTER_USBStandard_TO_OBJ(obj) COM_FORWARD_IUSBController_GETTER_USBStandard_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBController_GETTER_USBStandard_TO_BASE(base) COM_FORWARD_IUSBController_GETTER_USBStandard_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBController_GETTER_DeviceFilters_TO(smth) HRESULT STDMETHODCALLTYPE get_DeviceFilters (SAFEARRAY * * aDeviceFilters) { return smth get_DeviceFilters (aDeviceFilters); }")
cpp_quote("#define COM_FORWARD_IUSBController_GETTER_DeviceFilters_TO_OBJ(obj) COM_FORWARD_IUSBController_GETTER_DeviceFilters_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBController_GETTER_DeviceFilters_TO_BASE(base) COM_FORWARD_IUSBController_GETTER_DeviceFilters_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBController_CreateDeviceFilter_TO(smth) HRESULT STDMETHODCALLTYPE CreateDeviceFilter (BSTR aName, IUSBDeviceFilter * * aFilter) { return smth CreateDeviceFilter (aName, aFilter); }")
cpp_quote("#define COM_FORWARD_IUSBController_CreateDeviceFilter_TO_OBJ(obj) COM_FORWARD_IUSBController_CreateDeviceFilter_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBController_CreateDeviceFilter_TO_BASE(base) COM_FORWARD_IUSBController_CreateDeviceFilter_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBController_InsertDeviceFilter_TO(smth) HRESULT STDMETHODCALLTYPE InsertDeviceFilter (ULONG aPosition, IUSBDeviceFilter * aFilter) { return smth InsertDeviceFilter (aPosition, aFilter); }")
cpp_quote("#define COM_FORWARD_IUSBController_InsertDeviceFilter_TO_OBJ(obj) COM_FORWARD_IUSBController_InsertDeviceFilter_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBController_InsertDeviceFilter_TO_BASE(base) COM_FORWARD_IUSBController_InsertDeviceFilter_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBController_RemoveDeviceFilter_TO(smth) HRESULT STDMETHODCALLTYPE RemoveDeviceFilter (ULONG aPosition, IUSBDeviceFilter * * aFilter) { return smth RemoveDeviceFilter (aPosition, aFilter); }")
cpp_quote("#define COM_FORWARD_IUSBController_RemoveDeviceFilter_TO_OBJ(obj) COM_FORWARD_IUSBController_RemoveDeviceFilter_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBController_RemoveDeviceFilter_TO_BASE(base) COM_FORWARD_IUSBController_RemoveDeviceFilter_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBController_TO(smth) COM_FORWARD_IUSBController_GETTER_Enabled_TO (smth) COM_FORWARD_IUSBController_SETTER_Enabled_TO (smth) COM_FORWARD_IUSBController_GETTER_EnabledEhci_TO (smth) COM_FORWARD_IUSBController_SETTER_EnabledEhci_TO (smth) COM_FORWARD_IUSBController_GETTER_ProxyAvailable_TO (smth) COM_FORWARD_IUSBController_GETTER_USBStandard_TO (smth) COM_FORWARD_IUSBController_GETTER_DeviceFilters_TO (smth) COM_FORWARD_IUSBController_CreateDeviceFilter_TO (smth) COM_FORWARD_IUSBController_InsertDeviceFilter_TO (smth) COM_FORWARD_IUSBController_RemoveDeviceFilter_TO (smth) ")
cpp_quote("#define COM_FORWARD_IUSBController_TO_OBJ(obj) COM_FORWARD_IUSBController_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBController_TO_BASE(base) COM_FORWARD_IUSBController_TO (base::)")

[
    uuid(f8967b0b-4483-400f-92b5-8b675d98a85b),
    object,
    dual,
    oleautomation
]
interface IUSBDevice : IDispatch
{
    [propget] HRESULT Id ([out, retval] BSTR * aId);

    [propget] HRESULT VendorId ([out, retval] USHORT * aVendorId);

    [propget] HRESULT ProductId ([out, retval] USHORT * aProductId);

    [propget] HRESULT Revision ([out, retval] USHORT * aRevision);

    [propget] HRESULT Manufacturer ([out, retval] BSTR * aManufacturer);

    [propget] HRESULT Product ([out, retval] BSTR * aProduct);

    [propget] HRESULT SerialNumber ([out, retval] BSTR * aSerialNumber);

    [propget] HRESULT Address ([out, retval] BSTR * aAddress);

    [propget] HRESULT Port ([out, retval] USHORT * aPort);

    [propget] HRESULT Version ([out, retval] USHORT * aVersion);

    [propget] HRESULT PortVersion ([out, retval] USHORT * aPortVersion);

    [propget] HRESULT Remote ([out, retval] BOOL * aRemote);

}; /* interface IUSBDevice */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IUSBDevice_GETTER_Id_TO(smth) HRESULT STDMETHODCALLTYPE get_Id (BSTR * aId) { return smth get_Id (aId); }")
cpp_quote("#define COM_FORWARD_IUSBDevice_GETTER_Id_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_Id_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBDevice_GETTER_Id_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_Id_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBDevice_GETTER_VendorId_TO(smth) HRESULT STDMETHODCALLTYPE get_VendorId (USHORT * aVendorId) { return smth get_VendorId (aVendorId); }")
cpp_quote("#define COM_FORWARD_IUSBDevice_GETTER_VendorId_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_VendorId_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBDevice_GETTER_VendorId_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_VendorId_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBDevice_GETTER_ProductId_TO(smth) HRESULT STDMETHODCALLTYPE get_ProductId (USHORT * aProductId) { return smth get_ProductId (aProductId); }")
cpp_quote("#define COM_FORWARD_IUSBDevice_GETTER_ProductId_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_ProductId_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBDevice_GETTER_ProductId_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_ProductId_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBDevice_GETTER_Revision_TO(smth) HRESULT STDMETHODCALLTYPE get_Revision (USHORT * aRevision) { return smth get_Revision (aRevision); }")
cpp_quote("#define COM_FORWARD_IUSBDevice_GETTER_Revision_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_Revision_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBDevice_GETTER_Revision_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_Revision_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBDevice_GETTER_Manufacturer_TO(smth) HRESULT STDMETHODCALLTYPE get_Manufacturer (BSTR * aManufacturer) { return smth get_Manufacturer (aManufacturer); }")
cpp_quote("#define COM_FORWARD_IUSBDevice_GETTER_Manufacturer_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_Manufacturer_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBDevice_GETTER_Manufacturer_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_Manufacturer_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBDevice_GETTER_Product_TO(smth) HRESULT STDMETHODCALLTYPE get_Product (BSTR * aProduct) { return smth get_Product (aProduct); }")
cpp_quote("#define COM_FORWARD_IUSBDevice_GETTER_Product_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_Product_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBDevice_GETTER_Product_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_Product_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBDevice_GETTER_SerialNumber_TO(smth) HRESULT STDMETHODCALLTYPE get_SerialNumber (BSTR * aSerialNumber) { return smth get_SerialNumber (aSerialNumber); }")
cpp_quote("#define COM_FORWARD_IUSBDevice_GETTER_SerialNumber_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_SerialNumber_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBDevice_GETTER_SerialNumber_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_SerialNumber_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBDevice_GETTER_Address_TO(smth) HRESULT STDMETHODCALLTYPE get_Address (BSTR * aAddress) { return smth get_Address (aAddress); }")
cpp_quote("#define COM_FORWARD_IUSBDevice_GETTER_Address_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_Address_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBDevice_GETTER_Address_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_Address_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBDevice_GETTER_Port_TO(smth) HRESULT STDMETHODCALLTYPE get_Port (USHORT * aPort) { return smth get_Port (aPort); }")
cpp_quote("#define COM_FORWARD_IUSBDevice_GETTER_Port_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_Port_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBDevice_GETTER_Port_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_Port_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBDevice_GETTER_Version_TO(smth) HRESULT STDMETHODCALLTYPE get_Version (USHORT * aVersion) { return smth get_Version (aVersion); }")
cpp_quote("#define COM_FORWARD_IUSBDevice_GETTER_Version_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_Version_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBDevice_GETTER_Version_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_Version_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBDevice_GETTER_PortVersion_TO(smth) HRESULT STDMETHODCALLTYPE get_PortVersion (USHORT * aPortVersion) { return smth get_PortVersion (aPortVersion); }")
cpp_quote("#define COM_FORWARD_IUSBDevice_GETTER_PortVersion_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_PortVersion_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBDevice_GETTER_PortVersion_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_PortVersion_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBDevice_GETTER_Remote_TO(smth) HRESULT STDMETHODCALLTYPE get_Remote (BOOL * aRemote) { return smth get_Remote (aRemote); }")
cpp_quote("#define COM_FORWARD_IUSBDevice_GETTER_Remote_TO_OBJ(obj) COM_FORWARD_IUSBDevice_GETTER_Remote_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBDevice_GETTER_Remote_TO_BASE(base) COM_FORWARD_IUSBDevice_GETTER_Remote_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBDevice_TO(smth) COM_FORWARD_IUSBDevice_GETTER_Id_TO (smth) COM_FORWARD_IUSBDevice_GETTER_VendorId_TO (smth) COM_FORWARD_IUSBDevice_GETTER_ProductId_TO (smth) COM_FORWARD_IUSBDevice_GETTER_Revision_TO (smth) COM_FORWARD_IUSBDevice_GETTER_Manufacturer_TO (smth) COM_FORWARD_IUSBDevice_GETTER_Product_TO (smth) COM_FORWARD_IUSBDevice_GETTER_SerialNumber_TO (smth) COM_FORWARD_IUSBDevice_GETTER_Address_TO (smth) COM_FORWARD_IUSBDevice_GETTER_Port_TO (smth) COM_FORWARD_IUSBDevice_GETTER_Version_TO (smth) COM_FORWARD_IUSBDevice_GETTER_PortVersion_TO (smth) COM_FORWARD_IUSBDevice_GETTER_Remote_TO (smth) ")
cpp_quote("#define COM_FORWARD_IUSBDevice_TO_OBJ(obj) COM_FORWARD_IUSBDevice_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBDevice_TO_BASE(base) COM_FORWARD_IUSBDevice_TO (base::)")

[
    uuid(d6831fb4-1a94-4c2c-96ef-8d0d6192066d),
    object,
    dual,
    oleautomation
]
interface IUSBDeviceFilter : IDispatch
{
    [propget] HRESULT Name ([out, retval] BSTR * aName);
    [propput] HRESULT Name ([in] BSTR aName);

    [propget] HRESULT Active ([out, retval] BOOL * aActive);
    [propput] HRESULT Active ([in] BOOL aActive);

    [propget] HRESULT VendorId ([out, retval] BSTR * aVendorId);
    [propput] HRESULT VendorId ([in] BSTR aVendorId);

    [propget] HRESULT ProductId ([out, retval] BSTR * aProductId);
    [propput] HRESULT ProductId ([in] BSTR aProductId);

    [propget] HRESULT Revision ([out, retval] BSTR * aRevision);
    [propput] HRESULT Revision ([in] BSTR aRevision);

    [propget] HRESULT Manufacturer ([out, retval] BSTR * aManufacturer);
    [propput] HRESULT Manufacturer ([in] BSTR aManufacturer);

    [propget] HRESULT Product ([out, retval] BSTR * aProduct);
    [propput] HRESULT Product ([in] BSTR aProduct);

    [propget] HRESULT SerialNumber ([out, retval] BSTR * aSerialNumber);
    [propput] HRESULT SerialNumber ([in] BSTR aSerialNumber);

    [propget] HRESULT Port ([out, retval] BSTR * aPort);
    [propput] HRESULT Port ([in] BSTR aPort);

    [propget] HRESULT Remote ([out, retval] BSTR * aRemote);
    [propput] HRESULT Remote ([in] BSTR aRemote);

    [propget] HRESULT MaskedInterfaces ([out, retval] ULONG * aMaskedInterfaces);
    [propput] HRESULT MaskedInterfaces ([in] ULONG aMaskedInterfaces);

}; /* interface IUSBDeviceFilter */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_GETTER_Name_TO(smth) HRESULT STDMETHODCALLTYPE get_Name (BSTR * aName) { return smth get_Name (aName); }")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_GETTER_Name_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_GETTER_Name_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_GETTER_Name_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_GETTER_Name_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_SETTER_Name_TO(smth) HRESULT STDMETHODCALLTYPE put_Name (BSTR aName) { return smth put_Name (aName); }")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_SETTER_Name_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_SETTER_Name_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_SETTER_Name_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_SETTER_Name_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_GETTER_Active_TO(smth) HRESULT STDMETHODCALLTYPE get_Active (BOOL * aActive) { return smth get_Active (aActive); }")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_GETTER_Active_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_GETTER_Active_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_GETTER_Active_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_GETTER_Active_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_SETTER_Active_TO(smth) HRESULT STDMETHODCALLTYPE put_Active (BOOL aActive) { return smth put_Active (aActive); }")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_SETTER_Active_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_SETTER_Active_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_SETTER_Active_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_SETTER_Active_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_GETTER_VendorId_TO(smth) HRESULT STDMETHODCALLTYPE get_VendorId (BSTR * aVendorId) { return smth get_VendorId (aVendorId); }")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_GETTER_VendorId_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_GETTER_VendorId_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_GETTER_VendorId_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_GETTER_VendorId_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_SETTER_VendorId_TO(smth) HRESULT STDMETHODCALLTYPE put_VendorId (BSTR aVendorId) { return smth put_VendorId (aVendorId); }")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_SETTER_VendorId_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_SETTER_VendorId_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_SETTER_VendorId_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_SETTER_VendorId_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_GETTER_ProductId_TO(smth) HRESULT STDMETHODCALLTYPE get_ProductId (BSTR * aProductId) { return smth get_ProductId (aProductId); }")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_GETTER_ProductId_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_GETTER_ProductId_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_GETTER_ProductId_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_GETTER_ProductId_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_SETTER_ProductId_TO(smth) HRESULT STDMETHODCALLTYPE put_ProductId (BSTR aProductId) { return smth put_ProductId (aProductId); }")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_SETTER_ProductId_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_SETTER_ProductId_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_SETTER_ProductId_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_SETTER_ProductId_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_GETTER_Revision_TO(smth) HRESULT STDMETHODCALLTYPE get_Revision (BSTR * aRevision) { return smth get_Revision (aRevision); }")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_GETTER_Revision_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_GETTER_Revision_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_GETTER_Revision_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_GETTER_Revision_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_SETTER_Revision_TO(smth) HRESULT STDMETHODCALLTYPE put_Revision (BSTR aRevision) { return smth put_Revision (aRevision); }")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_SETTER_Revision_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_SETTER_Revision_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_SETTER_Revision_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_SETTER_Revision_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_GETTER_Manufacturer_TO(smth) HRESULT STDMETHODCALLTYPE get_Manufacturer (BSTR * aManufacturer) { return smth get_Manufacturer (aManufacturer); }")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_GETTER_Manufacturer_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_GETTER_Manufacturer_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_GETTER_Manufacturer_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_GETTER_Manufacturer_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_SETTER_Manufacturer_TO(smth) HRESULT STDMETHODCALLTYPE put_Manufacturer (BSTR aManufacturer) { return smth put_Manufacturer (aManufacturer); }")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_SETTER_Manufacturer_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_SETTER_Manufacturer_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_SETTER_Manufacturer_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_SETTER_Manufacturer_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_GETTER_Product_TO(smth) HRESULT STDMETHODCALLTYPE get_Product (BSTR * aProduct) { return smth get_Product (aProduct); }")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_GETTER_Product_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_GETTER_Product_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_GETTER_Product_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_GETTER_Product_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_SETTER_Product_TO(smth) HRESULT STDMETHODCALLTYPE put_Product (BSTR aProduct) { return smth put_Product (aProduct); }")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_SETTER_Product_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_SETTER_Product_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_SETTER_Product_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_SETTER_Product_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_GETTER_SerialNumber_TO(smth) HRESULT STDMETHODCALLTYPE get_SerialNumber (BSTR * aSerialNumber) { return smth get_SerialNumber (aSerialNumber); }")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_GETTER_SerialNumber_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_GETTER_SerialNumber_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_GETTER_SerialNumber_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_GETTER_SerialNumber_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_SETTER_SerialNumber_TO(smth) HRESULT STDMETHODCALLTYPE put_SerialNumber (BSTR aSerialNumber) { return smth put_SerialNumber (aSerialNumber); }")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_SETTER_SerialNumber_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_SETTER_SerialNumber_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_SETTER_SerialNumber_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_SETTER_SerialNumber_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_GETTER_Port_TO(smth) HRESULT STDMETHODCALLTYPE get_Port (BSTR * aPort) { return smth get_Port (aPort); }")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_GETTER_Port_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_GETTER_Port_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_GETTER_Port_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_GETTER_Port_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_SETTER_Port_TO(smth) HRESULT STDMETHODCALLTYPE put_Port (BSTR aPort) { return smth put_Port (aPort); }")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_SETTER_Port_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_SETTER_Port_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_SETTER_Port_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_SETTER_Port_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_GETTER_Remote_TO(smth) HRESULT STDMETHODCALLTYPE get_Remote (BSTR * aRemote) { return smth get_Remote (aRemote); }")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_GETTER_Remote_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_GETTER_Remote_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_GETTER_Remote_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_GETTER_Remote_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_SETTER_Remote_TO(smth) HRESULT STDMETHODCALLTYPE put_Remote (BSTR aRemote) { return smth put_Remote (aRemote); }")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_SETTER_Remote_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_SETTER_Remote_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_SETTER_Remote_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_SETTER_Remote_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_GETTER_MaskedInterfaces_TO(smth) HRESULT STDMETHODCALLTYPE get_MaskedInterfaces (ULONG * aMaskedInterfaces) { return smth get_MaskedInterfaces (aMaskedInterfaces); }")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_GETTER_MaskedInterfaces_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_GETTER_MaskedInterfaces_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_GETTER_MaskedInterfaces_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_GETTER_MaskedInterfaces_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_SETTER_MaskedInterfaces_TO(smth) HRESULT STDMETHODCALLTYPE put_MaskedInterfaces (ULONG aMaskedInterfaces) { return smth put_MaskedInterfaces (aMaskedInterfaces); }")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_SETTER_MaskedInterfaces_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_SETTER_MaskedInterfaces_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_SETTER_MaskedInterfaces_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_SETTER_MaskedInterfaces_TO (base::)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_TO(smth) COM_FORWARD_IUSBDeviceFilter_GETTER_Name_TO (smth) COM_FORWARD_IUSBDeviceFilter_SETTER_Name_TO (smth) COM_FORWARD_IUSBDeviceFilter_GETTER_Active_TO (smth) COM_FORWARD_IUSBDeviceFilter_SETTER_Active_TO (smth) COM_FORWARD_IUSBDeviceFilter_GETTER_VendorId_TO (smth) COM_FORWARD_IUSBDeviceFilter_SETTER_VendorId_TO (smth) COM_FORWARD_IUSBDeviceFilter_GETTER_ProductId_TO (smth) COM_FORWARD_IUSBDeviceFilter_SETTER_ProductId_TO (smth) COM_FORWARD_IUSBDeviceFilter_GETTER_Revision_TO (smth) COM_FORWARD_IUSBDeviceFilter_SETTER_Revision_TO (smth) COM_FORWARD_IUSBDeviceFilter_GETTER_Manufacturer_TO (smth) COM_FORWARD_IUSBDeviceFilter_SETTER_Manufacturer_TO (smth) COM_FORWARD_IUSBDeviceFilter_GETTER_Product_TO (smth) COM_FORWARD_IUSBDeviceFilter_SETTER_Product_TO (smth) COM_FORWARD_IUSBDeviceFilter_GETTER_SerialNumber_TO (smth) COM_FORWARD_IUSBDeviceFilter_SETTER_SerialNumber_TO (smth) COM_FORWARD_IUSBDeviceFilter_GETTER_Port_TO (smth) COM_FORWARD_IUSBDeviceFilter_SETTER_Port_TO (smth) COM_FORWARD_IUSBDeviceFilter_GETTER_Remote_TO (smth) COM_FORWARD_IUSBDeviceFilter_SETTER_Remote_TO (smth) COM_FORWARD_IUSBDeviceFilter_GETTER_MaskedInterfaces_TO (smth) COM_FORWARD_IUSBDeviceFilter_SETTER_MaskedInterfaces_TO (smth) ")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_TO_OBJ(obj) COM_FORWARD_IUSBDeviceFilter_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IUSBDeviceFilter_TO_BASE(base) COM_FORWARD_IUSBDeviceFilter_TO (base::)")

[
    uuid(173b4b44-d268-4334-a00d-b6521c9a740a),
    object,
    dual,
    oleautomation
]
interface IHostUSBDevice : IUSBDevice
{
    [propget] HRESULT State ([out, retval] USBDeviceState * aState);

}; /* interface IHostUSBDevice */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IHostUSBDevice_GETTER_State_TO(smth) HRESULT STDMETHODCALLTYPE get_State (USBDeviceState * aState) { return smth get_State (aState); }")
cpp_quote("#define COM_FORWARD_IHostUSBDevice_GETTER_State_TO_OBJ(obj) COM_FORWARD_IHostUSBDevice_GETTER_State_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHostUSBDevice_GETTER_State_TO_BASE(base) COM_FORWARD_IHostUSBDevice_GETTER_State_TO (base::)")
cpp_quote("#define COM_FORWARD_IHostUSBDevice_TO(smth) COM_FORWARD_IHostUSBDevice_GETTER_State_TO (smth) ")
cpp_quote("#define COM_FORWARD_IHostUSBDevice_TO_OBJ(obj) COM_FORWARD_IHostUSBDevice_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHostUSBDevice_TO_BASE(base) COM_FORWARD_IHostUSBDevice_TO (base::)")

[
    uuid(4cc70246-d74a-400f-8222-3900489c0374),
    object,
    dual,
    oleautomation
]
interface IHostUSBDeviceFilter : IUSBDeviceFilter
{
    [propget] HRESULT Action ([out, retval] USBDeviceFilterAction * aAction);
    [propput] HRESULT Action ([in] USBDeviceFilterAction aAction);

}; /* interface IHostUSBDeviceFilter */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IHostUSBDeviceFilter_GETTER_Action_TO(smth) HRESULT STDMETHODCALLTYPE get_Action (USBDeviceFilterAction * aAction) { return smth get_Action (aAction); }")
cpp_quote("#define COM_FORWARD_IHostUSBDeviceFilter_GETTER_Action_TO_OBJ(obj) COM_FORWARD_IHostUSBDeviceFilter_GETTER_Action_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHostUSBDeviceFilter_GETTER_Action_TO_BASE(base) COM_FORWARD_IHostUSBDeviceFilter_GETTER_Action_TO (base::)")
cpp_quote("#define COM_FORWARD_IHostUSBDeviceFilter_SETTER_Action_TO(smth) HRESULT STDMETHODCALLTYPE put_Action (USBDeviceFilterAction aAction) { return smth put_Action (aAction); }")
cpp_quote("#define COM_FORWARD_IHostUSBDeviceFilter_SETTER_Action_TO_OBJ(obj) COM_FORWARD_IHostUSBDeviceFilter_SETTER_Action_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHostUSBDeviceFilter_SETTER_Action_TO_BASE(base) COM_FORWARD_IHostUSBDeviceFilter_SETTER_Action_TO (base::)")
cpp_quote("#define COM_FORWARD_IHostUSBDeviceFilter_TO(smth) COM_FORWARD_IHostUSBDeviceFilter_GETTER_Action_TO (smth) COM_FORWARD_IHostUSBDeviceFilter_SETTER_Action_TO (smth) ")
cpp_quote("#define COM_FORWARD_IHostUSBDeviceFilter_TO_OBJ(obj) COM_FORWARD_IHostUSBDeviceFilter_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHostUSBDeviceFilter_TO_BASE(base) COM_FORWARD_IHostUSBDeviceFilter_TO (base::)")

[
    uuid(921873db-5f3f-4b69-91f9-7be9e535a2cb),
    object,
    dual,
    oleautomation
]
interface IAudioAdapter : IDispatch
{
    [propget] HRESULT Enabled ([out, retval] BOOL * aEnabled);
    [propput] HRESULT Enabled ([in] BOOL aEnabled);

    [propget] HRESULT AudioController ([out, retval] AudioControllerType * aAudioController);
    [propput] HRESULT AudioController ([in] AudioControllerType aAudioController);

    [propget] HRESULT AudioDriver ([out, retval] AudioDriverType * aAudioDriver);
    [propput] HRESULT AudioDriver ([in] AudioDriverType aAudioDriver);

}; /* interface IAudioAdapter */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IAudioAdapter_GETTER_Enabled_TO(smth) HRESULT STDMETHODCALLTYPE get_Enabled (BOOL * aEnabled) { return smth get_Enabled (aEnabled); }")
cpp_quote("#define COM_FORWARD_IAudioAdapter_GETTER_Enabled_TO_OBJ(obj) COM_FORWARD_IAudioAdapter_GETTER_Enabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IAudioAdapter_GETTER_Enabled_TO_BASE(base) COM_FORWARD_IAudioAdapter_GETTER_Enabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IAudioAdapter_SETTER_Enabled_TO(smth) HRESULT STDMETHODCALLTYPE put_Enabled (BOOL aEnabled) { return smth put_Enabled (aEnabled); }")
cpp_quote("#define COM_FORWARD_IAudioAdapter_SETTER_Enabled_TO_OBJ(obj) COM_FORWARD_IAudioAdapter_SETTER_Enabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IAudioAdapter_SETTER_Enabled_TO_BASE(base) COM_FORWARD_IAudioAdapter_SETTER_Enabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IAudioAdapter_GETTER_AudioController_TO(smth) HRESULT STDMETHODCALLTYPE get_AudioController (AudioControllerType * aAudioController) { return smth get_AudioController (aAudioController); }")
cpp_quote("#define COM_FORWARD_IAudioAdapter_GETTER_AudioController_TO_OBJ(obj) COM_FORWARD_IAudioAdapter_GETTER_AudioController_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IAudioAdapter_GETTER_AudioController_TO_BASE(base) COM_FORWARD_IAudioAdapter_GETTER_AudioController_TO (base::)")
cpp_quote("#define COM_FORWARD_IAudioAdapter_SETTER_AudioController_TO(smth) HRESULT STDMETHODCALLTYPE put_AudioController (AudioControllerType aAudioController) { return smth put_AudioController (aAudioController); }")
cpp_quote("#define COM_FORWARD_IAudioAdapter_SETTER_AudioController_TO_OBJ(obj) COM_FORWARD_IAudioAdapter_SETTER_AudioController_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IAudioAdapter_SETTER_AudioController_TO_BASE(base) COM_FORWARD_IAudioAdapter_SETTER_AudioController_TO (base::)")
cpp_quote("#define COM_FORWARD_IAudioAdapter_GETTER_AudioDriver_TO(smth) HRESULT STDMETHODCALLTYPE get_AudioDriver (AudioDriverType * aAudioDriver) { return smth get_AudioDriver (aAudioDriver); }")
cpp_quote("#define COM_FORWARD_IAudioAdapter_GETTER_AudioDriver_TO_OBJ(obj) COM_FORWARD_IAudioAdapter_GETTER_AudioDriver_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IAudioAdapter_GETTER_AudioDriver_TO_BASE(base) COM_FORWARD_IAudioAdapter_GETTER_AudioDriver_TO (base::)")
cpp_quote("#define COM_FORWARD_IAudioAdapter_SETTER_AudioDriver_TO(smth) HRESULT STDMETHODCALLTYPE put_AudioDriver (AudioDriverType aAudioDriver) { return smth put_AudioDriver (aAudioDriver); }")
cpp_quote("#define COM_FORWARD_IAudioAdapter_SETTER_AudioDriver_TO_OBJ(obj) COM_FORWARD_IAudioAdapter_SETTER_AudioDriver_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IAudioAdapter_SETTER_AudioDriver_TO_BASE(base) COM_FORWARD_IAudioAdapter_SETTER_AudioDriver_TO (base::)")
cpp_quote("#define COM_FORWARD_IAudioAdapter_TO(smth) COM_FORWARD_IAudioAdapter_GETTER_Enabled_TO (smth) COM_FORWARD_IAudioAdapter_SETTER_Enabled_TO (smth) COM_FORWARD_IAudioAdapter_GETTER_AudioController_TO (smth) COM_FORWARD_IAudioAdapter_SETTER_AudioController_TO (smth) COM_FORWARD_IAudioAdapter_GETTER_AudioDriver_TO (smth) COM_FORWARD_IAudioAdapter_SETTER_AudioDriver_TO (smth) ")
cpp_quote("#define COM_FORWARD_IAudioAdapter_TO_OBJ(obj) COM_FORWARD_IAudioAdapter_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IAudioAdapter_TO_BASE(base) COM_FORWARD_IAudioAdapter_TO (base::)")

[
    uuid(7aeeb530-0b08-41fe-835d-9be9ec1dbe5c),
    object,
    dual,
    oleautomation
]
interface IVRDPServer : IDispatch
{
    [propget] HRESULT Enabled ([out, retval] BOOL * aEnabled);
    [propput] HRESULT Enabled ([in] BOOL aEnabled);

    [propget] HRESULT Ports ([out, retval] BSTR * aPorts);
    [propput] HRESULT Ports ([in] BSTR aPorts);

    [propget] HRESULT NetAddress ([out, retval] BSTR * aNetAddress);
    [propput] HRESULT NetAddress ([in] BSTR aNetAddress);

    [propget] HRESULT AuthType ([out, retval] VRDPAuthType * aAuthType);
    [propput] HRESULT AuthType ([in] VRDPAuthType aAuthType);

    [propget] HRESULT AuthTimeout ([out, retval] ULONG * aAuthTimeout);
    [propput] HRESULT AuthTimeout ([in] ULONG aAuthTimeout);

    [propget] HRESULT AllowMultiConnection ([out, retval] BOOL * aAllowMultiConnection);
    [propput] HRESULT AllowMultiConnection ([in] BOOL aAllowMultiConnection);

    [propget] HRESULT ReuseSingleConnection ([out, retval] BOOL * aReuseSingleConnection);
    [propput] HRESULT ReuseSingleConnection ([in] BOOL aReuseSingleConnection);

    [propget] HRESULT VideoChannel ([out, retval] BOOL * aVideoChannel);
    [propput] HRESULT VideoChannel ([in] BOOL aVideoChannel);

    [propget] HRESULT VideoChannelQuality ([out, retval] ULONG * aVideoChannelQuality);
    [propput] HRESULT VideoChannelQuality ([in] ULONG aVideoChannelQuality);

}; /* interface IVRDPServer */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IVRDPServer_GETTER_Enabled_TO(smth) HRESULT STDMETHODCALLTYPE get_Enabled (BOOL * aEnabled) { return smth get_Enabled (aEnabled); }")
cpp_quote("#define COM_FORWARD_IVRDPServer_GETTER_Enabled_TO_OBJ(obj) COM_FORWARD_IVRDPServer_GETTER_Enabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVRDPServer_GETTER_Enabled_TO_BASE(base) COM_FORWARD_IVRDPServer_GETTER_Enabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IVRDPServer_SETTER_Enabled_TO(smth) HRESULT STDMETHODCALLTYPE put_Enabled (BOOL aEnabled) { return smth put_Enabled (aEnabled); }")
cpp_quote("#define COM_FORWARD_IVRDPServer_SETTER_Enabled_TO_OBJ(obj) COM_FORWARD_IVRDPServer_SETTER_Enabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVRDPServer_SETTER_Enabled_TO_BASE(base) COM_FORWARD_IVRDPServer_SETTER_Enabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IVRDPServer_GETTER_Ports_TO(smth) HRESULT STDMETHODCALLTYPE get_Ports (BSTR * aPorts) { return smth get_Ports (aPorts); }")
cpp_quote("#define COM_FORWARD_IVRDPServer_GETTER_Ports_TO_OBJ(obj) COM_FORWARD_IVRDPServer_GETTER_Ports_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVRDPServer_GETTER_Ports_TO_BASE(base) COM_FORWARD_IVRDPServer_GETTER_Ports_TO (base::)")
cpp_quote("#define COM_FORWARD_IVRDPServer_SETTER_Ports_TO(smth) HRESULT STDMETHODCALLTYPE put_Ports (BSTR aPorts) { return smth put_Ports (aPorts); }")
cpp_quote("#define COM_FORWARD_IVRDPServer_SETTER_Ports_TO_OBJ(obj) COM_FORWARD_IVRDPServer_SETTER_Ports_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVRDPServer_SETTER_Ports_TO_BASE(base) COM_FORWARD_IVRDPServer_SETTER_Ports_TO (base::)")
cpp_quote("#define COM_FORWARD_IVRDPServer_GETTER_NetAddress_TO(smth) HRESULT STDMETHODCALLTYPE get_NetAddress (BSTR * aNetAddress) { return smth get_NetAddress (aNetAddress); }")
cpp_quote("#define COM_FORWARD_IVRDPServer_GETTER_NetAddress_TO_OBJ(obj) COM_FORWARD_IVRDPServer_GETTER_NetAddress_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVRDPServer_GETTER_NetAddress_TO_BASE(base) COM_FORWARD_IVRDPServer_GETTER_NetAddress_TO (base::)")
cpp_quote("#define COM_FORWARD_IVRDPServer_SETTER_NetAddress_TO(smth) HRESULT STDMETHODCALLTYPE put_NetAddress (BSTR aNetAddress) { return smth put_NetAddress (aNetAddress); }")
cpp_quote("#define COM_FORWARD_IVRDPServer_SETTER_NetAddress_TO_OBJ(obj) COM_FORWARD_IVRDPServer_SETTER_NetAddress_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVRDPServer_SETTER_NetAddress_TO_BASE(base) COM_FORWARD_IVRDPServer_SETTER_NetAddress_TO (base::)")
cpp_quote("#define COM_FORWARD_IVRDPServer_GETTER_AuthType_TO(smth) HRESULT STDMETHODCALLTYPE get_AuthType (VRDPAuthType * aAuthType) { return smth get_AuthType (aAuthType); }")
cpp_quote("#define COM_FORWARD_IVRDPServer_GETTER_AuthType_TO_OBJ(obj) COM_FORWARD_IVRDPServer_GETTER_AuthType_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVRDPServer_GETTER_AuthType_TO_BASE(base) COM_FORWARD_IVRDPServer_GETTER_AuthType_TO (base::)")
cpp_quote("#define COM_FORWARD_IVRDPServer_SETTER_AuthType_TO(smth) HRESULT STDMETHODCALLTYPE put_AuthType (VRDPAuthType aAuthType) { return smth put_AuthType (aAuthType); }")
cpp_quote("#define COM_FORWARD_IVRDPServer_SETTER_AuthType_TO_OBJ(obj) COM_FORWARD_IVRDPServer_SETTER_AuthType_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVRDPServer_SETTER_AuthType_TO_BASE(base) COM_FORWARD_IVRDPServer_SETTER_AuthType_TO (base::)")
cpp_quote("#define COM_FORWARD_IVRDPServer_GETTER_AuthTimeout_TO(smth) HRESULT STDMETHODCALLTYPE get_AuthTimeout (ULONG * aAuthTimeout) { return smth get_AuthTimeout (aAuthTimeout); }")
cpp_quote("#define COM_FORWARD_IVRDPServer_GETTER_AuthTimeout_TO_OBJ(obj) COM_FORWARD_IVRDPServer_GETTER_AuthTimeout_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVRDPServer_GETTER_AuthTimeout_TO_BASE(base) COM_FORWARD_IVRDPServer_GETTER_AuthTimeout_TO (base::)")
cpp_quote("#define COM_FORWARD_IVRDPServer_SETTER_AuthTimeout_TO(smth) HRESULT STDMETHODCALLTYPE put_AuthTimeout (ULONG aAuthTimeout) { return smth put_AuthTimeout (aAuthTimeout); }")
cpp_quote("#define COM_FORWARD_IVRDPServer_SETTER_AuthTimeout_TO_OBJ(obj) COM_FORWARD_IVRDPServer_SETTER_AuthTimeout_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVRDPServer_SETTER_AuthTimeout_TO_BASE(base) COM_FORWARD_IVRDPServer_SETTER_AuthTimeout_TO (base::)")
cpp_quote("#define COM_FORWARD_IVRDPServer_GETTER_AllowMultiConnection_TO(smth) HRESULT STDMETHODCALLTYPE get_AllowMultiConnection (BOOL * aAllowMultiConnection) { return smth get_AllowMultiConnection (aAllowMultiConnection); }")
cpp_quote("#define COM_FORWARD_IVRDPServer_GETTER_AllowMultiConnection_TO_OBJ(obj) COM_FORWARD_IVRDPServer_GETTER_AllowMultiConnection_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVRDPServer_GETTER_AllowMultiConnection_TO_BASE(base) COM_FORWARD_IVRDPServer_GETTER_AllowMultiConnection_TO (base::)")
cpp_quote("#define COM_FORWARD_IVRDPServer_SETTER_AllowMultiConnection_TO(smth) HRESULT STDMETHODCALLTYPE put_AllowMultiConnection (BOOL aAllowMultiConnection) { return smth put_AllowMultiConnection (aAllowMultiConnection); }")
cpp_quote("#define COM_FORWARD_IVRDPServer_SETTER_AllowMultiConnection_TO_OBJ(obj) COM_FORWARD_IVRDPServer_SETTER_AllowMultiConnection_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVRDPServer_SETTER_AllowMultiConnection_TO_BASE(base) COM_FORWARD_IVRDPServer_SETTER_AllowMultiConnection_TO (base::)")
cpp_quote("#define COM_FORWARD_IVRDPServer_GETTER_ReuseSingleConnection_TO(smth) HRESULT STDMETHODCALLTYPE get_ReuseSingleConnection (BOOL * aReuseSingleConnection) { return smth get_ReuseSingleConnection (aReuseSingleConnection); }")
cpp_quote("#define COM_FORWARD_IVRDPServer_GETTER_ReuseSingleConnection_TO_OBJ(obj) COM_FORWARD_IVRDPServer_GETTER_ReuseSingleConnection_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVRDPServer_GETTER_ReuseSingleConnection_TO_BASE(base) COM_FORWARD_IVRDPServer_GETTER_ReuseSingleConnection_TO (base::)")
cpp_quote("#define COM_FORWARD_IVRDPServer_SETTER_ReuseSingleConnection_TO(smth) HRESULT STDMETHODCALLTYPE put_ReuseSingleConnection (BOOL aReuseSingleConnection) { return smth put_ReuseSingleConnection (aReuseSingleConnection); }")
cpp_quote("#define COM_FORWARD_IVRDPServer_SETTER_ReuseSingleConnection_TO_OBJ(obj) COM_FORWARD_IVRDPServer_SETTER_ReuseSingleConnection_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVRDPServer_SETTER_ReuseSingleConnection_TO_BASE(base) COM_FORWARD_IVRDPServer_SETTER_ReuseSingleConnection_TO (base::)")
cpp_quote("#define COM_FORWARD_IVRDPServer_GETTER_VideoChannel_TO(smth) HRESULT STDMETHODCALLTYPE get_VideoChannel (BOOL * aVideoChannel) { return smth get_VideoChannel (aVideoChannel); }")
cpp_quote("#define COM_FORWARD_IVRDPServer_GETTER_VideoChannel_TO_OBJ(obj) COM_FORWARD_IVRDPServer_GETTER_VideoChannel_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVRDPServer_GETTER_VideoChannel_TO_BASE(base) COM_FORWARD_IVRDPServer_GETTER_VideoChannel_TO (base::)")
cpp_quote("#define COM_FORWARD_IVRDPServer_SETTER_VideoChannel_TO(smth) HRESULT STDMETHODCALLTYPE put_VideoChannel (BOOL aVideoChannel) { return smth put_VideoChannel (aVideoChannel); }")
cpp_quote("#define COM_FORWARD_IVRDPServer_SETTER_VideoChannel_TO_OBJ(obj) COM_FORWARD_IVRDPServer_SETTER_VideoChannel_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVRDPServer_SETTER_VideoChannel_TO_BASE(base) COM_FORWARD_IVRDPServer_SETTER_VideoChannel_TO (base::)")
cpp_quote("#define COM_FORWARD_IVRDPServer_GETTER_VideoChannelQuality_TO(smth) HRESULT STDMETHODCALLTYPE get_VideoChannelQuality (ULONG * aVideoChannelQuality) { return smth get_VideoChannelQuality (aVideoChannelQuality); }")
cpp_quote("#define COM_FORWARD_IVRDPServer_GETTER_VideoChannelQuality_TO_OBJ(obj) COM_FORWARD_IVRDPServer_GETTER_VideoChannelQuality_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVRDPServer_GETTER_VideoChannelQuality_TO_BASE(base) COM_FORWARD_IVRDPServer_GETTER_VideoChannelQuality_TO (base::)")
cpp_quote("#define COM_FORWARD_IVRDPServer_SETTER_VideoChannelQuality_TO(smth) HRESULT STDMETHODCALLTYPE put_VideoChannelQuality (ULONG aVideoChannelQuality) { return smth put_VideoChannelQuality (aVideoChannelQuality); }")
cpp_quote("#define COM_FORWARD_IVRDPServer_SETTER_VideoChannelQuality_TO_OBJ(obj) COM_FORWARD_IVRDPServer_SETTER_VideoChannelQuality_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVRDPServer_SETTER_VideoChannelQuality_TO_BASE(base) COM_FORWARD_IVRDPServer_SETTER_VideoChannelQuality_TO (base::)")
cpp_quote("#define COM_FORWARD_IVRDPServer_TO(smth) COM_FORWARD_IVRDPServer_GETTER_Enabled_TO (smth) COM_FORWARD_IVRDPServer_SETTER_Enabled_TO (smth) COM_FORWARD_IVRDPServer_GETTER_Ports_TO (smth) COM_FORWARD_IVRDPServer_SETTER_Ports_TO (smth) COM_FORWARD_IVRDPServer_GETTER_NetAddress_TO (smth) COM_FORWARD_IVRDPServer_SETTER_NetAddress_TO (smth) COM_FORWARD_IVRDPServer_GETTER_AuthType_TO (smth) COM_FORWARD_IVRDPServer_SETTER_AuthType_TO (smth) COM_FORWARD_IVRDPServer_GETTER_AuthTimeout_TO (smth) COM_FORWARD_IVRDPServer_SETTER_AuthTimeout_TO (smth) COM_FORWARD_IVRDPServer_GETTER_AllowMultiConnection_TO (smth) COM_FORWARD_IVRDPServer_SETTER_AllowMultiConnection_TO (smth) COM_FORWARD_IVRDPServer_GETTER_ReuseSingleConnection_TO (smth) COM_FORWARD_IVRDPServer_SETTER_ReuseSingleConnection_TO (smth) COM_FORWARD_IVRDPServer_GETTER_VideoChannel_TO (smth) COM_FORWARD_IVRDPServer_SETTER_VideoChannel_TO (smth) COM_FORWARD_IVRDPServer_GETTER_VideoChannelQuality_TO (smth) COM_FORWARD_IVRDPServer_SETTER_VideoChannelQuality_TO (smth) ")
cpp_quote("#define COM_FORWARD_IVRDPServer_TO_OBJ(obj) COM_FORWARD_IVRDPServer_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVRDPServer_TO_BASE(base) COM_FORWARD_IVRDPServer_TO (base::)")

[
    uuid(64637bb2-9e17-471c-b8f3-f8968dd9884e),
    object,
    dual,
    oleautomation
]
interface ISharedFolder : IDispatch
{
    [propget] HRESULT Name ([out, retval] BSTR * aName);

    [propget] HRESULT HostPath ([out, retval] BSTR * aHostPath);

    [propget] HRESULT Accessible ([out, retval] BOOL * aAccessible);

    [propget] HRESULT Writable ([out, retval] BOOL * aWritable);

    [propget] HRESULT LastAccessError ([out, retval] BSTR * aLastAccessError);

}; /* interface ISharedFolder */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_ISharedFolder_GETTER_Name_TO(smth) HRESULT STDMETHODCALLTYPE get_Name (BSTR * aName) { return smth get_Name (aName); }")
cpp_quote("#define COM_FORWARD_ISharedFolder_GETTER_Name_TO_OBJ(obj) COM_FORWARD_ISharedFolder_GETTER_Name_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISharedFolder_GETTER_Name_TO_BASE(base) COM_FORWARD_ISharedFolder_GETTER_Name_TO (base::)")
cpp_quote("#define COM_FORWARD_ISharedFolder_GETTER_HostPath_TO(smth) HRESULT STDMETHODCALLTYPE get_HostPath (BSTR * aHostPath) { return smth get_HostPath (aHostPath); }")
cpp_quote("#define COM_FORWARD_ISharedFolder_GETTER_HostPath_TO_OBJ(obj) COM_FORWARD_ISharedFolder_GETTER_HostPath_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISharedFolder_GETTER_HostPath_TO_BASE(base) COM_FORWARD_ISharedFolder_GETTER_HostPath_TO (base::)")
cpp_quote("#define COM_FORWARD_ISharedFolder_GETTER_Accessible_TO(smth) HRESULT STDMETHODCALLTYPE get_Accessible (BOOL * aAccessible) { return smth get_Accessible (aAccessible); }")
cpp_quote("#define COM_FORWARD_ISharedFolder_GETTER_Accessible_TO_OBJ(obj) COM_FORWARD_ISharedFolder_GETTER_Accessible_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISharedFolder_GETTER_Accessible_TO_BASE(base) COM_FORWARD_ISharedFolder_GETTER_Accessible_TO (base::)")
cpp_quote("#define COM_FORWARD_ISharedFolder_GETTER_Writable_TO(smth) HRESULT STDMETHODCALLTYPE get_Writable (BOOL * aWritable) { return smth get_Writable (aWritable); }")
cpp_quote("#define COM_FORWARD_ISharedFolder_GETTER_Writable_TO_OBJ(obj) COM_FORWARD_ISharedFolder_GETTER_Writable_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISharedFolder_GETTER_Writable_TO_BASE(base) COM_FORWARD_ISharedFolder_GETTER_Writable_TO (base::)")
cpp_quote("#define COM_FORWARD_ISharedFolder_GETTER_LastAccessError_TO(smth) HRESULT STDMETHODCALLTYPE get_LastAccessError (BSTR * aLastAccessError) { return smth get_LastAccessError (aLastAccessError); }")
cpp_quote("#define COM_FORWARD_ISharedFolder_GETTER_LastAccessError_TO_OBJ(obj) COM_FORWARD_ISharedFolder_GETTER_LastAccessError_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISharedFolder_GETTER_LastAccessError_TO_BASE(base) COM_FORWARD_ISharedFolder_GETTER_LastAccessError_TO (base::)")
cpp_quote("#define COM_FORWARD_ISharedFolder_TO(smth) COM_FORWARD_ISharedFolder_GETTER_Name_TO (smth) COM_FORWARD_ISharedFolder_GETTER_HostPath_TO (smth) COM_FORWARD_ISharedFolder_GETTER_Accessible_TO (smth) COM_FORWARD_ISharedFolder_GETTER_Writable_TO (smth) COM_FORWARD_ISharedFolder_GETTER_LastAccessError_TO (smth) ")
cpp_quote("#define COM_FORWARD_ISharedFolder_TO_OBJ(obj) COM_FORWARD_ISharedFolder_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISharedFolder_TO_BASE(base) COM_FORWARD_ISharedFolder_TO (base::)")

[
    uuid(ab161f72-e4b3-44e6-a919-2256474bda66),
    object,
    dual,
    oleautomation
]
interface IInternalSessionControl : IDispatch
{
    HRESULT GetPID (
        [out, retval] ULONG * aPid
    );

    HRESULT GetRemoteConsole (
        [out, retval] IConsole * * aConsole
    );

    HRESULT AssignMachine (
        [in] IMachine * aMachine
    );

    HRESULT AssignRemoteMachine (
        [in] IMachine * aMachine,
        [in] IConsole * aConsole
    );

    HRESULT UpdateMachineState (
        [in] MachineState aAMachineState
    );

    HRESULT Uninitialize();

    HRESULT OnNetworkAdapterChange (
        [in] INetworkAdapter * aNetworkAdapter,
        [in] BOOL aChangeAdapter
    );

    HRESULT OnSerialPortChange (
        [in] ISerialPort * aSerialPort
    );

    HRESULT OnParallelPortChange (
        [in] IParallelPort * aParallelPort
    );

    HRESULT OnStorageControllerChange();

    HRESULT OnMediumChange (
        [in] IMediumAttachment * aMediumAttachment,
        [in] BOOL aForce
    );

    HRESULT OnCPUChange (
        [in] ULONG aCpu,
        [in] BOOL aAdd
    );

    HRESULT OnVRDPServerChange (
        [in] BOOL aRestart
    );

    HRESULT OnUSBControllerChange();

    HRESULT OnSharedFolderChange (
        [in] BOOL aGlobal
    );

    HRESULT OnUSBDeviceAttach (
        [in] IUSBDevice * aDevice,
        [in] IVirtualBoxErrorInfo * aError,
        [in] ULONG aMaskedInterfaces
    );

    HRESULT OnUSBDeviceDetach (
        [in] BSTR aId,
        [in] IVirtualBoxErrorInfo * aError
    );

    HRESULT OnShowWindow (
        [in] BOOL aCheck,
        [out] BOOL * aCanShow,
        [out] ULONG64 * aWinId
    );

    HRESULT AccessGuestProperty (
        [in] BSTR aName,
        [in] BSTR aValue,
        [in] BSTR aFlags,
        [in] BOOL aIsSetter,
        [out] BSTR * aRetValue,
        [out] ULONG64 * aRetTimestamp,
        [out] BSTR * aRetFlags
    );

    HRESULT EnumerateGuestProperties (
        [in] BSTR aPatterns,
        [out] SAFEARRAY(BSTR) * aKey,
        [out] SAFEARRAY(BSTR) * aValue,
        [out] SAFEARRAY(ULONG64) * aTimestamp,
        [out] SAFEARRAY(BSTR) * aFlags
    );

    HRESULT OnlineMergeMedium (
        [in] IMediumAttachment * aMediumAttachment,
        [in] ULONG aSourceIdx,
        [in] ULONG aTargetIdx,
        [in] IMedium * aSource,
        [in] IMedium * aTarget,
        [in] BOOL aMergeForward,
        [in] IMedium * aParentForTarget,
        [in, out] SAFEARRAY(IMedium *) * aChildrenToReparent,
        [in] IProgress * aProgress
    );

}; /* interface IInternalSessionControl */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IInternalSessionControl_GetPID_TO(smth) HRESULT STDMETHODCALLTYPE GetPID (ULONG * aPid) { return smth GetPID (aPid); }")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_GetPID_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_GetPID_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_GetPID_TO_BASE(base) COM_FORWARD_IInternalSessionControl_GetPID_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_GetRemoteConsole_TO(smth) HRESULT STDMETHODCALLTYPE GetRemoteConsole (IConsole * * aConsole) { return smth GetRemoteConsole (aConsole); }")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_GetRemoteConsole_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_GetRemoteConsole_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_GetRemoteConsole_TO_BASE(base) COM_FORWARD_IInternalSessionControl_GetRemoteConsole_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_AssignMachine_TO(smth) HRESULT STDMETHODCALLTYPE AssignMachine (IMachine * aMachine) { return smth AssignMachine (aMachine); }")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_AssignMachine_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_AssignMachine_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_AssignMachine_TO_BASE(base) COM_FORWARD_IInternalSessionControl_AssignMachine_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_AssignRemoteMachine_TO(smth) HRESULT STDMETHODCALLTYPE AssignRemoteMachine (IMachine * aMachine, IConsole * aConsole) { return smth AssignRemoteMachine (aMachine, aConsole); }")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_AssignRemoteMachine_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_AssignRemoteMachine_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_AssignRemoteMachine_TO_BASE(base) COM_FORWARD_IInternalSessionControl_AssignRemoteMachine_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_UpdateMachineState_TO(smth) HRESULT STDMETHODCALLTYPE UpdateMachineState (MachineState aAMachineState) { return smth UpdateMachineState (aAMachineState); }")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_UpdateMachineState_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_UpdateMachineState_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_UpdateMachineState_TO_BASE(base) COM_FORWARD_IInternalSessionControl_UpdateMachineState_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_Uninitialize_TO(smth) HRESULT STDMETHODCALLTYPE Uninitialize() { return smth Uninitialize(); }")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_Uninitialize_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_Uninitialize_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_Uninitialize_TO_BASE(base) COM_FORWARD_IInternalSessionControl_Uninitialize_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnNetworkAdapterChange_TO(smth) HRESULT STDMETHODCALLTYPE OnNetworkAdapterChange (INetworkAdapter * aNetworkAdapter, BOOL aChangeAdapter) { return smth OnNetworkAdapterChange (aNetworkAdapter, aChangeAdapter); }")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnNetworkAdapterChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnNetworkAdapterChange_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnNetworkAdapterChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnNetworkAdapterChange_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnSerialPortChange_TO(smth) HRESULT STDMETHODCALLTYPE OnSerialPortChange (ISerialPort * aSerialPort) { return smth OnSerialPortChange (aSerialPort); }")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnSerialPortChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnSerialPortChange_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnSerialPortChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnSerialPortChange_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnParallelPortChange_TO(smth) HRESULT STDMETHODCALLTYPE OnParallelPortChange (IParallelPort * aParallelPort) { return smth OnParallelPortChange (aParallelPort); }")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnParallelPortChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnParallelPortChange_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnParallelPortChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnParallelPortChange_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnStorageControllerChange_TO(smth) HRESULT STDMETHODCALLTYPE OnStorageControllerChange() { return smth OnStorageControllerChange(); }")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnStorageControllerChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnStorageControllerChange_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnStorageControllerChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnStorageControllerChange_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnMediumChange_TO(smth) HRESULT STDMETHODCALLTYPE OnMediumChange (IMediumAttachment * aMediumAttachment, BOOL aForce) { return smth OnMediumChange (aMediumAttachment, aForce); }")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnMediumChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnMediumChange_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnMediumChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnMediumChange_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnCPUChange_TO(smth) HRESULT STDMETHODCALLTYPE OnCPUChange (ULONG aCpu, BOOL aAdd) { return smth OnCPUChange (aCpu, aAdd); }")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnCPUChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnCPUChange_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnCPUChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnCPUChange_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnVRDPServerChange_TO(smth) HRESULT STDMETHODCALLTYPE OnVRDPServerChange (BOOL aRestart) { return smth OnVRDPServerChange (aRestart); }")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnVRDPServerChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnVRDPServerChange_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnVRDPServerChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnVRDPServerChange_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnUSBControllerChange_TO(smth) HRESULT STDMETHODCALLTYPE OnUSBControllerChange() { return smth OnUSBControllerChange(); }")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnUSBControllerChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnUSBControllerChange_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnUSBControllerChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnUSBControllerChange_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnSharedFolderChange_TO(smth) HRESULT STDMETHODCALLTYPE OnSharedFolderChange (BOOL aGlobal) { return smth OnSharedFolderChange (aGlobal); }")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnSharedFolderChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnSharedFolderChange_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnSharedFolderChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnSharedFolderChange_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnUSBDeviceAttach_TO(smth) HRESULT STDMETHODCALLTYPE OnUSBDeviceAttach (IUSBDevice * aDevice, IVirtualBoxErrorInfo * aError, ULONG aMaskedInterfaces) { return smth OnUSBDeviceAttach (aDevice, aError, aMaskedInterfaces); }")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnUSBDeviceAttach_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnUSBDeviceAttach_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnUSBDeviceAttach_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnUSBDeviceAttach_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnUSBDeviceDetach_TO(smth) HRESULT STDMETHODCALLTYPE OnUSBDeviceDetach (BSTR aId, IVirtualBoxErrorInfo * aError) { return smth OnUSBDeviceDetach (aId, aError); }")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnUSBDeviceDetach_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnUSBDeviceDetach_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnUSBDeviceDetach_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnUSBDeviceDetach_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnShowWindow_TO(smth) HRESULT STDMETHODCALLTYPE OnShowWindow (BOOL aCheck, BOOL * aCanShow, ULONG64 * aWinId) { return smth OnShowWindow (aCheck, aCanShow, aWinId); }")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnShowWindow_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnShowWindow_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnShowWindow_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnShowWindow_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_AccessGuestProperty_TO(smth) HRESULT STDMETHODCALLTYPE AccessGuestProperty (BSTR aName, BSTR aValue, BSTR aFlags, BOOL aIsSetter, BSTR * aRetValue, ULONG64 * aRetTimestamp, BSTR * aRetFlags) { return smth AccessGuestProperty (aName, aValue, aFlags, aIsSetter, aRetValue, aRetTimestamp, aRetFlags); }")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_AccessGuestProperty_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_AccessGuestProperty_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_AccessGuestProperty_TO_BASE(base) COM_FORWARD_IInternalSessionControl_AccessGuestProperty_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_EnumerateGuestProperties_TO(smth) HRESULT STDMETHODCALLTYPE EnumerateGuestProperties (BSTR aPatterns, SAFEARRAY * * aKey, SAFEARRAY * * aValue, SAFEARRAY * * aTimestamp, SAFEARRAY * * aFlags) { return smth EnumerateGuestProperties (aPatterns, aKey, aValue, aTimestamp, aFlags); }")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_EnumerateGuestProperties_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_EnumerateGuestProperties_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_EnumerateGuestProperties_TO_BASE(base) COM_FORWARD_IInternalSessionControl_EnumerateGuestProperties_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnlineMergeMedium_TO(smth) HRESULT STDMETHODCALLTYPE OnlineMergeMedium (IMediumAttachment * aMediumAttachment, ULONG aSourceIdx, ULONG aTargetIdx, IMedium * aSource, IMedium * aTarget, BOOL aMergeForward, IMedium * aParentForTarget, SAFEARRAY * * aChildrenToReparent, IProgress * aProgress) { return smth OnlineMergeMedium (aMediumAttachment, aSourceIdx, aTargetIdx, aSource, aTarget, aMergeForward, aParentForTarget, aChildrenToReparent, aProgress); }")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnlineMergeMedium_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnlineMergeMedium_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnlineMergeMedium_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnlineMergeMedium_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_TO(smth) COM_FORWARD_IInternalSessionControl_GetPID_TO (smth) COM_FORWARD_IInternalSessionControl_GetRemoteConsole_TO (smth) COM_FORWARD_IInternalSessionControl_AssignMachine_TO (smth) COM_FORWARD_IInternalSessionControl_AssignRemoteMachine_TO (smth) COM_FORWARD_IInternalSessionControl_UpdateMachineState_TO (smth) COM_FORWARD_IInternalSessionControl_Uninitialize_TO (smth) COM_FORWARD_IInternalSessionControl_OnNetworkAdapterChange_TO (smth) COM_FORWARD_IInternalSessionControl_OnSerialPortChange_TO (smth) COM_FORWARD_IInternalSessionControl_OnParallelPortChange_TO (smth) COM_FORWARD_IInternalSessionControl_OnStorageControllerChange_TO (smth) COM_FORWARD_IInternalSessionControl_OnMediumChange_TO (smth) COM_FORWARD_IInternalSessionControl_OnCPUChange_TO (smth) COM_FORWARD_IInternalSessionControl_OnVRDPServerChange_TO (smth) COM_FORWARD_IInternalSessionControl_OnUSBControllerChange_TO (smth) COM_FORWARD_IInternalSessionControl_OnSharedFolderChange_TO (smth) COM_FORWARD_IInternalSessionControl_OnUSBDeviceAttach_TO (smth) COM_FORWARD_IInternalSessionControl_OnUSBDeviceDetach_TO (smth) COM_FORWARD_IInternalSessionControl_OnShowWindow_TO (smth) COM_FORWARD_IInternalSessionControl_AccessGuestProperty_TO (smth) COM_FORWARD_IInternalSessionControl_EnumerateGuestProperties_TO (smth) COM_FORWARD_IInternalSessionControl_OnlineMergeMedium_TO (smth) ")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_TO_BASE(base) COM_FORWARD_IInternalSessionControl_TO (base::)")

[
    uuid(12F4DCDB-12B2-4EC1-B7CD-DDD9F6C5BF4D),
    object,
    dual,
    oleautomation
]
interface ISession : IDispatch
{
    [propget] HRESULT State ([out, retval] SessionState * aState);

    [propget] HRESULT Type ([out, retval] SessionType * aType);

    [propget] HRESULT Machine ([out, retval] IMachine * * aMachine);

    [propget] HRESULT Console ([out, retval] IConsole * * aConsole);

    HRESULT Close();

}; /* interface ISession */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_ISession_GETTER_State_TO(smth) HRESULT STDMETHODCALLTYPE get_State (SessionState * aState) { return smth get_State (aState); }")
cpp_quote("#define COM_FORWARD_ISession_GETTER_State_TO_OBJ(obj) COM_FORWARD_ISession_GETTER_State_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISession_GETTER_State_TO_BASE(base) COM_FORWARD_ISession_GETTER_State_TO (base::)")
cpp_quote("#define COM_FORWARD_ISession_GETTER_Type_TO(smth) HRESULT STDMETHODCALLTYPE get_Type (SessionType * aType) { return smth get_Type (aType); }")
cpp_quote("#define COM_FORWARD_ISession_GETTER_Type_TO_OBJ(obj) COM_FORWARD_ISession_GETTER_Type_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISession_GETTER_Type_TO_BASE(base) COM_FORWARD_ISession_GETTER_Type_TO (base::)")
cpp_quote("#define COM_FORWARD_ISession_GETTER_Machine_TO(smth) HRESULT STDMETHODCALLTYPE get_Machine (IMachine * * aMachine) { return smth get_Machine (aMachine); }")
cpp_quote("#define COM_FORWARD_ISession_GETTER_Machine_TO_OBJ(obj) COM_FORWARD_ISession_GETTER_Machine_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISession_GETTER_Machine_TO_BASE(base) COM_FORWARD_ISession_GETTER_Machine_TO (base::)")
cpp_quote("#define COM_FORWARD_ISession_GETTER_Console_TO(smth) HRESULT STDMETHODCALLTYPE get_Console (IConsole * * aConsole) { return smth get_Console (aConsole); }")
cpp_quote("#define COM_FORWARD_ISession_GETTER_Console_TO_OBJ(obj) COM_FORWARD_ISession_GETTER_Console_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISession_GETTER_Console_TO_BASE(base) COM_FORWARD_ISession_GETTER_Console_TO (base::)")
cpp_quote("#define COM_FORWARD_ISession_Close_TO(smth) HRESULT STDMETHODCALLTYPE Close() { return smth Close(); }")
cpp_quote("#define COM_FORWARD_ISession_Close_TO_OBJ(obj) COM_FORWARD_ISession_Close_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISession_Close_TO_BASE(base) COM_FORWARD_ISession_Close_TO (base::)")
cpp_quote("#define COM_FORWARD_ISession_TO(smth) COM_FORWARD_ISession_GETTER_State_TO (smth) COM_FORWARD_ISession_GETTER_Type_TO (smth) COM_FORWARD_ISession_GETTER_Machine_TO (smth) COM_FORWARD_ISession_GETTER_Console_TO (smth) COM_FORWARD_ISession_Close_TO (smth) ")
cpp_quote("#define COM_FORWARD_ISession_TO_OBJ(obj) COM_FORWARD_ISession_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISession_TO_BASE(base) COM_FORWARD_ISession_TO (base::)")

[
    uuid(fd93adc0-bbaa-4256-9e6e-00e29f9151c9),
    object,
    dual,
    oleautomation
]
interface IStorageController : IDispatch
{
    [propget] HRESULT Name ([out, retval] BSTR * aName);

    [propget] HRESULT MaxDevicesPerPortCount ([out, retval] ULONG * aMaxDevicesPerPortCount);

    [propget] HRESULT MinPortCount ([out, retval] ULONG * aMinPortCount);

    [propget] HRESULT MaxPortCount ([out, retval] ULONG * aMaxPortCount);

    [propget] HRESULT Instance ([out, retval] ULONG * aInstance);
    [propput] HRESULT Instance ([in] ULONG aInstance);

    [propget] HRESULT PortCount ([out, retval] ULONG * aPortCount);
    [propput] HRESULT PortCount ([in] ULONG aPortCount);

    [propget] HRESULT Bus ([out, retval] StorageBus * aBus);

    [propget] HRESULT ControllerType ([out, retval] StorageControllerType * aControllerType);
    [propput] HRESULT ControllerType ([in] StorageControllerType aControllerType);

    [propget] HRESULT UseHostIOCache ([out, retval] BOOL * aUseHostIOCache);
    [propput] HRESULT UseHostIOCache ([in] BOOL aUseHostIOCache);

    HRESULT GetIDEEmulationPort (
        [in] LONG aDevicePosition,
        [out, retval] LONG * aPortNumber
    );

    HRESULT SetIDEEmulationPort (
        [in] LONG aDevicePosition,
        [in] LONG aPortNumber
    );

}; /* interface IStorageController */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IStorageController_GETTER_Name_TO(smth) HRESULT STDMETHODCALLTYPE get_Name (BSTR * aName) { return smth get_Name (aName); }")
cpp_quote("#define COM_FORWARD_IStorageController_GETTER_Name_TO_OBJ(obj) COM_FORWARD_IStorageController_GETTER_Name_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IStorageController_GETTER_Name_TO_BASE(base) COM_FORWARD_IStorageController_GETTER_Name_TO (base::)")
cpp_quote("#define COM_FORWARD_IStorageController_GETTER_MaxDevicesPerPortCount_TO(smth) HRESULT STDMETHODCALLTYPE get_MaxDevicesPerPortCount (ULONG * aMaxDevicesPerPortCount) { return smth get_MaxDevicesPerPortCount (aMaxDevicesPerPortCount); }")
cpp_quote("#define COM_FORWARD_IStorageController_GETTER_MaxDevicesPerPortCount_TO_OBJ(obj) COM_FORWARD_IStorageController_GETTER_MaxDevicesPerPortCount_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IStorageController_GETTER_MaxDevicesPerPortCount_TO_BASE(base) COM_FORWARD_IStorageController_GETTER_MaxDevicesPerPortCount_TO (base::)")
cpp_quote("#define COM_FORWARD_IStorageController_GETTER_MinPortCount_TO(smth) HRESULT STDMETHODCALLTYPE get_MinPortCount (ULONG * aMinPortCount) { return smth get_MinPortCount (aMinPortCount); }")
cpp_quote("#define COM_FORWARD_IStorageController_GETTER_MinPortCount_TO_OBJ(obj) COM_FORWARD_IStorageController_GETTER_MinPortCount_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IStorageController_GETTER_MinPortCount_TO_BASE(base) COM_FORWARD_IStorageController_GETTER_MinPortCount_TO (base::)")
cpp_quote("#define COM_FORWARD_IStorageController_GETTER_MaxPortCount_TO(smth) HRESULT STDMETHODCALLTYPE get_MaxPortCount (ULONG * aMaxPortCount) { return smth get_MaxPortCount (aMaxPortCount); }")
cpp_quote("#define COM_FORWARD_IStorageController_GETTER_MaxPortCount_TO_OBJ(obj) COM_FORWARD_IStorageController_GETTER_MaxPortCount_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IStorageController_GETTER_MaxPortCount_TO_BASE(base) COM_FORWARD_IStorageController_GETTER_MaxPortCount_TO (base::)")
cpp_quote("#define COM_FORWARD_IStorageController_GETTER_Instance_TO(smth) HRESULT STDMETHODCALLTYPE get_Instance (ULONG * aInstance) { return smth get_Instance (aInstance); }")
cpp_quote("#define COM_FORWARD_IStorageController_GETTER_Instance_TO_OBJ(obj) COM_FORWARD_IStorageController_GETTER_Instance_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IStorageController_GETTER_Instance_TO_BASE(base) COM_FORWARD_IStorageController_GETTER_Instance_TO (base::)")
cpp_quote("#define COM_FORWARD_IStorageController_SETTER_Instance_TO(smth) HRESULT STDMETHODCALLTYPE put_Instance (ULONG aInstance) { return smth put_Instance (aInstance); }")
cpp_quote("#define COM_FORWARD_IStorageController_SETTER_Instance_TO_OBJ(obj) COM_FORWARD_IStorageController_SETTER_Instance_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IStorageController_SETTER_Instance_TO_BASE(base) COM_FORWARD_IStorageController_SETTER_Instance_TO (base::)")
cpp_quote("#define COM_FORWARD_IStorageController_GETTER_PortCount_TO(smth) HRESULT STDMETHODCALLTYPE get_PortCount (ULONG * aPortCount) { return smth get_PortCount (aPortCount); }")
cpp_quote("#define COM_FORWARD_IStorageController_GETTER_PortCount_TO_OBJ(obj) COM_FORWARD_IStorageController_GETTER_PortCount_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IStorageController_GETTER_PortCount_TO_BASE(base) COM_FORWARD_IStorageController_GETTER_PortCount_TO (base::)")
cpp_quote("#define COM_FORWARD_IStorageController_SETTER_PortCount_TO(smth) HRESULT STDMETHODCALLTYPE put_PortCount (ULONG aPortCount) { return smth put_PortCount (aPortCount); }")
cpp_quote("#define COM_FORWARD_IStorageController_SETTER_PortCount_TO_OBJ(obj) COM_FORWARD_IStorageController_SETTER_PortCount_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IStorageController_SETTER_PortCount_TO_BASE(base) COM_FORWARD_IStorageController_SETTER_PortCount_TO (base::)")
cpp_quote("#define COM_FORWARD_IStorageController_GETTER_Bus_TO(smth) HRESULT STDMETHODCALLTYPE get_Bus (StorageBus * aBus) { return smth get_Bus (aBus); }")
cpp_quote("#define COM_FORWARD_IStorageController_GETTER_Bus_TO_OBJ(obj) COM_FORWARD_IStorageController_GETTER_Bus_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IStorageController_GETTER_Bus_TO_BASE(base) COM_FORWARD_IStorageController_GETTER_Bus_TO (base::)")
cpp_quote("#define COM_FORWARD_IStorageController_GETTER_ControllerType_TO(smth) HRESULT STDMETHODCALLTYPE get_ControllerType (StorageControllerType * aControllerType) { return smth get_ControllerType (aControllerType); }")
cpp_quote("#define COM_FORWARD_IStorageController_GETTER_ControllerType_TO_OBJ(obj) COM_FORWARD_IStorageController_GETTER_ControllerType_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IStorageController_GETTER_ControllerType_TO_BASE(base) COM_FORWARD_IStorageController_GETTER_ControllerType_TO (base::)")
cpp_quote("#define COM_FORWARD_IStorageController_SETTER_ControllerType_TO(smth) HRESULT STDMETHODCALLTYPE put_ControllerType (StorageControllerType aControllerType) { return smth put_ControllerType (aControllerType); }")
cpp_quote("#define COM_FORWARD_IStorageController_SETTER_ControllerType_TO_OBJ(obj) COM_FORWARD_IStorageController_SETTER_ControllerType_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IStorageController_SETTER_ControllerType_TO_BASE(base) COM_FORWARD_IStorageController_SETTER_ControllerType_TO (base::)")
cpp_quote("#define COM_FORWARD_IStorageController_GETTER_UseHostIOCache_TO(smth) HRESULT STDMETHODCALLTYPE get_UseHostIOCache (BOOL * aUseHostIOCache) { return smth get_UseHostIOCache (aUseHostIOCache); }")
cpp_quote("#define COM_FORWARD_IStorageController_GETTER_UseHostIOCache_TO_OBJ(obj) COM_FORWARD_IStorageController_GETTER_UseHostIOCache_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IStorageController_GETTER_UseHostIOCache_TO_BASE(base) COM_FORWARD_IStorageController_GETTER_UseHostIOCache_TO (base::)")
cpp_quote("#define COM_FORWARD_IStorageController_SETTER_UseHostIOCache_TO(smth) HRESULT STDMETHODCALLTYPE put_UseHostIOCache (BOOL aUseHostIOCache) { return smth put_UseHostIOCache (aUseHostIOCache); }")
cpp_quote("#define COM_FORWARD_IStorageController_SETTER_UseHostIOCache_TO_OBJ(obj) COM_FORWARD_IStorageController_SETTER_UseHostIOCache_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IStorageController_SETTER_UseHostIOCache_TO_BASE(base) COM_FORWARD_IStorageController_SETTER_UseHostIOCache_TO (base::)")
cpp_quote("#define COM_FORWARD_IStorageController_GetIDEEmulationPort_TO(smth) HRESULT STDMETHODCALLTYPE GetIDEEmulationPort (LONG aDevicePosition, LONG * aPortNumber) { return smth GetIDEEmulationPort (aDevicePosition, aPortNumber); }")
cpp_quote("#define COM_FORWARD_IStorageController_GetIDEEmulationPort_TO_OBJ(obj) COM_FORWARD_IStorageController_GetIDEEmulationPort_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IStorageController_GetIDEEmulationPort_TO_BASE(base) COM_FORWARD_IStorageController_GetIDEEmulationPort_TO (base::)")
cpp_quote("#define COM_FORWARD_IStorageController_SetIDEEmulationPort_TO(smth) HRESULT STDMETHODCALLTYPE SetIDEEmulationPort (LONG aDevicePosition, LONG aPortNumber) { return smth SetIDEEmulationPort (aDevicePosition, aPortNumber); }")
cpp_quote("#define COM_FORWARD_IStorageController_SetIDEEmulationPort_TO_OBJ(obj) COM_FORWARD_IStorageController_SetIDEEmulationPort_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IStorageController_SetIDEEmulationPort_TO_BASE(base) COM_FORWARD_IStorageController_SetIDEEmulationPort_TO (base::)")
cpp_quote("#define COM_FORWARD_IStorageController_TO(smth) COM_FORWARD_IStorageController_GETTER_Name_TO (smth) COM_FORWARD_IStorageController_GETTER_MaxDevicesPerPortCount_TO (smth) COM_FORWARD_IStorageController_GETTER_MinPortCount_TO (smth) COM_FORWARD_IStorageController_GETTER_MaxPortCount_TO (smth) COM_FORWARD_IStorageController_GETTER_Instance_TO (smth) COM_FORWARD_IStorageController_SETTER_Instance_TO (smth) COM_FORWARD_IStorageController_GETTER_PortCount_TO (smth) COM_FORWARD_IStorageController_SETTER_PortCount_TO (smth) COM_FORWARD_IStorageController_GETTER_Bus_TO (smth) COM_FORWARD_IStorageController_GETTER_ControllerType_TO (smth) COM_FORWARD_IStorageController_SETTER_ControllerType_TO (smth) COM_FORWARD_IStorageController_GETTER_UseHostIOCache_TO (smth) COM_FORWARD_IStorageController_SETTER_UseHostIOCache_TO (smth) COM_FORWARD_IStorageController_GetIDEEmulationPort_TO (smth) COM_FORWARD_IStorageController_SetIDEEmulationPort_TO (smth) ")
cpp_quote("#define COM_FORWARD_IStorageController_TO_OBJ(obj) COM_FORWARD_IStorageController_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IStorageController_TO_BASE(base) COM_FORWARD_IStorageController_TO (base::)")

[
    uuid(2a1a60ae-9345-4019-ad53-d34ba41cbfe9),
    object,
    dual,
    oleautomation
]
interface IPerformanceMetric : IDispatch
{
    [propget] HRESULT MetricName ([out, retval] BSTR * aMetricName);

    [propget] HRESULT Object ([out, retval] IUnknown * * aObject);

    [propget] HRESULT Description ([out, retval] BSTR * aDescription);

    [propget] HRESULT Period ([out, retval] ULONG * aPeriod);

    [propget] HRESULT Count ([out, retval] ULONG * aCount);

    [propget] HRESULT Unit ([out, retval] BSTR * aUnit);

    [propget] HRESULT MinimumValue ([out, retval] LONG * aMinimumValue);

    [propget] HRESULT MaximumValue ([out, retval] LONG * aMaximumValue);

}; /* interface IPerformanceMetric */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IPerformanceMetric_GETTER_MetricName_TO(smth) HRESULT STDMETHODCALLTYPE get_MetricName (BSTR * aMetricName) { return smth get_MetricName (aMetricName); }")
cpp_quote("#define COM_FORWARD_IPerformanceMetric_GETTER_MetricName_TO_OBJ(obj) COM_FORWARD_IPerformanceMetric_GETTER_MetricName_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IPerformanceMetric_GETTER_MetricName_TO_BASE(base) COM_FORWARD_IPerformanceMetric_GETTER_MetricName_TO (base::)")
cpp_quote("#define COM_FORWARD_IPerformanceMetric_GETTER_Object_TO(smth) HRESULT STDMETHODCALLTYPE get_Object (IUnknown * * aObject) { return smth get_Object (aObject); }")
cpp_quote("#define COM_FORWARD_IPerformanceMetric_GETTER_Object_TO_OBJ(obj) COM_FORWARD_IPerformanceMetric_GETTER_Object_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IPerformanceMetric_GETTER_Object_TO_BASE(base) COM_FORWARD_IPerformanceMetric_GETTER_Object_TO (base::)")
cpp_quote("#define COM_FORWARD_IPerformanceMetric_GETTER_Description_TO(smth) HRESULT STDMETHODCALLTYPE get_Description (BSTR * aDescription) { return smth get_Description (aDescription); }")
cpp_quote("#define COM_FORWARD_IPerformanceMetric_GETTER_Description_TO_OBJ(obj) COM_FORWARD_IPerformanceMetric_GETTER_Description_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IPerformanceMetric_GETTER_Description_TO_BASE(base) COM_FORWARD_IPerformanceMetric_GETTER_Description_TO (base::)")
cpp_quote("#define COM_FORWARD_IPerformanceMetric_GETTER_Period_TO(smth) HRESULT STDMETHODCALLTYPE get_Period (ULONG * aPeriod) { return smth get_Period (aPeriod); }")
cpp_quote("#define COM_FORWARD_IPerformanceMetric_GETTER_Period_TO_OBJ(obj) COM_FORWARD_IPerformanceMetric_GETTER_Period_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IPerformanceMetric_GETTER_Period_TO_BASE(base) COM_FORWARD_IPerformanceMetric_GETTER_Period_TO (base::)")
cpp_quote("#define COM_FORWARD_IPerformanceMetric_GETTER_Count_TO(smth) HRESULT STDMETHODCALLTYPE get_Count (ULONG * aCount) { return smth get_Count (aCount); }")
cpp_quote("#define COM_FORWARD_IPerformanceMetric_GETTER_Count_TO_OBJ(obj) COM_FORWARD_IPerformanceMetric_GETTER_Count_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IPerformanceMetric_GETTER_Count_TO_BASE(base) COM_FORWARD_IPerformanceMetric_GETTER_Count_TO (base::)")
cpp_quote("#define COM_FORWARD_IPerformanceMetric_GETTER_Unit_TO(smth) HRESULT STDMETHODCALLTYPE get_Unit (BSTR * aUnit) { return smth get_Unit (aUnit); }")
cpp_quote("#define COM_FORWARD_IPerformanceMetric_GETTER_Unit_TO_OBJ(obj) COM_FORWARD_IPerformanceMetric_GETTER_Unit_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IPerformanceMetric_GETTER_Unit_TO_BASE(base) COM_FORWARD_IPerformanceMetric_GETTER_Unit_TO (base::)")
cpp_quote("#define COM_FORWARD_IPerformanceMetric_GETTER_MinimumValue_TO(smth) HRESULT STDMETHODCALLTYPE get_MinimumValue (LONG * aMinimumValue) { return smth get_MinimumValue (aMinimumValue); }")
cpp_quote("#define COM_FORWARD_IPerformanceMetric_GETTER_MinimumValue_TO_OBJ(obj) COM_FORWARD_IPerformanceMetric_GETTER_MinimumValue_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IPerformanceMetric_GETTER_MinimumValue_TO_BASE(base) COM_FORWARD_IPerformanceMetric_GETTER_MinimumValue_TO (base::)")
cpp_quote("#define COM_FORWARD_IPerformanceMetric_GETTER_MaximumValue_TO(smth) HRESULT STDMETHODCALLTYPE get_MaximumValue (LONG * aMaximumValue) { return smth get_MaximumValue (aMaximumValue); }")
cpp_quote("#define COM_FORWARD_IPerformanceMetric_GETTER_MaximumValue_TO_OBJ(obj) COM_FORWARD_IPerformanceMetric_GETTER_MaximumValue_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IPerformanceMetric_GETTER_MaximumValue_TO_BASE(base) COM_FORWARD_IPerformanceMetric_GETTER_MaximumValue_TO (base::)")
cpp_quote("#define COM_FORWARD_IPerformanceMetric_TO(smth) COM_FORWARD_IPerformanceMetric_GETTER_MetricName_TO (smth) COM_FORWARD_IPerformanceMetric_GETTER_Object_TO (smth) COM_FORWARD_IPerformanceMetric_GETTER_Description_TO (smth) COM_FORWARD_IPerformanceMetric_GETTER_Period_TO (smth) COM_FORWARD_IPerformanceMetric_GETTER_Count_TO (smth) COM_FORWARD_IPerformanceMetric_GETTER_Unit_TO (smth) COM_FORWARD_IPerformanceMetric_GETTER_MinimumValue_TO (smth) COM_FORWARD_IPerformanceMetric_GETTER_MaximumValue_TO (smth) ")
cpp_quote("#define COM_FORWARD_IPerformanceMetric_TO_OBJ(obj) COM_FORWARD_IPerformanceMetric_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IPerformanceMetric_TO_BASE(base) COM_FORWARD_IPerformanceMetric_TO (base::)")

[
    uuid(e22e1acb-ac4a-43bb-a31c-17321659b0c6),
    object,
    dual,
    oleautomation
]
interface IPerformanceCollector : IDispatch
{
    [propget] HRESULT MetricNames ([out, retval] SAFEARRAY(BSTR) * aMetricNames);

    HRESULT GetMetrics (
        [in, out] SAFEARRAY(BSTR) * aMetricNames,
        [in, out] SAFEARRAY(IUnknown *) * aObjects,
        [out, retval] SAFEARRAY(IPerformanceMetric *) * aMetrics
    );

    HRESULT SetupMetrics (
        [in, out] SAFEARRAY(BSTR) * aMetricNames,
        [in, out] SAFEARRAY(IUnknown *) * aObjects,
        [in] ULONG aPeriod,
        [in] ULONG aCount,
        [out, retval] SAFEARRAY(IPerformanceMetric *) * aAffectedMetrics
    );

    HRESULT EnableMetrics (
        [in, out] SAFEARRAY(BSTR) * aMetricNames,
        [in, out] SAFEARRAY(IUnknown *) * aObjects,
        [out, retval] SAFEARRAY(IPerformanceMetric *) * aAffectedMetrics
    );

    HRESULT DisableMetrics (
        [in, out] SAFEARRAY(BSTR) * aMetricNames,
        [in, out] SAFEARRAY(IUnknown *) * aObjects,
        [out, retval] SAFEARRAY(IPerformanceMetric *) * aAffectedMetrics
    );

    HRESULT QueryMetricsData (
        [in, out] SAFEARRAY(BSTR) * aMetricNames,
        [in, out] SAFEARRAY(IUnknown *) * aObjects,
        [out] SAFEARRAY(BSTR) * aReturnMetricNames,
        [out] SAFEARRAY(IUnknown *) * aReturnObjects,
        [out] SAFEARRAY(BSTR) * aReturnUnits,
        [out] SAFEARRAY(ULONG) * aReturnScales,
        [out] SAFEARRAY(ULONG) * aReturnSequenceNumbers,
        [out] SAFEARRAY(ULONG) * aReturnDataIndices,
        [out] SAFEARRAY(ULONG) * aReturnDataLengths,
        [out, retval] SAFEARRAY(LONG) * aReturnData
    );

}; /* interface IPerformanceCollector */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IPerformanceCollector_GETTER_MetricNames_TO(smth) HRESULT STDMETHODCALLTYPE get_MetricNames (SAFEARRAY * * aMetricNames) { return smth get_MetricNames (aMetricNames); }")
cpp_quote("#define COM_FORWARD_IPerformanceCollector_GETTER_MetricNames_TO_OBJ(obj) COM_FORWARD_IPerformanceCollector_GETTER_MetricNames_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IPerformanceCollector_GETTER_MetricNames_TO_BASE(base) COM_FORWARD_IPerformanceCollector_GETTER_MetricNames_TO (base::)")
cpp_quote("#define COM_FORWARD_IPerformanceCollector_GetMetrics_TO(smth) HRESULT STDMETHODCALLTYPE GetMetrics (SAFEARRAY * * aMetricNames, SAFEARRAY * * aObjects, SAFEARRAY * * aMetrics) { return smth GetMetrics (aMetricNames, aObjects, aMetrics); }")
cpp_quote("#define COM_FORWARD_IPerformanceCollector_GetMetrics_TO_OBJ(obj) COM_FORWARD_IPerformanceCollector_GetMetrics_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IPerformanceCollector_GetMetrics_TO_BASE(base) COM_FORWARD_IPerformanceCollector_GetMetrics_TO (base::)")
cpp_quote("#define COM_FORWARD_IPerformanceCollector_SetupMetrics_TO(smth) HRESULT STDMETHODCALLTYPE SetupMetrics (SAFEARRAY * * aMetricNames, SAFEARRAY * * aObjects, ULONG aPeriod, ULONG aCount, SAFEARRAY * * aAffectedMetrics) { return smth SetupMetrics (aMetricNames, aObjects, aPeriod, aCount, aAffectedMetrics); }")
cpp_quote("#define COM_FORWARD_IPerformanceCollector_SetupMetrics_TO_OBJ(obj) COM_FORWARD_IPerformanceCollector_SetupMetrics_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IPerformanceCollector_SetupMetrics_TO_BASE(base) COM_FORWARD_IPerformanceCollector_SetupMetrics_TO (base::)")
cpp_quote("#define COM_FORWARD_IPerformanceCollector_EnableMetrics_TO(smth) HRESULT STDMETHODCALLTYPE EnableMetrics (SAFEARRAY * * aMetricNames, SAFEARRAY * * aObjects, SAFEARRAY * * aAffectedMetrics) { return smth EnableMetrics (aMetricNames, aObjects, aAffectedMetrics); }")
cpp_quote("#define COM_FORWARD_IPerformanceCollector_EnableMetrics_TO_OBJ(obj) COM_FORWARD_IPerformanceCollector_EnableMetrics_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IPerformanceCollector_EnableMetrics_TO_BASE(base) COM_FORWARD_IPerformanceCollector_EnableMetrics_TO (base::)")
cpp_quote("#define COM_FORWARD_IPerformanceCollector_DisableMetrics_TO(smth) HRESULT STDMETHODCALLTYPE DisableMetrics (SAFEARRAY * * aMetricNames, SAFEARRAY * * aObjects, SAFEARRAY * * aAffectedMetrics) { return smth DisableMetrics (aMetricNames, aObjects, aAffectedMetrics); }")
cpp_quote("#define COM_FORWARD_IPerformanceCollector_DisableMetrics_TO_OBJ(obj) COM_FORWARD_IPerformanceCollector_DisableMetrics_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IPerformanceCollector_DisableMetrics_TO_BASE(base) COM_FORWARD_IPerformanceCollector_DisableMetrics_TO (base::)")
cpp_quote("#define COM_FORWARD_IPerformanceCollector_QueryMetricsData_TO(smth) HRESULT STDMETHODCALLTYPE QueryMetricsData (SAFEARRAY * * aMetricNames, SAFEARRAY * * aObjects, SAFEARRAY * * aReturnMetricNames, SAFEARRAY * * aReturnObjects, SAFEARRAY * * aReturnUnits, SAFEARRAY * * aReturnScales, SAFEARRAY * * aReturnSequenceNumbers, SAFEARRAY * * aReturnDataIndices, SAFEARRAY * * aReturnDataLengths, SAFEARRAY * * aReturnData) { return smth QueryMetricsData (aMetricNames, aObjects, aReturnMetricNames, aReturnObjects, aReturnUnits, aReturnScales, aReturnSequenceNumbers, aReturnDataIndices, aReturnDataLengths, aReturnData); }")
cpp_quote("#define COM_FORWARD_IPerformanceCollector_QueryMetricsData_TO_OBJ(obj) COM_FORWARD_IPerformanceCollector_QueryMetricsData_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IPerformanceCollector_QueryMetricsData_TO_BASE(base) COM_FORWARD_IPerformanceCollector_QueryMetricsData_TO (base::)")
cpp_quote("#define COM_FORWARD_IPerformanceCollector_TO(smth) COM_FORWARD_IPerformanceCollector_GETTER_MetricNames_TO (smth) COM_FORWARD_IPerformanceCollector_GetMetrics_TO (smth) COM_FORWARD_IPerformanceCollector_SetupMetrics_TO (smth) COM_FORWARD_IPerformanceCollector_EnableMetrics_TO (smth) COM_FORWARD_IPerformanceCollector_DisableMetrics_TO (smth) COM_FORWARD_IPerformanceCollector_QueryMetricsData_TO (smth) ")
cpp_quote("#define COM_FORWARD_IPerformanceCollector_TO_OBJ(obj) COM_FORWARD_IPerformanceCollector_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IPerformanceCollector_TO_BASE(base) COM_FORWARD_IPerformanceCollector_TO (base::)")

[
    uuid(4b286616-eb03-11de-b0fb-1701eca42246),
    object,
    dual,
    oleautomation
]
interface INATEngine : IDispatch
{
    [propget] HRESULT Network ([out, retval] BSTR * aNetwork);
    [propput] HRESULT Network ([in] BSTR aNetwork);

    [propget] HRESULT HostIP ([out, retval] BSTR * aHostIP);
    [propput] HRESULT HostIP ([in] BSTR aHostIP);

    [propget] HRESULT TftpPrefix ([out, retval] BSTR * aTftpPrefix);
    [propput] HRESULT TftpPrefix ([in] BSTR aTftpPrefix);

    [propget] HRESULT TftpBootFile ([out, retval] BSTR * aTftpBootFile);
    [propput] HRESULT TftpBootFile ([in] BSTR aTftpBootFile);

    [propget] HRESULT TftpNextServer ([out, retval] BSTR * aTftpNextServer);
    [propput] HRESULT TftpNextServer ([in] BSTR aTftpNextServer);

    [propget] HRESULT AliasMode ([out, retval] ULONG * aAliasMode);
    [propput] HRESULT AliasMode ([in] ULONG aAliasMode);

    [propget] HRESULT DnsPassDomain ([out, retval] BOOL * aDnsPassDomain);
    [propput] HRESULT DnsPassDomain ([in] BOOL aDnsPassDomain);

    [propget] HRESULT DnsProxy ([out, retval] BOOL * aDnsProxy);
    [propput] HRESULT DnsProxy ([in] BOOL aDnsProxy);

    [propget] HRESULT DnsUseHostResolver ([out, retval] BOOL * aDnsUseHostResolver);
    [propput] HRESULT DnsUseHostResolver ([in] BOOL aDnsUseHostResolver);

    [propget] HRESULT Redirects ([out, retval] SAFEARRAY(BSTR) * aRedirects);

    HRESULT SetNetworkSettings (
        [in] ULONG aMtu,
        [in] ULONG aSockSnd,
        [in] ULONG aSockRcv,
        [in] ULONG aTcpWndSnd,
        [in] ULONG aTcpWndRcv
    );

    HRESULT GetNetworkSettings (
        [out] ULONG * aMtu,
        [out] ULONG * aSockSnd,
        [out] ULONG * aSockRcv,
        [out] ULONG * aTcpWndSnd,
        [out] ULONG * aTcpWndRcv
    );

    HRESULT AddRedirect (
        [in] BSTR aName,
        [in] NATProtocol aProto,
        [in] BSTR aHostIp,
        [in] USHORT aHostPort,
        [in] BSTR aGuestIp,
        [in] USHORT aGuestPort
    );

    HRESULT RemoveRedirect (
        [in] BSTR aName
    );

}; /* interface INATEngine */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_INATEngine_GETTER_Network_TO(smth) HRESULT STDMETHODCALLTYPE get_Network (BSTR * aNetwork) { return smth get_Network (aNetwork); }")
cpp_quote("#define COM_FORWARD_INATEngine_GETTER_Network_TO_OBJ(obj) COM_FORWARD_INATEngine_GETTER_Network_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INATEngine_GETTER_Network_TO_BASE(base) COM_FORWARD_INATEngine_GETTER_Network_TO (base::)")
cpp_quote("#define COM_FORWARD_INATEngine_SETTER_Network_TO(smth) HRESULT STDMETHODCALLTYPE put_Network (BSTR aNetwork) { return smth put_Network (aNetwork); }")
cpp_quote("#define COM_FORWARD_INATEngine_SETTER_Network_TO_OBJ(obj) COM_FORWARD_INATEngine_SETTER_Network_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INATEngine_SETTER_Network_TO_BASE(base) COM_FORWARD_INATEngine_SETTER_Network_TO (base::)")
cpp_quote("#define COM_FORWARD_INATEngine_GETTER_HostIP_TO(smth) HRESULT STDMETHODCALLTYPE get_HostIP (BSTR * aHostIP) { return smth get_HostIP (aHostIP); }")
cpp_quote("#define COM_FORWARD_INATEngine_GETTER_HostIP_TO_OBJ(obj) COM_FORWARD_INATEngine_GETTER_HostIP_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INATEngine_GETTER_HostIP_TO_BASE(base) COM_FORWARD_INATEngine_GETTER_HostIP_TO (base::)")
cpp_quote("#define COM_FORWARD_INATEngine_SETTER_HostIP_TO(smth) HRESULT STDMETHODCALLTYPE put_HostIP (BSTR aHostIP) { return smth put_HostIP (aHostIP); }")
cpp_quote("#define COM_FORWARD_INATEngine_SETTER_HostIP_TO_OBJ(obj) COM_FORWARD_INATEngine_SETTER_HostIP_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INATEngine_SETTER_HostIP_TO_BASE(base) COM_FORWARD_INATEngine_SETTER_HostIP_TO (base::)")
cpp_quote("#define COM_FORWARD_INATEngine_GETTER_TftpPrefix_TO(smth) HRESULT STDMETHODCALLTYPE get_TftpPrefix (BSTR * aTftpPrefix) { return smth get_TftpPrefix (aTftpPrefix); }")
cpp_quote("#define COM_FORWARD_INATEngine_GETTER_TftpPrefix_TO_OBJ(obj) COM_FORWARD_INATEngine_GETTER_TftpPrefix_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INATEngine_GETTER_TftpPrefix_TO_BASE(base) COM_FORWARD_INATEngine_GETTER_TftpPrefix_TO (base::)")
cpp_quote("#define COM_FORWARD_INATEngine_SETTER_TftpPrefix_TO(smth) HRESULT STDMETHODCALLTYPE put_TftpPrefix (BSTR aTftpPrefix) { return smth put_TftpPrefix (aTftpPrefix); }")
cpp_quote("#define COM_FORWARD_INATEngine_SETTER_TftpPrefix_TO_OBJ(obj) COM_FORWARD_INATEngine_SETTER_TftpPrefix_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INATEngine_SETTER_TftpPrefix_TO_BASE(base) COM_FORWARD_INATEngine_SETTER_TftpPrefix_TO (base::)")
cpp_quote("#define COM_FORWARD_INATEngine_GETTER_TftpBootFile_TO(smth) HRESULT STDMETHODCALLTYPE get_TftpBootFile (BSTR * aTftpBootFile) { return smth get_TftpBootFile (aTftpBootFile); }")
cpp_quote("#define COM_FORWARD_INATEngine_GETTER_TftpBootFile_TO_OBJ(obj) COM_FORWARD_INATEngine_GETTER_TftpBootFile_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INATEngine_GETTER_TftpBootFile_TO_BASE(base) COM_FORWARD_INATEngine_GETTER_TftpBootFile_TO (base::)")
cpp_quote("#define COM_FORWARD_INATEngine_SETTER_TftpBootFile_TO(smth) HRESULT STDMETHODCALLTYPE put_TftpBootFile (BSTR aTftpBootFile) { return smth put_TftpBootFile (aTftpBootFile); }")
cpp_quote("#define COM_FORWARD_INATEngine_SETTER_TftpBootFile_TO_OBJ(obj) COM_FORWARD_INATEngine_SETTER_TftpBootFile_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INATEngine_SETTER_TftpBootFile_TO_BASE(base) COM_FORWARD_INATEngine_SETTER_TftpBootFile_TO (base::)")
cpp_quote("#define COM_FORWARD_INATEngine_GETTER_TftpNextServer_TO(smth) HRESULT STDMETHODCALLTYPE get_TftpNextServer (BSTR * aTftpNextServer) { return smth get_TftpNextServer (aTftpNextServer); }")
cpp_quote("#define COM_FORWARD_INATEngine_GETTER_TftpNextServer_TO_OBJ(obj) COM_FORWARD_INATEngine_GETTER_TftpNextServer_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INATEngine_GETTER_TftpNextServer_TO_BASE(base) COM_FORWARD_INATEngine_GETTER_TftpNextServer_TO (base::)")
cpp_quote("#define COM_FORWARD_INATEngine_SETTER_TftpNextServer_TO(smth) HRESULT STDMETHODCALLTYPE put_TftpNextServer (BSTR aTftpNextServer) { return smth put_TftpNextServer (aTftpNextServer); }")
cpp_quote("#define COM_FORWARD_INATEngine_SETTER_TftpNextServer_TO_OBJ(obj) COM_FORWARD_INATEngine_SETTER_TftpNextServer_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INATEngine_SETTER_TftpNextServer_TO_BASE(base) COM_FORWARD_INATEngine_SETTER_TftpNextServer_TO (base::)")
cpp_quote("#define COM_FORWARD_INATEngine_GETTER_AliasMode_TO(smth) HRESULT STDMETHODCALLTYPE get_AliasMode (ULONG * aAliasMode) { return smth get_AliasMode (aAliasMode); }")
cpp_quote("#define COM_FORWARD_INATEngine_GETTER_AliasMode_TO_OBJ(obj) COM_FORWARD_INATEngine_GETTER_AliasMode_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INATEngine_GETTER_AliasMode_TO_BASE(base) COM_FORWARD_INATEngine_GETTER_AliasMode_TO (base::)")
cpp_quote("#define COM_FORWARD_INATEngine_SETTER_AliasMode_TO(smth) HRESULT STDMETHODCALLTYPE put_AliasMode (ULONG aAliasMode) { return smth put_AliasMode (aAliasMode); }")
cpp_quote("#define COM_FORWARD_INATEngine_SETTER_AliasMode_TO_OBJ(obj) COM_FORWARD_INATEngine_SETTER_AliasMode_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INATEngine_SETTER_AliasMode_TO_BASE(base) COM_FORWARD_INATEngine_SETTER_AliasMode_TO (base::)")
cpp_quote("#define COM_FORWARD_INATEngine_GETTER_DnsPassDomain_TO(smth) HRESULT STDMETHODCALLTYPE get_DnsPassDomain (BOOL * aDnsPassDomain) { return smth get_DnsPassDomain (aDnsPassDomain); }")
cpp_quote("#define COM_FORWARD_INATEngine_GETTER_DnsPassDomain_TO_OBJ(obj) COM_FORWARD_INATEngine_GETTER_DnsPassDomain_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INATEngine_GETTER_DnsPassDomain_TO_BASE(base) COM_FORWARD_INATEngine_GETTER_DnsPassDomain_TO (base::)")
cpp_quote("#define COM_FORWARD_INATEngine_SETTER_DnsPassDomain_TO(smth) HRESULT STDMETHODCALLTYPE put_DnsPassDomain (BOOL aDnsPassDomain) { return smth put_DnsPassDomain (aDnsPassDomain); }")
cpp_quote("#define COM_FORWARD_INATEngine_SETTER_DnsPassDomain_TO_OBJ(obj) COM_FORWARD_INATEngine_SETTER_DnsPassDomain_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INATEngine_SETTER_DnsPassDomain_TO_BASE(base) COM_FORWARD_INATEngine_SETTER_DnsPassDomain_TO (base::)")
cpp_quote("#define COM_FORWARD_INATEngine_GETTER_DnsProxy_TO(smth) HRESULT STDMETHODCALLTYPE get_DnsProxy (BOOL * aDnsProxy) { return smth get_DnsProxy (aDnsProxy); }")
cpp_quote("#define COM_FORWARD_INATEngine_GETTER_DnsProxy_TO_OBJ(obj) COM_FORWARD_INATEngine_GETTER_DnsProxy_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INATEngine_GETTER_DnsProxy_TO_BASE(base) COM_FORWARD_INATEngine_GETTER_DnsProxy_TO (base::)")
cpp_quote("#define COM_FORWARD_INATEngine_SETTER_DnsProxy_TO(smth) HRESULT STDMETHODCALLTYPE put_DnsProxy (BOOL aDnsProxy) { return smth put_DnsProxy (aDnsProxy); }")
cpp_quote("#define COM_FORWARD_INATEngine_SETTER_DnsProxy_TO_OBJ(obj) COM_FORWARD_INATEngine_SETTER_DnsProxy_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INATEngine_SETTER_DnsProxy_TO_BASE(base) COM_FORWARD_INATEngine_SETTER_DnsProxy_TO (base::)")
cpp_quote("#define COM_FORWARD_INATEngine_GETTER_DnsUseHostResolver_TO(smth) HRESULT STDMETHODCALLTYPE get_DnsUseHostResolver (BOOL * aDnsUseHostResolver) { return smth get_DnsUseHostResolver (aDnsUseHostResolver); }")
cpp_quote("#define COM_FORWARD_INATEngine_GETTER_DnsUseHostResolver_TO_OBJ(obj) COM_FORWARD_INATEngine_GETTER_DnsUseHostResolver_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INATEngine_GETTER_DnsUseHostResolver_TO_BASE(base) COM_FORWARD_INATEngine_GETTER_DnsUseHostResolver_TO (base::)")
cpp_quote("#define COM_FORWARD_INATEngine_SETTER_DnsUseHostResolver_TO(smth) HRESULT STDMETHODCALLTYPE put_DnsUseHostResolver (BOOL aDnsUseHostResolver) { return smth put_DnsUseHostResolver (aDnsUseHostResolver); }")
cpp_quote("#define COM_FORWARD_INATEngine_SETTER_DnsUseHostResolver_TO_OBJ(obj) COM_FORWARD_INATEngine_SETTER_DnsUseHostResolver_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INATEngine_SETTER_DnsUseHostResolver_TO_BASE(base) COM_FORWARD_INATEngine_SETTER_DnsUseHostResolver_TO (base::)")
cpp_quote("#define COM_FORWARD_INATEngine_GETTER_Redirects_TO(smth) HRESULT STDMETHODCALLTYPE get_Redirects (SAFEARRAY * * aRedirects) { return smth get_Redirects (aRedirects); }")
cpp_quote("#define COM_FORWARD_INATEngine_GETTER_Redirects_TO_OBJ(obj) COM_FORWARD_INATEngine_GETTER_Redirects_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INATEngine_GETTER_Redirects_TO_BASE(base) COM_FORWARD_INATEngine_GETTER_Redirects_TO (base::)")
cpp_quote("#define COM_FORWARD_INATEngine_SetNetworkSettings_TO(smth) HRESULT STDMETHODCALLTYPE SetNetworkSettings (ULONG aMtu, ULONG aSockSnd, ULONG aSockRcv, ULONG aTcpWndSnd, ULONG aTcpWndRcv) { return smth SetNetworkSettings (aMtu, aSockSnd, aSockRcv, aTcpWndSnd, aTcpWndRcv); }")
cpp_quote("#define COM_FORWARD_INATEngine_SetNetworkSettings_TO_OBJ(obj) COM_FORWARD_INATEngine_SetNetworkSettings_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INATEngine_SetNetworkSettings_TO_BASE(base) COM_FORWARD_INATEngine_SetNetworkSettings_TO (base::)")
cpp_quote("#define COM_FORWARD_INATEngine_GetNetworkSettings_TO(smth) HRESULT STDMETHODCALLTYPE GetNetworkSettings (ULONG * aMtu, ULONG * aSockSnd, ULONG * aSockRcv, ULONG * aTcpWndSnd, ULONG * aTcpWndRcv) { return smth GetNetworkSettings (aMtu, aSockSnd, aSockRcv, aTcpWndSnd, aTcpWndRcv); }")
cpp_quote("#define COM_FORWARD_INATEngine_GetNetworkSettings_TO_OBJ(obj) COM_FORWARD_INATEngine_GetNetworkSettings_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INATEngine_GetNetworkSettings_TO_BASE(base) COM_FORWARD_INATEngine_GetNetworkSettings_TO (base::)")
cpp_quote("#define COM_FORWARD_INATEngine_AddRedirect_TO(smth) HRESULT STDMETHODCALLTYPE AddRedirect (BSTR aName, NATProtocol aProto, BSTR aHostIp, USHORT aHostPort, BSTR aGuestIp, USHORT aGuestPort) { return smth AddRedirect (aName, aProto, aHostIp, aHostPort, aGuestIp, aGuestPort); }")
cpp_quote("#define COM_FORWARD_INATEngine_AddRedirect_TO_OBJ(obj) COM_FORWARD_INATEngine_AddRedirect_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INATEngine_AddRedirect_TO_BASE(base) COM_FORWARD_INATEngine_AddRedirect_TO (base::)")
cpp_quote("#define COM_FORWARD_INATEngine_RemoveRedirect_TO(smth) HRESULT STDMETHODCALLTYPE RemoveRedirect (BSTR aName) { return smth RemoveRedirect (aName); }")
cpp_quote("#define COM_FORWARD_INATEngine_RemoveRedirect_TO_OBJ(obj) COM_FORWARD_INATEngine_RemoveRedirect_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INATEngine_RemoveRedirect_TO_BASE(base) COM_FORWARD_INATEngine_RemoveRedirect_TO (base::)")
cpp_quote("#define COM_FORWARD_INATEngine_TO(smth) COM_FORWARD_INATEngine_GETTER_Network_TO (smth) COM_FORWARD_INATEngine_SETTER_Network_TO (smth) COM_FORWARD_INATEngine_GETTER_HostIP_TO (smth) COM_FORWARD_INATEngine_SETTER_HostIP_TO (smth) COM_FORWARD_INATEngine_GETTER_TftpPrefix_TO (smth) COM_FORWARD_INATEngine_SETTER_TftpPrefix_TO (smth) COM_FORWARD_INATEngine_GETTER_TftpBootFile_TO (smth) COM_FORWARD_INATEngine_SETTER_TftpBootFile_TO (smth) COM_FORWARD_INATEngine_GETTER_TftpNextServer_TO (smth) COM_FORWARD_INATEngine_SETTER_TftpNextServer_TO (smth) COM_FORWARD_INATEngine_GETTER_AliasMode_TO (smth) COM_FORWARD_INATEngine_SETTER_AliasMode_TO (smth) COM_FORWARD_INATEngine_GETTER_DnsPassDomain_TO (smth) COM_FORWARD_INATEngine_SETTER_DnsPassDomain_TO (smth) COM_FORWARD_INATEngine_GETTER_DnsProxy_TO (smth) COM_FORWARD_INATEngine_SETTER_DnsProxy_TO (smth) COM_FORWARD_INATEngine_GETTER_DnsUseHostResolver_TO (smth) COM_FORWARD_INATEngine_SETTER_DnsUseHostResolver_TO (smth) COM_FORWARD_INATEngine_GETTER_Redirects_TO (smth) COM_FORWARD_INATEngine_SetNetworkSettings_TO (smth) COM_FORWARD_INATEngine_GetNetworkSettings_TO (smth) COM_FORWARD_INATEngine_AddRedirect_TO (smth) COM_FORWARD_INATEngine_RemoveRedirect_TO (smth) ")
cpp_quote("#define COM_FORWARD_INATEngine_TO_OBJ(obj) COM_FORWARD_INATEngine_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_INATEngine_TO_BASE(base) COM_FORWARD_INATEngine_TO (base::)")

[
    uuid(B1A7A4F2-47B9-4A1E-82B2-07CCD5323C3F)
]
coclass VirtualBox
{
    [default] interface IVirtualBox;
    [default,source] interface IVirtualBoxCallback;

}; /* coclass VirtualBox */

[
    uuid(3C02F46D-C9D2-4F11-A384-53F0CF917214)
]
coclass Session
{
    [default] interface ISession;
    [default,source] interface IConsoleCallback;

}; /* coclass Session */

[
    uuid(49EE8561-5563-4715-B18C-A4B1A490DAFE)
]
coclass CallbackWrapper
{
    [default] interface ILocalOwner;
    interface IVirtualBoxCallback;
    interface IConsoleCallback;

}; /* coclass CallbackWrapper */

}; /* library VirtualBox */

