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

interface IVirtualBoxErrorInfo;
interface IVirtualBoxCallback;
interface IDHCPServer;
interface IVirtualBox;
interface IAppliance;
interface IVirtualSystemDescription;
interface IInternalMachineControl;
interface IBIOSSettings;
interface IMachine;
interface IConsoleCallback;
interface IRemoteDisplayInfo;
interface IConsole;
interface IHostDVDDrive;
interface IHostFloppyDrive;
interface IHostNetworkInterface;
interface IHost;
interface ISystemProperties;
interface IGuestOSType;
interface IGuest;
interface IProgress;
interface ISnapshot;
interface IMedium;
interface IHardDiskAttachment;
interface IHardDisk;
interface IHardDiskFormat;
interface IFloppyImage;
interface IDVDImage;
interface IDVDDrive;
interface IFloppyDrive;
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;

[
    uuid(523ff64d-842a-4b1a-80e7-c311b028cb3a),
    v1_enum
]
typedef enum 
{
    TSBool_False = 0,
    TSBool_True = 1,
    TSBool_Default = 2
} TSBool;

/* cross-platform type name for TSBool */
cpp_quote("#define TSBool_T TSBool")



[
    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(73bf04d0-7c4f-4684-9abf-d65a9ad74343),
    v1_enum
]
typedef enum 
{
    MachineState_Null = 0,
    MachineState_PoweredOff = 1,
    MachineState_Saved = 2,
    MachineState_Aborted = 3,
    MachineState_Running = 4,
    MachineState_Paused = 5,
    MachineState_Stuck = 6,
    MachineState_Starting = 7,
    MachineState_Stopping = 8,
    MachineState_Saving = 9,
    MachineState_Restoring = 10,
    MachineState_Discarding = 11,
    MachineState_SettingUp = 12,
    MachineState_FirstOnline = 4,
    MachineState_LastOnline = 10,
    MachineState_FirstTransient = 7,
    MachineState_LastTransient = 12
} 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(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(aa7c1d71-aafe-47a8-9608-27d2d337cf55),
    v1_enum
]
typedef enum 
{
    GuestStatisticType_CPULoad_Idle = 0,
    GuestStatisticType_CPULoad_Kernel = 1,
    GuestStatisticType_CPULoad_User = 2,
    GuestStatisticType_Threads = 3,
    GuestStatisticType_Processes = 4,
    GuestStatisticType_Handles = 5,
    GuestStatisticType_MemoryLoad = 6,
    GuestStatisticType_PhysMemTotal = 7,
    GuestStatisticType_PhysMemAvailable = 8,
    GuestStatisticType_PhysMemBalloon = 9,
    GuestStatisticType_MemCommitTotal = 10,
    GuestStatisticType_MemKernelTotal = 11,
    GuestStatisticType_MemKernelPaged = 12,
    GuestStatisticType_MemKernelNonpaged = 13,
    GuestStatisticType_MemSystemCache = 14,
    GuestStatisticType_PageFileSize = 15,
    GuestStatisticType_SampleNumber = 16,
    GuestStatisticType_MaxVal = 17
} GuestStatisticType;

/* cross-platform type name for GuestStatisticType */
cpp_quote("#define GuestStatisticType_T GuestStatisticType")



[
    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(cb7233b7-c519-42a5-8310-1830953cacbc),
    v1_enum
]
typedef enum 
{
    DriveState_Null = 0,
    DriveState_NotMounted = 1,
    DriveState_ImageMounted = 2,
    DriveState_HostDriveCaptured = 3
} DriveState;

/* cross-platform type name for DriveState */
cpp_quote("#define DriveState_T DriveState")



[
    uuid(b8353b35-705d-4796-9967-ebfb7ba54af4),
    v1_enum
]
typedef enum 
{
    ProcessorFeature_HWVirtEx = 0,
    ProcessorFeature_PAE = 1,
    ProcessorFeature_LongMode = 2
} ProcessorFeature;

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



[
    uuid(86ef5f8c-18b2-4db8-a314-33721b59f89b),
    v1_enum
]
typedef enum 
{
    CIMOSType_CIMOS_Unknown = 0,
    CIMOSType_CIMOS_Other = 1,
    CIMOSType_CIMOS_MACOS = 2,
    CIMOSType_CIMOS_ATTUNIX = 3,
    CIMOSType_CIMOS_DGUX = 4,
    CIMOSType_CIMOS_DECNT = 5,
    CIMOSType_CIMOS_Tru64UNIX = 6,
    CIMOSType_CIMOS_OpenVMS = 7,
    CIMOSType_CIMOS_HPUX = 8,
    CIMOSType_CIMOS_AIX = 9,
    CIMOSType_CIMOS_MVS = 10,
    CIMOSType_CIMOS_OS400 = 11,
    CIMOSType_CIMOS_OS2 = 12,
    CIMOSType_CIMOS_JavaVM = 13,
    CIMOSType_CIMOS_MSDOS = 14,
    CIMOSType_CIMOS_WIN3x = 15,
    CIMOSType_CIMOS_WIN95 = 16,
    CIMOSType_CIMOS_WIN98 = 17,
    CIMOSType_CIMOS_WINNT = 18,
    CIMOSType_CIMOS_WINCE = 19,
    CIMOSType_CIMOS_NCR3000 = 20,
    CIMOSType_CIMOS_NetWare = 21,
    CIMOSType_CIMOS_OSF = 22,
    CIMOSType_CIMOS_DCOS = 23,
    CIMOSType_CIMOS_ReliantUNIX = 24,
    CIMOSType_CIMOS_SCOUnixWare = 25,
    CIMOSType_CIMOS_SCOOpenServer = 26,
    CIMOSType_CIMOS_Sequent = 27,
    CIMOSType_CIMOS_IRIX = 28,
    CIMOSType_CIMOS_Solaris = 29,
    CIMOSType_CIMOS_SunOS = 30,
    CIMOSType_CIMOS_U6000 = 31,
    CIMOSType_CIMOS_ASERIES = 32,
    CIMOSType_CIMOS_HPNonStopOS = 33,
    CIMOSType_CIMOS_HPNonStopOSS = 34,
    CIMOSType_CIMOS_BS2000 = 35,
    CIMOSType_CIMOS_LINUX = 36,
    CIMOSType_CIMOS_Lynx = 37,
    CIMOSType_CIMOS_XENIX = 38,
    CIMOSType_CIMOS_VM = 39,
    CIMOSType_CIMOS_InteractiveUNIX = 40,
    CIMOSType_CIMOS_BSDUNIX = 41,
    CIMOSType_CIMOS_FreeBSD = 42,
    CIMOSType_CIMOS_NetBSD = 43,
    CIMOSType_CIMOS_GNUHurd = 44,
    CIMOSType_CIMOS_OS9 = 45,
    CIMOSType_CIMOS_MACHKernel = 46,
    CIMOSType_CIMOS_Inferno = 47,
    CIMOSType_CIMOS_QNX = 48,
    CIMOSType_CIMOS_EPOC = 49,
    CIMOSType_CIMOS_IxWorks = 50,
    CIMOSType_CIMOS_VxWorks = 51,
    CIMOSType_CIMOS_MiNT = 52,
    CIMOSType_CIMOS_BeOS = 53,
    CIMOSType_CIMOS_HPMPE = 54,
    CIMOSType_CIMOS_NextStep = 55,
    CIMOSType_CIMOS_PalmPilot = 56,
    CIMOSType_CIMOS_Rhapsody = 57,
    CIMOSType_CIMOS_Windows2000 = 58,
    CIMOSType_CIMOS_Dedicated = 59,
    CIMOSType_CIMOS_OS390 = 60,
    CIMOSType_CIMOS_VSE = 61,
    CIMOSType_CIMOS_TPF = 62,
    CIMOSType_CIMOS_WindowsMe = 63,
    CIMOSType_CIMOS_CalderaOpenUNIX = 64,
    CIMOSType_CIMOS_OpenBSD = 65,
    CIMOSType_CIMOS_NotApplicable = 66,
    CIMOSType_CIMOS_WindowsXP = 67,
    CIMOSType_CIMOS_zOS = 68,
    CIMOSType_CIMOS_MicrosoftWindowsServer2003 = 69,
    CIMOSType_CIMOS_MicrosoftWindowsServer2003_64 = 70,
    CIMOSType_CIMOS_WindowsXP_64 = 71,
    CIMOSType_CIMOS_WindowsXPEmbedded = 72,
    CIMOSType_CIMOS_WindowsVista = 73,
    CIMOSType_CIMOS_WindowsVista_64 = 74,
    CIMOSType_CIMOS_WindowsEmbeddedforPointofService = 75,
    CIMOSType_CIMOS_MicrosoftWindowsServer2008 = 76,
    CIMOSType_CIMOS_MicrosoftWindowsServer2008_64 = 77,
    CIMOSType_CIMOS_FreeBSD_64 = 78,
    CIMOSType_CIMOS_RedHatEnterpriseLinux = 79,
    CIMOSType_CIMOS_RedHatEnterpriseLinux_64 = 80,
    CIMOSType_CIMOS_Solaris_64 = 81,
    CIMOSType_CIMOS_SUSE = 82,
    CIMOSType_CIMOS_SUSE_64 = 83,
    CIMOSType_CIMOS_SLES = 84,
    CIMOSType_CIMOS_SLES_64 = 85,
    CIMOSType_CIMOS_NovellOES = 86,
    CIMOSType_CIMOS_NovellLinuxDesktop = 87,
    CIMOSType_CIMOS_SunJavaDesktopSystem = 88,
    CIMOSType_CIMOS_Mandriva = 89,
    CIMOSType_CIMOS_Mandriva_64 = 90,
    CIMOSType_CIMOS_TurboLinux = 91,
    CIMOSType_CIMOS_TurboLinux_64 = 92,
    CIMOSType_CIMOS_Ubuntu = 93,
    CIMOSType_CIMOS_Ubuntu_64 = 94,
    CIMOSType_CIMOS_Debian = 95,
    CIMOSType_CIMOS_Debian_64 = 96,
    CIMOSType_CIMOS_Linux_2_4_x = 97,
    CIMOSType_CIMOS_Linux_2_4_x_64 = 98,
    CIMOSType_CIMOS_Linux_2_6_x = 99,
    CIMOSType_CIMOS_Linux_2_6_x_64 = 100,
    CIMOSType_CIMOS_Linux_64 = 101,
    CIMOSType_CIMOS_Other_64 = 102
} CIMOSType;

/* cross-platform type name for CIMOSType */
cpp_quote("#define CIMOSType_T CIMOSType")



[
    uuid(646a78d7-6f04-49f4-82c4-75c28a75a4cd),
    v1_enum
]
typedef enum 
{
    OVFResourceType_Other = 1,
    OVFResourceType_ComputerSystem = 2,
    OVFResourceType_Processor = 3,
    OVFResourceType_Memory = 4,
    OVFResourceType_IDEController = 5,
    OVFResourceType_ParallelSCSIHBA = 6,
    OVFResourceType_FCHBA = 7,
    OVFResourceType_iSCSIHBA = 8,
    OVFResourceType_IBHCA = 9,
    OVFResourceType_EthernetAdapter = 10,
    OVFResourceType_OtherNetworkAdapter = 11,
    OVFResourceType_IOSlot = 12,
    OVFResourceType_IODevice = 13,
    OVFResourceType_FloppyDrive = 14,
    OVFResourceType_CDDrive = 15,
    OVFResourceType_DVDDrive = 16,
    OVFResourceType_HardDisk = 17,
    OVFResourceType_OtherStorageDevice = 20,
    OVFResourceType_USBController = 23,
    OVFResourceType_SoundCard = 35
} OVFResourceType;

/* cross-platform type name for OVFResourceType */
cpp_quote("#define OVFResourceType_T OVFResourceType")



[
    uuid(aacc58de-5b45-4f82-ae2e-dd9a824fc3b5),
    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_HardDiskImage = 17,
    VirtualSystemDescriptionType_Floppy = 18,
    VirtualSystemDescriptionType_CDROM = 19,
    VirtualSystemDescriptionType_NetworkAdapter = 20,
    VirtualSystemDescriptionType_USBController = 21,
    VirtualSystemDescriptionType_SoundCard = 22
} 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(8b86e03c-2f1c-412a-8fbd-326f62701200),
    v1_enum
]
typedef enum 
{
    MediaState_NotCreated = 0,
    MediaState_Created = 1,
    MediaState_LockedRead = 2,
    MediaState_LockedWrite = 3,
    MediaState_Inaccessible = 4,
    MediaState_Creating = 5,
    MediaState_Deleting = 6
} MediaState;

/* cross-platform type name for MediaState */
cpp_quote("#define MediaState_T MediaState")



[
    uuid(a348fafd-a64e-4643-ba65-eb3896bd7e0a),
    v1_enum
]
typedef enum 
{
    HardDiskType_Normal = 0,
    HardDiskType_Immutable = 1,
    HardDiskType_Writethrough = 2
} HardDiskType;

/* cross-platform type name for HardDiskType */
cpp_quote("#define HardDiskType_T HardDiskType")



[
    uuid(eb7fc6b3-ae23-4c5d-a1f6-e3522dd1efb0),
    v1_enum
]
typedef enum 
{
    HardDiskVariant_Standard = 0,
    HardDiskVariant_VmdkSplit2G = 0x01,
    HardDiskVariant_VmdkStreamOptimized = 0x04,
    HardDiskVariant_VmdkESX = 0x08,
    HardDiskVariant_Fixed = 0x10000,
    HardDiskVariant_Diff = 0x20000
} HardDiskVariant;

/* cross-platform type name for HardDiskVariant */
cpp_quote("#define HardDiskVariant_T HardDiskVariant")



[
    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(1df1e4aa-d25a-4ba6-b2a2-02f60eb5903b),
    v1_enum
]
typedef enum 
{
    HardDiskFormatCapabilities_Uuid = 0x01,
    HardDiskFormatCapabilities_CreateFixed = 0x02,
    HardDiskFormatCapabilities_CreateDynamic = 0x04,
    HardDiskFormatCapabilities_CreateSplit2G = 0x08,
    HardDiskFormatCapabilities_Differencing = 0x10,
    HardDiskFormatCapabilities_Asynchronous = 0x20,
    HardDiskFormatCapabilities_File = 0x40,
    HardDiskFormatCapabilities_Properties = 0x80,
    HardDiskFormatCapabilities_CapabilityMask = 0xFF
} HardDiskFormatCapabilities;

/* cross-platform type name for HardDiskFormatCapabilities */
cpp_quote("#define HardDiskFormatCapabilities_T HardDiskFormatCapabilities")



[
    uuid(03131722-2EC5-4173-9794-0DACA46673EF),
    v1_enum
]
typedef enum 
{
    MouseButtonState_LeftButton = 0x01,
    MouseButtonState_RightButton = 0x02,
    MouseButtonState_MiddleButton = 0x04,
    MouseButtonState_WheelUp = 0x08,
    MouseButtonState_WheelDown = 0x10,
    MouseButtonState_MouseStateMask = 0x1F
} MouseButtonState;

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



[
    uuid(f0e5ebbe-dc8e-4e2d-916e-53baa3844df8),
    v1_enum
]
typedef enum 
{
    FramebufferAccelerationOperation_SolidFillAcceleration = 1,
    FramebufferAccelerationOperation_ScreenCopyAcceleration = 2
} FramebufferAccelerationOperation;

/* cross-platform type name for FramebufferAccelerationOperation */
cpp_quote("#define FramebufferAccelerationOperation_T FramebufferAccelerationOperation")



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

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



[
    uuid(50c3dfd8-07ac-4a31-baac-519c828fbf97),
    v1_enum
]
typedef enum 
{
    NetworkAdapterType_Null = 0,
    NetworkAdapterType_Am79C970A = 1,
    NetworkAdapterType_Am79C973 = 2,
    NetworkAdapterType_I82540EM = 3,
    NetworkAdapterType_I82543GC = 4,
    NetworkAdapterType_I82545EM = 5
} NetworkAdapterType;

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



[
    uuid(b266f43c-2e93-46b3-812b-c20e600e867b),
    v1_enum
]
typedef enum 
{
    PortMode_Disconnected = 0,
    PortMode_HostPipe = 1,
    PortMode_HostDevice = 2
} 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(f381fdca-5953-41d0-b2bd-0542b012698d),
    v1_enum
]
typedef enum 
{
    StorageBus_Null = 0,
    StorageBus_IDE = 1,
    StorageBus_SATA = 2,
    StorageBus_SCSI = 3
} StorageBus;

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



[
    uuid(685387db-a837-4320-a258-08f46a22f62a),
    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;

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



[
    uuid(e98b5376-8eb4-4eea-812a-3964bf3bb26f),
    object,
    dual
]
interface IVirtualBoxErrorInfo : IErrorInfo
{
    [propget] HRESULT ResultCode ([out, retval] HRESULT * aResultCode);

    [propget] HRESULT InterfaceID ([out, retval] GUID * 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 (HRESULT * 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 (GUID * 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(5516cc08-fb81-47a6-b184-031e7bbd2997),
    object,
    dual
]
interface IVirtualBoxCallback : IUnknown
{
    HRESULT OnMachineStateChange (
        [in] GUID aMachineId,
        [in] MachineState aState
    );

    HRESULT OnMachineDataChange (
        [in] GUID aMachineId
    );

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

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

    HRESULT OnMediaRegistered (
        [in] GUID aMediaId,
        [in] DeviceType aMediaType,
        [in] BOOL aRegistered
    );

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

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

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

    HRESULT OnSnapshotDiscarded (
        [in] GUID aMachineId,
        [in] GUID aSnapshotId
    );

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

    HRESULT OnGuestPropertyChange (
        [in] GUID 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 (GUID 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 (GUID 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 (GUID 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 (GUID 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_OnMediaRegistered_TO(smth) HRESULT STDMETHODCALLTYPE OnMediaRegistered (GUID aMediaId, DeviceType aMediaType, BOOL aRegistered) { return smth OnMediaRegistered (aMediaId, aMediaType, aRegistered); }")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_OnMediaRegistered_TO_OBJ(obj) COM_FORWARD_IVirtualBoxCallback_OnMediaRegistered_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_OnMediaRegistered_TO_BASE(base) COM_FORWARD_IVirtualBoxCallback_OnMediaRegistered_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_OnMachineRegistered_TO(smth) HRESULT STDMETHODCALLTYPE OnMachineRegistered (GUID 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 (GUID 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 (GUID aMachineId, GUID 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_OnSnapshotDiscarded_TO(smth) HRESULT STDMETHODCALLTYPE OnSnapshotDiscarded (GUID aMachineId, GUID aSnapshotId) { return smth OnSnapshotDiscarded (aMachineId, aSnapshotId); }")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_OnSnapshotDiscarded_TO_OBJ(obj) COM_FORWARD_IVirtualBoxCallback_OnSnapshotDiscarded_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_OnSnapshotDiscarded_TO_BASE(base) COM_FORWARD_IVirtualBoxCallback_OnSnapshotDiscarded_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBoxCallback_OnSnapshotChange_TO(smth) HRESULT STDMETHODCALLTYPE OnSnapshotChange (GUID aMachineId, GUID 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 (GUID 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_OnMediaRegistered_TO (smth) COM_FORWARD_IVirtualBoxCallback_OnMachineRegistered_TO (smth) COM_FORWARD_IVirtualBoxCallback_OnSessionStateChange_TO (smth) COM_FORWARD_IVirtualBoxCallback_OnSnapshotTaken_TO (smth) COM_FORWARD_IVirtualBoxCallback_OnSnapshotDiscarded_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
]
interface IDHCPServer : IUnknown
{
    [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(779264f4-65ed-48ed-be39-518ca549e296),
    object,
    dual
]
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 SettingsFileVersion ([out, retval] BSTR * aSettingsFileVersion);

    [propget] HRESULT SettingsFormatVersion ([out, retval] BSTR * aSettingsFormatVersion);

    [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(IHardDisk *) * aHardDisks);

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

    [propget] HRESULT FloppyImages ([out, retval] SAFEARRAY(IFloppyImage *) * 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] GUID aId,
        [out, retval] IMachine * * aMachine
    );

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

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

    HRESULT RegisterMachine (
        [in] IMachine * aMachine
    );

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

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

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

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

    HRESULT CreateHardDisk (
        [in] BSTR aFormat,
        [in] BSTR aLocation,
        [out, retval] IHardDisk * * aHardDisk
    );

    HRESULT OpenHardDisk (
        [in] BSTR aLocation,
        [in] AccessMode aAccessMode,
        [out, retval] IHardDisk * * aHardDisk
    );

    HRESULT GetHardDisk (
        [in] GUID aId,
        [out, retval] IHardDisk * * aHardDisk
    );

    HRESULT FindHardDisk (
        [in] BSTR aLocation,
        [out, retval] IHardDisk * * aHardDisk
    );

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

    HRESULT GetDVDImage (
        [in] GUID aId,
        [out, retval] IDVDImage * * aImage
    );

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

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

    HRESULT GetFloppyImage (
        [in] GUID aId,
        [out, retval] IFloppyImage * * aImage
    );

    HRESULT FindFloppyImage (
        [in] BSTR aLocation,
        [out, retval] IFloppyImage * * 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 GetNextExtraDataKey (
        [in] BSTR aKey,
        [out] BSTR * aNextKey,
        [out] BSTR * aNextValue
    );

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

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

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

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

    HRESULT OpenExistingSession (
        [in] ISession * aSession,
        [in] GUID 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 SaveSettings();

    HRESULT SaveSettingsWithBackup (
        [out, retval] BSTR * aBakFileName
    );

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

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

    HRESULT RemoveDHCPServer (
        [in] IDHCPServer * aServer
    );

}; /* 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_SettingsFileVersion_TO(smth) HRESULT STDMETHODCALLTYPE get_SettingsFileVersion (BSTR * aSettingsFileVersion) { return smth get_SettingsFileVersion (aSettingsFileVersion); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_SettingsFileVersion_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_SettingsFileVersion_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_SettingsFileVersion_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_SettingsFileVersion_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_SettingsFormatVersion_TO(smth) HRESULT STDMETHODCALLTYPE get_SettingsFormatVersion (BSTR * aSettingsFormatVersion) { return smth get_SettingsFormatVersion (aSettingsFormatVersion); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_SettingsFormatVersion_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GETTER_SettingsFormatVersion_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GETTER_SettingsFormatVersion_TO_BASE(base) COM_FORWARD_IVirtualBox_GETTER_SettingsFormatVersion_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, GUID aId, IMachine * * aMachine) { return smth CreateMachine (aName, aOsTypeId, aBaseFolder, aId, 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, GUID 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 (GUID 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 (GUID 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, IHardDisk * * aHardDisk) { return smth CreateHardDisk (aFormat, aLocation, aHardDisk); }")
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, IHardDisk * * aHardDisk) { return smth OpenHardDisk (aLocation, aAccessMode, aHardDisk); }")
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 (GUID aId, IHardDisk * * aHardDisk) { return smth GetHardDisk (aId, aHardDisk); }")
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, IHardDisk * * aHardDisk) { return smth FindHardDisk (aLocation, aHardDisk); }")
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, GUID aId, IDVDImage * * 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 (GUID aId, IDVDImage * * 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, IDVDImage * * 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, GUID aId, IFloppyImage * * 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 (GUID aId, IFloppyImage * * 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, IFloppyImage * * 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_GetNextExtraDataKey_TO(smth) HRESULT STDMETHODCALLTYPE GetNextExtraDataKey (BSTR aKey, BSTR * aNextKey, BSTR * aNextValue) { return smth GetNextExtraDataKey (aKey, aNextKey, aNextValue); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_GetNextExtraDataKey_TO_OBJ(obj) COM_FORWARD_IVirtualBox_GetNextExtraDataKey_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_GetNextExtraDataKey_TO_BASE(base) COM_FORWARD_IVirtualBox_GetNextExtraDataKey_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, GUID 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, GUID 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, GUID 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_SaveSettings_TO(smth) HRESULT STDMETHODCALLTYPE SaveSettings() { return smth SaveSettings(); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_SaveSettings_TO_OBJ(obj) COM_FORWARD_IVirtualBox_SaveSettings_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_SaveSettings_TO_BASE(base) COM_FORWARD_IVirtualBox_SaveSettings_TO (base::)")
cpp_quote("#define COM_FORWARD_IVirtualBox_SaveSettingsWithBackup_TO(smth) HRESULT STDMETHODCALLTYPE SaveSettingsWithBackup (BSTR * aBakFileName) { return smth SaveSettingsWithBackup (aBakFileName); }")
cpp_quote("#define COM_FORWARD_IVirtualBox_SaveSettingsWithBackup_TO_OBJ(obj) COM_FORWARD_IVirtualBox_SaveSettingsWithBackup_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVirtualBox_SaveSettingsWithBackup_TO_BASE(base) COM_FORWARD_IVirtualBox_SaveSettingsWithBackup_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_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_SettingsFileVersion_TO (smth) COM_FORWARD_IVirtualBox_GETTER_SettingsFormatVersion_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_GetNextExtraDataKey_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_SaveSettings_TO (smth) COM_FORWARD_IVirtualBox_SaveSettingsWithBackup_TO (smth) COM_FORWARD_IVirtualBox_CreateDHCPServer_TO (smth) COM_FORWARD_IVirtualBox_FindDHCPServerByNetworkName_TO (smth) COM_FORWARD_IVirtualBox_RemoveDHCPServer_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(30bfa6b8-9eda-4b0a-b218-a86813248ccd),
    object,
    dual
]
interface IAppliance : IUnknown
{
    [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
    );

    HRESULT Interpret();

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

    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) { return smth Read (aFile); }")
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_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_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
]
interface IVirtualSystemDescription : IUnknown
{
    [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(2c88b969-7a74-4ef3-b95f-8a209a1535f3),
    object,
    dual
]
interface IInternalMachineControl : IUnknown
{
    HRESULT UpdateState (
        [in] MachineState aState
    );

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

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

    HRESULT CaptureUSBDevice (
        [in] GUID aId
    );

    HRESULT DetachUSBDevice (
        [in] GUID 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 * aProgress,
        [out] BSTR * aStateFilePath,
        [out] IProgress * * aServerProgress
    );

    HRESULT EndTakingSnapshot (
        [in] BOOL aSuccess
    );

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

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

    HRESULT DiscardCurrentSnapshotAndState (
        [in] IConsole * aInitiator,
        [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 PushGuestProperties (
        [in, out] SAFEARRAY(BSTR) * aName,
        [in, out] SAFEARRAY(BSTR) * aValue,
        [in, out] SAFEARRAY(ULONG64) * aTimestamp,
        [in, out] SAFEARRAY(BSTR) * aFlags
    );

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

    HRESULT LockMedia();

}; /* interface IInternalMachineControl */

/* Interface implementation forwarder macro */
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_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 (GUID 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 (GUID 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 * aProgress, BSTR * aStateFilePath, IProgress * * aServerProgress) { return smth BeginTakingSnapshot (aInitiator, aName, aDescription, aProgress, aStateFilePath, aServerProgress); }")
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_DiscardSnapshot_TO(smth) HRESULT STDMETHODCALLTYPE DiscardSnapshot (IConsole * aInitiator, GUID aId, MachineState * aMachineState, IProgress * * aProgress) { return smth DiscardSnapshot (aInitiator, aId, aMachineState, aProgress); }")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_DiscardSnapshot_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_DiscardSnapshot_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_DiscardSnapshot_TO_BASE(base) COM_FORWARD_IInternalMachineControl_DiscardSnapshot_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_DiscardCurrentState_TO(smth) HRESULT STDMETHODCALLTYPE DiscardCurrentState (IConsole * aInitiator, MachineState * aMachineState, IProgress * * aProgress) { return smth DiscardCurrentState (aInitiator, aMachineState, aProgress); }")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_DiscardCurrentState_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_DiscardCurrentState_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_DiscardCurrentState_TO_BASE(base) COM_FORWARD_IInternalMachineControl_DiscardCurrentState_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_DiscardCurrentSnapshotAndState_TO(smth) HRESULT STDMETHODCALLTYPE DiscardCurrentSnapshotAndState (IConsole * aInitiator, MachineState * aMachineState, IProgress * * aProgress) { return smth DiscardCurrentSnapshotAndState (aInitiator, aMachineState, aProgress); }")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_DiscardCurrentSnapshotAndState_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_DiscardCurrentSnapshotAndState_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_DiscardCurrentSnapshotAndState_TO_BASE(base) COM_FORWARD_IInternalMachineControl_DiscardCurrentSnapshotAndState_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_PushGuestProperties_TO(smth) HRESULT STDMETHODCALLTYPE PushGuestProperties (SAFEARRAY * * aName, SAFEARRAY * * aValue, SAFEARRAY * * aTimestamp, SAFEARRAY * * aFlags) { return smth PushGuestProperties (aName, aValue, aTimestamp, aFlags); }")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_PushGuestProperties_TO_OBJ(obj) COM_FORWARD_IInternalMachineControl_PushGuestProperties_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalMachineControl_PushGuestProperties_TO_BASE(base) COM_FORWARD_IInternalMachineControl_PushGuestProperties_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_TO(smth) COM_FORWARD_IInternalMachineControl_UpdateState_TO (smth) COM_FORWARD_IInternalMachineControl_GetIPCId_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_DiscardSnapshot_TO (smth) COM_FORWARD_IInternalMachineControl_DiscardCurrentState_TO (smth) COM_FORWARD_IInternalMachineControl_DiscardCurrentSnapshotAndState_TO (smth) COM_FORWARD_IInternalMachineControl_PullGuestProperties_TO (smth) COM_FORWARD_IInternalMachineControl_PushGuestProperties_TO (smth) COM_FORWARD_IInternalMachineControl_PushGuestProperty_TO (smth) COM_FORWARD_IInternalMachineControl_LockMedia_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
]
interface IBIOSSettings : IUnknown
{
    [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(13420cbb-175a-4456-85d0-301126dfdec7),
    object,
    dual
]
interface IMachine : IUnknown
{
    [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] GUID * 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 CPUCount ([out, retval] ULONG * aCPUCount);
    [propput] HRESULT CPUCount ([in] ULONG aCPUCount);

    [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 StatisticsUpdateInterval ([out, retval] ULONG * aStatisticsUpdateInterval);
    [propput] HRESULT StatisticsUpdateInterval ([in] ULONG aStatisticsUpdateInterval);

    [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 MonitorCount ([out, retval] ULONG * aMonitorCount);
    [propput] HRESULT MonitorCount ([in] ULONG aMonitorCount);

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

    [propget] HRESULT HWVirtExEnabled ([out, retval] TSBool * aHWVirtExEnabled);
    [propput] HRESULT HWVirtExEnabled ([in] TSBool aHWVirtExEnabled);

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

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

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

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

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

    [propget] HRESULT HardDiskAttachments ([out, retval] SAFEARRAY(IHardDiskAttachment *) * aHardDiskAttachments);

    [propget] HRESULT DVDDrive ([out, retval] IDVDDrive * * aDVDDrive);

    [propget] HRESULT FloppyDrive ([out, retval] IFloppyDrive * * aFloppyDrive);

    [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 SettingsFileVersion ([out, retval] BSTR * aSettingsFileVersion);

    [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);

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

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

    HRESULT AttachHardDisk (
        [in] GUID aId,
        [in] BSTR aName,
        [in] LONG aControllerPort,
        [in] LONG aDevice
    );

    HRESULT GetHardDisk (
        [in] BSTR aName,
        [in] LONG aControllerPort,
        [in] LONG aDevice,
        [out, retval] IHardDisk * * aHardDisk
    );

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

    HRESULT GetHardDiskAttachmentsOfController (
        [in] BSTR aName,
        [out, retval] SAFEARRAY(IHardDiskAttachment *) * aHardDiskAttachments
    );

    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 RemoveStorageController (
        [in] BSTR aName
    );

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

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

    HRESULT GetNextExtraDataKey (
        [in] BSTR aKey,
        [out] BSTR * aNextKey,
        [out] BSTR * aNextValue
    );

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

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

    HRESULT SaveSettings();

    HRESULT SaveSettingsWithBackup (
        [out, retval] BSTR * aBakFileName
    );

    HRESULT DiscardSettings();

    HRESULT DeleteSettings();

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

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

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

    HRESULT SetCurrentSnapshot (
        [in] GUID 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
    );

}; /* 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 (GUID * 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_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_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_StatisticsUpdateInterval_TO(smth) HRESULT STDMETHODCALLTYPE get_StatisticsUpdateInterval (ULONG * aStatisticsUpdateInterval) { return smth get_StatisticsUpdateInterval (aStatisticsUpdateInterval); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_StatisticsUpdateInterval_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_StatisticsUpdateInterval_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_StatisticsUpdateInterval_TO_BASE(base) COM_FORWARD_IMachine_GETTER_StatisticsUpdateInterval_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_StatisticsUpdateInterval_TO(smth) HRESULT STDMETHODCALLTYPE put_StatisticsUpdateInterval (ULONG aStatisticsUpdateInterval) { return smth put_StatisticsUpdateInterval (aStatisticsUpdateInterval); }")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_StatisticsUpdateInterval_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_StatisticsUpdateInterval_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_StatisticsUpdateInterval_TO_BASE(base) COM_FORWARD_IMachine_SETTER_StatisticsUpdateInterval_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_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_HWVirtExEnabled_TO(smth) HRESULT STDMETHODCALLTYPE get_HWVirtExEnabled (TSBool * aHWVirtExEnabled) { return smth get_HWVirtExEnabled (aHWVirtExEnabled); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_HWVirtExEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_HWVirtExEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_HWVirtExEnabled_TO_BASE(base) COM_FORWARD_IMachine_GETTER_HWVirtExEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_HWVirtExEnabled_TO(smth) HRESULT STDMETHODCALLTYPE put_HWVirtExEnabled (TSBool aHWVirtExEnabled) { return smth put_HWVirtExEnabled (aHWVirtExEnabled); }")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_HWVirtExEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_HWVirtExEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_HWVirtExEnabled_TO_BASE(base) COM_FORWARD_IMachine_SETTER_HWVirtExEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_HWVirtExNestedPagingEnabled_TO(smth) HRESULT STDMETHODCALLTYPE get_HWVirtExNestedPagingEnabled (BOOL * aHWVirtExNestedPagingEnabled) { return smth get_HWVirtExNestedPagingEnabled (aHWVirtExNestedPagingEnabled); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_HWVirtExNestedPagingEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_HWVirtExNestedPagingEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_HWVirtExNestedPagingEnabled_TO_BASE(base) COM_FORWARD_IMachine_GETTER_HWVirtExNestedPagingEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_HWVirtExNestedPagingEnabled_TO(smth) HRESULT STDMETHODCALLTYPE put_HWVirtExNestedPagingEnabled (BOOL aHWVirtExNestedPagingEnabled) { return smth put_HWVirtExNestedPagingEnabled (aHWVirtExNestedPagingEnabled); }")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_HWVirtExNestedPagingEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_HWVirtExNestedPagingEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_HWVirtExNestedPagingEnabled_TO_BASE(base) COM_FORWARD_IMachine_SETTER_HWVirtExNestedPagingEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_HWVirtExVPIDEnabled_TO(smth) HRESULT STDMETHODCALLTYPE get_HWVirtExVPIDEnabled (BOOL * aHWVirtExVPIDEnabled) { return smth get_HWVirtExVPIDEnabled (aHWVirtExVPIDEnabled); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_HWVirtExVPIDEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_HWVirtExVPIDEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_HWVirtExVPIDEnabled_TO_BASE(base) COM_FORWARD_IMachine_GETTER_HWVirtExVPIDEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_HWVirtExVPIDEnabled_TO(smth) HRESULT STDMETHODCALLTYPE put_HWVirtExVPIDEnabled (BOOL aHWVirtExVPIDEnabled) { return smth put_HWVirtExVPIDEnabled (aHWVirtExVPIDEnabled); }")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_HWVirtExVPIDEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_HWVirtExVPIDEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_HWVirtExVPIDEnabled_TO_BASE(base) COM_FORWARD_IMachine_SETTER_HWVirtExVPIDEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_PAEEnabled_TO(smth) HRESULT STDMETHODCALLTYPE get_PAEEnabled (BOOL * aPAEEnabled) { return smth get_PAEEnabled (aPAEEnabled); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_PAEEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_PAEEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_PAEEnabled_TO_BASE(base) COM_FORWARD_IMachine_GETTER_PAEEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_PAEEnabled_TO(smth) HRESULT STDMETHODCALLTYPE put_PAEEnabled (BOOL aPAEEnabled) { return smth put_PAEEnabled (aPAEEnabled); }")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_PAEEnabled_TO_OBJ(obj) COM_FORWARD_IMachine_SETTER_PAEEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SETTER_PAEEnabled_TO_BASE(base) COM_FORWARD_IMachine_SETTER_PAEEnabled_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_HardDiskAttachments_TO(smth) HRESULT STDMETHODCALLTYPE get_HardDiskAttachments (SAFEARRAY * * aHardDiskAttachments) { return smth get_HardDiskAttachments (aHardDiskAttachments); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_HardDiskAttachments_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_HardDiskAttachments_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_HardDiskAttachments_TO_BASE(base) COM_FORWARD_IMachine_GETTER_HardDiskAttachments_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_DVDDrive_TO(smth) HRESULT STDMETHODCALLTYPE get_DVDDrive (IDVDDrive * * aDVDDrive) { return smth get_DVDDrive (aDVDDrive); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_DVDDrive_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_DVDDrive_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_DVDDrive_TO_BASE(base) COM_FORWARD_IMachine_GETTER_DVDDrive_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_FloppyDrive_TO(smth) HRESULT STDMETHODCALLTYPE get_FloppyDrive (IFloppyDrive * * aFloppyDrive) { return smth get_FloppyDrive (aFloppyDrive); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_FloppyDrive_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_FloppyDrive_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_FloppyDrive_TO_BASE(base) COM_FORWARD_IMachine_GETTER_FloppyDrive_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_SettingsFileVersion_TO(smth) HRESULT STDMETHODCALLTYPE get_SettingsFileVersion (BSTR * aSettingsFileVersion) { return smth get_SettingsFileVersion (aSettingsFileVersion); }")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_SettingsFileVersion_TO_OBJ(obj) COM_FORWARD_IMachine_GETTER_SettingsFileVersion_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GETTER_SettingsFileVersion_TO_BASE(base) COM_FORWARD_IMachine_GETTER_SettingsFileVersion_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_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_AttachHardDisk_TO(smth) HRESULT STDMETHODCALLTYPE AttachHardDisk (GUID aId, BSTR aName, LONG aControllerPort, LONG aDevice) { return smth AttachHardDisk (aId, aName, aControllerPort, aDevice); }")
cpp_quote("#define COM_FORWARD_IMachine_AttachHardDisk_TO_OBJ(obj) COM_FORWARD_IMachine_AttachHardDisk_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_AttachHardDisk_TO_BASE(base) COM_FORWARD_IMachine_AttachHardDisk_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GetHardDisk_TO(smth) HRESULT STDMETHODCALLTYPE GetHardDisk (BSTR aName, LONG aControllerPort, LONG aDevice, IHardDisk * * aHardDisk) { return smth GetHardDisk (aName, aControllerPort, aDevice, aHardDisk); }")
cpp_quote("#define COM_FORWARD_IMachine_GetHardDisk_TO_OBJ(obj) COM_FORWARD_IMachine_GetHardDisk_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GetHardDisk_TO_BASE(base) COM_FORWARD_IMachine_GetHardDisk_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_DetachHardDisk_TO(smth) HRESULT STDMETHODCALLTYPE DetachHardDisk (BSTR aName, LONG aControllerPort, LONG aDevice) { return smth DetachHardDisk (aName, aControllerPort, aDevice); }")
cpp_quote("#define COM_FORWARD_IMachine_DetachHardDisk_TO_OBJ(obj) COM_FORWARD_IMachine_DetachHardDisk_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_DetachHardDisk_TO_BASE(base) COM_FORWARD_IMachine_DetachHardDisk_TO (base::)")
cpp_quote("#define COM_FORWARD_IMachine_GetHardDiskAttachmentsOfController_TO(smth) HRESULT STDMETHODCALLTYPE GetHardDiskAttachmentsOfController (BSTR aName, SAFEARRAY * * aHardDiskAttachments) { return smth GetHardDiskAttachmentsOfController (aName, aHardDiskAttachments); }")
cpp_quote("#define COM_FORWARD_IMachine_GetHardDiskAttachmentsOfController_TO_OBJ(obj) COM_FORWARD_IMachine_GetHardDiskAttachmentsOfController_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GetHardDiskAttachmentsOfController_TO_BASE(base) COM_FORWARD_IMachine_GetHardDiskAttachmentsOfController_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_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_GetNextExtraDataKey_TO(smth) HRESULT STDMETHODCALLTYPE GetNextExtraDataKey (BSTR aKey, BSTR * aNextKey, BSTR * aNextValue) { return smth GetNextExtraDataKey (aKey, aNextKey, aNextValue); }")
cpp_quote("#define COM_FORWARD_IMachine_GetNextExtraDataKey_TO_OBJ(obj) COM_FORWARD_IMachine_GetNextExtraDataKey_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_GetNextExtraDataKey_TO_BASE(base) COM_FORWARD_IMachine_GetNextExtraDataKey_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_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_SaveSettingsWithBackup_TO(smth) HRESULT STDMETHODCALLTYPE SaveSettingsWithBackup (BSTR * aBakFileName) { return smth SaveSettingsWithBackup (aBakFileName); }")
cpp_quote("#define COM_FORWARD_IMachine_SaveSettingsWithBackup_TO_OBJ(obj) COM_FORWARD_IMachine_SaveSettingsWithBackup_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IMachine_SaveSettingsWithBackup_TO_BASE(base) COM_FORWARD_IMachine_SaveSettingsWithBackup_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 (GUID 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 (GUID 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_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_CPUCount_TO (smth) COM_FORWARD_IMachine_SETTER_CPUCount_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_StatisticsUpdateInterval_TO (smth) COM_FORWARD_IMachine_SETTER_StatisticsUpdateInterval_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_MonitorCount_TO (smth) COM_FORWARD_IMachine_SETTER_MonitorCount_TO (smth) COM_FORWARD_IMachine_GETTER_BIOSSettings_TO (smth) COM_FORWARD_IMachine_GETTER_HWVirtExEnabled_TO (smth) COM_FORWARD_IMachine_SETTER_HWVirtExEnabled_TO (smth) COM_FORWARD_IMachine_GETTER_HWVirtExNestedPagingEnabled_TO (smth) COM_FORWARD_IMachine_SETTER_HWVirtExNestedPagingEnabled_TO (smth) COM_FORWARD_IMachine_GETTER_HWVirtExVPIDEnabled_TO (smth) COM_FORWARD_IMachine_SETTER_HWVirtExVPIDEnabled_TO (smth) COM_FORWARD_IMachine_GETTER_PAEEnabled_TO (smth) COM_FORWARD_IMachine_SETTER_PAEEnabled_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_HardDiskAttachments_TO (smth) COM_FORWARD_IMachine_GETTER_DVDDrive_TO (smth) COM_FORWARD_IMachine_GETTER_FloppyDrive_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_SettingsFileVersion_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_SetBootOrder_TO (smth) COM_FORWARD_IMachine_GetBootOrder_TO (smth) COM_FORWARD_IMachine_AttachHardDisk_TO (smth) COM_FORWARD_IMachine_GetHardDisk_TO (smth) COM_FORWARD_IMachine_DetachHardDisk_TO (smth) COM_FORWARD_IMachine_GetHardDiskAttachmentsOfController_TO (smth) COM_FORWARD_IMachine_GetNetworkAdapter_TO (smth) COM_FORWARD_IMachine_AddStorageController_TO (smth) COM_FORWARD_IMachine_GetStorageControllerByName_TO (smth) COM_FORWARD_IMachine_RemoveStorageController_TO (smth) COM_FORWARD_IMachine_GetSerialPort_TO (smth) COM_FORWARD_IMachine_GetParallelPort_TO (smth) COM_FORWARD_IMachine_GetNextExtraDataKey_TO (smth) COM_FORWARD_IMachine_GetExtraData_TO (smth) COM_FORWARD_IMachine_SetExtraData_TO (smth) COM_FORWARD_IMachine_SaveSettings_TO (smth) COM_FORWARD_IMachine_SaveSettingsWithBackup_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) ")
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(13dfbef3-b74d-487d-bada-2304529aefa6),
    object,
    dual
]
interface IConsoleCallback : IUnknown
{
    HRESULT OnMousePointerShapeChange (
        [in] BOOL aVisible,
        [in] BOOL aAlpha,
        [in] ULONG aXHot,
        [in] ULONG aYHot,
        [in] ULONG aWidth,
        [in] ULONG aHeight,
        [in] BYTE * aShape
    );

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

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

    HRESULT OnStateChange (
        [in] MachineState aState
    );

    HRESULT OnAdditionsStateChange();

    HRESULT OnDVDDriveChange();

    HRESULT OnFloppyDriveChange();

    HRESULT OnNetworkAdapterChange (
        [in] INetworkAdapter * aNetworkAdapter
    );

    HRESULT OnSerialPortChange (
        [in] ISerialPort * aSerialPort
    );

    HRESULT OnParallelPortChange (
        [in] IParallelPort * aParallelPort
    );

    HRESULT OnStorageControllerChange();

    HRESULT OnVRDPServerChange();

    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, BYTE * 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 aNeedsHostCursor) { return smth OnMouseCapabilityChange (aSupportsAbsolute, 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_OnDVDDriveChange_TO(smth) HRESULT STDMETHODCALLTYPE OnDVDDriveChange() { return smth OnDVDDriveChange(); }")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnDVDDriveChange_TO_OBJ(obj) COM_FORWARD_IConsoleCallback_OnDVDDriveChange_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnDVDDriveChange_TO_BASE(base) COM_FORWARD_IConsoleCallback_OnDVDDriveChange_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnFloppyDriveChange_TO(smth) HRESULT STDMETHODCALLTYPE OnFloppyDriveChange() { return smth OnFloppyDriveChange(); }")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnFloppyDriveChange_TO_OBJ(obj) COM_FORWARD_IConsoleCallback_OnFloppyDriveChange_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsoleCallback_OnFloppyDriveChange_TO_BASE(base) COM_FORWARD_IConsoleCallback_OnFloppyDriveChange_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_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_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_OnDVDDriveChange_TO (smth) COM_FORWARD_IConsoleCallback_OnFloppyDriveChange_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_OnVRDPServerChange_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(550104cd-2dfd-4a6c-857d-f6f8e088e62c),
    object,
    dual
]
interface IRemoteDisplayInfo : IUnknown
{
    [propget] HRESULT Active ([out, retval] BOOL * aActive);

    [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_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_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(9511bc54-15ee-4ddf-808e-472aba03809c),
    object,
    dual
]
interface IConsole : IUnknown
{
    [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();

    HRESULT PowerDownAsync (
        [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 DiscardSavedState();

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

    HRESULT AttachUSBDevice (
        [in] GUID aId
    );

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

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

    HRESULT FindUSBDeviceById (
        [in] GUID 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 DiscardSnapshot (
        [in] GUID aId,
        [out, retval] IProgress * * aProgress
    );

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

    HRESULT DiscardCurrentSnapshotAndState (
        [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() { return smth PowerDown(); }")
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_PowerDownAsync_TO(smth) HRESULT STDMETHODCALLTYPE PowerDownAsync (IProgress * * aProgress) { return smth PowerDownAsync (aProgress); }")
cpp_quote("#define COM_FORWARD_IConsole_PowerDownAsync_TO_OBJ(obj) COM_FORWARD_IConsole_PowerDownAsync_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_PowerDownAsync_TO_BASE(base) COM_FORWARD_IConsole_PowerDownAsync_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_DiscardSavedState_TO(smth) HRESULT STDMETHODCALLTYPE DiscardSavedState() { return smth DiscardSavedState(); }")
cpp_quote("#define COM_FORWARD_IConsole_DiscardSavedState_TO_OBJ(obj) COM_FORWARD_IConsole_DiscardSavedState_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_DiscardSavedState_TO_BASE(base) COM_FORWARD_IConsole_DiscardSavedState_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 (GUID 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 (GUID 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 (GUID 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_DiscardSnapshot_TO(smth) HRESULT STDMETHODCALLTYPE DiscardSnapshot (GUID aId, IProgress * * aProgress) { return smth DiscardSnapshot (aId, aProgress); }")
cpp_quote("#define COM_FORWARD_IConsole_DiscardSnapshot_TO_OBJ(obj) COM_FORWARD_IConsole_DiscardSnapshot_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_DiscardSnapshot_TO_BASE(base) COM_FORWARD_IConsole_DiscardSnapshot_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsole_DiscardCurrentState_TO(smth) HRESULT STDMETHODCALLTYPE DiscardCurrentState (IProgress * * aProgress) { return smth DiscardCurrentState (aProgress); }")
cpp_quote("#define COM_FORWARD_IConsole_DiscardCurrentState_TO_OBJ(obj) COM_FORWARD_IConsole_DiscardCurrentState_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_DiscardCurrentState_TO_BASE(base) COM_FORWARD_IConsole_DiscardCurrentState_TO (base::)")
cpp_quote("#define COM_FORWARD_IConsole_DiscardCurrentSnapshotAndState_TO(smth) HRESULT STDMETHODCALLTYPE DiscardCurrentSnapshotAndState (IProgress * * aProgress) { return smth DiscardCurrentSnapshotAndState (aProgress); }")
cpp_quote("#define COM_FORWARD_IConsole_DiscardCurrentSnapshotAndState_TO_OBJ(obj) COM_FORWARD_IConsole_DiscardCurrentSnapshotAndState_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IConsole_DiscardCurrentSnapshotAndState_TO_BASE(base) COM_FORWARD_IConsole_DiscardCurrentSnapshotAndState_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_PowerDownAsync_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_DiscardSavedState_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_DiscardSnapshot_TO (smth) COM_FORWARD_IConsole_DiscardCurrentState_TO (smth) COM_FORWARD_IConsole_DiscardCurrentSnapshotAndState_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(21f86694-202d-4ce4-8b05-a63ff82dbf4c),
    object,
    dual
]
interface IHostDVDDrive : IUnknown
{
    [propget] HRESULT Name ([out, retval] BSTR * aName);

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

    [propget] HRESULT Udi ([out, retval] BSTR * aUdi);

}; /* interface IHostDVDDrive */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IHostDVDDrive_GETTER_Name_TO(smth) HRESULT STDMETHODCALLTYPE get_Name (BSTR * aName) { return smth get_Name (aName); }")
cpp_quote("#define COM_FORWARD_IHostDVDDrive_GETTER_Name_TO_OBJ(obj) COM_FORWARD_IHostDVDDrive_GETTER_Name_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHostDVDDrive_GETTER_Name_TO_BASE(base) COM_FORWARD_IHostDVDDrive_GETTER_Name_TO (base::)")
cpp_quote("#define COM_FORWARD_IHostDVDDrive_GETTER_Description_TO(smth) HRESULT STDMETHODCALLTYPE get_Description (BSTR * aDescription) { return smth get_Description (aDescription); }")
cpp_quote("#define COM_FORWARD_IHostDVDDrive_GETTER_Description_TO_OBJ(obj) COM_FORWARD_IHostDVDDrive_GETTER_Description_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHostDVDDrive_GETTER_Description_TO_BASE(base) COM_FORWARD_IHostDVDDrive_GETTER_Description_TO (base::)")
cpp_quote("#define COM_FORWARD_IHostDVDDrive_GETTER_Udi_TO(smth) HRESULT STDMETHODCALLTYPE get_Udi (BSTR * aUdi) { return smth get_Udi (aUdi); }")
cpp_quote("#define COM_FORWARD_IHostDVDDrive_GETTER_Udi_TO_OBJ(obj) COM_FORWARD_IHostDVDDrive_GETTER_Udi_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHostDVDDrive_GETTER_Udi_TO_BASE(base) COM_FORWARD_IHostDVDDrive_GETTER_Udi_TO (base::)")
cpp_quote("#define COM_FORWARD_IHostDVDDrive_TO(smth) COM_FORWARD_IHostDVDDrive_GETTER_Name_TO (smth) COM_FORWARD_IHostDVDDrive_GETTER_Description_TO (smth) COM_FORWARD_IHostDVDDrive_GETTER_Udi_TO (smth) ")
cpp_quote("#define COM_FORWARD_IHostDVDDrive_TO_OBJ(obj) COM_FORWARD_IHostDVDDrive_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHostDVDDrive_TO_BASE(base) COM_FORWARD_IHostDVDDrive_TO (base::)")

[
    uuid(3f02d604-e908-4919-9fd1-8a4afd68fc63),
    object,
    dual
]
interface IHostFloppyDrive : IUnknown
{
    [propget] HRESULT Name ([out, retval] BSTR * aName);

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

    [propget] HRESULT Udi ([out, retval] BSTR * aUdi);

}; /* interface IHostFloppyDrive */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IHostFloppyDrive_GETTER_Name_TO(smth) HRESULT STDMETHODCALLTYPE get_Name (BSTR * aName) { return smth get_Name (aName); }")
cpp_quote("#define COM_FORWARD_IHostFloppyDrive_GETTER_Name_TO_OBJ(obj) COM_FORWARD_IHostFloppyDrive_GETTER_Name_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHostFloppyDrive_GETTER_Name_TO_BASE(base) COM_FORWARD_IHostFloppyDrive_GETTER_Name_TO (base::)")
cpp_quote("#define COM_FORWARD_IHostFloppyDrive_GETTER_Description_TO(smth) HRESULT STDMETHODCALLTYPE get_Description (BSTR * aDescription) { return smth get_Description (aDescription); }")
cpp_quote("#define COM_FORWARD_IHostFloppyDrive_GETTER_Description_TO_OBJ(obj) COM_FORWARD_IHostFloppyDrive_GETTER_Description_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHostFloppyDrive_GETTER_Description_TO_BASE(base) COM_FORWARD_IHostFloppyDrive_GETTER_Description_TO (base::)")
cpp_quote("#define COM_FORWARD_IHostFloppyDrive_GETTER_Udi_TO(smth) HRESULT STDMETHODCALLTYPE get_Udi (BSTR * aUdi) { return smth get_Udi (aUdi); }")
cpp_quote("#define COM_FORWARD_IHostFloppyDrive_GETTER_Udi_TO_OBJ(obj) COM_FORWARD_IHostFloppyDrive_GETTER_Udi_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHostFloppyDrive_GETTER_Udi_TO_BASE(base) COM_FORWARD_IHostFloppyDrive_GETTER_Udi_TO (base::)")
cpp_quote("#define COM_FORWARD_IHostFloppyDrive_TO(smth) COM_FORWARD_IHostFloppyDrive_GETTER_Name_TO (smth) COM_FORWARD_IHostFloppyDrive_GETTER_Description_TO (smth) COM_FORWARD_IHostFloppyDrive_GETTER_Udi_TO (smth) ")
cpp_quote("#define COM_FORWARD_IHostFloppyDrive_TO_OBJ(obj) COM_FORWARD_IHostFloppyDrive_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHostFloppyDrive_TO_BASE(base) COM_FORWARD_IHostFloppyDrive_TO (base::)")

[
    uuid(88adaf3f-166b-4542-9457-0f1323507fae),
    object,
    dual
]
interface IHostNetworkInterface : IUnknown
{
    [propget] HRESULT Name ([out, retval] BSTR * aName);

    [propget] HRESULT Id ([out, retval] GUID * 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 (GUID * 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(926469ca-9091-42ef-928e-582d78b66c70),
    object,
    dual
]
interface IHost : IUnknown
{
    [propget] HRESULT DVDDrives ([out, retval] SAFEARRAY(IHostDVDDrive *) * aDVDDrives);

    [propget] HRESULT FloppyDrives ([out, retval] SAFEARRAY(IHostFloppyDrive *) * 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 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);

    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 CreateUSBDeviceFilter (
        [in] BSTR aName,
        [out, retval] IHostUSBDeviceFilter * * aFilter
    );

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

    HRESULT RemoveUSBDeviceFilter (
        [in] ULONG aPosition,
        [out, retval] IHostUSBDeviceFilter * * aFilter
    );

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

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

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

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

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

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

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

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

    HRESULT RemoveHostOnlyNetworkInterface (
        [in] GUID aId,
        [out] IHostNetworkInterface * * aHostInterface,
        [out, retval] IProgress * * aProgress
    );

}; /* 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_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_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_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, IHostUSBDeviceFilter * * aFilter) { return smth RemoveUSBDeviceFilter (aPosition, aFilter); }")
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, IHostDVDDrive * * 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, IHostFloppyDrive * * 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 (GUID 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 (GUID 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_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 (GUID aId, IHostNetworkInterface * * aHostInterface, IProgress * * aProgress) { return smth RemoveHostOnlyNetworkInterface (aId, aHostInterface, 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_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_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_GetProcessorSpeed_TO (smth) COM_FORWARD_IHost_GetProcessorFeature_TO (smth) COM_FORWARD_IHost_GetProcessorDescription_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) COM_FORWARD_IHost_CreateHostOnlyNetworkInterface_TO (smth) COM_FORWARD_IHost_RemoveHostOnlyNetworkInterface_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(0760e03f-06d0-481e-9f81-be43fef092ba),
    object,
    dual
]
interface ISystemProperties : IUnknown
{
    [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 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 HardDiskFormats ([out, retval] SAFEARRAY(IHardDiskFormat *) * aHardDiskFormats);

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

    [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 HWVirtExEnabled ([out, retval] BOOL * aHWVirtExEnabled);
    [propput] HRESULT HWVirtExEnabled ([in] BOOL aHWVirtExEnabled);

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

}; /* 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_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_HardDiskFormats_TO(smth) HRESULT STDMETHODCALLTYPE get_HardDiskFormats (SAFEARRAY * * aHardDiskFormats) { return smth get_HardDiskFormats (aHardDiskFormats); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_HardDiskFormats_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_HardDiskFormats_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_HardDiskFormats_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_HardDiskFormats_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_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_HWVirtExEnabled_TO(smth) HRESULT STDMETHODCALLTYPE get_HWVirtExEnabled (BOOL * aHWVirtExEnabled) { return smth get_HWVirtExEnabled (aHWVirtExEnabled); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_HWVirtExEnabled_TO_OBJ(obj) COM_FORWARD_ISystemProperties_GETTER_HWVirtExEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_GETTER_HWVirtExEnabled_TO_BASE(base) COM_FORWARD_ISystemProperties_GETTER_HWVirtExEnabled_TO (base::)")
cpp_quote("#define COM_FORWARD_ISystemProperties_SETTER_HWVirtExEnabled_TO(smth) HRESULT STDMETHODCALLTYPE put_HWVirtExEnabled (BOOL aHWVirtExEnabled) { return smth put_HWVirtExEnabled (aHWVirtExEnabled); }")
cpp_quote("#define COM_FORWARD_ISystemProperties_SETTER_HWVirtExEnabled_TO_OBJ(obj) COM_FORWARD_ISystemProperties_SETTER_HWVirtExEnabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_ISystemProperties_SETTER_HWVirtExEnabled_TO_BASE(base) COM_FORWARD_ISystemProperties_SETTER_HWVirtExEnabled_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_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_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_HardDiskFormats_TO (smth) COM_FORWARD_ISystemProperties_GETTER_DefaultHardDiskFormat_TO (smth) COM_FORWARD_ISystemProperties_SETTER_DefaultHardDiskFormat_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_HWVirtExEnabled_TO (smth) COM_FORWARD_ISystemProperties_SETTER_HWVirtExEnabled_TO (smth) COM_FORWARD_ISystemProperties_GETTER_LogHistoryCount_TO (smth) COM_FORWARD_ISystemProperties_SETTER_LogHistoryCount_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(cfe9e64c-4430-435b-9e7c-e3d8e417bd58),
    object,
    dual
]
interface IGuestOSType : IUnknown
{
    [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);

}; /* 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_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) ")
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(d8556fca-81bc-12af-fca3-365528fa38ca),
    object,
    dual
]
interface IGuest : IUnknown
{
    [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 StatisticsUpdateInterval ([out, retval] ULONG * aStatisticsUpdateInterval);
    [propput] HRESULT StatisticsUpdateInterval ([in] ULONG aStatisticsUpdateInterval);

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

    HRESULT GetStatistic (
        [in] ULONG aCpuId,
        [in] GuestStatisticType aStatistic,
        [out] ULONG * aStatVal
    );

}; /* 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_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_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_GetStatistic_TO(smth) HRESULT STDMETHODCALLTYPE GetStatistic (ULONG aCpuId, GuestStatisticType aStatistic, ULONG * aStatVal) { return smth GetStatistic (aCpuId, aStatistic, aStatVal); }")
cpp_quote("#define COM_FORWARD_IGuest_GetStatistic_TO_OBJ(obj) COM_FORWARD_IGuest_GetStatistic_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IGuest_GetStatistic_TO_BASE(base) COM_FORWARD_IGuest_GetStatistic_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_StatisticsUpdateInterval_TO (smth) COM_FORWARD_IGuest_SETTER_StatisticsUpdateInterval_TO (smth) COM_FORWARD_IGuest_SetCredentials_TO (smth) COM_FORWARD_IGuest_GetStatistic_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(c4f94e6b-2273-446b-9539-4c05bb416fe7),
    object,
    dual
]
interface IProgress : IUnknown
{
    [propget] HRESULT Id ([out, retval] GUID * 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] HRESULT * 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);

    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 (GUID * 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 (HRESULT * 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_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_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(5db6b1d9-c76b-4424-a6f4-8257f642d6ea),
    object,
    dual
]
interface ISnapshot : IUnknown
{
    [propget] HRESULT Id ([out, retval] GUID * 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 (GUID * 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(a7fb3bfb-c180-4274-bae4-7fbc89046e13),
    object,
    dual
]
interface IMedium : IUnknown
{
    [propget] HRESULT Id ([out, retval] GUID * aId);

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

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

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

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

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

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

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

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

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

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

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

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

    HRESULT Close();

}; /* interface IMedium */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IMedium_GETTER_Id_TO(smth) HRESULT STDMETHODCALLTYPE get_Id (GUID * 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 (MediaState * 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_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_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_GetSnapshotIds_TO(smth) HRESULT STDMETHODCALLTYPE GetSnapshotIds (GUID 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 (MediaState * 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 (MediaState * 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 (MediaState * 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 (MediaState * 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_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_Size_TO (smth) COM_FORWARD_IMedium_GETTER_LastAccessError_TO (smth) COM_FORWARD_IMedium_GETTER_MachineIds_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) ")
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(b1dd04bb-93c0-4ad3-a9cf-82316e595836),
    object,
    dual
]
interface IHardDiskAttachment : IUnknown
{
    [propget] HRESULT HardDisk ([out, retval] IHardDisk * * aHardDisk);

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

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

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

}; /* interface IHardDiskAttachment */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IHardDiskAttachment_GETTER_HardDisk_TO(smth) HRESULT STDMETHODCALLTYPE get_HardDisk (IHardDisk * * aHardDisk) { return smth get_HardDisk (aHardDisk); }")
cpp_quote("#define COM_FORWARD_IHardDiskAttachment_GETTER_HardDisk_TO_OBJ(obj) COM_FORWARD_IHardDiskAttachment_GETTER_HardDisk_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHardDiskAttachment_GETTER_HardDisk_TO_BASE(base) COM_FORWARD_IHardDiskAttachment_GETTER_HardDisk_TO (base::)")
cpp_quote("#define COM_FORWARD_IHardDiskAttachment_GETTER_Controller_TO(smth) HRESULT STDMETHODCALLTYPE get_Controller (BSTR * aController) { return smth get_Controller (aController); }")
cpp_quote("#define COM_FORWARD_IHardDiskAttachment_GETTER_Controller_TO_OBJ(obj) COM_FORWARD_IHardDiskAttachment_GETTER_Controller_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHardDiskAttachment_GETTER_Controller_TO_BASE(base) COM_FORWARD_IHardDiskAttachment_GETTER_Controller_TO (base::)")
cpp_quote("#define COM_FORWARD_IHardDiskAttachment_GETTER_Port_TO(smth) HRESULT STDMETHODCALLTYPE get_Port (LONG * aPort) { return smth get_Port (aPort); }")
cpp_quote("#define COM_FORWARD_IHardDiskAttachment_GETTER_Port_TO_OBJ(obj) COM_FORWARD_IHardDiskAttachment_GETTER_Port_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHardDiskAttachment_GETTER_Port_TO_BASE(base) COM_FORWARD_IHardDiskAttachment_GETTER_Port_TO (base::)")
cpp_quote("#define COM_FORWARD_IHardDiskAttachment_GETTER_Device_TO(smth) HRESULT STDMETHODCALLTYPE get_Device (LONG * aDevice) { return smth get_Device (aDevice); }")
cpp_quote("#define COM_FORWARD_IHardDiskAttachment_GETTER_Device_TO_OBJ(obj) COM_FORWARD_IHardDiskAttachment_GETTER_Device_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHardDiskAttachment_GETTER_Device_TO_BASE(base) COM_FORWARD_IHardDiskAttachment_GETTER_Device_TO (base::)")
cpp_quote("#define COM_FORWARD_IHardDiskAttachment_TO(smth) COM_FORWARD_IHardDiskAttachment_GETTER_HardDisk_TO (smth) COM_FORWARD_IHardDiskAttachment_GETTER_Controller_TO (smth) COM_FORWARD_IHardDiskAttachment_GETTER_Port_TO (smth) COM_FORWARD_IHardDiskAttachment_GETTER_Device_TO (smth) ")
cpp_quote("#define COM_FORWARD_IHardDiskAttachment_TO_OBJ(obj) COM_FORWARD_IHardDiskAttachment_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHardDiskAttachment_TO_BASE(base) COM_FORWARD_IHardDiskAttachment_TO (base::)")

[
    uuid(91648dc6-bb19-46bf-9e1c-4bf5b960c8e2),
    object,
    dual
]
interface IHardDisk : IMedium
{
    [propget] HRESULT Format ([out, retval] BSTR * aFormat);

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

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

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

    [propget] HRESULT Root ([out, retval] IHardDisk * * aRoot);

    [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);

    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] HardDiskVariant aVariant,
        [out, retval] IProgress * * aProgress
    );

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

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

    HRESULT MergeTo (
        [in] GUID aTargetId,
        [out, retval] IProgress * * aProgress
    );

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

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

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

}; /* interface IHardDisk */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IHardDisk_GETTER_Format_TO(smth) HRESULT STDMETHODCALLTYPE get_Format (BSTR * aFormat) { return smth get_Format (aFormat); }")
cpp_quote("#define COM_FORWARD_IHardDisk_GETTER_Format_TO_OBJ(obj) COM_FORWARD_IHardDisk_GETTER_Format_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHardDisk_GETTER_Format_TO_BASE(base) COM_FORWARD_IHardDisk_GETTER_Format_TO (base::)")
cpp_quote("#define COM_FORWARD_IHardDisk_GETTER_Type_TO(smth) HRESULT STDMETHODCALLTYPE get_Type (HardDiskType * aType) { return smth get_Type (aType); }")
cpp_quote("#define COM_FORWARD_IHardDisk_GETTER_Type_TO_OBJ(obj) COM_FORWARD_IHardDisk_GETTER_Type_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHardDisk_GETTER_Type_TO_BASE(base) COM_FORWARD_IHardDisk_GETTER_Type_TO (base::)")
cpp_quote("#define COM_FORWARD_IHardDisk_SETTER_Type_TO(smth) HRESULT STDMETHODCALLTYPE put_Type (HardDiskType aType) { return smth put_Type (aType); }")
cpp_quote("#define COM_FORWARD_IHardDisk_SETTER_Type_TO_OBJ(obj) COM_FORWARD_IHardDisk_SETTER_Type_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHardDisk_SETTER_Type_TO_BASE(base) COM_FORWARD_IHardDisk_SETTER_Type_TO (base::)")
cpp_quote("#define COM_FORWARD_IHardDisk_GETTER_Parent_TO(smth) HRESULT STDMETHODCALLTYPE get_Parent (IHardDisk * * aParent) { return smth get_Parent (aParent); }")
cpp_quote("#define COM_FORWARD_IHardDisk_GETTER_Parent_TO_OBJ(obj) COM_FORWARD_IHardDisk_GETTER_Parent_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHardDisk_GETTER_Parent_TO_BASE(base) COM_FORWARD_IHardDisk_GETTER_Parent_TO (base::)")
cpp_quote("#define COM_FORWARD_IHardDisk_GETTER_Children_TO(smth) HRESULT STDMETHODCALLTYPE get_Children (SAFEARRAY * * aChildren) { return smth get_Children (aChildren); }")
cpp_quote("#define COM_FORWARD_IHardDisk_GETTER_Children_TO_OBJ(obj) COM_FORWARD_IHardDisk_GETTER_Children_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHardDisk_GETTER_Children_TO_BASE(base) COM_FORWARD_IHardDisk_GETTER_Children_TO (base::)")
cpp_quote("#define COM_FORWARD_IHardDisk_GETTER_Root_TO(smth) HRESULT STDMETHODCALLTYPE get_Root (IHardDisk * * aRoot) { return smth get_Root (aRoot); }")
cpp_quote("#define COM_FORWARD_IHardDisk_GETTER_Root_TO_OBJ(obj) COM_FORWARD_IHardDisk_GETTER_Root_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHardDisk_GETTER_Root_TO_BASE(base) COM_FORWARD_IHardDisk_GETTER_Root_TO (base::)")
cpp_quote("#define COM_FORWARD_IHardDisk_GETTER_ReadOnly_TO(smth) HRESULT STDMETHODCALLTYPE get_ReadOnly (BOOL * aReadOnly) { return smth get_ReadOnly (aReadOnly); }")
cpp_quote("#define COM_FORWARD_IHardDisk_GETTER_ReadOnly_TO_OBJ(obj) COM_FORWARD_IHardDisk_GETTER_ReadOnly_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHardDisk_GETTER_ReadOnly_TO_BASE(base) COM_FORWARD_IHardDisk_GETTER_ReadOnly_TO (base::)")
cpp_quote("#define COM_FORWARD_IHardDisk_GETTER_LogicalSize_TO(smth) HRESULT STDMETHODCALLTYPE get_LogicalSize (ULONG64 * aLogicalSize) { return smth get_LogicalSize (aLogicalSize); }")
cpp_quote("#define COM_FORWARD_IHardDisk_GETTER_LogicalSize_TO_OBJ(obj) COM_FORWARD_IHardDisk_GETTER_LogicalSize_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHardDisk_GETTER_LogicalSize_TO_BASE(base) COM_FORWARD_IHardDisk_GETTER_LogicalSize_TO (base::)")
cpp_quote("#define COM_FORWARD_IHardDisk_GETTER_AutoReset_TO(smth) HRESULT STDMETHODCALLTYPE get_AutoReset (BOOL * aAutoReset) { return smth get_AutoReset (aAutoReset); }")
cpp_quote("#define COM_FORWARD_IHardDisk_GETTER_AutoReset_TO_OBJ(obj) COM_FORWARD_IHardDisk_GETTER_AutoReset_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHardDisk_GETTER_AutoReset_TO_BASE(base) COM_FORWARD_IHardDisk_GETTER_AutoReset_TO (base::)")
cpp_quote("#define COM_FORWARD_IHardDisk_SETTER_AutoReset_TO(smth) HRESULT STDMETHODCALLTYPE put_AutoReset (BOOL aAutoReset) { return smth put_AutoReset (aAutoReset); }")
cpp_quote("#define COM_FORWARD_IHardDisk_SETTER_AutoReset_TO_OBJ(obj) COM_FORWARD_IHardDisk_SETTER_AutoReset_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHardDisk_SETTER_AutoReset_TO_BASE(base) COM_FORWARD_IHardDisk_SETTER_AutoReset_TO (base::)")
cpp_quote("#define COM_FORWARD_IHardDisk_GetProperty_TO(smth) HRESULT STDMETHODCALLTYPE GetProperty (BSTR aName, BSTR * aValue) { return smth GetProperty (aName, aValue); }")
cpp_quote("#define COM_FORWARD_IHardDisk_GetProperty_TO_OBJ(obj) COM_FORWARD_IHardDisk_GetProperty_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHardDisk_GetProperty_TO_BASE(base) COM_FORWARD_IHardDisk_GetProperty_TO (base::)")
cpp_quote("#define COM_FORWARD_IHardDisk_SetProperty_TO(smth) HRESULT STDMETHODCALLTYPE SetProperty (BSTR aName, BSTR aValue) { return smth SetProperty (aName, aValue); }")
cpp_quote("#define COM_FORWARD_IHardDisk_SetProperty_TO_OBJ(obj) COM_FORWARD_IHardDisk_SetProperty_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHardDisk_SetProperty_TO_BASE(base) COM_FORWARD_IHardDisk_SetProperty_TO (base::)")
cpp_quote("#define COM_FORWARD_IHardDisk_GetProperties_TO(smth) HRESULT STDMETHODCALLTYPE GetProperties (BSTR aNames, SAFEARRAY * * aReturnNames, SAFEARRAY * * aReturnValues) { return smth GetProperties (aNames, aReturnNames, aReturnValues); }")
cpp_quote("#define COM_FORWARD_IHardDisk_GetProperties_TO_OBJ(obj) COM_FORWARD_IHardDisk_GetProperties_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHardDisk_GetProperties_TO_BASE(base) COM_FORWARD_IHardDisk_GetProperties_TO (base::)")
cpp_quote("#define COM_FORWARD_IHardDisk_SetProperties_TO(smth) HRESULT STDMETHODCALLTYPE SetProperties (SAFEARRAY * * aNames, SAFEARRAY * * aValues) { return smth SetProperties (aNames, aValues); }")
cpp_quote("#define COM_FORWARD_IHardDisk_SetProperties_TO_OBJ(obj) COM_FORWARD_IHardDisk_SetProperties_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHardDisk_SetProperties_TO_BASE(base) COM_FORWARD_IHardDisk_SetProperties_TO (base::)")
cpp_quote("#define COM_FORWARD_IHardDisk_CreateBaseStorage_TO(smth) HRESULT STDMETHODCALLTYPE CreateBaseStorage (ULONG64 aLogicalSize, HardDiskVariant aVariant, IProgress * * aProgress) { return smth CreateBaseStorage (aLogicalSize, aVariant, aProgress); }")
cpp_quote("#define COM_FORWARD_IHardDisk_CreateBaseStorage_TO_OBJ(obj) COM_FORWARD_IHardDisk_CreateBaseStorage_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHardDisk_CreateBaseStorage_TO_BASE(base) COM_FORWARD_IHardDisk_CreateBaseStorage_TO (base::)")
cpp_quote("#define COM_FORWARD_IHardDisk_DeleteStorage_TO(smth) HRESULT STDMETHODCALLTYPE DeleteStorage (IProgress * * aProgress) { return smth DeleteStorage (aProgress); }")
cpp_quote("#define COM_FORWARD_IHardDisk_DeleteStorage_TO_OBJ(obj) COM_FORWARD_IHardDisk_DeleteStorage_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHardDisk_DeleteStorage_TO_BASE(base) COM_FORWARD_IHardDisk_DeleteStorage_TO (base::)")
cpp_quote("#define COM_FORWARD_IHardDisk_CreateDiffStorage_TO(smth) HRESULT STDMETHODCALLTYPE CreateDiffStorage (IHardDisk * aTarget, HardDiskVariant aVariant, IProgress * * aProgress) { return smth CreateDiffStorage (aTarget, aVariant, aProgress); }")
cpp_quote("#define COM_FORWARD_IHardDisk_CreateDiffStorage_TO_OBJ(obj) COM_FORWARD_IHardDisk_CreateDiffStorage_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHardDisk_CreateDiffStorage_TO_BASE(base) COM_FORWARD_IHardDisk_CreateDiffStorage_TO (base::)")
cpp_quote("#define COM_FORWARD_IHardDisk_MergeTo_TO(smth) HRESULT STDMETHODCALLTYPE MergeTo (GUID aTargetId, IProgress * * aProgress) { return smth MergeTo (aTargetId, aProgress); }")
cpp_quote("#define COM_FORWARD_IHardDisk_MergeTo_TO_OBJ(obj) COM_FORWARD_IHardDisk_MergeTo_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHardDisk_MergeTo_TO_BASE(base) COM_FORWARD_IHardDisk_MergeTo_TO (base::)")
cpp_quote("#define COM_FORWARD_IHardDisk_CloneTo_TO(smth) HRESULT STDMETHODCALLTYPE CloneTo (IHardDisk * aTarget, HardDiskVariant aVariant, IHardDisk * aParent, IProgress * * aProgress) { return smth CloneTo (aTarget, aVariant, aParent, aProgress); }")
cpp_quote("#define COM_FORWARD_IHardDisk_CloneTo_TO_OBJ(obj) COM_FORWARD_IHardDisk_CloneTo_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHardDisk_CloneTo_TO_BASE(base) COM_FORWARD_IHardDisk_CloneTo_TO (base::)")
cpp_quote("#define COM_FORWARD_IHardDisk_Compact_TO(smth) HRESULT STDMETHODCALLTYPE Compact (IProgress * * aProgress) { return smth Compact (aProgress); }")
cpp_quote("#define COM_FORWARD_IHardDisk_Compact_TO_OBJ(obj) COM_FORWARD_IHardDisk_Compact_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHardDisk_Compact_TO_BASE(base) COM_FORWARD_IHardDisk_Compact_TO (base::)")
cpp_quote("#define COM_FORWARD_IHardDisk_Reset_TO(smth) HRESULT STDMETHODCALLTYPE Reset (IProgress * * aProgress) { return smth Reset (aProgress); }")
cpp_quote("#define COM_FORWARD_IHardDisk_Reset_TO_OBJ(obj) COM_FORWARD_IHardDisk_Reset_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHardDisk_Reset_TO_BASE(base) COM_FORWARD_IHardDisk_Reset_TO (base::)")
cpp_quote("#define COM_FORWARD_IHardDisk_TO(smth) COM_FORWARD_IHardDisk_GETTER_Format_TO (smth) COM_FORWARD_IHardDisk_GETTER_Type_TO (smth) COM_FORWARD_IHardDisk_SETTER_Type_TO (smth) COM_FORWARD_IHardDisk_GETTER_Parent_TO (smth) COM_FORWARD_IHardDisk_GETTER_Children_TO (smth) COM_FORWARD_IHardDisk_GETTER_Root_TO (smth) COM_FORWARD_IHardDisk_GETTER_ReadOnly_TO (smth) COM_FORWARD_IHardDisk_GETTER_LogicalSize_TO (smth) COM_FORWARD_IHardDisk_GETTER_AutoReset_TO (smth) COM_FORWARD_IHardDisk_SETTER_AutoReset_TO (smth) COM_FORWARD_IHardDisk_GetProperty_TO (smth) COM_FORWARD_IHardDisk_SetProperty_TO (smth) COM_FORWARD_IHardDisk_GetProperties_TO (smth) COM_FORWARD_IHardDisk_SetProperties_TO (smth) COM_FORWARD_IHardDisk_CreateBaseStorage_TO (smth) COM_FORWARD_IHardDisk_DeleteStorage_TO (smth) COM_FORWARD_IHardDisk_CreateDiffStorage_TO (smth) COM_FORWARD_IHardDisk_MergeTo_TO (smth) COM_FORWARD_IHardDisk_CloneTo_TO (smth) COM_FORWARD_IHardDisk_Compact_TO (smth) COM_FORWARD_IHardDisk_Reset_TO (smth) ")
cpp_quote("#define COM_FORWARD_IHardDisk_TO_OBJ(obj) COM_FORWARD_IHardDisk_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHardDisk_TO_BASE(base) COM_FORWARD_IHardDisk_TO (base::)")

[
    uuid(7f3ba790-3a0b-4a8a-bac2-bb50150123c5),
    object,
    dual
]
interface IHardDiskFormat : IUnknown
{
    [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 IHardDiskFormat */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IHardDiskFormat_GETTER_Id_TO(smth) HRESULT STDMETHODCALLTYPE get_Id (BSTR * aId) { return smth get_Id (aId); }")
cpp_quote("#define COM_FORWARD_IHardDiskFormat_GETTER_Id_TO_OBJ(obj) COM_FORWARD_IHardDiskFormat_GETTER_Id_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHardDiskFormat_GETTER_Id_TO_BASE(base) COM_FORWARD_IHardDiskFormat_GETTER_Id_TO (base::)")
cpp_quote("#define COM_FORWARD_IHardDiskFormat_GETTER_Name_TO(smth) HRESULT STDMETHODCALLTYPE get_Name (BSTR * aName) { return smth get_Name (aName); }")
cpp_quote("#define COM_FORWARD_IHardDiskFormat_GETTER_Name_TO_OBJ(obj) COM_FORWARD_IHardDiskFormat_GETTER_Name_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHardDiskFormat_GETTER_Name_TO_BASE(base) COM_FORWARD_IHardDiskFormat_GETTER_Name_TO (base::)")
cpp_quote("#define COM_FORWARD_IHardDiskFormat_GETTER_FileExtensions_TO(smth) HRESULT STDMETHODCALLTYPE get_FileExtensions (SAFEARRAY * * aFileExtensions) { return smth get_FileExtensions (aFileExtensions); }")
cpp_quote("#define COM_FORWARD_IHardDiskFormat_GETTER_FileExtensions_TO_OBJ(obj) COM_FORWARD_IHardDiskFormat_GETTER_FileExtensions_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHardDiskFormat_GETTER_FileExtensions_TO_BASE(base) COM_FORWARD_IHardDiskFormat_GETTER_FileExtensions_TO (base::)")
cpp_quote("#define COM_FORWARD_IHardDiskFormat_GETTER_Capabilities_TO(smth) HRESULT STDMETHODCALLTYPE get_Capabilities (ULONG * aCapabilities) { return smth get_Capabilities (aCapabilities); }")
cpp_quote("#define COM_FORWARD_IHardDiskFormat_GETTER_Capabilities_TO_OBJ(obj) COM_FORWARD_IHardDiskFormat_GETTER_Capabilities_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHardDiskFormat_GETTER_Capabilities_TO_BASE(base) COM_FORWARD_IHardDiskFormat_GETTER_Capabilities_TO (base::)")
cpp_quote("#define COM_FORWARD_IHardDiskFormat_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_IHardDiskFormat_DescribeProperties_TO_OBJ(obj) COM_FORWARD_IHardDiskFormat_DescribeProperties_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHardDiskFormat_DescribeProperties_TO_BASE(base) COM_FORWARD_IHardDiskFormat_DescribeProperties_TO (base::)")
cpp_quote("#define COM_FORWARD_IHardDiskFormat_TO(smth) COM_FORWARD_IHardDiskFormat_GETTER_Id_TO (smth) COM_FORWARD_IHardDiskFormat_GETTER_Name_TO (smth) COM_FORWARD_IHardDiskFormat_GETTER_FileExtensions_TO (smth) COM_FORWARD_IHardDiskFormat_GETTER_Capabilities_TO (smth) COM_FORWARD_IHardDiskFormat_DescribeProperties_TO (smth) ")
cpp_quote("#define COM_FORWARD_IHardDiskFormat_TO_OBJ(obj) COM_FORWARD_IHardDiskFormat_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IHardDiskFormat_TO_BASE(base) COM_FORWARD_IHardDiskFormat_TO (base::)")

[
    uuid(faa6101f-078c-4b3a-ab75-75670c8170b3),
    object,
    dual
]
interface IFloppyImage : IMedium
{
}; /* interface IFloppyImage */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IFloppyImage_TO(smth) ")
cpp_quote("#define COM_FORWARD_IFloppyImage_TO_OBJ(obj) COM_FORWARD_IFloppyImage_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFloppyImage_TO_BASE(base) COM_FORWARD_IFloppyImage_TO (base::)")

[
    uuid(b1f90bbb-e8a9-4484-9af1-3638e943f763),
    object,
    dual
]
interface IDVDImage : IMedium
{
}; /* interface IDVDImage */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IDVDImage_TO(smth) ")
cpp_quote("#define COM_FORWARD_IDVDImage_TO_OBJ(obj) COM_FORWARD_IDVDImage_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDVDImage_TO_BASE(base) COM_FORWARD_IDVDImage_TO (base::)")

[
    uuid(d650ef30-be9b-4dae-b463-11d5824681a5),
    object,
    dual
]
interface IDVDDrive : IUnknown
{
    [propget] HRESULT State ([out, retval] DriveState * aState);

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

    HRESULT MountImage (
        [in] GUID aImageId
    );

    HRESULT CaptureHostDrive (
        [in] IHostDVDDrive * aDrive
    );

    HRESULT Unmount();

    HRESULT GetImage (
        [out, retval] IDVDImage * * aImage
    );

    HRESULT GetHostDrive (
        [out, retval] IHostDVDDrive * * aDrive
    );

}; /* interface IDVDDrive */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IDVDDrive_GETTER_State_TO(smth) HRESULT STDMETHODCALLTYPE get_State (DriveState * aState) { return smth get_State (aState); }")
cpp_quote("#define COM_FORWARD_IDVDDrive_GETTER_State_TO_OBJ(obj) COM_FORWARD_IDVDDrive_GETTER_State_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDVDDrive_GETTER_State_TO_BASE(base) COM_FORWARD_IDVDDrive_GETTER_State_TO (base::)")
cpp_quote("#define COM_FORWARD_IDVDDrive_GETTER_Passthrough_TO(smth) HRESULT STDMETHODCALLTYPE get_Passthrough (BOOL * aPassthrough) { return smth get_Passthrough (aPassthrough); }")
cpp_quote("#define COM_FORWARD_IDVDDrive_GETTER_Passthrough_TO_OBJ(obj) COM_FORWARD_IDVDDrive_GETTER_Passthrough_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDVDDrive_GETTER_Passthrough_TO_BASE(base) COM_FORWARD_IDVDDrive_GETTER_Passthrough_TO (base::)")
cpp_quote("#define COM_FORWARD_IDVDDrive_SETTER_Passthrough_TO(smth) HRESULT STDMETHODCALLTYPE put_Passthrough (BOOL aPassthrough) { return smth put_Passthrough (aPassthrough); }")
cpp_quote("#define COM_FORWARD_IDVDDrive_SETTER_Passthrough_TO_OBJ(obj) COM_FORWARD_IDVDDrive_SETTER_Passthrough_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDVDDrive_SETTER_Passthrough_TO_BASE(base) COM_FORWARD_IDVDDrive_SETTER_Passthrough_TO (base::)")
cpp_quote("#define COM_FORWARD_IDVDDrive_MountImage_TO(smth) HRESULT STDMETHODCALLTYPE MountImage (GUID aImageId) { return smth MountImage (aImageId); }")
cpp_quote("#define COM_FORWARD_IDVDDrive_MountImage_TO_OBJ(obj) COM_FORWARD_IDVDDrive_MountImage_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDVDDrive_MountImage_TO_BASE(base) COM_FORWARD_IDVDDrive_MountImage_TO (base::)")
cpp_quote("#define COM_FORWARD_IDVDDrive_CaptureHostDrive_TO(smth) HRESULT STDMETHODCALLTYPE CaptureHostDrive (IHostDVDDrive * aDrive) { return smth CaptureHostDrive (aDrive); }")
cpp_quote("#define COM_FORWARD_IDVDDrive_CaptureHostDrive_TO_OBJ(obj) COM_FORWARD_IDVDDrive_CaptureHostDrive_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDVDDrive_CaptureHostDrive_TO_BASE(base) COM_FORWARD_IDVDDrive_CaptureHostDrive_TO (base::)")
cpp_quote("#define COM_FORWARD_IDVDDrive_Unmount_TO(smth) HRESULT STDMETHODCALLTYPE Unmount() { return smth Unmount(); }")
cpp_quote("#define COM_FORWARD_IDVDDrive_Unmount_TO_OBJ(obj) COM_FORWARD_IDVDDrive_Unmount_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDVDDrive_Unmount_TO_BASE(base) COM_FORWARD_IDVDDrive_Unmount_TO (base::)")
cpp_quote("#define COM_FORWARD_IDVDDrive_GetImage_TO(smth) HRESULT STDMETHODCALLTYPE GetImage (IDVDImage * * aImage) { return smth GetImage (aImage); }")
cpp_quote("#define COM_FORWARD_IDVDDrive_GetImage_TO_OBJ(obj) COM_FORWARD_IDVDDrive_GetImage_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDVDDrive_GetImage_TO_BASE(base) COM_FORWARD_IDVDDrive_GetImage_TO (base::)")
cpp_quote("#define COM_FORWARD_IDVDDrive_GetHostDrive_TO(smth) HRESULT STDMETHODCALLTYPE GetHostDrive (IHostDVDDrive * * aDrive) { return smth GetHostDrive (aDrive); }")
cpp_quote("#define COM_FORWARD_IDVDDrive_GetHostDrive_TO_OBJ(obj) COM_FORWARD_IDVDDrive_GetHostDrive_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDVDDrive_GetHostDrive_TO_BASE(base) COM_FORWARD_IDVDDrive_GetHostDrive_TO (base::)")
cpp_quote("#define COM_FORWARD_IDVDDrive_TO(smth) COM_FORWARD_IDVDDrive_GETTER_State_TO (smth) COM_FORWARD_IDVDDrive_GETTER_Passthrough_TO (smth) COM_FORWARD_IDVDDrive_SETTER_Passthrough_TO (smth) COM_FORWARD_IDVDDrive_MountImage_TO (smth) COM_FORWARD_IDVDDrive_CaptureHostDrive_TO (smth) COM_FORWARD_IDVDDrive_Unmount_TO (smth) COM_FORWARD_IDVDDrive_GetImage_TO (smth) COM_FORWARD_IDVDDrive_GetHostDrive_TO (smth) ")
cpp_quote("#define COM_FORWARD_IDVDDrive_TO_OBJ(obj) COM_FORWARD_IDVDDrive_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDVDDrive_TO_BASE(base) COM_FORWARD_IDVDDrive_TO (base::)")

[
    uuid(159412cd-bab8-452e-8097-218a020825a6),
    object,
    dual
]
interface IFloppyDrive : IUnknown
{
    [propget] HRESULT Enabled ([out, retval] BOOL * aEnabled);
    [propput] HRESULT Enabled ([in] BOOL aEnabled);

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

    HRESULT MountImage (
        [in] GUID aImageId
    );

    HRESULT CaptureHostDrive (
        [in] IHostFloppyDrive * aDrive
    );

    HRESULT Unmount();

    HRESULT GetImage (
        [out, retval] IFloppyImage * * aImage
    );

    HRESULT GetHostDrive (
        [out, retval] IHostFloppyDrive * * aDrive
    );

}; /* interface IFloppyDrive */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IFloppyDrive_GETTER_Enabled_TO(smth) HRESULT STDMETHODCALLTYPE get_Enabled (BOOL * aEnabled) { return smth get_Enabled (aEnabled); }")
cpp_quote("#define COM_FORWARD_IFloppyDrive_GETTER_Enabled_TO_OBJ(obj) COM_FORWARD_IFloppyDrive_GETTER_Enabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFloppyDrive_GETTER_Enabled_TO_BASE(base) COM_FORWARD_IFloppyDrive_GETTER_Enabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IFloppyDrive_SETTER_Enabled_TO(smth) HRESULT STDMETHODCALLTYPE put_Enabled (BOOL aEnabled) { return smth put_Enabled (aEnabled); }")
cpp_quote("#define COM_FORWARD_IFloppyDrive_SETTER_Enabled_TO_OBJ(obj) COM_FORWARD_IFloppyDrive_SETTER_Enabled_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFloppyDrive_SETTER_Enabled_TO_BASE(base) COM_FORWARD_IFloppyDrive_SETTER_Enabled_TO (base::)")
cpp_quote("#define COM_FORWARD_IFloppyDrive_GETTER_State_TO(smth) HRESULT STDMETHODCALLTYPE get_State (DriveState * aState) { return smth get_State (aState); }")
cpp_quote("#define COM_FORWARD_IFloppyDrive_GETTER_State_TO_OBJ(obj) COM_FORWARD_IFloppyDrive_GETTER_State_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFloppyDrive_GETTER_State_TO_BASE(base) COM_FORWARD_IFloppyDrive_GETTER_State_TO (base::)")
cpp_quote("#define COM_FORWARD_IFloppyDrive_MountImage_TO(smth) HRESULT STDMETHODCALLTYPE MountImage (GUID aImageId) { return smth MountImage (aImageId); }")
cpp_quote("#define COM_FORWARD_IFloppyDrive_MountImage_TO_OBJ(obj) COM_FORWARD_IFloppyDrive_MountImage_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFloppyDrive_MountImage_TO_BASE(base) COM_FORWARD_IFloppyDrive_MountImage_TO (base::)")
cpp_quote("#define COM_FORWARD_IFloppyDrive_CaptureHostDrive_TO(smth) HRESULT STDMETHODCALLTYPE CaptureHostDrive (IHostFloppyDrive * aDrive) { return smth CaptureHostDrive (aDrive); }")
cpp_quote("#define COM_FORWARD_IFloppyDrive_CaptureHostDrive_TO_OBJ(obj) COM_FORWARD_IFloppyDrive_CaptureHostDrive_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFloppyDrive_CaptureHostDrive_TO_BASE(base) COM_FORWARD_IFloppyDrive_CaptureHostDrive_TO (base::)")
cpp_quote("#define COM_FORWARD_IFloppyDrive_Unmount_TO(smth) HRESULT STDMETHODCALLTYPE Unmount() { return smth Unmount(); }")
cpp_quote("#define COM_FORWARD_IFloppyDrive_Unmount_TO_OBJ(obj) COM_FORWARD_IFloppyDrive_Unmount_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFloppyDrive_Unmount_TO_BASE(base) COM_FORWARD_IFloppyDrive_Unmount_TO (base::)")
cpp_quote("#define COM_FORWARD_IFloppyDrive_GetImage_TO(smth) HRESULT STDMETHODCALLTYPE GetImage (IFloppyImage * * aImage) { return smth GetImage (aImage); }")
cpp_quote("#define COM_FORWARD_IFloppyDrive_GetImage_TO_OBJ(obj) COM_FORWARD_IFloppyDrive_GetImage_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFloppyDrive_GetImage_TO_BASE(base) COM_FORWARD_IFloppyDrive_GetImage_TO (base::)")
cpp_quote("#define COM_FORWARD_IFloppyDrive_GetHostDrive_TO(smth) HRESULT STDMETHODCALLTYPE GetHostDrive (IHostFloppyDrive * * aDrive) { return smth GetHostDrive (aDrive); }")
cpp_quote("#define COM_FORWARD_IFloppyDrive_GetHostDrive_TO_OBJ(obj) COM_FORWARD_IFloppyDrive_GetHostDrive_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFloppyDrive_GetHostDrive_TO_BASE(base) COM_FORWARD_IFloppyDrive_GetHostDrive_TO (base::)")
cpp_quote("#define COM_FORWARD_IFloppyDrive_TO(smth) COM_FORWARD_IFloppyDrive_GETTER_Enabled_TO (smth) COM_FORWARD_IFloppyDrive_SETTER_Enabled_TO (smth) COM_FORWARD_IFloppyDrive_GETTER_State_TO (smth) COM_FORWARD_IFloppyDrive_MountImage_TO (smth) COM_FORWARD_IFloppyDrive_CaptureHostDrive_TO (smth) COM_FORWARD_IFloppyDrive_Unmount_TO (smth) COM_FORWARD_IFloppyDrive_GetImage_TO (smth) COM_FORWARD_IFloppyDrive_GetHostDrive_TO (smth) ")
cpp_quote("#define COM_FORWARD_IFloppyDrive_TO_OBJ(obj) COM_FORWARD_IFloppyDrive_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFloppyDrive_TO_BASE(base) COM_FORWARD_IFloppyDrive_TO (base::)")

[
    uuid(2d1a531b-4c6e-49cc-8af6-5c857b78b5d7),
    object,
    dual
]
interface IKeyboard : IUnknown
{
    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(FD443EC1-0006-4F5B-9282-D72760A66916),
    object,
    dual
]
interface IMouse : IUnknown
{
    [propget] HRESULT AbsoluteSupported ([out, retval] BOOL * aAbsoluteSupported);

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

    HRESULT PutMouseEventAbsolute (
        [in] LONG aX,
        [in] LONG aY,
        [in] LONG aDz,
        [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_PutMouseEvent_TO(smth) HRESULT STDMETHODCALLTYPE PutMouseEvent (LONG aDx, LONG aDy, LONG aDz, LONG aButtonState) { return smth PutMouseEvent (aDx, aDy, aDz, 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 aButtonState) { return smth PutMouseEventAbsolute (aX, aY, aDz, 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_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(af431304-5b09-40e2-94da-3c3cb03822c1),
    object,
    dual
]
interface IFramebuffer : IUnknown
{
    [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,
        [out, retval] BOOL * aFinished
    );

    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 OperationSupported (
        [in] FramebufferAccelerationOperation aOperation,
        [out, retval] BOOL * aSupported
    );

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

    HRESULT SolidFill (
        [in] ULONG aX,
        [in] ULONG aY,
        [in] ULONG aWidth,
        [in] ULONG aHeight,
        [in] ULONG aColor,
        [out, retval] BOOL * aHandled
    );

    HRESULT CopyScreenBits (
        [in] ULONG aXDst,
        [in] ULONG aYDst,
        [in] ULONG aXSrc,
        [in] ULONG aYSrc,
        [in] ULONG aWidth,
        [in] ULONG aHeight,
        [out, retval] BOOL * aHandled
    );

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

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

}; /* 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, BOOL * aFinished) { return smth NotifyUpdate (aX, aY, aWidth, aHeight, aFinished); }")
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_OperationSupported_TO(smth) HRESULT STDMETHODCALLTYPE OperationSupported (FramebufferAccelerationOperation aOperation, BOOL * aSupported) { return smth OperationSupported (aOperation, aSupported); }")
cpp_quote("#define COM_FORWARD_IFramebuffer_OperationSupported_TO_OBJ(obj) COM_FORWARD_IFramebuffer_OperationSupported_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFramebuffer_OperationSupported_TO_BASE(base) COM_FORWARD_IFramebuffer_OperationSupported_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_SolidFill_TO(smth) HRESULT STDMETHODCALLTYPE SolidFill (ULONG aX, ULONG aY, ULONG aWidth, ULONG aHeight, ULONG aColor, BOOL * aHandled) { return smth SolidFill (aX, aY, aWidth, aHeight, aColor, aHandled); }")
cpp_quote("#define COM_FORWARD_IFramebuffer_SolidFill_TO_OBJ(obj) COM_FORWARD_IFramebuffer_SolidFill_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFramebuffer_SolidFill_TO_BASE(base) COM_FORWARD_IFramebuffer_SolidFill_TO (base::)")
cpp_quote("#define COM_FORWARD_IFramebuffer_CopyScreenBits_TO(smth) HRESULT STDMETHODCALLTYPE CopyScreenBits (ULONG aXDst, ULONG aYDst, ULONG aXSrc, ULONG aYSrc, ULONG aWidth, ULONG aHeight, BOOL * aHandled) { return smth CopyScreenBits (aXDst, aYDst, aXSrc, aYSrc, aWidth, aHeight, aHandled); }")
cpp_quote("#define COM_FORWARD_IFramebuffer_CopyScreenBits_TO_OBJ(obj) COM_FORWARD_IFramebuffer_CopyScreenBits_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IFramebuffer_CopyScreenBits_TO_BASE(base) COM_FORWARD_IFramebuffer_CopyScreenBits_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_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_OperationSupported_TO (smth) COM_FORWARD_IFramebuffer_VideoModeSupported_TO (smth) COM_FORWARD_IFramebuffer_SolidFill_TO (smth) COM_FORWARD_IFramebuffer_CopyScreenBits_TO (smth) COM_FORWARD_IFramebuffer_GetVisibleRegion_TO (smth) COM_FORWARD_IFramebuffer_SetVisibleRegion_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
]
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(09789f63-4525-48e5-a5e4-1080453b0eab),
    object,
    dual
]
interface IDisplay : IUnknown
{
    [propget] HRESULT Width ([out, retval] ULONG * aWidth);

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

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

    HRESULT SetupInternalFramebuffer (
        [in] ULONG aDepth
    );

    HRESULT LockFramebuffer (
        [out, retval] BYTE * * aAddress
    );

    HRESULT UnlockFramebuffer();

    HRESULT RegisterExternalFramebuffer (
        [in] IFramebuffer * aFramebuffer
    );

    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] BYTE * aAddress,
        [in] ULONG aWidth,
        [in] ULONG aHeight
    );

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

    HRESULT InvalidateAndUpdate();

    HRESULT ResizeCompleted (
        [in] ULONG aScreenId
    );

    HRESULT UpdateCompleted();

}; /* interface IDisplay */

/* Interface implementation forwarder macro */
cpp_quote("#define COM_FORWARD_IDisplay_GETTER_Width_TO(smth) HRESULT STDMETHODCALLTYPE get_Width (ULONG * aWidth) { return smth get_Width (aWidth); }")
cpp_quote("#define COM_FORWARD_IDisplay_GETTER_Width_TO_OBJ(obj) COM_FORWARD_IDisplay_GETTER_Width_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDisplay_GETTER_Width_TO_BASE(base) COM_FORWARD_IDisplay_GETTER_Width_TO (base::)")
cpp_quote("#define COM_FORWARD_IDisplay_GETTER_Height_TO(smth) HRESULT STDMETHODCALLTYPE get_Height (ULONG * aHeight) { return smth get_Height (aHeight); }")
cpp_quote("#define COM_FORWARD_IDisplay_GETTER_Height_TO_OBJ(obj) COM_FORWARD_IDisplay_GETTER_Height_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDisplay_GETTER_Height_TO_BASE(base) COM_FORWARD_IDisplay_GETTER_Height_TO (base::)")
cpp_quote("#define COM_FORWARD_IDisplay_GETTER_BitsPerPixel_TO(smth) HRESULT STDMETHODCALLTYPE get_BitsPerPixel (ULONG * aBitsPerPixel) { return smth get_BitsPerPixel (aBitsPerPixel); }")
cpp_quote("#define COM_FORWARD_IDisplay_GETTER_BitsPerPixel_TO_OBJ(obj) COM_FORWARD_IDisplay_GETTER_BitsPerPixel_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDisplay_GETTER_BitsPerPixel_TO_BASE(base) COM_FORWARD_IDisplay_GETTER_BitsPerPixel_TO (base::)")
cpp_quote("#define COM_FORWARD_IDisplay_SetupInternalFramebuffer_TO(smth) HRESULT STDMETHODCALLTYPE SetupInternalFramebuffer (ULONG aDepth) { return smth SetupInternalFramebuffer (aDepth); }")
cpp_quote("#define COM_FORWARD_IDisplay_SetupInternalFramebuffer_TO_OBJ(obj) COM_FORWARD_IDisplay_SetupInternalFramebuffer_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDisplay_SetupInternalFramebuffer_TO_BASE(base) COM_FORWARD_IDisplay_SetupInternalFramebuffer_TO (base::)")
cpp_quote("#define COM_FORWARD_IDisplay_LockFramebuffer_TO(smth) HRESULT STDMETHODCALLTYPE LockFramebuffer (BYTE * * aAddress) { return smth LockFramebuffer (aAddress); }")
cpp_quote("#define COM_FORWARD_IDisplay_LockFramebuffer_TO_OBJ(obj) COM_FORWARD_IDisplay_LockFramebuffer_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDisplay_LockFramebuffer_TO_BASE(base) COM_FORWARD_IDisplay_LockFramebuffer_TO (base::)")
cpp_quote("#define COM_FORWARD_IDisplay_UnlockFramebuffer_TO(smth) HRESULT STDMETHODCALLTYPE UnlockFramebuffer() { return smth UnlockFramebuffer(); }")
cpp_quote("#define COM_FORWARD_IDisplay_UnlockFramebuffer_TO_OBJ(obj) COM_FORWARD_IDisplay_UnlockFramebuffer_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDisplay_UnlockFramebuffer_TO_BASE(base) COM_FORWARD_IDisplay_UnlockFramebuffer_TO (base::)")
cpp_quote("#define COM_FORWARD_IDisplay_RegisterExternalFramebuffer_TO(smth) HRESULT STDMETHODCALLTYPE RegisterExternalFramebuffer (IFramebuffer * aFramebuffer) { return smth RegisterExternalFramebuffer (aFramebuffer); }")
cpp_quote("#define COM_FORWARD_IDisplay_RegisterExternalFramebuffer_TO_OBJ(obj) COM_FORWARD_IDisplay_RegisterExternalFramebuffer_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDisplay_RegisterExternalFramebuffer_TO_BASE(base) COM_FORWARD_IDisplay_RegisterExternalFramebuffer_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 (BYTE * aAddress, ULONG aWidth, ULONG aHeight) { return smth TakeScreenShot (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_DrawToScreen_TO(smth) HRESULT STDMETHODCALLTYPE DrawToScreen (BYTE * aAddress, ULONG aX, ULONG aY, ULONG aWidth, ULONG aHeight) { return smth DrawToScreen (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_UpdateCompleted_TO(smth) HRESULT STDMETHODCALLTYPE UpdateCompleted() { return smth UpdateCompleted(); }")
cpp_quote("#define COM_FORWARD_IDisplay_UpdateCompleted_TO_OBJ(obj) COM_FORWARD_IDisplay_UpdateCompleted_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IDisplay_UpdateCompleted_TO_BASE(base) COM_FORWARD_IDisplay_UpdateCompleted_TO (base::)")
cpp_quote("#define COM_FORWARD_IDisplay_TO(smth) COM_FORWARD_IDisplay_GETTER_Width_TO (smth) COM_FORWARD_IDisplay_GETTER_Height_TO (smth) COM_FORWARD_IDisplay_GETTER_BitsPerPixel_TO (smth) COM_FORWARD_IDisplay_SetupInternalFramebuffer_TO (smth) COM_FORWARD_IDisplay_LockFramebuffer_TO (smth) COM_FORWARD_IDisplay_UnlockFramebuffer_TO (smth) COM_FORWARD_IDisplay_RegisterExternalFramebuffer_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_DrawToScreen_TO (smth) COM_FORWARD_IDisplay_InvalidateAndUpdate_TO (smth) COM_FORWARD_IDisplay_ResizeCompleted_TO (smth) COM_FORWARD_IDisplay_UpdateCompleted_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(65607a27-2b73-4d43-b4cc-0ba2c817fbde),
    object,
    dual
]
interface INetworkAdapter : IUnknown
{
    [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 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);

    HRESULT AttachToNAT();

    HRESULT AttachToBridgedInterface();

    HRESULT AttachToInternalNetwork();

    HRESULT AttachToHostOnlyInterface();

    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_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_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_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_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_AttachToNAT_TO (smth) COM_FORWARD_INetworkAdapter_AttachToBridgedInterface_TO (smth) COM_FORWARD_INetworkAdapter_AttachToInternalNetwork_TO (smth) COM_FORWARD_INetworkAdapter_AttachToHostOnlyInterface_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
]
interface ISerialPort : IUnknown
{
    [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
]
interface IParallelPort : IUnknown
{
    [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
]
interface IMachineDebugger : IUnknown
{
    [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(238540fa-4b73-435a-a38e-4e1d9eab5c17),
    object,
    dual
]
interface IUSBController : IUnknown
{
    [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 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_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_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(850af07b-9ee8-48c2-b6b0-f6d0acbf63c3),
    object,
    dual
]
interface IUSBDevice : IUnknown
{
    [propget] HRESULT Id ([out, retval] GUID * 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 (GUID * 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
]
interface IUSBDeviceFilter : IUnknown
{
    [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
]
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
]
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
]
interface IAudioAdapter : IUnknown
{
    [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(f4584ae7-6bce-474b-83d6-17d235e6aa89),
    object,
    dual
]
interface IVRDPServer : IUnknown
{
    [propget] HRESULT Enabled ([out, retval] BOOL * aEnabled);
    [propput] HRESULT Enabled ([in] BOOL aEnabled);

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

    [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);

}; /* 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_Port_TO(smth) HRESULT STDMETHODCALLTYPE get_Port (ULONG * aPort) { return smth get_Port (aPort); }")
cpp_quote("#define COM_FORWARD_IVRDPServer_GETTER_Port_TO_OBJ(obj) COM_FORWARD_IVRDPServer_GETTER_Port_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVRDPServer_GETTER_Port_TO_BASE(base) COM_FORWARD_IVRDPServer_GETTER_Port_TO (base::)")
cpp_quote("#define COM_FORWARD_IVRDPServer_SETTER_Port_TO(smth) HRESULT STDMETHODCALLTYPE put_Port (ULONG aPort) { return smth put_Port (aPort); }")
cpp_quote("#define COM_FORWARD_IVRDPServer_SETTER_Port_TO_OBJ(obj) COM_FORWARD_IVRDPServer_SETTER_Port_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IVRDPServer_SETTER_Port_TO_BASE(base) COM_FORWARD_IVRDPServer_SETTER_Port_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_TO(smth) COM_FORWARD_IVRDPServer_GETTER_Enabled_TO (smth) COM_FORWARD_IVRDPServer_SETTER_Enabled_TO (smth) COM_FORWARD_IVRDPServer_GETTER_Port_TO (smth) COM_FORWARD_IVRDPServer_SETTER_Port_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) ")
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
]
interface ISharedFolder : IUnknown
{
    [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(2581845a-5a9d-45fb-bc3b-2476552dd970),
    object,
    dual
]
interface IInternalSessionControl : IUnknown
{
    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 OnDVDDriveChange();

    HRESULT OnFloppyDriveChange();

    HRESULT OnNetworkAdapterChange (
        [in] INetworkAdapter * aNetworkAdapter
    );

    HRESULT OnSerialPortChange (
        [in] ISerialPort * aSerialPort
    );

    HRESULT OnParallelPortChange (
        [in] IParallelPort * aParallelPort
    );

    HRESULT OnStorageControllerChange();

    HRESULT OnVRDPServerChange();

    HRESULT OnUSBControllerChange();

    HRESULT OnSharedFolderChange (
        [in] BOOL aGlobal
    );

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

    HRESULT OnUSBDeviceDetach (
        [in] GUID 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
    );

}; /* 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_OnDVDDriveChange_TO(smth) HRESULT STDMETHODCALLTYPE OnDVDDriveChange() { return smth OnDVDDriveChange(); }")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnDVDDriveChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnDVDDriveChange_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnDVDDriveChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnDVDDriveChange_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnFloppyDriveChange_TO(smth) HRESULT STDMETHODCALLTYPE OnFloppyDriveChange() { return smth OnFloppyDriveChange(); }")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnFloppyDriveChange_TO_OBJ(obj) COM_FORWARD_IInternalSessionControl_OnFloppyDriveChange_TO ((obj)->)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnFloppyDriveChange_TO_BASE(base) COM_FORWARD_IInternalSessionControl_OnFloppyDriveChange_TO (base::)")
cpp_quote("#define COM_FORWARD_IInternalSessionControl_OnNetworkAdapterChange_TO(smth) HRESULT STDMETHODCALLTYPE OnNetworkAdapterChange (INetworkAdapter * aNetworkAdapter) { return smth OnNetworkAdapterChange (aNetworkAdapter); }")
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_OnVRDPServerChange_TO(smth) HRESULT STDMETHODCALLTYPE OnVRDPServerChange() { return smth OnVRDPServerChange(); }")
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 (GUID 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_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_OnDVDDriveChange_TO (smth) COM_FORWARD_IInternalSessionControl_OnFloppyDriveChange_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_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) ")
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
]
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(6bf8335b-d14a-44a5-9b45-ddc49ce7d5b2),
    object,
    dual
]
interface IStorageController : IUnknown
{
    [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);

    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_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_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
]
interface IPerformanceMetric : IUnknown
{
    [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
]
interface IPerformanceCollector : IUnknown
{
    [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(B1A7A4F2-47B9-4A1E-82B2-07CCD5323C3F)
]
coclass VirtualBox
{
    [default] interface IVirtualBox;

}; /* coclass VirtualBox */

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

}; /* coclass Session */

}; /* library VirtualBox */

